¿Cuál es la diferencia entre PHP y Node.js?

Tanto PHP como Node.js se ejecutan en el lado del servidor, y ambos son opciones viables para crear sitios web. Pero hay diferencias centrales entre ellos.

En primer lugar, uno no es mejor que el otro. Vamos a deshacernos de ese argumento ahora. Se adaptan a diferentes casos de uso, y a menudo tiene sentido usar ambos juntos en un solo sitio.

Ahora, a las diferencias.

1. Madurez
PHP ha existido por años. Esto significa que hay muchos proyectos escritos en PHP y muchos desarrolladores de PHP. Es fácil obtener ayuda para un problema complicado: probablemente ya se haya resuelto. Node.js es relativamente nuevo en el juego, por lo que muchas veces estarás abriendo nuevos caminos con él. Sin embargo, no es algo malo, Node.js ha aprendido de los errores de otros lenguajes (incluido PHP), y tuvo poca leyenda.

2. Cómo corren
Node.js normalmente se ejecuta como su propio servidor y es bastante autónomo. Con PHP, lo ejecutarías con un servidor web como Apache o Nginx o uno de los muchos otros.

Si ejecuta una instalación tradicional de Apache, descubrirá que cada conexión tiene un pequeño servidor Apache que se inicia para ocuparse de esa conexión. Esto es genial porque lo que sea que esté haciendo un usuario no afecta a ningún otro usuario. No es tan bueno cuando su sitio comienza a verse afectado, y su servidor está funcionando porque se está quedando sin servidores preiniciados y todo muere cuando se queda sin memoria. Entonces, para escalar PHP tradicional, terminas con muchos servidores que se ejecutan a través de un equilibrador de carga, y luego luchas con el mantenimiento de la sesión y otras cosas.

Por supuesto, PHP sí escala: hay muchos sitios web masivos que usan PHP. Solo toma un poco de trabajo.

Node.js ejecuta una instancia del servidor y acepta todas las conexiones a esta instancia. Esto significa que es más eficiente en la memoria y rápido para responder a muchas conexiones. Pero también significa que todo lo que ralentiza Node.js, lo ralentiza para * todos *.

Digamos que su aplicación envía un “¡Gracias por registrarse!” correo. En PHP, simplemente lo activaría como parte de la aplicación, y el usuario podría sentarse durante unos segundos mientras su aplicación PHP habla con los servidores de correo, y el correo se envía. No es genial, pero es poco probable que pases días codificando una forma asincrónica de enviar un correo de agradecimiento.

Sin embargo, en Node.js, ese correo de agradecimiento impedirá que todos usen su aplicación durante unos segundos. Si hay mucha gente registrándose, esto se convierte en un desastre total.

Para lidiar con esto, Node.js sigue un estilo de codificación muy diferente.

3. Estilo de codificación
Entonces, obviamente, Node.js es Javascript, y PHP es, er, PHP. A pesar de toda la propaganda acerca de que uno es superior al otro, en realidad son bastante similares en sintaxis. Pero debe cambiar la forma de pensar de manera bastante sustancial entre los dos.

PHP es muy lineal. Intentar realizar múltiples tareas en PHP es una tarea difícil. PHP no es bueno porque no tiene que serlo. Todo su sistema es multitarea con PHP, iniciando y apagando múltiples servidores Apache en milisegundos para entregar una sola página web. Apache hace la multitarea por ti. Después de haber hecho su trabajo, esos servidores Apache mueren y van al cielo del servidor web, donde no hay XML.

Node.js es totalmente asíncrono. Casi todo es multitarea, que tiene sus propios desafíos. Por lo general, desencadena un proceso, como enviar un correo, y cuando lo hace, a su vez, se activa un evento para indicarle a su aplicación que está listo. Mientras tanto, su aplicación continúa trabajando en las solicitudes de todos los demás. Esto es difícil de depurar y, a veces, difícil de diseñar. Pero principalmente es diferente de PHP.

Entonces, ¿cuándo deberías usar uno u otro?

