Having had the privilege to experience a couple of days' worth of temporary tinnitus due to attending Marky Ramone's Blitzkrieg show (picture courtesy of rockXpress.ro), I've been thinking about a conversation I've had a few years ago with an ex-colleague about C and C++. Why? I'll tell you in a minute, but first: if you don't know who the Ramones are, give them a listen right now.Now, my then colleague expressed his reservations about the continued use of the C programming language. He argued that C is now mostly a subset of C++, therefore C should probably be better off put away somewhere and forgotten. No more separate committees for ANSI C and ISO C++, resources spent more efficiently, and so on. The argument has some justice to it, and I'm sure the hardcore geek readers' eyes are gleaming with anticipation for a rainy weekend with a hot technical debate over whether compiling with one compiler for both programming styles should generate exception handlers for the low-level code by default, but that's really not what I want to talk about.
What I want to talk about is the human component to using a tool such as a guitar, or a programming language. Programmers tend to believe the myth that efficiency has to be desired at all costs, and by organizing the code, and indeed the workplace in a certain "One True (TM)" manner all will be well with the world. Incidentally, so did the Nazis.
But there's a big difference in the overall philosophy of most of the people who prefer C vs. the axioms of the people who prefer C++.
C++ is more like classical music. If you want to be a classical music composer, or simply a competent classical musical instrument player, you need to train a lot for dexterity, to master all the modes, to understand how intervals and modes relate to chords, to study the work of the great composers, to learn sight-reading music, and so on. So you have your Mozart, your Mahler, and your Yehudi Menuhin.
But, what if someone simply enjoys music, and wants to have fun with it? Make the best of what one can learn in a short time with limited resources, and express all there is to express with that. After all, my highschool psychology manual used to define one's level of intelligence as being directly related to one's capacity of doing more with less. So then, you have your Ramones, your Nirvana, your Stooges, your Mudhoney. Two-note chords, at most five distinct chords in a song. Cheap one-pickup guitars. But you react to it. Things get done. You're moved by it, not necessarily in the same directions as classical music would have taken you, but in directions that are complementary to classical music, and using the same sensory building blocks. We have art.
The snobs may not agree with the previous paragraph, but the Ramones and the Stooges are already considered classics, and if you think simple and direct is bad and you're still not convinced, I invite you to reflect on the way the blues is played: 7th chords, only three chords used in a song, and those three are always I-IV-V. And the snob-friendly Martin Scorsese has gone out of his way to produce a dedicated documentary.
C gets things done. It's almost assembly language, but then again it's not. It's direct access to your computer. And you can learn it from a less-than 100 pages book ("K&R"), as opposed to the ten times as thick "The C++ Programming Language".
Both languages have their place, and as long as they will be actively supported by their respective committees, and there will be people who prefer to go and see a Ramones tribute band over seeing Tosca, this will always be the case.

