This post is a response to a comment posted on the Facebook group made for the C++ and Unreal Engine 4 course at http://ww.facebook.com/groups/unrealcourse/ on the news I shared about the C programming language being the most important language according to the IEEE.

The comment was “Assembly is the closest to machine code and is used surprisingly often. C is pretty close too though, but has made some major compromises for the sake of readability.”.

I would like to add to this a little specially given my last post here was about choosing a programming language.

I write Assembly sometimes for my day job. C/C++ or high level compilers are better at optimising code of course and they save time

Having said this, Assembly will always be needed for this one not-so-unusual situation: When your bare-metal Hardware has features that are so new or too rare that they don’t exist in a C or C++ compiler yet.

Mobile and other hardware manufacturers have this problem all the time and if you are a big software/game developer who works with mobile or other Hardware vendors then you certainly need Assembly programmers in your team 🙂

Quite often hardware vendors who design CPUs or GPUs introduce new and very specific features that only exist on specific products to meet the demands of that specific application.

The only features that go into C/C++/Shader compilers or other types of compilers are the features that are standardised and that are going to be in all future classes of devices.

So choose the right tool for the job. If your compiler supports the features you need then no reason to write Assembly other than wasting your time and money but if it’s not there then it certainly is doable in Assembly or some other crazy form of turning those transistors on and off, haha

Anyway, if you don’t know any programming then it’s time to learn one. Try the C++ and Unreal Engine 4 course for a start 😀