I’ve just read Steve’s rant about compilers, and believe me, it’s not like the ones you’ve seen before (it’s much better!). Whenever someone tells me about a blog entry about the importance of a given knowledge to the programmer profession, I know what to expect: someone to whom that knowledge is relevant writes about it as a means to demonstrate how utterly bright he is in contrast with the sordid majority, to whom that knowledge is less relevant. My perspective is based on the perception that oftentimes the authors use arguments that apply only to those with similar professional choices or personal taste. For example: how can you convince a programmer on the relevance of compiler knowledge just by saying that without compilers, programming would be too hard? As I wrote in an earlier post, these arguments have to be based on the relevance of such topics to our professional choices, not on any objective scale of importance. One can’t use that argument with programmers who aren’t going to write program compilers.
Fortunately, Steve has managed to be persuasive. What is very interesting about his post is that Steve, as someone who has managed to understand compilers, didn’t fall into the arrogance trap. Instead of arrogating himself for his compiler knowledge, Steve took the self-critical route, describing in a very candid manner what he thought about compilers early in his career. Instead of enumerating arguments that make sense only for the GCC team, Steve describes how different programmers in different contexts can benefit from this knowledge, showing his awareness for diversity in a post that instead of condemning, stimulates and encourages all of us to look further into compilers.