I know I'll get flamed/modded down for this, but it needs to be said: there is no reason for new apps to be written in C. C++ can do everything that C can do, just as efficiently; it's easier to read, which means a code review is more effective; language features and the STL reduce the need for explicit dynamic memory allocation, which is a source of bugs in C; the language is a better match than C to modern, object-oriented methods of analysis and design; - I could go on, but shouldn't need to.
there is no reason for new apps to be written in C.
By "new apps" do you mean this to include "new versions of g++" as well? If so, then how would you recommend bootstrapping a C++ compiler on a system with only GCC?
language features and the STL reduce the need for explicit dynamic memory allocation
To a developer who has to fit algorithms and data structures into a handheld computer's 32 KB of fast RAM when all other RAM in the system has horrible wait state behavior, every byte still counts. I've read horror stories that use of the STL tends to bloat code size. Have modern STL implementations addressed this issue other than just to deprecate a widely deployed handheld computer?
Yet another library for an obsolete language (Score:1, Troll)
Where every byte counts (Score:1)
there is no reason for new apps to be written in C.
By "new apps" do you mean this to include "new versions of g++" as well? If so, then how would you recommend bootstrapping a C++ compiler on a system with only GCC?
language features and the STL reduce the need for explicit dynamic memory allocation
To a developer who has to fit algorithms and data structures into a handheld computer's 32 KB of fast RAM when all other RAM in the system has horrible wait state behavior, every byte still counts. I've read horror stories that use of the STL tends to bloat code size. Have modern STL implementations addressed this issue other than just to deprecate a widely deployed handheld computer?