¡Cuando quieras! Su elección de tecnología probablemente dependerá de lo que su desarrollador principal se sienta más cómodo, lo que su proveedor de servicios esté dispuesto a ejecutar u otras consideraciones operativas mundanas. Si tienes suerte y realmente tienes una opción, Node.js probablemente tendrá un poco de ventaja donde tienes muchas conexiones pequeñas. Si está utilizando una gran cantidad de Ajax en sus páginas, y está haciendo muchas llamadas asíncronas por página, o utilizando sockets web o conexiones largas similares, Node.js funcionará mejor.

Si tiene que entregar una página compleja, grande y estática, o donde tiene que procesar muchos datos, probablemente esté mejor con PHP.

O sea totalmente genial y use ambos a la vez. Serás como el hijo del amor entre un ciclista y un hipster, y definitivamente lucirás una barba increíble.

Node.js es un entorno creado sobre JavaScript. PHP es un lenguaje propio.

Si bien ambos están destinados a la programación del lado del servidor y están destinados a lograr las mismas cosas, Node.js es el camino a seguir.

Este es el por qué:

  1. El nodo es más rápido.
  2. El administrador de paquetes del nodo (npm) es más extenso.
  3. El uso del nodo no se limita a un servidor web. Ver meteorito.
  4. El nodo hace que la E / S sin bloqueo parezca inútil. Lo prometo.
  5. Nodo + Reaccionar = Hermoso.
  6. El nodo suena mejor que PHP.

Pero hay algunas razones por las que a la gente también le gusta PHP.

  1. PHP tiene una biblioteca estándar descomunal.
  2. PHP es generalmente más fácil de aprender que Node.
  3. PHP tiene soporte de base de datos integrado.

Sé que me faltan un montón de datos interesantes, por lo que si desea obtener más información, entonces debería hacerlo. Esta pregunta se ha hecho miles de millones de veces en Stack Overflow, y hay muchas otras discusiones sobre este tema en línea:

SitePoint Smackdown: PHP vs Node.js

Comparación de Node.js vs rendimiento de PHP – HostingAdvice.com

PHP vs. Node.js: una batalla épica para compartir la mente del desarrollador

PHP

PHP es el lenguaje de secuencias de comandos del preprocesador de hipertexto para crear aplicaciones web dinámicas y escalables. Se lanzó en 1995 y se consideró como un lenguaje de desarrollo backend número uno durante los últimos 20 años.

Node.JS

Node.JS es una plataforma basada en el Javascript v8 de Chrome para construir fácilmente aplicaciones de red rápidas y escalables en lugar del enfoque tradicional de subprocesamiento. Se lanzó en 2009 y se considera una plataforma popular que está definiendo el nuevo futuro de la web.

¿Por qué PHP?

PHP es aconsejable para hacer aplicaciones web de alto nivel porque

  1. Tiene una gran comunidad. PHP tiene una guía experimentada debido a la gran era del desarrollo. Es por eso que puede obtener cualquier solución para su problema con mucha facilidad.
  2. Está basado en un código profundo, lo que significa que la mayoría de los sistemas de gestión de contenido (como Joomla, WordPress, Magento, Drupal) están basados ​​exclusivamente en PHP.
  3. PHP es más común para los proveedores de hosting. Esto se debe a que no hay problemas de compatibilidad para hacer que la aplicación esté activa en el servidor.
  4. La simplicidad del código PHP, puede ejecutarse como HTML cambiando la extensión del mismo.
  5. No existe dependencia de jar, preprocesador, compilador ni implementación.
  6. Puede agregar php en cualquier parte de su código simplemente usando la etiqueta, que hace que PHP sea más flexible.

¿Por qué no PHP?

Ahora, la tendencia va de una manera que la mayoría de las Startups no están usando PHP como su Tech Stack porque,

  1. Es relativamente más lento que los competidores avanzados de desarrollo del lado del servidor como Node.
  2. Dado que es de código abierto, cualquiera puede acceder a él. Si hay errores en el código fuente, puede ser utilizado por personas para explorar la debilidad de PHP.
  3. No es adecuado para hacer aplicaciones más grandes; Es ideal para aplicaciones basadas en comercio electrónico.

¿Por qué el nodo?

