Lars Wirzenius: Hedgehog Lisp, 2004


Thursday, April 15, 2004

Hedgehog Lisp: Vera likes Lisp? Weirdness

It seems that Vera, my co-worker, is capable of liking Lisp after all, if she's under enough medication.

Friday, February 13, 2004

Hedgehog Lisp: Teaching Lisp

This week and last week I've taught Hedgehog Lisp programming to a few clients, each time I had a few hours of time. This has been pretty exciting. Even though we only had time for the very basics, I think it was possibly to give them enough knowledge that they can do things on their own. It also seemed to me that the general theme was that our desire to keep Hedgehog simple has paid off: a large language would have required much more time for teaching, which in both cases would probably have made things impossible. For example, there are no threads at the Lisp level, so the application programmers don't need to worry about locking issues, and entire worlds of pain disappear.

As it happens, I suspect also that the functional approach makes things easier to teach in a short time, even if the people already know other kinds of programming. Functional languages seem, to me at least, much simpler and cleaner, and this speeds up the learning process.

Monday, February 02, 2004

Hedgehog Lisp: Vera doesn't like it

I see Vera, one of my co-workers, complains about my marvelous variant of Lisp in her log. Actually, she complains about all functional languages. I admit this is not news, I knew about her dislike of them even before we'd implemented Hedgehog Lisp the first time. Still, I had hoped she'd come around, but I guess you can't win them all. Luckily, I know she'll do her job well anyway.

I still think that making Hedgehog Lisp be a functional language was the right decision. It helps me, if not Vera, to make correct programs. Correctness is, of course, rather important in embedded development. I also find that it tends to make my programs simpler in general.

I suspect Vera's biggest problem is that functional programming requires adopting a new paradigm for thinking about programs. Most people tend to find paradigms hard to adopt (it is not a matter of high or low intelligence), and this is something that works against functional programming in general. On the other hand, despite the difficult paradigm shift, it can be worthwhile, if the paradigm offers significant benefits. I think it does.

One day I'll have to write down my thoughts on why they do. Tonight I don't have the time.