On Tuesday, 14 November 2017 at 09:43:07 UTC, Ola Fosheim Grøstad
wrote:
On Tuesday, 14 November 2017 at 06:32:55 UTC, lobo wrote:
"[snip]...Then came the day we discovered that a person we
incautiously gave commit privileges to had fucked up the
games’s AI core. It became apparent that I was the only dev on
the team not too frightened of that code to go in. And I fixed
it all right – took me two weeks of struggle. After which I
swore a mighty oath never to go near C++ again. ...[snip]"
Either no one manages SW in his team so that this "bad" dev
could run off and to build a monster architecture, which would
take weeks, or this guy has no idea how to revert commit.
ESR got famous for his cathedral vs bazaar piece, which IMO was
basically just a not very insightful allegory over waterfall vs
evolutionary development models, but since many software
developers don't know the basics of software development he
managed to become infamous for it… But I think embracing
emergence has hurt open source projects more than it has helped
it. D bears signs of too much emergence too, and is still
trying correct those «random moves» with DIPs.
ESR states «C is flawed, but it does have one immensely
valuable property that C++ didn’t keep – if you can mentally
model the hardware it’s running on, you can easily see all the
way down. If C++ had actually eliminated C’s flaws (that it,
been type-safe and memory-safe) giving away that transparency
might be a trade worth making. As it is, nope.»
I don't think this is true, you can reduce C++ down to the
level where it is just like C. If he cannot mentally model the
hardware in C++ that basically just means he has never tried to
get there…
The shear amount of inscrutable cruft and rules, plus the moving
target of continuously changing semantics an order or two of
magnitude bigger than C added to the fact that you still need to
know C's gotchas, makes it one or two order of magnitude more
difficult to mental model the hardware. You can also mental model
the hardware with Intercal, if you haven't managed just means you
haven't tried hard enough.
I also think he is in denial if he does not see that C++ is
taking over C. Starting a big project in C today sounds like a
very bad idea to me.
Even worse in C++ with its changing standards ever 5 years.