domingo, 3 de mayo de 2015

Hacia dónde va PHP



    PHP es un lenguaje plagado de características propias del lenguaje humano: ambigüedades, comportamientos no definidos o no esperables, funcionalidades marginales, etc. Desde la sintaxis de llamada de métodos, el carácter de separación de módulo (\), como muchos otros problemas de eficiencia y de nomenclatura de funciones. Para ver un buen resumen de los problemas de PHP, puedes verlo en esta web: http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/.

    Ahora bien, un lenguaje puede “arreglarse”, ¿están haciendo algo los desarrolladores del PHP Group? Vamos a verlo.

    En la versión 5.4 de PHP, se introdujeron funcionalidades como los Traits (que ya comenté en una entrada anterior), la ansiada nueva sintaxis para los arrays, desreferenciación de arrays desde llamadas a función y un servidor web para desarrollo de pruebas en local y otras características menores que no hacen sino dotar de más facilidades al desarrollador. Esta funcionalidad de herencia horizontal permite ahorrar multitud de código y simular herencia múltiple.

    La próxima versión de PHP (la versión 5.5) ya está siendo “cocinada” por los desarrolladores y voy a comentar las características que están siendo discutidas en la lista de distribución de este lenguaje como “futuribles” de este lenguaje. Las he extraído de http://nikic.github.com/2012/07/10/What-PHP-5-5-might-look-like.html y de la lista de correo:

* Desreferenciación de constantes: útil para llamar a funciones de arrays sobre cadenas o arrays.

* La construcción del lenguaje PHP, empty, funcionará sobre expresiones.

*Omisión de parámetros por defecto en llamadas a funciones.

* Consultores y establecedores, quizás (se está comentando) estilo C#.

* Funciones generadoras, pudiendo crear arrays a partir de una expresión.

Si se implementa esta funcionalidad, ¿qué queda para que PHP sea similar a un lenguaje “bien” diseñado? Desde mi punto de vista, los siguientes:

* Llamada a métodos desde constantes.

* Hebras

* Librerías extra con clases de colección y de cadena.

     Seguramente, los desarrolladores de Python discrepen sobre esto, pero yo también discrepo sobre la función len sobre listas, el tener que hacer las conversiones de tipos de forma explícita, la sintaxis de declaración de métodos, o los problemas que causa la indentación obligatoria.

    Por otro lado, está habiendo un surgimiento de plataformas de ejecución de PHP distintas a la desarrollada por el PHP Group:

* HipHop: traductor de código PHP a código C++, de manera que se puede compilar a código máquina, reduciendo la carga de servidor al 50%. Nótese que este compilador no implementa toda la sintaxis de PHP. Url: https://github.com/facebook/hiphop-php/wiki/ Desde Facebook también estuvieron haciendo experimentos con un nuevo intérprete de PHP llamado HPHPI.

* Quercus: intérprete desarrollado en Java, con una versión de pago que incluye un compilador de PHP a bytecode Java. Url: http://quercus.caucho.com/
Phalanger: compilador de PHP a código .Net. Url: http://www.php-compiler.net/

* PHC: compilador de código PHP (http://www.phpcompiler.org/).
Por último, queremos reseñar los últimos experimentos de los que hemos tenido noticia: un intérprete de PHP desarrollado sobre Python (http://morepypy.blogspot.com.es/2012/07/hello-everyone.html). Obviamente es un experimento y no ha de usarse para propósitos serios, más aún si se tiene en cuenta que sólo implementan la versión 1.0 de PHP.

    Estas plataformas nos hacen ver que hay interés en que PHP siga siendo la plataforma más usada a día de hoy en la web.




Diego J. Romero

http://blog.intelligenia.com/2012/07/esta-agonizando-php.html


No hay comentarios:

Publicar un comentario