Haskell core language is really simple. Coming from an OO background, the main difficulty is to adapt to the pure functional paradigm.
While learning “basic” Haskell, I have always considered language extensions as toys for CS people or as experiments for future versions of the language (like from future import ???
in python).
However when I began to look at web frameworks such as Yesod, I find that a lot of source files require between 3 & 4 extensions. Some look quite simple (StringOverload). Other are really intimidating (GADT, Type Famillies, Template Haskell). Their documentation links to research papers, which is scary for someone expecting to learn “just” a new library.
Is it necessary to learn GHC language extensions to be productive in Haskell? If you were to hire a Haskell developer for a production application, would you ask for such knowledge?
1
Is it necessary to learn GHC language extensions to be productive in Haskell?
Yes. And that is true for any language/tool. With the core/basic knowledge you can solve the online contest problems, may be small university project, but definitely not real world application.
If you were to hire a haskell developper for a production application, would you ask for such knowledge?
That now depends on do you have some person with you which can share this knowledge. If yes, then that person can ramp up the new employee. If not then you must get such person with knowledge first. And again this is true for new technologies.
Off-course you could also try to hire peoples having such deep knowledge in Haskell. But Haskell being relatively new into industry and considering very few commercial projects have been done around it, finding such person will be hard. The effective way to build a team of professionals in Haskell, will be to hire people who knew basic and willing to work in Haskell, and then educate them.
6