¿Es PHP un lenguaje sólo para principiantes?

Algo que vengo oyendo y leyendo mucho es esta creencia de que PHP es un lenguaje sólo para principiantes o para desarrollos «poco serios» y una cantidad de otras formas de significar que PHP es un lenguaje de segunda.

Me recuerda a esta simpática imagen:

Obviamente, mi opinión es la contraria y no puedo perder la oportunidad de expresar mi punto de vista (y esperablemente esclarecer un poco :)).

¿De dónde viene esta creencia?

PHP es un lenguaje que no ha sido pensado con un plan de largo plazo. Ha crecido orgánicamente mucho más allá de su objetivo original (una simple herramienta para ayudar a generar scripts CGI) y ese crecimiento ha sido ciertamente desordenado (hasta hace un tiempo al menos).

La consecuencia directa de este objetivo es que PHP fue pensado como una herramienta para resolver rápido, sin importar mucho su purezaelegancia.

El hecho es que, hasta la versión 4 del lenguaje, el código (y el ecosistema general de PHP) era bastante poco fiable.

Mucha gente que conoció el lenguaje en aquel entonces decidió abandonarlo y su imagen de él se ha quedado ahí.

Sin embargo, PHP ha tenido una evolución importantísima en los últimos años. La versión 5 fue una re-escritura completa del motor, lo cual le dió muchísimas características más potentes (Como un manejo mucho mejor de los conceptos de Programación Orientada a Objetos) y a partir de la versión 5.4 su aceleración ha sido realmente impresionante.

Otra característica que genera mucha controversia alrededor de PHP es su poca estructura.

Algo que me gusta decir en mis cursos de PHP es:

Lo bueno de PHP es que se necesita muy poco conocimiento para lograr una aplicación funcional… Lo malo de PHP es que se necesita muy poco conocimiento para lograr una aplicación funcional

Esto ha sido lo que ha posibilitado a PHP alcanzar el nivel de popularidad de que goza actualmente: mucha gente se ha animado a escribir aplicaciones y ponerlas en línea sin contar con conocimientos avanzados de programación… el problema es quién y cómo se le da mantenimiento a dichas aplicaciones…

En este sentido, sí es una crítica válida decir que PHP deja mucha responsabilidad del lado del desarrollador en lo que a escribir buen código se refiere (Otros lenguajes con estructuras más rígidas tienen menos chances de tener este problema, aunque siempre se puede encontrar código malo independientemente de qué lenguaje haya sido utilizado para escribirlo).

¿Es posible desarrollar aplicaciones profesionales usando PHP?

Desarrollar aplicaciones profesionales, bien estructuradas y robustas es perfectamente posible usando PHP… simplemente no es lo más común.

Aún así, existen paquetes de software ampliamente utilizados que están soportados por PHP, entre ellos:

Nuevamente, el desarrollar buen código no depende tanto de la calidad del lenguaje si no de la del desarrollador.

El secreto hoy en día pasa más por elegir bien el framework a utilizar más que por el lenguaje.

¿Las aplicaciones PHP son más inseguras que las de otros lenguajes?

Otra creencia muy difundida es que las aplicaciones PHP son inherentemente más inseguras que las desarrolladas en otros lenguajes.

Para responder a esto hay que conocer cuáles son los puntos débiles que podría explotar un atacante.

En una típica aplicación web con PHP existe una serie de elementos que se combinan:

  • Un servidor web
  • Un intérprete de PHP
  • Un servidor de Bases de datos

Cualquiera de estos puntos puede ser vulnerado si se tienen las habilidades suficientes y si el software de base no está debidamente actualizado.

Dejando de lado los ataques que podría sufrir un servidor web o uno de base de datos (Que claramente son los mismos que podría sufrir una aplicación desarrollada en cualquier otro lenguaje), los puntos débiles propios de PHP son el intérprete y el código mismo de la aplicación.

Respecto del intérprete, debe ser tomado como parte del software de base. Si hay problemas de seguridad ahí todos los sitios hechos con PHP serán potenciales víctimas… algo como lo que pasó hace un tiempo con los bugs de Intel. Afortunadamente, si se usa siempre alguna versión soportada oficialmente de PHP los parches no tardan en aparecer.

Con lo cual, como era de imaginar, el punto más delicado es la propia aplicación… volvemos al punto anterior: es posible escribir código inseguro en cualquier lenguaje… la seguridad de tu aplicación dependerá de cómo la hayas escrito (Un simple ejemplo de cómo proteger tu aplicación PHP de un ataque muy común como la inyección de sql puedes leerlo acá).

¿Qué otras consideraciones deben tomarse aparte del lenguaje en sí mismo?

Otro punto muy importante a la hora de elegir un lenguaje de programación es el ecosistema que lo rodea: una aplicación (web o no) no es sólo código escrito en algún archivo de texto.

Es importante poder contestar a estas preguntas de manera satisfactoria:

  1. Cuando tenga una duda, ¿dónde podré consultarla?
  2. ¿Cómo se incorporarán las nuevas tecnologías a este lenguaje?
  3. ¿Cómo instalaré mi aplicación en el entorno productivo?
  4. ¿Cuánto de mi trabajo será «Reinventar la rueda»?

En este sentido, PHP va muy bien:

  • La comunidad de PHP es enorme
  • El lenguaje está en constante evolución (El hecho de que sea un lenguaje desarrollado como código abierto ayuda un montón)
  • Instalar una aplicación en entorno productivo es extremadamente sencillo (Basta con un cliente de FTP)
  • La cantidad de librerías disponibles es gigantesca (Te recomiendo leer sobre Composer para más información)

Conclusión

La mayoría de las críticas que recibe PHP están basadas en lo que el lenguaje alguna vez fue, no en lo que es hoy.

Esto no significa que el lenguaje sea perfecto ni mucho menos, tiene todavía muchos aspectos por mejorar, pero ciertamente está al nivel de cualquier otro competidor.

Más allá de las falencias que tiene PHP como lenguaje (Y sí, son unas cuantas), la realidad es que es difícil ganarle en cuanto a practicidad.

Desarrollar una aplicación para la web en PHP es realmente simple, mientras que hacerlo en otro entorno seguro que conllevará un esfuerzo mayor.

mchojrin

Por mchojrin

Ayudo a desarrolladores PHP a acceder mercados y clientes más sofisticados y exigentes

¿Te quedó alguna duda? Publica aca tu pregunta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.