C++ Snobbism

I’m not entirely certain where this snobbism originates. I think I can make out two distinct types of language snobs: experts and non-experts.

In the former class, I suspect snobbism arises out of an overzealousness when it comes to protecting the snob’s expert status. Frankly, I think that’s almost the definition of the expert I’ve complained about before, and I should really call them snobs. But at least they have some claim to their fame in their knowledge of the topic at hand.

Non-experts, on the other hand, seem to be motivated by a need to appear like experts, which they hope to achieve by virtue of proximity. In that, they essentially behave like any other fanboy — with the perhaps crucial difference that they’ll likely have acquired just enough knowledge about their topic of interest to fool newcomers into taking them seriously.

Contrast that to, say, trekkers — and while anybody would admit that the average trekker knows more about Star Trek than, say, I myself, that’s only considered a good trait amongst trekkers themselves. There is little danger of a trekker appearing to be an expert on alien life forms, for example, and influencing government decisions based on that.

But that’s enough about the motiviation of language snobs, really. I’ve explored some of it before, and don’t want to repeat myself1.

Here’s what I’m really interested in: why is language snobbism so hard to detect, or expose as what it is?

I’ve recently taken to lurking on several IRC channels on freenode.net again, and some of them are about specific programming languages. You’ll quite regularly see channel members bashing a “rival” programming language as part of bolstering the image of their choice of language.

For example, Lua users seem to be so proud that their language is faster than Python that they seem to forget completely that in order to achieve the same level of comfort for e.g. OO-style programming, they have to jump through so many hoops and use so much glue code that they may well end up being vastly less productive. And Python users, on the other hand, sometimes treat Lua as a prime example for a language where you have to write everything from scratch, because the standard libraries are virtually nonexistent.

I’m sure the above paragraph is well suited to incite some people to expressing how one side of the dispute is more or less right than the other. Please resist that urge, because I, for one, could not care less about your opinion on that.

It is, however, also a good example of two languages that are almost polar opposites in their aim: one is intended to make minimal definitions of it’s own and let the user build everything else on top, while the other’s slogan is “batteries included” — implying that users should prefer what’s provided. Neither approach is better or worse than the other2.

The politically correct response to any such conflict is to state that each language has it’s place. While that’s correct and pragmatic, it’s also an easy way out3 — which makes it questionable whether language snobbism is avoidable, or whether avoiding it by fleeing into political correctness is a good idea.

  1. Although I did, mea culpa. []
  2. I’ll add a caveat to that in that I personally think expansive standard libraries are a great idea. They just shouldn’t be bundled with the language, but rather maintained as separate projects that users can pick and choose from, which keeps the language core small and neat. That approach, however, comes with it’s own set of problems, which require solid inter-library dependency tracking, and therefore package management. Most programming languages delegate package versioning to the operating system, though — a fundamental flaw in those languages, if you ask me. []
  3. And I could rant about political correctness as a method for avoiding an own opinion endlessly, so I won’t even start. []

Leave a Reply