Hacker News new | past | comments | ask | show | jobs | submit login

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 =)




Also 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.


C 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.


The Lindy Effect for programming languages.


Very clearly put!




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: