Saturday, 7. July 2007, 10:16:09
I have a gut feeling, that the functional language paradigme is on the return.
We went from procedural C to an object-oriented paradigme with C++. This paradigme was refined and improved in Java, and later, in C#.
Now we see the rise of the dynamic languages; Ruby and Python. They augment the object-oriented way by loosening up the type system and give us developers a glipse and a sip of the taste of functional.
Function objects? Lambda expressions? List comprehensions? Closures? We kinda like these new old toys - even Java looks to reinvent itself with closures (at least some wishes it that way, but I've not noticed any JSR yet).
The net result is that we tasted functional and we want more. For the time being, we'll be making due with Ruby, Python and, eventually, Java-with-closures. But these technologies will only take us so far, and wont last forever.
I believe that in two or three years time, Haskell will enjoy much the same popularity that Ruby has now. On the five-year horison, it might top at one-third of the popularity that Java has now, and then start to stagnate and slowly decline again.
Since Haskell is purely functional, I don't think it'll ever reach the popularity of Java and C#. I don't think we'll be able to abandon the object-oriented paradigme the same way we abandoned procedural programming.
We want the power of both worlds, plus an excellent console/intepreted mode and dynamicy in the type system.
I think Haskell will eventually fall short of all these requirements, but in its fall, it will provide the seed to the next generation language - a language that probably haven't been invented yet (or is in the works on some garage-geeks laptop

).
I think it is this next-gen language that will put Java and C# in their respective graves (which is to catch the hearts and minds of developers world wide) - so both of these camps have nothing to worry about until then (that's right, Java people, Ruby is
not going to kill you and neither is .NET

).
And while I'm at it, this next language may not be one but several languages. We've been headed for a diversity in programming languages; right tool for the right problem - and I don't see this development go away anytime soon, if ever.
So, why do I think that Haskell, of all choices, will be the functional that gets a come-back? Well, first of all, Lisp is too crude and is pretty much the functional Fortran. Other languages are, well, unkown and don't have the same maturity and wealth in existing libraries to offer.
As far as I can see, the closest contender will be Erlang, but I know very little about this language so it's hard to say how it'll fare - it just seems to be the only other option on the horison.
Haskell, on the other hand, is mature, well tested and has the minimum of libraries to be useful in modern projects. And finally,
this book will be the spark that lights the flame.
So, clear as mud, this is my prediction for the near to midterm future of programming languages. Feel free to leave thoughts in the comments