3 ms·
>especially in the embedded world. But then that's a very specific requirement, which pretty much requires you to use only the C features. Embedded development
by pikzen 11y ago
>especially in the embedded world.
But then that's a very specific requirement, which pretty much requires you to use only the C features. Embedded development is probably 5% of the entire C++ jobs. Should the 95 other percent ignore C++'s features because the other 5% do ?
- adrusi 11y agoNo. First of all, embedded probably constitutes more than 5% of all C++ jobs. Second, embedded is not the only area where C++ is essentially written like C. It might be changing no, but for decades, that's how most C++ was written. In games, for example, it's common to see the only C++-specific features used being operator overloading for vectors and matrices and maybe a couple templates. In highly-regulated safety-critical domains, the language is restricted by style guides that essentially limit the available features to a subset of C. And beyond that, writing C++ as just "C with some extra features I want" is a popular style. GCC, for example, uses only destructors and templates, and is otherwise just C. It's not a bad thing. It's not clear that C++ is an improvement over C in terms of ease of use or maintainability. Projects written in C++ tend to develop complexity faster than those written in C.
- nly 11y ago> GCC, for example, uses only destructors and templates, and is otherwise just C. Well, to be fair, that's because the GCC codebase was written in C and later switched to bootstrap in "C++ mode". Introducing C++ features in to an existing production-ready, 30 year old, C codebase is not going to happen quickly. Both Clang and LLVM, on the other hand, use C++ features pretty readily. > It's not clear that C++ is an improvement over C in terms of ease of use or maintainability. Projects written in C++ tend to develop complexity faster than those written in C. Complex projects can grow complex because they're... well, inherently complex. So maybe inherently large, complex projects just require the power of C++? We both clearly have a personal bias one way or the other. Personally, I despise C. As well as a lot of the things I like, pretty much everything I hate about C++ comes from C (header files, implicit integer narrowing, and undefined behaviour wrt signed types, for example.). Cs lack of power and expressiveness has also lead to pervasively poor, lazy API design (libc and most of the POSIX APIs, for instance, are total garbage).
- pikzen 11y agoFollowing up on adrusi's comment because max comment depth is reached: But you KNOW those features. You know that you shouldn't use overloading because of perf reason A, or that templates are bad for reason B (in the case of your project). However, if you saw those two features in code, you'd know how to interpret it, how they work, etc. The typical C++ knowledge is not just C. The OP to which I replied to implied that counter() (or any of the other features that are part of the standard) isn't typical CSS knowledge. Well then the typical CSS knowledge is terrible and should be fixed, because they're not exactly obscure functions, and CSS isn't exactly a huge monstrosity like C++ is.