Hi,

  there is some talk about contributing new features and roadmaps for
PHP. What is missing is talk about maintenance.

  PHP is developing really fast, if you consider the distribution we
reach.

  Let's take a look at the last few years and the amount of language
changes. PHP 5.2 was releasesd in 2006. 7 years ago. After that we
struggled a bit with our PHP 6 project which resulted in 5.3 in in 2009.
In those three years we've added
      * lambdas
      * A new operator ( ?: )
      * Namespaces
      * Late static Binding
      * __callStatic
      * dynamic access of static members
      * __DIR__

Again three years later in 2012 we released 5.4.0 with
      * short array syntax
      * binary numbers
      * traits
      * closure $this
      * array dereferencing
      * different indirect fcall improvements

Just a single year later in 2013 we release 5.5.0 with
      * generators and coroutines
      * finally
      * constant array/string dereferencing.
      * ::class
      * empty() on the result of function calls and other expressions
      * non-scalar Iterator keys in foreach
      * list in foreach

  That is a lot of language change (ignoring all "library" changes,
things we removed optimizations being made, ...) in seven years.

Let's compare this to a few other widespread languages:
      * With C there is a commonly used standard C89/C90, a newer
        version C99 and a bug fix version C11. C99 to a large part is a
        catchup with C++ features already provided by many compilers
        (inline functions, intermingled declarations and code, //-style
        comments) and a few new features (newdata types, variable-length
        arrays, designated initializers, compound literals and support
        for variadic macros) that is a lot but took them ten years and
        still is not incommon use. C11 another ten years later brought
        some multithreading, some unicode, Bounds-checking interfaces
        and static assertions. 
      * With C++ there is C++89. C++03 was a minor bug fix. In 2007 TR1
        was released which included library features. In 2011 C++11 came
        out. 12 years after the last "real" version. This included a
        looong list of languages features. next planned is C++14 which
        will bring one language feature (concepts)
      * With Java 6 was released in 2006. 2011 Java 7 came and "added
        many small language changes including strings in switch,
        try-with- resources and type inference for generic instance
        creation". Java 8 will, probably, be released in 2014 and adds
        lambdas and a few annotations

  For other languages I don't know enough about them to summarize
language changes. But I'm quite sure PHP is among the fastest evolving
languages.

This is nice but bears two problems:
     1. Adoption. Take any statistic and trust it as much as you like
        and we're now somewhere around the time where 5.3 overtakes 5.2
        in total usage. Far ahead of 5.4 and 5.5.
     2. Bugs. https://bugs.php.net/stats.php currently lists 3974 open
        issues.

  I think for both of the issues it is good if we slow down a bit and
try to fix more bugs instead of adding new ones. 

  Now contributing bug fixes is also not 100% painless as we have to
review patches and we are limited in resources. Especially as we have
code areas with very few interested active developers while we need
experienced developers who know PHPisms for reviewing.

  I'd love if the people who are enthusiastic about contributing to PHP
would go and help working on these bugs. This can be done simply by
reviewing reports or by writing patches. If you are stuck in a place
while trying to write a patch or analyzing a bug ask here, ask on the
quieter pecl-dev list or #php.pecl on efnet irc. If you provide a patch
and think it is being ignored for too long ask for a review. Usually
after the second time there will be somebody. Asking also shows you're
eager to improve PHP, which will give you an account and karma quite
quickly.

  A good start might be this bug: https://bugs.php.net/random


Thanks for going through this long mail and helping to make PHP better,
johannes



-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to