Wednesday, October 15, 2008


Surprisingly, this is not going to be a post about functional programming, nor about the existential types calculus, Fun; but, about fun, as in "having fun" or something being fun to do. More specifically, programming.

OK, most people who know me will know that I hate programming. Well, that's not really true, I love programming, but I hate all the crap that goes with it. Writing neat, elegant code to achieve some task and see it work is more fun than most (but not all) things I can think of. However, testing, debugging, writing documentation, writing boiler plate code, maintaining code, all of these are about as much fun as a kick in the nuts.

I believe the fun aspect of programming is important, it motivates lots of people to write open source and free software and to code in their spare time "just for fun"! It pretty much explains why anyone would work in the games industry. Even in well paid development jobs, I think that tasks that are fun to do are given priority, done with more enthusiasm and concentration, and, therefore, done faster and with less mistakes.

So here's an idea for language design, how about making a language that maximises the fun in using it? It would maximise the time spent on fun things and try and make the not-fun things more fun, rather than more efficent or more safe or whatever other software-engineering-ey things are considered important nowadays.

Of course, you would need to find out precisely what was fun and why and how to put these ideas into a programming language, but maybe that will be fun to do itself.

How's that for a research project that will never get funded and will never happen?


Unknown said...

No need to invent it, it already exists. It's called Haskell.

Sophia Drossopoulou said...

show us which parts of a program you consider fun, and which you consider not-fun, and let us see whether there is consensus.