This is very fluffy for Lamport, nothing of real substance in this essay.
I did get a chuckle out of this:
> In retrospect, thinking of programs as automobiles wasn’t so bad. Automobiles are pretty simple. If their car stops working, people expect any good mechanic to be able to figure out why and fix the problem.
Ok, I guess a century of engineering has produced some pretty simple machines :) /s
Hrmn. The various analogies are perhaps a bit fluffy, and the email and drag-and-drop examples are perhaps not particularly convincing.
But man, I wish Lamport's call for our industry to think more logically and design programs more mathematically would gain more traction.
These little inconsistencies add up to create horrible messes. This is true everywhere from our programs to our languages to the core abstractions and APIs that we work with. Some examples off the top of my head:
If we were great at engineering, a century's worth would have ideally led to simpler machines. Simplicity = sophistication.
(Before you hate on me, please know that I mean things should be as simple as possible, but no simpler. Cars, I believe, are not as simple as possible. They are incredibly complex. That said, look at a Tesla. Mechanically speaking, they're impressively simple machines.)
And yet I have a friend with a Triumph motorcycle who has brought it to multiple mechanics and there is an electrical issue somewhere that nobody has been able to definitively fix. Maybe not so simple even after a century of engineering so many variations on a theme.
I did get a chuckle out of this: > In retrospect, thinking of programs as automobiles wasn’t so bad. Automobiles are pretty simple. If their car stops working, people expect any good mechanic to be able to figure out why and fix the problem.
Ok, I guess a century of engineering has produced some pretty simple machines :) /s