¿Por qué algunos sitios web usan más de un lenguaje de programación?

Los lenguajes de programación son herramientas. A veces, solo una herramienta no es la opción correcta.

Sin embargo, la mayoría de las veces tiene un idioma para una “categoría”. Entonces, un lenguaje del lado del servidor (PHP, Java, C #, …) y un lenguaje del lado del cliente (JavaScript, Flash). Hay otros idiomas, como el lenguaje de descripción de página HTML y el lenguaje de hoja de estilo CSS o el lenguaje de consulta de base de datos SQL.

(Tenga en cuenta que HTML no es un lenguaje de programación. CSS3 es Turing completo, pero tampoco lo consideraría como un lenguaje de programación. No estoy muy seguro de las capacidades teóricas de SQL, pero tampoco consideraría que SQL es un lenguaje de programación.)

Tiene varios idiomas utilizados en el lado del cliente porque algunos efectos son difíciles de obtener (y eran imposibles hace unos años) solo con JavaScript (pensando en juegos). Sin embargo, JavaScript es muy bueno cuando se trata de seguimiento de usuarios / efectos más simples. Además, tiene diferentes proveedores. Una página puede tener su contenido principal, un juego, hecho con Flash. Pero también podría incluir análisis que se hacen (al menos parcialmente) con JavaScript.

En el lado del servidor, puede tener otras restricciones. Por ejemplo, podría ser posible que tenga algunas tareas que se ejecutan raramente (por ejemplo, cada dos días) y que se resolvieron con otro idioma. Supongo que hay un par de sistemas heredados con este tipo de problema.

Martin Thoma ya dio una buena respuesta que me gustaría extender un poco. En el lado del servidor, es posible que algún día deba resolver algunos problemas de rendimiento que necesita resolver utilizando un lenguaje de programación diferente (más rápido) o extienda su software y ya sabe que el lenguaje del servidor utilizado actualmente no funciona bien con respecto a este tipo de tareas. Entonces es posible que desee implementar estas partes en un lenguaje que se ajuste mejor. Otro punto podría ser el uso de bibliotecas. Si hay una biblioteca disponible en otros idiomas que funciona bien con respecto a las tareas requeridas, puede llamarla a través de una interfaz.

Un ejemplo de interfaces se denomina extensiones nativas en Ruby. Ruby fue escrito en lenguaje C. A veces tiene sentido ampliar su programa con algún código C. Un ejemplo es la gema “oj” que se usa para analizar json. Si usa C en lugar de Ruby, el código funcionará (generalmente) más rápido, ya que no pierde tiempo en el intérprete y tiene acceso directo a la memoria en C.

Ellos no. Creo que te estás confundiendo con HTML, JavaScript y / o ASP.NET y / o PHP, etc.

Ellos no lo hacen Cada nivel de programación del lado del servidor es eficiente y menos administrado en su propio estado y puede realizar todas y cada una de las tareas que lo utilizan. La gestión de archivos, el manejo de usuarios y todas las demás actuaciones pueden manejarse fácilmente con PHP o ASP.NET. Por lo tanto, ningún sitio web se molestaría en usar dos o más lenguajes de programación para un proyecto.

JavaScript no es un lenguaje de programación; a menos que se use en Node.js donde las secuencias de comandos del lado del servidor se realizan con JavaScript. JavaScript es solo un lenguaje del lado del cliente utilizado para manipular el DOM HTML y trabajar con los datos del lado del cliente, como las solicitudes de Ajax, etc.