¿Por qué PHP en 2019?

Existen muchos lenguajes de programación en el área de las Tecnologías de la Información, pero sólo unas cuantas con una reputación tan desfavorable como la de PHP, pero ¿esta reputación es acertada? Y ¿Por qué uno de los lenguajes de programación más utilizados en el mundo es al mismo tiempo tan criticado? 🤔 ¡Averigüemoslo! 🕵🏻‍♂️

Un poco de historia…

PHP nace en 1995 de la mano del programador Rasmus Lerdorf, su objetivo no era muy ambicioso realmente, en ese momento él solo quería tener una serie de scripts para analizar las visitas de su propio sitio web: su currículum vitae online, eso ciertamente explica la razón del primero de sus nombres ´Personal Home Page Tools´ (Herramientas para páginas personales), así es, leíste bien, PHP para nada tenía la intención de ser un lenguaje de programación, por el contrario se trataba sólo de una serie de herramientas, de hecho en el anuncio oficial de PHP era descrito como “a set of small tight cgi binaries written in C.” (Un conjunto de pequeños binarios cgi escritos en C).

Pero a pesar del hecho de que no fue ideado para ser un lenguaje de programación, rápidamente ganó varios adeptos, bastantes de hecho, una de las principales razones para que esto sucediera es porque en ese momento no existían muchos lenguajes de programación que pudieran ser usados para Desarrollo Web (hay que recordar que el primer Navegador Web “Mosaic” acababa de nacer en 1993, por lo tanto el internet estaba aún en pañales) y los lenguajes de programación que existían como Ruby o Python necesitaban una gran curva de aprendizaje para crear una simple página web, a esto hay que sumar que estos lenguajes eran “lenguajes de programación de propósito general” lo que significa que pueden ser usados para desarrollar diferentes tipos de aplicaciones, a diferencia de PHP que desde el principio fue pensado como un conjunto de herramientas para el Desarrollo Web.

Otra cosa que ayudó a que PHP se convirtiera en uno de los lenguajes de programación para Desarrollo Web más usados es el boom de la “burbuja punto com” (bubble dot com), cuando muchas de las empresas se dieron cuenta del hecho de que si no estaban en Internet básicamente no existían.

Con el tiempo y mucha ayuda de la creciente comunidad de desarrolladores PHP poco a poco se convirtió sin lugar a dudas en un Lenguaje de Programación de propósito general, brindando una manera simple de programar Sitios Web y así su nombre evolucionó a como lo conocemos hoy, un acrónimo recursivo que significa PHP: Hypertext Preprocessor (PHP: Preprocesador de Hipertexto).

Entiendo, pero entonces, si era tan bueno, ¿cómo es que es tan polémico?

Bueno, como lo mencioné anteriormente, PHP no fue ideado para ser un lenguaje de programación, esto es muy importante de entender ya que significa que para lograr convertirse en uno necesitó ser adaptado por su creador de la mano de la comunidad, y como todos los programadores sabemos: planear después de programar siempre significa problemas

Estas desventajas se tradujeron en deficiencias si lo comparamos con otros lenguajes de programación que fueron bien planeados desde el principio.

Una de las principales críticas de PHP es su inconsistencia, pero no me crean a mi, déjame mejor mostrar un ejemplo:

Si exploramos un poco las funciones nativas que el lenguaje nos proporciona para manejo de strings nos encontraremos funciones como estas:

str_replace strpos substr

Echemos un vistazo, las tres funciones tienen como propósito manipular cadenas de caracteres pero la primera función utiliza “str” como prefijo y un “_“ guión bajo para separar las palabras, la segunda función también utiliza “str” como prefijo pero ¡Sorpresa! No usa el guión bajo para separar las palabras, y la última función ni siquiera utiliza el prefijo “str” por el contrario, lo usa como postfijo y tampoco utiliza el guión bajo para separar las palabras. Ahora imagina que tienes que adivinar el nombre de una función que busque una cadena de caracteres dentro de otra, ¿cuál convención tendría? ¿Ahora entienden el problema?

Como pueden ver la inconsistencia es bastante clara, y ese tipo de inconvenientes los encuentran en varias funciones del lenguaje, no sólo en aquellas relacionadas con strings, y eso puede resultar bastante desafiante cuando tienes que recordar cual función utilizar y vuelve complicado empezar con un desarrollo sin tener que verificar la documentación oficial varias veces.

Otra desventaja era la falta de “cosas básicas” que otros lenguajes de programación tenían desde sus inicios, como Propiedades Tipeadas(con suerte las tendremos en PHP 7.4) o como el paradigma de Programación Orientada a Objetos como parte inherente al lenguaje como Java (no puedes desarrollar en Java si no es Orientado a Objetos), también las Sugerencias de Tipo de Retorno (recientemente añadidas en PHP 7.1) o la falta de estructuras de datos nativas en versiones antigüas del lenguaje, ya que al principio la única estructura de datos existente en PHP era el array, que en realidad internamente es un Hash Table pero eso significa que tenían que crear sus propias estructuras de datos desde cero cuando las necesibaban. Ahora gracias a las clases SPL tenemos más opciones.

