¿Por qué el hecho de que se pueda usar el mismo idioma en el servidor y en el navegador se considera una ventaja para JavaScript?

Tienes toda la razón. Usar el mismo lenguaje en ambos extremos es una ventaja exagerada.

El hecho es que la mayoría de los desarrolladores son políglotas. No tienen problemas para usar dos idiomas diferentes para un proyecto. Se adhieren a la máxima clásica: “Elija siempre la mejor herramienta para el trabajo”. En el servidor, JavaScript NUNCA es la mejor herramienta porque hay muchos otros lenguajes superiores disponibles, como Java, C #, Python, Ruby, Go, Groovy, Scala, Clojure, etc.

El mundo de TI ha estado haciendo aplicaciones de arquitectura cliente / servidor durante décadas utilizando diferentes idiomas para cliente y servidor. ¿Por qué esto es repentinamente un problema en 2016?

Incluso en el cliente, JavaScript no es la mejor herramienta para el trabajo. Es la ÚNICA herramienta para el trabajo en virtud del hecho de que JavaScript es el ÚNICO lenguaje integrado en todos los navegadores web. Los desarrolladores no tienen otra opción. Si tuvieran una opción, ¡seguro que no elegirían JavaScript!

Entonces no, no es una ventaja real sino una imaginada. Todo programador que valga la pena puede usar fácilmente más de un idioma. Cualquiera que te hable sobre el “cambio de contexto mental” está lleno de eso.

Más que cualquier beneficio técnico, ayuda a formar un equipo. Tendría una habilidad genérica en todos los ámbitos que facilita la asignación y la gestión del talento. Todos en el equipo de tecnología pueden hablar el mismo idioma. ¡Qué más necesitas!

Creo que es útil para cosas como “back-end para front-end” donde el servidor necesita ejecutar algún código solo para la API, como en el ejemplo de Nodo dado. Esto es para los casos en que el desarrollador front-end necesita escribir el código, lo que hace que sea menos práctico para ellos aprender otros lenguajes de programación.