James Gosling: Java, JVM, Emacs, and the Early Days of Computing #126

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.