Transcript
00:00:00 The following is a conversation with James Gosling, the founder and lead
00:00:03 designer behind the Java programming language, which in many indices is the
00:00:07 most popular programming language in the world, or is always at least in the top
00:00:12 two or three.
00:00:14 We only had a limited time for this conversation, but I’m sure we’ll talk
00:00:17 again several times in this podcast.
00:00:19 Quick summary of the sponsors, Public Goods, BetterHelp, and ExpressVPN.
00:00:24 Please check out these sponsors in the description to get a discount
00:00:27 and to support this podcast.
00:00:29 As a side note, let me say that Java is the language with which I first learned
00:00:34 object oriented programming, and with it, the art and science of software
00:00:38 engineering.
00:00:39 Also early on in my undergraduate education, I took a course on concurrent
00:00:45 programming with Java.
00:00:47 Looking back at that time, before I fell in love with neural networks, the art
00:00:52 of parallel computing was both algorithmically and philosophically
00:00:56 fascinating to me.
00:00:57 The concept of a computer in my mind before then was something that does
00:01:01 one thing at a time, the idea that we could create an abstraction of
00:01:05 parallelism where you could do many things at the same time, while still
00:01:09 guaranteeing stability and correctness, was beautiful.
00:01:13 While some folks in college took drugs to expand their mind, I took concurrent
00:01:18 programming.
00:01:19 If you enjoy this thing, subscribe on YouTube, review it with five stars on
00:01:23 Apple Podcasts, follow on Spotify, support on Patreon, or connect with me
00:01:27 on Twitter at Lex Friedman.
00:01:30 As usual, I’ll do a few minutes of ads now and no ads in the middle.
00:01:33 I try to make these interesting, but I do give you timestamps, so go ahead
00:01:37 and skip, but please do check out the sponsors by clicking the links in the
00:01:41 description.
00:01:42 It’s the best way to support this podcast.
00:01:45 This show sponsored by Public Goods, the one stop shop for affordable,
00:01:50 sustainable, healthy household products.
00:01:53 I take their fish oil and use their toothbrush, for example.
00:01:57 Their products often have a minimalist black and white design that I find
00:02:00 to be just beautiful.
00:02:02 Some people ask why I wear this black suit and tie.
00:02:06 There’s a simplicity to it that to me focuses my mind on the most important
00:02:10 bits of every moment of every day, pulling only at the thread of the
00:02:15 essential in all that life has to throw at me.
00:02:18 It’s not about how I look, it’s about how I feel.
00:02:21 That’s what design is to me, creating an inner conscious experience,
00:02:24 not an external look.
00:02:27 Anyway, Public Goods plants one tree for every order placed, which is kind of cool.
00:02:32 Visit publicgoods.com slash Lex, or use code Lex at checkout to get 15 bucks
00:02:38 off your first order.
00:02:40 This show is also sponsored by BetterHelp, spelled H E L P, help.
00:02:45 Check it out at betterhelp.com slash Lex.
00:02:48 They figure out what you need and match you with a licensed professional
00:02:51 therapist in under 48 hours.
00:02:54 I chat with the person on there and enjoy it.
00:02:57 Of course, I also regularly talk to David Goggins these days, who is definitely not
00:03:02 a licensed professional therapist, but he does help me meet his and my demons and
00:03:08 become comfortable to exist in their presence.
00:03:11 Everyone is different, but for me, I think suffering is essential for creation, but
00:03:16 you can suffer beautifully in a way that doesn’t destroy you.
00:03:20 I think therapy can help in whatever form that therapy takes.
00:03:24 And I do think that BetterHelp is an option worth trying.
00:03:27 They’re easy, private, affordable, and available worldwide.
00:03:31 You can communicate by text anytime and schedule weekly audio and video sessions.
00:03:36 Check it out at betterhelp.com slash Lex.
00:03:39 This show is also sponsored by Express CPM.
00:03:42 You can use it to unlock movies and shows that are only
00:03:45 available in other countries.
00:03:47 I did this recently with Star Trek Discovery and UK Netflix, mostly because
00:03:52 I wonder what it’s like to live in London.
00:03:54 I’m thinking of moving from Boston to a place where I can build the
00:03:57 business I’ve always dreamed of building.
00:04:00 London is probably not in the top three, but top 10 for sure.
00:04:04 The number one show I’ve been to is the one that I’m most excited about.
00:04:08 The number one choice currently is Austin.
00:04:11 For many reasons that I’ll probably speak to another time.
00:04:14 San Francisco, unfortunately dropped out from the number one spot,
00:04:18 but it’s still in the running.
00:04:20 If you have advice, let me know.
00:04:22 Anyway, check out ExpressVPN.
00:04:24 It lets you change your location to almost 100 countries and it’s super fast.
00:04:29 Go to expressvpn.com slash LexPod to get an extra three
00:04:33 months of ExpressVPN for free.
00:04:35 That’s expressvpn.com slash LexPod.
00:04:40 And now here’s my conversation with James Gosling.
00:04:44 I’ve read somewhere that the square root of two is your favorite irrational number.
00:04:49 I have no idea where that got started.
00:04:53 Is there any truth to it?
00:04:54 Is there anything in mathematics or numbers that you find beautiful?
00:04:58 Oh, well, there’s lots of things in math that’s really beautiful.
00:05:03 I used to consider myself really good at math and these days I consider
00:05:07 myself really bad at math.
00:05:11 I never really had a thing for the square root of two, but when I was a teenager,
00:05:18 there was this book called The Dictionary of Curious and Interesting Numbers,
00:05:23 which for some reason I read through and damn near memorized the whole thing.
00:05:33 And I started this weird habit of when I was like filling out checks or paying for things
00:05:43 with credit cards, I would want to make the receipt add up to a new number.
00:05:49 Is there some numbers that stuck with you that just kind of make you feel good?
00:05:54 They all have a story and fortunately, I’ve actually mostly forgotten all of them.
00:06:02 Are they, uh, so like 42, uh, well, yeah, I mean, that one 42 is pretty magical.
00:06:08 And then the irrationals, I mean, but is there a square root of two story in there
00:06:12 somewhere, how did that come about?
00:06:14 It’s, it’s like the only number that has destroyed a religion in which way, well,
00:06:22 the, the pathogorians, they, they believed that all numbers were perfect and you
00:06:28 could re represent anything as, as a, as a rational number.
00:06:33 And, um, in that, in that time period, um, the, this proof came out that there was no,
00:06:44 you know, rational fraction whose value was equal to the square root of two.
00:06:50 And that, that means nothing in this world, right?
00:06:54 Yeah.
00:06:54 So, so, so, so, so, so, so, so, so, so, so, so, so, so, so, so, so, so, so, so, so, so,
00:07:02 in this world is perfect, not even mathematics.
00:07:05 Well, it means that your definition of perfect was imperfect.
00:07:11 Well then, then there’s the Gaitl incompleteness theorems and the 20th
00:07:14 century that ruined it once again for everybody.
00:07:17 Yeah.
00:07:17 Although, although, although Goerl’s theorem, um, you know, the lesson I take
00:07:25 from Goerl’s theorem is not that, you know, there are things you can’t know,
00:07:29 which is fundamentally what it says.
00:07:35 But people want black and white answers.
00:07:39 They want true or false.
00:07:43 But if you allow a three state logic
00:07:48 that is true, false, or maybe,
00:07:51 then life’s good.
00:07:55 I feel like there’s a parallel to modern political discourse
00:07:58 in there somewhere, but let me ask.
00:08:04 So with your kind of early love or appreciation
00:08:10 of the beauty of mathematics,
00:08:11 do you see a parallel between that world
00:08:15 and the world of programming?
00:08:17 Programming is all about logical structure,
00:08:21 understanding the patterns that come out of computation,
00:08:32 understanding sort of, I mean, it’s often like the path
00:08:38 through the graph of possibilities to find a short route.
00:08:45 Meaning like find a short program
00:08:48 that gets the job done kind of thing.
00:08:50 But so then on the topic of irrational numbers,
00:08:54 do you see programming?
00:08:58 You just painted it so cleanly.
00:09:01 It’s a little of this trajectory
00:09:02 to find like a nice little program,
00:09:05 but do you see it as fundamentally messy?
00:09:08 Maybe unlike mathematics?
00:09:10 I don’t think of it as, I mean, you know,
00:09:13 you watch somebody who’s good at math do math
00:09:16 and you know, often it’s fairly messy.
00:09:22 Sometimes it’s kind of magical.
00:09:27 When I was a grad student, one of the students,
00:09:32 his name was Jim Sachs, was he had this reputation
00:09:37 of being sort of a walking, talking human
00:09:46 theorem proving machine.
00:09:49 And if you were having a hard problem with something,
00:09:51 you could just like accost him in the hall
00:09:54 and say, Jim, and he would do this funny thing
00:09:59 where he would stand up straight.
00:10:01 His eyes would kind of defocus.
00:10:03 He’d go, you know, just like something in today’s movies.
00:10:10 And then he’d straighten up and say n log n and walk away.
00:10:15 And you’d go, well, okay, so n log n is the answer.
00:10:20 How did he get there?
00:10:24 By which time he’s, you know, down the hallway somewhere.
00:10:27 Yeah, he’s just the oracle, the black box
00:10:30 that just gives you the answer.
00:10:31 Yeah, and then you have to figure out the path
00:10:33 from the question to the answer.
00:10:36 I think in one of the videos I watched,
00:10:38 you mentioned Don Knuth, well, at least recommending his,
00:10:44 you know, his book is something people should read.
00:10:47 Oh, yeah.
00:10:48 But in terms of, you know, theoretical computer science,
00:10:53 do you see something beautiful that has been inspiring
00:10:58 to you, speaking of n log n, in your work
00:11:01 on programming languages, that’s in that whole world
00:11:06 of algorithms and complexity and, you know,
00:11:10 these kinds of more formal mathematical things?
00:11:13 Or did that not really stick with you
00:11:16 in your programming life?
00:11:20 It did stick pretty clearly for me,
00:11:24 because one of the things that I care about
00:11:27 is being able to sort of look at a piece of code
00:11:34 and be able to prove to myself that it works.
00:11:41 And, you know, so for example, I find that I’m at odds
00:11:51 with many of the people around me over issues
00:11:55 about like how you lay out a piece of software, right?
00:12:03 You know, so software engineers get really cranky
00:12:07 about how they format the documents that are the programs,
00:12:11 you know, where they put new lines and where they put,
00:12:14 you know.
00:12:15 The braces.
00:12:15 The braces and all the rest of that, right.
00:12:18 And I tend to go for a style that’s very dense.
00:12:27 Minimize the white space.
00:12:30 Yeah, well, to maximize the amount
00:12:34 that I can see at once, right?
00:12:37 So I like to be able to see a whole function
00:12:40 and to understand what it does,
00:12:43 rather than have to go scroll, scroll, scroll
00:12:44 and remember, right?
00:12:46 Yeah, I’m with you on that.
00:12:47 Yeah, that’s.
00:12:48 And people don’t like that.
00:12:52 Yeah, I’ve had, you know, multiple times
00:12:56 when engineering teams have staged
00:13:01 what was effectively an intervention.
00:13:07 You know, where they invite me to a meeting
00:13:10 and everybody’s arrived before me
00:13:12 and they all look at me and say,
00:13:14 James, about your coding style, I’m sort of an odd person
00:13:23 to be programming because I don’t think very well verbally.
00:13:31 I am just naturally a slow reader.
00:13:37 I’m what most people would call a visual thinker.
00:13:42 So when you think about a program,
00:13:43 what do you see?
00:13:45 I see pictures, right?
00:13:47 So when I look at a piece of code on a piece of paper,
00:13:52 it very quickly gets transformed into a picture.
00:13:58 And, you know, it’s almost like a piece of machinery
00:14:01 with, you know, this connected to that and.
00:14:05 Like these gears and different sizes.
00:14:07 Yeah, yeah, I see them more like that
00:14:11 than I see the sort of verbal structure
00:14:15 or the lexical structure of letters.
00:14:18 So then when you look at the program,
00:14:19 that’s why you want to see it all in the same place,
00:14:21 then you can just map it to something visual.
00:14:24 Yeah, and it just kind of like,
00:14:25 like it leaps off the page at me and.
00:14:28 Yeah, what are the inputs, what are the outputs?
00:14:30 What the heck is this thing doing?
00:14:32 Yeah, yeah.
00:14:33 Getting a whole vision of it.
00:14:35 Can we go back into your memory?
00:14:39 Memory, long term memory access.
00:14:42 What’s the first program you’ve ever written?
00:14:47 Oh, I have no idea what the first one was.
00:14:52 I mean, I know the first machine
00:14:54 that I learned to program on.
00:14:58 What is it?
00:14:59 Was a PDP eight at the University of Calgary.
00:15:06 Do you remember the specs?
00:15:08 Oh yeah, so the thing had 4K of RAM.
00:15:12 Nice.
00:15:13 12 bit words.
00:15:16 The clock rate was,
00:15:21 it was about a third of a megahertz.
00:15:26 Oh, so you didn’t even get to the M, okay.
00:15:29 Yeah, yeah, so we’re like 10,000 times faster these days.
00:15:34 10,000 times faster these days.
00:15:38 And was this kind of like a super computer,
00:15:40 like a serious computer for.
00:15:42 No, the PDP eight I was the first thing
00:15:46 that people were calling like mini computer.
00:15:49 Got it.
00:15:50 They were sort of inexpensive enough
00:15:53 that a university lab could maybe afford to buy one.
00:15:59 And was there time sharing, all that kind of stuff?
00:16:02 There actually was a time sharing OS for that,
00:16:06 but it wasn’t used really widely.
00:16:10 The machine that I learned on was one
00:16:12 that was kind of hidden in the back corner
00:16:17 of the computer center.
00:16:22 And it was bought as part of a project
00:16:27 to do computer networking,
00:16:34 but they didn’t actually use it very much.
00:16:38 It was mostly just kind of sitting there
00:16:42 and it was kind of sitting there
00:16:44 and I noticed it was just kind of sitting there.
00:16:47 And so I started fooling around with it
00:16:50 and nobody seemed to mind.
00:16:52 So I just kept doing that and.
00:16:56 And it had a keyboard and like a monitor, are we?
00:16:58 Oh, this is way before monitors were common.
00:17:02 So it was literally a model 33 teletype
00:17:07 with a paper tape reader.
00:17:12 Okay, so the user interface wasn’t very good.
00:17:14 Yeah, it was the first computer ever built
00:17:20 with integrated circuits, but by integrated circuits,
00:17:24 I mean that they would have like 10 or 12 transistors
00:17:29 on one piece of silicon,
00:17:31 not the 10 or 12 billion that the machines have today.
00:17:38 So what did that, I mean, feel like if you remember those?
00:17:43 I mean, did you have kind of inklings of the magic
00:17:48 of exponential kind of improvement of Moore’s law
00:17:52 of the potential of the future that,
00:17:55 was that your fingertips kind of thing?
00:17:57 Or was it just a cool?
00:17:58 Yeah, it was just a toy.
00:18:01 I had always liked building stuff,
00:18:04 but one of the problems with building stuff
00:18:06 is that you need to have parts.
00:18:08 You need to have pieces of wood or wire or switches
00:18:13 or stuff like that.
00:18:14 And those all cost money.
00:18:16 And here you could build.
00:18:17 You could build arbitrarily complicated things
00:18:20 and I didn’t need any physical materials.
00:18:25 It required no money.
00:18:27 That’s a good way to put programming.
00:18:29 You’re right, it’s, if you love building things,
00:18:35 completely accessible, you don’t need anything.
00:18:38 Anybody from anywhere could just build
00:18:40 something really cool.
00:18:41 Yeah, yeah.
00:18:43 If you’ve got access to a computer,
00:18:44 you can build all kinds of crazy stuff.
00:18:51 And when you were somebody like me
00:18:58 who had like really no money, and I mean,
00:19:05 I remember just lusting after being
00:19:08 able to buy like a transistor.
00:19:15 And when I would do sort of electronics kind of projects,
00:19:20 they were mostly made, done by like dumpster diving for trash.
00:19:27 And one of my big hauls was discarded relay racks
00:19:33 from the back of the phone company switching center.
00:19:37 Oh, nice.
00:19:39 That was the big memorable treasure.
00:19:41 Oh, yeah.
00:19:42 Yeah, that was a really.
00:19:43 What do you use that for?
00:19:45 I built a machine that played tic tac toe.
00:19:50 Nice.
00:19:51 Out of relays.
00:19:52 Of course, the thing that was really hard
00:19:55 was that all the relays required a specific voltage.
00:20:00 But getting a power supply that would do that voltage
00:20:04 was pretty hard.
00:20:06 And since I had a bunch of trashed television sets,
00:20:10 I had to sort of cobble together something
00:20:16 that was wrong but worked.
00:20:21 So I was actually running these relays at 300 volts.
00:20:26 And none of the electrical connections
00:20:30 were like properly sealed off.
00:20:33 Surprised you survived that period of your life.
00:20:36 Oh, for so many reasons.
00:20:38 For so many reasons.
00:20:40 I mean, it’s pretty common for teenage geeks
00:20:45 to discover, oh, thermite.
00:20:47 That’s real easy to make.
00:20:50 Yeah.
00:20:51 Well, I’m glad you did.
00:20:52 But do you remember what program in Calgary
00:20:58 that you wrote, anything that stands out?
00:21:01 And what language?
00:21:03 Well, so mostly anything of any size was assembly code.
00:21:14 And actually, before I learned assembly code,
00:21:17 there was this programming language
00:21:19 on the PDP 8 called Focal 5.
00:21:22 And Focal 5 was kind of like a really stripped down Fortran.
00:21:28 And I remember building programs that did things
00:21:33 like play blackjack or solitaire.
00:21:40 Or for some reason or other, the things that I really liked
00:21:45 were ones where they were just like plotting graphs.
00:21:50 So something with like a function or data,
00:21:53 and then you plot it.
00:21:55 Yeah.
00:21:56 Yeah, I did a bunches of those things
00:21:59 and went, ooh, pretty pictures.
00:22:03 And so this would like print out, again, no monitors.
00:22:07 Right, so it was like on a teletype.
00:22:11 Yeah.
00:22:13 So it’s using something that’s kind of like a typewriter.
00:22:18 And then using those to plot functions.
00:22:23 So when, I apologize to romanticize things,
00:22:26 but when did you first fall in love with programming?
00:22:32 What was the first programming language?
00:22:34 Like as a serious, maybe, software engineer,
00:22:36 where you thought this is a beautiful thing?
00:22:40 I guess I never really thought of any particular language
00:22:43 as being beautiful, because it was never really
00:22:46 about the language for me.
00:22:47 It was about what you could do with it.
00:22:49 And even today, people try to get me
00:22:55 into arguments about particular forms of syntax
00:22:59 for this or that.
00:23:00 And I’m like, who cares?
00:23:03 It’s about what you can do, not how you spell the word.
00:23:10 And so back in those days, I learned like PL1 and Fortran
00:23:16 and COBOL, and by the time that people were willing to hire me
00:23:23 to do stuff, it was mostly assembly code and PDP assembly
00:23:29 code and Fortran code and control data assembly
00:23:35 code for the CDC 6400, which was an early, I guess,
00:23:40 supercomputer.
00:23:43 Even though that supercomputer has less compute power
00:23:46 than my phone by a lot.
00:23:50 And that was mostly, like you said, Fortran world.
00:23:54 That said, you’ve also showed appreciation
00:23:57 for the greatest language ever that I
00:24:01 think everyone agrees is Lisp.
00:24:05 Well, Lisp is definitely on my list of the greatest ones
00:24:09 that have existed.
00:24:11 Is it at number one?
00:24:12 Or I mean, are you, I mean?
00:24:16 You know, the thing is that it’s, you know,
00:24:21 I wouldn’t put it number one, no.
00:24:23 Is it the parentheses?
00:24:24 What do you not love about Lisp?
00:24:34 Well, I guess the number one thing
00:24:35 to not love about it is so freaking many parentheses.
00:24:41 On the love thing is, you know, out of those tons
00:24:46 of parentheses, you actually get an interesting language
00:24:50 structure.
00:24:51 And I’ve always thought that there was a friendlier version
00:24:54 of Lisp hiding out there somewhere.
00:24:57 But I’ve never really spent much time thinking about it.
00:25:03 But, you know, so like up the food chain for me from Lisp
00:25:10 is Simula, which a very small number of people
00:25:14 have ever used.
00:25:16 But a lot of people, I think you had a huge influence, right,
00:25:19 on the programming.
00:25:20 But in the Simula, I apologize if I’m wrong on this,
00:25:24 but is that one of the first functional languages?
00:25:27 Or no?
00:25:28 No, it was the first object oriented programming language.
00:25:32 It’s really where object oriented and languages sort
00:25:36 of came together.
00:25:39 And it was also the language where coroutines first showed
00:25:46 up as a part of the language.
00:25:48 So you could have a programming style that was,
00:25:53 you could think of it as sort of multi threaded
00:25:57 with a lot of parallelism.
00:26:00 Really?
00:26:01 There’s ideas of parallelism in there?
00:26:03 Yeah.
00:26:05 Yeah, so that was back, you know,
00:26:08 so the first Simula spec was Simula 67.
00:26:12 Like 1967?
00:26:14 Yeah.
00:26:15 Wow.
00:26:16 So it had coroutines, which are almost threads.
00:26:21 The thing about coroutines is that they
00:26:24 don’t have true concurrency.
00:26:26 So you can get away without really complex locking.
00:26:32 You can’t useably do coroutines on the multi core machine.
00:26:39 Or if you try to do coroutines on the multi core machine,
00:26:44 you don’t actually get to use the multiple cores.
00:26:48 Either that or you, because you start then
00:26:52 having to get into the universe of semaphores and locks
00:26:56 and things like that.
00:27:00 But in terms of the style of programming,
00:27:04 you could write code and think of it as being multi threaded.
00:27:11 The mental model was very much a multi threaded one.
00:27:15 And all kinds of problems you could
00:27:18 approach very differently.
00:27:22 To return to the world of Lisp for a brief moment,
00:27:27 at CMU you wrote a version of Emacs
00:27:32 that I think was very impactful on the history of Emacs.
00:27:37 What was your motivation for doing so?
00:27:42 At that time, so that was in like 85 or 86.
00:27:52 I had been using Unix for a few years.
00:27:57 And most of the editing was this tool
00:28:02 called ED, which was sort of an ancestor of VI.
00:28:10 Is it a pretty good editor, not a good editor?
00:28:14 Well, if what you’re using, if your input device
00:28:19 is a teletype, it’s pretty good.
00:28:22 It’s certainly more humane than TECO,
00:28:25 which was kind of the common thing
00:28:28 in a lot of the DEC universe at the time.
00:28:32 TECO is spelled TK, is that the?
00:28:35 No, TECO, T E C O, the text editor and corrector.
00:28:39 Corrector, wow, so many features.
00:28:44 And the original Emacs came out as,
00:28:48 so Emacs stands for editor macros.
00:28:52 And TECO had a way of writing macros.
00:28:56 And so the original Emacs from MIT
00:29:02 started out as a collection of macros for TECO.
00:29:07 But then the Emacs style got popular originally at MIT.
00:29:15 And then people did a few other implementations
00:29:20 of Emacs that were, the code base was entirely different,
00:29:26 but it was sort of the philosophical style
00:29:28 of the original Emacs.
00:29:30 What was the philosophy of Emacs?
00:29:33 And by the way, were all the implementations always in C?
00:29:36 And then how does Lisp fit into the picture?
00:29:39 No, so the very first Emacs was written
00:29:43 as a bunch of macros for the TECO text editor.
00:29:46 Wow, that’s so interesting.
00:29:47 And the macro language for TECO was probably
00:29:54 the most ridiculously obscure format.
00:29:59 If you just look at a TECO program on a page,
00:30:02 you think it was just random characters.
00:30:05 It really looks like just line noise.
00:30:09 So it’s kind of like LaTeX or something.
00:30:11 Oh, way worse than LaTeX.
00:30:14 Way, way worse than LaTeX.
00:30:18 But if you use TECO a lot, which I did,
00:30:23 TECO was completely optimized for touch typing at high speed.
00:30:31 So there were no two character commands.
00:30:35 Well, there were a few, but mostly they
00:30:37 were just one character.
00:30:39 So every character on the keyboard was a separate command.
00:30:43 And actually, every character on the keyboard
00:30:45 was usually two or three commands
00:30:48 because you could hit Shift and Control and all
00:30:51 of those things.
00:30:52 It’s just a way of very tightly encoding it.
00:30:56 And mostly what Emacs did was it made that visual.
00:31:03 So one way to think of TECO is use Emacs with your eyes
00:31:10 closed, where you have to maintain
00:31:15 a mental model of a mental image of your document.
00:31:20 You have to go, OK, so the cursor is between the A and the E.
00:31:27 And I want to exchange those, so I do these things.
00:31:31 So it is almost exactly the Emacs command set.
00:31:38 Well, it’s roughly the same as Emacs command set,
00:31:42 but using Emacs with your eyes closed.
00:31:47 So part of what Emacs added to the whole thing
00:31:52 was being able to visually see what
00:31:56 you were editing in a form that matched your document.
00:32:02 And a lot of things changed in the command set because it
00:32:12 was programmable.
00:32:13 It was really flexible.
00:32:15 You could add new commands for all kinds of things.
00:32:18 And then people rewrote Emacs multiple times in Lisp.
00:32:24 There was one done at MIT for the Lisp machine.
00:32:28 There was one done for Multics.
00:32:31 And one summer, I got a summer job
00:32:35 to work on the Pascal compiler for Multics.
00:32:40 And that was actually the first time I used Emacs.
00:32:47 To write the compilers.
00:32:48 You’ve worked on compilers, too.
00:32:50 That’s fascinating.
00:32:52 Yeah, so I did a lot of work.
00:32:55 I spent a really intense three months
00:32:59 working on this Pascal compiler, basically living in Emacs.
00:33:05 And it was the one written in Mac Lisp by Bernie Greenberg.
00:33:11 And I thought, wow, this is just a way better way
00:33:15 to do editing.
00:33:19 And then I got back to CMU, where
00:33:22 we had one of everything and two of a bunch of things
00:33:28 and four of a few things.
00:33:30 And since I mostly worked in the Unix universe,
00:33:36 and Unix didn’t have an Emacs, I decided
00:33:39 that I needed to fix that problem.
00:33:43 So I wrote this implementation of Emacs in C,
00:33:47 because at the time, C was really the only language that
00:33:51 worked on Unix.
00:33:55 And you were comfortable with C as well at that point?
00:33:58 Yeah, at that time, I had done a lot of C coding.
00:34:02 This was in, like, 86.
00:34:06 And it was running well enough for me
00:34:14 to use it to edit itself within a month or two.
00:34:17 And then it kind of took over the university.
00:34:23 And it spread outside.
00:34:25 Yeah, and then it went outside.
00:34:28 And largely because Unix kind of took over the research
00:34:33 community on the ARPANET, and Emacs
00:34:39 was kind of the best editor out there.
00:34:43 It kind of took over.
00:34:44 And there was actually a brief period
00:34:47 where I actually had login IDs on every nonmilitary host
00:34:55 on the ARPANET.
00:34:59 Because people would say, oh, can we install this?
00:35:01 And I’d like, well, yeah, but you’ll need some help.
00:35:09 The days when security wasn’t.
00:35:11 When nobody cared.
00:35:12 Nobody cared.
00:35:15 I can ask briefly, what were those early days of ARPANET
00:35:20 and the internet like?
00:35:25 Did you, again, sorry for the silly question,
00:35:28 but could you have possibly imagined
00:35:31 that the internet would look like what it is today?
00:35:36 Some of it is remarkably unchanged.
00:35:42 So one of the things that I noticed really early on
00:35:49 when I was at Carnegie Mellon was
00:35:51 that a lot of social life became centered around the ARPANET.
00:36:00 So things like between email and text messaging.
00:36:06 Because text messaging was a part of the ARPANET
00:36:09 really early on.
00:36:11 There were no cell phones, but you’re sitting at a terminal
00:36:15 and you’re typing stuff.
00:36:16 So essentially email, or what is text messaging?
00:36:19 Well, just like a one line message.
00:36:23 Oh, cool.
00:36:24 So like chat.
00:36:25 Like chat.
00:36:27 So it’s like sending a one line message to somebody.
00:36:31 And so pretty much everything from arranging lunch
00:36:40 to going out on dates was all like driven by social media.
00:36:48 Social media.
00:36:49 Right, in the 80s.
00:36:52 Easier than phone calls, yeah.
00:36:55 And my life had gotten to where I
00:37:00 was living on social media from the early mid 80s.
00:37:11 And so when it sort of transformed into the internet
00:37:16 and social media explodes, I was kind of like,
00:37:19 what’s the big deal?
00:37:21 It’s just a scale thing.
00:37:24 Right, the scale thing is just astonishing.
00:37:29 But the fundamentals in some ways remain the same.
00:37:32 The fundamentals have hardly changed.
00:37:36 And the technologies behind the networking
00:37:40 have changed significantly.
00:37:42 The watershed moment of going from the ARPANET
00:37:49 to the internet.
00:37:52 And then people starting to just scale and scale and scale.
00:37:57 I mean, the scaling that happened in the early 90s
00:38:03 and the way that so many vested interests fought the internet.
00:38:12 Oh, interesting.
00:38:14 What was the, oh, because you can’t really
00:38:16 control the internet.
00:38:17 Yeah, so who fought the internet?
00:38:19 So fundamentally, the cable TV companies
00:38:25 and broadcasters and phone companies,
00:38:32 at the deepest fibers of their being, they hated the internet.
00:38:38 But it was often kind of a funny thing because, so think
00:38:50 of a cable company.
00:38:53 Most of the employees of a cable company,
00:38:57 their job is getting TV shows, movies, whatever,
00:39:04 out to their customers.
00:39:06 They view their business as serving their customers.
00:39:13 But as you climb up the hierarchy in the cable companies,
00:39:20 that view shifts because really the business of the cable
00:39:29 companies had always been selling eyeballs
00:39:34 to advertisers.
00:39:36 Right.
00:39:39 And that view of a cable company
00:39:45 didn’t really dawn on most people who
00:39:49 worked at the cable companies.
00:39:50 But I had various dust ups with various cable companies
00:39:57 where you could see in the stratified layers
00:40:00 of the corporation that this view of the reason
00:40:06 that you have cable TV is to capture eyeballs.
00:40:13 So they didn’t see it that way.
00:40:15 Well, so most of the people who worked at the phone company
00:40:19 or at the cable companies, their view
00:40:22 was that their job was getting delightful content out
00:40:28 to their customers.
00:40:29 And their customers would pay for that.
00:40:33 Higher up, they viewed this as a way of attracting eyeballs
00:40:40 to them.
00:40:41 And then what they were really doing
00:40:45 was selling the eyeballs that were glued to their content
00:40:51 to the advertisers.
00:40:52 To the advertisers, yeah.
00:40:54 And so the internet was a competition in that sense.
00:40:57 Right.
00:40:58 They were right.
00:41:00 Well, yeah.
00:41:02 I mean, there was one proposal that we sent,
00:41:08 one detailed proposal that we wrote up back
00:41:14 at Sun in the early 90s that was essentially like, look,
00:41:19 anybody with internet technologies,
00:41:22 anybody can become provider of content.
00:41:27 So you could be distributing home movies
00:41:32 to your parents or your cousins or who are anywhere else.
00:41:39 So anybody can become a publisher.
00:41:41 Wow, you were thinking about that already.
00:41:43 Netflix, Netflix, YouTube.
00:41:45 Yeah, that was like in the early 90s.
00:41:49 And we thought, this would be great.
00:41:54 And the kind of content we were thinking about at the time
00:41:57 was like home movies, kids essays,
00:42:05 stuff from grocery stores or a restaurant
00:42:12 that they could actually start sending information about.
00:42:20 That’s brilliant.
00:42:21 And the reaction of the cable companies
00:42:25 was like, fuck no.
00:42:29 Because then we’re out of business.
00:42:34 What is it about companies that, because they could have just,
00:42:38 they could have been ahead of that wave.
00:42:40 They could have listened to that.
00:42:41 And they could have.
00:42:42 They didn’t see a path to revenue.
00:42:46 Somewhere in there, there’s a lesson for big companies,
00:42:50 like to listen, to try to anticipate the renegade,
00:42:56 the out there, out of the box, people like yourself
00:42:59 in the early days writing proposals
00:43:01 about what this could possibly be.
00:43:03 Well, and that wasn’t.
00:43:06 If you’re in a position where you’re
00:43:09 making truckloads of money off of a particular business model,
00:43:19 the whole thought of leaping the chasm,
00:43:28 you can see, oh, new models that are more effective
00:43:33 are emerging, so like digital cameras versus film cameras.
00:43:44 Why take the leap?
00:43:45 Why take the leap?
00:43:46 Because you’re making so much money off of film.
00:43:50 And in my past at Sun, one of our big customers was Kodak.
00:43:59 And I ended up interacting with folks from Kodak quite a lot.
00:44:03 And they actually had a big digital camera research
00:44:09 and digital imaging business, or development group.
00:44:15 And they knew that you just look at the trend lines
00:44:24 and you look at the emerging quality of these digital
00:44:32 cameras.
00:44:33 And you can just plot it on the graph.
00:44:37 And it’s like, sure, film is better today.
00:44:44 But digital is improving like this.
00:44:51 The lines are going to cross.
00:44:52 And the point at which the lines cross
00:44:56 is going to be a collapse in their business.
00:45:00 And they could see that.
00:45:05 They absolutely knew that.
00:45:07 The problem is that up to the point where they hit the wall,
00:45:12 they were making truckloads of money.
00:45:16 And when they did the math, it never
00:45:24 started to make sense for them to kind of lead the charge.
00:45:29 And part of the issues for a lot of companies
00:45:32 for this kind of stuff is that if you’re
00:45:37 going to leap over a chasm like that,
00:45:39 like with Kodak going from film to digital,
00:45:45 that’s a transition that’s going to take a while.
00:45:49 We had fights like this with people over smart cards.
00:45:53 The smart cards fights were just ludicrous.
00:45:57 But that’s where visionary leadership comes in, right?
00:46:00 Somebody needs to roll in and say, then take the leap.
00:46:04 Well, it’s partly take the leap,
00:46:07 but it’s also partly take the hit.
00:46:09 Take the hit in the short term.
00:46:12 So you can draw the graphs you want that show that if we leap
00:46:17 from here, on our present trajectory, we’re doing this
00:46:21 and there’s a cliff.
00:46:22 If we force ourselves into a transition
00:46:27 and we proactively do that, we can be on the next wave.
00:46:33 But there will be a period when we’re in a trough.
00:46:39 And pretty much always there ends up being a trough
00:46:43 as you leap the chasm.
00:46:46 But the way that public companies work on this planet,
00:46:52 they’re reporting every quarter.
00:46:55 And the one thing that a CEO must never do is take a big hit.
00:47:02 Take a big hit.
00:47:04 Over some quarter.
00:47:06 And many of these transitions involve a big hit
00:47:11 for a period of time, one, two, three quarters.
00:47:17 And so you get some companies and like Tesla and Amazon
00:47:26 are really good examples of companies that take huge hits.
00:47:32 But they have the luxury of being
00:47:34 able to ignore the stock market for a little while.
00:47:38 And that’s not so true today, really.
00:47:42 But in the early days of both of those companies,
00:47:50 they both did this thing of, I don’t care
00:47:56 about the quarterly reports.
00:47:57 I care about how many happy customers we have.
00:48:02 And having as many happy customers as possible
00:48:05 can often be an enemy of the bottom line.
00:48:11 Yeah, so how do they make that work?
00:48:12 I mean, Amazon operated in the negative for a long time.
00:48:15 It’s like investing into the future.
00:48:17 Right.
00:48:18 But so Amazon and Google and Tesla and Facebook, a lot
00:48:23 of those had what amounted to patient money,
00:48:30 often because there’s like a charismatic central figure who
00:48:36 has a really large block of stock.
00:48:41 And they can just make it so.
00:48:45 So on that topic, just maybe it’s a small tangent,
00:48:49 but you’ve gotten the chance to work
00:48:51 with some pretty big leaders.
00:48:53 What are your thoughts about on the Tesla side, Elon Musk
00:48:56 leadership, on the Amazon side, Jeff Bezos,
00:49:00 all of these folks with large amounts of stock and vision
00:49:03 in their company?
00:49:04 I mean, they’re founders, either complete founders
00:49:09 or early on folks.
00:49:11 And Amazon have taken a lot of leaps.
00:49:17 And that probably at the time, people
00:49:20 would criticize as like, what is this bookstore thing?
00:49:26 Yeah.
00:49:26 And Bezos had a vision.
00:49:31 And he had the ability to just follow it.
00:49:36 Lots of people have visions.
00:49:37 And the average vision is completely idiotic,
00:49:41 and you crash and burn.
00:49:45 The Silicon Valley crash and burn rate is pretty high.
00:49:52 And they don’t necessarily crash and burn
00:49:54 because they were dumb ideas.
00:49:55 But often, it’s just timing and luck.
00:50:00 And you take companies like Tesla,
00:50:07 and really, the original Tesla sort of pre Elon
00:50:19 was kind of doing sort of OK.
00:50:22 But he just drove them.
00:50:26 And because he had a really strong vision,
00:50:32 he would make calls that were always mostly pretty good.
00:50:40 I mean, the Model X was kind of a goofball thing to do.
00:50:44 But he did it boldly anyway.
00:50:46 There’s so many people that just said,
00:50:50 there’s so many people that oppose them on the door.
00:50:54 From the engineering perspective,
00:50:55 those doors are ridiculous.
00:50:58 They are a complete travesty.
00:51:02 But they’re exactly the symbol of what great leadership is,
00:51:05 which is like, you have a vision, and you just go.
00:51:08 If you’re going to do something stupid, make it really stupid.
00:51:12 And go all in.
00:51:14 Yeah.
00:51:16 And to Musk’s credit, he’s a really sharp guy.
00:51:22 So going back in time a little bit to Steve Jobs,
00:51:26 Steve Jobs was a similar sort of character
00:51:29 who had a strong vision and was really, really smart.
00:51:34 And he wasn’t smart about the technology parts of things.
00:51:39 But he was really sharp about the sort of human relationship
00:51:47 between the relationship between humans and objects.
00:51:54 But he was a jerk.
00:52:01 Can we just linger on that a little bit?
00:52:02 People say he’s a jerk.
00:52:06 Is that a feature or a bug?
00:52:08 Well, that’s the question, right?
00:52:11 So you take people like Steve, who was really hard on people.
00:52:19 And so the question is, was he needlessly hard on people?
00:52:25 Or was he just making people reach to meet his vision?
00:52:34 And you could kind of spin it either way.
00:52:41 Well, the results tell a story.
00:52:45 He, through whatever jerk ways he had,
00:52:47 he made people often do the best work of their life.
00:52:51 Yeah.
00:52:52 Yeah, and that was absolutely true.
00:52:54 And I interviewed with him several times.
00:52:59 I did various negotiations with him.
00:53:04 And even though kind of personally I liked him,
00:53:15 I could never work for him.
00:53:18 Why do you think that?
00:53:22 Can you put into words the kind of tension
00:53:25 that you feel would be destructive as opposed
00:53:29 to constructive?
00:53:32 Oh, he’d yell at people.
00:53:35 He’d call them names.
00:53:39 And you don’t like that?
00:53:40 No.
00:53:41 No, I don’t think you need to do that.
00:53:43 Yeah.
00:53:46 And I think there’s pushing people to excel.
00:53:58 And then there’s too far.
00:54:01 And I think he was on the wrong side of the line.
00:54:04 And I’ve never worked for Musk.
00:54:07 I know a number of people who have, many of them have said,
00:54:11 and it shows up in the press a lot,
00:54:13 that Musk is kind of that way.
00:54:18 And one of the things that I sort of loathe
00:54:21 about Silicon Valley these days is
00:54:24 that a lot of the high flying successes
00:54:29 are run by people who are complete jerks.
00:54:33 But it seems like there’s come this sort of mythology out
00:54:39 of Steve Jobs that the reason that he succeeded
00:54:44 was because he was super hard on people.
00:54:50 And in a number of corners, people start going,
00:54:57 oh, if I want to succeed, I need to be a real jerk.
00:55:02 And that, for me, just does not compute.
00:55:05 I know a lot of successful people
00:55:07 who are not jerks, who are perfectly fine people.
00:55:11 And they tend to not be in the public eye.
00:55:20 The general public somehow lifts the jerks up
00:55:24 into the hero status.
00:55:28 Right.
00:55:29 Well, because they do things that get them in the press.
00:55:32 And the people who don’t do the kind of things
00:55:44 that spill into the press.
00:55:47 Yeah, I just talked to Chris Ladner for the second time.
00:55:54 He’s a super nice guy.
00:55:56 Just an example of this kind of individual
00:55:58 that’s in the background.
00:56:00 I feel like he’s behind a million technologies.
00:56:03 But he also talked about the jerkiness of some of the folks.
00:56:06 Yeah.
00:56:07 Yeah, and the fact that being a jerk
00:56:10 has become a required style.
00:56:13 But one thing I maybe want to ask on that
00:56:15 is maybe to push back a little bit.
00:56:17 So there’s the jerk side.
00:56:19 But there’s also, if I were to criticize
00:56:22 what I’ve seen in Silicon Valley, which is almost
00:56:25 the resistance to working hard.
00:56:28 So on the jerkiness side, it’s so Posty Jobs and Elon kind
00:56:37 of push people to work really hard to do.
00:56:41 And there’s a question whether it’s
00:56:43 possible to do that nicely.
00:56:45 But one of the things that bothers me,
00:56:47 maybe I’m just Russian and just kind of romanticize
00:56:51 the whole suffering thing.
00:56:53 But I think working hard is essential for accomplishing
00:56:57 anything interesting, like really hard.
00:57:00 And in the parlance of Silicon Valley,
00:57:02 it’s probably too hard.
00:57:04 This idea of that you should work smart, not hard often
00:57:10 to me sounds like you should be lazy.
00:57:12 Because of course you want to be to work smart.
00:57:15 Of course you would be maximally efficient.
00:57:18 But in order to discover the efficient path
00:57:20 like we’re talking about with the short programs, you have to.
00:57:23 Well, the smart, hard thing isn’t an either or.
00:57:28 It’s an and.
00:57:29 It’s an and, yeah.
00:57:30 Right.
00:57:31 And the people who say you should work smart, not hard,
00:57:42 they pretty much always fail.
00:57:44 Yeah.
00:57:45 Thank you.
00:57:46 Right.
00:57:46 I mean, that’s just a recipe for disaster.
00:57:49 I mean, there are counterexamples,
00:57:53 but they’re more people who benefited from luck.
00:57:58 And you’re saying, yeah, exactly.
00:57:59 Luck and timing, like you said, is often an essential thing.
00:58:04 But you’re saying you can push people
00:58:07 to work hard and do incredible work without being nasty.
00:58:13 Yeah, without being nasty.
00:58:14 I think Google is a good example of the leadership of Google
00:58:22 throughout its history has been a pretty good example of not
00:58:26 being nasty and being kind.
00:58:28 Yeah.
00:58:28 I mean, the twins, Larry and Sergey,
00:58:35 are both pretty nice people.
00:58:37 Sandra Pichai is very nice.
00:58:39 Yeah.
00:58:40 Yeah.
00:58:41 And it’s a culture of people who work really, really hard.
00:58:49 Let me ask maybe a little bit of a tense question.
00:58:54 We’re talking about Emacs.
00:58:56 It seems like you’ve done some incredible work,
00:58:58 so outside of Java, you’ve done some incredible work that
00:59:02 didn’t become as popular as it could have because of licensing
00:59:06 issues and open source issues.
00:59:11 Is it, what are your thoughts about that entire mess?
00:59:18 Like what’s about open source now in retrospect looking back?
00:59:24 About licensing, about open sourcing,
00:59:27 do you think open source is a good thing, a bad thing?
00:59:33 Do you have regrets?
00:59:35 Do you have wisdom that you’ve learned
00:59:38 from that whole experience?
00:59:39 So in general, I’m a big fan of open source.
00:59:45 The way that it can be used to build communities and promote
00:59:49 the development of things and promote collaboration and all
00:59:54 of that is really pretty grand.
00:59:59 When open source turns into a religion that says all things
01:00:04 must be open source, I get kind of weird about that
01:00:10 because it’s sort of like saying some versions of that
01:00:17 end up saying that all software engineers
01:00:22 must take a vow of poverty, right, as though.
01:00:28 It’s unethical to have money.
01:00:30 Yeah.
01:00:31 To build a company, right.
01:00:34 And there’s a slice of me that actually kind of buys into that
01:00:41 because people who make billions of dollars off of a patent,
01:00:50 and the patent came from literally a stroke
01:00:56 of lightning that hits you as you lie half awake in bed.
01:01:02 Yeah, that’s lucky.
01:01:03 Good for you.
01:01:06 The way that that sometimes sort of explodes
01:01:09 into something that looks to me a lot like exploitation,
01:01:14 you see a lot of that in the drug industry.
01:01:18 You know, when you’ve got medications that cost you
01:01:26 like $100 a day, and it’s like, no.
01:01:33 Yeah, so the interesting thing about the sort of open source,
01:01:39 what bothers me is when something is not open source,
01:01:44 and because of that, it’s a worse product.
01:01:48 Yeah.
01:01:49 So like, I mean, if I look at your just implementation
01:01:52 of Emacs, like that could have been the dominant implementation.
01:01:56 Like I use Emacs.
01:01:57 That’s my main ID.
01:01:58 I apologize to the world, but I still love it.
01:02:02 And I could have been using your implementation of Emacs.
01:02:09 And why aren’t I?
01:02:11 So are you using the GNU Emacs?
01:02:14 I guess the default on Linux is that GNU?
01:02:16 Yeah.
01:02:16 And that, through a strange passage,
01:02:20 started out as the one that I wrote.
01:02:22 Exactly.
01:02:22 So it still has a, yeah.
01:02:26 Well, and part of that was because in the last couple
01:02:32 of years of grad school, it became really clear
01:02:38 to me that I was either going to be Mr. Emacs forever
01:02:46 or I was going to graduate.
01:02:50 Got it.
01:02:50 I couldn’t actually do both.
01:02:54 Was that a hard decision?
01:02:56 That’s so interesting to think about you as a,
01:02:58 like it’s a different trajectory that could have happened.
01:03:01 Yeah.
01:03:01 That’s fascinating.
01:03:04 And maybe I could be fabulously wealthy today
01:03:10 if I had become Mr. Emacs, and Emacs
01:03:13 had mushroomed into a series of text processing applications
01:03:19 and all kinds of stuff.
01:03:20 And I would have, you know.
01:03:24 But I have a long history of financially suboptimal
01:03:30 decisions because I didn’t want that life, right?
01:03:38 And I went to grad school because I wanted to graduate.
01:03:47 And being Mr. Emacs for a while was kind of fun,
01:03:58 and then it kind of became not fun.
01:04:03 And when it was not fun, there was
01:04:10 no way I could pay my rent, right?
01:04:17 And I was like, OK, do I carry on as a grad student?
01:04:23 I had a research assistantship, and I
01:04:25 was sort of living off of that.
01:04:27 And I was trying to do my, you know,
01:04:30 I was doing all my RA work, all my RA,
01:04:33 you know, being grad student work
01:04:35 and being Mr. Emacs all at the same time.
01:04:40 And I decided to pick one.
01:04:45 And one of the things that I did at the time
01:04:48 was I went around all the people I knew on the ARPANET who
01:04:53 might be able to take over looking after Emacs.
01:04:58 And pretty much everybody said, eh, I got a day job.
01:05:06 So I actually found two folks and a couple
01:05:12 of folks in a garage in New Jersey, complete with a dog,
01:05:20 who were willing to take it over.
01:05:22 But they were going to have to charge money.
01:05:26 But my deal with them was that they would only,
01:05:31 that they would make it free for universities and schools
01:05:33 and stuff.
01:05:34 And they said sure.
01:05:36 And you know, that upset some people.
01:05:41 So you have some, now I don’t know the full history of this,
01:05:43 but I think it’s kind of interesting.
01:05:46 You have some tension with Mr. Richard Stallman over the,
01:05:54 and he kind of represents this kind of,
01:05:56 like you mentioned, free software,
01:06:03 sort of a dogmatic focus on, yeah.
01:06:07 All information must be free.
01:06:10 Must be free.
01:06:10 So what, is there an interesting way
01:06:14 to paint a picture of the disagreement
01:06:17 you have with Richard through the years?
01:06:19 My basic opposition is that when you say information
01:06:26 must be free, to a really extreme form that
01:06:32 turns into all people whose job is
01:06:38 the production of everything from movies to software.
01:06:49 They must all take a vow of poverty
01:06:52 because information must be free.
01:06:56 And that doesn’t work for me.
01:06:59 And I don’t want to be wildly rich.
01:07:05 I am not wildly rich.
01:07:08 I do OK.
01:07:14 But I do actually, I can feed my children.
01:07:20 Yeah, I totally agree with you.
01:07:22 It does just make me sad that sometimes
01:07:25 the closing of the source, for some reason
01:07:28 that people that, like a bureaucracy begins to build,
01:07:33 and sometimes it doesn’t, it hurts the product.
01:07:37 Oh, absolutely.
01:07:38 Absolutely.
01:07:39 It’s always sad.
01:07:40 And there is a balance in there.
01:07:44 There’s a balance.
01:07:47 And it’s not hard over rapacious capitalism.
01:07:56 And it’s not hard over in the other direction.
01:08:02 And a lot of the open source movement,
01:08:07 they have been managing to find the path
01:08:11 to actually making money.
01:08:15 So doing things like service and support
01:08:18 works for a lot of people.
01:08:20 And there are some ways where it’s kind of, some of them
01:08:33 are a little perverse.
01:08:35 So as a part of things like this Sarbanes–Oxley Act
01:08:43 and various people’s interpretations
01:08:45 of all kinds of accounting principles.
01:08:49 And this is kind of a worldwide thing.
01:08:51 But if you’ve got a corporation that
01:08:55 is depending on some piece of software,
01:09:01 often various accounting and reporting standards
01:09:04 say if you don’t have a support contract on this thing
01:09:08 that your business is depending on, then that’s bad.
01:09:15 So if you’ve got a database, you need to pay for support.
01:09:24 But there’s a difference between the sort of support contracts
01:09:30 that the average open source database producer charges
01:09:37 and what somebody who is truly rapacious like Oracle charges.
01:09:44 Yeah, so it’s a balance, like you said.
01:09:47 It is absolutely a balance.
01:09:49 And there are a lot of different ways
01:09:57 to make the math work out for everybody.
01:10:04 And the very unbalanced sort of like the winner
01:10:16 takes all thing that happens in so much of modern commerce,
01:10:23 that just doesn’t work for me either.
01:10:26 I know you’ve talked about this in quite a few places,
01:10:31 but you have created one of the most popular programming
01:10:37 languages in the world.
01:10:39 This is a programming language that I first
01:10:41 learned about object oriented programming with.
01:10:46 I think it’s a programming language
01:10:49 that a lot of people use in a lot of different places
01:10:52 and millions of devices today, Java.
01:10:55 So the absurd question, but can you
01:11:00 tell the origin story of Java?
01:11:03 So a long time ago at Sun in about 1990,
01:11:07 there was a group of us who were kind of worried
01:11:12 that there was stuff going on in the universe of computing
01:11:18 that the computing industry was missing out on.
01:11:21 And so a few of us started this project
01:11:29 at Sun that really got going.
01:11:32 I mean, we started talking about it in 1990,
01:11:34 and it really got going in 91.
01:11:39 And it was all about what was happening
01:11:44 in terms of computing hardware processors
01:11:48 and networking and all of that that was outside
01:11:53 of the computer industry.
01:11:54 And that was everything from the sort
01:11:59 of early glimmers of cell phones that were happening then
01:12:03 to you look at elevators and locomotives
01:12:07 and process control systems in factories
01:12:12 and all kinds of audio equipment and video equipment.
01:12:20 They all had processors in them, and they were all
01:12:22 doing stuff with them.
01:12:24 And it sort of felt like there was something going on there
01:12:30 that we needed to understand.
01:12:34 And
01:12:36 So C and C++ was in the air already.
01:12:38 Oh, no, C and C++ absolutely owned the universe
01:12:42 at that time.
01:12:42 Everything was written in C and C++.
01:12:45 So where was the hunch that there
01:12:46 was a need for a revolution?
01:12:48 Well, so the need for a revolution
01:12:50 was not about a language.
01:12:54 It was just as simple and vague as there
01:12:59 are things happening out there.
01:13:03 We need to understand them.
01:13:04 We need to understand them.
01:13:08 And so a few of us went on several somewhat epic road
01:13:16 trips.
01:13:19 Literal road trips?
01:13:20 Literal road trips.
01:13:21 It’s like get on an airplane, go to Japan,
01:13:24 visit Toshiba and Sharp and Mitsubishi and Sony
01:13:31 and all of these folks.
01:13:33 And because we worked for Sun, we
01:13:36 had folks who were willing to give us introductions.
01:13:42 We visited Samsung and a bunch of Korean companies.
01:13:50 And we went all over Europe.
01:13:51 We went to places like Philips and Siemens and Thomson.
01:13:56 And what did you see there?
01:14:00 For me, one of the things that sort of leapt out
01:14:02 was that they were doing all the usual computer things
01:14:07 that people had been doing like 20 years before.
01:14:10 The thing that really leapt out to me
01:14:13 was that they were sort of reinventing
01:14:16 computer networking.
01:14:18 And they were making all the mistakes
01:14:24 that people in the computer industry had made.
01:14:28 And since I had been doing a lot of work in the networking
01:14:32 area, we’d go and visit Company X.
01:14:37 They’d describe this networking thing that they were doing.
01:14:40 And just without any thought, I could tell them
01:14:43 like the 25 things that were going
01:14:45 to be complete disasters with that thing
01:14:49 that they were doing.
01:14:52 And I don’t know whether that had any impact on any of them.
01:14:55 But that particular story of repeating the disasters
01:15:03 of the computer science industry was there.
01:15:07 And one of the things we thought was, well,
01:15:11 maybe we could do something useful here with bringing them
01:15:15 forward somewhat.
01:15:16 But also, at the same time, we learned a bunch of things
01:15:24 from these mostly consumer electronics companies.
01:15:31 And high on the list was that they
01:15:39 viewed their relationship with the customer as sacred.
01:15:45 They were never, ever willing to make tradeoffs
01:15:51 between for safety.
01:15:56 So one of the things that had always
01:16:00 made me nervous in the computer industry
01:16:04 was that people were willing to make tradeoffs in reliability
01:16:12 to get performance.
01:16:17 They want faster, faster.
01:16:18 It breaks a little more often because it’s fast.
01:16:21 Maybe you run it a little hotter than you should.
01:16:23 Or the one that always blew my mind
01:16:27 was the way that the folks at Cray Supercomputers
01:16:34 got their division to be really fast
01:16:38 was that they did Newton Raphson approximations.
01:16:44 And so the bottom several bits of A over B
01:16:51 were essentially random numbers.
01:16:55 What could possibly go wrong?
01:16:56 What could go wrong?
01:16:59 And just figuring out how to nail the bottom bit,
01:17:08 how to make sure that if you put a piece of toast in a toaster,
01:17:14 it’s not going to kill the customer.
01:17:18 It’s not going to burst into flames and burn the house down.
01:17:22 So I guess those are the principles that were inspiring.
01:17:26 But how did, from the days of Java’s called oak,
01:17:33 because of a tree outside the window story
01:17:34 that a lot of people know, how did it
01:17:37 become this incredible, powerful language?
01:17:43 Well, so it was a bunch of things.
01:17:46 So after all that, the way that we
01:17:50 decided that we could understand things better
01:17:54 was by building a demo, building a prototype of something.
01:17:59 So because it was easy and fun, we
01:18:02 decided to build a control system for some home
01:18:07 electronics, TV, VCR, that kind of stuff.
01:18:11 And as we were building it, we discovered
01:18:16 that there were some things about standard practice
01:18:19 in C programming that were really getting in the way.
01:18:26 And it wasn’t exactly because we were writing all this C code
01:18:32 and C++ code that we couldn’t write it to do the right thing.
01:18:37 But one of the things that was weird in the group
01:18:42 was that we had a guy whose top level job was
01:18:50 he was a business guy.
01:18:52 He was an MBA kind of person, think about business plans
01:18:57 and all of that.
01:18:58 And there were a bunch of things that were kind of,
01:19:05 and we would talk about things that were going wrong
01:19:07 and things that were going wrong,
01:19:10 things that were going right.
01:19:11 And as we thought about things like the requirements
01:19:16 for security and safety, some low level details
01:19:21 and see like naked pointers.
01:19:24 Yeah.
01:19:24 And so back in the early 90s, it was well understood
01:19:35 that the number one source of security vulnerabilities.
01:19:41 Was pointers.
01:19:42 Was just pointers, was just bugs.
01:19:45 And it was like 50%, 60%, 70% of all security vulnerabilities
01:19:52 were bugs.
01:19:53 And the vast majority of them were like buffer overflows.
01:19:57 So you’re like, we have to fix this.
01:20:00 We have to make sure that this cannot happen.
01:20:04 And that was kind of the original thing for me
01:20:07 was this cannot continue.
01:20:11 And one of the things I find really entertaining this year
01:20:16 was, I forget which Rag published it,
01:20:22 but there was this article that came out
01:20:24 that was sort of the result of an examination
01:20:31 of all the security vulnerabilities in Chrome.
01:20:35 And Chrome is like a giant piece of C++ code.
01:20:39 And 60% or 70% of all the security vulnerabilities
01:20:44 were stupid pointer tricks.
01:20:48 And I thought, it’s 30 years later and we’re still there.
01:20:54 Still there.
01:20:54 And we’re still there.
01:20:56 And that’s one of those slap your forehead
01:21:00 and just want to cry moments.
01:21:05 Would you attribute, or is that too much of a simplification,
01:21:09 but would you attribute the creation of Java
01:21:11 to C pointers?
01:21:15 Obvious problem.
01:21:16 Well, I mean, that was one of the trigger points.
01:21:21 Concurrency you’ve mentioned.
01:21:23 Concurrency was a big deal.
01:21:27 Because when you’re interacting with people,
01:21:31 the last thing you ever want to see
01:21:32 is the thing like waiting and issues
01:21:37 about the software development process.
01:21:42 When faults happen, can you recover from them?
01:21:45 What can you do to make it easier
01:21:49 to create and eliminate complex data structures?
01:21:54 What can you do to fix one of the most common C problems,
01:21:59 which is storage leaks?
01:22:03 And it’s evil twin, the freed but still being used
01:22:12 piece of memory.
01:22:14 You free something and then you keep using it.
01:22:17 Oh, yeah.
01:22:19 So when I was originally thinking about that,
01:22:21 I was thinking about it in terms of safety and security issues.
01:22:26 And one of the things I came to understand
01:22:29 was that it wasn’t just about safety and security,
01:22:33 but it was about developer velocity.
01:22:39 So and I got really religious about this
01:22:43 because at that point, I had spent an ungodly amount
01:22:46 of my life hunting down mystery pointer bugs.
01:22:54 And two thirds of my time as a software developer
01:23:01 was because the mystery pointer bugs tend
01:23:03 to be the hardest to find because they tend
01:23:07 to be very, very statistical.
01:23:11 The ones that hurt, they’re like a one in a million chance.
01:23:20 But nevertheless, create an infinite amount of suffering.
01:23:23 Right.
01:23:24 Because when you’re doing a billion operations a second,
01:23:28 one in a million chance means it’s going to happen.
01:23:35 And so I got really religious about this thing,
01:23:38 about making it so that if something fails,
01:23:41 it fails immediately and visibly.
01:23:44 And one of the things that was a real attraction of Java
01:23:52 to lots of development shops was that we get our code up
01:23:57 and running twice as fast.
01:24:00 You mean like the entirety of the development process,
01:24:03 debugging, all that kind of stuff?
01:24:04 Yeah, so if you measure time from you first touch fingers
01:24:12 to keyboard until you get your first demo out,
01:24:19 not much different.
01:24:21 But if you look from fingers touching keyboard
01:24:23 to solid piece of software that you could release
01:24:27 in production, it would be way faster.
01:24:32 And I think what people don’t often realize is, yeah,
01:24:34 there’s things that really slow you down,
01:24:36 like the hard to catch bugs probably
01:24:40 is the thing that really slows down the entire time.
01:24:43 It really slows things down.
01:24:45 But also, one of the things that you get out
01:24:48 of object oriented programming is a strict methodology
01:24:52 about what are the interfaces between things
01:24:55 and being really clear about how parts relate to each other.
01:25:02 And what that helps with is so many times
01:25:06 what people do is they kind of like sneak around the side.
01:25:12 So if you’ve built something and people are using it
01:25:16 and you say, well, OK, I built this thing.
01:25:21 You use it this way.
01:25:23 And then you change it in such a way
01:25:26 that it still does what you said it does.
01:25:28 It just does it a little bit different.
01:25:30 Then you find out that somebody out there
01:25:33 was sneaking around the side.
01:25:35 They sort of tunneled in a back door.
01:25:38 And this person, their code broke.
01:25:41 And because they were sneaking through a side door.
01:25:47 And normally, the attitude is, dummy.
01:25:56 But a lot of times, you can’t just slap their hand
01:26:04 and tell them to not do that.
01:26:06 Because it’s some bank’s account reconciliation system
01:26:17 that some developer decided, oh, I’m lazy.
01:26:22 I’ll just sneak through the back door.
01:26:24 Because the language allows it.
01:26:26 I mean, you can’t even mad at them.
01:26:28 And so one of the things I did that, on the one hand,
01:26:32 upset a bunch of people was I made it
01:26:34 so that you really couldn’t go through back doors.
01:26:38 So the whole point of that was to say,
01:26:44 if the interface here isn’t right,
01:26:47 the wrong way to deal with that is to go through a back door.
01:26:51 The right way to deal with it is to walk up
01:26:53 to the developer of this thing and say, fix it.
01:26:58 And so it was kind of like a social engineering thing.
01:27:02 And people ended up discovering that that really
01:27:08 made a difference in terms of.
01:27:12 And a bunch of this stuff, if you’re just screwing around
01:27:16 writing your own class project scale stuff,
01:27:20 a lot of this stuff isn’t quite so important
01:27:25 because you’re both sides of the interface.
01:27:31 But when you’re building larger, more complex pieces of software
01:27:37 that have a lot of people working on them,
01:27:39 and especially when they span organizations,
01:27:46 having clarity about how that stuff gets structured
01:27:52 saves your life.
01:27:56 And especially, there’s so much software
01:28:00 that is fundamentally untestable until you do the real thing.
01:28:08 It’s better to write good code in the beginning
01:28:11 as opposed to writing crappy code
01:28:13 and then trying to fix it and trying to scramble and figure
01:28:17 out, and through testing, figure out where the bugs are.
01:28:20 Yeah, it’s like, which shortcut caused that rocket
01:28:27 to not get where it was needed to go?
01:28:31 So I think one of the most beautiful ideas philosophically
01:28:38 and technically is of a virtual machine, a Java virtual machine.
01:28:45 Again, I apologize to romanticize things,
01:28:47 but how did the idea of the JVM come to be?
01:28:53 How to you radical of an idea it is?
01:28:56 Because it seems to me to be just a really interesting idea
01:29:01 in the history of programming.
01:29:04 And what is it?
01:29:05 So the Java virtual machine, you can think of it
01:29:10 in different ways because it was carefully designed
01:29:17 to have different ways of viewing it.
01:29:19 So one view of it that most people don’t really realize
01:29:23 is there is that you can view it as sort
01:29:30 of an encoding of the abstract syntax tree
01:29:34 in reverse Polish notation.
01:29:39 I don’t know if that makes any sense at all.
01:29:41 I could explain it, and that would blow all of our time.
01:29:44 But the other way to think of it and the way
01:29:47 that it ends up being explained is
01:29:50 that it’s like the instruction set of an abstract machine
01:29:57 that’s designed such that you can translate
01:30:00 that abstract machine to a physical machine.
01:30:03 And the reason that that’s important,
01:30:07 so if you wind back to the early 90s
01:30:10 when we were talking to all of these companies doing
01:30:15 consumer electronics, and you talk to the purchasing people,
01:30:22 there were interesting conversations with purchasing.
01:30:27 So if you look at how these devices come together,
01:30:31 they’re sheet metal and gears and circuit boards
01:30:36 and capacitors and resistors and stuff.
01:30:40 And everything you buy has multiple sources.
01:30:46 So you can buy a capacitor from here.
01:30:50 You can buy a capacitor from there.
01:30:52 And you’ve got kind of a market so that you can actually
01:30:57 get a decent price for a capacitor.
01:31:03 But CPUs, and particularly in the early 90s,
01:31:12 CPUs were all different and all proprietary.
01:31:17 So if you use the chip from Intel,
01:31:22 you had to be an Intel customer till the end of time.
01:31:28 Because if you wrote a bunch of software,
01:31:31 when you wrote software using whatever technique you wanted,
01:31:36 and C was particularly bad about this
01:31:39 because there was a lot of properties
01:31:43 of the underlying machine that came through.
01:31:48 So you were stuck.
01:31:49 So the code you wrote, you were stuck
01:31:50 to that particular machine.
01:31:51 You were stuck to that particular machine,
01:31:54 which meant that they couldn’t decide,
01:31:56 you know, Intel is screwing us.
01:32:01 I’ll start buying chips from Bob’s Better Chips.
01:32:08 This drove the purchasing people absolutely insane
01:32:15 that they were welded into this decision.
01:32:20 And they would have to make this decision
01:32:22 before the first line of software was written.
01:32:25 That’s funny that you’re talking about the purchasing people.
01:32:28 So there’s one perspective, right?
01:32:31 There’s a lot of other perspectives
01:32:32 that all probably hated this idea.
01:32:35 Right.
01:32:36 But from a technical aspect,
01:32:37 just like the creation of an abstraction layer
01:32:41 that’s agnostic to the underlying machine
01:32:46 from the perspective of the developer,
01:32:48 I mean, that’s brilliant.
01:32:50 Right.
01:32:50 Well, and so that’s like across the spectrum
01:32:56 of providers of chips.
01:32:58 But then there’s also the time thing
01:33:00 because, you know, as you went from one generation
01:33:04 to the next generation to the next generation,
01:33:06 they were all different.
01:33:07 And you would often have to rewrite your software.
01:33:10 Oh, you mean generations of machines of different kinds?
01:33:14 Yeah.
01:33:15 So like one of the things that sucked about a year out
01:33:19 of my life was when Sun went from the Motorola 68010
01:33:27 processor to the 68020 processor.
01:33:31 Then they had a number of differences.
01:33:33 And one of them hit us really hard.
01:33:36 And I ended up being the point guy
01:33:41 on the worst case of where the new instruction cache
01:33:46 architecture hurt us.
01:33:49 Well, OK, so I mean, so one of this idea, I mean, OK.
01:33:53 So yeah, you articulate a really clear fundamental problem
01:33:57 in all of computing.
01:33:59 But where do you get the guts to think
01:34:03 we can actually solve this?
01:34:05 You know, in our conversations with all of these vendors,
01:34:09 these problems started to show up.
01:34:14 And I kind of had this epiphany because it reminded me
01:34:23 of a summer job that I had had in grad school.
01:34:31 So back in grad school, my thesis advisor,
01:34:37 well, I had two thesis advisors for bizarre reasons.
01:34:42 One of them was a guy named Raj Reddy.
01:34:44 The other one was Bob Sproul.
01:34:48 And Raj, I love Raj.
01:34:53 I really love both of them.
01:34:56 So the department had bought a bunch of early workstations
01:35:06 from a company called Three Rivers Computer Company.
01:35:11 And Three Rivers Computer Company
01:35:13 was a bunch of electrical engineers
01:35:15 who wanted to do as little software as possible.
01:35:19 So they knew that they’d need to have compilers and an OS
01:35:23 and stuff like that.
01:35:24 And they didn’t want to do any of that.
01:35:26 And they wanted to do that for as close to zero money
01:35:29 as possible.
01:35:31 So what they did was they built a machine whose instruction set
01:35:39 was literally the byte code for UCSD Pascal, the P code.
01:35:50 And so we had a bunch of software
01:35:56 that was written for this machine.
01:36:02 And for various reasons, the company
01:36:06 wasn’t doing terrifically well.
01:36:08 We had all this software on these machines.
01:36:10 And we wanted it to run on other machines, principally
01:36:13 the VAX.
01:36:15 And so Raj asked me if I could come up
01:36:23 with a way to port all of this software from the PERC machines
01:36:32 to VAXs.
01:36:35 And I think what he had in mind was something
01:36:41 that would translate from Pascal to C or Pascal to, actually,
01:36:50 at those times, pretty much it was
01:36:52 you could translate to C or C. And if you
01:36:55 didn’t like translate to C, you could translate to C.
01:37:00 There was, it’s like the Henry Ford, any color you want,
01:37:05 just as long as it’s black.
01:37:09 And I went, that’s really hard.
01:37:15 That’s a.
01:37:16 And I noticed that, and I was looking at stuff.
01:37:20 And I went, oh, I bet I could rewrite the P code
01:37:25 into VAX assembly code.
01:37:29 And then I started to realize that there
01:37:33 were some properties of P code that
01:37:36 made that really easy, some properties that
01:37:39 made it really hard.
01:37:40 So I ended up writing this thing that
01:37:42 translated from P code on the Three Rivers PERCs
01:37:49 into assembly code on the VAX.
01:37:53 And I actually got higher quality code than the C compiler.
01:38:00 And so everything just got really fast.
01:38:03 It was really easy.
01:38:04 It was like, wow, I thought that was a sleazy hack
01:38:08 because I was lazy.
01:38:10 And in actual fact, it worked really well.
01:38:13 And I tried to convince people that that was maybe
01:38:17 a good thesis topic.
01:38:18 And nobody was, it was like, nah.
01:38:23 Really?
01:38:23 That’s, I mean, it’s kind of a brilliant idea, right?
01:38:29 Or maybe you didn’t have the, you
01:38:31 weren’t able to articulate the big picture of it.
01:38:34 Yeah.
01:38:34 And I think that was a key part.
01:38:39 But so then clock comes forward a few years.
01:38:44 And it’s like, we’ve got to be able to,
01:38:48 if they want to be able to switch
01:38:50 from this weird microprocessor to that weird and totally
01:38:55 different microprocessor, how do you do that?
01:38:58 And I kind of went, oh, maybe by doing something kind of
01:39:04 in the space of Pascal P code, I could do multiple translations
01:39:12 to multiple translators.
01:39:15 And I spent some time thinking about that
01:39:17 and thinking about what worked and what didn’t work
01:39:19 when I did the P code to Vax translator.
01:39:25 And I talked to some of the folks
01:39:29 who were involved in Smalltalk because Smalltalk also
01:39:31 did a bytecode.
01:39:34 And then I kind of went, yeah, I want to do that.
01:39:41 Because that actually, and it had the other advantage
01:39:44 that you could either interpret it or compile it.
01:39:49 And interpreters are usually easier to do,
01:39:55 but not as fast as a compiler.
01:40:00 So I figured, good, I can be lazy again.
01:40:06 Sometimes I think that most of my good ideas
01:40:08 are driven by laziness.
01:40:12 And often I find that some of people’s stupidest ideas
01:40:15 are because they’re insufficiently lazy.
01:40:21 They just want to build something really complicated.
01:40:23 And it’s like, it doesn’t need to be that complicated.
01:40:26 Yeah, and so that’s how that came out.
01:40:30 But that also turned into almost a religious position
01:40:39 on my part, which got me in several other fights.
01:40:44 So one of the things that was a real difference
01:40:49 was the way that arithmetic worked.
01:40:51 And once upon a time, it wasn’t always just
01:40:59 two’s complement arithmetic.
01:41:01 There were some machines that had one’s complement
01:41:03 arithmetic, which was like almost anything built by CDC.
01:41:08 And occasionally, there were machines
01:41:10 that were decimal arithmetic.
01:41:13 And I was like, this is crazy.
01:41:17 Pretty much two’s complement integer arithmetic has one.
01:41:22 So just do that.
01:41:28 One of the other places where there was a lot of variability
01:41:31 was in the way that floating point behaved.
01:41:36 And that was causing people throughout the software
01:41:40 industry much pain because you couldn’t
01:41:44 do a numerical computing library that
01:41:47 would work on CDC and then have it work on an IBM machine
01:41:50 and work on a DEC machine.
01:41:54 And as a part of that whole struggle,
01:41:57 there had been this big body of work on floating point
01:42:03 standards.
01:42:05 And this thing emerged that came to be called IEEE 754,
01:42:11 which is the floating point standard that pretty much
01:42:14 has taken over the entire universe.
01:42:20 And at the time I was doing Java,
01:42:21 it had pretty much completed taking over the universe.
01:42:25 There were still a few pockets of holdouts,
01:42:28 but I was like, it’s important to be
01:42:32 able to say what two plus two means.
01:42:37 And so I went that.
01:42:42 And one of the ways that I got into fights with people
01:42:46 was that there were a few machines that did not
01:42:50 implement IEEE 754 correctly.
01:42:55 Well, of course, that’s all short term kind of fights.
01:42:58 I think in the long term, I think this vision is one out.
01:43:03 Yeah, and I think it’s worked out over time.
01:43:06 I mean, the biggest fights were with Intel
01:43:10 because they had done some strange things with rounding.
01:43:15 They’d done some strange things with their transcendental
01:43:17 functions, which turned into a mushroom cloud of weirdness.
01:43:24 And in the name of optimization, but from the perspective
01:43:29 of the developer, that’s not good.
01:43:32 Well, their issues with transcendental functions
01:43:34 were just stupid.
01:43:35 OK, so that’s not even a trade off.
01:43:39 That’s just absolutely.
01:43:40 Yeah, they were doing range reduction for sine and cosine
01:43:45 using a slightly wrong value for pi.
01:43:48 Got it.
01:43:49 We’ve got 10 minutes.
01:43:50 So in the interest of time, two questions.
01:43:53 So one about Android and one about life.
01:43:58 So one, I mean, we could talk for many more hours.
01:44:02 I hope eventually we might talk again.
01:44:05 But I got to ask you about Android and the use of Java
01:44:09 there because it’s one of the many places where Java just
01:44:14 has a huge impact on this world.
01:44:16 Just on your opinion, is there things
01:44:19 that make you happy about the way Java
01:44:24 is used in the Android world?
01:44:25 And are there things that you wish were different?
01:44:29 I don’t know how to do a short answer to that.
01:44:32 But I have to do a short answer to that.
01:44:34 So I’m happy that they did it.
01:44:38 Java had been running on cell phones
01:44:40 at that time for quite a few years.
01:44:42 And it worked really, really well.
01:44:46 There were things about how they did it.
01:44:49 And in particular, various ways that they kind of violated
01:44:59 all kinds of contracts.
01:45:00 The guy who led it, Andy Rubin, he crossed a lot of lines.
01:45:06 There’s some lines crossed.
01:45:07 Yeah, lines were crossed that have since mushroomed
01:45:11 into giant court cases.
01:45:16 And they didn’t need to do that.
01:45:19 And in fact, it would have been so much cheaper for them
01:45:23 to not cross lines.
01:45:25 I mean, I suppose they didn’t anticipate
01:45:28 the success of this whole endeavor.
01:45:34 Or do you think at that time it was already clear
01:45:36 that this is going to blow up?
01:45:38 I guess I sort of came to believe
01:45:41 that it didn’t matter what Andy did,
01:45:44 it was going to blow up.
01:45:50 I kind of started to think of him as a manufacturer of bombs.
01:45:58 Yeah, some of the best things in this world
01:46:01 come about through a little bit of explosive.
01:46:05 Well, and some of the worst.
01:46:07 And some of the worst, beautifully put.
01:46:11 And like you said, I mean, does that
01:46:13 make you proud that Java is in millions?
01:46:19 I mean, it could be billions of devices.
01:46:21 Yeah, well, I mean, it was in billions of phones
01:46:24 before Android came along.
01:46:26 And I’m just as proud of the way that the smart card standards
01:46:37 adopted Java.
01:46:39 And everybody involved in that did a really good job.
01:46:43 And that’s billions and billions.
01:46:48 That’s crazy.
01:46:49 The SIM cards, the SIM cards in your pocket.
01:46:54 I’ve been outside of that world for a decade.
01:46:56 So I don’t know how that has evolved.
01:46:59 But it’s just been crazy.
01:47:04 So on that topic, let me ask, again,
01:47:07 there’s a million technical things we could talk about.
01:47:12 But let me ask the absurd, the old philosophical question
01:47:16 about life.
01:47:20 What do you hope when you look back at your life
01:47:23 and the people talk about you, write about you 500 years
01:47:28 from now, what do you hope your legacy is?
01:47:34 People not being afraid to take a leap of faith.
01:47:39 I mean, I’ve got this kind of weird history
01:47:44 of doing weird stuff.
01:47:45 And it worked out pretty damn well.
01:47:49 It worked out.
01:47:50 And I think some of the weirder stuff that I’ve done
01:47:55 has been the coolest.
01:47:56 And some of it crashed and burned.
01:47:59 And I think well over half of the stuff that I’ve done
01:48:05 has crashed and burned, which has occasionally
01:48:09 been really annoying.
01:48:12 But still, you kept doing it.
01:48:13 But yeah.
01:48:15 Yeah.
01:48:15 Yeah.
01:48:16 And even when things crash and burn,
01:48:19 you at least learn something from it.
01:48:22 By way of advice, people, developers, engineers,
01:48:27 scientists, or just people who are young, to look up to you,
01:48:32 what advice would you give them how to approach their life?
01:48:37 Don’t be afraid of risk.
01:48:39 It’s OK to do stupid things once.
01:48:41 Maybe a couple of times you get a pass on the first time
01:48:50 or two that you do something stupid.
01:48:53 The third or fourth time, yeah, not so much.
01:48:59 But also, I don’t know why, but really early on,
01:49:07 I started to think about ethical choices in my life.
01:49:14 And because I’m a big science fiction fan,
01:49:20 I got to thinking about just about every technical decision
01:49:25 I make in terms of, are you building
01:49:30 Blade Runner or Star Trek?
01:49:33 Which one’s better?
01:49:34 Which future would you rather live in?
01:49:38 So what’s the answer to that?
01:49:40 Well, I would sure rather live in the universe of Star Trek.
01:49:44 Star Trek, yeah.
01:49:46 That opens up a whole topic about AI,
01:49:48 but that’s a really interesting idea.
01:49:53 So your favorite AI system would be data from Star Trek.
01:49:58 And my least favorite would easily be Skynet.
01:50:00 Yeah.
01:50:02 Beautifully put.
01:50:03 I don’t think there’s a better way to end it, James.
01:50:05 I can’t say enough how much of an honor
01:50:08 it is to meet you, to talk to you.
01:50:09 Thanks so much for wasting your time with me today.
01:50:12 Not a waste at all.
01:50:13 Thanks, James.
01:50:14 All right, thanks.
01:50:16 Thanks for listening to this conversation with James
01:50:18 Gosling, and thank you to our sponsors, Public Goods,
01:50:21 BetterHelp, and ExpressVPN.
01:50:24 Please check out these sponsors in the description
01:50:26 to get a discount and to support this podcast.
01:50:30 If you enjoy this thing, subscribe on YouTube,
01:50:32 review it with five stars on Apple Podcast,
01:50:34 follow on Spotify, support on Patreon,
01:50:37 or connect with me on Twitter at Lex Friedman.
01:50:40 And now, let me leave you with some words from James Gosling.
01:50:44 One of the toughest things about life is making choices.
01:50:49 Thank you for listening, and hope to see you next time.