El lenguaje central de Haskell es realmente simple. Viniendo de un entorno OO, la principal dificultad es adaptarse al paradigma funcional puro.
Mientras aprendía Haskell "básico", siempre he considerado las extensiones de lenguaje como juguetes para personas con CS o como experimentos para futuras versiones del lenguaje (como from future import ???
en Python).
Sin embargo, cuando comencé a mirar marcos web como Yesod, descubrí que muchos archivos fuente requieren entre 3 y 4 extensiones. Algunos parecen bastante simples (StringOverload). Otros son realmente intimidantes (GADT, Type Famillies, Template Haskell). Su documentación enlaza con trabajos de investigación, lo que da miedo a alguien que espera aprender "solo" una nueva biblioteca.
¿Es necesario aprender extensiones de lenguaje GHC para ser productivo en Haskell? Si contrataras a un desarrollador de Haskell para una aplicación de producción, ¿pedirías ese conocimiento?
Respuestas:
Si. Y eso es cierto para cualquier idioma / herramienta. Con el conocimiento básico / básico puede resolver los problemas del concurso en línea, puede ser un pequeño proyecto universitario, pero definitivamente no es una aplicación del mundo real.
Eso ahora depende de si tienes alguna persona contigo que pueda compartir este conocimiento. En caso afirmativo, esa persona puede aumentar el nuevo empleado. Si no es así, primero debe obtener dicha persona con conocimiento. Y nuevamente esto es cierto para las nuevas tecnologías.
Por supuesto, también podrías tratar de contratar personas que tengan un conocimiento tan profundo en Haskell. Pero Haskell es relativamente nuevo en la industria y considerando que se han realizado muy pocos proyectos comerciales a su alrededor, encontrar a esa persona será difícil. La manera efectiva de formar un equipo de profesionales en Haskell será contratar personas que conozcan lo básico y que estén dispuestas a trabajar en Haskell, y luego educarlos.
fuente