When I was starting out, I was just dying to earn my “real programmer badge™”. At the time “real programmers” used assembly and I was taking the lazy easy way out using C. So, in my quest to earn my real programmer badge I taught myself assembly. Now it took me 10 times as long to write my code and it sure was more difficult; no doubt my badge would be in the mail! Sadly… no, it didn’t arrive.
The years went by and assembly became more and more niche. In the meanwhile, higher level languages came to the fore. There were even languages that hacks and simpletons could rapidly create programs in, like Delphi ( pascal ) and Visual Basic. Of course real programmers looked down upon these amateurs, everybody knew that this wasn’t real programming. Hell even C++ was looked down upon, it was way too high level and slow for real programmers to use, so being a real programmer I kept using C. Things sure were slow and painful, lots and lots of work, no doubt my real programmer badge was on it’s way!
Another generation of languages came along, new pretenders like Java and C# rose in popularity and the lazy and weak flocked to them like mad. Real programmers of course knew that C++ was the one true language. Sure, those class libraries and the freedom from memory management sure looked tempting, but I am a real programmer damn it, so I continued working in C++. My god was it difficult so I truly must be getting close to getting my real programmer badge. When it didn’t arrive I decide their surely must be a mistake at the post office!
Then the current generation of languages came to the forefront. Scripting languages had risen in popularity, to the point that it seemed more people were “scripting” than programming these days! Scripting? What real programmer in their right mind would ever work in a lowly scripting language? I am a real programmer, I will leave scripting for the hacks and newbies, thank you very much! Real programmers work in C++! Oddly enough, I still haven’t received my badge…?
Recently a funny thing happened… I took to a project under a tight deadline, it absolutely had to ship on a given date. There was no way I could possibly succeed in time using a real programming language, so I took to using the plebian tools. Working in C#, the wonderful class libraries sure did make development fast. At times I actually slunk to the lowest of the low and used scripting languages! It felt so dirty but I have to admit the rapid turn around and interactive tools sure did things quick. In the end, it was a challenge and I had to prostitute my pride, but I shipped on time! The following day, a FedEx truck pulled up to my front door and delivered my prized Real Programmers Badge™!
( Image totally stolen from a middle aged drama queen. )
Of course, this story is completely full of crap but the moral is completely true. When I was starting out C was truly looked down upon as being a tool of “fake” programmers. Through the years the language has changed but there has always been an “IT” language that new programmers to the field think they have to work in to be a real programmer. It sadly often takes years of experience to realize how stupid this mindset actually is. Can you imagine a carpenter that wouldn’t use a drill because “real carpenters” use screw drivers, would you hire this person?
A real programmer uses the right tool for the job. For those of you just starting out, “the job” very much includes “learning to program”. In the end a real programmer makes the best product they can, as efficiently as they can, using whatever tool works best. Sometimes, that tool might even be C++!