|
|
|
|
|
by Matthias247
3127 days ago
|
|
> Also these tools work awesome when you are in a company, and you have underneath - dozen or more libs, sdks, projects that need to run together. I'm pretty sure it works great then. But for the bigger C/C++ ecosystem the problem is that everyone uses another build system. From Makefiles to Automake, Cmake, Gyp, Scons, Bazel, etc. everything is included. As soon as you try to use dependencies that favor a different format you either have to rewrite their project definition in your format or at least build it as an external subproject and manually add the include directories. Imho that's one of the biggest weaknesses of C++ that even outweighs language concern for me: It's often lots of work to integrate 3rd party libraries. And because of this there isn't a really great ecosystem of libraries (e.g. compared to Javascript and Java). |
|
The C mentality of some devs dragged into C++ world.
Already in the 90's we had very nice high level C++ libraries, that could compete with what Java offered later.
Turbo Vision on MS-DOS, Object Windows Library and Visual Components Library on Windows. All from Borland.
PowerPlant on Mac OS, from Metrowerks.
From Microsoft, we had MFC, which started high level like those ones (originally named Afx), but then the beta testers requested for it to just be a thin layer over Win16 and it was reborn as MFC.
Many of the modern C++ patterns were already possible with those libraries, but the C wisdom made many not use them.
Another modern example is Android NDK, Google writes the code in nice C++ classes, that get exposed as low level C APIs, or have a Java JNI barrier (e.g. Skia).