It seems as of late I keep hearing people say “oh, the programming language is just a tool help you reach your goal of creating the program you want to create. It shouldn’t matter what language you use.”
I have a bit of a bone to pick with people who say this. Yes, they are right in saying that the ultimate goal is to create the program you want to. I’m not going to dispute this in any way. What I do have a problem with is saying that the programming language is just a tool. Yes, it is a tool, but it is the tool that you are using to create your program. Just like the classic saying “It’s in the journey, not the destination”. Would it have been possible to carve Mount Rushmore with hand tools? Sure. Would it make any sense to have done so? Heck no – bring on the pneumatics and other power tools! Would you rather drive a Pinto or a Ferrari 612 Scaglietti on a cross-country road trip? I’d much rather take the Ferrari. Of course the Ferrari does come with it’s associated costs, but it makes the trip a heck of a lot more enjoyable.
I think you get the hint now, but I want to use one more example. Would Michaelangelo have used dull chisels to carve David? If he had access to sharper chisels, probably not. Why? It would make the job go that much smoother, as well as make it that much easier on himself.
My point is this – don’t be afraid to try out new technologies that help you get things done in a more efficient and more comfortable way. Take for example a new programmer trying to make a game in C++. Obviously C++ is an amazing language and tool to work with, but when compared to C#, it looks quite ancient. The intellisense in Visual Studio for C# is lightyears ahead of what it is for C++. With C#, there’s no screwing around with pointers. Syntax errors are quickly pointed out by the editor (usually without having to compile/build), and error messages are helpful. When something does manage to break, exception messages are usually quite understandable, and it’s quite possible to see the exact line that threw the exception. Want to throw a breakline in some code, halt the program execution and alter the values of a variable, then continue running it? Sure – you can do that. Need some nifty data structure like an Dictionary? Don’t worry, it’s already in the .Net framework. There’s no point in reiventing the wheel.
I’m not saying don’t use C++. There are still a lot of good reasons to use C++. I’m saying take a look around and don’t be afraid of new technology. It could potentially save you a world of pain, as well as make your “journey” as beautiful as possible.