In an IDE, your program is partially compiled with every keystroke. So compilation time is a paramount concern, not in extreme cases but always, everyday, all the time.
> 3 seconds is not really something I would worry about.
That's 3 seconds for a single translation unit, and a short one at that with a single non-templated function. Now compile 1,000 translation units, each of which being, say, 3 times as complex (so, a decent-size project) - and your compilation time has become 144 minutes, nearly 2.5 hours - instead of 192 seconds, a little over 3 minutes.
Now, it's true that you don't recompile your whole project every time, but still, the difference is huge.
> The fact that we are still dealing with weird problems with pointers
Actually, this has been turning into a non-problem in C++ with smart pointers and spans. More generally
a few years ago. You're welcome to link to an explanation of why you believe GC is necessary when using lambdas.
> bunch of semi-compatible
To some extent, certainly. But you need to account for two points:
1. C++ is multi-paradigmatic. You should not expect to use all features together.
2. While this may seem weird, or ridiculous, C++ is a work-in-progress language. There are issues which have been known for decades and are only now being addressed, or not even now. I mean, we've needed (some of) the ranges functionality since the STL was introduced in the early 1990s, and it has just now made it into the language. This may not be a good thing but it is _a_ thing, so it's actually not the case that the language
> keep getting extended further from compatibility by the standards committee.
In an IDE, your program is partially compiled with every keystroke. So compilation time is a paramount concern, not in extreme cases but always, everyday, all the time.
> 3 seconds is not really something I would worry about.
That's 3 seconds for a single translation unit, and a short one at that with a single non-templated function. Now compile 1,000 translation units, each of which being, say, 3 times as complex (so, a decent-size project) - and your compilation time has become 144 minutes, nearly 2.5 hours - instead of 192 seconds, a little over 3 minutes.
Now, it's true that you don't recompile your whole project every time, but still, the difference is huge.
> The fact that we are still dealing with weird problems with pointers
Actually, this has been turning into a non-problem in C++ with smart pointers and spans. More generally
> C++ has lambdas without garbage collection
I wrote this: https://stackoverflow.com/a/48046118/1593077
a few years ago. You're welcome to link to an explanation of why you believe GC is necessary when using lambdas.
> bunch of semi-compatible
To some extent, certainly. But you need to account for two points:
1. C++ is multi-paradigmatic. You should not expect to use all features together.
2. While this may seem weird, or ridiculous, C++ is a work-in-progress language. There are issues which have been known for decades and are only now being addressed, or not even now. I mean, we've needed (some of) the ranges functionality since the STL was introduced in the early 1990s, and it has just now made it into the language. This may not be a good thing but it is _a_ thing, so it's actually not the case that the language
> keep getting extended further from compatibility by the standards committee.