La mayoría de las Startups están dando prioridad al nodo sobre otras pilas monolíticas como PHP o Ruby on Rails, porque

  1. Extraordinariamente más rápido que PHP debido al mecanismo de devolución de llamada de eventos.
  2. Principalmente, tiene un mecanismo de subproceso único, pero también puede escalar la aplicación Node en un sistema de múltiples núcleos. Para obtener más información sobre el escalado, consulte mi otro artículo.
  3. Tiene separación de preocupaciones, es decir, módulos separados para cualquier operación.
  4. Node.JS es popular, nuevo y fresco.
  5. Utiliza la estructura de devolución de llamada para pasar la lógica de una llamada a otra.
  6. Menos o relativamente ninguna posibilidad de aparición de un mecanismo de bloqueo.
  7. Puede usar tanto la aplicación individual como la multiproceso
  8. Cualquier persona con otro fondo de plataforma puede saltar al Nodo. Tiene numerosos marcos que se pueden usar como una alternativa para otros marcos como Ruby on Rails.

¿Por qué no Nodo?

Aunque, Node está proporcionando la mejor solución posible, pero siempre hay dos lados del espejo. Piensa sabiamente al hacer una aplicación Node porque

  1. El nodo no es adecuado para tareas intensivas de procesador.
  2. Cualquier código intensivo de CPU lo hace realmente no escalable.

Contrata a Nodejs Developers

Empresa de desarrollo de Nodejs

Siendo uno de los proveedores pioneros de servicios de desarrollo de aplicaciones web y móviles de Node.js, en Inwizards estamos en el negocio de entregar aplicaciones exitosas. Ya sea que se trate de soluciones de desarrollo de módulos y módulos o de un requisito de desarrollo de aplicaciones, hemos atendido los requisitos de los módulos de pequeñas y grandes empresas.

Lo estamos haciendo a un costo asequible.
Hazme un ping o contáctame en este enlace

Para contactar :- Empresa de desarrollo web, India

Gracias y Saludos

Anuj

Creo que si lo entiendes bien, PHP oculta la concurrencia mientras Node.js lo expone.

Uno escribe programas PHP como si construyera una cadena de restaurantes. Usted diseña todos los aspectos operativos y funcionales del restaurante, verifica que todo funcione según lo previsto y luego construye copias idénticas en todo el país, cada una funcionando de forma independiente, pero con exactamente la misma lógica.

Uno escribe los programas de Node.js como un general que da orden a las tropas. Todas las órdenes se envían más o menos al mismo tiempo y contienen instrucciones detalladas sobre la misión y una solicitud para regresar e informar cuando se complete la acción. Las diversas unidades informan cada vez que se realizan, sin ningún orden en particular. El general evalúa el progreso de la ‘batalla’, enviando nuevas órdenes según sea necesario hasta que se gane la batalla.

No pelearías una guerra usando PHP y no construirías una cadena de restaurantes usando Node.js

Puede usar ambos en un proyecto. Recientemente, he estado trabajando en una aplicación web social con notificación, chat y feed de actividad. He usado Symfony 2 / PHP y Node.js. Ellos trabajan muy bien juntos. Disparo una acción (como una nueva solicitud de amistad) desde PHP y envío un mensaje con RabbitMQ (esto envía el mensaje de forma asincrónica y lo guardo en Redis Sorted Set) y luego lo reenvío Node.js que realiza una actualización en tiempo real de la página sin volver a cargar eso.

Node.js es un entorno Javascript del lado del servidor basado en el motor javascript V8 de Chrome. Le permite escribir el código de su servidor en javascript, en lugar de elegir uno de los lenguajes web “tradicionales” como PHP, c #, python, ruby, perl, etc. Usando node.js y una base de datos como mongodb, podría escribir su aplicación web completamente en javascript.

Aquí hay un ejemplo de la pila completa para el desarrollo web:

  • Backbone para el lado del cliente, código que se ejecuta en el navegador (Chrome, Firefox)
  • Marco del lado del servidor Express que se ejecuta en Node.js
  • Base de datos de Mongodb para almacenar documentos

