¿Algunos lenguajes de programación tienen funciones que otros no tienen? ¿Cuáles son las ventajas y desventajas de usar más de un lenguaje de programación en un sitio web?

A tu primera pregunta:

Una característica que solo encontrará en ciertos sabores del lenguaje es eval. Esto no se puede hacer en un lenguaje puramente compilado. Eval, que se encuentra solo en lenguajes interpretados e híbridos, ejecuta código que se puede definir en tiempo de ejecución.

Otra característica que encontrará solo en ciertos tipos de lenguaje es la inspección de la pila: la capacidad del código para examinarse a sí mismo y llamar a la pila.

De ninguna manera es una lista completa, lo que sería difícil de compilar. Para darle una idea de cuán amplio es el alcance de la pregunta que está planteando, considere el problema de escribir código para un entorno informático distribuido como una GPU, o para un entorno como un microcontrolador que tiene muchas características que una CPU no tiene (hardware IO, A / D) y carece de otras características que tiene una CPU (coma flotante, memoria en cantidades significativas). Luego considere un software especializado escrito para cosas como la computadora de guía Apollo, que tuvo que pilotar una nave espacial hacia la luna usando 38 kilovatios (concedido, palabras grandes) de almacenamiento total. El lenguaje utilizado allí tenía que optimizar mucho el espacio y también facilitar la realización de ciertos tipos de matemática de sección cónica y matemática vectorial.

Los idiomas tienden a ajustarse para hacer ciertas cosas inicialmente, resolver un problema particular que tuvieron sus desarrolladores, y luego lentamente se vuelven más genéricos. Muchas mentes diferentes han tomado muchos enfoques diferentes desde que Grace Hopper decidió que la computadora podría ser utilizada para servir al programador en lugar de al revés.

A su segunda pregunta:

Hay una serie de razones por las que puede usar varios idiomas. La más importante es que a veces es mucho más fácil realizar una tarea en particular en un idioma en particular, generalmente porque hace una cosa particularmente bien. Un subconjunto de esto es que a veces un sitio contendrá una gran cantidad de código heredado, pero el desarrollo de una nueva característica será mucho más rápido en un lenguaje más nuevo y más flexible. No hay deseo ni presupuesto para reescribir todo el sitio solo para agregar esa función, y los usuarios ni siquiera pueden decirlo.

Casi todos los idiomas implementan el manejo de datos, expresiones, bucles, selecciones, etc., que son las características más básicas para formar lenguajes principiantemente completos.

Pero para fines comerciales, se prefiere un lenguaje con grupos de usuarios maduros y una gran cantidad de bibliotecas (tanto integradas como de terceros), de modo que se hayan implementado muchas características fundamentales, los problemas se puedan discutir y resolver rápidamente, las personas con las habilidades son fáciles de encontrar, etc.

Entonces, puede haber miles de lenguajes inventados, sin embargo, los lenguajes más populares siguen siendo Java, C / C ++, Javascript, entre otros.

Usar múltiples idiomas dentro del mismo proyecto a veces es inevitable, debido a los requisitos especiales y la escasez de bibliotecas adecuadas dentro de un solo idioma. Para la aplicación web, hasta donde yo sé, el lado del cliente se basa principalmente en HTML + javascript, mientras que el lado del servidor debe ser un lenguaje más fuerte, como Perl, PHP, Java, etc. Pero en general, la madurez del lenguaje es una de las consideraciones importantes.