Please provide a small description of what the project does or at least a link to the main page. “Text Editor” is easy to understand, but many project names are not. What does PiTiVi do, and why is the Simple Timeline gone? What’s a gbrainy and why is it included in a CD? We really want to know!

Next week I’ll be at FOSDEM 2008 in Brussels. This is the first time I’ll be at a big programmer meeting, so I’m pretty excited. I first thought I’d just attend one of the many DevRooms, but seeing how many interesting talks there are, I’ve had to make myself a schedule using Google Calendars. I know I won’t be able to attend everything in there, but I’m unable to choose right now.

Choosing the best notation is the entire problem of programming language design, and this problem is neither mathematical nor scientific. A programming language is a user interface for programmers, and if you can reduce UI design to math, science, or any formal process, call Apple, not me.

I have noted before that there has been a lot of research on type systems but very few studies on programming languages usability, and this article provides a good explanation for it.

Although, as a small criticism, he gets dynamic higher-order programming completely wrong.

We (Saeed Dehnadi, Richard Bornat) have discovered a test which divides programming sheep from non-programming goats. This test predicts ability to program with very high accuracy before the subjects have ever seen a program or a programming language.

Also interesting from the paper:

From experience it appears that there are three major semantic hurdles which trip up novice imperative programmers. In order they are:

assignment and sequence

recursion / iteration;

concurrency.

My own experience seems to confirm this path, I know many programmers who, like me, have problems with concurrency. But I’m not sure if it’s because it’s inherently more difficult or because of the way most languages describe it (shared state).Via Lambda the Ultimate