My kemenworld…

To mock or not to mock…

Para quién creo yo es PHP5?

Posted by kementeus en noviembre 7, 2006

Hace unos dias leyendo los posts de uno de mis compañeros (http://strgt.cjb.net) me topo con la noticia sobre la movida de PHP4 a PHP5 en sus servidores. Bueno, realmente lo que me llamó la atención fueron los comentarios al respecto, desde aquellos que “nunca lo habian usado” hasta aquellos que han anunciado que con cosas como Apache2 o Drupal no da problemas.

Todo eso me hizo meditar sobre la típica pregunta que se podrían hacer aquellas personas nuevas en este maravilloso e increible arte de programar para la web, es PHP5 lo necesito en mi servidor? estoy listo para PHP5? realmente necesito PHP5?.

Para nada me considero un “experto” y mucho menos un “gurú” en PHP, pero quizás con un par de comentarios contribuya con mi granito de arena a aquel que esta o aprendiendo o no sabe claramente lo que las diferencias en la página de PHP oficial implican entre la 4 y 5.

Cuando muchos comenzamos con PHP lo hacemos a la brava. Agarramos una página web y metemos las tags de PHP entre las tags de HTML, de hecho en phpgt lei sobre alguien que tomaba en cuenta PHP como el siguiente paso luego de aprender HTML, creo que en su caso debe evitar cometer los errores q muchos de nosotros haciamos cuando mezclabamos código, pero bueno, ese es otro tema. Esos eran aquellos tiempos de PHP3, claro, en ese tiempo no existian ni buenas prácticas, ni conceptos de precompilado ni mucho menos objetos (sólo para que hagan una idea, PHP3 tomaba cada línea y conforme iba caminando lo ejecutaba, PHP4 introduce el concepto de los opcodes dónde el código completo pasa por las etapas comunes de un compilador hasta tener opcodes [el equivalente a los bytecodes de java podriamos decir] como resultado).

PHP4 junto con el compilado a opcodes introduce muchisimas mejoras comparado con la versión 3, entre esas el soporte “rudimentario” de objetos, de hecho tan rudimentario que hace parecer la programación en gobject como full orientada a objetos😛. Durante la existencia de PHP4 nace el proyecto PEAR, el cual buscaba ser la alternativa CPAN de Perl a PHP, de hecho, si analisamos así con toda franquesa a PHP4, su orientación a objetos y la forma en que se trabajaba las extensiones de PEAR y similares, podríamos decir que PHP4 quería parecerse mas a Perl. Se que algunos se sentiran upset por esta aclaración pero piensenlo, PHP es hijo directo de Perl, y muchos de sus programadores fueron alguna vez programadores Perl en LWP que migraron a PHP debido a su facilidad de uso y forma de trabajar comparado con Perl (yep, Perl sucks para desarrollo web de aplicaciones grandes, no en vano Yahoo! prefirió PHP4).

Para ese entonces PHP era ya una framework en si, con miles de funciones incorporadas para que todos se sintieran felices, claro, como ya existian millones de líneas de código en PHP3 tenian que guardar la compatibilidad con esas millones de líneas. Aquí recalco algo, aunque PHP4 tenia rudimentos de objetos el lenguaje no se comportaba como un verdadero lenguaje de objetos, por ejemplo, los “objetos” podian ser por valor y explicitamente se tenia que enviar las variables por referencia para indicar lo contrario.

El problema con PHP4 era quienes lo habian usando y desarrollando en ese momento, como mencioné eran programadores de Perl y dirigidos por Lerdorf (quien es un programador Perl de muchisimos años). Con la llegada de PHP4 mucha gente de otra camada se unió al esfuerzo, y entraron los programadores de lenguajes reales de objetos (por ejemplo Java). Eso influyó en el soporte de Objetos que tiene PHP5, de hecho, siento que el modelo usado por PHP5 en su framework per se es muy “a la java”, solo comparen interfaces como IArray con IArray en Java.

PHP5 se mueve un paso en transformarse en un lenguaje OO, posee elementos como interfaces, clases selladas, abstractas, herencia real (a esto me refiero a la forma en que se buscan los miembros de herencia en las versiones 4 y 5), type hinting y la version 5.1 se mueve un paso en iniciar con la “objetivización” de modulos ampliamente usuados como mysql (usando ahora PDO que busca ser el equivalente a JDBO pero en PHP). Claro, nuevamente permitiendo compatibilidad con las versiones anteriores.

Bien, todo esto para decir y terminar con el resumen general. Si son programadores de la vieja escuela el pasarse a PHP5 no puede representar muchos problemas, pero para poder sacarle el provecho involucraría un cambio de pensamiento en cuanto a la forma de ver código y programarlo. En otras palabras, el portar una aplicación a PHP5 involucraría una verdadera reingeniería de la aplicación en sí. Verdadera programación orientada a objetos involucra un cambio de pensamiento, no un cambio de lenguaje.

Mi amigo StR mencionaba que PHP5 era para simplificar el trabajo de un administrador de sistemas. En lo personal no lo creo, es como decir que cambiar de Apache2 a Lighttpd es cuestión de programadores (claro, a menos que escriban modulos para apache :P). El verse con aplicaciones legacy en un servidor es sumamente común, en ese caso vale la pena pensar si es necesario cambiar, después de todo, PHP4 es actualmente el PHP mas probado hasta ahora no?.

Insisto por ultima vez, piensen en cambiar a PHP5 si tienen un proyecto nuevo en que trabajar el cual no interferirá con las webapps anteriores en el mismo server; si tienen el suficiente tiempo y presupuesto para migrar las aplicaciones viejas o si simplemente quieren comenzar a programar con un paradigma verdadero de objetos.

Para el impaciente claro esta, hay un set de recetas de cosas q simplemente cambian en sus scripts de PHP4 y lo logran correr en un server PHP5, pero a mi parecer aunque su aplicación corra en PHP5 si simplemente hicieron eso seguirá siendo una webapp en PHP4.

A ver, que comienze el blame por mi “pequeño” comentario.

2 comentarios to “Para quién creo yo es PHP5?”

  1. Edgarin said

    Que tal bro? como le va? espero que bien, pues bueno con esto del tema php5, yo realmente nunca he usado PHP 4 y mucho menos la 3 ya que yo hasta este año he empezado a programar y empeze sobre PHP 5 por lo cual no se realmente cuales son las diferencias aunque te soy sinceron, aveces me da un poco de hueva y no logro cambiar mi mentalidad a programar en PHP5 como una programación orientada a objetos, pero bueno intentare en estas vacaciones hacer un intensivo yo mismo de Php, Algo que me ha gustado de Php y creo que es el unico lenguaje de programación (No lo estoy asegurando solo lo creo) es que esta bien bien documentado, ahi si no hay pierde😉.

    Que buen post!, suerte exitos

  2. Orlando said

    EL cambio de php4 a php5 me parece bueno porque mejora la seguridad, pero cuesta acostumbrarse

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: