Archive for January, 2007


Haskell is fun!

January 8, 2007

Lately, I’ve been doing a lot of Haskell. I must warn you, I always have a Programming Language Of The Month, but now I feel as if it’s different. Haskell is a programming language where you get the feeling that a lot of things are just perfect.

First off, the way the type-system works, many, many, many errors that you’d normally make in your imperative language are simply impossible to make. It’s very strict, and although ruby is me second language of choice, this is also a really good thing. For example, I recently read that it’s virtually impossible to generate invalid XML. And that’s not because the author is some crazy god-like person, it’s just an intrinsic feature of the data-types in Haskell.

Furthermore, Haskell gives you a really good intellectual challenge. You really spend more time thinking than typing. The information density in your code is quite high compared to a lot of other languages I work in.

Also, having no side-effects is a Good Thing. The first time that I worked in Haskell, I was really disappointed that IO was so hard to do, with all that incomprehensible Monad-stuff and more. As it turned out, it’s really not that hard, and debugging will get so much easier. You just don’t need logger statements all around your code.

Ruby is my second language of choice, and that’s because you don’t have to type that much. But one of the powers of ruby is the meta-programming, which is a bit of a hack. But less typing means you’ll get stuff done sooner and it’s harder to make errors. In Java, you’ll have to type a lot (even with Eclipse), because of the type-system (pun intended). In Haskell, the type-system is really smart, and you don’t have to type a lot of trivial things. The compiler will automatically deduce the types of functions for you. So you’ll end up having the advantages of a static typed language, but better, and having the advantages of dynamic languages, less code.

Finally, there are a lot of really smart people in the Haskell community. There’s lots of really advanced stuff being done, but most people are also very good writers. Just google for “Simon Peyton Jones“, and read some of his papers. Most are explaining beautiful, advanced things, and he has a really clear writing style. Maybe he’s one of the best, but there’s lots of other people that write excellent programs, articles and other stuff.

So, if you feel at least the tiniest bit excitement, I can recommend that you download a haskell compiler, do some tutorials, don’t give up and get just as excited as I am! And don’t forget: the best way to get to know a language is to program in it!



January 7, 2007

Quite some time ago, when the sky of the internet was still blue, people didn’t have blogs and Wikipedia, but used so-called newsgroups to communicate and learn. Those newsgroups got lots of questions asked over and over again, so they started compiling a list of them, posting it each month, and naming it, appropriately, Frequently Asked Questions.

These days, the three-letter acronym is used mostly for documents that are a convenient way out of writing real documentation or structuring information on a website. There’s nothing wrong with that, but the difference with the original FAQ is that most of the time, the questions answered are never really asked.

Obviously, this kind of language polution is not the way to go. And because I have a big hole in my language ozon layer I got just annoyed enough to go and think of solution for this misbehavior.

Because I’m a realistic kind of guy, I don’t expect the whole word to use my made-up acronym to rebrand their FAQs. So I thought of something clever: find another group of words that discribe what’s really going on with the same acronym!

I’ve got three favorites, pick yours and hopefully you’ll think of it the next time you see ‘FAQ’:

  • Firmly Anticipated Questions
  • Fabricated Answered Questions
  • Fictionally Asked Questions