Todo depende de lo que llames práctico .
Si, en la práctica, te refieres a “ampliamente utilizado en TI” o “implementado fácilmente”, entonces hay un montón de lenguajes poco prácticos pero excelentes por ahí.
Si, en la práctica, te refieres a una buena adaptación al desarrollo de software, entonces argumentaría que no deberías pasar más de unos pocos días en tu vida aprendiéndolos. Hay suficientes buenos idiomas que no necesitas para aprender los realmente malos.
Ahora, ¿cuáles serían los idiomas interesantes, no ampliamente utilizados?
- ¿Cómo puede un individuo aprender sobre sí mismo?
- ¿Qué podemos aprender de la película Any Body Can Dance? ¿Y debería un entrenador de baile ser como Prabhu Deva?
- ¿Cuáles son tus estilos de aprendizaje? ¿Qué utilizas auditivo, visual o kinestésico / táctil? ¿Por qué?
- ¿Cuál es la importancia de hacer preguntas en el aprendizaje?
- ¿Cuál sería un buen trabajo para alguien que es un gran aprendiz, un gran analista y un solitario?
Coq
Coq le permite probar que su código es correcto. No lo pruebes a fondo, pero realmente lo demuestras con un 100% de certeza. Puede ser desalentador codificar en Coq, pero hay algunos conocimientos extraordinarios que se pueden obtener al aprenderlo. Una es que un programa es en realidad un tipo de prueba en sí misma.
El asistente de prueba de Coq
Factor
Factor es en realidad uno de los lenguajes más prácticos, con una de las mejores infraestructuras de desarrollo que he usado. ¡Su depurador, por ejemplo, te permite retroceder en el tiempo cuando pasas por un programa!
Factor es un lenguaje concatenativo muy moderno y activo, como Forth y Postscript. Es un paradigma muy adecuado para la programación “simple” (es decir, desarrollar software que no se ejecute en un sistema operativo, como BIOS).
Lenguaje de programación factorial
Raqueta
Racket es en realidad una implementación de Scheme en esteroides, lo que le brinda la investigación de PL en un IDE limpio. Te permite programar en una variedad de dialectos Lisp. También tiene un depurador muy interesante y conveniente.
En realidad, es un gran barco para jugar con los conceptos de diseño PL, ya que podría desarrollar sus propios dialectos para implementar un nuevo tipo de semántica.
El lenguaje de la raqueta