PHP, otra vez en fuera de juego

Hace varios años que vivo (mayormente) del desarrollo con este lenguaje de programación, pero eso no significa que crea que sea bueno, ni que me parezca que este a la par con otros que desafortunadamente se usan hoy en mucha menor medida, ni que me considere mas productivo utilizando dicho lenguaje. Hoy me acabo de encontrar con algo que, debido a los patrones de diseño que normalmente uso no me había percatado, y es que es imposible capturar un error cuando se importa un fichero que contiene errores, o al menos es imposible hacerlo sin recurrir a hacks que no hacen mas que hacer el código bien difícil de leer.

Como pueden imaginar por la forma en que fue escrito el párrafo anterior, esta no es la primera vez que me desilusiona PHP, y estoy seguro que no va a ser la última, pero me ha puesto a pensar ¿Como es que un lenguaje, con un diseño tan inferior a otros utilizados actualmente continua siendo tan popular?

Inicios

En mi opinión, una de las claves de la popularidad de PHP esta en sus inicios, por el año 1995, php nace cuando para el desarrollo web dominaba el lenguaje de programación Perl a través de CGI (de hecho, la primera versión de php fue diseñada sobre la base de Perl), todo el que ha trabajado con Perl sabe que es un excelente lenguaje de programación, pero su sintaxis lo hace tener una curva de aprendizaje elevada, además de complicar su mantenimiento. PHP nació como una serie de binarios CGI y algo así como una versión de Perl simplificada para la web, con una sintaxis mas limpia, mas fácil de aprender y mantener si agregamos su nacimiento en los años en que este tipo de programación (web) explotaba, tenemos una receta de éxito.

Ocurre que en los inicios de PHP, también nacen sus mayores problemas, su creador, Rasmus Lerdorf, según sus propias palabras, no tenia ni idea de como hacer un lenguaje de programación, y de echo, en sus inicios, no intentaba ser un lenguaje, sino una serie de herramientas para facilitar el desarrollo web a las que les fueron agregando funciones a medida que estas hacían falta, a esto se le llama desarrollo orgánico, al no ser diseñado inicialmente provoca entre otras cosas la actual inconsistencia en el nombre de funciones, y en el orden de los parámetros.

Consolidación

PHP era mas fácil de aprender y utilizar para la web que el resto, lo que provocó que cada ves mas desarrolladores lo adoptaran, y el incluir integración con los motores de bases de datos mas populares facilitaba esto, luego, en el año 1998 nació el conocido PHPMyAdmin, que jugó un papel importante en el éxito de PHP en combinación con el gestor de bases de datos MySQL, sentándose las bases de los tan conocidos WAMPP o LAMPP, a partir de la creación de dichas distribuciones se podía montar un entorno de desarrollo web que incluía el servidor Apache, MySQL y PHP con solo unos clicks, esto fue mas que decisivo, nosotros los desarrolladores somos seres vagos, es la verdad, y tener todo un entorno instalado sin esfuerzo, sin tener que estar buscando con componentes y módulos uno por uno resulto ser irresistible, a partir de ese momento los nacientes proveedores de alojamiento (hosting) de Internet comenzaron a implementar WAMPP o LAMPP (este último en mayor medida), tal ha sido el crecimiento de PHP, que en febrero del 2014 se estimaba que el 82% de los sitios de Internet utilizaban dicho lenguaje.

¿Por qué PHP?

En los últimos años han aparecido con fuerza lenguajes mucho mas amigables para los desarrolladores y sin los problemas de diseño de PHP, pero la tendencia al uso de este último sigue en aumento, resulta que existen una seria de factores que han impedido que otras tecnologías se usen mas:

  • Las distribuciones WAMPP, LAMPP o MAMPP siguen siendo una excelente vía para tener un entorno de desarrollo funcional en minutos.
  • Aún la gran mayoría de los proveedores de alojamiento (hosting) en Internet dan soporte única y exclusivamente a PHP, y los que permiten otras tecnologías, cobran cargos extra.
  • Somos animales de costumbres, si, la gran mayoría de los desarrolladores web actuales aprendieron cuando PHP era por mucho la mejor opción, y ahora les cuesta cambiar
  • La misma inercia que provoca que a estas alturas, algunos clientes exijan que sus desarrollos se hagan en, por ejemplo Delphi, debido a que les han fabricado sistemas que han funcionado bien con dicha tecnología, provoca que en muchas ocasiones sin saber siquiera de lo que están hablando, exijan PHP como requerimiento en sus sistemas.

