HaskellWhyAndWhyNot
From SPA Wiki
Contents |
Haskell: Why and Why Not (BOF session Wednesday)
The Questions
- Why Haskell ? What is it good for ?
- Why so much interest ?
- What makes it a good language ?
- Gotchas
- Barriers
Fitnesse for purpose
- DSLs, Business models, anything related to Software Language Engineering
- Parallelism, cleaner concurrency primitives, better optimizations thanks to side-effect freeness
- Composing things from smaller things
Why so much interest ?
- Raising TDD practice entails finer decomposition of software and the need for stateless objects, closures,
- The end of Moore's law for hardware lead to increase interest in languages supporting better concurrency and optimization constructs
- Lots of other languages with FP concepts: Ruby, Python, LINQ, F#, Scala, Erlang...
- Lot of new things to learn (or relearn)
- Expressive power and concision
- Ease of abstraction and generalization
What makes it a good language ?
- Powerful type system
- Friendly and growing community
- Composability at various levels of abstraction
Gotchas
- Developping UIs is painful/ugly
- No web framework up to current standards (eg. Rails, Lift, Django...)
- Monads and type system are just hard to grasp and easy to abuse
- Binding to middleware systems (eg. MQSeries, Application servers, RMI)
- Persistence ? No really good framework
- Steep learning curve
- Difficult to release to customer: lack of people and skill
Barriers
- Idiomatic Haskell tends to be very mathematical and somewhat hard to understand for mere mortals
- Ease of creating idioms leads to obscurity through redefinitions/abuse of strange operators (eg. like C%2b%2b operators overloading)
- Lack of good and easy to use IDEs
- Language is big
- It is very abstract
"A bit of Haskell every day, keeps the blues away" - Willem Van den Ende