I'm shocked about passing of Niklaus Wirth, just found out now.
Been in "bunker mode" last few months due to porting C++ code to Modula-3 (M3) code.<p>I'm using the cm3 Modula-3 distribution at
<a href="https://github.com/modula3/cm3">https://github.com/modula3/cm3</a><p>I have been thinking alot about Pascal/Modula origins of M3 (Re: Wirth) as well as the DEC/Olivetti/CriticalMass/etc. people related to crafting M3,
due to
ELEGANCE and ADDICTIVENESS
of the Modula-3 programming language.<p>Been coding C++ for nearly three decades and it's obvious the designers of M3 as well as Wirth et al. were "prophetic", in that they had an idea of the {bloat, complexity} problems that will afflict an ever-growing C++ spec/standard; Scott Meyers C++ experiences concerning C++'s "issues" is notable.<p>A programming language does not have to be a "complexity beast" in order to be productive for encoding knowledge into code. Note, a large-scale codebase makes C++ "cracks" more obvious. M3 provides a good cognitive-load paradigm during design/implementation of the code; thanks to principles of, more notably, modula programming, revelations, opaque-types.<p>M3 gets to the point in a very elegant manner and made me realise early in the porting process that the "C++ experiment" has gone on for too long.
This is how good M3 is.<p>One book on M3, i.e. "Nelson's" book, is essentially the M3 spec; a spec from the late 1980's which feature-packed the language in a concise/logical manner.
No multi-decadal evolving specs/committees as in C++.
No compiler that does not support a language-feature.
As in Wirth's paradigm, M3 has a relatively lean/simple language-core that can be used to create useful libraries/programs.<p>Harbison's book can help flesh out some detail due to the former book sometimes being a bit less verbose; may be due to my applied-science background where I selected the "C", not "Pascal", route when starting computer programming decades ago.<p>The tutorial links, etc., at the github site are useful.<p>Anyway, once doing enough C++ (even at pre-C++-11 level), M3 will be an understandable surprise.<p>Yes, it is important for the core of a programming language to be SIMPLE as well as being PRACTICAL and COGNITIVE-LOAD-EFFICIENT.
My recent experiences lead me to believe that Modula-3 achieves this well.<p>Gees ... Wirth is gone.