Ruby and Python are certainly huge productivity improvements — well beyond Java and C# — with crisp syntax, dynamic types, iterators, list comprehension, and injection etc.
But SQL with its set semantics seems to have a level of productivity which even Ruby and Python can’t seem to achieve.
LINQ (Language Integrated Query/C#) from Microsoft was another attempt in that direction. LINQ’s architect was an original design team member of Haskell98. LINQ is based on a concept called “Monads” in Haskell.
So I decided to take a look at Haskell and got started on functional programming. Boy, was it hard! A language where there are no loops!! Wow!!!
Haskell has more power than C++/Java put together and is crisper than Ruby/Python. It was quite a shock to learn that this language has been around since 1990. i.e. 3-4 years before Ruby/Python existed.
Haskell has a new way of programming; yes “functional” is about writing functions, but quite a bit more than that; no looping; all programming is driven through recursion and a math equation style programming. Some principles are truly derived from abstract algebra. Even the concept of function in Haskell mirrors a math function more closely than any language (seriously C++/Java/C# are not even close in terms of capturing a math sense of function). I had come to the conclusion that maybe there is a conceptual fork which cannot be bridged. Was I ever more wrong!!
Haskell is proof that a programming language can be designed on clear math principles and still be an effective and efficient tool to use. Granted, I don’t see how Haskell can ever become popular; but once you learn it, you will see all the languages you have ever coded in differently. This is one language I am convinced will raise your game in coding — no matter how many languages/years you have — provided you grasp the Haskell way of thinking.
Will Haskell end up like Lisp? Things seem to be changing course in a big way…
http://googleresearch.blogspot.com/2009/08/under-hood-of-app-inventor-for-android.html
….if Lisp can beat ‘C’…hmm…functional could be worth knowing….
http://tech.slashdot.org/story/09/05/25/1553220/Worlds-Fastest-Small-Web-Server-Released-Based-On-LISP?art_pos=8
Erik Meijer — designed LINQ
http://jaoo.dk/speaker/Erik+Meijer
Phillip Wadler — an original designer of Java Generics (GJ)
http://homepages.inf.ed.ac.uk/wadler/gj/index.html#may99
Both were original architects of Haskell — and of course Simon Peyton Jones… the grandmaster
http://research.microsoft.com/en-us/people/simonpj/
Resources:
Book – http://www.amazon.com/Real-World-Haskell-Bryan-OSullivan/dp/0596514980
Tutorial – http://learnyouahaskell.com/
Compiler- http://www.haskell.org/ghc/
The Haskell Language
Monday, December 21, 2009
Posted by
Srinivasan Balram
|
No Comments
Post a Comment
