4 ms·
> The key is to realize C++ is not a language, but a federation of languages. You need to cherry pick a subset you what you want to use and stay disciplined. T
by eindiran 7y ago
> The key is to realize C++ is not a language, but a federation of languages. You need to cherry pick a subset you what you want to use and stay disciplined.
The issue is that no matter how disciplined you are, others will be using a different subset of the features available and you end up using different "languages", even when everyone on your team is ostensibly writing "C++".
- 0x445442 7y agoThis is the way Java's become in "The Enterprise".
- skohan 7y agoI feel a bit that way about rust at the moment. I am still learning, but I have found that a lot of libraries seem to use very different interface modalities, so I spend a non trivial portion of my development time figuring out how to glue these disparate things together.
- nextos 7y agoAren't all powerful languages poised to have this problem? You can write generic imperative C++ by using lots of templates, OO code that looks like Java, low level imperative code similar to C, and even functional code. I can personally say the same thing about Haskell or Common Lisp. Perhaps it's not that extreme, but there are many ways to solve problems in those languages. Even some funny jokes about Haskell exploit this: https://www.cs.utexas.edu/~cannata/cs345/Class%20Notes/10%20Haskell%20Programmer%20Evolution.html https://www.cs.utexas.edu/~cannata/cs345/Class%20Notes/10%20...
- flukus 7y ago> Aren't all powerful languages poised to have this problem? Probably. How many of these powerful languages started out that way and received widespread adoption though? C++ was basically C with classes when it become big. C# and Java are complex beasts now but both gained popularity when they were much simpler. Programming languages need to be comprehensible to your average programmer and not just a few elites.
- pjmlp 7y agoProgramming languages for the average programmer end up with libraries full of boilerplate and code generators to work around lack of features.
- edflsafoiewq 7y agoThe alternative is using totally different languages, the barriers between which are much higher than between different subsets of C++. You still benefit from being part of the C++ ecosystem.