< Return to Video

The Man Who Revolutionized Computer Science With Math

  • 0:03 - 0:08
    My name is Leslie Lamport and I am a computer scientist,
  • 0:10 - 0:12
    which is something that didn't really exist
  • 0:12 - 0:15
    when I started being a computer scientist
  • 0:15 - 0:18
    and it took me a while to figure out that I was one.
  • 0:18 - 0:21
    My relationship with computers began.
  • 0:21 - 0:24
    As a programmer, it's never quite occurred to me
  • 0:24 - 0:26
    that I was doing anything scientific
  • 0:26 - 0:29
    until after I had published enough papers
  • 0:29 - 0:32
    that it finally occurred to me.
  • 0:32 - 0:34
    My education was as a mathematician.
  • 0:34 - 0:40
    It was just natural for me to think about computers as a mathematician.
  • 0:40 - 0:42
    When you write an algorithm,
  • 0:42 - 0:45
    you need to have a proof that it's correct.
  • 0:45 - 0:49
    An algorithm without a proof is a conjecture,
  • 0:49 - 0:51
    it's not a theorem.
  • 0:51 - 0:56
    And if you're proving things well, that's means "Mathematics".
  • 0:57 - 1:01
    Computer scientists tend to think in terms of programming languages.
  • 1:01 - 1:06
    One of the epiphanies in my career was the realization
  • 1:06 - 1:09
    that I was not writing programs as a computer scientist
  • 1:09 - 1:11
    I was designing algorithms.
  • 1:11 - 1:15
    I came to realize that if I'm not writing a program,
  • 1:15 - 1:17
    I shouldn't use a programming language.
  • 1:18 - 1:21
    People confuse "Programming" with "Coding".
  • 1:21 - 1:25
    Coding is to programming, while typing is to writing.
  • 1:25 - 1:27
    Writing is something that involves mental effort.
  • 1:27 - 1:30
    You're thinking about what you're going to say.
  • 1:30 - 1:32
    The words have some importance
  • 1:32 - 1:35
    but in some sense, even they are secondary to the ideas.
  • 1:36 - 1:40
    In the same way, programs are built on ideas.
  • 1:40 - 1:41
    They have to do something.
  • 1:41 - 1:43
    And what they're supposed to do,
  • 1:43 - 1:47
    I mean it's like what writing is supposed to convey.
  • 1:47 - 1:49
    If people are trying to learn programming
  • 1:49 - 1:51
    by being taught to code
  • 1:51 - 1:56
    well, they're being taught writing by being taught how to type.
  • 1:56 - 1:58
    And that doesn't make much sense.
  • 1:59 - 2:03
    The best way I have for teaching about programming
  • 2:03 - 2:06
    as distinct from coding is to think about
  • 2:06 - 2:09
    what the program is supposed to do mathematically.
  • 2:09 - 2:12
    There's a very big practical problem with this.
  • 2:12 - 2:16
    The mathematical education in this country is pretty terrible.
  • 2:16 - 2:19
    Most people wind up being afraid of mathematics.
  • 2:19 - 2:22
    This is even senior programmers.
  • 2:22 - 2:25
    I've developed a language called TLA+
  • 2:25 - 2:30
    for writing down the ideas that go into the program.
  • 2:30 - 2:34
    Before you do any coding, it's a pretty hard thing for engineers to get into.
  • 2:34 - 2:39
    But when they do, it develops their ability to think mathematically.
  • 2:52 - 2:55
    A distributed system is one
  • 2:55 - 2:59
    in which your computer can be rendered useless
  • 2:59 - 3:04
    by the failure of a computer that you didn't even know existed.
  • 3:04 - 3:09
    Non-distributed computing is when different processes communicate
  • 3:09 - 3:11
    by using the same memory.
  • 3:11 - 3:14
    And distributed computing means that
  • 3:14 - 3:18
    they're communicating with one another by sending messages.
  • 3:18 - 3:24
    Now my interest in distributed systems came about by serendipity.
  • 3:24 - 3:30
    I received a preprint of a paper by Robert Thomas and Paul Johnson,
  • 3:30 - 3:34
    who had an algorithm for implementing distributed databases.
  • 3:34 - 3:35
    These are databases
  • 3:35 - 3:40
    where you could have multiple copies of the data sitting at different computers.
  • 3:40 - 3:44
    So that programs on each computer could have rapid access to the data.
  • 3:44 - 3:47
    But they had to be synchronized
  • 3:47 - 3:53
    so that processes on all the computers got consistent views of what the data was.
  • 3:53 - 3:57
    I happen to have become quite familiar with special relativity.
  • 3:57 - 4:00
    One of the things that special relativity teaches you
  • 4:00 - 4:03
    is that two different observers
  • 4:03 - 4:07
    have different notions of what at the same time means.
  • 4:07 - 4:10
    But there's one notion that is invariant:
  • 4:10 - 4:15
    there's a certain notion of one event happening before another event.
  • 4:15 - 4:16
    And that means
  • 4:16 - 4:23
    that it's possible for information to be transmitted from one event to the others.
  • 4:24 - 4:27
    When the information cannot travel faster than the speed of light,
  • 4:28 - 4:30
    I realized that
  • 4:30 - 4:36
    that notion of causality was violated by the algorithm of Thomas and Johnson.
  • 4:36 - 4:41
    It's completely analogous to the relation in special relativity.
  • 4:41 - 4:47
    So what I did is I wrote a paper that explained this notion of causality.
  • 4:47 - 4:51
    One could solve any distributed system problem
  • 4:51 - 4:56
    by building what I called a state machine.
  • 4:56 - 5:00
    Think of it as an abstract computer that has one thing at a time.
  • 5:00 - 5:05
    You make sure that all the computers in this distributed system
  • 5:05 - 5:10
    cooperate to implement a single state machine.
  • 5:10 - 5:15
    And that idea has become fundamental
  • 5:15 - 5:19
    in the way, people think about building distributed systems.
  • 5:19 - 5:25
    I had never even thought about a distributed system before I wrote that paper.
  • 5:26 - 5:28
    As I progressed in my career,
  • 5:28 - 5:32
    I came to appreciate the idea of working in industry.
  • 5:32 - 5:35
    That's where most of the interesting problems that I found came from
  • 5:35 - 5:38
    You know from engineers having a problem to solve.
  • 5:39 - 5:43
    It reminds me actually of something that ''Auguste Renoir''.
  • 5:43 - 5:49
    Once said if someone asked him why he painted outside rather than in his studio.
  • 5:49 - 5:50
    And what he said is
  • 5:50 - 5:53
    "If I were painting in the studio and I wanted to paint a leaf,
  • 5:53 - 5:56
    I would be able to you think of only a half dozen
  • 5:56 - 5:58
    or so different kinds of leaves that I could paint.
  • 5:58 - 6:00
    But when I was painting outdoors,
  • 6:00 - 6:04
    there were just these millions of different kinds of leaves
  • 6:04 - 6:07
    that were there that I could paint from."
  • 6:07 - 6:10
    I found my research the same way
  • 6:10 - 6:12
    that if I sat down, you know, and just,
  • 6:12 - 6:14
    you know, contemplated my navel
  • 6:14 - 6:15
    and think about problems, you know,
  • 6:15 - 6:18
    there's a small number of problems that I could think of.
  • 6:18 - 6:20
    But there were just scares of them,
  • 6:20 - 6:23
    sitting out in industry, waiting to be, to be solved.
  • 6:23 - 6:28
    My favorite of my algorithms is the bakery algorithm.
  • 6:28 - 6:30
    It's to solve the mutual exclusion problem
  • 6:30 - 6:34
    that is keep two processes from using the printer at the same time.
  • 6:34 - 6:37
    Processes choose a number, based on the numbers
  • 6:37 - 6:41
    that have been chosen by other processes, and use an algorithm,
  • 6:41 - 6:43
    so that the lowest is allowed to use the printer.
  • 6:43 - 6:46
    But what is amazing about it
  • 6:46 - 6:49
    is it does not make an assumption
  • 6:49 - 6:52
    that almost every other algorithm makes
  • 6:52 - 6:54
    the assumption being that
  • 6:54 - 6:58
    if I say I'm changing my number from 47 to 100
  • 6:58 - 7:02
    and you read that number, you'll either get 47 or 100.
  • 7:02 - 7:06
    But that algorithm works even if instead of getting 47 or 100,
  • 7:06 - 7:11
    you maybe got 4 700 or maybe you got 9 999.
  • 7:12 - 7:14
    The algorithm still works.
  • 7:14 - 7:17
    I didn't intend it to, I mean I didn't intend that
  • 7:17 - 7:20
    I just discovered that when I wrote the proof.
  • 7:20 - 7:22
    I never needed to make the assumption.
  • 7:22 - 7:24
    That is just so beautiful!
  • 7:25 - 7:32
    And, you know, I'm really proud that I stumbled on it.
Title:
The Man Who Revolutionized Computer Science With Math
Description:

more » « less
Video Language:
English
Duration:
07:50

English subtitles

Revisions