C, C++ or Assembly ?
C, C++ or Assembly ?
With clearer requirements, I might have deployed something in a week using a widely available platform. This approach doesn’t require excessive effort. Other companies likely use similar pre-built solutions.
Professional Software Engineer here: Compilers are sufficient for optimizing where your overall design will have a far greater influence than any individual lines of code.
Don't waste time with assembly; any C/C++ compiler will perform better than you can achieve.
For GUI applications, stick with C++ and select modern windowing tools. Aim to avoid "C-isms" and follow current C++ best practices.
If developing a console app or something that only requires basic GUI and high performance, you can use C. Follow at least C99 coding standards and be careful not to overuse the API; minor performance improvements often lead to more stable, bug-free applications.
Simple explanation....
Machine code (also called assembly) created by a skilled programmer.
Long ago, I needed to improve a COBOL app for a less powerful computer. Back then, the only option was to rewrite it in assembly language.
Higher-level languages rely on compilers that transform high-level code into assembly instructions.
These compilers are excellent, but not as efficient as code written directly by a programmer with expertise. Still, compiled programs run faster than interpreted ones like Python.
The drawback of lower-level languages is that they become harder to maintain for someone who didn’t write them originally.
Another aspect that isn't discussed is the maintenance tail. Developing a software project that works and functions is one challenge; ensuring it remains functional, upgradable, and adaptable over several years is another, yet connected issue. Using assembly never makes it easier to maintain, as it restricts compatibility with different hardware. While x86 is common, it doesn't solve problems like needing to build a table application from the ground up without any existing code.
I would go even further to say that outside of *very* specific situations it is even inappropriate to manually perform individual assembly tasks these days. Individuals don't value how effective optimizing compilers have become... or how poor the writing of 99.99% of people in assembly is.
Essentially, I will make sure anyone who says they can do it faster in assembly is placed as far from a keyboard as possible.
C# is a highly structured programming language offering many features similar to C++, but without some of the challenges and risks found in other C-based languages. It's not as fast as C or C++, yet it performs comparably to most other high-level languages. If I require a straightforward GUI application that doesn't demand high performance, C# is my top choice. For tasks needing superior speed, I prefer C or C++.