Because it avoided some of the bad choices made in programming languages in the past half century I don’t think it will reach C++ complexity. For example, it doesn’t have the C preprocessor, (unless I missed some developments) avoids some of the complexity of C++ public/protected/private inheritance, and makes it hard or even impossible to make some errors that are way too easy to make in C++, such as not following https://en.cppreference.com/w/cpp/language/rule_of_three.
They sure seem to be trying, though.
It does add such things as async and ownership, and those complicate the language, but IMO not programming in the language. It only makes issues explicit that C++ programmers also have to think about, but cannot clearly document in code.
I also think it’s starting to be two languages: the relatively simple high-level one that it started out as that has Unicode strings, reference counting, copy-on-write data structures, and makes multi-threading magically work through GCD and a low-level one that has byte arrays, ownership, allows implementers to implement data structures the way they want and has explicit locks, etc.
They sure seem to be trying, though.
It does add such things as async and ownership, and those complicate the language, but IMO not programming in the language. It only makes issues explicit that C++ programmers also have to think about, but cannot clearly document in code.
I also think it’s starting to be two languages: the relatively simple high-level one that it started out as that has Unicode strings, reference counting, copy-on-write data structures, and makes multi-threading magically work through GCD and a low-level one that has byte arrays, ownership, allows implementers to implement data structures the way they want and has explicit locks, etc.