When I took a Lambda Calculus class years ago in Silicon Valley, 90% of the students groaned and complained. They just wanted to learn Java and make money. Having a background in OO design and experience with Eiffel, I was intrigued and stuck with it, building some tools with ML, and later Haskell.
In the workplace it was near impossible to avoid the .Net culture, and most of my code has been C#. But the factors that mattered were:
- Continuity with past languages and tools
- Availability of programmers
- Third party libraries
- Inter langage operability
- Reuse of legacy code
etc
Best I can tell, there is no way to avoid the business context. I suggest that if you have freedom, you need to be multilingual. Many systems could benefit from applying the proper tool to the corresponding problem.
But I will say this, becoming proficient at Haskell really improved my designs by providing an alternative conceptual framework. But, it had a very substantial learning curve. All I can say is trust that even if your core language is procedural, you will be better at that for learning a functional language.
To make Haskell a first class citizen in the IT shops, I think focus would have to shift more to the business context and needs. And certainly more focus in the universities that are still dominated by procedural languages. Once that is drilled into ones head, it affects the way one thinks.
To give an example, I have these problems:
- Update to GHC 7.8.3 from 7.6 caused run time behavior changes breaking USB application
- Sandboxes are not completely isolated from the core library and often builds break
- Most new grads don’t even know what a functional language is
- Documentation gets out of sync with releases (where documentation means Wiki and web)
- FFI is difficult to use and debug
- Lack of books, user groups, etc
Mike
I know that I'm using a different language when talking about monads. The language of the IT industry.
Many haskellers use the language for toy programming. Others are professional academics. The few that use the language for commercial purposes are too busy developing practical applications rather than thinking deep about how to apply the haskell concepts to their problems. As a result many of such problems remains essentially unsolved. These busy developers try to transcode solutions from other languages that lack the deep and expressiveness of Haskell.
This lack of interest in one side and the lack of time in the other is disappointing. The symptoms are everywhere. Particularly, I find it in the lack of support and interests for this ticket:
I though that there was definitively a shift from "avoid success at all costs" a few years ago, for a commitment for the success, but still there are many minds to change, especially the brilliant ones.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe