He trabajado con lenguajes dinámicos y estáticos, y he llegado a varias conclusiones sobre sus ventajas e inconvenientes:
Ventajas de los dinámicos
- Más sencillez del lenguaje, y más rapidez por tanto para aprender
- Programas más compactos
Ventajas de los estáticos
- La información de tipos, puede considerarse documentación.
- Si hay inferencia de tipos, no se incrementa apenas el tamaño de código.
- IDEs pueden ser más sofisticados, en cuanto a asistencia, navegabilidad
- Mayor capacidad de refactorización
- Detectar prematuramente errores de inconsistencia, aunque no de lógica.
Esto hace que prefiera en muchas situaciones lenguajes estáticos, si tienen inferencia de tipos y características como genéricos.