Lo estabas deseando. PHP Vs Python
Lo estabas deseando: PHP Vs Python
Detesto las entrevistas técnicas como todo el mundo. Pero SÍ hay algo que me gusta de ellas: las preguntas que no me haya planteado previamente yo con anterioridad. Normalmente no da tiempo a desarrollar una respuesta que a uno le guste, ya sabéis los que me conocen lo perfeccionista que soy. Una de ellas ha sido esta semana:
"¿Qué ventajas ves en Python frente a PHP?".
Me ha parecido interesante y he decidido escribir un artículo al respecto desde un espectro amplio y no muy técnico.
PHP y Python. Ambos son lenguajes de alto nivel y para mí, no tienen rivales a la hora de crear una aplicaciones web. Vaale, Javascript también es muy bueno, pero es gracias a sus frameworks (React, Angular, Vue, Express), no me lo neguéis. 😬
Yo comencé con PHP a hacer webs, y tengo más de 15 años de experiencia con él. Aunque sigo el panorama de este último, me he cambiado de bando, y Python lleva siendo mi lenguaje favorito desde hace 3 ó 4 años. No me arrepiento, y no es por la IA o el Machine Learning, que también, sino por su sintaxis clara y legible, su versatilidad y la comunidad que lo respalda. Pero no adelantemos acontecimientos...
Lo Mejor de PHP
PHP ha sido durante mucho tiempo el rey del desarrollo web, gracias en los últimos años a WordPress o frameworks como Laravel ♥️. Fue diseñado desde sus inicios para la creación de sitios web dinámicos como lenguaje de scripting, lo que lo hace un lenguaje orientado específicamente a entornos web. Las características que creemos algunos, no solo yo, la hacen más interesantes son:
Especialización en desarrollo Web: Con funciones y características optimizadas para crear contenido dinámico junto con HTML a través de etiquetas, formularios o una forma muy sencilla de gestionar sesiones en el servidor.
Facilidad de integración y librerías: ¿Dónde no puedes ejecutar hoy día un servidor PHP?. Cualquier hosting está soportado nativamente por todos los principales proveedores de alojamiento. No olvidemos que herramientas sin competencia como
composer
nos permiten usar librerías para cualquier funcionalidad que necesitemos. Y lo mejor, casi siempre actualizadas, cosas que no pueden decir otras como en el mundo React (¡Ejem!).Comunidad amplia y madurez del ecosistema: La comunidad de desarrolladores de PHP es muy extensa y hoy día, experimentada. MUCHO. Cualquier problema al que te enfrentes, ya está solucionado en algún foro, blog o vídeo de YouTube. Para mí es un punto importante, porque cuando me enfrenté a Rust me sentí solo en el mundo, sobretodo por su comunidad algo tóxica, y no soy el único que lo piensa. Al final lo acabé abandonando.
Costo-efectividad: Bueno, puede ser porque conozco un framework PHP (¡Laravel! 😍) mejor que a mi mísmo. Esto me ha permitido lanzar rápidamente un MVP. ¿Qué sería del mundo sin WordPress también?. Aunque lo odio, para proyectos pequeños o medianos, PHP es una opción que veo muy atractiva. Y ha dado de comer a muchos que se hacen llamar desarrolladores, pobrecitos.
Me quedaría comentar algunas ventajas técnicas como la velocidad de ejecución, los Namespaces
, la fantástica Clase PDO
o el gran soporte para múltiples estilos de arquitectura, pero no quiero extenderme mucho y creo que lo dejaré para un segundo artículo mas técnico.
Lo Mejor de Python
Python, creado a principios de los años 90 (diciembre de 1989 para ser exactos), ha ganado una gran popularidad en la última década debido a su simplicidad, a la comunidad científica, al Machine Learning y venga va, a la Inteligencia Artificial, ya lo he dicho.
Fue creado como descendiente de ABC que atraería a hackers de Unix/C. Sus competidores directos eran Perl y Ruby, pero creo que ha superado a ambos en popularidad y uso.
Su versatilidad y un enfoque que favorece la legibilidad del código, la han hecho popular en la comunidad de científicos, matemáticos y ha contagiado a gran parte de desarrolladores en todo el mundo. Es por eso que dentro del mundo IoT ha ganado mucha popularidad, y se montan escuelas de programación para niños con Python como lenguaje de inicio. Inglaterra es un ejemplo de ello con la Raspberry Pi.
A diferencia de PHP, Python no fue diseñado exclusivamente para la web, y esto para mí es uno de sus puntos fuertes, ya que antes como desarrolladores, teníamos que crear sobretodo webs (hoy día es un mercado algo saturado)... Bored! Not anymore.
Vamos con sus puntos fuertes:
- Sintaxis clara y legible: Lo que prioriza la legibilidad del código y facilita enormemente la colaboración entre desarrolladores y mantenibilidad del código, sobretodo en el tiempo. Uno de los principios de Python es: "There should be one—and preferably only one—obvious way to do it" (Debería haber una, y preferentemente solo una, manera obvia de hacerlo).
Versatilidad más allá de la Web: Ya lo he comentado, Python es un lenguaje multipropósito. Aparte de los mencionados usos, nos vale para la automatización de tareas, análisis de datos, herramientas GUI/TUI, incluso desarrollo de videojuegos. Esto lo convierte en un lenguaje ideal para desarrolladores que desean trabajar en múltiples disciplinas. La versatilidad fue una de las razones por las que me decanté por Javascript en su día, ya que me permitió hacer incluso apps móviles durante casi una década.
Frameworks potentes para desarrollo y bibliotecas: Python cuenta con frameworks web potentes y modernos como Django, Flask o el New Kid on the Block, FastAPI. Permiten desarrollar aplicaciones escalables, seguras y eficientes en poco tiempo. Python es el lenguaje dominante en el ámbito del análisis de datos, gracias a la vasta cantidad de bibliotecas científicas y herramientas para cualquier cosa que se te ocurra. Me vienen a la cabeza NumPy, Pandas, Scikit-learn, Keras, OpenCV y TensorFlow. Es la mejor opción actualmente para empresas que requieren procesamiento de datos o capacidades de inteligencia artificial en sus aplicaciones, sean del tipo de sean.
De nuevo, como características técnicas, me quedaría comentar la simplicidad de la programación orientada a objetos, la implementación de @decorators
o la facilidad de integración con otros lenguajes como C o Rust.
PHP Gana a Python
A pesar del creciente interés en Python, sorry pero PHP sigue siendo una elección sólida en muchas circunstancias:
Desempeño en aplicaciones Web: Para aplicaciones web al uso que requieran manejar grandes volúmenes de solicitudes HTTP sin una lógica de procesamiento compleja. PHP es extremadamente eficiente y puede manejar múltiples solicitudes simultáneamente sin necesidad de infraestructura adicional, lo que lo convierte en una elección sólida para aplicaciones con tráfico elevado. Lo afirmo si, PHP es más rápido que Python en aplicaciones web. Os lo demuestro otro día.
Hosting económico y soporte en servidores de terceros: PHP es soportado nativamente por la mayoría de los servidores web, simplificando así su configuración y despliegue. Además, los planes de alojamiento web compartido son significativamente más baratos para aplicaciones PHP, reduciendo el costo total de desarrollo, especialmente en comparación con las opciones de hosting para aplicaciones Python, que muchas no he buscado, la verdad. Siempre he desplegado en máquinas virtuales o servidores dedicados.
Facilidad de uso con CMS populares: Como he comentado, muchos sistemas de gestión de contenidos (CMS) populares están basados en PHP. Esto hace que sea la opción predeterminada para proyectos que requieren la integración con estos CMS, o para sitios que dependen de plugins y/o temas existentes.
Mayor madurez en herramientas de Backend: PHP tiene una larga trayectoria en el desarrollo backend y cuenta con herramientas maduras para la creación de APIs RESTful, autenticación y control de sesiones. Estas características son las que me han dado de comer durante años, y no me puedo quejar.
Python Gana a PHP
Python ha ganado popularidad a pasos agigantados en la última década, y hay razones claras por las cuales muchos desarrolladores y empresas preferimos Python sobre PHP:
Legibilidad del código, debug y mantenibilidad: Su sintaxis clara y legible hacen que el desarrollo y la depuración sean más fáciles (mucho más al menos que PHP y XDebug, vaya PITA). La mantenibilidad del código es crucial, y aquí Python me parece algo mas limpio. El código puede volverse rápidamente caótico en proyectos grandes si el lenguaje no favorece la legibilidad y la organización. Os lo puedo asegurar. Que si, que la arquitertura que usemos es lo que va a definir esto, pero también importa el lenguaje. ¿O no?.
Versatilidad y aplicaciones de alto nivel: Python es una plataforma completa para múltiples propósitos: Backend, Jupyter Notebook, procesamiento de datos, IA. Aquí gana la batalla a casi todos los lenguajes existentes.
Desarrollo rápido y prototipado: Especialmente con frameworks como Django. Su enfoque "convention over configuration" (convención sobre configuración) reduce el tiempo necesario para establecer una infraestructura básica. Nosotros solo debemos centrarnos en la lógica de negocio y las funcionalidades.
Futuro de la Inteligencia Artificial y Machine Learning: No podía dejar de mencionar que es el lenguaje elegido para el desarrollo de IA y Machine Learning. Muchas empresas ven en él el futuro de sus negocios, gracias a su compatibilidad con herramientas de última generación, SDKs listas para Python por las grandes empresas que ofrecen IA y a la comunidad activa que respalda dichos desarrollos.
Palabras Finales
La batalla entre PHP y Python no tiene un claro ganador, ya que depende en gran medida del contexto y las necesidades del proyecto.
Espeera,... luego me mojo.
PHP sigue siendo la opción predilecta para el desarrollo web tradicional, especialmente cuando se buscan costos bajos y una integración fácil con CMS establecidos. Python, por otro lado, es el lenguaje elegido para proyectos que buscan un enfoque en tecnologías modernas como la IA y la ciencia de datos.
No he querido comentar las debilidades de cada uno, pero os dejo un par de chistecillos que se me han ocurrido mientras escribía este artículo:
Un compañero PHP se encuentra a otro de Python: "¡Qué tal, P. GIL!. Mira, pasa por recursos humanos que quieren hablar contigo..."
Un abogado PHP frente al juez: "...Y aquí es donde termino mi línea de argumentación, señoría. ¡Punto y coma!"
Ambos lenguajes tienen un lugar en el ecosistema de desarrollo moderno, y cada uno ofrece herramientas y recursos únicos que pueden resultar cruciales para el éxito de un proyecto, pero no voy a ser como otros y decir que ambos son igual de buenos. No, no lo son. PYTHON ES MEJOR.
FIN. 😂