A linguagem principal do Haskell é realmente simples. Vindo de uma experiência OO, a principal dificuldade é se adaptar ao paradigma funcional puro.
Enquanto aprendia Haskell "básico", sempre considerei as extensões de linguagem como brinquedos para as pessoas de CS ou como experimentos para futuras versões da linguagem (como from future import ???
em python).
No entanto, quando comecei a olhar para estruturas da web como o Yesod, percebo que muitos arquivos de origem exigem entre 3 e 4 extensões. Alguns parecem bastante simples (StringOverload). Outros são realmente intimidadores (GADT, Famílias de tipos, Modelo Haskell). A documentação deles tem links para trabalhos de pesquisa, o que é assustador para quem espera aprender "apenas" uma nova biblioteca.
É necessário aprender as extensões de idioma do GHC para serem produtivas em Haskell? Se você fosse contratar um desenvolvedor Haskell para um aplicativo de produção, solicitaria esse conhecimento?
Respostas:
Sim. E isso é verdade para qualquer idioma / ferramenta. Com o conhecimento básico / básico, você pode resolver os problemas do concurso on-line, pode ser um projeto universitário pequeno, mas definitivamente não é um aplicativo do mundo real.
Agora isso depende de você ter alguém com quem possa compartilhar esse conhecimento. Se sim, então essa pessoa pode acelerar o novo funcionário. Caso contrário, você deve obter essa pessoa com conhecimento primeiro. E, novamente, isso é verdade para novas tecnologias.
É claro que você também pode tentar contratar pessoas com um conhecimento tão profundo em Haskell. Mas Haskell é relativamente novo na indústria e, considerando que muito poucos projetos comerciais foram realizados, encontrar essa pessoa será difícil. A maneira eficaz de formar uma equipe de profissionais em Haskell será contratar pessoas que conheciam o básico e dispostas a trabalhar em Haskell e depois educá-las.
fonte