Eighteen months ago, Audrey was looking for something challenging and started writing pugs in Haskell. After the first three weeks, were nearly every day brought a blog post like "Today was the most productive day of the pugs project ever! I doubled the number of features again!", lots of people started to notice. Not only notice Audrey and pugs, but also Haskell.
I noticed. Which is why when I was presented a project (for a previous employer) around the same time, for a parser with an unknown set of requirements and constraints, Haskell sounded like the way to go. Indeed, it was; once I got my bearings, my ability to modify the code outstripped the ability of managers to add/change/contradict requirements. In fact, it was not uncommon to spend 1-2 hours in a meeting with 3-8 people discussing a feature that took ~15 minutes to revise/implement.
Fast forward to last week, when I presented a tutorial at OSCon entitled Introduction to Haskell. Based on the feedback from attendees, it went over pretty well.
Fast forward to today, when Joel Spolsky writes about basic functional programming practices, using JavaScript for his examples. (Nothing that you haven't seen already in Dominus' HOP. What you don't have a copy? Why not?)
At this rate*, by 2010 (2015 at the latest), all programming languages that aren't functional will be obsolete; the only kinds of jobs that will be open will be for functional programming, and the only kinds of people in the market will also be functional programmers.
Functional Programming. Not just for eggheads anymore.
*: This is the same logic that noticed a sustained annual 10x increase in Perl monger groups by early 1999, and predicted that there would be more Perl mongers groups than people on the planet by 2006/2007.
Functional languages (Score:1)
Concurrency (Score:1)
Joel alludes to this, but I wonder if part of the growth of functional languages will be that they're much easier to optimize for concurrency than languages with side effects.
Re:Concurrency (Score:2)
Take ghc, for example. On my 4-year old G3, ghc 6.4.2 took about 14 hours to bootstrap. gcc, by comparsion might take as much as an hour or two to do a full 3-stage bootstrap (vs. ghc's 1.5/2 stages). Also, on a "simple" Haskell program, there is a noticable amount of time to compile (either to pro
Cool, thanks! (Score:1)
Don't miss Joel link to Steve's Rant: http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html [blogspot.com]
Excellent as well.
And I'm on to your Haskell presentation!
As for concurrency, I know Erlang-like concurrency is perfect for declarative languages, you can get a similar thing (i.e. Communicating Sequential Processes: http://c2.com/cgi/wiki?CommunicatingSequentialProcesses [c2.com]) in Scheme (as the easiest language to see a
$ pugs -M6 -e 'say "use 6
use 6
Re:Cool, thanks! (Score:2)
Actually, you can get exactly the same thing in Scheme. Just use Termite [toute.ca]. (Probably not ready for prime time, but under actively development.)
Um, yeah. On the command line. But I use ghc[i].
Re:Cool, thanks! (Score:1)
Of course, having the source on a window and the CLI with readline or a similar line-editor in another (or different screen, anyway) will be all that's needed... forgot to
thanks!!
PS- off to try and understand Pugs!
$ pugs -M6 -e 'say "use 6
use 6
please!! where can i see the tutorial??? (Score:1)
10 years is _way_ too optimistic (Score:1)
C was being used to write operating systems 33 years ago, and it's still going strong. There will always be a call for a language that lets you be somewhat platform-independent while still giving you the ability to get very close to the bare metal.
There is a place for functional programming--many places, as a matter of fac
Re:10 years is _way_ too optimistic (Score:2)
Um, read the footnote again. That assertion is as valid (and as plausible) as the assertion that today, August 2006, the number of Perl Monger groups is very nearly the same as the number of people on the planet (+/- ~10%), and by this time next year, the number of Perl Monger groups will exceed the human population of the Earth by roughly 10x.
Re:10 years is _way_ too optimistic (Score:1)
It doesn't seem too far off to me. Bare metal gets further and further from the PDP-11 every day.
10 years ago, people were still using turbo pascal (Score:1)
However, a game, a word processor, a network daemon, you'd be writing in Haskell, Perl, or perhaps Java (but by then, Java will probably look very Haskelly, and Perl 6 already does).
Re:10 years ago, people were still using turbo pas (Score:2)
I'm not so sure.
First, C will never completely die. Assembly language is still useful, even if it isn't used by 99.44% of programmers. But the idea of assembly language is still very useful, and still deserves to be one of many cornerstones of any good CS degree. And, periodically, the idea of assembly is useful when
Re:10 years ago, people were still using turbo pas (Score:1)
Your argument against C# would be stronger if Microsoft had demonstrated that it could actually write software anymore. :)
Presentation (Score:1)