Las tecnologías mencionadas anteriormente le permitirán crear su aplicación escribiendo solo código javascript, del navegador al servidor y finalmente a la base de datos, una especie de lenguaje para gobernarlos :), no necesita PHP a menos que tenga una base de código heredada.

Estoy ejecutando un pequeño servidor de aplicaciones node.js en un nodo Triton muy pequeño, con 58 KB de bytes asignados para un proceso. Pero, hay una serie de procesos que se ejecutan en subprocesos, alrededor de 8.

WMPL recomienda memoria 128 MB

Solía ​​ser el caso de que PHP Drupal necesitaba 32Mbytes por conexión, según recuerdo. Esto se mejoró con memcache, FASTCgi, etc. Solía ​​ser que PHP reconstruía la pila cada vez que había una conexión. Eso se solucionó hace un tiempo con las mismas herramientas y similares. Solía ​​ser que el equipo de Drupal tuvo que configurar SQUID solo para manejar la carga creada por demasiadas solicitudes, y dejaron de actualizar las fuentes RSS en su página principal por un tiempo. Esto probablemente ha mejorado.

Si solo escribo php en la línea de comando en mi mac, veo un proceso que requiere 4.6MB

Pero, node.js en la línea de comando en mi mac toma aproximadamente 9.8MB .

Entonces, esto es una cuestión de configuración.

Me parece una variedad de artículos que comparan el rendimiento de node.js con otros. El rendimiento es bastante alto. Hace unos meses vi benchmarking contra Java, con node.js compitiendo bien o siendo más rápido a pesar de que todavía se interpreta.

Hay muchas otras diferencias señaladas en otras publicaciones.

Muchas de las diferencias son solo aquellas entre los dos idiomas. JavaScript tiene una buena combinación de funciones funcionales y pragmáticas. PHP es realmente solo pragmático, lo cual está bien para muchas cosas.

Me gustaba el juego de disparos en lenguaje de programación: Node.js vs PHP (Ubuntu quad core de 64 bits)

Javascript es un orden de magnitud más rápido que PHP en la mayoría de los puntos de referencia. Un punto de referencia de JavaScript parece haber sido mal escrito. Señalarán que hay mucho en la redacción de los puntos de referencia que determinan los resultados. Pero, JavaScript supera a PHP y Python3 casi de la misma manera.

Entonces, creo que la diferencia es que con node.js puedes hacer una pila completa, con secuencias de comandos más rápidas, una interfaz clara de C ++, usando menos recursos y requiriendo una configuración significativamente menor que para PHP. Además, hay muchos recursos con JavaScript que permiten que los programas se escriban muy brevemente, lo que significa significativamente menos líneas de código por proyecto por desarrollador.

Pero, hay un compilador para PHP a C ++. Entonces, si está dispuesto a hacer pruebas en PHP, podría funcionar. Pero, debe pensar que su entorno de prueba podría ejecutarse unas 30 veces más rápido, y que aún podría convertir una gran cantidad de JavaScript en C ++. Por lo tanto, es difícil quedarse solo lo que funciona mejor, excepto para sus propósitos.

PHP 7 VS NODE.JS: DIFERENCIAS DE TERMINOLOGÍA

  1. PHP es un lenguaje de programación. Node.js no es un lenguaje de programación
  2. PHP es un intérprete. Node.js es un intérprete (debido a Google Chrome Engine)
  3. Para ejecutar código PHP en el servidor, es necesario instalar el paquete PHP o el paquete HHVM de Facebook. Para ejecutar código JavaScript en el servidor, se necesita un instalador Node.js.
  4. PHP tiene un servidor web incorporado, pero no se recomienda su uso en un servidor de hardware de producción. Node.js tiene herramientas integradas para crear servidores.

PHP 7 vs Node.js? ¡Pueden ser socios, no competidores para un desarrollador!

Desafortunadamente, no hay nada mejor con este tipo de decisiones. Esencialmente, si aún no conoce la diferencia y tiene opiniones al respecto, entonces debe encontrar un conjunto de desarrolladores en los que confíe y luego dejar que tomen las decisiones tecnológicas.

