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.
- ¿Qué habilidades se necesitan para conseguir un trabajo de desarrollador de Ruby on Rails en 2017?
- ¿Quiénes son los mejores diseñadores web en Kerala?
- ¿Es suficiente HTML, CSS y JavaScript para conseguir un trabajo a tiempo completo?
- ¿Dónde debo comenzar a convertirme en un profesional independiente en el desarrollo web?
- ¿Cómo se depuraron los desarrolladores web en los días de IE 5/6 / Netscape?
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.