3 ms·
My list of advantages: - long-term stability: the code I wrote two decades ago is still valuable to me - short (!) compilation times: this is a huge produc
by uecker 8mo ago
My list of advantages:
- long-term stability: the code I wrote two decades ago is still valuable to me
- short (!) compilation times: this is a huge productivity boost
- the language is very explicit: one can see and understand what is going on
- mature tooling: good compilers and many other tools
- simplicity and elegance: the language is small and not much I need to remember
- portability: supported on many different systems
- performance: C code can be very performance and usually it is without effort
- lean: there is no bloat anywhere
- interoperability: it can interoperate with everything
- no lock-in: it does not lock you into specific frameworks or ways to do things
- maintained using an open and (relatively) fair process: not controlled by specific companies
- what needs to be done, can be done: there are never showstoppers
- uecker 8mo agoI should also talk about disadvantages and which I think are real and which are not, or not serious - no abstractions: i think this is completely wrong, one can build great abstractions in C - no package manager: IMHO languages should not have packager managers - difficult to learn: I think this wrong (but see below) - safety: partially true, but there are ways to deal with this effectively (also the advantages of alternatives are exaggerated) - out-dated: partially true with respect to the library - weird syntax: partially true, but hardly serious - not enough investments in tooling: rarely discussed, but I think this a problem (tools are mature, but still a lot could be improved) - difficult for beginners: the out-of-the-box experience is bad. one needs to learn how to do stuff in C, find good libraries, etc.