Dicho esto, en mi experiencia, los desarrolladores que usan PHP tienden a especializarse en sitios pequeños y bastante estándar que requieren funcionalidad CMS, etc. Node.JS tiende a obtener sitios usados ​​con requisitos bastante específicos y complicados en lugar de un sitio de tipo de marketing estándar.

También PHP ha existido desde siempre y Node es relativamente nuevo, pero está bajando en popularidad, por lo que me preocuparía comenzar una nueva compilación con él como el idioma principal utilizado a menos que haya una buena razón para eso.

Claramente, hay situaciones en las que Node.js es mejor:

Necesitará Node (o soluciones similares como vert.x) para cualquier cosa en tiempo real. Usar cosas como websockets con PHP no tiene sentido, porque no hay nada ante lo que reaccionar cuando un script PHP ha finalizado. No se permite ejecutar PHP sin fin a menos que controle totalmente el servidor, pero incluso así es como reescribir Node.js con PHP.

También necesitará Node.js cuando realice muchas tareas que bloqueen un servidor web como Apache. Si su servidor necesita hablar con otros servidores (servicios web) o está sirviendo principalmente archivos grandes, usar Apache / PHP es una mala idea, porque cada conexión inicia su propio proceso de sistema de memoria intensa. Una masa crítica de usuarios matará al servidor. No existen tales problemas con Node debido a su naturaleza asincrónica. (Aunque: Node no puede usar más de un procesador, a menos que instale software adicional para construir un Node-cluster).

Y, por supuesto: no es necesario aprender PHP si ya conoce JavaScript cuando usa Node 😉

Primero debe comprender la diferencia entre el código del lado del servidor y del lado del cliente. … Ejemplos de código del lado del servidor son PHP, Node.js, ASP. El código del lado del cliente se ejecuta en el navegador web de los usuarios. Se utiliza para hacer páginas web interactivas.

No hay nada mejor con este tipo de opciones trágicamente. Básicamente, en el caso de que no conozca la distinción y no tenga evaluaciones al respecto, entonces necesita ubicar un arreglo de ingenieros en los que confíe y luego dejar que se establezcan en las opciones de innovación.

A fin de cuentas, en mi experiencia, los ingenieros que utilizan el desarrollador PHP de alquiler tienden a practicar como parte de entornos locales muy pequeños y estándar que requieren la utilidad de CMS, etc. Node.JS tiene una tendencia a obtener locales utilizados con necesidades muy particulares y confusas en lugar de un sitio de clasificación de publicidad estándar.

Del mismo modo, PHP ha existido eternamente y Node es generalmente nuevo, pero está disminuyendo en notoriedad, por lo que sería cuidadoso al comenzar otra forma con él como el dialecto esencial utilizado a menos que haya un motivo justificable detrás de eso.

¿Estás buscando seleccionar una plataforma de desarrollo para tu startup? Node.JS y PHP son los dos competidores del lado del servidor en el mundo tecnológico; Estas son las opciones para que una startup adopte como su infraestructura de back-end. No hay un medidor definitivo para medir qué plataforma podría ser la más adecuada para su inicio porque todo depende del tipo de aplicación que esté creando.

Para obtener más información, consulte mi artículo aquí: Node.JS Vs PHP – Encuentre una comparación útil para su próximo inicio – Vizteck

Puede obtener ayuda de estas dos mejores fuentes:

La diferencia entre PHP y el nodo [Video]

node.js vs php – Equipo de Soulserv

¡Espero eso ayude!

Node.js acaba de llegar al mercado … necesita tiempo para demostrar su valía … sin embargo, por otro lado, PHP es antiguo y confiable y ha pasado las pruebas del tiempo …

Php es mejor por ahora …
Aunque node.js podría tener sus ventajas como un lenguaje dirigido por eventos construido para ejecutarse en la máquina V8 …

Pero me quedo con el viejo y querido PHP que gradualmente ha madurado para competir con los gustos de Java y el resto …

No soy un experto en esta tecnología, pero creo que el principal beneficio de Node.js es el hecho de que utiliza solo un lenguaje front-end y back-end, Javascript.