Базовый язык Haskell действительно прост. Исходя из опыта OO, основная трудность заключается в адаптации к чисто функциональной парадигме.
Изучая «базовый» язык Haskell, я всегда рассматривал языковые расширения как игрушки для людей CS или как эксперименты для будущих версий языка (как from future import ???
в python).
Однако когда я начал изучать веб-фреймворки, такие как Yesod, я обнаружил, что для многих исходных файлов требуется расширение от 3 до 4. Некоторые выглядят довольно просто (StringOverload). Другие действительно пугающие (GADT, Type Famillies, Template Haskell). Их документация связана с исследовательскими работами, что пугает тех, кто ожидает «просто» новой библиотеки.
Нужно ли учить расширения языка GHC, чтобы быть продуктивным в Haskell? Если бы вы наняли разработчика на Haskell для производственного приложения, спросили бы вы об этом?
Ответы:
Да. И это верно для любого языка / инструмента. Обладая базовыми / базовыми знаниями, вы можете решить задачи онлайн-конкурса, это может быть небольшой университетский проект, но определенно не реальное приложение.
Теперь это зависит от того, есть ли у вас человек, который может поделиться этими знаниями. Если да, то этот человек может нарастить нового сотрудника. Если нет, то вы должны сначала получить такого человека со знанием. И снова это верно для новых технологий.
Конечно, вы также можете попытаться нанять людей, обладающих такими глубокими знаниями в Хаскеле. Но поскольку Haskell относительно новичок в отрасли и, учитывая, что вокруг него было реализовано очень мало коммерческих проектов, найти такого человека будет сложно. Эффективный способ создать команду профессионалов в Хаскелле - это нанять людей, знающих основы и желающих работать в Хаскеле, а затем обучить их.
источник