Mientras Node.js está orientado al desarrollo de aplicaciones de red que asegura rapidez, estabilidad, escalabilidad y eficiencia en uso de recursos físicos de la RAM en el servidor. Node.js espera una gran cantidad de conexiones conocida como "Single Thread".
PHP utiliza las opciones proporcionadas por el servidor APACHE, lo cual generaría una única conexión por usuario, que eventualmente consumirá más recursos de RAM del servidor. Pero es rápido(incluso más rápido que Node.js en determinados casos, como en procesos de alta intensidad), seguro, y soportado por muchas empresas de hosting.
Teniendo en cuenta la información anterior podemos determinar lo siguiente.
Deberías usar Node.js en aplicaciones en tiempo real:
- Chats
- Streaming
- Mensajería instantánea
- Gaming
- Para IoT a nivel empresarial (ejemplo: Crear un sistema de seguridad con cámara y sensores dejando un registro de aperturas y cierres de las puertas en el servidor junto el fragmento del video. )
- Estadísticas y balances
- Almacenamiento en la nube con Base de Datos NoSQL
Deberías usar PHP en:
- Sitios web dinámicos (Con tráfico mediano)
- CMS y Tiendas virtuales
- KDD en Minería de datos (gran parte de las bases de datos actuales poseen una gran compatibilidad con PHP sobre todo las base de datos relacionales).
- Para IoT a nivel empresarial
- Apps bancarias
- Apps para recepción de correo
Estas son algunas de las infinidad de opciones, que a decir verdad pueden hacerse igualmente para los dos, pero con mayor o menor alcance.
En realidad puedes usar Javascript (NodeJS runtime) o cualquier otro lenguaje según tus requerimientos o por simple conveniencia.
Pero sería irresponsable, desde mi punto de vista, no evaluar las ventajas y desventajas del lenguaje que pienses utilizar con respecto al requerimiento (s) en cuestión.
Siempre contrasta la primera opción que elegiste con otras y toma una decisión en función de ello.
¿Por qué no usar NodeJS?
Bien, básicamente debido a Javascript.
Si te preocupa el rendimiento, eficiencia de recursos, estabilidad y mantenibilidad de código, Javascript no es una opción para tareas del servidor