¿Existe un beneficio real y tangible en la programación front-end y back-end en el mismo idioma (como en Node.js)?

Creo que la mayor ventaja debería ser la lógica de validación: necesita validación en el cliente, por razones de UX, y necesita la misma validación en el servidor, por razones de seguridad. Algunos marcos resuelven esto mediante anotaciones y generando JS y código de servidor a partir de ellos, pero esto solo funciona para casos simples: longitudes de cadena y otras cosas, pero no reglas de negocios complejas. Y escribir la misma lógica de validación en dos idiomas, y mantenerlo sincronizado manualmente a medida que evoluciona, no es divertido (y existe la posibilidad de errores cuando los dos idiomas tienen una semántica ligeramente diferente, porque te engañas al “hacer lo mismo” , cuando en realidad no es exactamente lo mismo, por ejemplo, la forma en que funcionan las coerciones de tipos suele ser diferente, por lo que un código de aspecto similar puede decir “sí” en un idioma y “no” en otro).

Como alguien que trabaja con código de front-end y back-end todo el tiempo, puedo decir que es muy beneficioso no tener que cambiar mentalidades (idiomas) todo el día. Soy menos propenso a cometer errores simples, como intentar escribir métodos JavaScript en un archivo Python.

Estamos construyendo un sitio web con Meteor.

Hace un par de días agregamos la función de búsqueda al sitio web. Pero descubrimos que era muy lento. Entonces decidimos mover el proceso de búsqueda de servidor a cliente.

Si usamos un idioma diferente en el front-end y back-end, tenemos que volver a implementar la lógica de búsqueda con el lenguaje front-end. Mientras que en el marco de JavaScript homogéneo como Meteor, todo lo que tenemos que hacer es cortar los códigos del lado del servidor al lado del cliente.