456 subscripciones por RSS o por E-mail

phpreboot

Con el anunciado "reseteo" de PHP6 su futuro parece por lo menos inicierto, pero afortunadamente eso no detiene a los más motivados desarrolladores a crear sus propias versiones de lo que consideran que debería ser el próximo PHP. Y una de las más rápidas para implementarlo es sobre una máquina virtual de Java (JVM) como ya lo hacen con otros lenguajes proyectos como Jython o Groovy.

Uno de esos nuevos proyectos es phpreboot, literalmente un reboot de PHP que quiere mantener la filosofía original del lenguaje, pero actualizarlo para ponerlo más a tono con la web del 2010. Algunas de sus características completadas hasta ahora incluyen:

  • Menos $ y menos ;, como en JavaScript.
  • Soporte completo de Unicode (gracias a Java).
  • Sintaxis compatible con SQL; JSON y XML literales.
  • Incluye la base de datos embebible Derby y el servidor web Grizzly.
  • Seguro por defecto: sin eval(), sin magic_quotes ni interpolación de cadenas de caracteres.

Y como un ejemplo vale mil palabras, aquí tenemos una consulta SQL usando variales comunes:

n = 3
a = select name from foo where id < $n
foreach(a as key: value) {
  echo "row: " + key + " name: " + value.name
}

Y así se vería el código HTML/XML mezclado con SQL:

<html>
 <body>
  <ol>
   {
     resultset = select * from foo
     foreach(resultset as value)
     {
       echo <li>$(value.name)</li>
     }
   }
  </ol>
 </body>
</html>

Más ejemplos de los que esperamos que se inspiren los desarrolladores oficiales de PHP por aquí.


PHP6 reseteado

Los desarrolladores de PHP comenzaron a discutir sobre su versión 6 incialmente en el 2005, pero hasta este mismo mes de Marzo del 2010 todavía no hay indicios que de su lanzamiento esté más cerca que antes. Los más optimistas vienen prediciendo que PHP6 está a sólo 18 a 24 meses desde hace tanto como 3 años, pero acontecimientos recientes pueden postergar su muy anticipado lanzamiento hasta el 2011, en el mejor de los casos, o aún más allá, si es que sucede en absoluto, en el peor.

El detonante de la última crisis en PHP6 es, irónicamente, una de sus más esperadas características: el soporte de Unicode, implementado con la librería ICU, que internamente usa UTF-16 para codificarlo todo, lo que significa que cualquier otra codificación usada en los scripts o los datos (generalmente UTF-8) deben convertirse a UTF-16 antes de ser usados. Para los usuarios esto trae además algunas incompatibilidades hacia atrás que requieren que el código se revise manualmente.

Esa implementación de Unicode ha probado ser difícil de completar y poco popular entre los mismos desarrolladores, lo que queda demostrado en el empantanamiento actual de la rama HEAD o trunk del desarrollo de PHP (correspondiente a su versión 6), que tampoco ha visto ninguna actividad importante durante este último verano.

Pero la gota que derramó el vaso fué que un sólo desarrollador, en un arranque de frustración, publicó un gran parche no autorizado en el repositorio de PHP creando además por su propia cuenta la nueva rama 5.4. Tal fué el revuelo que el mismísimo Rasmus Lerdorf tuvo que intervenir decidiéndose finalmente que el nuevo trunk en el repositorio SVN de PHP estará basado en la rama actual de su versión 5.3, donde se fusionarán las características del viejo trunk y junto con las nuevas.

En este momento es muy temprano para decir si la próxima versión de PHP será entonces llamada "5.4", o incluso "6.0". Pero lo seguro es que ahora todos los esfuerzos están puestos en hacer que PHP 5.3 sea la verdadera rama estable de PHP, y aunque aún no hay una fecha para el fin del soporte de la anterior v5.2, se considera que ahora hay un buen motivo más para comenzar a actualizarse a PHP 5.3.


Zeev Suraski habla sobre PHP6

Zeev Suraski, el programador israelí co-fundador de Zend Technologies Inc., habla largo y tendido en una entrevista publicada en el sitio TechRadar sobre el nuevo producto de su empresa Zend Server. Pero lo que realmente nos interesa son sus palabras sobre la muy anticipada versión 6 de PHP:

LXF: PHP6 parece estar llevando muchísimo tiempo en desarrollarse. ¿Es algún tipo de maldición del número 6, como Perl 6, o es todo parte del plan?

Zeev: Pude ser, ¡pero creo que tendremos a PHP6 antes que Python 6! PHP6 es un proyecto mucho más difícil que PHP4 y 5 por dos principales razones.

Uno es la cantidad de código PHP que hay allá afuera... es tan inmensa. La otra es que cada pequeña incompatibilidad que uno introduce se convierte en un horrible dolor de cabeza para mucha gente. Y combinado con la principal cosa que queremos hacer con PHP6, que es la introducción de soporte nativo para Unicode, es imposible no introducir también una cantidad significativa de incompatiblidades en el lenguaje. No sé cómo va a resultar esto - estoy siendo complementamente honesto.

