I quote from the document
<quote>
Titus Winters writes in "Non-Atomic Refactoring and Software
Sustainability":
What is the difference between programming and software engineering?
These are nebulous concepts and thus there are many possible answers,
but my favorite definition is this: Software engineering is programming
integrated over time. All of the hard parts of engineering come from
dealing with time: compatibility over time, dealing with changes to
underlying infrastructure and dependencies, and working with legacy code
or data. Fundamentally, it is a different task to produce a programming
solution to a problem (that solves the current [instance] of the
problem) vs. an engineering solution (that solves current instances,
future instances that we can predict, and - through flexibility - allows
updates to solve future instances we may not be able to predict).
From this definition of "software engineering" vs. "programming" we
suggest that C++ should prioritize being more of a "software
engineering" language, and less of a "programming" language. We
specifically are interested in dealing with the time-oriented aspects of
software built in this language.
<end quote>
OK, C++ should deal with maintaining software over time. Great. But THAT
IMPLIES BACKWARDS COMPABILITY!!!
You CAN'T have stable software if the underlying language forces a
rewrite evrey year or so, even if it is a minimal rewrite.
For instance GTK and the Windows API.
I have written an IDE in C using the windows API with windows 95, i.e.
25 years ago. Most of the logic has survived UNCHANGED from windows 95
to windows 10. And that is one of the best features of that API. You
write your software and with minor changes it will go on running for
MANY years.
I ported my IDE to GTK 2, and after 6 months of work it was running.
Then, I discovered that I should rewrite it because GTK had changed all
the API in many incompatible ways.
That was the end of it. I never used GTK again.
Today, the GNOME people are changing everything each 6 months or so, as
they explicitely said. Nobody is following and you just can't write any
software for Linux GUI unless you use some propietary language where
somebody else does the job of porting a stable API to the new GTK+
version each 6 months.
Nobody will follow, nobody will rewrite their software again and again.