Todos estos problemas son la principales razones (pero no las únicas) que explican el porqué PHP es tan criticado, sobretodo por los desarrolladores más puristas y los fanáticos de otros lenguajes de programación, también si tomamos en cuenta que desde el nacimiento de PHP han surgido muchos lenguajes de programación que fueron creados con más consciencia en los detalles y tomando en cuenta las necesidades actuales del Desarrollo Web, entonces puedes entender de donde viene tanta controversia.

Entonces ¿Por qué usar PHP en 2019?

Bueno, muchas cosas han pasado desde aquellos días, muchos de las desventajas asociadas al lenguaje aún están ahí, como la incosistencia en el nombrado de funciones, pero muchos otros no son un problema ya.

Al principio todos estaban acostumbrados a programar en PHP como se les venía en gana, dado que PHP no impone ningún paradigma de programación a utilizar significa que podías escribir un sitio web entero en un solo archivo, o que podías hacerlo con Programación Orientada a Objetos creando tantos archivos y clases como necesitaras, también si necesitabas una librería de terceros entonces tenías que buscarla, descargarla manualmente y agregarla a tu projecto.

Desde entonces ¡nació PHP-FIG! FIG son siglas de “Framework Interoperability Group” (Grupo de Interoperabilidad de Marcos de Trabajo) que básicamente es un grupo de personas intentando crear algunos estándares para el Desarrollo Moderno con PHP esto lo hacen a través de PSR’s (PHP Standard Recommendations) (Recomendaciones de estándares para PHP) que ayudan a los desarrolladores en usar algunos estándares en sus aplicaciones para así convertirlas en eficientes y modernas aplicaciones web que serán bastante similares a otras que usen los mismos estándares.

También ahora tenemos Frameworks o Marcos de Trabajo (muchos, de hecho) como Symfony, Laravel, CakePHP, Zend, Yii, etc. Cada uno de ellos intenta darnos una forma de desarrollar Aplicaciones Web modernas basadas en PHP. En mi opinión los frameworks fueron la clave para darle a PHP un segundo respiro, gracias a ellos ahora podemos desarrollar de una forma más rápida, limpia y poderosa desde pequeñas hasta grandes aplicaciones.

Actualmente tenemos herramientas muy útiles como Composer, que resuelve el problema de la administración de dependencias de una manera inteligente, permitiéndonos así tener la última versión de alguna librería de terceros, o incluso obtener una versión específica de la misma, también nos ayuda a tener un gran repositorio de librerías de terceros que cualquier desarrollador puede utilizar de forma simple en sus proyectos.

De acuerdo con el índice TIOBE (un índice de los Lenguajes de programación más populares del mundo) al momento de escribir esto (Febrero del 2019) PHP es el lenguaje de programación número 9 en la lista, justo debajo de C# y arriba de SQL, incluso por encima de lenguajes como Swift (lugar 20), Go (lugar 18), ó Ruby (lugar 16), eso demuestra claramente que PHP no está para nada muerto, por el contrario, creo que su futuro es bastante prometedor.

Puedes revisar también la lista de los sitios más populares del mundo. Notarás que al menos 5 de ellos utilizan PHP de una forma o de otra. PHP es aún uno de los lenguajes de programación recomendados para aprender este año por muchos sitios y PHP es utilizado por 78.9% de todos los sitios web que utilizan lenguajes de programación del lado del servidor.

Conclusión

PHP está lejos de ser el mejor lenguaje de programación, fue diseñado como un conjunto de scripts que evolucionaron hasta ser un lenguaje de programación y ahora ha evolucionado hasta convertirse en uno de los lenguajes más utilizados para el desarrollo web. Y como cualquier evolución se ha adaptado constantemente a los cambios, a las necesidades de los programadores, siempre intentando en ser mejor cada vez, a veces incluso copiando algunas de las características de viejos y nuevos lenguajes que fueron bien planeados desde el principio, pero eso es parte de la evolución.

El principal problema con PHP nunca fue PHP realmente, sino nosotros, los desarrolladores, que desde el principio intentábamos construir aplicaciones sin preocuparnos por los estándares, o la mantenibilidad, sin enfocarnos en las pruebas unitarias o ni siquiera en que nuestro código fuera legible. Todo eso resultó en montones de viejas (y algunas nuevas) Aplicaciones Web que ahora mismo parecen inmantenibles, sin estructura, con código PHP mezclado con etiquetas HTML y código Javascript o CSS… Todo eso es lo que realmente causó una profundo e infundado aversión a PHP.

Actualmente PHP es muchas de las veces el lenguaje de programación ideal para algunas Aplicaciones Web Modernas y estas serán mantenibles, robustas, rápidas, limpias y se podrán conectar fácilmente con otras tecnologías populares.

En Linio usamos PHP desde el principio para multitud de proyectos y actualmente aún lo utilizaremos para algunos proyectos futuros y estamos convencidos que PHP es una buena opción tan buena como cualquiera.

No odies a PHP, realmente no lo merece.

Share this: