An Architect's View

ColdFusion, Software Design, Frameworks and more...

An Architect's View

Haskell Revisited

January 8, 2007 · 13 Comments

About once a year, I tend to mention Haskell on my blog. I like functional programming languages - that was my research topic for three years after I graduated from university. Haskell is a very powerful functional programming language that has a number of available implementations and, as I discovered this weekend, a very active community. Last time I messed with Haskell, I chose the nhc98 compiler because it was easily available for the PowerPC Mac. When Haskell had cropped up in discussions with not one, but two ColdFusion developers this week, I figured I'd install it on my new Intel Mac. Except nhc98 is not available as a binary distribution for the Intel Mac. Easy, I thought, download the source and build it myself. The build failed. The notes suggest using the ulimit command to remove the file-size limitation on the shell. OK. The build still failed. The notes say if you can't solve it with ulimit, use another Haskell compiler to help bootstrap the build. Try as I might, I couldn't find an existing Intel Mac binary of any Haskell compiler. But there's an IRC channel listed on the Haskell web site. #haskell on freenode.net. I figured that #coldfusion is so helpful that I might as well try the #haskell channel... There were nearly 300 people in there! And, guess what? They were very happy to help me for several hours. First, they pointed me at an Intel Mac build of ghc (the Glasgow Haskell Compiler) which, incidentally, was contributed by a member of the Haskell community (i.e., built from source and submitted back). I installed it and it worked just fine. So far so good. Then I installed hmake and hi (hmake interactive) which are build and shell tools for using Haskell compilers. I ran into problems with a library dependency. Again, the IRC channel folks were very helpful. Following their instructions, I removed the (obsolete) dependency and successfully built and installed the two hmake tools. Yay! Then I went back to nhc98, determined to build that from source. I ran into several more dependency problems. Back to the IRC channel. Similar advice (nhc98 is old and the dependencies aren't needed when using newer compilers to bootstrap it). I finally got it built but, unfortunately, every file it generated just crashed. By this point, the IRC folks were wondering why I was bothering since nhc98 has really reached a dead-end. They pointed out that ghc has an interactive tool (ghci) anyway. So I admitted defeat and starting playing with ghci... Some of the tutorials on the web features code that didn't work. A quick check in with the IRC channel and I learn that Haskell 98 had a flat namespace for libraries but since then the standard library ("Prelude") has been reorganized into a hierarchy of packages. We discussed some of the slight differences between Haskell 98 (per the tutorials I was trying to follow) and "modern" Haskell and I kept on learning. One of the interesting things about the channel is that members are constantly swapping code fragments and experimenting amongst themselves with ways to solve problems. Very collaborative! So, once again, I'll suggest to the curious among you to check out Haskell. I'd also ask you to think about the difference between the #coldfusion channel on DAL.net and the #haskell channel on freenode.net. #coldfusion has 20-30 members most of the time and occasionally gets as high as 50. For the most part it is banter about everyday life but folks will rally and focus if someone comes on asking a ColdFusion question. #haskell has 270-300 members and discussion is mostly about Haskell. We're all so very passionate about ColdFusion and we like helping newbies. Why are so few CFers on IRC compared to Haskell developers?

Tags: oss · programming

