I am not a programmer. Sometimes I've wanted to get a T-shirt made saying this, because--as an author of Linux books--it's always assumed I am. But I'm an impostor. The last program I wrote ran on a ZX Spectrum in 1988, and then it was only to make "Keir is cool!" scroll across the screen.
What I am is a journalist and author. In other words, I'm an end-user. I'm a very good end user, as it happens. I might even be called a professional end-user. I wouldn't be able to write my books otherwise.
[ Track the latest trends in open source with InfoWorld's Open Sources blog. ]
I've spent a lot of time "reverse engineering" the culture of Linux. I'm so good at this that I've had conversations with programmers where they think I'm one of them. But I'm not. I can speak their language. I can apply a patch and tweak source code. But I've no idea how to make sense of that source code. I know it involves the word DEFINE a lot, and square brackets. And something called MALLOC, which sounds like a character from a Terry Pratchett book. But that's it.
I didn't study Computer Science at college. I studied literature, mostly, and bringing the (ahem) "skills" of a literature graduate to the world of Linux has been interesting.
Studying literature is all about criticism. This word has a slightly broader meaning than in the outside world. Literary criticism isn't a negative thing. To critically study a book is to take it apart--to explain its methods and meaning, in order to better our understanding of the world. It's not about being positive or negative.
Of course, value judgments can be an important part of criticism, and is seen daily in newspapers. The proponents are known as critics, and their goal is to tell you whether something is worthwhile--whether it's worthwhile seeing the latest movie, or reading the latest novel. It's a valuable service.
What's interesting about the world of Linux is that there aren't many critics within the community (there are many critics outside the community, of course, such as Microsoft people).
Most of the time the world of Linux tends to be anti-critical. If anybody in the community dares be critical, they get stomped upon.
I've made a handful of blog postings recently that have been critical of Linux (in the sense of pointing out perceived failings), and people hate it. If they explain why, it's usually a variation of the following: "Linux is free, so why are you complaining?"
The statement is an interesting one. It implies that Linux is inferior to commercial software because nobody pays for it. It supposes that the end-user of Linux just can't have the same expectations as with software he or she has paid for.
It also categorizes my comments as "complaints" when they're actually criticism--offered in good faith with the hope of making things better. There is a very important difference between a complaint (negative) and criticism (positive).
"You smell!" is a good example of a complaint.
The following is criticism: "Your body odor has become unbearable--it's clear your deodorant isn't working."
A complaint is offensive. It's a verbal attack. Genuine criticism is intended to help and often hints at a solution (get a better deodorant, dude!). Criticism might be blunt. It can be harsh. But it has genuine intentions.