Programmers pay an enormous amount of attention to their toolbox. We fight about what we think is the best editor. We’re constantly on the lookout for fresh techniques and software that’ll help us build other software. Most professionals do: woodworkers buy the best lathe and the best chisels and power tools money can buy, many musicians are afflicted with Gear Acquisition Syndrome, and if you’re a chef those newfangled ceramic knives are ever so tempting.
But programmers are a little bit different than other professionals, in that there’s no consensus whatsoever as to what the best tools and programming languages are. One favors the elegance of Python, another the power of Ruby, some people swear by PHP for its easy deployment and yet others cherish the huge toolbox that is Perl. Nothing wrong with that either: pick whatever tools you’re comfortable with and go do some work.
I have to admit, even for a zen-like chap such as me, it’s still quite the mental effort to repress knee-jerk reactions about the tools and programming languages other people use. Perl is for dinosaurs, Ruby for hipsters, Haskell is useless outside of academia, C is for masochists, C# for corporate drones. Computer programmers have probably been waging these kinds of petty religious wars since the dawn of computing. It’s harmless bickering, and not entirely unexpected since each of us has invested so much time into learning to properly use the tools we’ve chosen. Nobody likes to be told they’ve not chosen wisely, but everybody likes to tell everybody else about their own wise choice. It’s a silly but harmless social phenomenon.
What intrigues me more is how programmers will sometimes purposefully avoid using an admittedly better tool. IDEs are for sissies. Web frameworks like Django are for script kids. Why use existing APIs when you can write everything yourself? It’s the handicap principle in all its glory: everybody should know that you’re simply so amazingly skilled that even with crappy tools, you can still effortlessly best your peers and write better code, faster.
Less than ten years ago, it was C programmers talking down to Java devs. I mean, seriously, if you can’t even manage some pointers and do your own garbage collection, what business do you have calling yourself a coder?
Five years ago, the big thing in web development was whether to hand-tool a CMS or just tweak an existing one.
Now that Ruby on Rails’ adoption of CoffeeScript has put that little language into the spotlight, there’s no shortage of coders declaring that, yeah, it’s pretty neat. I mean, if you don’t know the quirks of Javascript. Which I do.
It’s funny, because in addition to showcasing a healthy self-confidence, it also betrays a fear that every new tool that comes out may finally be the one that gives young pretenders an edge while you can’t be bothered to pick it up anymore, the thing that’ll finally mark you as an old fart.
Actually, now that I think about it, it’s not that specific to programming. My dad is an electrical engineer, and occassionally he’ll fuss (in a goodhearted way) about how new graduates can’t seem to do anything without their calculators and computers anymore. And journalists who are unfamiliar with technology and social media and web apps — not veterans but aspiring reporters — are prone to say that good storytelling is still all a writer needs, in a fruitless attempt to hide their insecurity around computers.
Healthy scepticism about new stuff is a good personality trait. But take five minutes to think about whether it’s helping you, or keeping you handicapped. You’re not better because you can do things the hard way. Just stubborn.

5 comments
agree 100%
So what's in your toolkit, Stijn? ;)
I mean, really, if you have to drive to the store instead of walking 12 miles, then you really don't deserve to go to the store. These things called cars just make it way too easy for kids today.
All around, good points!
I don't think this is always true. The "macho" programming argument really depends on the application. Are you working on a realtor's website or are you working on numerics that need to run on 100,000+ cores? Different jobs require different tools. The only bad thing here is the sort of "C/C++ is the right tool for everything" mentality.
@Casey: you're right. I didn't mean to imply that anybody still using C is doing so just to be a show-off. It's more about the attitude that, if only you'd be smart enough, you wouldn't need to use any of the new / popular tools or languages out there, since they're only really useful for newbies. Which is a wee bit arrogant.
@Phillip: why, CoffeeScript of course. Why else would I be so stuck-up about people badmouthing it? :-)