La elección de los idiomas de tipo dinámico generalmente depende más del contexto de su negocio que del “tipo de aplicación de software”.
Solía haber dos razones principales para usar lenguajes tipados estáticamente: 1) velocidad de ejecución y 2) mantenibilidad a medida que el sistema escala.
El primero todavía es válido, por lo que si debe ejecutarse en un hardware limitado (lo que significa que no puede optar por la expansión horizontal del hardware) Y va a estar vinculado al cómputo (la gran mayoría de los sistemas están vinculados a E / S), para esto ” tipo de aplicación ” debe elegir un idioma de tipo estático .
- ¿Cuál será un sistema de domótica ideal?
- ¿Cuál es el mejor software de clínica?
- ¿Qué es una imagen de software?
- ¿Qué necesito saber antes de comenzar a trabajar en una tienda de hardware (y software)?
- Cómo hacer una aplicación de redes sociales
Sin embargo, el motivo de mantenibilidad es menos cierto hoy en día. Hay aplicaciones PHP y JavaScript muy grandes. Estos invariablemente usan pruebas automatizadas y generación automática (pero guiada) de documentación para acercarse a todos los beneficios de mantenibilidad de los lenguajes estáticamente escritos en mi humilde opinión …
Y los idiomas escritos dinámicamente pueden proporcionar un gran impulso a la productividad. Algunas cosas son mucho más fáciles de expresar. Hay un nivel de abstracción: metaprogramación si lo desea, eso solo es posible con lenguajes dinámicos. Java ha intentado agregar algo de soporte para esto con cosas como genéricos, pero ¿alguno de ustedes ha sido atrapado en el infierno de compilación genérico de Java?
Yo diría que la mayoría de los sistemas actuales están vinculados a E / S e incluso los que están vinculados a cómputo a menudo pueden escalar horizontalmente. El hardware es más barato que los programadores … Y su mayor amenaza de falla suele ser su riesgo de no ofrecer suficiente funcionalidad para ganar un mercado antes que un competidor … o para satisfacer a sus partes interesadas. Un programador de CoffeeScript o Python altamente productivo, puede enviar mucha más funcionalidad, más rápido que el mejor programador Java o C ++.