domingo, 22 de noviembre de 2015

PHP 7 o lo que es lo mismo: renuevate o jodete.

PHP 7 esta  la vuelta de la esquina y esta vez no ha sufrido el terrible destino que su versión pasada, si, nos referimos a php 6 que al igual que perl 6, vio su muerte debido a discusiones internas y falta de claridad con las cadenas Unicode, o eso es lo que salieron a decir en su momento. Y es que php 7 desde su anuncio vino acompañado de promesas muy llamativas en cuanto a rendimiento y mejoras en su sintaxis que si bien ya habíamos visto de la mano de Hip Hop y Hack de Facebook, el grupo de php (A.K.A. los amigos de php) por fin abrieron los ojos para darse cuenta de las necesidades reales que muchos programadores ya pedían a gritos.

Internet nació en los primeros años de los 70's conocida en esos entonces como ARPANET y para 1990 ve la luz world wide web. En esa época en la que la naciente web estaba aun en pañales y el contenido era mayoritaria mente estático los únicos rasgos de dinamismo llegaban un par de años mas tarde de la mano de los applets de java y de Netscape subiéndose al tren del mame con javascript, nombrado así por la popularidad de java y que dio paso a al estándar ECMAScript que salio dos años después, en enero de 1997.

PHP fue creado originalmente por Rasmus Lerdorf en el año de 1994, programador por aquellos días de perl, y que cansado de la forma en que dicho lenguaje trataba los datos, baso su trabajo en unos CGI's escritos en C y un año mas tarde anuncio Personal Home Pages Tools (PHP Tools). Años mas tarde, Andi Gutmans y Zeev Suraski del Instituto tecnológico de Israel reescribieron el analizador sintáctico y el de Personal Home Page Tools cambio de nombre al acrónimo recursivo PHP Hypertext Pre-processor. Así es como en Junio de 1998 salio a la luz PHP3, para que un año mas tarde, estos dos reescribieran el código para crear en actual interprete llamado Zend Engine y de paso, formar la compañía Zend Technologies en Israel.

PHP es un lenguaje de scripting débilmente tipeado que se ejecuta del lado del servidor y que se ha denominado como la herramienta mas rápida y sencilla para crear paginas web dinámicas, y no era para menos, si fue creado con este propósito. Para mediados del 2004, salio Zend Engine II con un montón de mejoras, como un soporte para el modelado de objetos que hasta ese momento era extremadamente rudimentario y que lenguajes como java y javascript ya tenían; de igual forma se incluyo soporte nativo para Mysql, XML, SOAP, un mejor manejo de excepciones y mejoras en el rendimiento que le hizo mucho bien, por que ya era mucho dolor de cabeza tener que abrir una pagina y darnos el tiempo de ver un capitulo completo de dragon ball y prepararnos un café antes de poder leer algo en la web (Bueno, no era así, pero casi). Y así es como php4 pasaba a su reluciente versión 5.

Pero la cosa no paro ahí, por que se planeo la version 6, con mejoras aun mayores con el sueño de llegar a tener lo que hasta el momento tenia perl y que también planeaba su salto de 5 a 6, pero que después de unos años mejor decidieron cancelar. Algunas de estas mejoras del borrador salieron en php 5.3 y 5.4. Entre ellas fueron los namespaces, Closures, goto (Por dios, alguien aun quiere usar eso, ni c lo quiere), Garbaje Collector algunas librerías y mi favorito, los Traits, que aun algunas personas nos lo quieren vender como multi-herencia y no como lo que es en realidad, un modulo de extensión. Ruby ha llevado mejor esta definición con sus módulos que es básicamente lo mismo y hay una extensa explicación de ellos en su pagina oficial.

A finales de la decada de los 2000's algunos se preguntaban como diablos Facebook lograba mantener su servicio en linea con la cantidad de llamadas que servian, y es que ni ls pruebas mas osadas sobre Zend Engine lograban tal nivel de eficacia en el rendimiento, fue así como los chicos de Facebook a principios de año del 2010, levantaron la mano diciendo que habian reescrito el stack de ejecución de php y que de paso, ahora compilaban PHP, si, ya se que a mas de uno nos dio risa y aseguramos que escribieron el blog en estado etílico o creían que era el día de los santos inocentes. Aun así, Haiping Zhao, Arquitecto de servidores de Facebook, nos dijo que le llevo dos años junto a un pequeño grupo de ingenieros optimizar php y aunque esperábamos que esto diera como resultado un nuevo interprete, la realidad es que esos dos años dieron salida a una maquina virtual la cual liberaron como código abierto. Esta belleza transformaba en sus inicios el código en php y lo pasaba a c++, con lo cual ahora nos hacia sentido que ellos mismos declararan que compilaban php.

