Emacs is a text editor used for everything from editing text to writing code to organizing one’s entire life. It’s an older piece of software–originally written in 1976. It’s strength comes from extensibility–you can make emacs do whatever you want if you have the patience, time, and skills. Another way to word this is that it’s super crunchy and hard to use. It’s hard to save files, it’s hard to copy and paste, and it’s hard to become involved. One emacs hacker/user I know said:
…for social and technical reasons contributing to the project is hard and some people view this as a good thing and that’s really shitty.
My criticisms of FLOSS projects have a lot to do with difficulties in install processes, usability, and accessibility (a11y). Inaccessible software is bad. Software that is hard to use is bad. Software that is hard to install is bad.
(I will note that, from this perspective, all text editors are bad.)
Thinking about free software development and usability from a business perspective begs up the question: What does the customer want? The customer for a community is a contributor–the customer for an application, operating system, package is the person installing it. Looking at emacs as a case study, I recently found myself asking if it needs to be accessible and easy. I am not the natural user for emacs. I don’t use it now. Why is it important for it to cater to my needs?
Being able to code is important. So is being able to change a flat tire, swim, sharpen a kitchen knife, unclog a toilet, and understand the basics of how your hot water heater works so that if the pilot light ever goes out, you know what to do or at least how to figure out why your shower is cold.
Initiatives like Hour of Code are important because computers need to be normalized. Not everyone needs to be a developer, but everyone does need to know the basics of how computers work. It is not–and should not–be acceptable to say (with pride even) that you don’t know how computers work, what code is like.
It is not the job of emacs and the community to make sure I can use it to code–or use it at all. However, it should be the imperative of the community to make sure I know and understand the fundamentals of technology–this includes the basics of how computers actually do things. From a perspective of self-preservation, keeping technology in a black box is useful to the technical. As long as computers are not only difficult, but also scary, I need them. But, the fact is, I am going to need them anyway because I do not want to become an expert. I’d rather be an expert at growing delicious peppers, making an asplenium flourish, and identifying trees by their smell.
Technologists and hackers have made their way to where they are, in some cases, through trials by fire. They have fought against communities, proven themselves, and hacked their way through impenetrable code and processes in order to become a member of the club. They should have the tools they want. They should be able to have fun and be kind of elitist in their in-group the same way I should be allowed to have fun and be kind of elitist about building a bike, knowing Hume, and having a favorite designer in any given season of Project Runway. But, none of those things should be scary. The mentality that a project being hard is a good thing is not just mean, but detrimental and dangerous.