Talk by Herb Sutter: Bridge to NewThingia

Russel Winder russel at winder.org.uk
Mon Jun 29 12:17:57 UTC 2020


On Mon, 2020-06-29 at 10:31 +0000, IGotD- via Digitalmars-d-announce wrote:
> 
[…]
> Back to C++20 and beyond which Herb Sutter refers to a lot. Is 
> C++20 a success, or even C++17? Does anyone know this? Modern C++ 
> isn't a programming standard so what I've seen is just a mix of 
> everything.

I guess the question is whether concepts, coroutines, and modules finally make
it in. The really interesting question is whether metaclasses make C++23.

Of course C++ is now really a niche language used by those who still use it
and do not move on to more modern languages!

> I have lost track of all new C++ features and now he even refers 
> it as "NewLang" what that is. Is that Bjarnes famous quote 
> "Within C++, there is a much smaller and clearer language 
> struggling to get out."? I believe it when I see it.

The problem is backward compatibility. Every new feature in C++ requires
backward compatibility with all previous C++, leading to a more and more
complex language. Fortran has the same problem but easier to cope with as it
is a simpler language. Languages without standards do not have this problem.
Except when language developers introduce breaking changes and a section of
the user population screams "we must have backward compatibility". What they
mean really is that they do not want to maintain their code. The Java folk
showed how this pans out: eventually companies that will not deal with
breaking changes go bust and are no longer a problem.

I am sure this will be seen as a rant and a troll, but that doesn't stop it
also being true.

> One thing that isn't mention that is very important for a 
> language to succeed is libraries. C++ has a lack of standard 
> libraries which forces the programmer to look for third party 
> alternatives, which are of varying standard. This leads to that 
> the there is no particular programming API standard it must 
> gravitate to the lowest common denominator. This in contrast to 
> Phobos which is more complete.

Another rant…

…batteries included standard libraries are a thing of the 1990s and earlier.
They are a reflection of pre-Internet thinking. You got a language
distribution, and everything else was home grown.

Now we have the Internet you can get libraries via download. Languages come
with the minimal library needed to function and all else is gettable. Go,
Rust, Python, and other languages have this (even though Python still has a
batteries included standard library). C++ has moved on to this idea; Conan (or
other system) hasn't really caught on in C++ circles. Ditto Fortran, still
using pre-2000 thinking.

D is in a similar position to Python, a huge batteries included standard
library much of which should be culled, or at lease marked as deprecated, and
has an central package repository for people to use. Rust, Go, and Python,
show the way here. Libraries can spring up, evolve, die off, all controlled by
usefulness to the user population. C++ people's focus on "the standard" seems
to be stopping them doing good things.

> Does C++ need more language features or does C++ need better 
> standard libraries? I would say the latter. If it weren't for Qt, 
> C++ would just be a skeleton language. Qt is a great library and 
> was that even before C++11 which proves that the new language 
> features weren't that important.
> 
> What do you think, did "modern C++" really succeed?

Clearly Modern C++, aka C++11, was a great innovation and step forward. C++14,
C++17, and I guess C++20 move the language forward.

On the other hand people are stopping using C++ in favour of Go, Rust, Python,
but it seems not D.

-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-announce/attachments/20200629/372f4162/attachment.sig>


More information about the Digitalmars-d-announce mailing list