Slashdot Mirror


PHP Finally Getting a Formal Specification

itwbennett (1594911) writes "Despite becoming one of the most widely used programming languages on the Web, PHP didn't have a formal specification — until now. Facebook engineer and PHP core contributor Sara Golemon announced the initiative at OSCON earlier this month, and an initial draft of the specification was posted Wednesday on GitHub."

11 of 180 comments (clear)

  1. its why devs cringe. by nimbius · · Score: 3, Insightful

    As a devops (christ i hate that word.) engineer, the fact that the lack of a formal specification was overlooked for 20 years has been and is currently a big red flag for any legitimate software project. It was the knee-jerk reaction to Jakarta/Tomcat/Struts and ultimately java based, head first strict-type coding that turned programming projects into concentration camps. It emerged during a period when programmers were still struggling to determine how to present content to users sustainably, instead of having to write the entire page in perl. IMHO this is too little too late.

    This is entirely opinion, but having lived with web n.x for 15 years, Python has emerged a juggernaut to contend with in RESTful coding environments. it learned from PHP's mistakes and walked away from perl with a firm understanding of what made it uncomfortable from the debug standpoint. things like CherryPy, TurboGears, pylons and even pecan can turn a proof of concept in a day, and can easily and quickly be scaled across the infrastructure.

    --
    Good people go to bed earlier.
    1. Re:its why devs cringe. by OzPeter · · Score: 4, Insightful

      Python has emerged a juggernaut to contend with in RESTful coding environments.

      Putting aside the whole whitespace debate(*), I'm pretty sure that python has its own list of issues. Maybe not to the same extent as PHP, but they exist.

      * For which I personally do have trouble with python - I want the computer to bend to my will, not the other way around.

      --
      I am Slashdot. Are you Slashdot as well?
  2. PHP Finally Getting a Formal Specification by NoNonAlphaCharsHere · · Score: 5, Funny

    Unfortunately, it's written in PHP, so there's some disagreement about WHAT is says.

    1. Re:PHP Finally Getting a Formal Specification by NoNonAlphaCharsHere · · Score: 4, Funny

      Actually SpecificationFormal($PHP) automagically converted $PHP to Perl and returned false. No-one is sure WHY, but that's the way it works.

    2. Re:PHP Finally Getting a Formal Specification by Megane · · Score: 4, Funny

      I'll just wait for them to replace php_specification() with real_php_specification() ... or is it php_real_specification() ?

      --
      #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
  3. Re:Formal specifications are pretty useless for th by Tailhook · · Score: 5, Informative

    Yes, which is probably why this is coming from a Facebook engineer. PHP is pretty central to Facebook and Facebook has been re-implementing PHP for many years now. Facebook created a PHP to C++ translator (HPHPc) which has since been deprecated in favor of a new PHP virtual machine; HHVM. So Naturally formalizing PHP is of great interest to Facebook.

    --
    Maw! Fire up the karma burner!
  4. Re:Engineer? by OzPeter · · Score: 4, Informative

    Facebook engineer and PHP core contributor....

    My father in law in an actual engineer

    As an actual engineer as well, this sort of inflating of titles is a peeve of mine right now. It makes job searches nigh impossible as every position out there has the word engineer in them, and all recruiters seem to be doing nowadays is matching keywords - sort I keep getting emails about 'engineer this' and 'engineer that', when they are totally irrelevant to any sort of genuine engineering position.

    --
    I am Slashdot. Are you Slashdot as well?
  5. Re:Formal specifications are pretty useless for th by Daniel+Hoffmann · · Score: 4, Informative

    A formal specification is useful for the implementers of the languages to guarantee that your code runs the same across all implementations. It is pretty important. It should define all use cases possible and highlighting the "undefined" use cases.

  6. Re:Formal specifications are pretty useless for th by CrashNBrn · · Score: 3
    Also, Hack:a new (Open Source) programming language for HHVM

    Hack, a programming language developed for HHVM that interoperates seamlessly with PHP.
    Hack reconciles the fast development cycle of PHP with the discipline provided by static typing, while adding many features commonly found in other modern programming languages.

    An open source version of Hack is available at http://hacklang.org/ as part of the HHVM runtime platform, which supports both Hack and PHP.

    Also, FBIDE (a web-based Hack development environment) was presented at Facebook's Hack Developer Day,

    Joel B. and I introduced Facebook's web-based Hack development environment, known internally as âoeFBIDE.â The Hack type checker is compiled to JavaScript, so all Hack language checking is done very fast, client-side. Features of FBIDE include autocomplete, an integrated debugger, quick file and code search, and other pretty cool things. FBIDE has been a great success internally at Facebook. At a company where vim and emacs are the dominant choices for development, a large percentage of Facebook engineers are using FBIDE, and the number is growing quickly. We believe FBIDE will be useful to Hack developers outside of Facebook, allowing them to productively become familiar with the language, so we're working on plans to make it more widely available â" hopefully toward the end of summer 2014.

  7. Re:Full specification text: by lgw · · Score: 4, Funny

    PHP Formal Specification:

    1) Don't use PHP.

    No wonder you're getting modded down if you think that's a formal specification! C'mon:


    1. Abstract.

    Don't use PHP.

    2. Conventions used in this document.

    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
    document are to be interpreted as described in RFC-2119

    3. Normative Guidance for the Use of PHP

    One MUST NOT use PHP.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  8. Re:Formal specifications are pretty useless for th by gweihir · · Score: 4, Informative

    A formal specification is a specification done in a formal specification language. There is no other meaning of that term. The people claiming they are doing a "formal" specification likely confused this with "exact". These two concepts are orthogonal. A formal specification can be inexact (or even unsound), while an informal specification can be exact (and sound).

    A "formal standard" is something else, it usually refers to a more-or-less exact and complete _informal_ specification that is uniquely identified by its designation. The main difference is that in theory, you could check a formal specification for soundness using an automated theorem prover. Or you could automatically generate a compiler from it. An informal (but possibly exact) specification does not allow that, as it needs a human in the loop.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.