The Man Who Revolutionized Computer Science With Math - Summary

Summary

Leslie Lamport, a renowned computer scientist, discusses his journey in the field. He shares that his interest in computers as a mathematician led him to think about computers scientifically. He emphasizes the importance of having a proof for an algorithm, stating that an algorithm without a proof is just a conjecture.

Lamport differentiates between programming and coding, explaining that coding is to programming what typing is to writing. He argues that if people are learning programming by being taught to code well, they're being taught writing by being taught how to type.

Lamport mentions his interest in distributed systems, explaining that a distributed system is one where your computer can be rendered useless by the failure of a computer that you didn't even know existed. He shares how his interest in distributed systems was sparked by a preprint of a paper by Robert Thomas and Paul Johnson, who had an algorithm for implementing distributed databases.

Lamport talks about the importance of the notion of causality in distributed systems, explaining that it's possible for information to be transmitted from one event to another when the information cannot travel faster than the speed of light. He developed a paper that explained this notion of causality and proposed a solution to any distributed system problem by building a state machine.

Lamport appreciates working in the industry as most of the interesting problems come from engineers having a problem to solve. He shares his favorite algorithm, the bakery algorithm, which solves the mutual exclusion problem of keeping two processes from using the printer at the same time. He mentions that the algorithm works even if you get an unexpected number instead of the expected one.

Lamport concludes by expressing his pride in stumbling on the bakery algorithm.

Facts

1. Leslie Lamport is a computer scientist.
2. Lamport started as a programmer and didn't realize he was doing anything scientific until after publishing several papers.
3. Lamport's education was in mathematics, which helped him view computers as a natural extension of mathematical thinking.
4. Lamport believes that an algorithm must have a proof of correctness; without it, it's not a theorem.
5. Lamport differentiates between programming and coding, stating that coding is to programming what typing is to writing.
6. Lamport developed a language called TLA+ for writing down the ideas that go into a program before any coding is done.
7. Lamport is interested in distributed systems, which are systems where a computer can be rendered useless by the failure of a computer that it didn't even know existed.
8. Lamport's interest in distributed systems was piqued by a preprint of a paper by Robert Thomas and Paul Johnson, who had an algorithm for implementing distributed databases.
9. Lamport realized that the algorithm by Thomas and Johnson violated the notion of causality, leading him to write a paper explaining this notion of causality.
10. Lamport's paper suggested that any distributed system problem could be solved by building a state machine, a concept that has become fundamental in the way people think about building distributed systems.
11. Lamport appreciates working in industry, as most of the interesting problems he finds come from engineers having a problem to solve.
12. Lamport's favorite algorithm is the bakery algorithm, which solves the mutual exclusion problem by keeping two processes from using the printer at the same time.
13. The bakery algorithm doesn't make the assumption that if a process is changing its number from 47 to 100, the reader will either get 47 or 100. Instead, it assumes that the reader might get any number, and the algorithm still works.