4 ms·
The historical answer was fairly simple: 1. C was slightly more understandable than existing options at the time 2. The compiled objects could be manually ver
by Joel_Mckay 3y ago
The historical answer was fairly simple:
1. C was slightly more understandable than existing options at the time
2. The compiled objects could be manually verified/debugged with relative ease
3. There was no mystery/interpretation between the runtime and the hardware, but this isn't technically true anymore for many platforms.
4. The simplified environment demands simplified structural design. Try anything fancy, and C can be very unforgiving to the uninitiated (easier to write bad code). Do a one liner in high level languages instead =)
5. Due to the well-defined simpler syntax of standard C89, the GNU groups were able to bring opensource/free compilers to many new platforms. ARM popularity, Linux, android, and most IT infrastructure owe their existence to these compilers... even if it was just bootstrapping the new environment.
6. All languages have use-case specific tradeoffs. I have worked with over 54 different languages, and have observed the following: if your code still builds and runs on a 5 year old OS, than it will likely not need refactored for another 5 years.
As Intel begins to deprecate x86 legacy features, there will be a lot of drivers that will need rewritten.
Have a wonderful day =)
- anacrolix 3y agoThe Lindy Effect for programming languages.
- rramadass 3y agoVery clearly put!
- kazinator 3y agoC was not more understandable than existing options at the time. You know that cdecl program to explain C declarations? There never was a pdecl for Pascal, or mdecl for Modula or what have you. C is terse and cryptic; and that's what appealed to some of the programmers. You could get the machine to do what you want and---bonus!---programmers not versed in C cannot read your code! This would have been a selling point to assembly language programmers: switching to C would be like a lateral move to a different priesthood.
- fulafel 3y agoAlso at the time compilers were expensive proprietary things. Ease of compiler implementation was big and enabled low barrier to entry. The allowance for variation in semantics, like data type sizes lowered it too.