Why Native Languages Sometimes Do A Better Job
Native languages are undoubtedly more harder to code in, to deploy, and to comprehend than managed languages; but I like native languages more. Why?
If one asks you if the process of programming purely interests you because of the things you create, or simply because of the process of programming itself, how would you respond?
Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.Linus Torvalds
I say, that most people tend to be in favour of both.
When I program I often want to have full control of what my program is doing and see how exactly it interacts with the operating system. As it is the case, higher languages, like Java or C#, will beyond doubt try to hide the “lesser meaningful” things. Of course, it is not a bad thing, as the programmer should focus on his code and not on the often times worse code of others.
But it seems like there is something inside me that wants to see the dark side, the full picture, the nasty operating system APIs for example. I want to take full control of the ship, even if that means I’ll start to suffer. I’m sort of the guy who likes it complicated.
For example I like coding complex programs that need high efficiency, in languages like C++, since it gives me a whole set of tools to work with, but also with almost zero fundamentals. The case for example is my game engine, where I took on myself to create a whole API abstracting graphics and common OS functions.
A reinvention of the wheel you might say. When you say that to me I remark that my engine was purely programmed because of educational efforts. Of course also because it was fun, and because I really wanted my own framework to build games on top with.
So maybe it isn’t as successful as other engines and not as optimized, but I think the whole process, even if it took weeks, taught me a lot about cross-platform development and about clean coding structures.
Another example is, I remember, when I began programming as I started modding GTA: San Andreas. There, you can compile little scripts into bytecode that some mod manager called CLEO would then find and inject into the game engine. Then I’d decompile said bytecode and look at the decompiled code, because I was more curious on how the computer sees my code, than how the code looked in non-compilated, “human-readable” form.
To conclude, native languages are more enjoyable for more, for they allow me to take full control and push my knowledge of low level functions.
On the other hand, it is often a pain to program in low level languages; I’d choose a higher level language every time where I’d need to just get the job done, i.e. 90% of the time.