I'm sorry but this blog post is a really superficial treatment of the subject. How languages rise, fall or command their own little space is a very interesting topic worthy of a better discussion.
I'm sorry but this blog post is a really superficial treatment of the subject. How languages rise, fall or command their own little space is a very interesting topic worthy of a better discussion.
My CSC sequence (started 1990) was taught in Ada. I was already writing a lot of Pascal so it was an easy switch. I remember feeling no great love for the compiler and tooling, however.
(0) Identify a concrete class X of programming errors you want to eradicate.
(1) Postulate a mathematical theory of what it means for a program not to have errors of class X.
(2) Develop proof techniques that are powerful enough to establish that “interesting” programs do not have errors of class X.
(3) Design algorithms that use these proof techniques to prove, or at least validate a purported proof, that a program does not have errors of class X. Your algorithm must be able to analyze program fragments (modules, classes, whatever) independently, and combine information obtained from several program fragments without reanalyzing them from scratch.
Programming language design is all about interactions with humans and there is no place for so much ignorance of humans as your comment expresses. And don't get me wrong, you can come up with an arbitrary approach to language design that doesn't involve humans, but it can work for humans only by chance.
A programming language designer can only do so much for you. If you cannot identify errors in your programs on your own, consider switching to a different career.
> And what about programming errors that your process and your language causes?
Rigorous reasoning cannot possibly cause any problems. Rigorous reasoning helps identify and fix problems more often than not caused by prior non-rigorous reasoning.
> Programming language design is all about interactions with humans
Humans who need to reason rigorously in order to do things right, hence need to be pushed in this direction.
Ada's failure in the mainstream, besides the compiler prices and hardware requirements of old systems, is lack of support for cowboy programming, so loved by users of languages like C, JavaScript, PHP and other similar ones.
As for cowboy programming, Java and C# don't support it all that well, and they are very popular.