C, C++ or Assembly ?
C, C++ or Assembly ?
Hi,
the question is about the best language to build highly optimized software efficiently. The goal is to develop a complete application with a user interface that runs smoothly even on very old hardware, like a 20-year-old PC. I’m looking for the most suitable option among them. I understand Assembly can be useful for compatibility (for example in games like RollerCoaster Tycoon), and I know C gives good control over memory and performance. Compared to Python, C seems more appropriate for software development, though I’m aware C is often used for operating systems.
Hello,
i only know Python, and a little bit of HTML/CSS and very little of C.
This is a very long term project for something that is not "needed", it's more a personal project so I have time to learn the needed language, which is why I asked the question.
Why not using assembly?
I understand it's just a tool, but I think if you have a specific goal (like minimizing resources), some options are better suited for achieving that. That's why I posed the question!
It appears there are separate assemblies for Intel and ARM (Apple/Raspberry Pi), so making something extremely resource-efficient like assembly might not be feasible across all platforms.
Writing a GUI-based app in assembly is significantly more challenging compared to other languages. The exact requirements are unclear. Which platform should we use—Linux, Windows, or Apple? Should it be a GUI or console application? What purpose will this unidentified component serve?
Instead of focusing on creating the most optimized software, define the hardware needs and performance expectations first. Then build accordingly. If these two aspects aren't clearly established, it will be difficult to succeed. And remember this well (a saying by Donald Knuth):
Also what's more important than having your software be fast is
having software be correct
. Would you rather use a program that's faster, but crashes randomly within a half hour, or one that's slower, but runs forever?
Yup. About 95-98% of projects are getting the design right. Focusing on testing logic on paper and ensuring it functions properly before coding. Only the last 2-5% actually write the code. The exact language is decided once everything else is set up.
Undefined currently, but MacOS or Windows should work without issues.
Interface.
Typically, inputting data would function like a freight forwarding tool, requiring minimal complex calculations.