Dev Choice: PHP vs Node JS
Cuando hablamos de desarrollo web hay 2 opciones que son muy populares entre los desarrolladores cuando se trata de crear un backend, o lo que es lo mismo, el núcleo de un proyecto, estas dos tecnologías de las que hablaremos hoy son PHP y Node JS
PHP
PHP es un acrónimo para Hypertext Preprocessor, este lenguaje fue creado en 1994 por Rasmus Lerdorf con el propósito de crear sitios web robustos y estables. Este lenguaje puede contener dentro de sus scripts HTML, CSS y Javascript.
Node JS
Node JS es un ambiente de desarrollo y ejecución construido sobre el motor Javascript de Google, conocido como V8. Surgió como una alternativa para construir aplicaciones altamente escalables y de construcción bastante rápida las cuales no tienen un grado de complejidad muy alto. Fue creado en Mayo de 2017 por Ryan Dahl.
Diferencias durante la ejecución de una app
PHP corre de manera síncrona, esto quiere decir que solo se puede ejecutar un proceso o función del script PHP a la vez, si esta función toma demasiado tiempo en ejecutarse entonces habrá un tiempo de espera en la aplicación o sistema que puede dar la ilusión al usuario de que dicho programa es lento o no funciona.
Node JS es de naturaleza asíncrona, contrario a PHP, es capaz de ejecutar varias funciones a la vez sin necesidad de esperar a que alguna de ellas termine para poder continuar con la ejecución.
Grado de complejidad usando ambos lenguajes
PHP requiere un amplio entendimiento de la programación estructurada ya que manejamos clases e instancias de las mismas, además de que el conocimiento de lenguajes como HTML, CSS y Javascript resulta imprescindible si queremos desarrollar un sistema o aplicación utilizando esta tecnología.
Cuando se trata de Node JS las cosas son más sencillas, al ser Javascript un lenguaje muy común y fácil de entender, la transición entre trabajar en el frontend y backend de un sistema es muy poco notable y además es bastante cómoda, sin mencionar que los frameworks para trabajar con Node JS son bastante útiles y fáciles de integrar.
Frameworks
Ambos lenguajes cuentan con varios frameworks que nos facilitan el desarrollo de sistemas y además aceleran el ritmo de producción entre otros beneficios.
Para PHP los principales frameworks son Laravel, Codeigniter y Cakephp aunque existen más.
Cuando se trata de Node JS, Express parece ser el framework por excelencia para el desarrollo de APIs, existen también frameworks que hacen uso del modelo MVC como Meteor y Derby
Bases de datos
PHP es comúnmente usado en conjunto con bases de datos relaciones como MariaDB, MySQL, PostgreSQL y SQL Server, también se puede usar con bases de datos de tipo no relacional aunque esto no es muy popular.
Node es casi siempre relacionado con MongoDB y otras bases de datos NoSQL, pero recientemente ha tomado mucha popularidad la integración con bases de datos de grafos como GraphQL y Neo4j
Utilidad
Llegamos a la parte importante del post, en la cual veremos para que es óptima cada tecnología.
PHP es sin duda uno de los mejores lenguajes para desarrollar CMS (Content Management Systems) lo utilizan sitios y empresas muy populares como por ejemplo Wordpress y Drupal para crear desde blogs y websites hasta complejas tiendas en linea.
Node JS es más útil cuando queremos desarrollar de manera sencilla y segura sitios uni página pero principalmente cuando el tiempo de respuesta es esencial para nuestra app, por ejemplo sitios de streaming o chats son los más beneficiados por esta tecnología.