Software Engineering discussion

9 views

Comments Showing 1-1 of 1 (1 new)    post a comment »
dateUp arrow    newest »

message 1: by [deleted user] (new)

I have a Haskell bias. I programmed in it (a little) before, and I like it. It is a pure functional language, and I recommend pure languages to those trying to learn a new paradigm. There is no imperative escape hatch; you are forced to learn to express things differently. I think that the structure and syntax of this language is elegant. The strong typing combined with type inference means that it can be difficult to get a program to compile, but when it does it is likely to work correctly.

There is a fairly steep learning curve with this language. Once you get past the typing, type classes, currying, etc. things start to gel. The biggest problem I have is fully understanding monads, which let you carefully break the "no side effects" rule, for things like I/O. That section of the book was very helpful to me. I am, however, surprised that the author didn't emphasize the concurrency and Software Transaction Memory features and benefits of Haskell (they are similar to Clojure). The trend toward multicore processing makes languages like Haskell more compelling.

While I would like to spend more time learning Haskell, and it is really intellectually interesting, I am still not sure that I would reach for it for most programming tasks, especially for business-oriented applications. I might lean more toward a language like Scala, which allows the programmer to get the multiparadigm benefits of both the functional and object-oriented paradigms, in a mix appropriate to the problem at hand.


back to top