13 responses so far ↓

  • 1 Peter Bell // Jan 9, 2007 at 4:08 AM

    Maybe CF'ers just don't do IRC?! I'm guessing its a communtiy/technology adoption issue.

    Talking of which, given that I've NEVER tried IRC, what client would you recommend for an Intel Mac?
  • 2 Peter Bell // Jan 9, 2007 at 4:27 AM

    Of course, it could be that people who are only skilled in Haskell programming can't get jobs in companies and hence are sufficiently underemployed to spend all day on IRC
  • 3 Peter Bell // Jan 9, 2007 at 4:28 AM

    But there again, it could be that the huge efficiency gains in using a functional programming language means that they can do the work of a ColdFusion developers in a fraction of the time, thus leaving the rest of the time free to hang out on IRC.

    Hmmmm.
  • 4 Brian Swartzfager // Jan 9, 2007 at 5:25 AM

    My guess would be that not many CF folks even know about that IRC channel: it's certainly the first time I've ever heard of it.

    Could also be that CFers are more comfortable with forums and blog discussions as a means of communication, which give you a little more time to think about your response and are easier to search through or save for reference.

    --Brian
  • 5 Craig Drabik // Jan 9, 2007 at 6:29 AM

    I think IRC is really only familiar to those of us who spent too much time in university computer science departments :) Compared to languages that are less-often used for business or commercial development, the CF community probably has a lower population of those people than, say Eiffel, Smalltalk, or Haskell.
  • 6 Sean Corfield // Jan 9, 2007 at 8:07 AM

    For Intel Macs (and PPC Macs too): Colloquy (from colloquy.info).
  • 7 Peter Bell // Jan 9, 2007 at 8:18 AM

    Cool - thanks!
  • 8 Peter Bell // Jan 9, 2007 at 8:39 AM

    Thanks!
  • 9 Cody Caughlan // Jan 9, 2007 at 9:00 AM

    I might be on a limb here, but I am going to suggest that the reason CFers dont use IRC is that IRC is kind of an older-school-ish technology/platform/app infrastructure, etc. Its old-news to *nix gear-heads (some could say hard-core users / developers). Since the majority of CFers are Windows, and Windows is seen as a non-hard-core development platform, CFers dont use IRC, by extension.

    As another example: I have leaped into the Ruby on Rails world; its a fact that Ruby (and especially Rails) is much more geared towards *nix, it runs best on BSD/Linux/Mac OS X, etc. In addition, the IRC channels #rubyonrails and #ruby have upwoards of 250-300 users at any one time and most questions can be answered very quickly.

    Is there a pattern here? Or I am just a jaded, anti-Windows cynic?
  • 10 Sean Corfield // Jan 9, 2007 at 11:54 AM

    @Cody, well, I don't find Windows to be a very productive developer platform so I sympathize with your thoughts.

    It might well be that *nix developers are more aware of and more comfortable with "old-school" text-based stuff - look at all the command line source code control and package installation tools around. I think there's also a lot more open source activity on *nix (for pretty obvious reasons) which in turn leads to a preference for non-proprietary technology (IRC and Jabber rather than AIM, MSN and YIM for example).
  • 11 Paul Bx // Jan 9, 2007 at 4:11 PM

    I recently took on Haskell as my new language for 2007. The liveliness and helpfulness of the IRC channel were a significant factor -- I actually checked out the channel of each language I was considering.

    I'm on the Mac as well and got similar help in locating the (PPC) binary of GHC and GHCi that I'm using now.

    I don't know if you noticed this during your time in the channel, but they aren't just pasting code -- the channel bot ("lambdabot") serves as, among other things, an in-channel Haskell interpreter.

    There's also a big Haskell event starting tomorrow, so that will probably make the channel even more lively:

    http://haskell.org/haskellwiki/Hac_2007
  • 12 Sean Corfield // Jan 9, 2007 at 7:49 PM

    @Paul, yes, there seem to be several bots on channel at times.

    On #coldfusion, cfmx7bot serves a similar purpose to the classic 'egg drop' IRC bit. It's written in ColdFusion of course (just like lambdabot is written in Haskell).

    Also like lambdabot, it can interpret expressions for you using the !calc command (it filters the expression quite heavily in an attempt to prevent malicious code but it may not actually be perfect so I have to trust folks here).
  • 13 TJ Downes // Jan 10, 2007 at 5:37 AM

    @Cody & Sean: Whatever platform you are most familiar with will be the most productive platform for you.

    I used IRC for many years, never really having been a *nix person (never ran *nix as a desktop).

    It's an old, insecure and unreliable technology and at one point was being so maliciously attacked that many of us just stopped using it.

Leave a Comment

Leave this field empty: