¿Cómo elegir entre Node y otras tecnologías del lado del servidor?

Para un novato, los criterios más importantes deben ser la actividad, la ayuda, la riqueza y la amabilidad de los principiantes de la comunidad y el ecosistema.

1. El ecosistema de Node.js es un poco menos maduro (pero no menos útil o activo) que Python o Ruby, pero se está poniendo al día rápidamente. Sin embargo, esto significa que tendrá una gran cantidad de fragmentación. Todavía no hay un claro ganador del marco web JS pesado (a diferencia de Rails o Django).

2. Node.js significa un idioma menos para que tengas que aprender. Todos los desarrolladores web necesitan saber JavaScript de todos modos (para el lado del cliente), por lo que hacer el lado del servidor no requiere aprender otro idioma.

3. Rails tiene probablemente el ecosistema de desarrollo web más rico. Hay bibliotecas bien probadas para todo . La desventaja es que Ruby realmente se usa para poco más que para el desarrollo web.

4. La ventaja de Python es que el ecosistema de Python es realmente amplio y rico fuera del desarrollo web. Hay muchas aplicaciones de Python más allá del desarrollo web: aprendizaje automático, estadísticas, análisis de datos, aplicaciones de escritorio, etc. Python se usa mucho en la academia y la investigación científica.

Si estás en la escuela y estás interesado en ML o big data, Python es probablemente más relevante.

Si desea obtener un trabajo en una startup, Ruby y Node son mejores opciones. Si no desea aprender otro idioma además de JS, aprenda node.js.

Sí, node.js escala mejor que Python y Ruby. Pero la escala no debería importarle. [1] El día en que te conviertes en Twitter es el día en que puedes 100 ingenieros para reescribir tu pila.

Estoy de acuerdo en que en este momento no tiene mucho sentido aprender PHP.

[1] Dicho esto, Facebook escaló a pesar de PHP (es decir, tener que escribir un compilador de PHP a C), Twitter ha trasladado todos los componentes críticos de rendimiento a Scala. Rubuy se usa en gran medida para proyectos internos (donde el escalado no es una preocupación). Quora usa Tornado, que es una implementación asínica, sin bloqueo del servidor Python, que renuncia a los beneficios del ecosistema Python a cambio de las capacidades de escalado de algo como node.js

Aquí hay una buena publicación de Felix que definitivamente debería leer para obtener una idea del mundo de nodejs y si sería una buena opción para su próxima gran aplicación que está tratando de construir.

Felix’s Node.js Convenciendo al guía del jefe

La pregunta nunca debería ser, qué tecnología debería usar para la programación del lado del servidor. Personalmente, si quisiera obtener una buena respuesta, habría preguntado: “Quiero hacer esto n esto n esto … entonces, ¿cuál debería ser el mejor lenguaje de programación o pila de servidores que debería usar?”

Artículos adicionales sobre Node.js
[1]: Node.js no es adecuado para proyectos web genéricos (I) (tiene 5 partes)

Cuando se usa correctamente, Node.js puede manejar más conexiones concurrentes (también conocidas como más escalables) fuera de la caja que los tiempos de ejecución de Python, PHP y Ruby.

Sin embargo, muchas grandes empresas como Facebook (PHP), Twitter (solía usar Ruby) y Quora (Python) han realizado muchas optimizaciones internas y han podido escalar sus aplicaciones con éxito.

En última instancia, debe elegir una tecnología del lado del servidor con la que esté más familiarizado, tanto en términos del lenguaje de programación como del ecosistema que lo rodea.

Si está comenzando de nuevo, entonces es posible que desee consultar Python y Ruby, ya que generalmente son más accesibles para las personas familiarizadas con OOP, y puede asegurarse de construir un excelente back-end con ellos. Sin embargo, si desea algo que se adapte mejor a largo plazo, seguramente querrá aprender Node.js (o, si puede soportarlo, construir su negocio sobre JVM siempre es una opción segura y sólida).

Como última palabra, realmente no hay una razón convincente por la que quieras ir con PHP en estos días.

La mayoría de nuestros clientes nos hacen la misma pregunta: “¿qué tecnología es mejor usar?” A veces, las personas se inclinan a creer que elegir tecnologías más nuevas será sinónimo de éxito inmediato, pero la realidad está lejos de eso. Si planea comenzar su propio inicio, esta decisión siempre debe tener en cuenta las siguientes pautas:
1. Siempre comience con la tecnología que usted (el propietario del producto o su equipo) conoce mejor.
2. Cualquier cosa funcionará al principio.
3. Cuanto más simple sea la estructura, más fácil será para usted adaptarla y modificarla en el futuro, siempre que su producto crezca y necesite escalar.
Sin embargo, Node.js, nuestro marco de elección, nos permite crear aplicaciones complejas de alto rendimiento con un número relativamente bajo de líneas de código. JavaScript tiene dos ventajas principales sobre otros lenguajes de programación:

– está tipificado dinámicamente, lo que permite un gran nivel de expresividad. Esto significa que los desarrolladores pueden escribir código preocupándose menos por la sintaxis y más por el sentido general del proyecto;

– multi-paradigma: está orientado a objetos (basado en prototipos), imperativo, funcional. Es como una gran caja de herramientas con todo lo que necesita para hacer el trabajo. Se pueden escribir diferentes partes de una aplicación utilizando diferentes paradigmas que son más adecuados.
Después de todo, estas son algunas de las razones por las cuales empresas como LinkedIn optaron por cambiar de Ruby on Rails a Node.js.