HaskellWhyAndWhyNot

From SPA Wiki

Jump to: navigation, search

Contents

Haskell: Why and Why Not (BOF session Wednesday)

The Questions

  1. Why Haskell ? What is it good for ?
  2. Why so much interest ?
  3. What makes it a good language ?
  4. Gotchas
  5. 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