Mis conclusiones

Aún estamos lejos, muy lejos de los días en que PHP no sea casi un estándar, en lo que a desarrollo web se refiere, así que, los que vivimos de esto, no nos queda otra que seguir mejorando nuestras habilidades con este lenguaje. Si programara solo por diversión, casi todo lo haría utilizando python, pero en un mundo en el que hay que ganar dinero, desafortunadamente hay que saber php, o perderemos muchas, demasiadas opciones de trabajo.

13 Replies to “PHP, otra vez en fuera de juego”

  1. Muy interesante las opiniones sobre tus experiencias con dicho lenguaje, y agrego que llevo poco tiempo estudiándolo y me gustaría aprender algo que me sirva para el futuro, que muchos quisieran pero por falta de documentación no se deciden, en Reflejos todavía no existe un blog ni de PHP, solo en la UCI existe uno y no lo publican para acceso desde la Intranet. Saludos!!

    • Pero nada impide que lo crees tu! puedes ir posteando tus experiencias mientras aprendes el lenguaje y estoy seguro que poco a poco se irá creando una comunidad con la cual también podrás aprender.

    • En el primer párrafo del post menciono que encontre otro problema con PHP que me hace bien complicado lograr algo que deseo, y que no es la primera vez que me pasa (otra vez “en fuera de juego”), a partir de ahí, intento describir un poco como un lenguaje con tantos problemas de diseño, ha logrado ser popular.

      Saludos.

  2. hola a todos, algunas preguntas,

    1- a base de codigo (php) como puedo importar una tabla excel para una tabla???
    2-estoy exportando una pagina dinamica para un documento word, ni atras ni alante me coge justificado el parrafo, aun y cuando en el diseño se ve ok.
    3-alguien sabe si hay alguna forma de convertir un numero de por ejemplo 100 a CIEN…

    saludos, preguntas muchas mas, si tuviera a San Google…pero no….
    gracias y buen post…

    • Primero disculpas por demorar un poco en publicar tu comentario, es que cubava ha estado imposible en estos días… parece que ya se normaliza, esas preguntas dan cada una para un post, en los próximos días voy a ir publicando lo que pides.

      Saludos.

    • Por cierto, a que te refieres exactamente con “exportar una pagina dinámica para un documento word”, y cuando mencionas lo de importar de excel a una tabla, te refieres a una tabla en una BD o a una tabla HTML?

      Saludos.

      • oye hermano gracias por contestar y por ponerle interes, mira lo de exportar ya yo lo logro por el unico metodo que se, fue el que utilice en mi tesis en mi sitio web, que pasa o que estoy haciendo, en mi trabajo mensualmente hay que hacer una cierta cantidad de resoluciones, mas menos 200, y eso a mano es algo engorrozo, a traves de una bd seria muy facil pues solo cambian los datos y la proforma es la misma, yo les hago llenar una tabla excel y esta es importada al phpmyadmin para una tabla y luego muestro los valores, en el listado le pongo un ico para exportar uno por uno a word, pues tampoco he encontrado como exportar masivamente con un solo clic todas las resoluciones a una carpeta X, si tuviera san internet otro gallo cantaria pues todo esto esta hecho como decimos si la rueda ya esta inventada, solo usala…si me ayudaras o alguien de la comunidad muchas gracias… mis preguntas me dieron la idea de crear un blog http://deprogramacion.cubava.cu donde pienso ir exponiendo ejemplos de experiencias en cuanto a mi vida de programador, a lo mejor le resulvo algun problema a alguien, tambien publicare notas y curiosidades ademas de algunas explicaciones de que en que consisten algunos terminos informaticos…si puedes entra y me puedes dar tu criterio…otra vez muchas gracias…ah tambien me puedes escribir a mi correo, que lo tienes ahi pero para quien no lo visualiza ixyuniels AT remed DOT vcl DOT onat DOT gob DOT cu

  3. En la escuela tuve mis primeros pasos con PHP y MySQL, pero nunca llegué a hacer nada, pues la tesis de graduación fue en Joomla! WDF! jaja, si, tres clicks, increíble.. ¿Crees que PHP es mas “legible” que Django por ejemplo?

    • Bueno, en realidad no seria justo (ni factible) comparar a PHP con Django, ya que son dos cosas distintas, PHP es un luenguaje de programación y Django es un framework para el desarrollo web escrito en Python, podríamos comparar a PHP con Python, o a Laravel, Yii o Synphony (son frameworks para el desarrollo web en PHP) con Django.

      En cuanto a las comparaciones, te vas a encontrar opiniones de todo tipo, las guerras PHP vs Python o Django vs Symphony, por ejemplo, son famosas por nunca tener fin, ya que todas las tecnologías tienen sus ventajas y desventajas, debes escoger la que mejor se adapte a ti y a las características del proyecto que deseas llevar a cabo.

      En cuanto a tu pregunta, personalmente (como comenté antes, de seguro habrá personas que no estén de acuerdo), prefiero el lenguaje Python, ya que tiene una sintaxis mas limpia, esta mejor diseñado, y me permite centrarme más fácilmente en lo que realmente importa, que es terminar mi proyecto, pero eso no significa que no use otros como PHP o Java, ya que, como decía, también hay que saber escoger la tecnología que mejor se adapte al proyecto que se quiere realizar.

      Saludos.

  4. En lo personal me gusta la interacción de PHP y MySQL dado q tiene unos hilos de comunicación magníficos, no soy muy partidario de postgre pero php se comunica de manera excelente con el. Ahora estoy aprendiendo PHP y creo q una de las causas de su popularidad y uso es q en internet esta todo sobre el desde beneficios, funciones, ejemplos, desventajas. Tiene fácil uso y mantenimiento y se adapta a casi todos los patrones de diseño y programación. Y si no es de tu preferencia no lo trates de degradar y dale más popularidad al q prefieres porq según lo publicado no le veo el fuera de juego cuando nos encontramos tanto tú como yo en el 82% de uso.
    Mira java programa web y se esta popularizando inclínate, ese es un magnífico lenguaje. Y cuida más tu comida que de ello vives

    • Hola Ricardo, muchas gracias por dar tu opinión.
      Este comentario, al igual que el post es puramente de opinión y refleja exactamente eso, mi estado de opinión respecto a un asunto x en un momento dado basado en mi experiencia personal.

      Primero quiero decir que mi objetivo no es degradar a php ni mucho menos, de hecho me da la impresión que en el post menciono mas ventajas que desventajas, pero es globalmente reconocido que php no es perfecto, y tiene fallas de diseño que hacen que ciertos patrones sean bastante complicados de implementar, además, la historia ha demostrado (en repetidas ocasiones) que lo mas popular no es necesariamente lo mejor, ni lo mas conveniente.

      Como mencionas que en estos momentos estas aprendiendo, es muy probable que no hallas tenido que enfrentarte a situaciones complejas, pero cuando te enfrentes a proyectos mayores, y si además aprendes otras tecnologías (mi consejo es que no te estanques en una, porque este mundo nuestro cambia muy rápido y es muy exigente), te darás cuenta de que con otros lenguajes de programación se pueden resolver ciertos problemas de forma mucho mas elegante (y productiva), te darás cuenta también de que, por la naturaleza de php, hay que tener extremo cuidado a la hora de diseñar las aplicaciones, porque a la larga, éstas se hacen complicadas de mantener y extender debido a que es muy fácil caer en patrones incorrectos.

      En cuanto a las características que comentas, php se comunica con una buena cantidad de gestores de bases de datos (no solo con MySQL o PosgreeSQL) con buen rendimiento y utilizando APIs accesibles, pero esto es aplicable a cualquier tecnología de desarrollo de software que se respete, ya que es algo imprescindible para el desarrollo de aplicaciones en nuestros días.

      El “uso y mantenimiento fácil” (fíjate que lo pongo entre comillas) es siempre relativo, por ejemplo, si comparamos a primera vista a C++ con php, veremos que php es mas “fácil”, pero si comparamos a php con Python o Ruby, veremos que estos últimos son mas “fáciles”. Pero esto es engañoso, cuando las aplicaciones crecen la sintaxis de los lenguajes comienzan a pasar a un segundo plano, y dentro del “uso y mantenimiento fácil” comienza a tener mucho mas peso el diseño del software.

      En cuanto a java difiero, es el lenguaje con el que aprendí a programar pero hoy en día solamente lo uso para realizar aplicaciones para android. Como tecnología es excelente, pero el lenguaje de programación deja bastante que desear en cuanto a productividad.

      Y bueno, para terminar, que me he extendido demasiado, te digo que criticar no es malo, las críticas, siempre y cuando se miren de forma positiva nos ayudan a mejorar. Yo hago críticas constantes de las herramientas que uso y estoy en una búsqueda permanente de reemplazos, siempre y cuando sean para mejorar la calidad y productividad de lo que hago, para justamente, poder tener comida :).

      Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*