Pero la cosa no paro ahí para los chicos de Facebook, ya que para enero del 2014 volvieron a levantar la mano con el anuncio de Hack, un lenguaje de programación basado en php al que ellos llamaron php de modo estricto y que corría bajo su maquina virtual. Este nuevo lenguaje trajo bastantes novedades como el uso de tipeado dinámico (ya conocido en php) como el tipeado estático, hacer que las funciones regresaran ahora un valor especificado dejando de lado los famosos mixin return, nuevas clases para colecciones muy al estilo de java, mejoras a los Closure, lambdas y clases genéricas, que si bien no es algo nuevo en el mercado ya que java y C# ya los tenían, si es algo que muchos programadores de scripting aun desconocen por completo.

Aun así eso parecía no impactar al Engine actual de php hasta que algunos osados vieron pasar de este interprete de php a hiphop o recomendarlo, como en el caso de laravel que te ofrece una maquina virtual ya lista para que la corras y disfrutes de programar en php, pero que corre bajo HHVM (Hip Hop) y no Zend Engine. Ese mismo año, Wikipedia anuncio pruebas para cambiar a HHVM y en febrero del 2015, en el blog de Hack lang se anunciaba que wikipedia había migrado por completo a HHVM y que era compatible con php 5.x teniendo una capa de compatibilidad con Zend, diciendonos además que si pensábamos migrar a HHVM, pero que si dependíamos de algunas extenciones nativas, podíamos usar la librería Lua para el manejo de estos errores.

Esto no tardo en hacer ruido dentro de php, que este mismo año anunciaron el desarrollo de PHP7 prometiendo que ahora si quitarían las librerías que por años solo permanecían depreciadas y que como cualquier tía con buen rollo nos decían que era malo usarlo, pero que nos los dejaba ahí por si teníamos la necesidad de usarlos si no teníamos de otra... como algún código legado o nos daba mucha pereza aprender cosas nuevas. También nos trae mucha azúcar sintáctica, un uso de array en constantes que bien puede ser la emulación de los enum de Hack. Como ya se los había dicho, y eso es algo que debe de alegrarnos a todos, usemos el Engine o HHVM, y es que de seguir por este camino, pronto podrán volver a la reunion de amigos programadores y no sufran de bulling por decir que programan en php, a menos que solo usen wordpress y sepan mas de teoría del color que de patrones de diseño, ahí si, nadie podrá ayudarlos en realidad, ni sus novias o novios que tantos los aman.

No sé si es tarde o temprano, pero me alegra que por fin Zend y compañía se dieran cuenta que era necesario evolucionar y pelear en esta revolución donde los bandos están definidos y no importa cual sea el ganador, siempre y cuando nos dejen algo de calidad y si, que nos obliguen a hacer mejor las cosas, como programar o usar sistemas escalables, hablo de mejores estándares que no solo se queden en deberías usar, o buenas practicas como recomendaciones. Queremos sangre, queremos dolor, queremos tirar mejores lineas y que nos dejen de ver como un par de autistas a los que se les arrojen un pan duro para que juguemos con el y dejemos de molestar. Que por fin nos dejen de hacer bulling por usar este lenguaje, no queremos llevar a todas partes algo que no sirve o que medio haga las cosas, queremos simplemente llevar algo que no sea de utilidad a nosotros y a todos los demás, que para eso es código abierto, para que entre todos mejore, por que como bien lo ha dicho nuestro tirano favorito Torvalds: "Mientras mas ojos miren, mas rápido saldrán los errores"

Hay un largo camino y PHP7 aun esta en sus RC y si, hay que admitirlo ahora que nadie nos mire, Facebook es php lo que Google para python. y ustedes ¿Qué opinan?

Happy hacking!



No hay comentarios:

Publicar un comentario