Coding Horror

programming and human factors

Is Writing More Important Than Programming?

The unofficial wikipedia blog entry The Future of Open Source Five Years Ago makes some fascinating comparisons between the adoption rate of Linux and the adoption rate of Wikipedia.

Server-side Linux is still a powerful force, but what happened to the desktop utopia that was supposed to unseat Windows? And will the same developed-world disenchantment hit Wikipedia as it grows?

While in principle anyone can contribute to an open source project, Linux's barriers to entry are higher than Wikipedia's. Even correcting minor Linux bugs is well beyond my expertise, but my grandmother could edit Wikipedia. All you need is an internet connection and literacy (mid-level literacy, at that; other people will fix your grammar and spelling).

Wikipedia can draw on half a billion potential contributors; only about 100,000 people can code Linux.

It's hard to overstate this difference.

To illustrate this point, it's accompanied by an amusing graph.

Wikipedia vs. Linux user base, small version

I've resized the graph to a more manageable size. Click through to see it full size. The writing on the bars is hard to make out. On the left, it's..

Number of programmers who can contribute to Linux, including minor bugfixes.

And on the right?

Number of people in the world who speak English well enough to edit Wikipedia and who have access to the internet. (This includes non-native speakers. It omits potential contributors to non English-language wikipedias only because this bar is already absurdly tall. (Okay, and because wikipedias of seperate languages are, to some degree, islands, and don't function as a cohesive whole.))

It's probably not fair to compare programming and writing in this manner, but I am reminded again of Joel Spolsky's classic advice for computer science college students:

The difference between a tolerable programmer and a great programmer is not how many programming languages they know, and it's not whether they prefer Python or Java. It's whether they can communicate their ideas. By persuading other people, they get leverage. By writing clear comments and technical specs, they let other programmers understand their code, which means other programmers can use and work with their code instead of rewriting it. Absent this, their code is worthless. By writing clear technical documentation for end users, they allow people to figure out what their code is supposed to do, which is the only way those users can see the value in their code. There's a lot of wonderful, useful code buried on sourceforge somewhere that nobody uses because it was created by programmers who don't write very well (or don't write at all), and so nobody knows what they've done and their brilliant code languishes.

Programming, like all writing, is just another form of communication. Writing code that the compiler understands is easy. Writing code that other people understand is far more difficult. And that's assuming you're persuasive enough to convince other people that your code, in a world positively overflowing with free code, is worth looking at in the first place.

Good luck. You're gonna need it.

Over the next few years, Wikipedia (and some of its Wikimedia sister sites) will become comparable to Linux in economic and social significance. Maybe Linux will catch up again a few decades later, if schools start teaching as many kids to program as they teach to write.

This quote was originally written in August 2005. I'd argue that Wikipedia was already more significant to the average internet user than Linux at that time. Now there's no question.

Technical programming skills are certainly important. But general writing and communication skills are far, far more important. Even if you're merely a humble programmer.

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Exchange and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: http://twitter.com/codinghorror