LXF: ¿Qué tan fácil será migrar de PHP5 a 6, comparado con la migración de PHP4 a 5?

Zeev: La migración de la v4 a la v5 fue bastante exitosa. Tomó algunos años, pero hoy PHP5 ya es mucho más popular de lo que la v4 jamás lo fue. Nosotros decidimos no apurar la transición, así que en este punto nos estamos concentrando en PHP 5.3.

Tomamos la decisión de agregar algunas de las características que originalmente estaban planeadas para PHP6 -como los nombres de espacio- en PHP 5.3, para no apurar PHP6. Probablemente va a llevar un buen tiempo hasta que PHP6 sea liberado.


Driver nativo de MySQL para PHP

El driver nativo de MySQL para PHP (mysqlnd) es una forma alternativa de conectar PHP5 y PHP6 a un servidor MySQL 4.1 o más reciente (la versión 4.0 y anteriores no son soportadas). mysqlnd es un reemplazo de la librería del cliente de MySQL (libmysql) y está estrechamente integrado con PHP a partir de su versión 5.3 y posteriores. Los desarrolladores pueden ahora elegir mysqlnd cuando usen las extensiones mysql, mysqli o PDO-MySQL para conectarse a un servidor MySQL.

Algunas de las ventajas de usar mysqlnd incluyen:

  • Fácil de compilar: no se linkea con libmysql y no tiene dependencias con MySQL.
  • Conexiones persistentes para mysqli.
  • Usa la administración de memoria de PHP y soporta el límite de memoria.
  • Bajo consumo de memoria, mantiene cada registro en memoria sólo una vez; libmysql lo mantiene dos veces.
  • Lleva una larga lista de estadísticas sobre la performance y análisis de cuellos de botella.

El driver nativo de MySQL para PHP está incluído junto con el código fuente de PHP 5.3 y podría ser más rápido que libmysql en algunos casos, por lo que la recomendación es probarlo y decidir usarlo según la performance obtenida.


PHP 6 = PHP 5 + Unicode

Un desarrollador de Sun Microsystems que pudo asistir a la última reunión del SF PHP bloguea sobre la charla que en ese evento dió Andrei Zmievski, miembro del equipo del núcleo de PHP y administrador de lanzamientos para PHP6. En dicha charla se mencionaron los 2 años de reciente desarrollo que ya lleva PHP6 y su próximo lanzamiento a principios del 2009.

También se destacó el hecho de que muchas de las nuevas características en PHP6 estarán disponibles antes en el próximo PHP 5.3 vía PECL. De hecho, una de las diapositivas de la presentación de Zmievski ya resumió lo que podemos esperar de PHP6 en esta simple ecuación:

PHP 6 = PHP 5 + Unicode


PHP6 con Unicode, cada vez más cerca

Andrei Zmievski, uno de los principales desarrolladores de PHP, viene trabajando desde Marzo del 2005 junto con otros 20 programadores en adicionar soporte de Unicode a la próxima versión 6.0 de PHP. Ahora, finalmente, sus esfuerzos se están acercando a su primera vesión preliminar Alpha.

La implementación de las principales funcionalidades de Unicode ya está completa, abarcando 1844 de las 3047 funciones del lenguaje, o lo que es lo mismo, el 61% de ellas.


PHP6 y Zend Framework en el 2006

PHP cumplió 10 años en el 2005 y promete seguir expandiendo su territorio en 2006, gracias al lanzamiento de su versión 6. PHP 6 -que se lanzará en algún momento de este mismo año- incluirá soporte de UNICODE, el sistema de manejo universal de los caracteres, sin depender de ninguna plataforma en particular.


Rasmus Lerdorf: PHP sobre Pharrot

Rasmus Lerdorf es, ni más ni menos, el "creador" de PHP (^reverencia^). Entonces, su visión del pasado, presente y futuro de PHP es innegable. Cuando él habla, nosotros escuchamos. Y lo que dice en esta entrevista es imperdible:

"Pharrot es la muy buena máquina detrás de Perl 6. Pero no está atada a Perl 6... estamos investigando, con un proyecto llamado Pint, poner PHP sobre la máquina de Pharrot".

Si ésto llega a ser realidad pronto, no sucederá antes de PHP 6. Y sus implicaciones serían muy grandes:

"Básicamente (Pharrot) reemplazaría a Zend (Engine). Como Zend (Engine) reemplazó a mi propia máquina hace un par de años. ...(Y) siempre elegiremos la mejor".


Pharrot ¿el próximo PHP 6?

Estoy sorprendiéndome con las primeras referencias de Pharrot, éste proyecto de sólo 2 personas que se presentó en la PHP Conference 2003 como un nuevo compilador para PHP que usa la misma máquina de Perl 6. De su presentación se desprende que Pharrot es terriblemente rápido, tanto que algunos ya profetizan que con ésto PHP se convertirá en un lenguaje general, tanto como para que sea realista hacer cualquier aplicación de alta performance... Y que por supuesto, Pharrot será PHP 6 en algún momento del 2006... (!)