4 ms·
I wouldn't say that C is easy to master, but it's not very difficult either. The problem with C is that even a C master can't necessarily write correct code, b
by blub 10y ago
I wouldn't say that C is easy to master, but it's not very difficult either.
The problem with C is that even a C master can't necessarily write correct code, because C is a very programmer-unfriendly language, making developers remember to do various actions manually and perform error-prone calculations.
C++ is definitely harder to master (after many years, I can't say I master every corner of the language), but it's much easier to write correct code in C++ and it will be just as fast, run on as many platforms, etc, etc.
C lost this battle a long time ago, it's surviving because of nostalgia, still having good street cred and inertia. The number of domains where one must use C is shrinking and now that we also have Go and Rust this will accelerate. All for the better, really.
- dig1 10y ago> C lost this battle a long time ago... The number of domains where one must use C is shrinking I doubt that. Kernels, drivers, embedded devices (not IoT), GNU world, are all highly C oriented. Want to develop for a customer with unknown unix variant? Want to develop a tool everyone are going to use, either on Linux/BSD/Solaris? C is the only option. > but it's much easier to write correct code in C++ and it will be just as fast Writing correct and fast C++ code at the same time was never an option; even today, with "safe" pointers, people are still confused how to correctly use shared_ptr<>. > now that we also have Go and Rust this will accelerate Some places where C is still a strong contender: * good tooling - debuggers, memory leak detectors, years of experience with compilers on various platforms * well understood language - C has dark corners and they are documented well * interfacing with everything else - from devices to libraries and languages
- dikaiosune 10y agoRust can piggyback on almost any C tooling (emits DWARF debug info), and has very strong C interoperability, if C can talk to it, rust probably can too.