PHP: Un lenguaje Sencillo

En los últimos años, PHP se ha convertido en un lenguaje para programación web muy utilizado, existen muchas aplicaciones desarrolladas utilizándolo y muy grandes (como Facebook). Además, hoy en día es posible programar aplicaciones de escitorio utilizando PHP (sí, ya es posible) utilizando las librerías GTK para la interfaz gráfica. También existe un gran soporte en Internet, hay demasiados foros que contienen información del mismo, una gran cantidad de librerías con funciones ya hechas e incluso paquetes totalmente gratis, gestores de Contenido, Foros, Carritos de Compras, Galerías de Imágenes, Lectores de RSS, entre muchas otras. Cuenta con soporte multiplataforma, las funciones son llamadas nativas (no está implementado sobre ninguna máquina virtual como Java) y cuenta con gran conectividad con MySQL.

Sin embargo hablando como programador, más que como un usuario "que descarga paquetes", creo que PHP es HORRENDO, tiene como origen un modelo de programación en web antiguo, el soporte que tiene para la programación orientada a objetos es nefasto (incluso en PHP5 que dicen que SUPUESTAMENTE mejoró mucho), su naturaleza fomenta en la mayoría de programadores mezclar completamente el código de la lógica del negocio con la vista. El poder utilizar variables donde sea, hace que sea más difícil la corrección de bugs, ya que puede llegar a confundir las variables $id_usuario con $id_usario y tener errores de ejecución, y debido a que PHP "lo permite" es muy dificil de corregir.


PHP no se utiliza para la creación de aplicación empresariales, a veces resulta muy complicado implementar patrones de diseño ya que no tiene gran soporte de la programación orientada a objetos, no es Como Java, que es 100% Orientado a Objetos en el que incluso las funciones nativas o librerías que vienen incluidas en el JRE residen siempre en un objeto. Las empresas de desarrollo, nunca eligen a PHP para un proyecto grande, ya que su arquitectura no lo permite.

Otro problema, el principal y más grande que yo veo en PHP, es que muchos de los programadores que aprenden está tecnología, lo hacen porque necesitan hacer una página web que sea interactiva y que permita el registro de usuarios, no estudian Programación Orientada a Objetos, ni siquiera se preocupan de Patrón Modelo Vista Controlador, hacen un revoltijo en las páginas de código HTML, CSS, Javascript y PHP (Ya que así es como se vende PHP, "APRENDA PHP, Sólo con saber un poco de HTML y CSS). A diferencia de aquellos que aprenden a programar en Java o .NET (no todos) adquieren mejores prácticas de Programación, tienen una mejor idea de cómo hacer un Modelado de un Sistema (aclaro, no todos jeje) y son más disciplinados para programar (REPITO: NO TODOS JAJA).

Se habla mucho acerca de Java VS PHP o .NET VS PHP, sin embargo creo que ni siquiera hay puntos de comparación, .NET y Java, son tecnologías en las que se pueden realizar un sin fin de cosas, aplicaciones web, aplicaciones Standalone, Celulares, Servicios Web, RMI, RPC, DAEMONS, Interpretes, Compiladores. Tienen gran Soporte de Transacciones, y no creo que haya un Framework para aplicaciones web tan completo y tan robusto como Spring. PHP es un lenguaje que sirve para aplicaciones sencillas, carritos de compras y foros, pero no creo que al menos en el corto plazo se pueda comparar con un lenguaje y una Suite tan completa y poderosa como Java. Claro la curva de aprendizaje de Java, es mucho más grande que la de PHP, pero los beneficios que trae también son así, además aprender a programar en un lenguaje de programación como Java hace que los programadores comprendan en funcionamiento de un simple programa y así que puedan ir aprendiendo hasta llegar a comprender un Sistema Distribuido, que utiliza Web Services y bases de datos distribuidas que soporta transacciones, a diferencia de muchos que aprenden PHP, que a veces ni siquiera llegan a comprender el esquema Cliente-Servidor.

1 comments:

Unknown said...

PHP es un lenguaje Web basado en C, por lo mismo tiene las ventajas y desventajas que genera que tu programa solo se ejecute bajo petición.

En cuanto a lo que veías como desventajas en tu último párrafo, que son las tecnologías que se pueden aprovechar en Java o .NET, debes recordar que PHP es el mismo nivel de capa que Spring (se podría decir que PHP es a C como Spring es a Java, a pesar de que Zend ha hecho un gran esfuerzo por independizarlo), y aún así puedes crear compiladores, manejar RMI y RPC (y el nativo XML-RPC).

Tu molestia, que dejaste muy clara en tu post, no es sobre el lenguaje, sino sobre la malpraxis que provoca por su sencillez de uso. Sin embargo esto no es problema de la plataforma, sino del programador. Si la gente se decidiera a programar toda una aplicación sobre el "private static void main..."en java, ¿también considerarías horrendo a Java? ( desafortunadamente hay gente que de hecho lo hace ).

En lo personal disfruto mucho usar PHP y C (C++ y Obective-C ), sin embargo también uso Java y hoy mientras escribo, estoy usando java para hacer la implementación de un servidor con soporte del patrón Observador/Suscriptor para el envío de objetos serializados a través de AMF.

Por lo mismo te puedo decir que HORRIBLE no es un término que usaría para describir a PHP, sino a los "programadores" que hacen tan mal uso de un lenguaje y terminan con un sistema basura difícil de depurar y de mantener.

Conozco gente partidaria de java o de microsoft (Java lo entiendo, pero microsoft... por experiencia te puedo decir que no funciona bien y si gustas puedes hacer como yo y preguntarle a sus mismos arquitectos, si conoces a alguno, un minuto funciona y al siguiente no, y nadie sabe porque... ). Sin embargo, si vamos a juzgar,hay que hacerlo sobre ventajas y desventajas, su estabilidad e incluso la facilidad de uso ( Que debería ser una ventaja) no por los usuarios o por ignorancia.

Post a Comment