Hoy tenemos una comparativa especial, 2 lenguajes de scripting. PHP un lenguaje con madurez y trayectoria vs el popular y muy poderoso JavaScript.
Como bien sabemos ambos son lenguajes de scripting aunque trabajan de maneras muy diferentes. Mientras PHP es un lenguaje diseñado para trabajar del lado del servidor, en el backend del sitio, JavaScript está diseñado para trabajar del lado del cliente en el Navegador Web.
Comencemos entonce con el versus: PHP vs Javascript, para comprender sus principales diferencias.
Contenido
Conociendo PHP
PHP:Hypertext Preprocessor fue desarrollado en 1994 como un lenguaje de programación general utilizado mayormente en la web, aunque también lo podemos utilizar en scripts.
Es cierto que PHP es un lenguaje muy odiado y desde hace varios años muchos vienen prediciendo su muerte. Pero nada está más lejos de la realidad. En un principio es cierto que PHP era super lento, le costó mucho evolucionar y tenia muchos errores.
Algo que también chocaba mucho de PHP es que no tenía tipado ninguno y la orientación a objetos era nula. Por lo que permitía malas prácticas de programación dada su gran flexibilidad.
Hoy en día sigue siendo muy flexible, es débilmente tipado y las malas prácticas siguen teniendo lugar en este lenguaje. Aunque debemos admitir que ha mejorado muchísimo.
Hoy es un lenguaje maduro con una gran documentación y una comunidad muy activa. Su velocidad de respuesta a crecido significativamente, nos permite definir tipos a las variables y desde ya hace varios años que cuenta con Orientación a Objetos.
En PHP podemos encontrar cientos de librerías para hacer casi cualquier cosa. Por otra parte, existen varios frameworks como Laravel o Symfony que nos permiten mejor nuestras prácticas de programación y seguir el patrón MVC.
Y no nos olvidemos de los tan populares Gestores de Contenido (CMS) como lo son WordPress, Prestashop, Magento, Drupal, Joomla, etc.
PHP está muy lejos de morir, ya que en la actualidad es el lenguaje más utilizado a nivel de sitios web del lado del servidor. Lo podemos comprobar en el histórico de w3techs. Donde nos confirma que PHP tiene una cuota del 79.0% de los sitios en la web.
Conociendo JavaScript
JavaScript surgió en 1995 como una solución para crear páginas dinámicas. Pese a su nombre este comparte con Java solo algunos nombres y convenciones de este lenguaje, pues en semántica y propósitos son muy diferentes.
Al igual que PHP es un lenguaje interpretado y débilmente tipado. Está orientado a objetos y basado en prototipos. Es un lenguaje dinámico creado para correr en el navegador del lado del cliente.
La comunicación entre JavaScript y el backend se dio con el surgimiento de AJAX (Asynchronous JavaScript And XML) permitiendo crear aplicaciones interactivas que se comunican de forma asíncrona con el servidor.
Aunque también es posible utilizar JavaScript del lado del servidor con tecnologías como Node JS. Como vimos en artículos anteriores este maneja un único hilo, haciéndolo ideal para aplicaciones en tiempo real, chats, streaming, mensajería y similares.
Actualmente JavaScript es el lenguaje más utilizado, ya que no importa el lenguaje que utilices para el Backend en el Front-end se utiliza JavaScript o su hermano TypeScript.
Para los que desconocen, TypeScript es un superconjunto de JavaScript que agrega tipos estáticos y objetos basados en clases. Por ejemplo si trabajamos con Angular este utiliza TypeScript.
En StackOverflow Survey 2020 podemos ver que claramente JavaScript es la tecnología más utilizada al momento con un 67.7%. Luego le siguen HTML/CSS y SQL.
¿Para qué sirve PHP?
PHP tiene sus ventajas como ser un lenguaje multiplataforma ya que corre en diferentes Sistemas Operativos, incluso podemos manejar múltiples Versiones de PHP en un mismo servidor. Haciendo que sea el lenguaje ideal para hospedar diferentes sitios en un mismo servidor y por ello es que podemos encontrar Hosting PHP tan barato.
PHP del lado del servidor
Del lado del servidor esté nos permite realizar casi cualquier cosa que permite CGI (Common Gateway Interface). Algunos ejemplos son generar páginas con contenido dinámico, recolectar datos de formularios, enviar y recibir cookies, aunque PHP puede realizar mucho más hoy en día.
Un detalles es que podemos agregar código PHP en nuestra páginas HTML, este código se ejecutará del lado del servidor y generará el código HTML necesario para mostrar la información.
PHP por consola
Al ser un lenguaje de scripting nos permite realizar script para ejecutar vía consola directamente en el servidor. Para ello solo necesitamos tener el analizador de PHP. De esta forma es como se instalan Frameworks como Laravel he incluso podemos correr comandos para crear Modelos, Controladores, etc.
Estos scripts que desarrollamos con PHP además de correrlos en consola los podemos ejecutar de forma automática al agregarlos al Cron o Planificador de Tareas en Windows.
¿PHP en Escritorio?
Sin duda no es un lenguaje diseñado para utilizar en el escritorio y en este ambiente podemos utilizar tecnologías más adecuadas como Java o .Net. Pero sin duda es algo que podemos hacer gracias a PHP-GTK.
PHP-GTK es una extensión para PHP que tiene un binding (adaptación de la biblioteca) GTK+. Esta provee una interfaz orientada objetos para las funciones y clases de GTK+, lo que permite crear programas de escritorio multiplataforma con Interfaz Gráfica.
¿Para qué sirve JavaScript?
JavaScript tiene la ventaja de ser un lenguaje liviano diseñado para trabajar del lado del cliente, fácil de implementar y que nos ayuda a tener control sobre el navegador.
Pero este tiene sus desventajas, al ser diseñado para el Front-end este no ofrece conexión a base de datos y además puede verse el código luego de la salida ya que se ejecuta en el navegador. Algo que no pasa con otros lenguajes.
JavaScript en la Web
Este es uno de sus usos más conocidos y para el cual fue diseñado. Por si aún no lo sabes la mayoría de los sitios utilizan JavaScript para hacer las páginas dinámicas. Además podemos realizar animaciones y traer información del servidor de forma asíncrona con AJAX.
Otro uso del lado de la web es la validación de formularios en tiempo real. En resumen JavaScript nos permite modificar el contenido de un sitio sin necesidad de recargar la página.
Presentaciones en JavaScript
Siguiendo con el criterio de JavaScript en el desarrollo de paginas dinámicas es posible crear sitios web que funcionen como presentaciones. Claro está que para ello también vamos a hacer uso de HTML y CSS.
En estas presentaciones podemos agregar interacciones, animaciones y distinto tipo de contenido. Un ejemplo puede ser un catálogo de productos a modo de mailing o también podemos realizar presentaciones de esta forma para proyectos educativos y darle un toque de programación.
JavaScript del lado del Servidor
Desde un principio mencionamos que se puede utilizar JavaScript del lado del servidor gracias a Node JS. Ese se basa en el motor V8 de Chrome permitiendo crear aplicaciones enteramente con un único Lenguaje, JavaScript.
Las aplicaciones en Node JS tienen la particularidad de que son muy livianas y rápidas de desarrollar. Otra ventaja es que se maneja con eventos, por lo que no necesita esperar una respuesta del servidor. Además trabaja con un único hilo permitiendo miles de conexiones en simultáneo con un bajo consumo de recursos.
Node JS es ideal para desarrollar aplicaciones que trabajan en tiempo real, como Streaming, Chats, etc. Siendo pésima para aplicaciones con muchos cálculos o uso intensivo de CPU. Hay que destacar además, que Node no tiene soporte para Bases de Datos relacionales sino que trabaja con MongoDB
Con Node podemos crear el servidor HTTP utilizando el motodo createServer(). Este módulo puede ser instalado de forma muy sencilla utilizando el comando:
npm install -g http-server
Juegos y Arte
Junto con la llegada de HTML 5 y sus mejoras en el componente Canvas, ahora se pueden renderizar figuras 3D en el navegador. Esto permite crear herramientas de Arte en el navegador.
En cuanto a los juegos, con estas nuevas características el navegador a logrado ser visto como una nueva plataforma de juegos. Donde los juegos cada vez se vuelven más avanzado y completos.
Aplicaciones Móviles
Gracias a herramientas como React Native es posible programar una solo vez tanto para Android como para Apple. Utilizando JavaScript se puede programar para ambas plataformas al mismo tiempo y luego compilarlo para cada uno de ellas.
Obviamente esas soluciones no ofrecen una performance tan buena como aplicaciones realmente nativas, realizadas de forma específica para Android o IOS. Pero no dejan de ser una muy buena herramienta ideal para aplicaciones pequeñas y medianas.
Incluir Código en el HTML
Con ambos lenguajes podemos imprimir texto desde el HTML de forma muys similar.
Con JavaScript podemos hacerlo con el uso de la etiqueta script como veremos a continuación. Sin la necesidad de instalar complementos extra del lado del servidor.
<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">
document.write("Hola Mundo en JavaScript");
</script>
</body>
</html>
En cuanto a PHP lo que se hace es insertar código PHP en nuestro HTML. Este codigo PHP es procesado del lado del servidor y el intérprete de PHP devuelve todo en código HTML. En este caso si necesitamos contar con un servidor PHP para que funcione.
<!DOCTYPE html> <html> <head> <title>Example</title> </head> <body> <?php echo "Hola Mundo en PHP script"; ?> </body> </html>
PHP vs JavaScript – Tabla Comparativa
PHP | JavaScript | |
---|---|---|
Orientación a Objetos | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] Si | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] Si |
Lenguaje de Scripting | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] Del lado del Servidor | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] Full-stack |
Sensibilidad a Mayúsculas y Minúsculas en Funciones | [wp-svg-icons icon=»cancel-circle» wrap=»i»] No | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] Si |
Intercambio entre Objetos y Arrays | [wp-svg-icons icon=»cancel-circle» wrap=»i»] No | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] Si |
Multiplataforma | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] Si | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] Si |
Soporte para Base de Datos | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] SQL | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] No SQL |
Performance | [wp-svg-icons icon=»cancel-circle» wrap=»i»] Un poco más lento | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] Más rápido |
Hilos | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] Multi-hilos | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] Un solo hilo |
Aprendizaje | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] Más Simple | [wp-svg-icons icon=»cancel-circle» wrap=»i»] Más Complejo |
Más adecuado en | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] Blogs, E-commerce, Learning, sistemas de Gestion, etc. | [wp-svg-icons icon=»checkmark-circle» wrap=»i»] Streaming, Front-end, Chats, Animaciones, Juegos |
Resumen de PHP vs Javascript
PHP y Javascriptph son lenguajes que si bien tienen sus similitudes, están diseñados con fines totalmente diferentes. En este caso es muy evidente cuando utilizar uno u otro si al lado del servidor nos referimos. Pues JavaScript puede ser agregado en cualquier Sitio Web.
Si vas a realizar un sitio que realiza cálculos, osea que es más intensivo en uso de CPU, que debe ser más estructurado con una base de datos relacional (SQL). En ese caso el adecuado es PHP u otro lenguaje diseñado para el Backend como Ruby o Python.
Por otra parte, si tu objetivo es realizar Streaming, Chats, Juegos o una aplicación que necesita de la comunicación en tiempo real, sin necesidad de la estructura de una Base de Datos SQL. JavaScript es ideal para tu proyecto.
¿Y tu ya sabes utilizar Node JS? No esperes más y comienza con nuestras guías introductorias.