Jono DiCarlo's Top 3 Humane Open-source Applications

October 6, 2007 ⋅ 4 Comments »

In his article Ten Ways to Make More Humane Open Source Software, Jono DiCarlo picks his top 3 humane open-source applications. (Side note: When the Humanized guys say “humane”, they are talking about usability. They’ve got a blog post explaining why humane is a better word than usable). The first one on the list I expected, but the others came as a bit of a surprise:

1. Firefox

This one was a no-brainer. It’s one of the most successful open-source applications ever, due in no small part to its excellent user interface. What impressed me the most when I first used Firefox was the simplicity of its preferences dialog.

2. Emacs

I admit, I used to be an Emacs user. Powerful, sure. But good usability? Then again, just because something is difficult to learn doesn’t mean it’s not highly usable. In the article, Jono makes a good argument for calling Emacs humane.

3. Python

I agree with Jono whole-heartedly on this one. The more time I spend writing Python code, the more I love it. I’m a firm believer in the Zen of Python:

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.

I was suprised to see Python included in this list though, because I’m not used to people talking about programming languages in terms of their usability. But I agree with Jono:

Programming languages are interfaces just as GUIs and command-lines are. Programming language are a way of giving instructions to a computer, just like a GUI or a command-line. Programming language design is user-interface design.

In the HCI class I took at Carleton last year, I actually wrote a paper that analyzed the pros and cons of static and dynamic typing from a usability perspective. Instead of the formalism vs. agility argument, I tackled it from a different point of view, asking “How can type systems make programming easier?”

The importance of the benevolent dictator

Jono’s post recommends a list of DOs and DON’Ts for producing humane open-source software. Number one on his list? Get a benevolent dicator:

  1. Get a Benevolent Dictator
    Someone who has a vision for the UI. Someone who can and will say “no” to features that don’t fit the vision.


  1. Braydon Fuller - October 7, 2007:

    Hi Patrick, I was also very happy to hear that Jono, and Humanized are not only using free software, but also that they are also giving some considerable thought into it, and writing about it in their blog. Free software is more humane at it's core, and this shows that there are many good interfaces that are coming out of it when the user interface isn't a non-free facade. Furthermore, not only is a programming language an interface, an INTERFACE is also PROGRAMMING LANGUAGE. I am curious about your paper, and will look at it later tomorrow. Also, in response to Jono's #1 DO, It’s not necessary for their to be such a person. The important thing is that their is a vision and that it’s clear. People make errors, they also die. Their ideas and vision will not die. I have a full response that is available here: PS. thanks for the large reply box. I am trying to find a good commenting system that will also enable commentors to format their text like the original articles, so the comments can be more easily digested, especially when there is a lot of them.

  2. <blog> </blog> » Blog Archive » In Responce to: Ten Ways to Make More Humane Open Source Software by Jono DiCarlo - October 7, 2007:

    [...] Also please go read: Jono DiCarlo’s Top 3 Humane Open-source Applications by Patrick Dubroy “Usability and Open Source” by Scott Wilson “Is Customizability Bad?” by tante [...]

  3. Patrick - October 8, 2007:


    Thanks for your comment & response.

    What do you mean by "free software is humane at its core"? Do you mean that because you can modify it, it is inherently more humane that non-free software? That's an interesting perspective.

    You're right that it's most important the there is a clear vision for a product, but I also think that it's easiest if that vision comes from a single person. In art and design, it's very rare for a clear, consistent aesthetic to be produced by more than one person. Of course there are some exceptions of artistic partnerships (Lennon and McCartney, Charles and Ray Eames, Joel and Ethan Coen, etc.), but there is a reason that "design by committee" is a pejorative term.

    The comment form should actually say this (oops), but the comment boxes on this site accept Markdown format, which allows for most of the formatting that you would want to use I think.

  4. Braydon Fuller - October 10, 2007:

    Yep, because free software supports community by giving its users freedom to share and modify it, it will always have a key advantage over non-free software. The human-computer-human interface is equally as important as the human-computer interface.

    Design by massive collaboration is very successful; is a great example. It has become without eccentricities of a personal bias. Although, Wikipedia still has a strong personality amazingly. This proves we can be more intelligent as a community. The issue with collaboration is the speed of communication; it's better if when collaborating to work in close proximity. This increases the efficiency, and languages used to communicate. That's why such great things have come from Charles and Ray Eames, they were married to each other. That closeness is essential; free software brings people closer together and thus great things have and will continue to come from it.