State of the Onion 9
chromatic writes "Perl.com has just published Larry Wall's Ninth Annual State of the Onion address from OSCON 2005. In previous talks, he's used screensavers, music, and Unicode to explore Perl and open source. This year, he introduced the cast of characters in the Perl community in terms of spy movies and metaphors."
Functional programming has been around for a long, long time, actually, but it has never revolutionised programming, so I'm not sure why Haskell should do it now - it's been around for almost 20 years already, too.
Not that functional languages don't have their merits, of course, but I honestly don't see why they should suddenly take over and obsolete other programming paradigms now.
That being said, have you taken a look at Curry? It's a language that combines functional and logical programming (à la Prolog) - definitely rather cool.
quidquid latine dictum sit altum videtur.
Oh, I didn't mean to imply that you said that Haskell was the first functional language - certainly not. I merely wanted to point out that Haskell isn't new, so if a revolution hasn't happened yet, why should it happen now?
I've met many people, especially at the university, who believed that functional languages were the holy grail of programming and that they would be taking over the (computer) world Real Soon Now(tm). But it's never happened, and nowadays, I believe that these people are just out of touch with reality.
Let's face it - the IT industry is just like any other industry, especially in one regard: things usually happen by evolution rather than revolution. Traits of functional programming languages will certainly find their way into the "mainstream" (and the "mainstream" languages), but nobody'll decide to just throw out all existing code all of a sudden and reinvent everything from the ground up in a new language - no matter how good that language is or, more important, how much better it is than the existing languages. Even object-oriented programming is really an extension of the imperative programming paradigm, not a replacement.
Paradigm shifts do occur, but they occur over time, and it's a smooth transition, not an abrupt one. Statements like "we've hit the limits of imperative languages" may sound cool, but they ultimately don't mean anything - the limits are changing. Boundaries *can* be pushed, and *that* is something that is *especially* true in the computer industry in general and the software industry in particular.
I won't deny that I'm not a fan of functional programming languages myself, of course. Personally, I think they're rather unnatural; it may be easier to model their semantics mathematically (and the mathematical models will be more "natural", too), but I also think that the step-by-step approach of imperative languages is more natural for the human mind - it's how we do things, and that's probably why imperative languages took off when functional languages didn't (and for the record, both functional and imperative programming language started at the same time, in the mid-50s, and the theoretical foundations, in the form of Turing machines and lambda calculus, also popped up at about the same time).
Nevertheless, I do realise that functional programming languages have some very interesting and useful features, and I'm certain that these will be incorporated into existing languages (or new languages based on existing ones, in the sense that Java is a new language based on C, for example) eventually - and that's a good thing. Pure functional programming, however, will (IMO!) always remain a specialised niche for certain, mostly mathematical (that is, theoretical) problems that naturally lend themselves to being modelled in functional ways.
quidquid latine dictum sit altum videtur.