Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

ziggy (25)

ziggy
  (email not shown publicly)
AOL IM: ziggyatpanix (Add Buddy, Send Message)

Journal of ziggy (25)

Tuesday August 01, 2006
02:48 PM

The Tidal Wave Cometh!

[ #30501 ]

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.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • Couldn't agree more. I think HASKELL and OCAML are well on the way to being the next big think in development and I wait with bated breath for ARC.
  • 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.

    • I can't speak for Joel, but in my experience, a big reason why the wave is hitting now instead of 10 or 20 years ago, is because Moore's law has finally crossed some barrier that makes these languages workable.

      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
  • Good entry, and the article referenced is cool as well (Joel is right sometimes :-)

    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 :)
    • As for concurrency, I know Erlang-like concurrency is perfect for declarative languages, you can get a similar thing (...) in Scheme (...)

      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.)

      any easy way to use hugs w/o emacs??

      Um, yeah. On the command line. But I use ghc[i].

      • Ah, that's really interesting! (Termite) I'll check it out, thanks!

        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 :load *grin*

        thanks!!

        PS- off to try and understand Pugs!
        --
        $ pugs -M6 -e 'say "use 6 :)"'
        use 6 :)
  • is it possible to see the tutorial online?
  • You honestly think that in a mere 10 years, it will be impossible to get a job as a C programmer? We'll have operating systems written in Haskell and word processors written in Erlang?

    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

    • You honestly think that in a mere 10 years, it will be impossible to get a job as a C programmer?

      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.

    • It doesn't seem too far off to me. Bare metal gets further and further from the PDP-11 every day.

    • In 10 years time, if you're programming in C, it will be because you're programming a burglar alarm or a fridge. Possibly an operating system, although I suspect l4 style microkernels will have made inroads, and most OS code will be running in "user space" and might be written in Haskell.

      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).
      • 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).

        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

  • Couldn't find the presentation "Introduction to Haskell", do you have it online somewhere.