Brendan Eich: JavaScript, Firefox, Mozilla, and Brave #160

Transcript

00:00:00 The following is a conversation with Brendan Eich,

00:00:02 creator of the JavaScript programming language,

00:00:05 cofounder of Mozilla, which created the Firefox browser,

00:00:09 and now cofounder and CEO of Brave Software,

00:00:12 which has created the Brave browser.

00:00:15 Each of these are revolutionary technologies.

00:00:18 JavaScript is one of the most widely used

00:00:21 and impactful programming languages in the world.

00:00:24 Firefox pioneered many browser ideas that we love today

00:00:29 or even take for granted today,

00:00:31 and Brave is looking to revolutionize

00:00:33 not only the browser, but content creation online

00:00:36 and the nature of the internet

00:00:38 to make it fundamentally about respecting

00:00:40 people’s control over their data.

00:00:43 Quick mention of our sponsors.

00:00:45 The Jordan Harbinger Show,

00:00:47 Sun Basket Meal Delivery Service,

00:00:49 Better Help Online Therapy,

00:00:51 and AidSleep Self Cleaning Mattress.

00:00:53 Click the sponsor links to get a discount

00:00:56 and to support this podcast.

00:00:58 As a side note, let me say that there’s a tension

00:01:00 between theory and engineering

00:01:03 that I’ve been thinking a lot about.

00:01:05 I tweeted something like,

00:01:06 “‘Good execution is more important than a good idea,

00:01:09 “‘but one helps the other.’”

00:01:11 I think the wording of that sucks,

00:01:13 but what I mean is a good idea is a must,

00:01:16 but in my experience, good ideas are in abundance.

00:01:20 Good execution, on the other hand, is rare.

00:01:23 I think some mix of good timing, good idea,

00:01:26 and good execution is essential.

00:01:28 Getting that mix right is tough,

00:01:29 and Brendan, somehow, multiple times in his career,

00:01:32 did just that.

00:01:34 I’m starting to believe it’s more art than science,

00:01:36 like most interesting things in life.

00:01:39 If you enjoy this thing, subscribe on YouTube,

00:01:41 review an Apple podcast, follow on Spotify,

00:01:44 support on Patreon, or connect with me on Twitter

00:01:47 at Lex Friedman.

00:01:48 And now, here’s my conversation with Brendan Eich.

00:01:53 When did you first fall in love with programming?

00:01:56 I didn’t program a lot when I was in high school,

00:01:58 but I had a friend who had a Commodore PET,

00:02:01 and after we saw Star Wars, he said,

00:02:03 “‘Hey, let’s make a basic program

00:02:05 “’that does the Death Star Trench run.’”

00:02:08 And it was just simple 2D graphics,

00:02:10 and I didn’t know what I was doing,

00:02:11 so I just helped him out on the math and stuff like that.

00:02:14 I was a math and science kid.

00:02:16 I was really into the HP calculators of the early mid-’70s.

00:02:20 These were the RPN.

00:02:21 They were really strongly built,

00:02:23 and as Arik Goldfinger said of gold, divinely heavy.

00:02:27 There’s probably some gold in them, too, gold metalization.

00:02:29 But they were awesome calculators,

00:02:31 and they had all the scientific functions,

00:02:33 so I was really into that.

00:02:35 So I aimed toward physics.

00:02:38 I was a little late for the, I think,

00:02:40 the 20th century golden age,

00:02:42 and I read a lot of science fiction,

00:02:43 so I was like, yeah, it’s on the hyperdrives

00:02:45 and warp drives, and physics was not gonna get there quickly,

00:02:50 and I started hacking on computers

00:02:52 while I was studying physics as an undergraduate

00:02:55 at Santa Clara University,

00:02:56 and I dodged the Fortran bullet

00:03:00 because I was in the science department

00:03:02 instead of the engineering department,

00:03:03 where they still did Fortran card decks.

00:03:05 I think they had an auto collator.

00:03:07 But we were using Pascal,

00:03:09 and I got one of the first portable C Compilers ports

00:03:15 to the DEC minicomputers we were using,

00:03:17 and I fell in love with programming

00:03:19 just based on procedural abstraction, Pascal,

00:03:25 just what now would be considered old school,

00:03:28 like structured programming from the 70s.

00:03:31 Niklaus Wirth, the creator of Pascal,

00:03:33 was a good writer and a good pedagogue, right?

00:03:36 He always at ETH would do these courses

00:03:38 where it’s like build your own computer,

00:03:40 build your own compiler, build your own operating system.

00:03:42 It was scratch. Yeah, kind of.

00:03:44 And I know some people who were grad students under him

00:03:47 and said he would torture the students

00:03:50 with things like this custom email system

00:03:52 that had 25 word limit and things like that.

00:03:56 I unfortunately dodged both the Pascal

00:03:59 and the Fortran bullets.

00:04:00 Could you maybe linger on the Pascal?

00:04:04 What kind of programming language was it?

00:04:06 What is it reminiscent of today?

00:04:08 Because it sounds like it may have had an impact

00:04:11 on your own trajectory.

00:04:12 Yeah, it was in the ALGOL family,

00:04:14 and ALGOL was the big successful language design

00:04:20 and compiler project in the 60s.

00:04:23 It had a successor called ALGOL 68,

00:04:24 which was ambitious but not as successful.

00:04:27 But Pascal was kind of wordy procedures

00:04:31 and functions language.

00:04:32 It distinguished between functions

00:04:33 which return a value and procedures which don’t,

00:04:36 which just compute.

00:04:37 And you could say that whole ALGOL family went into ADA.

00:04:42 Pascal had a second life thanks to Borland

00:04:44 with Turbo Pascal, which was hugely successful.

00:04:48 I think in large part due to Anders Helberg,

00:04:51 who then went to Microsoft and did C Sharp and done that

00:04:53 with his team there and has done really well

00:04:55 doing TypeScript, type JavaScript.

00:04:58 So yeah, there’s a lineage here.

00:05:00 But I was also interested in C and Unix

00:05:03 by the time I was an undergrad

00:05:05 because people were bringing Unix up

00:05:07 on all sorts of hardware.

00:05:09 I had some friends who were doing

00:05:10 their own wirewrapped computers, 6820 maybe.

00:05:14 And I was wirewrapping for my engineering course,

00:05:19 6809 or something simpler, building a computer on a board.

00:05:22 And I wanted to build a more ambitious one

00:05:24 and port Unix to it, but I picked the wrong processor.

00:05:26 I picked the National Semiconductor NS16032,

00:05:30 which was this amazing, you know,

00:05:33 CISC, complex instruction set computer,

00:05:37 and not the reduced instruction set computers

00:05:39 that were just being contemplated into the mid eighties.

00:05:43 And RISC ultimately went out.

00:05:45 RISC won in some ways, it dissolved into,

00:05:48 you have both now, you have these super scalar architectures

00:05:50 where like Intel has kept probably too much

00:05:54 backward compatibility at the instruction level,

00:05:56 but that’s just, there’s a front end that parses that

00:05:58 into these, you know, these wide internal instructions.

00:06:01 So, you know, the very long instruction word research

00:06:04 that was also interesting at the time

00:06:06 kind of became the micro architecture

00:06:08 inside the backward compatible Intel.

00:06:11 But I picked a National Semi chip

00:06:13 and it never got made successfully.

00:06:14 It was full of bugs and I never could have brought it up.

00:06:17 But I went on out of physics after three years

00:06:21 into math, computer science.

00:06:23 And like I said, I did it because I saw,

00:06:25 I was being sort of childlike and naive about physics.

00:06:28 And I thought, meanwhile, the Valley is go go for computers.

00:06:32 The Apple II, right?

00:06:33 The PC, the Intel 8086, 8088 based PC,

00:06:40 the IBM, you know, gave Microsoft the future for,

00:06:45 you know, somewhat fishy deal.

00:06:46 So it was wide open in the computing space,

00:06:48 but in physics, you were as optimistic about physics as?

00:06:52 No, I mean, I was one of three brothers

00:06:54 who were all in the same grade.

00:06:56 I have a twin and a younger brother who skipped second grade

00:07:00 and was with us the whole time after that.

00:07:02 And, you know, he went on,

00:07:04 he actually studied under Kip Thorne at Caltech.

00:07:07 But he also didn’t, he ended up in software.

00:07:09 He didn’t talk about physics stuff.

00:07:12 Does it make you sad that theoretical physics,

00:07:16 even with string theory,

00:07:17 hasn’t really had any foundational breakthroughs

00:07:20 in the latter part of the 20th century?

00:07:23 Yeah, in fact, I’d say the problem is theory

00:07:25 over experiment.

00:07:27 I would say, you know, we need more Aristotle

00:07:29 and less Plato.

00:07:31 You know, mathematics is not all physical.

00:07:33 There are lots of mathematics that cannot be realized

00:07:36 as far as I know in this world.

00:07:38 So to understand the world, you need to do experiments.

00:07:41 You need to not just dream up inductive theories

00:07:45 that could have lots of alternative theories

00:07:47 competing with them, with no way to decide between them,

00:07:50 except aesthetics, which is not a good guide in my opinion.

00:07:53 Yeah, I don’t know if you are friends

00:07:54 or have a relationship with Elon Musk.

00:07:56 Where’s the, in terms of like what you would love to see

00:08:00 our society investing in, building up,

00:08:02 is it closer to Elon or is it closer to Feynman

00:08:07 and Einstein and those?

00:08:09 Well, those gentlemen are no longer with us

00:08:10 and I think that’s noticed.

00:08:12 So like I said, the real glory days of physics,

00:08:14 the famous pictures from Germany before the second war

00:08:17 were just a fantastic assembly of brains,

00:08:21 Schrodinger and Einstein.

00:08:23 And physics, I think, took a wrong turn

00:08:26 that maybe all of, I would say, Western science

00:08:30 took in going for models over reality, right?

00:08:33 You see this in all sorts of fields.

00:08:35 Now, we can build models that are very predictive

00:08:38 and generative and then we build actual devices

00:08:40 or semiconductors, things like that.

00:08:42 That’s good, I’m not dismissing that.

00:08:44 We need good models, we need to experiment

00:08:46 and prove them and test them.

00:08:49 But the problem I’ve seen in physics,

00:08:51 which you see certainly in economics, the dismal science,

00:08:55 and you see surprisingly in other so called hard sciences

00:08:59 is models that don’t really have to be

00:09:04 tested against reality.

00:09:05 They can instead become policy tools

00:09:07 or they can become, like I said,

00:09:09 one of a large family of alternate theories

00:09:12 that could be as predictive

00:09:14 but nobody’s doing the winnowing out.

00:09:17 That’s such an interesting tension in society.

00:09:18 You see this in even the software scientists

00:09:21 which have a deep love for psychology.

00:09:24 You see this in epidemiology, not with the virus.

00:09:27 Absolutely.

00:09:28 There’s this tension of how much of the world

00:09:31 can we understand through just a beautifully fit model?

00:09:35 And then at the same time, my main work

00:09:37 is in machine learning where it’s like

00:09:41 there is no provable thing usually.

00:09:44 It’s all about just getting the right data set

00:09:47 and getting tricks and so on.

00:09:49 And there’s this tension even in my own soul

00:09:51 of I grew up on theoretical computer science.

00:09:55 I loved approximation algorithms,

00:09:58 all of that different complexity classes,

00:10:01 just those little puzzles.

00:10:03 I mean, I don’t know, to you as somebody

00:10:06 who was in math and computer science

00:10:08 and then ended up going into places

00:10:11 where you engineer some of the most impactful things

00:10:13 in this world, do you see the P versus NP,

00:10:18 all that whole space is interesting at all?

00:10:21 Yeah, it’s not that useful in practice.

00:10:24 People are using it with sort of crypto analysis

00:10:27 or asymptotic arguments about can we have

00:10:31 a quantum resistant crypto algorithm, things like that,

00:10:35 which may not be practical, right?

00:10:36 If you follow Mikhail Diakonov or Gil Kalai,

00:10:40 there are big questions about how quantum computing

00:10:43 will scale up, how practical it will be.

00:10:46 Is that something that you think about quantum computing?

00:10:49 Not except for spare time.

00:10:51 Like you said, I’m not using this kind of computer science

00:10:53 in practice because almost everything now is engineering

00:10:57 and finding ways to get computers

00:11:02 to be more useful for people,

00:11:03 which goes from design problems,

00:11:06 which are really kind of an art.

00:11:07 Like you said, anything you can’t automate is an art.

00:11:09 Well, we can have machine learning compose music

00:11:13 and it can imitate, you can train it,

00:11:14 and it can sound kind of decent,

00:11:16 but maybe lacking that je ne sais quoi.

00:11:18 But user interface still, I think, requires human art.

00:11:23 So speaking of things that didn’t follow

00:11:26 a perfect theory and model, JavaScript,

00:11:30 so there’s two things.

00:11:31 One, it had an impact on the world at a huge scale,

00:11:34 obviously, and it also still is one of probably

00:11:38 the most popular programming language in the world.

00:11:41 So can we go back to the origin story?

00:11:45 Can you tell the story of how JavaScript was created?

00:11:47 Yeah, I was at Silicon Graphics

00:11:49 after graduate school for seven years,

00:11:53 and it got to be big and successful

00:11:54 and divisionalized and political,

00:11:56 and I thought kind of boring.

00:12:00 And a friend who’d been there went to one of the last

00:12:03 of the super companies, the super startups

00:12:06 in the early 90s.

00:12:07 There were several.

00:12:08 I suppose General Magic was a little after that

00:12:10 around the same time.

00:12:11 But Micro Unity was that company that I went to,

00:12:14 and it was because my friend Jeff Weinstein

00:12:16 had gone there from Silicon Graphics.

00:12:18 He recruited me, and Micro Unity was doing everything.

00:12:21 So this was like the ultimate sort of pretend grad school.

00:12:26 It was doing a new fab, new semiconductor process.

00:12:29 It was doing new analog and digital circuits

00:12:32 on the same very large but not wafer scale chip.

00:12:36 Originally, it was five centimeters on a side.

00:12:40 It was really hot too, so I needed a water cooler.

00:12:43 It was a Craykiller, and then they shrunk it,

00:12:46 and they tried to do a home sort of media processor

00:12:49 that was essentially a barrel processor.

00:12:51 But you could think of trying to do all the things

00:12:55 that we now see in modern architectures

00:12:58 with short vector instructions

00:13:00 and sort of wide instructions or multiple issue,

00:13:05 and doing a lot of the stuff in software

00:13:07 because the second iteration, the set top box,

00:13:10 was really for avoiding the cost to the cable company

00:13:13 of rolling the trucks out

00:13:14 to replace your garbage General Atlantic set top box

00:13:17 with a totally newer, less garbagey one.

00:13:21 So if you could have software gradable set top boxes,

00:13:23 the cable companies thought they could save a lot of money

00:13:26 and add features.

00:13:27 Is this assembly, or which level of the software?

00:13:30 It was like, we were writing in, we were using GCC.

00:13:33 We were writing C++ and C.

00:13:36 Somebody I worked with there, really very smart guy,

00:13:39 hired from a sort of Wall Street

00:13:41 hotshot programming consultancy,

00:13:45 did his own hardware design as well as software.

00:13:47 And we were working on how to make

00:13:49 not only a short vector units,

00:13:50 but general bit shufflers and permuters.

00:13:53 So you could do things like crypto algorithms efficiently,

00:13:57 and you could do demodulation of the cable,

00:14:01 complex quadrature amplitude modulated signal.

00:14:05 So you’re basically taking A to D converters,

00:14:07 dumping things in buffers,

00:14:09 and then doing the rest in software.

00:14:10 All the framing and the Reed Solomon and Viterbi

00:14:13 and all that error correction.

00:14:14 So that was really great learning experience,

00:14:16 but it was not gonna work.

00:14:16 It was doing too many risky things at once, right?

00:14:18 If you, as Jim Clark said to me,

00:14:20 when I hopped to Netscape after three years at MicroUnity,

00:14:23 he said, oh yeah, you do 10 things each,

00:14:26 one in 10 odds, it’s gonna be one in 10 billion, right?

00:14:29 The multiplication principle.

00:14:31 So, Netscape was already a rocket,

00:14:33 and I passed the chance to go there in 1994.

00:14:36 I knew the founders because I worked at SGI,

00:14:39 Clark’s company.

00:14:40 Could you pause for a second in Netscape?

00:14:42 When was the launch of this rocket?

00:14:44 94.

00:14:45 94 was the launch of Netscape?

00:14:47 And I went there in early 95 in April.

00:14:49 Okay, so you said you missed the launch.

00:14:52 Well, I missed the first floor employment opportunity,

00:14:55 but the IPO was August 1995, so I was there for that.

00:14:58 How obvious was it that Netscape was like world changing?

00:15:02 What was the layout?

00:15:04 Was Netscape one of the first big browsers?

00:15:06 Yes, so when I was at MicroUnity still in 93,

00:15:09 we saw a browser called Mosaic.

00:15:11 And up till then, we’d used email and we’d used Usenet,

00:15:14 the NNTP protocol, we’d use news readers, we used FTP,

00:15:18 we used all these old internet protocols,

00:15:20 all relying on the DNS and TCP IP and UDP for that matter.

00:15:25 When I was at Silicon Graphics,

00:15:26 we brought up the whole stack, right?

00:15:28 We had to discover how to find the ethernet addresses

00:15:31 on your network and then find IP addresses for them,

00:15:34 ARP protocol, all that stuff.

00:15:35 And it was great because nobody knew in the 80s

00:15:38 what was gonna win, all the proprietary stacks

00:15:41 like IBM, SNA and DeckNet and all these other protocols

00:15:44 were saying, we’re gonna do it

00:15:46 or it’s gonna be heterogeneous future.

00:15:48 And instead it was Berkeley Unix and the TCP IP stack

00:15:52 that dated back to the ARPANET that won.

00:15:54 And I think we knew it, we all knew it at SGI,

00:15:57 but the salespeople didn’t.

00:15:59 And so they kept trying to get multiple network stacks

00:16:02 interoperating, but in the end it won.

00:16:04 And so that was the internet and it was email and texty

00:16:08 and it was used and very texty.

00:16:09 And then Tim Berners Lee did his thing,

00:16:12 but I don’t think I was paying attention.

00:16:14 And I think the date when he first did it

00:16:16 or when he wrote the famous emails and pushed back to 89,

00:16:19 but I noticed a mosaic in 93 because one of the things

00:16:23 that Mark Andreessen and Eric Bina did at NCSA

00:16:26 was they innovated on the early HTML standard.

00:16:31 They in particular Mark sent this email saying,

00:16:33 hey everybody, we think you should be able

00:16:34 to put an image in a page.

00:16:36 And you know when he sent that Eric Bina had already

00:16:38 written the code.

00:16:39 And I talked to Tim Berners Lee more recently

00:16:41 just a few years ago and he was like,

00:16:43 oh, we had another way of doing it and it didn’t work out

00:16:45 because Mark shipped his in mosaic.

00:16:48 And this convinced me of several things.

00:16:50 One, the internet meant there was a huge first mover

00:16:53 advantage and being fast, getting on first mattered a lot.

00:16:58 And so Richard Gabriel of scheme and poetry fame

00:17:01 has written about this, the famous.

00:17:03 What’s poetry? Well, he’s a poet.

00:17:06 Oh, actual poetry.

00:17:07 Is he talking about some kind of something?

00:17:08 No, no.

00:17:09 I mean, he’s the founder of Lucid,

00:17:10 which is where Jamie Zawinski worked before Netscape.

00:17:12 And Lucid was doing compilers and Lucid Emacs,

00:17:16 which was a fork of Emacs,

00:17:18 famously Jamie fighting against Richard Stallman, Stalmax.

00:17:22 And so Richard Gabriel, very, very brainy computer guy,

00:17:25 but also a poet, but he wrote a nice essay

00:17:27 that gets abused all the time.

00:17:28 In fact, Jamie’s put a kind of warning in front

00:17:30 of his version of it on his site,

00:17:32 JWC.org called Worse is Better.

00:17:34 And this is about survival advantage of software

00:17:38 in the network world, in my opinion.

00:17:39 It’s about Unix.

00:17:41 It started out being framed as Unix and Lisp,

00:17:43 good news, bad news, because all the Lisp people,

00:17:46 the MIT people were like, oh, you know,

00:17:48 the crown jewel scheme, this Faberge egg or Common Lisp,

00:17:52 this giant cathedral, of course we’re going to win.

00:17:54 This is civilization.

00:17:55 And those, you know, those farmers in New Jersey

00:17:58 to borrow from the Sopranos, those picks down at Bell Labs,

00:18:01 they’re just, you know, there’s nothing sound there.

00:18:03 It’s all hacking.

00:18:05 Well, guess what won?

00:18:06 Wow, so you’re saying this is a fundamental,

00:18:09 like principle of the internet is moving fast wins.

00:18:14 You could say in almost any network system,

00:18:16 like in biological evolution,

00:18:18 you see successful alleles sweep populations

00:18:20 and they don’t always have, you know,

00:18:23 they aren’t free of flaws.

00:18:24 They’re heterozygous advantage, right?

00:18:26 You can get both parents give you the gene variant

00:18:30 and you get sickle cell anemia, right?

00:18:31 But if one of them does, you’re more resistant to malaria.

00:18:34 And so this isn’t a beautiful process,

00:18:38 except at large scale.

00:18:39 And then you realize that because it moves fast

00:18:41 and can adapt, it can win.

00:18:44 And people still struggle with this.

00:18:46 I used to struggle with this

00:18:47 because JavaScript was done in such a hurry

00:18:50 and the force of web compatibility meant

00:18:52 early mistakes couldn’t be fixed.

00:18:55 And even the standards process injected new mistakes,

00:18:57 as it will.

00:18:59 But often standards bodies go back

00:19:00 and making compatible changes.

00:19:01 You can’t do that with the web.

00:19:03 It’s more like, again, like biology,

00:19:05 you preserve what still works.

00:19:07 You don’t want to break ATP metabolism or whatever.

00:19:10 So you have to kind of resign yourself to the reality

00:19:15 of worse is better being enshrined

00:19:20 in actual design points you might not like.

00:19:23 And that happened with JavaScript and I’m way over it,

00:19:25 but it also, I think was a huge advantage.

00:19:28 That’s why JavaScript has kind of swept

00:19:31 a lot of programming domains.

00:19:33 People will say, oh, it’s not because of merit.

00:19:34 Well, you’re right.

00:19:35 But we also improved it over time in the standards body.

00:19:37 I spent 20 years doing that.

00:19:39 And you don’t get that choice.

00:19:41 It’s like, I’m not saying that that was the best language.

00:19:45 I’m just saying that was the right time to do it.

00:19:47 And I like to say the alternative was not to do it.

00:19:50 I could have told Netscape, I can’t do this.

00:19:52 It’s too rushed.

00:19:53 And it would have been visual basic script.

00:19:55 And it would have been bad.

00:19:57 So that’s a good way to present the alternative.

00:19:59 But so it was a Netscape and you have written it

00:20:03 in how many days and why was it only that many days?

00:20:05 And what was the goal and the underlying principles

00:20:08 in your mind at the time?

00:20:09 So the whole, I’m sort of describing worse is better

00:20:11 in a frenetic way because it fit the model of Netscape.

00:20:14 When it was known that Jim Clark

00:20:18 and Marc Inves were founding Netscape

00:20:20 and they did the first release in 1994,

00:20:22 that browser took over from Mosaic.

00:20:24 In fact, that’s why Mozilla is called that.

00:20:27 It’s the Mosaic killer.

00:20:28 It’s like the giant monster that kills Mosaic.

00:20:30 That’s awesome.

00:20:30 And they knew they could, it wasn’t that, again,

00:20:34 it’s not like you’re doing advanced scientific research

00:20:36 that is changing the world.

00:20:37 You’re more like taking down the last iteration

00:20:41 on the browser, Marc did, which had images

00:20:43 and other importances before he stopped working on it.

00:20:45 And you’re making Netscape the new thing that has images,

00:20:49 plugins, which was the way to do video back in the day.

00:20:51 It had something that’s kind of died now for tiled windows

00:20:54 called frames and frame sets.

00:20:56 HTML tables, that was new.

00:20:59 Eric Bina did tables in Netscape 1.1.

00:21:01 So when I got there, they were heading toward IPO.

00:21:05 Clark wanted the IPO early, I think his instinct was right.

00:21:07 And that kicked off the whole dot com era, right?

00:21:10 There was a recession in the US in 91.

00:21:13 You can see old law and order reruns

00:21:15 where they talk about the recession

00:21:16 and how hard it’s hitting New Yorkers.

00:21:18 And after that, Greenspan really goosed things

00:21:20 at the Federal Reserve and technology had been sort of

00:21:23 fermenting in a way that came together with the internet.

00:21:26 And Netscape made it possible to do pets.com,

00:21:30 to do eBay, to get people to recognize a URL on a billboard

00:21:34 and then type it in when they get home.

00:21:36 And that was huge.

00:21:38 That was so fast moving a rocket that Marc

00:21:42 and the engineering team there thought,

00:21:45 we need to make this a programmable browser,

00:21:47 not just a document viewer, not just a video.

00:21:50 It was all HTML with images and tables and also,

00:21:54 like you said, frames.

00:21:55 There was no dynamic element at all.

00:21:57 Yeah, the most dynamism we get was from a plugin,

00:21:59 which there are a few of them then.

00:22:01 Flash didn’t exist at that point.

00:22:03 It was, I think.

00:22:05 Java Applets yet or no?

00:22:07 Well, that’s the thing we did to deal with Sun.

00:22:09 In fact, I was recruited to go do Scheme in the browser.

00:22:12 Remember Guy Steele and Gerald Sussman’s

00:22:14 beautiful Lisp variant?

00:22:16 I was gonna do it in the browser

00:22:17 because my friends from SG, I thought,

00:22:19 hey, we like Scheme, you like Scheme.

00:22:20 And I’m like, I hardly ever use Scheme.

00:22:22 It’s not really used in industry,

00:22:23 except in sort of silos, but I like it.

00:22:27 Okay, I’ll come do Scheme in the browser.

00:22:29 I have a slide from my 2017 talk

00:22:32 where I have Bruce Willis crawling through the duct

00:22:34 in Die Hard.

00:22:35 He’s like, come out to the coast, have a lot of fun.

00:22:38 Come on, do Scheme in the browser.

00:22:40 But when I got there, there was no Scheme in the browser

00:22:42 because they’d started a deal with Sun Microsystems.

00:22:45 And my best contact there was Bill Joy,

00:22:47 who I admired as a Berkeley Unix founder.

00:22:48 And, you know, Sun founder.

00:22:50 And Bill got the idea of making the browser programmable too.

00:22:53 And so the main idea was to put the Java VM,

00:22:57 which at that point was not really easy to embed,

00:23:00 into Netscape, including the Netscape version on Windows

00:23:04 that was still most popular,

00:23:05 which was the 16 bit Windows 3.1, which was going away.

00:23:09 Microsoft was coming out with Windows 95

00:23:11 and everyone was afraid they were gonna do

00:23:13 Internet Explorer, I guess, two at that point,

00:23:16 three the next year.

00:23:17 They already bought or invested in somehow Spyglass,

00:23:20 this other company that shot out from NCSA

00:23:24 at University of Illinois.

00:23:26 And in fact, Microsoft had tried to buy Netscape

00:23:29 in late 94, before I got there.

00:23:31 And I heard about this later.

00:23:32 I heard they offered way too little money.

00:23:35 And so, you know, Jim Barksdale and Jim Clark said,

00:23:37 get out of here, you know, pound sand.

00:23:39 But then they realized, oh, this is going to hurt us

00:23:43 because now they’re gonna copy us.

00:23:45 Didn’t happen right away.

00:23:46 I’m not sure when Gates internet title wave memo

00:23:49 was written.

00:23:50 That’s the famous memo he wrote when Bill Gates realized

00:23:53 that Microsoft was going down this old copy AOL path

00:23:56 or copy CompuServe path, a project called Blackbird,

00:24:01 presumably after the SR71, I don’t know.

00:24:03 But they were gonna make a, you know,

00:24:04 dial up service with a custom content language stack

00:24:07 and custom rendering.

00:24:09 It wasn’t the web.

00:24:10 You know, they could have content partners.

00:24:13 They have a lot of money,

00:24:14 but it still wasn’t to scale the web.

00:24:15 It wasn’t gonna be compelling.

00:24:16 And Gates realized this,

00:24:18 and he turned the company on a dime

00:24:20 and they couldn’t buy Netscape.

00:24:22 Again, I’m not sure the timing,

00:24:23 so they decided to copy it.

00:24:24 And once we realized that everybody inside Netscape

00:24:27 felt even more urgency and more of a frenetic mood.

00:24:30 And so my chance to do scheme disappeared

00:24:33 when the Java deal started brewing.

00:24:35 But there was still a chance to do a companion language

00:24:38 to Java because Java was a compiled,

00:24:41 is a compiled language.

00:24:42 It’s evolved and improved quite a lot since then too,

00:24:44 but it was for sort of serious advanced programmers

00:24:48 that cost a certain salary or hourly rate.

00:24:51 And people observed, Bill Joy observed,

00:24:53 and Mark Andreessen and I observed

00:24:55 that in a mature stack like Microsoft,

00:24:57 you really benefit from having a scripting language

00:25:00 like Visual Basic,

00:25:01 which became Visual Basic script in IE3,

00:25:03 but didn’t take over and kill JavaScript,

00:25:07 that you need two languages.

00:25:08 One is for the component writers

00:25:10 who are higher price and more expert.

00:25:12 And the other is for scripters,

00:25:17 certified public accountants, designers,

00:25:19 graphic designers with some programming inclination,

00:25:21 anybody, amateurs, doesn’t matter.

00:25:23 There’s a much more demotic approach there

00:25:26 for programming the components together,

00:25:28 gluing them together.

00:25:29 Some people say duct tape language, which I don’t really like.

00:25:32 But we saw, Bill Joy and Mark Andreessen and I,

00:25:36 we saw the need for a companion language.

00:25:38 And the gleam in our eye was to call it JavaScript.

00:25:40 I didn’t like it, that was marketing’s plan.

00:25:42 Mark called it Mocha, which I liked.

00:25:45 And Netscape Marketing, I think, didn’t like that.

00:25:47 So they said, oh, there’s some trademark

00:25:48 and some software somewhere that uses Mocha,

00:25:50 so we can’t use that.

00:25:52 And they tried LiveScript in August and that didn’t last.

00:25:54 And then finally we got the trademark license

00:25:56 in December 1995.

00:25:58 But the work I did to prove that it could be done

00:26:01 was important because I came in in April

00:26:05 and even then Netscape was growing so fast

00:26:08 that they couldn’t find an open hiring requisition

00:26:11 in the client team for me.

00:26:12 So they hired me into the server team.

00:26:14 And I worked for a month on server team

00:26:16 on what became HTTP 1.1.

00:26:18 So I was actually, I had done protocol work

00:26:20 at Silicon Graphics with Greg Chesson,

00:26:22 former Bell Labs intern, grad student intern

00:26:25 who knew all the Unix founders.

00:26:27 And Greg was very interested in taking protocols

00:26:30 to the next level with VLSI,

00:26:32 because he thought that CPUs wouldn’t scale up.

00:26:35 He was mistaken in that, unfortunately.

00:26:37 Moore’s law more than kept up.

00:26:39 And you have gigabit ethernet running

00:26:41 with conventional processors.

00:26:42 But I worked on protocols at SGI

00:26:45 as well as Unix kernel hacking and NFS and things like that.

00:26:49 So I came into Netscape to work on the server side

00:26:53 for a month, but I was thinking the whole time,

00:26:55 what should this language be like?

00:26:56 Should it be easy to use?

00:26:58 Might its syntax even be more like natural language

00:27:00 like HyperTalk, which is Bill Atkinson’s language

00:27:04 in HyperCard, if you ever used HyperCard on an early Mac.

00:27:08 And I thought, well, I’d like to do that,

00:27:12 but my management is saying, make it look like Java,

00:27:15 which looks like C from a distance.

00:27:17 What does that mean?

00:27:18 Is it braces?

00:27:19 We’re talking about visually?

00:27:20 Does that mean like, management,

00:27:23 do they understand what they think about?

00:27:24 Marketing didn’t know, but management did.

00:27:26 Like Rick Schell, the VP of engineering, knew.

00:27:29 And we had a plan even that was,

00:27:31 if you have this companion language,

00:27:32 you’re going to glue things together

00:27:34 between Java and JavaScript.

00:27:35 So you’re going to have commerce in memory, in the heap

00:27:38 with data types.

00:27:40 So you’re going to want some of the data types

00:27:41 in Java to reflect in the JavaScript.

00:27:43 You’re going to want the primitive types

00:27:45 that Java unfortunately separated from objects.

00:27:47 So at least some of them, double, let’s call it

00:27:50 in Java’s terms from the C term

00:27:52 for double precision floating point,

00:27:55 or strings or Booleans and objects.

00:28:01 And so right away there was this constraint

00:28:04 that looking like Java meant kind of a C curly brace syntax

00:28:07 but also some of the data types and objects.

00:28:09 Like objects and so on, all that kind of stuff.

00:28:12 Comparison operator.

00:28:13 Garbage collection, all that stuff.

00:28:15 Even the bitwise operators and the shift operators

00:28:17 including the unsigned right shift,

00:28:19 which Java had because it didn’t have

00:28:21 unsigned integer types.

00:28:22 It said, if you want to do unsigned operations,

00:28:24 use an operator.

00:28:25 And that turned out to be important much later.

00:28:27 I’ll tell that story five time.

00:28:28 But JavaScript inherited a set of operators,

00:28:35 the expression grammar, the statement grammar

00:28:37 up to a point from Java.

00:28:39 But I wanted a functional language.

00:28:40 I wanted scheme, a little bit of scheme,

00:28:42 even though it wasn’t as clean as scheme.

00:28:44 I wanted.

00:28:45 So you had a love, sorry to interrupt.

00:28:46 You had a love for scheme and list

00:28:47 but that functional language landscape.

00:28:49 Yes, I wanted first class functions

00:28:51 because I saw the need for callbacks in the browser

00:28:54 where it’s a single threaded program.

00:28:55 All the early browsers were single threaded

00:28:57 and it’s the right model for users.

00:28:58 Most users weren’t ready for mutual exclusion

00:29:00 and threading.

00:29:01 So in a single threaded world,

00:29:03 you cannot block the user interface.

00:29:05 So you have to use a callback and run later.

00:29:07 And without getting too fancy

00:29:09 and trying to capture the continuation

00:29:11 like call CC does in scheme,

00:29:13 I thought I’ll just make it easy to have fun arcs.

00:29:16 First class functions you pass downward

00:29:18 and it can call back, it’d be called back.

00:29:21 And Java didn’t have that at the time.

00:29:23 It took forever to get proper first class functions

00:29:27 or lambdas now into Java, Java seven or eight, I think.

00:29:30 It did have concurrency, right?

00:29:32 Yes.

00:29:32 From the very beginning.

00:29:33 But you were thinking that the JavaScript

00:29:35 in the browser would not have the luxury

00:29:38 of being concurrent.

00:29:39 That’s right.

00:29:40 And the reason was Java was gonna run in the plugins.

00:29:42 So it could fork threads and go to town.

00:29:44 But the main action in the browser

00:29:46 was in the single threaded program,

00:29:48 the single Unix process on Unix or Windows.

00:29:51 And it was where you had to service the event loop

00:29:54 and then go do things.

00:29:56 Respond to the network layout, some HTML, render it,

00:29:59 turn widths into heights by filling containers, boxes,

00:30:03 the early, what became the CSS box model.

00:30:06 And run scripts to make the thing livelier,

00:30:09 respond to user input.

00:30:11 And all that event driven programming

00:30:14 was in part like HyperCard

00:30:16 because HyperCard had this on event name syntax.

00:30:19 And so that’s why you have in JavaScript on click

00:30:21 run together as the name of the event handler.

00:30:24 And there’s some funny ones on mouse over

00:30:26 and on mouse out, people still complain about those.

00:30:28 But there were many more events now over the years

00:30:31 standardized, but it was a mix of event driven

00:30:33 single threaded programming because it had to run

00:30:36 in the main thread of the browser where the action is

00:30:38 and Java never got there.

00:30:40 Which meant Java could not interact easily

00:30:42 or quickly or in a nested way with the document,

00:30:46 with the objects reflected from the HTML document,

00:30:49 with the tables and forms and so on.

00:30:50 And that is one of the reasons I think JavaScript

00:30:53 survived and Java kind of died.

00:30:55 Java was in this plugin prison.

00:30:56 It essentially was confined to a rectangle,

00:30:58 the applet rectangle.

00:30:59 And while we even built next year,

00:31:02 Nick Thompson, a friend from SGI

00:31:04 who was an intern grad student at CMU at the time,

00:31:08 built the first version of Live Connect

00:31:10 to glue Java and JavaScript together

00:31:12 to deliver on that vision where you do have commerce

00:31:14 between the data types in the heap.

00:31:18 Did it work?

00:31:18 It worked, but Java was in charge.

00:31:21 JavaScript was in charge and Java was just these components,

00:31:23 these helper objects.

00:31:24 You might as well do everything in JavaScript.

00:31:25 What happened over time, it’s like an evolutionary filter.

00:31:27 It just kind of, who needs the plugin?

00:31:29 And in fact, Sun mismanaged Java as a plugin.

00:31:33 They thought, oh, Netscape is giving us

00:31:35 the distribution vehicle and we don’t care about the browser.

00:31:38 It’s just about getting Java out there.

00:31:39 And that was a big miscalculation.

00:31:41 They then tried, because Microsoft’s killing Netscape

00:31:43 after years, they tried getting into Microsoft.

00:31:46 And you may remember there was a Sun Microsoft deal

00:31:48 which famously blew up.

00:31:50 And Microsoft kicked Java out of Windows.

00:31:54 And that’s when they really pulled the trigger.

00:31:56 I think they’d already evaluated it and liked it

00:31:58 on Anders Helzberg’s.NET and C Sharp

00:32:01 and decided we’re gonna just not have Java.

00:32:04 We don’t want any of that Sun stuff.

00:32:06 We don’t want the patent risk.

00:32:07 We don’t want, I’m not sure what all fights were about.

00:32:10 There was some patent angle to it, I think.

00:32:12 And up till then, Microsoft had been using Java components

00:32:16 like in Outlook Web Access,

00:32:19 which had a lot of JavaScript to be a webmail

00:32:21 like Hotmail, like user interface.

00:32:23 They had to call the mail server through HTTP

00:32:27 and they used a Java object to do this.

00:32:31 And when they gave the boot to Sun,

00:32:34 suddenly the left hand gave the boot

00:32:37 and the right hand said, we better do something else

00:32:39 in Outlook Web Access.

00:32:40 What are we gonna do?

00:32:40 And they said, let’s just add an ActiveX component,

00:32:43 which is their own native way of embedding things

00:32:46 in languages and it’ll be what became XML HTTP request,

00:32:51 which is now a web standard for calling asynchronously.

00:32:54 And it’s been replaced by the fetch API

00:32:57 in HTML5 or HTML living document.

00:32:59 But this whole lineage goes back to Java

00:33:02 being successfully the loser and getting kicked out.

00:33:05 And after Microsoft kicked it out, it was a plugin

00:33:07 and you would find it required for like smart card banking

00:33:11 in the Nordic countries where that was mandated by law,

00:33:14 but really didn’t get used much.

00:33:16 Or there were pilots who used it for flight information,

00:33:21 but Flash, which Netscape could have bought,

00:33:24 but fortunately didn’t.

00:33:25 The early days.

00:33:26 Yeah, we would have screwed it up.

00:33:28 What year are we talking about with Flash?

00:33:29 I think after the IPO, so it was probably late 95.

00:33:32 Oh, Flash was around.

00:33:33 Was it Adobe?

00:33:34 No, it wasn’t.

00:33:34 No, it was called Future Splash

00:33:36 and it was these brothers, Jonathan Gay,

00:33:38 I think his name was, and he came knocking

00:33:41 and the marketing guy at Netscape,

00:33:43 who was screening the technology partners

00:33:45 or wannabe acquisitions was brutal

00:33:47 and just everybody wanted to get in on the Netscape,

00:33:50 stock gravy train and he sent them packing

00:33:52 and they ended up selling to Macromedia

00:33:55 and Macromedia was where Flash was created.

00:33:57 And the good thing about Macromedia was

00:33:58 it was a tool company.

00:34:02 So it invested in the best ideas, I think,

00:34:05 which are still somewhat lost to us of Flash,

00:34:08 the timeline, animation has sort of been a mutable function

00:34:12 over time.

00:34:13 They had the tooling around that too,

00:34:14 like they had Dreamweaver, there’s a Flash.

00:34:17 Flash Director, there were a bunch of them.

00:34:18 Yeah, I mean, yeah, that was a great.

00:34:20 Flash Builder was one of the last ones.

00:34:22 These tools were used by real artists

00:34:25 and special effects people and designers.

00:34:27 All the restaurant websites around 2005

00:34:29 were done in Flash, which was,

00:34:32 we were trying to do HTML5 at the same time.

00:34:34 That was the Firefox era.

00:34:35 We were trying to make the web capable enough

00:34:37 you didn’t need Flash, but if you recall,

00:34:39 you go to a restaurant and it’s like,

00:34:41 this is kind of like a game or something.

00:34:42 It’s like a Flash, all the font looks small.

00:34:44 So you didn’t like Flash from the beginning.

00:34:45 You’re like, this doesn’t feel right.

00:34:47 Not really.

00:34:48 I actually admire Flash’s technology

00:34:50 and I’m pretty pragmatic about these things.

00:34:51 And I realized that it doesn’t matter

00:34:54 if your Delta bad hand like JavaScript was a rush job,

00:34:58 or if you have Flash as a plugin

00:35:00 and you can invest in the tools and make it pretty good.

00:35:03 You should make it better for your users

00:35:05 and grow it as best you can.

00:35:07 And what happened with the browser

00:35:08 due to Microsoft’s monopoly abuse

00:35:11 for which they were convicted.

00:35:12 And even after that, until I think Firefox and then Chrome

00:35:17 was people kept saying, oh, the web can’t do X, can’t do Y.

00:35:21 We’ll have to have a plugin.

00:35:22 We’ll have to have a new approach.

00:35:23 We’ll clean the slate and have a new web.

00:35:26 And everyone who said that failed.

00:35:28 And the reason they failed is because

00:35:30 there’s too much value in the web, this huge network.

00:35:34 And the worse is better principle means

00:35:36 that you can not only start bad, which they all sneer at,

00:35:39 but get on first and get wide distribution,

00:35:41 get sort of evolutionary advantage in priority of place,

00:35:47 but you can also improve it over time.

00:35:49 And so if you’re gonna improve Flash,

00:35:51 and for some reason Flash is now out of favor.

00:35:53 Steve Jobs said you can’t have Flash on the iPhone.

00:35:55 That was probably the death knell.

00:35:56 Put your energy into JavaScript.

00:35:58 And that happened, right?

00:35:58 So we did things at Mozilla with Adobe to improve,

00:36:02 which bought my Macromedia, to improve Flash

00:36:04 and to improve the version of JavaScript that was in Flash.

00:36:07 We tried to standardize that.

00:36:09 Oh, that’s right.

00:36:09 I’m getting ahead of myself with it.

00:36:10 It was ES4.

00:36:11 Yeah.

00:36:12 That’s right, that’s right.

00:36:13 Can we just rewind to the magical, like, you know.

00:36:17 It’s a special moment in the history of all of computing.

00:36:20 We’ll talk about it later, but it’s arguable.

00:36:22 It’s possible that the entirety of the world

00:36:25 will run in JavaScript at some point.

00:36:27 So like, it’s like those days,

00:36:30 it would be interesting if you could just describe,

00:36:33 actually zooming in on how the cake was baked

00:36:38 from the several days that you were working on it.

00:36:41 What was on your mind?

00:36:43 How much coffee were you drinking?

00:36:45 Were you nervous?

00:36:46 Why, freaking out?

00:36:47 I’ll try to remember it.

00:36:48 I mean, you’re right.

00:36:49 There are these pregnant moments you see in hindsight,

00:36:50 maybe they’re overrated,

00:36:52 but like Hegel sees Napoleon on horseback at Jena

00:36:55 and says, there’s the world spirit on horse.

00:37:00 And I knew that there was a chance to do it.

00:37:04 Mark knew, and he was my executive sponsor

00:37:07 and he was the one sort of brainstorming

00:37:10 how the JavaScript should be right there in the page.

00:37:13 That was important for him to say that.

00:37:14 Cause I thought so too, but a lot of people were like,

00:37:17 well, you can’t write programming language

00:37:18 in the middle of the markup.

00:37:20 And indeed there are problems.

00:37:21 If you did it naively, you’d see the code laid out

00:37:23 as like random gibberish.

00:37:25 So I had to figure out how to hide that.

00:37:26 That was a challenge.

00:37:28 Is that a breakthrough idea?

00:37:29 I mean, so you and Mark thinking about this idea

00:37:32 that you just inject code in the middle of the markup.

00:37:36 Of the webpage.

00:37:36 I consider kind of heretical.

00:37:38 There was an SGML guru, I forget his name,

00:37:40 but he corresponded with me and at first he was angry.

00:37:42 He’s like, you should have used a marked section.

00:37:44 Why didn’t you use a marked section?

00:37:45 And I said, well, SGML marked sections are not part of HTML

00:37:48 by the way, and they’re not supported in the browser.

00:37:50 And so I did some hack that was equivalent

00:37:52 and over time you could do the proper SGML thing.

00:37:55 But eventually he came around and it was again,

00:37:58 sort of evolutionary necessity.

00:37:59 It was almost like introgression, like the idea

00:38:02 which Lynn Margulies, I think helped get across

00:38:06 that we have to consider mutualism biology

00:38:10 that maybe mitochondria were ancient prokaryotes

00:38:14 that got into the cell and became beneficial.

00:38:17 Somehow the same sort of thinking applies.

00:38:21 You have to embed JavaScript in HTML.

00:38:23 It’s gonna be a good virus.

00:38:24 It won’t hurt you.

00:38:25 The code becomes data in the sense

00:38:27 it just gets carried along.

00:38:30 But is there the side of the, so you were focusing

00:38:33 on Netscape at that time.

00:38:35 Doesn’t the browser have to support interpret correctly

00:38:38 this mix of HTML and whatever code?

00:38:41 I had to hide it from old browsers,

00:38:42 including Netscape 1.1, which was predominant then.

00:38:45 So I used an HTML comment, but the inside the container

00:38:49 that comment lived in the script tag,

00:38:51 which is a new element, I could make different semantics

00:38:53 in Netscape 2 where those HTML comment delimiters

00:38:57 instead of being multi line brackets became one line

00:38:59 or essentially one line.

00:39:00 So you wrote, so JavaScript was written,

00:39:02 the programming language was written as a comment.

00:39:05 A comment for old browsers and a set of brackets

00:39:08 that were ignored with real code for new.

00:39:10 And it was this two way comment hiding hack, as I called it,

00:39:13 that was absolutely necessary for us to get off the ground.

00:39:15 We couldn’t have bootstrapped JavaScript without it.

00:39:17 We didn’t have scripts that were loaded from a separate file.

00:39:20 The only scripts in Netscape 2 were inline in the document.

00:39:22 What were the challenges here?

00:39:24 What, like what, you know, typing,

00:39:27 what were the choices you were thinking about?

00:39:30 What was the design for this garbage collection?

00:39:31 I didn’t have time to write a garbage collector.

00:39:32 So I just, I didn’t at first.

00:39:34 The thing was using essentially arenas

00:39:36 or what GNU calls object pools

00:39:39 and just would run out of memory eventually.

00:39:41 And I added reference counting in a hurry

00:39:43 after the 10 days in which I hacked.

00:39:45 So after I was in the server team doing HTTP 1.1

00:39:48 and thinking about the language,

00:39:49 I finally got transferred to the client team in early May.

00:39:52 And that’s when I, you know, I got the go sign from Mark

00:39:55 and it was like, we can’t wait

00:39:57 because people inside Netscape are doubting.

00:39:59 Even people inside Sun are definitely doubting.

00:40:01 Bill Joy was the champion, but he was like alone in that

00:40:04 in seeing that there was a role for JavaScript

00:40:07 as the, as I call it, the sidekick language,

00:40:10 robbing the boy hostage.

00:40:12 Frank Miller put it in the Dark Knight Returns

00:40:16 that there was this silly little language

00:40:18 that would be the glue language

00:40:19 and it could become important over time.

00:40:20 And you were better off having that complementarity,

00:40:23 that pairing of languages,

00:40:25 just like Microsoft stacked it with visual C plus plus

00:40:28 and visual pacing.

00:40:28 So what was the big moment of I’m done?

00:40:33 So I had to do a demo.

00:40:34 I forget the dates.

00:40:35 I think I, for a history of programming languages paper

00:40:38 that Alan Wiersbrock did with my help,

00:40:40 he did a lot of the writing.

00:40:42 I think it was the 10 days from like Thursday evening

00:40:47 through to the following weeks, you know,

00:40:50 the whole of that week and then into the Monday.

00:40:52 You get sleep?

00:40:53 Not enough.

00:40:54 And I was really going fast

00:40:56 because I had already used a lot of C compiler

00:41:00 and front end compiler knowledge

00:41:02 that I’d gained from undergraduate school.

00:41:04 When I started getting into computing

00:41:07 as a renegade physics major,

00:41:10 people were formalizing more efficient bottom up grammars,

00:41:14 parsers for bottom up languages,

00:41:17 really LALR one was the big thing.

00:41:19 And I studied all this and learned how to parse them.

00:41:22 And in the end, if you’re doing C languages,

00:41:25 you often do what Dennis Ritchie did anyway,

00:41:28 which is the recursive descent parser.

00:41:31 You can hand code it.

00:41:32 And I did that for JavaScript in a blazing hurry,

00:41:36 mostly got it right.

00:41:37 I didn’t have precedence inversion problems or other bugs,

00:41:40 but I copied a lot from Java and C.

00:41:43 And I tried to keep things simple,

00:41:45 like the equality operator in those 10 days sprint

00:41:49 between two objects of different dynamic type said,

00:41:52 no, they’re not equal, their types are different.

00:41:54 And then after that, I had internal early adopters

00:41:57 and they were using JavaScript to match a number

00:42:01 against a database field that had been stringized.

00:42:03 And they said, oh, can we just have implicit conversion?

00:42:06 Like an idiot, I agreed.

00:42:07 I gave them what they wanted.

00:42:08 I was trying to please them and get adoption.

00:42:10 And that broke what equivalence relation

00:42:16 nature there was to the double equal.

00:42:19 There’s some edge cases with not a number

00:42:22 that break that too, but it really broke it.

00:42:25 Having an implicit conversions in the operator

00:42:26 is something that people still roast me over.

00:42:29 So let’s talk about two things.

00:42:31 One, it sounds like the comparison operator,

00:42:34 the equality operator is the thing that you regret.

00:42:38 So maybe you can.

00:42:39 Making it sloppy.

00:42:40 Making it sloppy.

00:42:41 So what is the biggest thing you regret in those 10 days?

00:42:45 And what is the biggest thing you’re proud of?

00:42:47 So that making it sloppy came after the 10 days.

00:42:49 And my lesson there, which I’ve tweeted is

00:42:51 when people come to you saying,

00:42:53 can you please make it sloppy or add this cute feature?

00:42:56 The answer should be no.

00:42:57 And I should have known that

00:42:58 because I think Nicholas Viert, one of my heroes said,

00:43:01 the essence of design is leaving things out.

00:43:04 But during the 10 days, I also, like I said,

00:43:06 I was in such a hurry, I left out garbage collection,

00:43:08 came back to haunt me, but I got reference counting in

00:43:10 in time that people weren’t running out of memory

00:43:13 right away on long lived JavaScript.

00:43:16 What happens when you don’t have garbage collection

00:43:17 and you have objects?

00:43:18 Well, you just run out of memory.

00:43:20 And you know, at first you write a short script

00:43:24 and the page doesn’t last long or it doesn’t do a lot.

00:43:25 It’s okay.

00:43:26 Oh, I see, yeah, yeah.

00:43:27 But if you’re writing a game or something

00:43:28 and you’re doing event based allocation,

00:43:30 you run out of memory.

00:43:31 And this was noticed in the summer of 1985

00:43:34 and people were like, what’s going on?

00:43:35 Oh yeah, I better go back and do reference counting.

00:43:38 And then the problem with reference counting is

00:43:40 you’re writing the language in the runtime in C,

00:43:43 an unsafe language, and if you’re reference counting

00:43:45 and you overflow the counter, you mismanage it

00:43:48 so it goes high, it gets stuck high,

00:43:49 you leak memory again and you run out.

00:43:51 If you underflow it, you pre memory that’s still in use.

00:43:56 And even then we knew what all the security hackers

00:44:00 came to know that you therefore have potentially

00:44:03 a remote code execution vulnerability.

00:44:05 Cause this was before things like non executable

00:44:09 heap memory and staff defenses against taking over memory.

00:44:14 So if you can, from the remote side,

00:44:17 write some HTML and JavaScript that just happens

00:44:19 to exploit a bug in memory safety,

00:44:21 like it causes JavaScript to underflow reference counter.

00:44:24 And the script still has its hands on that object

00:44:27 and it’s trying to call a method on it

00:44:29 and there’s some kind of lookup function table

00:44:30 in the object, but you’ve managed to stuff the heap

00:44:34 with strings that forwards their own lookalike

00:44:37 for the function table.

00:44:39 You can call some other code.

00:44:41 And this was a problem right away.

00:44:43 So security, JavaScript upped the ante.

00:44:46 Java had this problem too, but in its own VM.

00:44:48 And it just was a separate headache for Sun to worry about.

00:44:53 We had this problem in Netscape right away.

00:44:55 So Netscape 2 came out after my 10 days

00:44:58 and after these follow on work to embed JavaScript

00:45:02 better in the browser and to add garbage

00:45:04 or collection through reference counting,

00:45:05 really I call it reference counting and get it shipped.

00:45:09 We had a bunch of dot releases where we fixed

00:45:11 security bugs like maniacs.

00:45:13 But what is the thing you’re, you know,

00:45:16 when you sit back on a porch and just look out

00:45:19 into the sunset, what are you most proud of

00:45:21 from those 10 days?

00:45:21 I think the first class functions shines.

00:45:23 I think especially since Java didn’t have it

00:45:25 and it was somewhat unusual.

00:45:27 Scheme made it in somehow at the end of the day.

00:45:30 In spirit, I mean, people complain because Scheme has,

00:45:33 you know, minimalism.

00:45:34 It has, you know, six or seven special forms.

00:45:37 It has hygienic macros.

00:45:38 It has call CC.

00:45:39 It has sort of a beautiful complete set of forms

00:45:44 to make the land of calculus pleasant to use in practice.

00:45:49 And JavaScript is, you know, kind of a multi paradigm

00:45:54 or shambolic.

00:45:55 Just in a small tangent, you mentioned Mark Andreessen.

00:45:59 It sounds like, and Bill Joy, but staying on Mark,

00:46:03 it sounds like he had an impact on you

00:46:06 in that he sort of believed in what you were doing there.

00:46:09 Can you talk about like what role Mark had in your life?

00:46:11 Yeah, we would meet at the Peninsula Creamery

00:46:15 in downtown Palo Alto.

00:46:17 And Mark was just fresh out of, you know, grad school

00:46:19 or whatever he was doing and he was big dude

00:46:22 and he got fitter later.

00:46:25 He had hair, he would order giant milkshakes and burgers

00:46:28 and we would meet there and brainstorm about what to do.

00:46:31 And it was very direct because we didn’t have much time.

00:46:34 The sort of, we didn’t talk about it.

00:46:36 The implication was Microsoft was coming after us.

00:46:39 Mark was saying things boldly pre IPO

00:46:41 like Netscape plus Java kills Windows, right?

00:46:44 This is, make a browser programmable.

00:46:46 It becomes the new runtime for programs.

00:46:49 It’s the meta OS or it’s the replacement OS.

00:46:52 But he still saw value in JavaScript.

00:46:54 Yes, even though he was saying that

00:46:56 and Java was the big name, hence the trademark license,

00:46:59 he saw JavaScript as important.

00:47:01 And he even thought, what if we got,

00:47:03 I told this in other interviews, I can say it.

00:47:05 He thought, what if we had my friend Kip Hickman

00:47:07 who’d been at Netscape from the beginning

00:47:09 and who was a kernel hacker at SGI when I joined,

00:47:13 he’d started writing his own JVM

00:47:14 before we consummated the Sun deal

00:47:16 and got our hands on their code.

00:47:17 And the Java compiler, Java C,

00:47:20 which Arthur Van Hoff had written very nice code,

00:47:23 was all written in Java.

00:47:24 It was self hosted or so called bootstrap.

00:47:26 And so we could use that as soon as Kip’s Java VM

00:47:29 could run the bytecode from the Sun JVM

00:47:34 running the self hosted compiler to emit the bytecode.

00:47:37 So once we could bootstrap into Kip’s VM,

00:47:39 we wouldn’t need Sun.

00:47:40 And Mark was like, well, maybe we can just ditch Sun.

00:47:44 Well, if Kip’s Java VM, or if you’re a JavaScript VM,

00:47:47 now we need graphics.

00:47:48 So Mark was thinking far ahead

00:47:49 because he knew you could do things with HTML and images,

00:47:53 but at some point you really want.

00:47:54 Like dynamic graphics or three dimensional?

00:47:57 Even SGI had already started its downfall

00:47:59 because the first floor VLSI team there

00:48:02 had gone off to do 3D effects

00:48:04 and all these other companies

00:48:05 that made the graphics card on your PC, right?

00:48:07 Doom was big and Quake.

00:48:09 And so you were, we were all playing Quake.

00:48:10 I was old, so I was terrible.

00:48:12 But why not put that graphics capability on the web?

00:48:16 And in fact, it finally happened at Mozilla

00:48:18 with Firefox era with Vlad Vukicovic

00:48:21 taking OpenGL ES and reflecting it as WebGL.

00:48:24 But OpenGL ES is the mobile version of OpenGL,

00:48:28 which is a standard based on SGI GL.

00:48:30 So this whole lineage of graphics libraries

00:48:32 or really graphics languages for what became the GPU.

00:48:36 And Mark was thinking ahead.

00:48:37 He’s like, we need graphics too.

00:48:38 And I thought, okay, I can try to get somebody I knew at SGI,

00:48:40 but he’s a grad student at MIT.

00:48:42 He was studying under Barbara Liskov.

00:48:44 He laughed when he heard about this later, Andrew Myers.

00:48:46 He’s at Cornell, long time, I think he’s a full professor.

00:48:50 And Mark said, great, we’ll get him.

00:48:52 I’m not sure he’s gonna come.

00:48:53 We’ll throw money, we’ll stock options.

00:48:55 We never did it.

00:48:56 And they did the Sun deal.

00:48:57 So Kip Nobly put aside his own JVM

00:49:00 and we used the Sun JVM.

00:49:02 So that was an ambitious period.

00:49:04 And Mark was very generative because he was pushing hard.

00:49:06 He was ambitious and he wanted to have Netscape

00:49:11 possibly be in control of the ball.

00:49:13 Maybe you can speak to this dance

00:49:16 of Netscape versus Internet Explorer.

00:49:20 You’ve thrown some loving words towards Microsoft

00:49:25 throughout this conversation,

00:49:26 but that’s a theme with, I mean, Steve Jobs

00:49:29 has a similar sort of commentary.

00:49:31 From a big sort of philosophical principle perspective,

00:49:34 can you comment on like the approach

00:49:36 that Microsoft has taken with Internet Explorer

00:49:39 from IE1 to Edge today?

00:49:42 Is there something that you see as valuable

00:49:45 that they’re doing in the occasional copying

00:49:48 and that kind of stuff?

00:49:49 Or is it, is the world worse off

00:49:53 because Internet Explorer exists?

00:49:55 So I’m gonna segment this into historical areas

00:49:57 because I think Microsoft today with Satya

00:49:59 is quite a different company

00:50:00 and what they’re doing with Edge is different.

00:50:02 But back then, Gates, aggressive character,

00:50:06 not really original in my view, not an originator.

00:50:09 Steve Jobs famously said once,

00:50:11 he doesn’t have any taste

00:50:12 and I don’t mean this in a small way, he has no taste.

00:50:15 You can see this, Apple at the time had beautiful typography

00:50:19 and ligatures and kerning and the fonts looked great.

00:50:22 And Windows had this sort of ugly system font

00:50:25 that was carefully aligned with Pixel

00:50:26 so it didn’t get anything.

00:50:28 What is it?

00:50:29 I’m sorry to keep interrupting,

00:50:30 but why was Internet Explorer winning

00:50:32 throughout the history of these competitions?

00:50:34 Distribution.

00:50:35 Distribution matters more than anything.

00:50:36 And this is why even now we’re seeing

00:50:39 in the browser wars Edge doing better

00:50:41 because it’s being foisted on people of Windows.

00:50:43 We have Windows 10 boxes at home.

00:50:45 We have some Windows 7 boxes or laptops we keep running to

00:50:48 because we don’t connect them to the internet generally.

00:50:50 But once you have that operating system to hold,

00:50:55 you can force Edge.

00:50:57 And Apple did it with Safari too.

00:50:59 It’s not unique to Microsoft.

00:51:01 That’s sad.

00:51:02 But distribution matters.

00:51:03 And that’s why I think IE was going to win.

00:51:07 That’s why everybody at Netscape felt we’re doomed.

00:51:09 This was something Michael Toy and Jamie Woodson were doomed.

00:51:12 But for a while there we had a chance

00:51:14 and we innovated in Netscape too.

00:51:16 We did a big platform push, Java and JavaScript

00:51:18 and plugins, more plugins and more HTML table features.

00:51:23 And really started making a programmable stack

00:51:28 out of what were pretty static web languages.

00:51:30 And even in the beta releases of Netscape,

00:51:33 two people were using JavaScript

00:51:34 to build what you would call single page applications

00:51:36 like Gmail.

00:51:37 And they were using JavaScript locally to compute things

00:51:40 and to call the server on a hidden frame in the background.

00:51:43 So it was prefiguring a lot of what came later as AJAX

00:51:46 or dynamic JavaScript, dynamic HTML.

00:51:48 So people saw that, I mean.

00:51:49 Even then they saw it, yeah.

00:51:50 That’s kind of, I don’t know.

00:51:52 But from my perspective, that seems quite brilliant.

00:51:55 It seems like really innovative

00:51:56 that you would have code run in the browser.

00:51:59 It did impress me with something

00:52:01 which I learned later about from Eric Von Hippel of MIT,

00:52:04 which is user innovation networks, lead user effects.

00:52:07 That throwing out JavaScript,

00:52:09 even though we weren’t doing open source,

00:52:10 we were doing beta releases early

00:52:12 and permissively with Netscape.

00:52:14 Getting early developer feedback, absolutely critical.

00:52:17 I loved it.

00:52:18 I did some of that with SGI

00:52:19 with some of the products I worked on,

00:52:20 but it really came to the fore in Netscape.

00:52:21 And that culminated in Mozilla

00:52:23 where you’re dealing with developers all the time

00:52:25 and early adopters, lead users.

00:52:27 But the lead users helped improve JavaScript,

00:52:29 even in those last few betas

00:52:31 where I could hardly change things.

00:52:32 I was under pretty rigid change control.

00:52:34 So we’re talking about just a small collection

00:52:36 of individuals that are just like upfront.

00:52:38 A guy named Bill Dorch.

00:52:39 You can find his work in the web archives,

00:52:40 still from 1996.

00:52:41 It’s a single page application.

00:52:43 It’s an artist gallery of mountain art.

00:52:46 He used JavaScript?

00:52:47 It doesn’t quite work.

00:52:48 He uses JavaScript locally.

00:52:48 He uses a local database.

00:52:50 What you would think of now is JSON,

00:52:52 but it’s all pure JavaScript code,

00:52:54 a bunch of objects being constructed.

00:52:55 That’s so cool.

00:52:57 So how is, if you can do sort of a big sweeping progress

00:53:02 of JavaScript, how has JavaScript changed over the years?

00:53:05 Any of you from those early 10 days

00:53:07 with a quick addition of garbage collection

00:53:09 and fixes around security,

00:53:11 how has this evolution that now it’s taken over the world?

00:53:14 In this, it’s been a bumpy ride

00:53:16 because the standards body got shut down after Microsoft,

00:53:19 I think, took over the web and then felt punished

00:53:22 by the USB Microsoft antitrust case.

00:53:25 Can you speak to the standard body?

00:53:27 That was a fun ride too

00:53:28 because Netscape had taken the lead

00:53:30 with the web and HTML innovations

00:53:34 like frames and framesets tables.

00:53:36 And the W3C was sort of off even then,

00:53:39 sort of in SGML land heading toward XML, la la land.

00:53:43 I’m gonna be a little harsh on it.

00:53:44 What’s SGML?

00:53:45 I’m sorry.

00:53:46 SGML was the precursor markup language to HTML.

00:53:48 It was sort of the more extensible standards,

00:53:52 generalized markup language.

00:53:54 It was a…

00:53:54 XML like…

00:53:55 Pointy brackets, but it had all sorts of elaborate syntax

00:53:58 for doing different semantics.

00:54:00 And this is why I think TBL and others

00:54:03 who wanted to do the semantic web then took XML forward,

00:54:08 but they had this, or some of them anyway,

00:54:10 had this strange idea they could replace the web with XML

00:54:12 or that they would upgrade the web to be XML.

00:54:15 And it couldn’t be done.

00:54:17 Worse is better had concrete meaning.

00:54:19 The web was very forgiving of HTML,

00:54:22 including sort of minor syntax errors

00:54:25 that could be error corrected.

00:54:26 Like error correction isn’t generally done

00:54:28 in programming languages because…

00:54:29 That’s another amazing thing about HTML is like,

00:54:32 it’s more like biology than programming.

00:54:35 Exactly.

00:54:35 And so XML was in its standard form super strict

00:54:40 and could never have admitted the kind of users

00:54:43 who were committing these errors.

00:54:44 And the funniest part was Microsoft said,

00:54:46 hey, we’re doing XML,

00:54:47 but the way they put it in Internet Explorer

00:54:49 under the default media type,

00:54:51 put it through the HTML error corrector.

00:54:53 Oh, wow.

00:54:54 So they kind of bastardized it to make it popular

00:54:57 and usable and accessible.

00:54:58 And so XML as a pure thing was never gonna take over.

00:55:04 And what W3C was kind of not fully functional

00:55:07 because Netscape wasn’t cooperating with them.

00:55:09 We thought about where to take JavaScript

00:55:11 and we realized our standards,

00:55:12 Guru Kargal realized there was a European standards body

00:55:17 that had already given Microsoft fits

00:55:18 by standardizing parts of the Windows 3.1 API,

00:55:22 which European governments insisted on.

00:55:24 They said, Microsoft, we can’t use your operating system

00:55:26 without some standards.

00:55:27 And Microsoft said, here’s our docs.

00:55:29 And the government said, no, we need a European standard.

00:55:32 So this body called

00:55:33 the European Computer Manufacturers Association, ECMA,

00:55:37 which eventually became global

00:55:38 and became a proper noun instead of an acronym.

00:55:40 Right, it’s just one capital E now with a lowercase CMA.

00:55:44 Right, and as one of the early Microsoft guys I met

00:55:47 when we first convened a working group

00:55:50 to talk about JavaScript said,

00:55:51 it sounds like a skin disease.

00:55:53 But it gave, I mean, maybe you’ll speak to that,

00:55:56 but it gave the name to JavaScript of ECMA script.

00:55:58 That was the standard name

00:55:59 because Java was a trademark of Suns.

00:56:02 They were so aggressive,

00:56:03 they were sending cease and desist letters

00:56:05 to people whose middle European heritage

00:56:08 meant their surname was Javanko

00:56:10 and they called their website javanko.com

00:56:12 and Sunwood sent them a letter saying,

00:56:14 you’re using J A V A at the start of your domain name,

00:56:16 you must cease and desist.

00:56:18 I love marketing more than anything else in this world.

00:56:22 So ECMA script and now is popularly named as ES plus version.

00:56:27 I would say people use JS more than anything.

00:56:29 People still say JavaScript.

00:56:31 JavaScript is in all the books.

00:56:32 So I mean, when you’re referring to it,

00:56:33 it’s usually JavaScript.

00:56:34 And when you wanna refer to a version of JavaScript,

00:56:37 you’ll say ES6, ES5.

00:56:39 Yes, or now they’ve gone to years,

00:56:40 which is kind of confusing

00:56:41 because it’s an offset of 2009, ES6, ES 2016.

00:56:50 Yeah, it doesn’t match the years perfectly.

00:56:52 Yeah, so what were the choices made

00:56:55 and how did JavaScript evolve here?

00:56:58 So we took this new standards body,

00:57:01 which we thought sort of a proven record

00:57:04 of standing up to Microsoft,

00:57:05 but Microsoft sent a lot of people.

00:57:07 They sent some people who were pretty good.

00:57:10 And then when they realized that I was there

00:57:12 and Netscape was not gonna just bend over

00:57:15 and do whatever they wanted,

00:57:16 they sent somebody really good.

00:57:17 And he was a smart guy.

00:57:18 He did a lot of the work on the first draft of the spec.

00:57:21 Sean Katzenberger, he’s left Microsoft.

00:57:22 He even did what I sort of did.

00:57:25 He told his bosses, stop bugging me to do other things.

00:57:28 I’m focused on this.

00:57:28 Cause it took a lot of focused work

00:57:30 to create the first draft of the spec.

00:57:31 And I was still holding,

00:57:33 I was spending almost all the plates.

00:57:34 I had like part time help in certain areas.

00:57:37 And on the front end integrations,

00:57:38 I had the front end guys.

00:57:40 But I couldn’t take as much time as Sean was

00:57:42 to write the draft spec,

00:57:43 but I had to participate

00:57:44 because I was essentially helping write down

00:57:46 what the language did

00:57:48 and in areas where we didn’t like what it did

00:57:50 and Microsoft didn’t agree,

00:57:51 we sometimes got away with slight changes.

00:57:54 And that’s the story of standards.

00:57:55 You have different implementations

00:57:58 and depending on their market power,

00:57:59 they interoperate where you have agreement

00:58:01 and where they don’t,

00:58:02 the dominant one usually sets the de facto standard.

00:58:05 And then you should probably reflect that

00:58:07 into the de jure standard.

00:58:09 And this happened with JavaScript.

00:58:11 Over time, as Netscape went down and Microsoft went up,

00:58:14 we did the first edition of the standard codified in 1997

00:58:18 in France, we had a trip to Nice, which was very memorable.

00:58:22 For any interesting reason or just because it’s Nice?

00:58:24 And ECMA’s European and IBM and others were there.

00:58:28 Mike Kalashaw, an IBM fellow was a British.

00:58:31 And the guy who ran ECMA at the time, Jan van der Bell,

00:58:35 was quite a raconteur and a very fun guy.

00:58:39 And he had us out for, you know, the great,

00:58:41 you know, Fui de mer, the bouillabaisse and the…

00:58:43 Was the standardization process beautiful or painful

00:58:46 that those early days, you as a designer of the language?

00:58:48 It was painful because it was rushed.

00:58:50 Now, Guy Steele was contributed by Sun.

00:58:52 So even more than Sean,

00:58:53 you had this giant brain Guy Steele helping,

00:58:55 bringing some of that scheme magic.

00:58:57 And he even brought Richard Gabriel for funding.

00:58:59 Richard wrote the fourth clause of the ECMA standard,

00:59:02 which was kind of an intro to what JavaScript’s all about.

00:59:05 So we had some really good people

00:59:07 and we didn’t fight too much.

00:59:09 There was some tension where I was fixing bugs

00:59:11 and I was late to a meeting and Sean Katzenberger,

00:59:13 Microsoft, was actually mad.

00:59:15 Like, where is he?

00:59:15 We need him.

00:59:16 And when I got there,

00:59:18 I saw that only he saw this sort of off by one bug

00:59:21 in somewhere in the spec.

00:59:22 And then I saw it too.

00:59:24 And I said, there’s a fence post bug there.

00:59:25 And then we kind of locked eyes

00:59:27 and we realized we were on the same page.

00:59:28 And we kind of, he wasn’t mad anymore.

00:59:30 What were the features that are being struggled over

00:59:33 and debated and thought about?

00:59:35 It was mainly writing down what worked

00:59:36 and what we thought should work in the edge cases

00:59:38 that didn’t interoperate or that seemed wrong.

00:59:41 But we were already laying the groundwork

00:59:43 for the future additions that I was already implementing.

00:59:46 I was still trying to lead the standard

00:59:48 by using the dominant market power

00:59:50 to write the code that actually shipped.

00:59:52 So the de facto standard would lead the de jure standard.

00:59:54 And I was putting in the missing function forms

00:59:58 that I didn’t have time for in the 10 days.

01:00:00 So this is the engineering mindset versus the theoretician.

01:00:03 So you didn’t want to create the perfect language,

01:00:05 but one that was the popular and shipped

01:00:06 and all that kind of stuff.

01:00:07 And you could say there was,

01:00:08 I was standing on the shoulders of giants.

01:00:09 So there was a staged process

01:00:11 where I had to hold back things

01:00:12 that were well designed by others in other languages

01:00:15 and I could imitate,

01:00:17 but I couldn’t do them all in the 10 days.

01:00:18 So they came in 1996 and 97,

01:00:22 and they came into the third edition of the standard,

01:00:25 which was final finalized in 1999.

01:00:27 But at that point,

01:00:28 Netscape had been sold to AOL

01:00:31 which was a decent exit considering

01:00:33 and had previously been mercilessly crushed.

01:00:37 Netscape was selling the browser along with server software

01:00:40 that it had acquired after its IPO

01:00:42 and Microsoft was just underpricing it.

01:00:44 So there was no way to compete with that.

01:00:47 Microsoft was also making Internet Explorer

01:00:51 the default browser in Windows,

01:00:53 which is called tying and antitrust law.

01:00:55 And they were doing even more brutal things.

01:00:57 There was a famous investor.

01:00:59 He did very well on Google.

01:01:00 So he’s a billionaire, Ramshree Ram,

01:01:01 and he was sales guy or head of sales at Netscape.

01:01:04 And he got off the phone looking ashen faced

01:01:07 after a compact called and said,

01:01:10 Microsoft just told us they’re gonna pull

01:01:12 our Windows license if we ship Netscape

01:01:13 as the default browser.

01:01:15 Wow.

01:01:15 So there is some bullying going on.

01:01:17 It was totally immaterial in the antitrust case.

01:01:19 But JavaScript escaped into the standard setting

01:01:23 where there was fairly good cooperation.

01:01:24 Microsoft had a really good guy on it

01:01:26 and Guy Steele was there for a time

01:01:29 and there was some good work.

01:01:30 But after the antitrust case

01:01:33 and Netscape kind of dissolving into AOL

01:01:37 and not really going anywhere quickly,

01:01:38 Mozilla took years to really bring up,

01:01:42 the standard froze.

01:01:43 And by 2003, even though they’d been sort of noodling around

01:01:46 with advanced versions, JavaScript 2,

01:01:48 I’d given the keys to the kingdom

01:01:50 to another MIT grad, Baltimore Horwatt.

01:01:53 Very big brain and still at Google, I think.

01:01:54 He won the Putnam in 86

01:01:56 and he’s very mathematical.

01:01:58 Legit.

01:01:59 He designed this successor language, JavaScript 2,

01:02:02 but it only showed up in mutated form

01:02:06 in Microsoft’s ASP.NET server side

01:02:09 and it didn’t last there.

01:02:11 And it showed up in Flash

01:02:12 and that’s what became ActionScript 3.

01:02:14 Ah, ActionScript, interesting.

01:02:16 And then Flash of course declined.

01:02:18 And so how did we arrive at ES6

01:02:21 where it’s like there’s so many,

01:02:24 where everyone, okay, there’s this history of JavaScript

01:02:27 that people were, it was just like cool

01:02:29 when you’re like having beers to talk crap about JavaScript.

01:02:32 Everyone loves to hate,

01:02:33 like people who are married say, ah, marriage sucks,

01:02:36 is they just wanna get, let off some steam

01:02:38 even though everyone uses the language.

01:02:40 But ES6, it’s become this like reputable,

01:02:45 like it fixed major pain points, I think.

01:02:49 It added things to the language

01:02:50 and added something that was already ES5 strict mode,

01:02:53 but made it implicit in class bodies and module bodies.

01:02:57 It was a big jump,

01:02:58 but it accumulated some of the ES4 designs

01:03:01 that we’d done with Adobe

01:03:03 for what we hoped would be the fourth edition of ECMAScript

01:03:07 that were supposed to fold in some of these old JavaScript 2

01:03:10 ideas that had come into ActionScript 3.

01:03:13 So you look at the family tree and you see these forks

01:03:15 and the main ones are the ones that go into Adobe Flash

01:03:20 acquired from Macromedia

01:03:21 and the one that went into the service side

01:03:23 of Microsoft’s stack, which kind of died.

01:03:27 And then trying to bring them back into the standard

01:03:28 and not quite succeeding, ES4 was mothballed,

01:03:32 but all the good parts that everyone liked made it into ES6.

01:03:35 And so that was a success.

01:03:37 And I said earlier, I had the wrong year,

01:03:38 I think it’s 2015, so it’s off by.

01:03:40 Four, ES6.

01:03:42 Yeah, it was finalized in 2015.

01:03:44 It took a little longer than we hoped,

01:03:45 but because ES5 was 2009

01:03:48 and that was a smaller increment from ES3.

01:03:51 We skipped four again, we mothballed it.

01:03:53 And we had a split in the committee where some people said,

01:03:56 ES4 is too big, we’re gonna work on incremental improvements,

01:03:59 no new syntax in particular, they promised.

01:04:02 Not quite true, but they added a bunch of interesting APIs,

01:04:06 Alan Wiersbrock, my coauthor of the Hobble paper.

01:04:09 And he was at Microsoft at the time.

01:04:11 I ended up hiring with Mozilla.

01:04:12 He wanted to get to Mozilla and keep doing

01:04:16 his sort of editor job of the JavaScript standard,

01:04:19 ECMAScript.

01:04:21 And when we got ES6 done, it was a little late, 2015,

01:04:25 and we switched to year numbers.

01:04:27 So people still call it ES6, I call it ES6.

01:04:30 But if you remember, off by nine plus 2000.

01:04:33 Yeah, I mean, ES6 is such a big job.

01:04:35 I mean, like you said, there’s a third that connects all of it,

01:04:38 but ES6 is when it became this language

01:04:41 that almost feels ready to take over the world completely.

01:04:45 More programming and the large features,

01:04:46 more features you need for larger teams.

01:04:49 Software engineering.

01:04:50 Microsoft did something smart, too.

01:04:52 Anders and company, Luke Hoban, who’s left Microsoft,

01:04:56 also did TypeScript.

01:04:57 And they realized something, I think,

01:05:00 that Gilad Barak has also popularized,

01:05:02 and he was involved in Dart at Google.

01:05:05 If you, don’t worry about soundness in the type system.

01:05:08 You don’t try to enforce the type checks

01:05:10 at runtime in particular.

01:05:11 Just use it as sort of a warning system,

01:05:13 a tool time type system.

01:05:15 You can still have a lot of value for developers,

01:05:17 especially in large projects.

01:05:19 So TypeScript’s been a roaring success for Microsoft.

01:05:21 What do you think about TypeScript?

01:05:24 Is it adding confusion, or is it ultimately beneficial?

01:05:27 I think it’s beneficial.

01:05:28 Now, it’s technically a superset of JavaScript,

01:05:30 so of course I love it, right?

01:05:33 The shortest JavaScript program

01:05:35 is still a TypeScript program.

01:05:36 Any JavaScript program is a TypeScript program,

01:05:38 which is brilliant,

01:05:39 because then you can start incrementally adding

01:05:40 type annotations, getting warnings,

01:05:43 learning how to use them.

01:05:44 Microsoft’s had to kind of look around corners

01:05:47 at the standards body and guess how their version of modules

01:05:50 or decorators should work.

01:05:52 And the standards body then may change things a bit.

01:05:55 So I think they’re obligated with TypeScript

01:05:57 either to carry their own version

01:05:59 or to bring it back with incompatible changes

01:06:01 towards the standard over time.

01:06:03 And I think they’ve played generally fair there.

01:06:05 There’s some sentiment that,

01:06:06 why don’t they standardize TypeScript?

01:06:07 Well, they’ve been clear they don’t want to.

01:06:09 They have a proprietary investment, it’s valuable.

01:06:11 They have control of the ball.

01:06:13 And in some ways, you can say the same thing

01:06:15 to any of the other big companies in the standards body.

01:06:18 Why doesn’t Google standardize its stuff?

01:06:20 So you think it’ll continue being

01:06:22 like a kind of dance partner to JavaScript,

01:06:24 to the base JavaScript?

01:06:25 There’s a hope that at some point,

01:06:27 if they keep reconverging it and the standard

01:06:29 doesn’t break them and goes in a good direction,

01:06:32 we will get at least the annotation syntax

01:06:34 and some semantics around them.

01:06:37 Because when you’re talking about type annotations,

01:06:39 they’re generally on parameters and return values

01:06:42 and variable declarations.

01:06:43 They’re cast operators.

01:06:45 You want that syntax to be reserved

01:06:47 and you want it to work the same in all engines.

01:06:49 And this is where ideas like Gilad’s

01:06:51 pluggable type systems might be good,

01:06:54 though then you could create the same problem

01:06:55 you have with Lisp and Scheme,

01:06:56 where there’s a bunch of macro libraries

01:06:58 and they don’t agree and you have conflicts between them.

01:07:01 But pluggable type systems could be one way to standardize.

01:07:04 What do you think about the giant ecosystem

01:07:07 of frameworks in JavaScript?

01:07:09 It feels like, because, I mean,

01:07:12 this is a side effect of how many people use JavaScript,

01:07:16 a lot of entrepreneurial spirit

01:07:19 create their own JavaScript frameworks

01:07:22 and they’re actually awesome in all different ways.

01:07:27 And this is an interesting question

01:07:31 about almost like philosophically

01:07:33 about biological system and evolution,

01:07:35 all that kind of stuff.

01:07:36 Do you see that as good or should it like,

01:07:38 should some of them die out quicker?

01:07:40 I think maybe they should, now jQuery was a very clever

01:07:44 thing, John Resig made this library

01:07:45 that was sort of query and do

01:07:47 and blended sort of CSS selector syntax

01:07:49 with JavaScript sort of object graph or DOM querying

01:07:53 and made it very easy for people to do things

01:07:54 almost like they were learning jQuery as its own language,

01:07:57 domain specific language.

01:07:58 And that I think reflected in part the difficulty

01:08:03 of using the document object model,

01:08:04 these APIs that were originally designed in the 90s

01:08:07 for Java as well as JavaScript.

01:08:08 They’re very object oriented or even procedural.

01:08:11 They’re very kind of verbose.

01:08:13 And it took like a constructor call

01:08:15 and three different, you know, hokey pokey dances

01:08:17 to do something where as in jQuery, it’s just one line.

01:08:20 Right, so that fed back finally into the standards.

01:08:24 It didn’t mean we standardized jQuery.

01:08:25 It wasn’t quite that concise,

01:08:27 but you find now with the modern standards

01:08:29 that we were working on in the HTML5 sort of effort

01:08:34 that things became simpler, the fetch API

01:08:37 and the query selector API, document.querySelector.

01:08:40 A lot of things can be done now in raw JavaScript

01:08:42 that you would make more concise and terse in jQuery,

01:08:46 but it’s not bad.

01:08:47 It’s pretty good.

01:08:48 Whereas in the old DOM of 15 years ago,

01:08:51 it was just too verbose.

01:08:51 So maybe the frameworks were born kind of

01:08:55 because JavaScript lacks some of the features of jQuery.

01:08:59 And so like now that JavaScript is swallowing

01:09:02 what jQuery was, then the frameworks will,

01:09:05 only the ones that truly add value will stick around

01:09:07 and the other ones will die out.

01:09:08 And that highlights this also this division

01:09:10 between the core language JavaScript,

01:09:12 which can show up in other places

01:09:13 like Node.js on the server side

01:09:15 and the browser specific APIs

01:09:17 or the document object model APIs,

01:09:19 which are even managed by the W3C,

01:09:21 the standards body that was off in XML La La Land

01:09:24 when we were doing real JavaScript standards in ECMA.

01:09:26 And you have this division of labor,

01:09:30 division of responsibility and division of style

01:09:33 and sort of aesthetics and also speed.

01:09:37 So the document object model really stagnated

01:09:39 after Microsoft kind of deinvested in the web.

01:09:43 And Microsoft did something in their haste

01:09:45 in the spirit of Netscape,

01:09:46 doing things quickly and getting on first called DHTML.

01:09:49 And some of their innovations

01:09:51 that were like an alternative document object model

01:09:53 didn’t really get standardized until HTML5

01:09:56 when we pragmatists at Opera at the time,

01:10:00 Ian Hickson who went to Google,

01:10:01 Apple and Mozilla said let’s,

01:10:05 XML is not gonna replace HTML, HTML4 is too old.

01:10:08 Let’s standardize HTML5 based on all this good stuff

01:10:12 including that DHTML variant dynamic HTML5.

01:10:14 HTML5, it feels like to me, maybe you can correct me,

01:10:18 like a beautiful piece of design work.

01:10:21 It was, it’s not often with web stuff,

01:10:24 you have this breath of just like,

01:10:27 oh, whoever did this is, it just feels good.

01:10:31 Is that, what are your thoughts about HTML?

01:10:33 Is the, am I being too romantic?

01:10:35 A little bit, a little bit.

01:10:36 Are there flaws, fundamental flaws to it

01:10:38 that I’m just not aware of?

01:10:40 My old friend Hixie did a great job.

01:10:42 He was another renegade physics student.

01:10:45 And he was basically a QA guy at Opera

01:10:47 but he obviously trained physics student

01:10:52 and someone who could write British

01:10:54 or he developed test suites

01:10:57 and he started thinking about them more axiomatically.

01:11:00 Now this is, this can be good

01:11:02 because you can sort of systematize

01:11:03 in a way that makes a better HTML

01:11:06 or you can get caught in the pragmatism of saying,

01:11:08 well, we have to handle all of these edge cases

01:11:09 so we’re just gonna have sort of a test matrix.

01:11:12 And if the matrix is large,

01:11:13 it will not be beautiful by many people’s lights.

01:11:15 Everyone likes to minimize along their preferred dimensions,

01:11:19 the seven special forms and scheme or whatever.

01:11:21 But reality is HTML needs to be big.

01:11:27 It’s kind of shambolic, it’s a creative multi paradigm.

01:11:30 And Hixie did a good job, I would say, with a bunch of it.

01:11:34 Other people came in in the spirit of Ian Hickson

01:11:36 to do HTML5 work and they’ve carried on that effort.

01:11:40 And so it’s a mix of pragmatism,

01:11:42 de facto standards from the past being sort of combined

01:11:46 or written down for the first time

01:11:47 and then rethought in a way that has a simpler syntax,

01:11:50 like the fetch API instead of XML HTTP request.

01:11:54 This video too as well, it ultimately,

01:11:56 it feels like maybe you can correct me,

01:11:58 it feels like it was the nail in the coffin of Flash.

01:12:01 Steve Jobs saying no Flash on the iPhone,

01:12:03 in my opinion, was the actual sting through the heart.

01:12:05 But, well, I’m not sure what trope you wanna use.

01:12:09 Flash was a zombie until just this year, right?

01:12:12 Or last year, I think last year

01:12:13 was the end of Flash in main browsers.

01:12:16 But Jobs really did the death blow.

01:12:18 And yeah, you’re right, we had to make HTML5 competitive.

01:12:23 I still don’t think we got

01:12:23 that beautiful timeline animation.

01:12:26 The timeline thing, so you like the time.

01:12:28 I mean, me from, I used to animate

01:12:31 all kinds of stuff inside Flash,

01:12:32 plus there’s a programming element.

01:12:34 It was a little bit, I don’t know if you can comment on that,

01:12:38 but to me, it was a little bit like go to statement,

01:12:40 like in a sense that it was a little bit too chaotic.

01:12:44 Like it didn’t, that OCD part of me as a programmer

01:12:48 wasn’t satisfied by Flash.

01:12:50 It feels like there was bugs that were introduced

01:12:52 through the animation process that I couldn’t debug easily.

01:12:55 Yes, I heard that too.

01:12:56 I didn’t use it,

01:12:57 so I’m doing the grass is greener thing here.

01:12:59 The thing I liked about the animation model

01:13:02 was that it was this immutable function of time.

01:13:03 So you could time warp and you could,

01:13:06 if you dodged these bugs or worked carefully,

01:13:08 you could really make it sing in ways

01:13:09 that I think still a little challenging

01:13:11 with the web animation standards.

01:13:14 But, or just using raw canvas and WebGL.

01:13:18 But there’s so many tools now that maybe it doesn’t matter.

01:13:20 And yet we had to do video,

01:13:23 we had to do WebGL and then evolve it.

01:13:27 We had to do web audio.

01:13:30 But once we did all these things that helped Flash die,

01:13:34 thanks to Steve Gubbs,

01:13:35 we had something that people didn’t realize.

01:13:39 We had that vision that Market Vision had,

01:13:41 this graphics capable to the metal portable runtime.

01:13:46 And we at Mozilla realized this

01:13:49 and we saw JavaScript was something

01:13:52 that you could compile to.

01:13:53 Adobe had somebody in the Adobe Labs doing this too.

01:13:55 He had a project called Alchemy.

01:13:57 We had somebody who’s now Google,

01:13:59 Alon Zakai, who did his own LLVM based compiler

01:14:03 that would take C or C++ and it would emit JavaScript.

01:14:06 And you would think this is crazy.

01:14:07 You’re going from this sort of machine types,

01:14:09 low level, controlled memory allocation language

01:14:13 to this garbage collected, dynamically typed,

01:14:16 high level, higher level language.

01:14:18 But Alon sort of just phenomenologically carved nature

01:14:22 of the joint and found the forms

01:14:23 that were fast in JavaScript.

01:14:25 And then with Dave Herman,

01:14:27 who I’d recruited from Northeastern University,

01:14:29 who was a type theorist,

01:14:31 and Luke Wagner, who’s still at Mozilla,

01:14:33 who was the compiler guy and the JIT guy,

01:14:36 they figured out how to codify what Alon had done

01:14:40 into a typed subset of JavaScript called Asm.js.

01:14:44 And this is a strange thing to think about

01:14:45 because it doesn’t have new syntax.

01:14:47 The types are casts that occur in dominator positions

01:14:52 in the control flow graph.

01:14:54 So it’s like a hack on JavaScript and it’s a subset

01:14:56 and it uses those bitwise operators

01:14:58 that I talked about copying from Java

01:15:00 to basically cast numeric types,

01:15:04 which are double position flowing point, into integers.

01:15:06 And so inside JavaScript, in the kernel semantics,

01:15:10 are integers.

01:15:11 And if you use these operators,

01:15:13 if a compiler emits them in the right places,

01:15:15 you can then treat them as typed values,

01:15:18 typed memory locations, and you can type check your program.

01:15:22 You can not only type check it, you can compile it.

01:15:24 And this is all in sort of linear time, Alon.

01:15:27 You can compile it to have deterministic performance.

01:15:30 It doesn’t touch the garbage collector.

01:15:32 It calls a bunch of functions that come from the C functions

01:15:35 or C++ code that you’re compiling.

01:15:37 And you can make the Epic Unreal Engine

01:15:40 go in 30 frames a second.

01:15:43 And when we did this in 2013 in the fall,

01:15:46 Tim Sweeney and I didn’t think it could be done quickly.

01:15:50 Thought it would take years.

01:15:51 And the team went to Raleigh, to Epic,

01:15:54 and in four days they had Unreal Engine ported

01:15:57 by pressing a compile button.

01:15:59 But they had to have WebGL,

01:16:01 which came from OpenGL.

01:16:03 Yes, it came to OpenGL, which came from Silicon Graphics GL.

01:16:06 They had to have Web Audio so they could map OpenAL,

01:16:09 which was another audio library standard to Web Audio,

01:16:11 which was kind of a Chrome idiosyncratic thing.

01:16:14 But they could make it work.

01:16:16 And they had to have Asm.js for fast C++ to JavaScript.

01:16:21 And if you didn’t have that fast compiler step,

01:16:25 the JavaScript you’d write by hand

01:16:27 trying to do an Unreal game would be too big and too slow.

01:16:29 It would touch the garbage collector.

01:16:31 It would not keep up with 30 frames a second

01:16:33 on the hardware, 2013 hardware.

01:16:35 So we demoed that at,

01:16:38 this must have been fall 2012 now that I think about it.

01:16:40 Because we demoed it at GDC,

01:16:42 Game Developer Conference 2013.

01:16:44 And people were stunned.

01:16:45 That’s like Unreal Engine, Unreal Tournament

01:16:47 running in my browser window.

01:16:48 No plugin, no Flash, no Java, no.

01:16:52 So were those the early days of,

01:16:54 because JavaScript now is able to run basically on par

01:16:58 with a lot of the C++.

01:17:01 And even before then,

01:17:02 you had the fast JavaScript VMs in 2008

01:17:05 when Chrome came out.

01:17:06 Just before it came out, Mozilla,

01:17:08 my friend Andreas Gal and I and others

01:17:11 hacked out Trace Monkey, our Trace based JIT.

01:17:14 The Squirrel Fish Extreme team at Apple did their JIT.

01:17:18 And we were all competing

01:17:19 on these crazy performance benchmarks.

01:17:21 It was a little bit too much tuning to the benchmark.

01:17:23 But JavaScript started getting fast

01:17:25 and developers started noticing it.

01:17:26 But it was still kind of its own high level language

01:17:29 with garbage collection.

01:17:30 The Asm.js step helped us go further

01:17:33 because until we really proved the concept,

01:17:37 people were still saying, well, JavaScript’s okay.

01:17:39 It’s getting faster, thanks to V8.

01:17:40 Everybody gave Google credit, especially Google.

01:17:43 But we need something to kill Flash.

01:17:44 Let’s use the portable native client code

01:17:47 that Google had acquired, native client.

01:17:50 Which is a separate lineage for taking basically C code,

01:17:52 compiling it into a software fault isolated container

01:17:56 of some sort using some kind of virtualization technique.

01:17:59 And maybe it can even be in process

01:18:01 and still be memory safe, that would be awesome.

01:18:03 But they ended up using process isolation too.

01:18:04 And that kind of weakened it.

01:18:06 And in the end, it was like portable native client,

01:18:08 okay, meet the new boss, same as the old boss.

01:18:11 This is the Google Flash, right?

01:18:13 But when we did Asm.js and we showed Unreal Engine working,

01:18:17 I think it was only a matter of time

01:18:18 before Google threw in the towel.

01:18:19 And in fact, everybody agreed in spring of 2015,

01:18:23 we’re gonna take what was proven by Asm.js

01:18:25 and make a new syntax, a binary syntax, it’s efficient,

01:18:29 that loads into the same JavaScript VM

01:18:31 that JavaScript loads into.

01:18:32 So there’ll be two source languages, one VM,

01:18:34 very important, one garbage collector,

01:18:36 one memory manager, one set of compiler stages.

01:18:40 And that’s called WebAssembly.

01:18:42 And that’s the successor to Asm.js.

01:18:44 And it’s important that it have binary syntax

01:18:46 because at the end of the day, especially on mobile,

01:18:48 if you’re downloading JavaScript,

01:18:50 even if you’re using LZ compression on the wire,

01:18:52 that’s cool, but you’ve got to blow it out into memory

01:18:53 and then parse the silly eight character function keyword

01:18:56 that I picked, when I should have used something shorter,

01:19:00 I picked it because of awk, the Unix tool.

01:19:04 So anyways.

01:19:05 I want to, but I’m not following the awk thread.

01:19:07 Yeah, don’t worry about it.

01:19:09 Is it surprising to you that,

01:19:12 how damn fast JavaScript is these days?

01:19:14 I mean, like, you’ve been through the whole journey.

01:19:16 I know every step of the way, but is it like,

01:19:19 I mean, it feels incredible.

01:19:22 It does, but I knew, so the funny thing is,

01:19:24 computer science is this big karmic wheel, right?

01:19:26 Wheel of Fortuna.

01:19:29 And in the, it’s about the 97,

01:19:32 I was loaned by Netscape to do due diligence for Sun

01:19:37 in their acquisition of Anamorphic,

01:19:39 which was David Unger and friends, people,

01:19:45 Craig, I’m forgetting his name, he went to Microsoft.

01:19:47 These Stanford language buffs who’d taken Smalltalk

01:19:51 and then David create itself

01:19:53 as a simpler sort of Smalltalk language

01:19:56 and made really fast, just in time compiling VMs for them.

01:20:00 And they, you know, well ahead of Java hotspot

01:20:04 or JavaScript V8 or any of these modern VMs,

01:20:07 figured out how to make dynamic code fast

01:20:10 because Smalltalk is dynamic language, right?

01:20:13 It has classes, it has, I think more lockdown declarative

01:20:16 syntax than JavaScript, but it’s fundamentally dynamic.

01:20:18 You don’t declare the types.

01:20:19 But you could infer the types as the program runs

01:20:24 and you start to form these ideas

01:20:26 about what types are actually flowing through key operations

01:20:29 and you form little so called polymorphic inline caches

01:20:32 that are optimized machine code.

01:20:35 The cache is the machine code that assumes,

01:20:38 does a quick check to make sure the type is right

01:20:40 and if it’s not right, it bails to the interpreter.

01:20:42 And if it is right, you go pretty fast.

01:20:44 And that short test is a predicted branch,

01:20:47 so things are pretty quick.

01:20:48 All that amazing stuff I knew about in the 90s

01:20:51 and I didn’t have time to do it

01:20:53 and Anamorphic got bought by Sun and they did hotspot.

01:20:57 And you needed that even in Java because at scale,

01:21:00 Java has some dynamic aspects due to invoke interface.

01:21:04 You can have basically collections of Java code

01:21:06 where you don’t know at the time each module

01:21:10 or package is compiled exactly what’s being called,

01:21:13 what subclass or what implementation

01:21:16 of an interface is being called.

01:21:17 And so you want to optimize using this sort of dynamic

01:21:20 polymorphic caching there too.

01:21:21 And they did that and hotspot, it’s amazing beast.

01:21:24 I’ve met like 13 people who all claim they created it.

01:21:27 I think one of them may deserve credit more than others.

01:21:31 But I didn’t get to do that in JavaScript.

01:21:34 And when we knew that Google was going to do their own

01:21:38 browser, which we knew at Mozilla around 2006,

01:21:42 I also met the team that did V8.

01:21:45 And it turns out it was Lars Bach,

01:21:46 who was one of the young engineers from Anamorphic

01:21:49 that got acquired by Sun.

01:21:50 And so Lars is like one of the world’s expert

01:21:52 on these kinds of virtual machines.

01:21:54 And he picked my brains about JavaScript.

01:21:56 I could tell he didn’t like it at the time,

01:21:58 but he had to do it.

01:21:59 And…

01:22:00 Oh, really interesting.

01:22:01 Yeah, in 2006 lunch at Google’s campus.

01:22:03 And then I had another friend who was DevRel at Chrome

01:22:07 and he said, yeah, we don’t know what they’re doing.

01:22:08 This is getting 2007 to fall, getting toward 2008.

01:22:12 We’re trying to get Chrome out

01:22:13 and we don’t know what’s going with the V8 team.

01:22:14 They’re off in Aarhus, Denmark,

01:22:16 rewriting their engine four times, which is good.

01:22:19 That’s the right way to do this kind of development.

01:22:22 They were learning JavaScript, including all its quirks,

01:22:24 which they came to hate the fire of a thousand suns,

01:22:27 which is one of the reasons that Lars and company did Dart,

01:22:29 their own language.

01:22:30 But they also made the language fast.

01:22:32 And meanwhile, we knew this was happening.

01:22:35 So we got our act together with Trace Monkey,

01:22:38 our tracing JIT at Mozilla and Apple I think was also aware.

01:22:41 And so they were doing their own JIT.

01:22:43 So the era of JITed fast JavaScript in 2008

01:22:46 had this prehistory going back to Smalltalk itself

01:22:49 and Anamorphic.

01:22:50 And again, the lineage is interesting

01:22:53 because you had Lars and Anamorphic

01:22:54 and then he ends up at Google.

01:22:55 Yeah, and today we have an incredibly fast language

01:23:00 that like you said, still,

01:23:02 without hate, you can’t have love.

01:23:04 So I think there’s both love and hate for this dance,

01:23:09 this rich complex dance of JavaScript

01:23:12 throughout its history.

01:23:12 There’s a dialectic for sure.

01:23:15 Today, JavaScript is the most popular language in the world.

01:23:20 Why by many measures?

01:23:22 Why do you think that is?

01:23:24 Is there some fundamental ideas

01:23:28 that you’ve already spoke to a little bit

01:23:29 but sort of broader

01:23:30 that you think is the most popular language in the world?

01:23:32 So I think I did, by doing first class functions

01:23:36 and taking the good parts of the C operator hierarchy

01:23:40 and just keeping things simple enough,

01:23:44 maybe it could have been simpler

01:23:45 but I had to make it look like Java

01:23:47 and interoperate with Java

01:23:48 that there was inherent goodness,

01:23:52 Aristotelian quality there.

01:23:54 And people perceive that

01:23:56 even through all the quirks and warts.

01:23:57 And then over time working on it with the standards body,

01:23:59 working on it not only as a core language

01:24:02 but in the context of HTML5 and making the browser better,

01:24:06 listening to developers, thinking about,

01:24:08 this is something that Nick Thompson wrote nicely

01:24:10 about on Hacker News, I was very flattered.

01:24:12 He said, Java was this thing

01:24:14 where the experts were writing the code

01:24:16 and it was compiled and you had to declare all your types

01:24:18 and Sun didn’t really give a damn about

01:24:20 the average programmer who wanted to build real web apps,

01:24:23 dynamic things.

01:24:25 And I was in there meanwhile doing a bunch of people’s jobs

01:24:28 making JavaScript survive those early years

01:24:31 when it was kind of touch and go.

01:24:33 JavaScript was considered a Mickey Mouse language.

01:24:36 It was for annoyances like the scrolling text

01:24:38 at the bottom of the browser in the status bar.

01:24:40 But I kept listening to developers working with them

01:24:43 and trying to make it run in that single threaded event loop

01:24:46 in a useful way.

01:24:47 And I think that forged something

01:24:49 that people have come to love.

01:24:51 Now you don’t always love the best thing, right?

01:24:53 I talked about Shakespeare sonnet about

01:24:58 I’m Mr. Sizer, nothing like the sun.

01:25:00 Or the scene from Josh Whedon’s film Serenity at the end

01:25:04 where the actual piece in the score by David Newman

01:25:08 is called Love where Captain Mal is teaching River Tam

01:25:12 about how to pilot the ship.

01:25:13 And she’s a super genius, super soldier.

01:25:15 She knows how to do it already.

01:25:17 And he’s basically talking about how you have to love

01:25:19 the ship because if you don’t, it’s going to kill you.

01:25:22 And then the piece falls off the ship.

01:25:23 It’s kind of like JavaScript.

01:25:26 You have to love it.

01:25:26 You have to love it because now people say we’re stuck

01:25:30 with it because it got this priority of place.

01:25:31 But there’s love underpinning that.

01:25:33 And actually the listening to developers,

01:25:35 that’s kind of beautiful.

01:25:36 There’s most successful products in this world

01:25:41 with all the messes, with all the flaws.

01:25:43 Perhaps the flaws themselves are actual features,

01:25:45 but that’s a whole nother, that’s a discussion about love.

01:25:48 But underneath it, there’s something

01:25:50 that just connects with people.

01:25:52 And it has to keep connecting.

01:25:53 If JavaScript kind of went off in this,

01:25:55 people sometimes complain about ES6.

01:25:57 Oh, you put classes in JavaScript.

01:25:58 I hate classes.

01:25:59 You’ve ruined it.

01:26:00 But it’s not true.

01:26:01 It’s a dynamic language.

01:26:02 Smalltalk had classes.

01:26:04 Python has classes.

01:26:07 There are lots of Lisp variants that have classy systems.

01:26:12 So people who don’t reject it based on some sort

01:26:16 of fashion judgment do use it and do interact

01:26:22 with the standards body.

01:26:23 The standards body is competing browser vendors mainly,

01:26:25 but also now big companies that use JavaScript heavily,

01:26:28 the Paypal’s and other such companies, Salesforce.

01:26:32 And they have to cater to web developers.

01:26:36 They have to hire developers who know JavaScript.

01:26:39 They have to keep their engines up to the latest standard.

01:26:43 And this creates all this sort of social structure

01:26:45 around JavaScript that is unusual.

01:26:47 I mean, you get C++ buffs that follow the inner workings

01:26:51 of C++, what is it now?

01:26:54 21 something, I don’t know.

01:26:56 I’ve lost track.

01:26:57 But it’s a more rarefied group.

01:26:59 It’s more like the old language, gray hairs.

01:27:02 Whereas JavaScript is a younger

01:27:04 and more vibrant and large crowd.

01:27:07 There’s a community feel to it.

01:27:09 There’s echoes, perhaps I don’t wanna draw too many

01:27:13 similarities, maybe you can comment on it.

01:27:15 There’s C++ is like Wall Street,

01:27:18 and the JavaScript is like Wall Street bets

01:27:21 from the recent events.

01:27:22 It’s like there’s a chaotic community of all,

01:27:24 and there’s some power from that distributed crowd

01:27:28 of people that ultimately.

01:27:30 It’s more thematic, it’s more of the people.

01:27:32 It lets people in without requiring these credentials.

01:27:35 I remember in the late 90s into the 90s,

01:27:38 people were all getting Java credentials.

01:27:39 And I knew people, and friends knew people

01:27:42 who became Java programmers, and you knew

01:27:44 they really should have been like nature guides or pilots.

01:27:47 They hated programming, but they thought,

01:27:49 I gotta make money, I’m gonna become a Java programmer.

01:27:51 Do you have some, because it’s such a monumental moment

01:27:55 in our current history, as a quick aside,

01:27:58 do you have thoughts about this huge distributed crowdsourced

01:28:03 financial happenings with Wall Street bets?

01:28:06 That’s like nobody could have, well,

01:28:08 you could have predicted, but the scale and the impact

01:28:11 of this kind of emergent behavior

01:28:13 from independent parties that could happen.

01:28:15 Like I said, my own experience with the dismal science,

01:28:19 as with physics, led me to reject a lot of bad models.

01:28:23 Economics was always compromised by politics,

01:28:26 political economy.

01:28:28 You could also argue that it was,

01:28:29 it used to be a branch of moral philosophy,

01:28:30 so it was concerned with the good,

01:28:32 and it became divorced and became sort of

01:28:34 in this quasi Newtonian way, just about,

01:28:37 everything’s just running by itself, don’t worry about it.

01:28:40 This monopoly’s crushing your Netscape company,

01:28:42 but that’s just nature.

01:28:43 And economics couldn’t, or doesn’t really have good models

01:28:46 for the Wall Street bets subreddit.

01:28:49 You know, they know how to squeeze a short, right?

01:28:52 So the amazing thing is you have Robinhood app,

01:28:56 which was, again, supposedly for the demos, for the people,

01:29:00 and eliminated the fee through various kinds of straddles

01:29:06 or some kind of spread operation

01:29:09 that helped them eliminate the fee or eat the fee.

01:29:11 And in fact, as a broker in these days,

01:29:14 because it takes two days to settle,

01:29:15 there’s counterparty risk, as they found out.

01:29:18 And so the Wall Street bets people,

01:29:22 you know, the memes are like the Terminator robot

01:29:25 with the $600 STEMI check and the hedge funds

01:29:30 that make little girl hiding under the desk.

01:29:34 There is a problem, which I talked about

01:29:36 in a recent podcast, which I’m conscious of

01:29:38 from the history of the web, and that is,

01:29:40 you could say it’s monopoly,

01:29:41 which antitrust wasn’t enforced

01:29:42 after USB Microsoft for a long time.

01:29:45 And a lot of this was due to the money interests

01:29:48 buying control of politicians.

01:29:50 And, you know, in Plato’s five regimes, that’s oligarchy.

01:29:54 That’s where we are.

01:29:56 And now we’re seeing a fight against the oligarchs.

01:29:58 I don’t know if it’ll work,

01:29:59 but you’re definitely seeing it.

01:30:00 And it’s also kind of hackerish, right?

01:30:02 It’s got a hacker ethos.

01:30:04 You know, hey, Robinhood, no fees.

01:30:05 Oh, interesting.

01:30:06 Hey, you know, I could buy a fraction of a share

01:30:09 in this thing, or I can keep buying with my stimulus check.

01:30:12 So I mentioned Hegel seeing Napoleon on the horse, right?

01:30:16 Hegel also talked about the cunning of reason

01:30:19 that you have this sort of, you know,

01:30:21 God sees history in full, and if you believe in God,

01:30:24 or, you know, we don’t know the future,

01:30:25 but there’s always this sort of fly in the ointment,

01:30:28 this unintended consequence that confounds

01:30:32 the best plans of the powers that be.

01:30:35 And we’re living through it.

01:30:37 I’m glad it’s not, you know, street warfare

01:30:39 or mechanized warfare, because it has been in the past.

01:30:43 It’s more like soft power, and people are fighting back.

01:30:50 Do you think it’s possible?

01:30:51 So JavaScript used to be for the front end of the web.

01:30:57 It’s now increasingly so being used for back end,

01:31:01 like running stuff that’s like behind the scenes.

01:31:06 And it’s also starting to be used quite a bit

01:31:10 for things like TensorFlow.js.

01:31:12 So starting to actually use like these heavy duty

01:31:14 applications that are using neural networks,

01:31:17 machine learning, and so on in the browser.

01:31:19 Is it possible in 10, 20, 30 years

01:31:24 that basically most of the world runs on JavaScript?

01:31:28 This is a dystopia and a nightmare to some people.

01:31:32 When we did Asm.js and WebAssembly,

01:31:34 I would joke and mean people with scenes like

01:31:37 Neo waking up in his pod in the matrix,

01:31:39 and he’s all skinny and weak and hairless.

01:31:42 And, you know, you realize in the future

01:31:46 that you’re living in some simulation

01:31:48 that it’s all running on JavaScript,

01:31:49 and you just scream forever.

01:31:51 It’s possible.

01:31:52 Gary Bernhardt does these funny talks.

01:31:54 He did watch.js, and then he did this

01:31:58 life and death of JavaScript, I think it’s called,

01:31:59 where he took some clever ideas that actually have

01:32:02 a thread of credibility to them.

01:32:05 But I mentioned software fault isolation.

01:32:09 In the old days, when we were using computers,

01:32:10 we said we’re gonna use the Unix monolithic monitor,

01:32:14 and it’s the privileged program.

01:32:15 This is before you even had hardware rings of protection.

01:32:18 Those, some of the early 60s operating systems

01:32:20 used hardware protection zones.

01:32:22 But Unix is privileged, and the program

01:32:25 that runs user code in a process is hosted.

01:32:30 It’s the guest, in the host, and you get to suspend it.

01:32:33 You get to kill it.

01:32:35 If it crashes, it doesn’t take down the whole OS.

01:32:37 It’s a wonderful idea, but the call into the kernel

01:32:41 is expensive, the system call, so called.

01:32:43 And this has even been optimized now

01:32:45 for things like getting the time of day,

01:32:46 so it doesn’t actually enter the kernel.

01:32:49 And meanwhile, hardware architectures

01:32:52 and virtualization techniques have gone

01:32:54 in a different direction, even to the point

01:32:56 where you can do software fault isolation very cheaply

01:32:58 without entering the operating system kernel,

01:33:00 and so you get unikernels and exokernels

01:33:02 and very lightweight VMs.

01:33:04 And so Gary took this idea and said, JavaScript

01:33:08 will take over computing, because the system call

01:33:10 boundary’s too expensive, so everything ends up

01:33:12 in JavaScript with these lighter weight

01:33:14 isolation enforcement mechanisms.

01:33:16 It’s not totally beyond belief.

01:33:18 It’d be WebAssembly too.

01:33:22 It’s nice to ask you sort of for advice to,

01:33:25 there’s so many people that are interested

01:33:26 in starting to learning about programming,

01:33:29 getting into this world.

01:33:31 Is there some number of languages,

01:33:34 three to five programming languages

01:33:36 that you would recommend people learn,

01:33:38 or maybe a broader advice on how

01:33:42 to get started in programming?

01:33:43 Well, so you asked about machine learning,

01:33:45 and JavaScript is a general purpose language,

01:33:47 and it’s a language that’s not that great

01:33:53 for doing matrix operations or doing parallel programming,

01:33:58 I would say, without using some extensions

01:34:01 or some libraries that have some magic in them.

01:34:03 So if someone wanted to learn,

01:34:08 there are amazing languages in sort of the APL family

01:34:11 that are very useful for, I would say, linear algebra,

01:34:14 which gets to a lot of the kernels in machine learning.

01:34:16 And so APL had like J and then K and their K variants

01:34:22 because the guy that did K is still going,

01:34:24 and they’re proprietary, but he’s still innovating there.

01:34:28 There are, you know, Python is used.

01:34:30 So people talk about TensorFlow.js.

01:34:31 Well, it’s not that surprising

01:34:33 because Python was heavily used for machine learning,

01:34:36 and Python was always, you know,

01:34:38 they didn’t have this fast just in time compiler tradition.

01:34:41 There were some projects that tried this,

01:34:43 and some of them were interesting.

01:34:45 PyPy was interesting,

01:34:46 but the philosophy with Python was,

01:34:50 oh, you need to go fast, write a C plugin,

01:34:51 and drop into C code.

01:34:53 So I think people should look at multiple languages

01:34:57 because there are different tools in the belt.

01:34:59 If you’re trying to do supervision or rapid prototyping,

01:35:02 you want a dynamic language.

01:35:03 You want to throw things together and see what works.

01:35:06 If you are trying to go down to the metal very fast,

01:35:09 well, I’m an old C hacker,

01:35:10 but I was also the executive sponsor of Rust at Mozilla,

01:35:14 and Rust has now escaped, you know,

01:35:16 from that sort of nest where it was born

01:35:18 to be adopted by a bunch of companies

01:35:21 that have a foundation in the works.

01:35:23 Some of the key core team members

01:35:24 are working now at Amazon and other places.

01:35:27 So it looks like Rust has reached escape velocity,

01:35:30 and Rust is an interesting language

01:35:31 because one of our goals there,

01:35:33 one of the reasons I sponsored it was we were all tired

01:35:35 of seeing those remote code execution vulnerabilities

01:35:38 due to C and C++, and we thought,

01:35:41 can we have a sort of safety property

01:35:43 through a type and effect system or an ownership system,

01:35:46 and Rust has that.

01:35:48 And that ownership system is interesting

01:35:50 because it doesn’t just give you memory safety.

01:35:52 There’s a sort of theorem for free,

01:35:53 a dual that falls out for protection against data races.

01:35:57 So Rust is better for low level programming.

01:35:59 You delimit your unsafe code

01:36:01 where you do have to be unsafe,

01:36:02 and you can prove certain facts about memory safety

01:36:05 and race condition avoidance.

01:36:08 And so I think people should learn these new languages.

01:36:11 I think Go is a great language.

01:36:13 I admire, you know, the Unix people who did that.

01:36:16 Ken Stoll was involved, Rob Pike, of course, David,

01:36:21 what’s his name, and other people.

01:36:23 Go is a huge success, really on the server side,

01:36:27 anywhere you have a lot of networking to do,

01:36:30 and it’s garbage collected, but it’s also very pragmatic.

01:36:33 It has that sort of C flavor.

01:36:35 As an old C hacker, I can’t get used to the fact

01:36:37 that they swapped the type and declarator

01:36:39 in the declaration order.

01:36:41 I haven’t used Rust, but this is one of the most respected

01:36:44 and loved languages currently, so it’s interesting.

01:36:46 Yeah, and it’s still young.

01:36:47 You look at these things, JavaScript is now considered old.

01:36:50 It’s gone through so many versions

01:36:52 that you can fall in love with it all over again.

01:36:54 25 plus years, you know, it’s an adult.

01:36:58 It should be out of the house.

01:36:59 But it could be around another 25 years.

01:37:03 Cannot rule it out.

01:37:04 So Rust will be around for a long time.

01:37:06 The longer you’re around, the more likely you’re Lindy,

01:37:08 and you’re around your wife.

01:37:10 A lot of people ask me, like,

01:37:13 I’m often torn between recommending either Python

01:37:15 or JavaScript as the first language to play with,

01:37:18 because, I mean, it’s difficult,

01:37:20 because it’s so easy to do JavaScript incorrectly.

01:37:25 It’s much easier to do it correctly these days,

01:37:29 or like, well, learn about programming.

01:37:31 But the cool thing about JavaScript

01:37:33 is that you can create stuff

01:37:36 that will put a smile on your face.

01:37:38 Like, as a developer, you can create stuff,

01:37:41 and it’ll visually look like something,

01:37:43 and it’ll do stuff, and it makes you feel good.

01:37:45 It makes you fall in love with programming.

01:37:47 With Python, you could do the same.

01:37:48 It’s a little slower.

01:37:49 And with C++, it takes five to 10 years

01:37:51 to write a program that actually does something.

01:37:54 So, like, there’s that tension between

01:37:56 is JavaScript the right first step, or is it Python?

01:37:59 And I’ve been going back and forth on those two.

01:38:02 My Python, right, it came from a lineage of ABC,

01:38:05 which was a pedagogical language in the Netherlands.

01:38:09 And it, you know,

01:38:12 it was a good teaching language, too.

01:38:16 I think it is a good teaching language,

01:38:17 and it’s a little more restrictive

01:38:19 in that if you misspell something

01:38:21 in a way that JavaScript might let run,

01:38:25 let reach runtime, it’ll get stopped

01:38:26 at syntax check in Python.

01:38:30 That’s good for beginners.

01:38:31 I think the sloppiness that some people object to,

01:38:34 like, people were just tweeting at me,

01:38:37 having just learned JavaScript.

01:38:38 They said, I can take a number, and I can index into it,

01:38:41 and get undefined out of it as a property.

01:38:43 Why is that?

01:38:44 A number’s not an object.

01:38:44 And I explained why it is,

01:38:46 because like in Java, the primitive types,

01:38:48 which unfortunately are not objects,

01:38:49 can be automatically boxed or wrapped by an object.

01:38:53 And I made that implicit.

01:38:55 In Java, it’s typed, and you have to declare things,

01:38:58 and you’ll get type errors.

01:39:00 But there are cases in Java where you get auto boxing

01:39:03 or auto wrapping, because you’ve declared that you want it.

01:39:06 In JavaScript, it just happens.

01:39:07 And so once I explained it, like, oh, wow, I get it.

01:39:10 But it also means that you can commit a blunder that just.

01:39:13 You don’t get punished for it, you don’t detect.

01:39:15 You get an undefined value,

01:39:16 and you don’t know where it came from.

01:39:17 Right.

01:39:19 I’ve been reading a lot about military history recently.

01:39:23 And one way to paint the picture of browsers,

01:39:26 internet browsers, is through the various wars

01:39:29 throughout its history.

01:39:30 I don’t know if that’s a useful way to look at it,

01:39:32 but we’ve already talked a little bit about Netscape

01:39:34 and Internet Explorer in the early days.

01:39:38 Can you tell the story of the different wars,

01:39:41 if that’s at all an interesting way to look at it,

01:39:43 of the 90s and to today?

01:39:46 Yeah.

01:39:47 So I mentioned that Microsoft, you know,

01:39:49 which was convicted for it, did abuse its monopoly,

01:39:51 but they had a pretty good team by the time they did IE4.

01:39:55 And Netscape, unfortunately, I was like second floor,

01:39:57 and I was friends with all the first floor people,

01:39:59 the front end guys who did the JavaScript event hookup

01:40:02 and things like that,

01:40:04 that that team was fairly burnt out.

01:40:07 And I think having gone public,

01:40:10 the upper management wanted to buy a bunch of companies

01:40:13 to try to go head to head with Microsoft.

01:40:15 Didn’t work, but buying a bunch of companies

01:40:17 usually doesn’t work.

01:40:19 I think the modern sort of approach roughly

01:40:22 is like Mark Zuckerberg took,

01:40:25 which is to keep them at arm’s length

01:40:26 and let them do their thing.

01:40:28 And now that he’s pulling WhatsApp in

01:40:29 and people are fleeing it

01:40:31 because it’s tied into the ad surveillance.

01:40:33 But, you know, for a while,

01:40:36 they’re keeping it separate really does work

01:40:37 because you bought it for its value,

01:40:39 it’s complimentary, and you’re not messing with it.

01:40:41 With Netscape, when they bought a bunch of companies,

01:40:43 they had some of the first floor people

01:40:45 or the founders burned out.

01:40:46 They had newcomers who wanted their turn to do the browser,

01:40:51 and they hadn’t really done browsers or understood them.

01:40:54 And so Netscape 4 was originally supposed to be 3,

01:40:57 and it was so late, they renumbered it.

01:40:58 We did a 3 release.

01:41:00 Jamie and a few others put some extra effort into.

01:41:03 SecureMine was supported in the built in mail program.

01:41:08 And Netscape 4 was late,

01:41:10 and it was only on Windows at first,

01:41:11 and Microsoft had really started doing better,

01:41:14 like they do.

01:41:15 They copy, and the first version’s trash,

01:41:17 and the second one, you’re starting to feel threatened.

01:41:19 The third one, you can tell what’s gonna happen,

01:41:21 and the fourth one’s good.

01:41:22 And plus there’s the benefit, like you said,

01:41:24 that it comes as a default browser.

01:41:26 Yes, and yet Netscape’s screwing it up,

01:41:28 and Microsoft really putting some quality people on it.

01:41:32 IE4 was good.

01:41:33 On Windows, it was good.

01:41:34 And they did the dynamic HTML innovations.

01:41:38 Scott Isaac’s my old buddy,

01:41:39 a former accountant who programmed in BASIC

01:41:42 and became what Microsoft calls a program manager,

01:41:45 which is kind of an elevated position.

01:41:48 You can be a programmer or an engineer and track,

01:41:50 but you switch to it,

01:41:51 and you sort of lead a lot of design and standards efforts.

01:41:54 And so Scott Isaac put in a lot of those funky DHTML APIs

01:41:58 that didn’t quite have the same flavor

01:42:01 as the stuff that I did, and neither of them

01:42:03 was like the later sort of verbose Java,

01:42:05 like DOM W3C standardized.

01:42:08 But IE4 was pretty darn good.

01:42:10 I remember a friend, Scott Furman and I,

01:42:12 got invited by Scott Isaac to Gordon Beers in San Jose.

01:42:16 They were doing a preview of IE4.

01:42:19 This must have been 1997.

01:42:21 And Scott said, yeah, here’s the new graphics stuff

01:42:25 we’re doing.

01:42:25 We’ve got something like your Netscape layers.

01:42:28 We’ve got VML, a vector markup language.

01:42:31 We can do virtual reality.

01:42:33 And Scott and I looked at each other and said,

01:42:35 we’re doomed, right?

01:42:36 Microsoft was starting to fire on all cylinders.

01:42:38 So I have to give them credit for that,

01:42:40 even though they abused their market power.

01:42:42 And maybe I shouldn’t give them credit

01:42:44 for having the resources to hire talented people,

01:42:45 but they did a credible job on IE4.

01:42:48 What really was bad was that phase of the browser wars

01:42:51 ended with monopoly and perhaps due to the antitrust case,

01:42:56 perhaps due to regulation in Europe,

01:42:59 perhaps just due to Microsoft not liking

01:43:01 dealing with standardization, they let it rot.

01:43:05 They just abandoned it, IE5, 5.5, IE6 later,

01:43:10 but these were not well maintained.

01:43:12 They had a lot of security bugs.

01:43:14 It felt really closed and outdated too,

01:43:16 even though it’s getting updated, it’s just weird.

01:43:19 Browsers like Mozilla and then Firefox were adding tabs.

01:43:22 Opera had a version of tabs and they didn’t add tabs.

01:43:25 And they pop up blocking,

01:43:27 something I should have done from the start.

01:43:28 People realized that you can tell

01:43:30 when the user clicks something

01:43:31 and it goes in JavaScript to open a little window,

01:43:34 that you can sort of inspect the stack

01:43:36 and see that the click originated that,

01:43:38 and it’s probably okay.

01:43:39 Whereas if you’re just loading a script

01:43:40 and it opens a new window, that’s a spam technique

01:43:43 and you should block it.

01:43:45 Tabs were a brilliant innovation.

01:43:47 Like you said, Opera had it,

01:43:48 but I remember I fully switched to Firefox the moment.

01:43:52 I remember the moments of first using tabs in Firefox

01:43:57 and not liking it for the first few minutes,

01:44:00 and then like, wait a minute.

01:44:02 You get the groove, yeah.

01:44:03 You get the groove and you understand.

01:44:05 So that timing, what year was this?

01:44:08 Because also as a aspiring web designer,

01:44:12 I use Table, so we didn’t mention Layout or CSS much.

01:44:16 There’s also a change in the way

01:44:18 the frames were going away.

01:44:21 So there’s a change in the way websites looked

01:44:23 and behaved and all that kind of stuff.

01:44:25 CSS finally, which Microsoft embraced with IA4

01:44:28 and Netscape never really did right.

01:44:30 CSS became a better standard over time

01:44:33 for doing Table Layout that relieved you

01:44:36 of the need to use what are called spacer GIFs,

01:44:39 spacer GIFs, right?

01:44:40 Images, you would throw into space at tables.

01:44:44 The typographic power of the web has gotten better,

01:44:47 but it’s still not on the level of PDF

01:44:49 and you can’t do advanced typography,

01:44:51 but it’s gotten really better.

01:44:53 And even then, tables were getting better.

01:44:54 If you were using Firefox, that would have been 2004

01:44:57 because it was called Firebird until earlier that year.

01:45:00 No, yeah, I think it wasn’t.

01:45:01 2003.

01:45:02 I don’t remember, it was a Firebird, which had tabs?

01:45:06 We had tabs the whole way.

01:45:07 So it started out as Mozilla slash browser in 2002,

01:45:10 became Phoenix.

01:45:12 There’s a BIOS that has an embedded version of IE

01:45:14 and they said, we’re called Phoenix Technologies,

01:45:16 you can’t use Phoenix.

01:45:17 And so we said, okay, we’ll call it Firebird.

01:45:19 And then this Australian centered

01:45:21 open source database project started really like

01:45:24 in the true Mad Max style, just screaming at us saying,

01:45:27 you can’t use Firebird.

01:45:28 And I had to sort of be the ambassador and say,

01:45:30 okay, we’re gonna rename.

01:45:31 And they’re like, we don’t believe you,

01:45:32 you shouldn’t have used it, we hate you.

01:45:33 And then we renamed it to Firefox.

01:45:36 And they’re like, ah, we love you.

01:45:38 And then I haven’t heard of them ever since.

01:45:40 But Firefox was a clever name.

01:45:41 We had to think of something distinctive.

01:45:43 We wanted to keep the fire going.

01:45:45 And it turns out there’s a red panda, right?

01:45:48 That’s the nickname for it.

01:45:49 So that’s the second set of browser wars.

01:45:51 So how was Firefox born, how was Mozilla born?

01:45:59 There’s a long story there too.

01:46:01 So Netscape got acquired by AOL,

01:46:02 which as I say was a reasonable happy ending

01:46:05 for a lot of people,

01:46:06 because Netscape otherwise was gonna go out of business

01:46:08 because Microsoft was just killing its market.

01:46:10 There was no way to charge for a browser.

01:46:12 Windows came with IE, IE4 was pretty good

01:46:15 and Netscape 4 wasn’t that good.

01:46:17 It took a while to get better.

01:46:20 But the Netscape executive said,

01:46:22 let’s do an open source escape pod.

01:46:25 And like in Star Wars, A New Hope,

01:46:27 the gunner won’t shoot it

01:46:28 because there’s no life forms on board, right?

01:46:30 It’s not a threat.

01:46:31 And so we did Mozilla in 1998

01:46:33 and it looked like it was going to initially

01:46:37 just give the world an open source browser.

01:46:40 But it’s really hard to get people to work

01:46:42 on this sort of hairball that had been hacked up

01:46:43 over by that point four years.

01:46:46 And it also couldn’t have the crypto module

01:46:49 for secure sockets, so called,

01:46:51 or now transport layer security.

01:46:52 That was an electronic munition.

01:46:54 We were not allowed to release that

01:46:56 in the full 1024 bit key strength.

01:47:00 And yet people, one of whom I happened to meet previously

01:47:05 at SGI when I went on a sales support engineering trip,

01:47:08 Tim Hudson in Brisbane, Australia,

01:47:11 and Eric A. Young did what became open SSL.

01:47:16 It was called SSL EAY after Eric’s initials.

01:47:19 And Tim and Eric took their open SSL

01:47:23 outside of the purview of the NSA

01:47:25 and the Department of Commerce,

01:47:27 and they stuck it into Mozilla’s code.

01:47:28 And that was perhaps the best hack that was done

01:47:31 in the first few months after we open sourced the browser.

01:47:34 We had other problems.

01:47:35 The politics inside Netscape were riven

01:47:37 by these acquisitions.

01:47:38 So the one acquisition that kind of messed up Netscape

01:47:41 for also wanted to keep doing a proprietary mail

01:47:44 and groupware program, not Jamie Zawinski’s mail program

01:47:48 that was in Netscape two and three.

01:47:50 And they held it back from open source.

01:47:51 We didn’t have a mail program, it was just a browser.

01:47:54 We didn’t know what AOL will do to us.

01:47:56 Turns out they didn’t interfere with us for a long time.

01:47:59 But Netscape wasn’t the best steward of Mozilla.

01:48:02 We were operating Mozilla as a pirate ship

01:48:05 without a legal entity.

01:48:06 So most of us worked for Netscape

01:48:08 under a separate organization.

01:48:10 And initially the first engineering manager,

01:48:15 Tom Paquin of Netscape was the Mozilla founding manager.

01:48:19 But he left pretty quickly

01:48:20 and he left me as the acting manager,

01:48:23 which is more like method acting in my case.

01:48:25 And that was my first management stint.

01:48:28 But then someone who’d written the licenses,

01:48:32 Mitchell Baker, she was a lawyer at Netscape.

01:48:34 She was involved in the open source license decision making

01:48:38 and the actual writing and construction of those licenses.

01:48:40 That was Mitchell’s job, Netscape public license

01:48:42 and the truly open Mozilla public license.

01:48:45 And there were two because Netscape needed,

01:48:47 because of some encumbered code, needed some special rights

01:48:49 but that went away over time.

01:48:51 Mitchell was always interested in Mozilla

01:48:52 and she came back from maternity leave

01:48:54 and she said, I’ll be the manager if you want.

01:48:55 And Jamie and I said, sure.

01:48:57 And then Jamie quit, he quit after a year.

01:48:59 He said, this didn’t work, I’m sorry.

01:49:02 He acted like it was a total failure

01:49:04 because Mozilla didn’t restart the browser market.

01:49:08 But there’s no way it could have, right?

01:49:09 Netscape was still shipping variants of Netscape 4,

01:49:13 which was based on the old code.

01:49:15 Mozilla was trying to react to the code

01:49:18 to make greenfield for developers.

01:49:19 So it was one of my big goals.

01:49:20 It wasn’t a technical goal so much as again, a social goal.

01:49:24 People wanted a more standard spaced browser.

01:49:26 They wanted less of a hairball that had been hacked on

01:49:29 by ex grad students starting four years prior.

01:49:32 So we said, we’re gonna make a modular code base.

01:49:35 We’re gonna use a variant or an open source version

01:49:37 of Microsoft’s component object model,

01:49:39 has reference counting and standardized V tables,

01:49:43 virtual calls and C++.

01:49:45 And we’re gonna use JavaScript.

01:49:47 We’re gonna have a bridge between those two

01:49:48 so you can script those components

01:49:50 just like Java components.

01:49:52 We’re going to make a portable front end

01:49:54 with a markup language for the user interface.

01:49:57 Not tables, not HTML, but custom menus

01:50:00 and dropdowns and toolbars.

01:50:02 And that was called Zool, XML user interface language.

01:50:06 And some real talent on the Netscape side delivered that.

01:50:08 Dave Hyatt, who was instrumental in Zool,

01:50:11 Chris Watterson, Joe Hewitt, Blake Ross.

01:50:15 And Blake was an intern.

01:50:17 He was like a high school aged intern at Netscape.

01:50:20 And at some point we were innovating rapidly

01:50:23 in the Mozilla world and Netscape was still caught up

01:50:26 in this management mess from these acquisitions

01:50:29 and it wasn’t delivering.

01:50:30 And every year they were wondering if ALO was gonna come

01:50:32 and start beheading the executives

01:50:34 because it didn’t do anything useful.

01:50:36 And there was this thought

01:50:36 you should take the Netscape browser engine

01:50:38 and put it in the Windows ALO client,

01:50:40 which was the dial up client

01:50:41 that all the increasingly aging users of ALO were using.

01:50:45 Never happened.

01:50:46 It would have been too big a change.

01:50:48 So it wasn’t clear why ALO bought Netscape,

01:50:49 but as I said, they left it alone.

01:50:50 But Netscape didn’t leave Mozilla alone.

01:50:53 And so in 2001, Mitchell called me up and said,

01:50:58 I’m no longer employed.

01:50:59 And I was like, what?

01:51:00 You quit?

01:51:01 No, no, this wasn’t my choice.

01:51:02 And there was a layoff which maybe accidentally

01:51:05 or on purpose got rid of Mitchell.

01:51:06 But the funny thing was we had an open source project.

01:51:08 We had a lot of the engineers on staff on our side

01:51:11 and we had people we’d hired through the Mozilla community

01:51:15 who were top notch.

01:51:16 They’d risen, they came in high quality, they knew the code

01:51:19 and they actually were better than the average

01:51:21 or median hire of Netscape.

01:51:23 And so the funny thing was the executive

01:51:26 who thought they’d gotten rid of Mitchell in the layoff

01:51:29 on the next week’s community call around Mozilla

01:51:32 and what to do, there’s Mitchell.

01:51:35 And so this showed you can kind of transcend

01:51:36 your boundaries of corporate open source

01:51:40 if you get a project that has enough loyalty,

01:51:42 even among the paid staff.

01:51:43 Because we had outside people contributing.

01:51:45 We had people at Red Hat and a few other places,

01:51:47 but the majority of the hackers were employed by Netscape.

01:51:50 But a lot of them at that point had come from the community

01:51:53 and others got the community and wanted to work with it.

01:51:55 And it was really the weakest engineers at Netscape

01:51:57 who didn’t like Mozilla and didn’t like the crucible

01:52:01 of competing with the better programmers.

01:52:04 So if the project is good enough, it will rise,

01:52:06 the Phoenix will rise out of the…

01:52:08 That’s exactly right.

01:52:09 And so we had this Mozilla code base

01:52:10 that was getting better.

01:52:11 In fact, I think at some point in 2002

01:52:13 when we declared Mozilla 1.0, I engineered a roadmap

01:52:17 that successively through similar sort of six week,

01:52:20 five week releases, like we all do with browser releases

01:52:23 nowadays, Chrome does and Firefox braved us three weeks.

01:52:26 We got to a point where we said, you know what?

01:52:29 It doesn’t suck.

01:52:30 This is like the 1.0 that you want to release

01:52:33 because if you hold it back any longer to polish it,

01:52:35 you’re denying others the ability to use it.

01:52:36 It’s like pro engineer, the mechanical CAD tool

01:52:39 embedded the code, they embedded the layout engine.

01:52:43 And Mozilla 1.0 was like a Netscape communication suite.

01:52:46 We had at that point gotten male people

01:52:49 to reintegrate mail and news and we had an editor for HTML.

01:52:53 And it felt like a 90s suite, suiteware.

01:52:57 And it felt kind of bloated.

01:52:58 And the people who were taking that Mozilla open source

01:53:02 and then adding Netscape flavor to it

01:53:05 were not calling the shots right.

01:53:06 And they were also under AOL’s thumb a little bit

01:53:08 and that they said, well, we should probably put

01:53:10 the AOL instant messenger chicklet on the toolbar.

01:53:13 We should put the ICQ, the other messaging system

01:53:16 that AOL had acquired.

01:53:17 We should put the ICQ button on the toolbar.

01:53:19 And pretty soon Netscape looked like a bit of a NASCAR

01:53:23 badged version of Mozilla.

01:53:24 And that also made Mozilla more popular.

01:53:27 And yet they had contrived to fire or lay off the leader

01:53:35 and we carried on with an open source structure

01:53:38 where Mozilla was still, you know, Mitchell was calling

01:53:40 sort of management or project level shots

01:53:44 and I was calling technical shots.

01:53:46 And we had a popular suite, but we thought,

01:53:51 why not make it just a browser?

01:53:52 Because it’ll be simpler, it’ll do one job well.

01:53:55 And even then we can strip it down by having extensions.

01:53:58 So Dave Hyatt and Blake Ross, the high school aged intern

01:54:03 did the first version, which was called Mozilla slash browser.

01:54:07 It was very, the small group of us, Ian Hicks

01:54:09 and Asa Dotzler, me and Joe Hewitt and Hyatt and Blake.

01:54:14 And Hyatt was really the senior hacker.

01:54:16 He’d done all these things like amazing cross platform menus

01:54:20 through the user interface, markup language.

01:54:23 And he knew how to do tab browsing.

01:54:24 He’d implemented it natively on Mac OS at the time

01:54:28 in Camino originally called Chimera.

01:54:31 He’d written multiple implementations,

01:54:34 which was a thing programmers should do.

01:54:36 It’s like the V8 team did for those missing years

01:54:38 when the rest of the Chrome team’s like, where’s V8?

01:54:41 In fact, Dave’s wife, Rebecca told me a story

01:54:44 about when they were at UIUC,

01:54:45 they were also University of Illinois grad students.

01:54:49 There was an assignment, it was a programming assignment

01:54:51 it was supposed to do at the end of the semester.

01:54:53 And Dave’s friend was this, I’m gonna go think

01:54:56 and I’m gonna design and I’m gonna make this

01:54:59 platonic perfect form of the program.

01:55:01 And then I’m gonna write it at the end when it’s due.

01:55:03 And Hyatt just went there and started hacking.

01:55:05 He wrote one version, he wrote a second version,

01:55:06 a third version, end of the semester comes around.

01:55:09 The friend’s not doing too well.

01:55:11 It wasn’t perfect and it wasn’t written.

01:55:13 I’m not sure how that story ended for him,

01:55:14 but Dave’s version was a fifth iteration, it was great.

01:55:18 And so he’d done that with everything you need

01:55:20 in a tabbed browser.

01:55:21 And this really showed well in Phoenix,

01:55:24 what we called Phoenix and I had to rename two more times.

01:55:28 And Blake went to Stanford, he became a Stanford student

01:55:32 and couldn’t work on it.

01:55:34 Dave Hyatt went to Apple in 2001.

01:55:36 He was one of the founding Safari team members.

01:55:39 Interesting, wow.

01:55:40 But he was still blogging about tabbed browsing.

01:55:43 I think Apple at some point said you should.

01:55:44 Safari have tabbed browsing?

01:55:46 Yeah, but it was because of Hyatt.

01:55:48 Hyatt was quite a feather in their cap.

01:55:49 Don Melton, who had been the engineering manager

01:55:53 for Safari from the beginning, had been in Netscape also.

01:55:56 And so there’s this diaspora of talent

01:55:58 and yet Hyatt was still kind of writing blog posts

01:56:01 about how to do tabs right.

01:56:03 And at some point Apple said, don’t blog about that.

01:56:05 That’s our proprietary tab technology.

01:56:07 And I was like, no, it’s not.

01:56:08 It was an opera and I’ve refined it.

01:56:10 So we had to replace people and we had Ben Goodger,

01:56:15 a New Zealander we hired at Netscape.

01:56:18 And he stepped in to be the Firefox lead.

01:56:21 And we also had this weird circumstance

01:56:23 where AOL finally did notice that Netscape

01:56:26 was kind of an albatross,

01:56:28 that they bought it for no particular benefit.

01:56:31 And even then the AOL politics were also heinous,

01:56:33 sort of East Coast politics.

01:56:35 I remember taking two trips there

01:56:36 because I was a principal engineer.

01:56:37 And so us principal engineers got trotted out

01:56:39 to do dog and pony shows in Dallas, Virginia.

01:56:42 And the AOL opera management was very East Coast in flavor.

01:56:46 And they were at that time merging with Time Warner,

01:56:49 which did not go well.

01:56:50 So one of these years we went out there

01:56:52 and we were all doing dog and pony shows

01:56:53 and there were these characters

01:56:55 that were sort of like marketing guys.

01:56:56 One of them was wearing a cravat

01:56:57 and one was named Reggie.

01:56:59 And they were very you rather than non you.

01:57:05 Or they were like what’s what’s Stoneman’s

01:57:07 metropolitan film, UHB, urban haute bourgeoisie.

01:57:13 They were haute bourgeoisie.

01:57:15 They were funny and they were kind of useless

01:57:19 and kind of preppy.

01:57:20 And then the next year we went back

01:57:21 and I said, where’s Reggie?

01:57:22 And it’s like, oh, Reggie’s not here anymore

01:57:24 because Time Warner realized that the merger

01:57:26 wasn’t in their interest either.

01:57:27 And then the sort of knives came out.

01:57:29 And these mergers rarely work, right?

01:57:31 This is very difficult.

01:57:32 You get these giant companies

01:57:33 and they think there’s gonna be synergy.

01:57:35 That was the 90s, late 90s watch word.

01:57:37 And there wasn’t synergy with AOL buying Netscape

01:57:39 and there wasn’t synergy with Time Warner and AOL.

01:57:41 But did AOL ever really work?

01:57:43 Was it ever really cool?

01:57:44 Like the same kind of fire and excitement

01:57:46 that Firefox eventually created,

01:57:48 was that ever there in AOL?

01:57:51 AOL was the right time to do a dial up service

01:57:55 that got distribution by basically

01:57:56 leaflet bombing compact discs on the country.

01:58:00 And they beat out CompuServe and the other ones,

01:58:04 Prodigy, and then the web happened.

01:58:06 And so you had almost like this isolated continent,

01:58:10 like some of the evolutionary biologists I follow

01:58:14 make fun of the funny large marsupial mammals of Australia,

01:58:19 how silly they are.

01:58:21 And so AOL is like Australia.

01:58:23 Yeah.

01:58:23 And you saw it over time because they kept aging

01:58:26 and they were using AOL to get online

01:58:28 and they couldn’t really use a web browser.

01:58:30 And it became sort of a valued cohort

01:58:33 because they still have relatively high

01:58:35 socioeconomic status and they have grandchildren,

01:58:37 but it’s going away, it’s dying at some point.

01:58:39 Towards the end of the aughts, that decade,

01:58:42 and then to the decade 2010 plus,

01:58:45 that Firefox became this incredible,

01:58:48 I forget when Chrome came out, but.

01:58:50 2008, September.

01:58:51 2008, but Firefox was the sexy cool thing

01:58:55 that represented a lot of the cutting edge technologies

01:58:57 and all that kind of stuff.

01:58:58 Web 2, it was amazing.

01:59:00 Kim O’reilly and John Battelle did the first Web 2 conference

01:59:03 which eventually became huge and they split it.

01:59:05 But that was in 2004, it was right when Firefox was out.

01:59:08 Craigslist was huge, it was killing classified revenue

01:59:11 for newspapers, but there was just this ferment.

01:59:14 People starting.

01:59:15 Wikipedia along there somewhere.

01:59:16 Gmail was already done and it was an impressive web mail.

01:59:19 There were others before it like Hotmail,

01:59:21 but Gmail was really impressive from Google.

01:59:22 And Google Maps, people started seeing what could be done.

01:59:26 They thought how can you drag the map around

01:59:28 and how does that work?

01:59:29 And it was all JavaScript and images and.

01:59:32 So Gmail was 2003, four?

01:59:34 Yeah, it actually started quite early.

01:59:36 It might’ve been 2002 or three,

01:59:37 but by the time we started dealing with Google and Firefox

01:59:40 to get the search deal,

01:59:41 which was the main revenue source for Mozilla,

01:59:43 and still is, 2004, early, Sergey Brinz,

01:59:47 one of his trusted engineer guys, Fritz Schneider,

01:59:50 made contact with me at Mozilla and we started talking

01:59:53 and we realized search and browser need each other.

01:59:56 And this is deeply true, right?

01:59:58 This is still true.

01:59:59 This is why a lot of the search engines

02:00:01 have their own browsers.

02:00:02 Yeah, so in case people don’t know,

02:00:03 the main revenue source for the browser

02:00:05 is the default search engine,

02:00:07 which is kind of incredible to think about

02:00:09 that that is a revenue source.

02:00:11 It’s a little bit sad.

02:00:12 Yeah, it leads to this capture or kill effect

02:00:14 where you have the search engine own its own browser

02:00:17 and other browsers may struggle to get the distribution

02:00:21 we talked about earlier.

02:00:22 So where, and you said you’ve figured out

02:00:26 that Google is working on its own browser

02:00:29 at some point there.

02:00:29 2006, yeah.

02:00:30 2006, so would you say Firefox versus,

02:00:33 was Internet Explorer part of the war here

02:00:35 or was the Firefox versus Chrome?

02:00:37 So Firefox didn’t quite cause Microsoft to reconvene IE.

02:00:40 They did do IE7 and I remember being on a plane

02:00:44 back from the standards meeting,

02:00:46 JavaScript standards meeting from Seattle, from Redmond,

02:00:48 and there was some Microsoft guy in front of me.

02:00:52 Turns out my wife knew him from her past life

02:00:54 before we married and he was just this bearded big guy

02:00:58 and he was like,

02:00:59 we should have just killed Firefox in the cradle.

02:01:01 All we needed to do was add pop up blocking in tabs

02:01:04 and we could have made Internet Explorer kill Firefox.

02:01:06 And it’s like, shoulda, coulda, woulda, pal.

02:01:07 And I was right behind him during this.

02:01:10 But they didn’t, they were slow

02:01:11 and IE7 wasn’t that great.

02:01:13 And what really got them started I think was Chrome.

02:01:18 And I talked to Larry Page in 2005,

02:01:21 I think I said, we’re talking about the Firefox relationship

02:01:24 but he was also saying, what about WebKit?

02:01:26 This was Apple’s version of the old KHTML engine from Linux,

02:01:32 the KDE side of Linux that was used in the Conqueror browser

02:01:35 also with Ks that Apple had forked.

02:01:38 And in 2005 was when Apple’s principals

02:01:41 including Dave Hyatt, Maciej Stokowiak,

02:01:43 some of my friends who are still there said,

02:01:45 we must stop patch bombing this poor KHTML project.

02:01:48 We should make a proper Mozilla like organization,

02:01:50 webkit.org.

02:01:51 Now it wasn’t a separate nonprofit or anything.

02:01:53 It was still Apple, it was Apple controlled

02:01:55 but they made their fork first class

02:01:58 and they made it be something that they all worked in

02:02:00 and lived in.

02:02:01 And that was before Chrome.

02:02:03 And then Chrome, Larry Page said, what about WebKit?

02:02:05 I said, yeah, it’s nice.

02:02:06 I have friends who work on it.

02:02:08 You might use that if you do your own browser.

02:02:09 Why don’t you do your own browser?

02:02:10 Don’t worry about Firefox.

02:02:11 You should do your own browser.

02:02:12 You can have your own opinion of how it should work.

02:02:15 And sure enough they did.

02:02:17 So by 2006, we knew they’d been working on it.

02:02:19 Some of my friends who’d been at Netscape

02:02:21 did the original demo.

02:02:22 And the demo wasn’t what you thought.

02:02:24 It didn’t have the fast JavaScript yet.

02:02:25 That was still off in Denmark on a farm.

02:02:29 Did it have tabs?

02:02:30 It had tabs because all browsers had tabs at this point.

02:02:32 And it had this software fault isolation I mentioned.

02:02:37 It was through process isolation.

02:02:39 So in theory, each tab has some operating system process.

02:02:43 And so what’s gonna take your tab down?

02:02:45 Well, WebKit has bugs that can crash it

02:02:48 but Flash was still big then.

02:02:49 All the restaurant sites remember.

02:02:51 And Flash crashed a lot.

02:02:53 So the demo that I heard about,

02:02:55 my friends at Netscape as a lot of people did,

02:02:57 inside Google was the sad tab.

02:03:00 They showed an early version of Chrome

02:03:02 which is just this bare bones tab browser.

02:03:04 They loaded a site with a known Flash volume

02:03:06 and then suddenly Flash crashes.

02:03:08 And everyone expected the whole browser to go down.

02:03:10 But instead you got this little sad face in the tab

02:03:13 and you could reload it and there it is again.

02:03:14 So this was an improvement.

02:03:16 It was a real move for security.

02:03:18 It was based on a company they acquired

02:03:21 called Green Border.

02:03:22 They had some really big brains like Olfar Erlingsson

02:03:25 I think was involved.

02:03:25 And they had done some exotic security stuff

02:03:28 but they ended up simplifying it to this process isolation.

02:03:32 And it was good.

02:03:34 And Firefox didn’t have it at the time.

02:03:36 So we were still struggling with security bugs.

02:03:41 So we knew Chrome was coming

02:03:42 but it took two more years to come out.

02:03:45 And we were still getting the Google search revenue

02:03:48 and we were still making Google the default engine

02:03:51 and Firefox was still growing.

02:03:52 Firefox grew I think until 2011.

02:03:55 That was when it peaked.

02:03:56 And as it started falling, it was because of Chrome.

02:03:59 Chrome came out in 2008 and it had a comic book

02:04:02 that leaked accidentally that showed some of the people

02:04:04 who worked on it.

02:04:05 Lars Bock was in there and so on.

02:04:07 It was kind of soft launch

02:04:08 because they didn’t market it heavily.

02:04:10 They didn’t push distribution.

02:04:12 But Google had reason to worry about distribution

02:04:14 because Microsoft was doing a search engine, Bing,

02:04:19 since 2007.

02:04:20 In fact, when they came out with Bing,

02:04:22 Google was worried that Microsoft would just brute force

02:04:25 switch the default browser in everyone’s Internet Explorer

02:04:28 or even Firefox on Windows to Bing from Google.

02:04:32 And Microsoft wasn’t I think ready

02:04:34 to dare the antitrust cops that way

02:04:37 even though they’d gone to sleep.

02:04:39 And I don’t think Bing was ready either.

02:04:42 But just in case it happened, Sundar Pichai,

02:04:45 who rose very well based on this work,

02:04:47 was sort of in charge of getting distribution deals.

02:04:50 And he got Google toolbar

02:04:52 and Google desktop search distribution.

02:04:55 And if you remember those pieces of software,

02:04:56 those were like desktop extensions,

02:04:59 toolbars or operating system extensions

02:05:01 for doing desktop search, searching your local files.

02:05:03 Kind of like Mac OS Spotlight, right?

02:05:05 Sadly, it died.

02:05:07 It all died.

02:05:08 And there were some features that we still missed

02:05:09 that didn’t make it into Chrome.

02:05:10 But Sundar got OEMs to bundle those.

02:05:14 And then he got enough of those deals

02:05:15 that by 2007 or eight, Google felt,

02:05:18 well, if Bing, Microsoft does the worst

02:05:20 and tries to force Bing,

02:05:21 we can reach in and reset it with that point of presence.

02:05:25 So that was good for Sundar’s career

02:05:27 and it was good for Google,

02:05:28 but it never came to pass that they had to defend.

02:05:30 Microsoft was still slow.

02:05:32 And by the time they saw Chrome come out,

02:05:35 then they did what would have been IE9.

02:05:37 And then they said,

02:05:38 we’re gonna have a fast JavaScript engine

02:05:39 to Chakra, Chakra core.

02:05:41 And they did okay.

02:05:43 They were another process isolated,

02:05:46 fast JavaScript browser, tab browser.

02:05:48 So it sounds like there’s a deep fundamental coupling

02:05:52 of search engine and browser

02:05:53 that’s mixing this whole thing up.

02:05:55 And obviously Firefox doesn’t have a search engine.

02:05:59 That’s like, I mean, you’re partnering with somebody

02:06:03 with a search engine.

02:06:04 With Yahoo or with Google or so on.

02:06:08 They tried Yahoo, that was unfortunate

02:06:10 because I think even though Marissa Mayer talked about it,

02:06:14 she never pulled it off.

02:06:15 They never restored the search team

02:06:18 that had been laid off.

02:06:19 I believe Carol Bartz was running Yahoo

02:06:21 when Carol said, I’ve got to get rid

02:06:23 of one of the three expensive things.

02:06:24 I’m gonna get rid of search.

02:06:25 And those researchers went to Google and Microsoft

02:06:29 and there was no way to put Yahoo search back together.

02:06:32 So when Firefox tried switching all their users

02:06:36 who’d stuck with a default from Google to Yahoo,

02:06:38 it was like mid December, 2014,

02:06:40 a bunch of users said, what just happened to my Firefox?

02:06:44 And others didn’t notice right away,

02:06:45 but over time they did.

02:06:46 And so over the next year,

02:06:48 the traffic just went away for Yahoo.

02:06:51 And yet they were obliged, I understand it.

02:06:54 I don’t have inside knowledge, but this has leaked out

02:06:56 and Danny Sullivan’s written about it,

02:06:58 search engine land.

02:06:59 I think the deal was like fixed payments to Mozilla.

02:07:01 So Mozilla was getting a bunch of money for traffic

02:07:03 that wasn’t staying because users

02:07:04 were resetting their default.

02:07:06 And this shows how defaults are important,

02:07:09 but they have to be good enough

02:07:10 that the user doesn’t override them.

02:07:12 And a lot of the commercial value in popular apps

02:07:16 is what are the default settings?

02:07:18 What is the default search?

02:07:20 But oftentimes there’s something just like you said,

02:07:21 I mean, if there’s something compelling

02:07:25 that’s also can beat out the default,

02:07:27 like tab browsing and so on.

02:07:29 And that’s where, I mean, we’ll talk about brave browser.

02:07:32 It feels like now we’re in this third stage

02:07:36 where there’s a Chrome, Firefox, Edge,

02:07:41 I guess it’s called and brave.

02:07:44 And these are all seem like really exciting,

02:07:48 I don’t know, innovative browsers.

02:07:50 They’re all kind of copying off of each other,

02:07:52 picking up the good stuff.

02:07:53 There’s evolution again, especially on tracking protection.

02:07:56 So privacy is this sort of global wave that’s rising.

02:08:02 I like to call it a wave because it’s a large,

02:08:04 somewhat chaotic structure.

02:08:07 It’s not a unitary good.

02:08:08 You can’t say I’m buying privacy for $3,

02:08:11 I’m paying $3 privacy.

02:08:12 Some people think a VPN does this

02:08:14 and are disappointed when it fails them.

02:08:15 But often people use VPNs for region unlocking video

02:08:19 or getting the US Netflix catalog.

02:08:22 But privacy is not a unitary good, it’s complex

02:08:25 and people are understanding it only over time

02:08:28 and as they get burned, but there’s a genie

02:08:30 that’s not going back in the bottle there.

02:08:31 People are fed up.

02:08:33 Apple has responded to this.

02:08:34 Apple was always making Safari, I think,

02:08:36 more of a privacy branded browser from the very beginning.

02:08:40 I think this was probably Steve Jobs.

02:08:42 Safari had private windows, private tabs

02:08:45 before Firefox did.

02:08:48 And these are only private in the sense

02:08:50 that they don’t leave local traces,

02:08:53 if you don’t want them to.

02:08:53 Turns out Safari does keep them around between shutdown.

02:08:57 But the canonical model is no local traces

02:08:59 after you close the private window.

02:09:01 No leftover traces that you went to some site

02:09:04 that you were embarrassed by

02:09:06 or bought a gift for somebody you wanted to keep secret.

02:09:10 But there’s still some level of tracking.

02:09:11 There’s network tracking.

02:09:14 Network privacy is not guaranteed at all

02:09:16 because you’re using the same internet and ISP

02:09:18 as a public window, a non private window.

02:09:21 But, Safari had that early on.

02:09:22 They also had a cookie blocking policy

02:09:26 that might take a little explaining.

02:09:27 When you, if you know what a cookie is,

02:09:29 it’s a little bit of storage in the browser

02:09:31 indexed by the name of the site.

02:09:33 And it’s really only the main name of the site,

02:09:35 like bofa.com or, you know, something like npr.org.

02:09:43 Every site can store some information in a cookie.

02:09:45 Every time it’s contacted by the browser,

02:09:48 the previous version is sent back.

02:09:50 And in the response from the server, the cookie’s updated.

02:09:54 So it’s this little bit of storage in the browser

02:09:56 that the site can keep updating

02:09:58 and it can store an encrypted version

02:10:01 of your login credentials with a timestamp

02:10:03 so you can stay logged in

02:10:05 without having to retype your password

02:10:07 every time you navigate,

02:10:08 which is how it would be if you didn’t have cookies.

02:10:11 The web protocols, especially in the 90s,

02:10:14 are so called stateless protocols.

02:10:16 So you go to your bank, you log in,

02:10:18 you go from your login confirmed page

02:10:21 to your account view.

02:10:22 If you didn’t have a cookie, you’d be logging in again.

02:10:24 Every time you type in the source.

02:10:26 So that was the great thing about cookies.

02:10:27 Luhmann truly did it in a hurry in 1994

02:10:29 before I joined Escape

02:10:30 and he did it for really holding that kind of credential.

02:10:34 But even then there was the image element

02:10:37 embedded in the page

02:10:38 and the image gets fetched possibly from a different server

02:10:41 and that request carries the last cookie,

02:10:44 which could be empty at first,

02:10:45 and the response carries the updated cookie.

02:10:47 So just by having images and cookies,

02:10:49 you got tracking because that image server

02:10:51 can be serving a little one by one pixel

02:10:54 and they still use the word pixel in ad tech.

02:10:56 And that pixel can be served from the same server,

02:10:59 embedded differently with different URL spellings

02:11:02 in the New York Times and ESPN.

02:11:03 And as you go from one to the other,

02:11:05 the image server can say,

02:11:06 I haven’t got a cookie for you.

02:11:08 It’s empty initially.

02:11:09 I’m gonna assign you user number 1234.

02:11:11 I’m gonna put a database entry in.

02:11:13 And I see, by the way,

02:11:13 I always fetch the name of the path part of the URL

02:11:15 that I was in the New York Times.

02:11:17 So you’re a New York Times reader.

02:11:18 And then you hit ESPN, same thing.

02:11:20 And the database gets updated

02:11:22 and the number user 1234 indexes in the database

02:11:25 to a profile of you, you’ve been tracked.

02:11:28 This was not intended.

02:11:29 And it was too late to undo by the time I got the Netscape.

02:11:32 I think Lou wanted to do Twinkies, he called them.

02:11:35 And he was trying to solve several problems.

02:11:37 He wanted them to be bigger

02:11:38 because initially cookies had a short size limit.

02:11:40 I think he wanted to solve the third party problem,

02:11:42 but Tom Paquin, the engineering manager said,

02:11:45 nope, no Twinkies, just cookies.

02:11:47 We’re done.

02:11:48 You’re done, son.

02:11:49 And that’s how a lot of that stuff was.

02:11:51 That’s how JavaScript got frozen

02:11:54 like a flying Amber in some ways

02:11:55 with that sloppy equality operator that I made

02:11:57 because of the early adopters.

02:11:58 And the cookie got stuck with this tracking hazard.

02:12:01 And then because JavaScripts can be like images,

02:12:04 they’re embedded in the page.

02:12:05 By the time Netscape 3, I made that work.

02:12:08 You can get a request with the last cookie value

02:12:10 and the response updates it.

02:12:11 That’s a tracking mechanism.

02:12:12 And that’s why you don’t even need images to track.

02:12:14 Now you just use scripts.

02:12:16 So this whole tracking economy evolved

02:12:20 and it depended on these accidents of the 90s,

02:12:23 these unintended consequences.

02:12:25 Well, it created some of the richest companies

02:12:27 in the world, right?

02:12:28 I mean, it’s the social media.

02:12:28 All I got was T shirts.

02:12:29 All I got is this crappy T shirt.

02:12:33 Yeah.

02:12:34 I mean, so that’s the fundamental problem

02:12:38 the world is facing now.

02:12:39 They’re looking at what social media has created

02:12:42 and they’re looking at,

02:12:44 and like a world is looking at itself in the mirror

02:12:47 and seeing that privacy is actually something

02:12:50 as opposed to like a nice thing to have.

02:12:53 It’s something that is actually should be fundamental

02:12:57 to the way we interact with the world

02:12:59 as part of our tooling.

02:13:00 And that’s where the Brave browser comes in.

02:13:03 And I suppose others as well are playing with this idea,

02:13:06 but Brave is at the forefront of that.

02:13:07 So maybe can you like describe what Brave is

02:13:11 and what are its key principles and what’s broken

02:13:14 and what is it Brave trying to fix?

02:13:16 So when I realized that these accidents

02:13:18 like the third party cookie,

02:13:19 the image or script that’s tracking you

02:13:21 or the JavaScripts that can do an invisibly now,

02:13:26 that all this stuff wasn’t intended

02:13:28 and that Firefox had supported extensions

02:13:31 that block some of these things,

02:13:32 I thought probably we should have browsers

02:13:34 just block some of these things by default.

02:13:37 These were not intended and they’re now unsafe.

02:13:39 They’re tracking you.

02:13:40 There could be data breaches, malware distribution,

02:13:44 bullying and psyops and other attacks on people.

02:13:49 Block that stuff, block that JavaScript.

02:13:51 I’m Dr. Frankenstein, I’ve got to deal with a monster here.

02:13:54 But obviously you go to Gmail,

02:13:56 there’s a bunch of script there

02:13:57 to make that amazing web client.

02:13:59 That’s okay, that’s first party JavaScript.

02:14:02 So how do you tell the first from the third party?

02:14:04 And it’s not easy.

02:14:04 It’s not a matter of just what’s embedded

02:14:06 from a different server because a lot of publishers

02:14:09 use benign scripts from unrelated domains

02:14:12 or apparently unrelated domains.

02:14:14 So you end up having to develop a sort of human

02:14:16 and machine learning practice around blocking.

02:14:19 And at Brave, we did that from the start

02:14:22 and built a research team to help drive it and automate it.

02:14:25 We realized that protecting people needed machine learning

02:14:28 and around 2017 spring,

02:14:30 I talked to my friends at Apple about this too

02:14:32 and they were also doing

02:14:34 what they call intelligent tracking prevention,

02:14:36 which uses local machine learning in the browser.

02:14:39 And the funny thing is, great minds think alike,

02:14:42 they were taking their third party cookie blocker

02:14:44 that was in Safari from the old days

02:14:46 and making it not have a big loophole.

02:14:48 Because what they did was in 2003, when Safari came out,

02:14:51 they said, we’re gonna block cookies

02:14:53 that are from those third party embedded elements

02:14:57 where you’ve never visited that site before.

02:14:59 So I’m gonna pick an ad company that got sold to AT&T,

02:15:02 so I’m not picking on anybody unfairly, appnexus.com.

02:15:05 Have you ever been to appnexus.com?

02:15:06 Nope.

02:15:07 I’ve never been there, but I guarantee you 10 years ago,

02:15:09 you probably had, if you were using Firefox,

02:15:11 you had a cookie, third party cookie,

02:15:13 because you were being tracked by them

02:15:14 and they were using that cookie

02:15:15 to build up a profile of you.

02:15:17 In Safari, as long as the user never went to appnexus,

02:15:20 that cookie would not be set.

02:15:22 And that was a real move for privacy early on

02:15:25 when jobs were still around in Safari.

02:15:27 But it had this loophole that if you do go to appnexus,

02:15:30 then why it’s okay to be a third party cookie.

02:15:32 And so appnexus did something very naughty.

02:15:35 They took their ad partners

02:15:36 to put the actual ad you click on.

02:15:39 And they said, hey, add a little script

02:15:40 so that when somebody clicks on the ad,

02:15:42 before it goes to your landing page,

02:15:44 redirect to appnexus and we’ll redirect

02:15:46 to the landing page.

02:15:47 And by doing that, they set a first party cookie

02:15:49 and they got whitelisted.

02:15:49 So it was a loophole they exploited.

02:15:51 Intelligent tracking prevention in Safari

02:15:53 was sophisticated enough to counteract this

02:15:56 and it did other things and it’s evolved since they did it.

02:15:59 And we’ve evolved brave too.

02:16:00 And so when I say machine and human learning,

02:16:02 there’s a real set of techniques here.

02:16:05 They have to fight.

02:16:06 This is a fascinating problem.

02:16:07 Fingerprinting, right?

02:16:08 Anytime you have a little bit of storage in the browser

02:16:10 associated with a website,

02:16:13 if the bad guy can get 32 websites,

02:16:15 each one has a bit of storage, that’s 32 bits.

02:16:17 You can turn the bit on or off,

02:16:19 you can make 4 billion numbers,

02:16:21 you can make an identifier.

02:16:22 It’s called a super cookie sometimes.

02:16:26 There are weaker ways that are statistical.

02:16:28 They’re called fingerprinting.

02:16:29 You have to block all of them

02:16:30 and you have to not only automate,

02:16:32 you want to work in the web standards body

02:16:34 to put privacy in by default, by design,

02:16:38 from the get go, not add it as an afterthought

02:16:40 or go hogwile with new web APIs

02:16:43 to add a bunch more local storage or fingerprint surface area.

02:16:47 And that’s been a struggle too,

02:16:48 because guess who’s the new Microsoft

02:16:50 in the standards body?

02:16:51 It’s Google.

02:16:52 And they’re not in favor of privacy first.

02:16:55 They want to do privacy their way,

02:16:58 only under, I would say, market pressure.

02:17:01 But with Apple and with Brave leading the way,

02:17:03 we block third party cookies almost without exception.

02:17:06 So we’ve just blocked them.

02:17:07 And that gives us a very strong privacy benefit,

02:17:11 but it also means some sites just don’t work right.

02:17:13 Embedded YouTube videos might not work right.

02:17:15 So we’re adapting in a similar way to Apple’s done with ITP

02:17:19 to make third party cookies blocked,

02:17:22 but to sort of simulate what looks like

02:17:26 a working third party cookie for the site.

02:17:28 It essentially tries to partition each site

02:17:32 and its third parties into its own sort of cookie jar.

02:17:34 Got it.

02:17:35 And so, like you said,

02:17:37 is this both like a human fine tuning issue

02:17:41 and a machine learning problem?

02:17:42 And as the humans learn,

02:17:44 then they train the machine learning.

02:17:46 But, you know, maybe Google aside or including Google,

02:17:50 there’s millions of dollars, if not B,

02:17:53 billions of dollars to be made

02:17:54 from fighting the ways of Brave.

02:17:57 That’s right.

02:17:58 And it’s been an interesting change

02:18:00 from when we started in 2015.

02:18:01 When we started, you know, ad blocking extensions,

02:18:04 ad block plus was one of the big ones

02:18:06 that started on Firefox in 2006, I believe,

02:18:08 had gotten to a certain level of use around the world.

02:18:11 And browsers like UC Web, UC Browser in Asia

02:18:14 had some amount of ad blocking built in and on by default.

02:18:17 So, a page fair was a startup

02:18:20 and they measured ad blocking adoption.

02:18:23 And they tried to say,

02:18:24 hey publishers, you’re, you know,

02:18:26 30% of the visitors to Pitchfork or Wire

02:18:30 to Conda NAS properties are using ad blockers.

02:18:32 If we can somehow convince them

02:18:34 to lower their ad blocking for your site,

02:18:37 that could be like a 43% lift, right?

02:18:39 And, you know, three sevenths.

02:18:42 Well, that’s easier said than done.

02:18:44 And PageFair and others, SourcePoint,

02:18:46 and many others tried to either smuggle ads through

02:18:48 or cajole the user into letting, you know, ads appear.

02:18:52 And it didn’t really work.

02:18:53 And meanwhile, the ad blocking adoption

02:18:54 has just continued intelligent tracking prevention

02:18:56 in Safari in 2017, Brave from 2016 on

02:19:01 with very strong cookie blocking and other protections.

02:19:04 And this is not going away.

02:19:06 The publishers used to rage against it.

02:19:08 Like we would try to say, we can help you.

02:19:10 You’re dealing with users

02:19:11 who are already blocking all your ads.

02:19:14 We can try to put back some economics

02:19:16 that help the user and you

02:19:18 that led to the basic attention token

02:19:19 that we started with Bitcoin.

02:19:21 We can be your friend.

02:19:22 Don’t just fingerprint us as an ad blocker

02:19:24 and treat us as an enemy.

02:19:26 But in 2015 or 16, it was like,

02:19:28 nah, you’re an ad blocker.

02:19:29 Get out of here.

02:19:30 I hate you.

02:19:31 And by 2017 or 18, it’s like something’s happening.

02:19:33 The ad blocking is not stopping

02:19:34 and we’re all getting sort of pulled

02:19:37 on the Google’s plantation through AMP, AMP.

02:19:41 Or we’re getting killed by the Google ad system we use

02:19:44 because it’s taking all the revenue

02:19:46 or it’s permitting or some other vendors we use

02:19:49 are permitting ad fraud.

02:19:50 And so a fake New York Times is getting paid

02:19:52 by the marketer running an ad that a bot clicks on.

02:19:57 And the real New York Times

02:19:58 that’s supposed to get the ad doesn’t get it.

02:20:00 And there’s something really broken

02:20:01 about that kind of system.

02:20:02 And that fraud is mediated through Google’s ad exchange,

02:20:06 which is the biggest of them all.

02:20:07 And Google takes a fee.

02:20:09 There’s a flip side of that,

02:20:10 which is malware distribution, malvertising,

02:20:12 where fake advertisers put malware payloads

02:20:16 in or exploit hit loaders in JavaScript

02:20:19 and they smuggle them in ads onto real publisher pages,

02:20:22 the ad exchange takes the fee.

02:20:24 Now, I’m not a lawyer.

02:20:25 I’m not gonna say this is a RICO predicate,

02:20:27 but why is the ad exchange facilitating fraud

02:20:30 and malware distribution and taking a fee?

02:20:32 It’s not right.

02:20:32 As opposed to just fighting,

02:20:33 this is the really interesting thing about Brave

02:20:35 is as opposed to just fighting

02:20:37 and then being treated like an ad blocker,

02:20:39 you’re providing an alternate.

02:20:42 There’s a philosophical idea here

02:20:45 that might change the nature of the internet

02:20:47 with the basic attention token.

02:20:49 Yes.

02:20:50 Well, maybe what is basic attention token BAT

02:20:54 and how does it work?

02:20:55 Okay, I’ll tell the story first by saying how I came to it.

02:20:58 I realized for a long time at Firefox,

02:21:00 we were dependent on this Google search deal.

02:21:02 And I thought, now that Chrome’s out,

02:21:05 maybe that’s gonna go away.

02:21:07 And they just, at some point, Google will say,

02:21:10 Firefox, like old yeller, you saved me from the rabid beast,

02:21:14 now I have to shoot you in the head.

02:21:16 Done your job, sad but true, goodbye.

02:21:19 And what could we do?

02:21:21 And I think Mozilla doesn’t know what to do.

02:21:24 This is something that I couldn’t solve there

02:21:25 and I don’t think they can solve.

02:21:27 But I thought, why is the browser

02:21:29 the sort of passive servant of these big tech companies?

02:21:32 Why is it a blind runtime for ad tech JavaScripts,

02:21:36 including from Google?

02:21:38 Why doesn’t it block some?

02:21:39 And if it blocks some, why can’t it reconnect users,

02:21:43 readers, fans with publishers, creators, websites?

02:21:48 Why can’t it help people make direct payments

02:21:51 or even possibly get an ad revenue share for private ads

02:21:54 that are placed in the browser?

02:21:56 The ads are all placed in the browser.

02:21:57 Some people have this sort of model

02:21:58 that the server’s painting the ad into some,

02:22:01 flash combined package or into some giant image

02:22:06 and then it all gets sent down, that’s not how it works.

02:22:08 All the ads you see on the web are placed in your browser

02:22:11 by it calling out to various ad tech partners

02:22:13 and Google’s among them.

02:22:15 And so if you block those scripts,

02:22:17 you break the advertising flow of money

02:22:22 from the brands and their agencies to the publishers.

02:22:26 And if you want to reconnect it directly with the user,

02:22:29 you have limited choices.

02:22:30 The user generally isn’t gonna sign up

02:22:31 with a ACH bank connection or a credit card.

02:22:34 The publisher isn’t gonna sign up the user

02:22:37 except as a subscriber and then they’re gonna overcharge you

02:22:39 because they want you to cross subsidize all the content

02:22:42 and buy more than you read and all that stuff.

02:22:43 And how many, people are doing great who are big names

02:22:47 like New York Times and The Washington Post,

02:22:48 but how many subscriptions are you as a user gonna pay for?

02:22:51 This is why startups like Tony Hale Scroll

02:22:54 are trying to do a portable subscription system.

02:22:57 By the way, just a small tangent there,

02:22:58 even the New York Times is really annoying

02:23:00 how difficult it is to subscribe.

02:23:03 There’s way too many clicks.

02:23:04 They don’t make it easy.

02:23:05 And I had friends a few years ago,

02:23:06 I think they fixed this, who would pay for the paper

02:23:08 and then they’d go online and they get upcharged

02:23:11 for the digital and there was no break.

02:23:13 There was no connection between them.

02:23:15 But publishers are not that technical

02:23:17 and they can’t all get you to subscribe.

02:23:19 You can’t have a thousand subscriptions.

02:23:21 So for a long time, people talked about micropayments.

02:23:23 There was Blendle and other ones which came to the US,

02:23:25 but it didn’t grow.

02:23:27 And I thought, if you have just a browser

02:23:29 and it’s protecting you by blocking

02:23:31 all this ad tech tracking junk,

02:23:33 it can provide you an option that uses cryptocurrency

02:23:36 to let you support your favorite sites

02:23:39 and even YouTube channels.

02:23:40 And that we prototyped with Bitcoin.

02:23:42 And that meant the user had to be of means to contribute

02:23:45 and willing to contribute,

02:23:47 but it could be done on the Bitcoin blockchain

02:23:49 and it could be fairly efficient

02:23:50 even though Bitcoin went through a period

02:23:52 when we had this prototype running in 2016 into 2017

02:23:55 where Bitcoin was very congested and very slow to confirm

02:23:58 and the fees got very high.

02:24:01 And a lot of users who were not Bitcoin maximalists

02:24:03 or even experienced,

02:24:04 we helped them out by embedding a Coinbase buy widget

02:24:07 and they had the income to buy, but it was hard.

02:24:10 It was like, do I buy $5 a month?

02:24:12 But the fee is like 450.

02:24:14 I better buy in larger batches, right?

02:24:16 And they’re like, I don’t wanna own that much Bitcoin.

02:24:18 So it became this painful thing.

02:24:21 And the real idea that I had of private ads

02:24:23 that pay the user a rev share

02:24:25 couldn’t be realized alone in that kind of system.

02:24:30 In these cryptocurrency systems,

02:24:33 especially with the blockchain we switched to Ethereum,

02:24:35 you can have smart contracts.

02:24:36 The Bitcoin system is not turned complete.

02:24:38 So what you can do with the scripts is more limited,

02:24:41 but you can still do sort of clever things

02:24:44 even with Bitcoin script.

02:24:46 What we wanted to do was sort of a three sided ecosystem.

02:24:49 We wanted users, creators or publishers and advertisers.

02:24:53 And we wanted the advertisers to put money in

02:24:55 just like they do today,

02:24:57 but without going through the Googles and the app nexuses

02:25:00 and all these other ad tech companies,

02:25:01 because those companies take out a huge cut.

02:25:04 The Guardian in the UK once did an experiment for a month.

02:25:06 They bought out their own ad space.

02:25:08 They put in a pound and they were paid 30 pence.

02:25:11 70% was coming out to the intermediary vendors

02:25:15 they were using.

02:25:17 And that’s like the opposite of what the app store does.

02:25:19 The app store takes 30% and gives the publisher 70%.

02:25:22 So pretty broken, in the old days of the superstation TBS,

02:25:26 the media owner would get 85%.

02:25:29 So these splits have become really unbalanced

02:25:33 and the middle players, the ad tech vendors

02:25:35 are taking out way too much money.

02:25:37 And they’re doing something worse, which has been noticed.

02:25:39 They’re letting not just the malware vendors,

02:25:44 but also the ad fraud side, which fakes the publishers

02:25:47 and clickbait merchants come in and steal traffic

02:25:52 from good sites.

02:25:53 Because once you have a certain audience identified

02:25:55 at one site, Jason Calconas told me this

02:25:57 about his experience with, I guess it was in Gadget,

02:25:59 I forget which site he was running.

02:26:01 But once he started using an ad partner

02:26:04 that was sharing his audience information

02:26:06 across multiple sites, he saw his competitors

02:26:08 stealing all his traffic.

02:26:09 And then what’s worse is the clickbait sites

02:26:11 that just have much cheaper rates steal all that traffic.

02:26:15 And that facilitates fraud, facilitates fake news,

02:26:20 all sorts of problems.

02:26:21 So Gray blocks it and then we give users the ability

02:26:24 to give back and because we invented

02:26:27 the basic attention token on Ethereum,

02:26:28 we can do this three way split.

02:26:31 And we can give users a share of the revenue.

02:26:33 And if they want to take it out, they can.

02:26:35 Now, unfortunately for us and for all blockchain,

02:26:38 the regulators are saying,

02:26:39 we’re gonna have to know who you are.

02:26:41 There’s the Treasury Department’s FinCEN agency.

02:26:47 There’s the Office of Foreign Asset Controls, OFAC.

02:26:50 There’s the other regulators in the federal government

02:26:55 that take a very dark look at things like money laundering

02:26:58 and sending money to someone named Osama bin Laden.

02:27:01 So compliance starts to come in.

02:27:03 And even now they’re threatening for pure Bitcoin

02:27:06 sending to some address.

02:27:07 If you’re a Coinbase, you’re gonna have to know

02:27:10 who’s at that address.

02:27:11 You’re gonna have to start.

02:27:12 Like the actual identities of people involved.

02:27:13 Yeah, now with Coinbase members,

02:27:14 you sign up and they know you

02:27:15 and they comply with the regulations.

02:27:16 They’re a regulated money services business.

02:27:20 And, but if somebody’s using their own self custody,

02:27:25 so called self custodial wallet

02:27:27 where they have the hardware private key

02:27:29 and they’re not named and they want to send to that address,

02:27:33 our friends in the federal government are talking about

02:27:35 requiring at some threshold and knowing who that is.

02:27:37 So.

02:27:38 Some threshold that’s unreasonable.

02:27:40 It’s not that big.

02:27:42 Yeah.

02:27:43 Yeah, I don’t know how this will play out.

02:27:43 I think crypto is here to stay.

02:27:44 I think the beauty of being able to send peer to peer

02:27:47 without any bank in the middle,

02:27:48 without any huge wire charge and two day delay

02:27:51 and all that nonsense.

02:27:52 It’s beautiful and I’ve used it and I love it.

02:27:54 But we’re pragmatists are brave about crypto.

02:27:56 And we realized that anything like a revenue split,

02:27:59 we can’t facilitate without being licensed in a certain way

02:28:02 and it requires knowing who the user is.

02:28:03 So our default mode doesn’t know who the user is.

02:28:06 It instead imputes to the user’s browser,

02:28:09 some of the revenue and allows that browser

02:28:11 to steer it back to the creators.

02:28:14 And we do have to identify the creators.

02:28:16 But as things improve and who knows how it’ll play out,

02:28:20 there should become a day when this full vision

02:28:22 can be done more fully on a blockchain.

02:28:25 But regulations and the practicalities of today’s blockchains,

02:28:29 which are not that fast and not anonymous over time,

02:28:32 you fingerprint yourself over time.

02:28:34 We do some of this with the browser.

02:28:36 So one of the ideas of the basic attention token

02:28:39 is to make a hybrid system

02:28:41 that’s stronger than blockchain alone.

02:28:43 It’s the browser and the blockchain.

02:28:45 And the browser is this trusted endpoint software.

02:28:48 It’s this universal app.

02:28:49 Everyone uses browsers.

02:28:51 The bigger the screen, the more you’re in the browser

02:28:53 and the less you install fat clients for things.

02:28:56 I use Slack on Mac OS and it’s like a browser.

02:29:00 It’s based on an electron framework we used to use.

02:29:02 And it’s just, it’s not that great.

02:29:04 Some of the people at Brave use Slack in Brave as a…

02:29:07 In the browser, yeah.

02:29:08 In the browser, yeah.

02:29:09 I use that often, yeah.

02:29:10 And I noticed on the iPad, I use apps less.

02:29:13 The smaller the screen, the browser got handicapped

02:29:16 by Apple and Android both.

02:29:17 And it also can be slower or not have the right affordances,

02:29:22 the interface with the security limited APIs.

02:29:26 But in principle, with the right permissioning,

02:29:28 you can make the web browser just as good as any app.

02:29:31 You make it be a super app.

02:29:33 And that’s part of our mission at Brave.

02:29:35 So we want to have the economics that got captured

02:29:37 by these big tech companies through tracking

02:29:40 and through social networks.

02:29:41 We want to block that for your own safety

02:29:43 and then let you opt into a cleaner world

02:29:45 where you keep your data defended in your browser

02:29:47 and you can actually realize value from it.

02:29:49 So the way our ad system works,

02:29:51 I mentioned it being private, but how does that work?

02:29:53 We don’t see your data at all.

02:29:54 All browsers are sort of the mother of all data feeds,

02:29:57 your history, all your searches at all engines.

02:30:00 Each engine sees the queries you send to it,

02:30:02 but it doesn’t see the others,

02:30:03 but the browser sees them all.

02:30:05 Machine learning in the browser that you can opt into

02:30:07 can study all that in a very complete way

02:30:10 and do a better job than Google does.

02:30:11 Google has cookie and scripts across the web

02:30:15 from acquiring DoubleClick, they have YouTube,

02:30:17 they have Android, they have search,

02:30:19 which is still their big revenue lane,

02:30:21 but they don’t see everything.

02:30:22 The browser sees everything.

02:30:23 And if it can do a good job locally,

02:30:25 and this is not advanced machine learning,

02:30:26 this is not TensorFlow, this is like SVMs now,

02:30:29 naive Bayes, then you can match intense signals,

02:30:35 intense signals from those data feeds,

02:30:37 searches, the queries, the history, how much you’re

02:30:40 scrolling down a page, how much you redid a search.

02:30:43 It’s all blind browser algorithm, we don’t see that data.

02:30:47 And then pick the best ad from a fixed catalog per day.

02:30:50 And the catalog is fixed across a large population per day,

02:30:53 and it only updates once a day,

02:30:55 because new offers come in and old ones expire,

02:30:57 sometimes every week or every month.

02:30:59 And that catalog, and there can be many such catalogs,

02:31:02 is sold by our direct sales team.

02:31:06 And so we’re making an anonymous audience available

02:31:09 to advertisers without the advertisers tracking them.

02:31:12 Instead, each browser is a little machine learning system

02:31:15 that’s picking the best catalog entry.

02:31:17 Now, the catalog is not the ads, those are big, right?

02:31:19 It’s a video or a webpage, it’s just the link

02:31:21 to an edge cache, and there are many such edge caches.

02:31:23 We’re not trying to protect them from seeing

02:31:25 your IP address, it’s not really feasible.

02:31:27 We could use Tor, but we don’t yet.

02:31:30 And then some keywords about the ad.

02:31:31 So it’s basically like metadata and a link.

02:31:34 And that’s what the catalog consists of,

02:31:36 and that’s what the machine learning picks.

02:31:37 And the machine learning is learning

02:31:39 about the use specifically locally

02:31:41 in order to choose from the catalog of different ads.

02:31:44 Couldn’t this possibly be like a multi billion dollar,

02:31:47 isn’t this taken on the Google ad?

02:31:50 Could be.

02:31:51 So like what, I mean, one question to ask,

02:31:54 there seems to be some really profound ideas here

02:31:57 that are different than what the internet has grown up to be.

02:32:01 If Brave or something like Brave,

02:32:05 the ideas, the fundamental philosophical ideas

02:32:07 underlying Brave went out and runs 95% of the internet,

02:32:13 how does that change the, what are the major things

02:32:18 these changes about the internet?

02:32:19 So social networks and then the creatives,

02:32:21 like YouTube creators and all that kind of stuff.

02:32:23 So let’s talk about that.

02:32:24 First of all, if Brave gets 95%,

02:32:26 I’m gonna demand a recount, because I won’t believe it.

02:32:29 I don’t know, I think we’re trying to put things

02:32:31 into web standards that can be standardized across browsers.

02:32:34 So the main value of Brave will be the trust users have in us

02:32:38 and our ability to give the best deal to users.

02:32:41 So 70% of the gross ad revenue we give to the user.

02:32:45 And if they go through that KYC process I mentioned,

02:32:47 they can take it out.

02:32:48 They can also give it back, they can take some out,

02:32:50 give the rest back.

02:32:51 They can add basic attention tokens to give back.

02:32:54 Some of them turn off the ads,

02:32:56 cause they just don’t like ads,

02:32:57 but they put in $20 a month.

02:32:58 But I believe Zuko of Zcashframe does that.

02:33:01 And that’s very generous,

02:33:02 because the browser is just anonymously

02:33:04 based on his browsing, sort of keeping score

02:33:06 on how much time he spent on this video, on that website.

02:33:09 And if those sites verify in sort of a,

02:33:13 like getting a domain certificate fashion,

02:33:15 they can get paid, they can get part of his $20 a month.

02:33:19 So that vision could go big.

02:33:21 And if it does, I hope it’s across multiple browsers.

02:33:23 I don’t know that they’ll all compete well

02:33:25 on the quality of the ads, the quality of the ad blocking

02:33:29 and tracking protection.

02:33:30 Those are subject to competition.

02:33:31 It’ll take a while to standardize them.

02:33:33 But I think that would be a better world.

02:33:35 It would have less counterparty risk,

02:33:38 fewer fee takers in the middle, really just the browser.

02:33:40 We’re taking 30%, sort of the app store split.

02:33:44 And if we get bigger, maybe we can take even less.

02:33:47 Social networks, creators.

02:33:49 If you look at YouTubers, a lot of them are the indies

02:33:52 that are getting some size are getting sponsorship deals.

02:33:56 They’re using Patreon.

02:33:58 They’re encouraging people to subscribe

02:34:01 and give them regular money through Patreon.

02:34:04 But that’s centralized through Patreon.

02:34:06 So there’s censorship hazards, there’s a 5% fee.

02:34:09 What if that were a web standard?

02:34:10 What if Brave pioneered it first and we took 3%?

02:34:14 And we did it in a way that was through your browser

02:34:17 so we couldn’t censor it.

02:34:19 That’s brilliant.

02:34:20 Do you think it could be standardized across browsers?

02:34:22 Can Internet Explorer come in again and…

02:34:25 Yeah, protocols are easy to copy

02:34:27 in that they’re meant to be interoperable.

02:34:29 So there’s a risk there.

02:34:31 And the loyal users might be tricked into leaving you.

02:34:33 Or they might, because of that distribution power,

02:34:36 you might end up getting stomped.

02:34:38 I don’t know, I can’t predict the future.

02:34:39 I think antitrust is back on the case finally in the US.

02:34:42 And certainly in Europe, G Comp is doing its thing.

02:34:45 So I’m hopeful that we’ll have a period of innovation.

02:34:48 People were talking, like Elizabeth Warren was talking

02:34:50 about breaking up the tech companies very clearly.

02:34:53 Now she didn’t win, and I suspect that won’t happen,

02:34:56 but I also suspect that Google might be smart enough

02:34:58 to see they should do something more

02:35:01 than just put privacy perfume on Chrome.

02:35:03 They should maybe get rid of DoubleClick or something,

02:35:05 divest something.

02:35:06 I don’t know, it might happen.

02:35:07 So Brave might inspire Google to completely change

02:35:10 the way they’re doing things in the browser?

02:35:11 They’re already doing something,

02:35:12 you may have read about called the Privacy Sandbox

02:35:15 or Flock, which they have this bird metaphor going,

02:35:20 Turtle Dove, Fledge.

02:35:22 But these systems have been very Googley,

02:35:25 kind of overengineered, and yet,

02:35:27 depending on differential privacy,

02:35:29 which has weakness over time, if you know how that works,

02:35:31 it’s kind of injecting noise to hide you in a crowd,

02:35:34 but over time an adversary can pull you out of the crowd.

02:35:37 This doesn’t look like it’s gonna become a standard.

02:35:39 Like Apple, Brave, Mozilla, we’re not gonna just say,

02:35:42 oh, Google, you saved us.

02:35:44 You’ve invented the Privacy Sandbox,

02:35:46 so we’ll all just adopt it.

02:35:47 Not gonna be that easy.

02:35:48 It’s gonna be more like pieces of what we do in Brave,

02:35:51 the synonymous ad matching or the blind signature

02:35:54 cryptography we use to confirm the ad impressions.

02:35:57 That’s David Chow’s invention.

02:35:59 That could get standardized.

02:36:00 In fact, some of that is being standardized.

02:36:02 Even Google’s in favor of so called trust tokens,

02:36:04 which are Chowmian blind signature certs.

02:36:07 But they’re not using them for ad confirmations

02:36:09 because they don’t wanna blow up their own business.

02:36:11 And they need to let some of the publishers they serve

02:36:14 have other ad tech scripts on the page.

02:36:17 And so they’re kind of caught.

02:36:18 And this is something I realized doing Brave.

02:36:19 I thought, what’s Google’s innovators dilemma

02:36:22 apart from just being mature and having trouble innovating?

02:36:26 It’s that they have come to depend on this ad tech system

02:36:30 that has all these vendors that publishers rely on

02:36:34 because publishers aren’t technical enough.

02:36:36 And I feel for the publishers,

02:36:37 but I realized the users have to come first.

02:36:39 And if you give the users a better browser that’s faster,

02:36:43 then you’ll get enough users to give back

02:36:46 or support publishers.

02:36:47 The speed and the battery savings

02:36:49 and the data plan savings are significant.

02:36:51 There’s so much bad JavaScript involved in ad tech

02:36:53 that if you block it, you sort of chop off

02:36:55 what’s called the programmatic waterfall,

02:36:57 which chains a bunch of requests.

02:36:59 Yeah, that’s one of the incredible things about Brave.

02:37:01 I guess you’re saying you should attribute it

02:37:03 to the fact that the messy JavaScript, no offense.

02:37:06 No offense.

02:37:07 Not my solution.

02:37:08 I mean, Brave just feels faster.

02:37:13 Even then, I mean, Chrome was fast.

02:37:16 One of the things that it was like impressive

02:37:18 is it showed that browsers can be really fast

02:37:21 and Brave is even faster than that, which is incredible.

02:37:24 And it saves the network, which means data plan.

02:37:26 It saves battery because the radio consumes your battery

02:37:29 when it’s running more to do those requests.

02:37:31 And it’s just stunning how many there are.

02:37:32 Like some of my Google friends were like,

02:37:34 oh, that’s just that bad site.

02:37:35 They’ll fix it.

02:37:36 And you actually do a survey of web pages

02:37:38 that they’re like mostly like that.

02:37:40 I know Google engineers could make everything

02:37:42 super efficient, but they can’t,

02:37:44 especially in antitrust court, do it.

02:37:45 They cannot take over all the publishers and do that.

02:37:48 They’re trying with accelerated mobile profile, AMP.

02:37:51 They’re trying to pull publishers.

02:37:53 They’re like, oh, you poor publishers

02:37:54 don’t know how to make your pages fast.

02:37:56 Put them on our AMP system.

02:37:58 We’ll give you extra placement in the search carousel.

02:38:00 That’s an antitrust problem for one.

02:38:02 But it’s also publishers we talk to hate it

02:38:04 because it degrades their brand.

02:38:06 Now they look like a gig writer wrote a piece

02:38:08 that’s got Google’s framing an AMP URL on top of it.

02:38:12 And they’re trying to fix that too.

02:38:13 But it just looks like Google’s Borgifying

02:38:16 all these publishers and they don’t want to be plugged

02:38:18 into the Borg cube.

02:38:19 They want to build up their own brand and have loyal readers.

02:38:22 So, you know, I’m in favor of giving the users power

02:38:25 to help all the publishers and the little platoons

02:38:28 and the creators.

02:38:29 And so we talked about Patreon.

02:38:30 What about social networks?

02:38:31 Well, they’re inherently like search, a global algorithm.

02:38:35 You’re trying to find friends of friends.

02:38:37 You’re doing the transitive closure of a graph

02:38:39 induced by this friend of relation.

02:38:41 But you should own your friend relation.

02:38:45 You should own your posts.

02:38:46 They shouldn’t be owned by somebody else

02:38:48 who can take them down or censor them.

02:38:51 And your friend relations, you should be able

02:38:52 to find those friends on other networks.

02:38:54 And that’s why I’ve tweeted about this.

02:38:55 I haven’t built it yet.

02:38:56 What if the browser could keep track of those for you?

02:38:59 What if the browser could maybe combine Facebook and Twitter

02:39:03 and you could find your friends on both

02:39:05 and you could have a sort of multi.

02:39:06 So that relationship is not owned by Facebook or Twitter.

02:39:09 It’s owned by you through the browser.

02:39:12 They’ll have terms of use and they’ll say they own it.

02:39:14 But if they zap you on one and you’re still on the other,

02:39:17 your friends find you and the browser

02:39:18 could preserve a combined view.

02:39:20 You could resurrect almost across networks.

02:39:23 It’s something I wanna maybe quickly ask you about.

02:39:26 On that front, there’s been quite a lot of centralized,

02:39:31 we talked about Wall Street Bets and then Robinhood.

02:39:35 There’s been centralized banning of different accounts

02:39:39 and removing like Parler, for example, from AWS

02:39:42 and this kind of overreach of centralized control.

02:39:46 Is your hope that it’s possible to,

02:39:49 like what are your thoughts about that in general?

02:39:51 And then is it possible to create tools

02:39:54 that give individual people the power

02:39:56 to fight back against overreach of such control?

02:40:00 So we’re talking about oligarchy, I do think.

02:40:02 And if it controls a nation state, that’s formidable.

02:40:05 It’s the tax and the police power, the military power.

02:40:08 It means that you may have the great firewall of China.

02:40:10 You may have people in China who are jailed

02:40:13 because of their tweets, right?

02:40:14 This is a serious threat.

02:40:15 I can’t minimize it or say that we’ll win.

02:40:18 I don’t know how it’s gonna go.

02:40:19 But I do think, like I said earlier

02:40:21 about the kind of reason people find ways around things.

02:40:24 The internet routes around censorship.

02:40:25 And this is not to endorse any particular bad faction.

02:40:28 One of the things that happens

02:40:29 when you try to wave the free speech flag too much,

02:40:33 you say, I’m not gonna censor anything

02:40:34 and you get colonized by terrible, terrible people.

02:40:37 I don’t care if you call them neo Nazis,

02:40:39 some of them could be doing illegal things.

02:40:41 And you don’t want them colonizing

02:40:44 because it’ll ruin your reputation

02:40:45 and destroy your business.

02:40:46 So what you really want is that kind of

02:40:48 user first subsidiarity, that subjectivity.

02:40:51 I want my social networks to be composited

02:40:55 in some multi social user interface

02:40:57 where I don’t lose track of people across networks.

02:40:59 And if they leave one or they get banned from one,

02:41:01 I can find them on another,

02:41:02 I can still sort of thread them together.

02:41:04 That’s brilliant.

02:41:05 And this didn’t happen because browsers

02:41:07 got captured by the central powers.

02:41:10 Why did they get captured?

02:41:10 Mostly because of search.

02:41:11 And search is a central algorithm.

02:41:13 So Larry Page said this too many years ago.

02:41:15 He said, with search, you’re giving up a little privacy

02:41:17 by handing the query over to us.

02:41:19 And we’ll error correct it.

02:41:21 Alan used to be a Google executive.

02:41:24 He said, oh yeah, we used to laugh.

02:41:25 They’d all be doing typos and they’d be typing

02:41:27 the wrong word.

02:41:28 And we’d be like, no dummy, type that query.

02:41:29 And it’s like, okay Google,

02:41:31 might want to dial back that ego a little bit.

02:41:33 But yes, you do see all the queries

02:41:35 and you can improve them and you can find the best results.

02:41:37 And that was Google’s forte.

02:41:38 When we did the Firefox deal in 2004,

02:41:40 Google was really good.

02:41:42 And over time, SEO, which is an adversarial game,

02:41:46 and Google itself buying all these companies

02:41:48 and crowding its own results page

02:41:50 with its own tied in stuff.

02:41:53 The YouTube.

02:41:54 It’s a slippery slope that happens

02:41:55 when you have control over these kinds

02:41:58 of really important mechanisms.

02:42:00 Yeah, monopoly capitalism or cartel.

02:42:02 You get this with the Robin Hoods and the hedge funds.

02:42:05 You get sort of the money interests take over

02:42:07 and kind of abuse their power and wear out their welcome.

02:42:10 So how do you get around that?

02:42:11 You have to have either new land to go to,

02:42:15 which some people’s ancestors, not mine,

02:42:18 did to found the country.

02:42:20 I’m mostly Irish, German.

02:42:22 You have new virtual space people go to

02:42:26 and that requires an ISP or a colo center

02:42:30 or Amazon to host you.

02:42:32 It requires domain name registrar who will not strike you.

02:42:35 And so when Parler was taken down,

02:42:39 I thought that was egregious.

02:42:40 Parler, it was not well designed

02:42:42 and I tried it out because I tried all these things,

02:42:45 but I didn’t use it.

02:42:46 And I also felt they were being unfairly scored

02:42:49 for not moderating because you can find tweets to this day

02:42:51 that are horrendous and threaten all sorts of violence.

02:42:54 Whereas Twitter, why isn’t Twitter being taken down?

02:42:56 But so it was very selective.

02:42:57 It was the insiders who have the power

02:42:59 are gonna take out the newcomer.

02:43:01 And it looked bad, sort of like the hedge funds,

02:43:05 shorting GameStop, looked bad.

02:43:08 You’re seeing a piece in Time Magazine this week

02:43:10 that’s like basically saying,

02:43:11 yeah, we interfere with the election,

02:43:12 but it was great, aren’t we good?

02:43:14 I don’t know if you’ve seen this piece yet.

02:43:16 If you tried to say that as a Trump supporter

02:43:18 in November after the election,

02:43:21 you’d get banned from Twitter.

02:43:22 But now Time in its Twitter account is saying,

02:43:25 we saved the day, it’s AFL, CIO and big business,

02:43:30 the Better Business Bureau got together

02:43:32 and kept Trump from spreading fake news.

02:43:34 So the country’s kind of broken.

02:43:36 I don’t know how to fix that.

02:43:37 The oligarchs have run wild in my opinion.

02:43:40 And big tech is in the antitrust dock.

02:43:42 What’s gonna happen?

02:43:43 I don’t think they get out.

02:43:44 I think some of the DOJ and certainly the state cases,

02:43:47 because they’re separate cases,

02:43:49 are not gonna go away just

02:43:50 because somebody got elected differently.

02:43:52 And these are career prosecutors

02:43:53 and they have a strong case.

02:43:55 And Google’s smart.

02:43:56 And Microsoft almost got split up, right?

02:43:59 The judge, Thomas Penfield Jackson, he overreached.

02:44:02 He didn’t hold a hearing about the remedy.

02:44:05 He just said, I’m gonna break you up.

02:44:06 And Microsoft appealed and the higher level court said,

02:44:10 go back and figure this out.

02:44:11 You’re not breaking them up.

02:44:12 You didn’t even hold a hearing.

02:44:13 And when they got back, Microsoft said,

02:44:15 let’s settle, let’s settle, we don’t wanna get broken up.

02:44:17 Because Jackson was gonna make the Opsco,

02:44:20 the operating system company,

02:44:21 and the Appsco office, you know, Word and Excel.

02:44:24 And that would have been a huge blow to Microsoft, so.

02:44:28 But ultimately, I don’t know if you’re optimistic

02:44:31 or cynical about the possibility of breaking up big tech.

02:44:34 To me, I’m optimistic that tools like Brave,

02:44:40 I love the idea of owning your friendships.

02:44:42 Like users more and more owning the stuff

02:44:44 is the only real way.

02:44:46 Unfortunately, it’s like the WallStreetBets subreddit

02:44:48 is the only real way to fight decentralized power.

02:44:51 You can’t break them up with the regulation.

02:44:52 It’s very difficult.

02:44:53 Certainly don’t wanna wait for the law.

02:44:55 Netscape was long dead or acquired by AOL

02:44:57 and effectively dead.

02:44:58 It was only Mozilla that returned Firefox to the market

02:45:01 by the time that the US v. Microsoft case

02:45:04 was finally settled and the penalties were put in place.

02:45:07 And yet, antitrust has a role to play.

02:45:11 Those penalties caused Microsoft

02:45:12 to kind of turn away from the web.

02:45:14 They did Windows Vista and they thought,

02:45:16 the web’s too painful.

02:45:16 We got punished in court and we had to standardize things

02:45:19 with those icky standards people.

02:45:21 So they ran back to proprietary lock in

02:45:23 and Windows Vista flopped.

02:45:24 It was late, it was bloated.

02:45:26 Longhorn, remember?

02:45:27 Now, what I was gonna say, but Google’s smart enough,

02:45:30 they won’t get split up.

02:45:31 They’ll split something out to get off the hook, I think.

02:45:35 This is a complicated subject, but I myself was so,

02:45:39 I decided to journey out from the world

02:45:43 of being a researcher at MIT

02:45:45 and potentially doing a startup myself.

02:45:48 And I’ve been thinking of, you know,

02:45:51 I wanted to come to Silicon Valley to do so.

02:45:53 It’s the land of the entrepreneur.

02:45:55 And there’s a lot of my friends,

02:45:57 a lot of them are successfully,

02:45:59 have been entrepreneurs themselves,

02:46:01 have said, do not come to Silicon Valley.

02:46:04 It’d be, you’ve started, you ran amazing teams of engineers.

02:46:09 You started a lot of successful businesses.

02:46:12 I wondered if you could comment on why a lot of people

02:46:15 are leaving California.

02:46:17 Is there something that could be fixed about California?

02:46:19 If you were starting a business today,

02:46:22 would you consider somewhere else,

02:46:24 like Austin or some other place?

02:46:27 Or is Silicon Valley still, is it just a little lull,

02:46:30 everybody’s being overdramatic during this particular year

02:46:34 of the coronavirus and so on?

02:46:35 I think, you know, even Austin’s getting overheated, I hear.

02:46:39 And I’ve had relatives and friends move to Texas

02:46:42 within the last few months.

02:46:43 So Texas as a whole is a big place.

02:46:45 And, you know, people are moving to Florida.

02:46:48 There’s a big movement toward Miami,

02:46:50 Peter Thielke, these people.

02:46:53 The mayor has been very business friendly about it,

02:46:56 which I think is just good politics.

02:46:58 America is fundamentally a commercial republic.

02:47:00 So you would think this would be what’s happening.

02:47:02 For a long time, California was the golden state.

02:47:04 I came here in late 76 when I was a teenager.

02:47:06 So it’s in crushing debt due to the lockdowns.

02:47:11 It’s got the highest taxes.

02:47:13 That’s got to matter.

02:47:14 People will do high taxes.

02:47:17 It’s got likely fires every year because of the deadfall.

02:47:21 It’s not global warming.

02:47:22 It’s because the forests weren’t managed

02:47:24 like they had been in the first part of the 20th century.

02:47:28 Just, I would say corruption at all levels,

02:47:31 especially up to the governor,

02:47:32 who famously was eating at the French Laundry

02:47:34 and claimed that the outside was inside.

02:47:36 And they wore masks off and it was great.

02:47:39 Do what I say, not what I do.

02:47:42 Rules for thee, but not for me.

02:47:45 When you see that in leadership,

02:47:47 people either run or they get rid of the leadership.

02:47:50 So there’s a recall drive,

02:47:51 which is about to reach the threshold.

02:47:53 Or in the old days, they get their guns, right?

02:47:56 You don’t put up with this junk.

02:47:57 But ultimately, the thing that made Silicon Valley

02:48:00 a special place, it gave freedom to young kids,

02:48:04 entrepreneurs, young minds, brave minds

02:48:08 to think bold, to try different stuff.

02:48:10 I mean, even if the taxes are high,

02:48:12 so outside of financial stuff, outside of all of that.

02:48:15 Housing’s super expensive.

02:48:16 Housing’s super.

02:48:17 So it’s hard.

02:48:18 Okay, everything about startups is hard.

02:48:19 Peninsula was narrow and they didn’t plan the roads, right?

02:48:22 Yeah.

02:48:23 They got rid of public transportation in LA,

02:48:26 like the Who Framed Roger Rabbit cartoon show.

02:48:28 They used to have trolley cars in Portland too.

02:48:30 The oil companies and the DOD conspired to build highways

02:48:34 and make cars dominant.

02:48:35 And the rights of way are long gone.

02:48:37 Like Elon’s gonna go underground.

02:48:39 And I wish him well.

02:48:40 That’s probably the only way to do it now.

02:48:42 But is it still a place,

02:48:44 do you think it’s possible that Silicon Valley

02:48:46 is still a place where magic happens?

02:48:48 Where the next Google’s built?

02:48:49 Where the next, I mean, Brave is built where?

02:48:53 I think all good things come to an end.

02:48:54 I think the problem is Silicon Valley

02:48:56 had strong network effects through Stanford,

02:48:58 through the angel investor networks and the wealth effect.

02:49:02 And originally you have to give the federal government credit

02:49:05 like the ARPANET was a government project.

02:49:07 Let’s not kid ourselves.

02:49:08 This wasn’t wild free market, libertarian capitalism.

02:49:11 This was all Cold War stuff.

02:49:14 You had out of the academia, you had Shockley

02:49:17 and then the Traders Aid and Fairchild and Intel.

02:49:21 But now, when’s the last fab that was built in the Valley?

02:49:25 MicroUnity might’ve been the last, I don’t know.

02:49:26 I haven’t followed.

02:49:27 We built a fab in Sunnyvale and MicroUnity

02:49:31 in starting early 90s.

02:49:33 And now the fabs are overseas.

02:49:36 And the one thing that I would say

02:49:38 that the oligarchs have intentionally done

02:49:40 in both parties is sort of labor

02:49:44 and environmental protection law arbitrage

02:49:46 by going where the labor is cheaper

02:49:47 and the environmental laws aren’t as strict.

02:49:49 And that’s polluted the hell out of parts of China,

02:49:52 but it’s made things, you can make cheaper junk.

02:49:54 And this is not a story that’s over yet.

02:49:58 So what is Silicon Valley for now?

02:50:00 It’s for the network effect, the brain trust

02:50:03 of who you know, the parties, the Stanford sort of network.

02:50:09 That’s fragile too over time, I’m afraid.

02:50:11 Stanford, a lot of good professors are like,

02:50:16 they still filter mainly based on socioeconomic status,

02:50:19 but it’s kind of a skate school.

02:50:22 I had a friend hired out of Harvard 20 years ago at Netscape

02:50:26 and we talked about Harvard and he said,

02:50:28 yeah, there’s still professors who do great on the curve.

02:50:30 And I said, oh yeah, I don’t think they’re any doing that

02:50:32 at Stanford anymore.

02:50:33 And he said, yo, it was shocking.

02:50:35 Some of the students got Cs and Ds and they were crying.

02:50:37 It’s like, yes, that’s right, the precious deers

02:50:39 can’t take that at Stanford, so they get As and Bs.

02:50:42 Now you look at China and people say what you all about China,

02:50:46 they prove Russia too, a lot of math science training,

02:50:49 a lot of engineering, a lot of people who are doing

02:50:52 their coursework to get the As and the Bs.

02:50:55 So I’m an American, I’m born on the 4th of July.

02:50:59 American, yeah.

02:51:00 4th of July, wow.

02:51:02 And America, as I say, fundamentally

02:51:03 is a commercial republic.

02:51:04 You can try to make it something else.

02:51:06 You can say it’s the new Atlantis and mystify it.

02:51:09 You could talk about it in a more, I think, correct way,

02:51:11 which is 13 colonies that grew and then there’s a lot

02:51:13 of local or original design anyway,

02:51:16 the federalist papers talk about this,

02:51:18 there’s a lot of subsidiarity,

02:51:20 but that’s been eroded over time.

02:51:23 And like I say, a lot of the offshoring is hurt.

02:51:26 So what happened with coronavirus?

02:51:28 People working from home, and at first it was funny

02:51:30 because I have friends at Google who used to grumble

02:51:33 that not only did they have to come into the office,

02:51:35 if they joined a different team that was centered

02:51:37 in a different office, they had to move.

02:51:39 Or if the VA team was reconstituted in Munich,

02:51:43 which it was after Lars Bock just got tired of JavaScript,

02:51:46 that they hired in Munich or they hired PhDs

02:51:48 in Germany and moved them to Munich.

02:51:50 With coronavirus, everyone’s working from home

02:51:52 and it’s like, what a relief, I can work for Google

02:51:53 from home.

02:51:54 But then the next shoe dropped and people started asking

02:51:57 Mark Zuckerberg, hey, can I move to my hometown

02:52:00 in the Midwest?

02:52:01 And he said, okay.

02:52:02 And they said, oh, can I keep getting my Silicon Valley pay?

02:52:05 No.

02:52:06 We’re gonna figure out what your cost of living there is

02:52:08 and we’re gonna adjust your pay accordingly.

02:52:10 And these colonies and these little mini experiments

02:52:13 that all combine to the big giant experiment,

02:52:15 I have a, I don’t know, I have this vision of America,

02:52:20 which the country, I was born in Russia, like I said here,

02:52:22 and this is truly a wonderful country.

02:52:24 I wasn’t born on the 4th of July, but I might as well be.

02:52:27 People still flee here.

02:52:28 I still, and I’m a red blooded American at this point.

02:52:31 And I have a sense that we figured it out somehow.

02:52:35 If Silicon Valley burns, another place will come up

02:52:37 in this place that even more innovation and people will move

02:52:42 and the remote work might change fundamentally how we work

02:52:46 or it might not.

02:52:47 It might just give you the freedom to then create

02:52:49 many other small Silicon Valleys throughout the place,

02:52:52 like Austin included, but other places as well.

02:52:54 And we somehow figured it out and…

02:52:58 I think that’s true that there will be more mobility

02:53:01 and maybe new places that come up.

02:53:03 I don’t know if Silicon Valley has passed some sell by date

02:53:07 because it did hurt.

02:53:10 The coronavirus hurt, the lockdowns hurt in the sense

02:53:13 that part of what keeps things going is social.

02:53:15 And so a lot of young people, even before coronavirus,

02:53:18 moved to San Francisco.

02:53:19 It was very strange to watch because in the 80s,

02:53:21 we all lived in the Valley and it was less populated

02:53:24 and San Francisco was grungier.

02:53:26 It was more like Dirty Harry in the 70s.

02:53:28 But by the 90s, and Jamie runs a nightclub there

02:53:31 and he’s talked about this, you had sort of wealthy

02:53:33 tech people moving in south of market,

02:53:36 fancy townhouses being built.

02:53:37 And that’s continued in such a point that it’s almost like,

02:53:41 what’s the movie by the South African director Nils Jody

02:53:43 Foster up in the space colony?

02:53:46 Matt Damon is the guy on the earth who has to go

02:53:48 up and anyway, it’s about the stratification.

02:53:50 It’s about the great inequality that people

02:53:52 in the space station have like amazing medical auto docs

02:53:55 that can extend their life or save them cure cancer.

02:53:57 People on earth are all suffering ground down in poverty.

02:54:02 And that sort of happened while I was here.

02:54:06 You saw a lot of money drive prices up

02:54:10 along the narrow peninsula and the single people

02:54:12 wanted nightlife so they were in the city

02:54:14 and the condos in the city got super expensive.

02:54:16 And I know even Google friends who are socially responsible

02:54:20 say we should have more housing built.

02:54:22 We should have yes in my backyard, not in my backyard.

02:54:25 But that’s not happening as far as I can tell.

02:54:28 And from the government to the incumbent landowners

02:54:32 and renters, it’s just not happening.

02:54:34 And that has to drive people away.

02:54:37 I appreciate that people come here and you should wait

02:54:40 for the prices to moderate, they will.

02:54:42 But a lot of people are gonna go where the prices are lower.

02:54:47 You, and sorry for silly questions here,

02:54:50 but just looking back, you have created things,

02:54:54 have been part of creating things

02:54:56 that have transformed this world, the world of technology,

02:55:00 perhaps more than almost anything else.

02:55:04 But you’re still a human being

02:55:07 and unfortunately this ride ends.

02:55:10 Do you ever think about your own mortality?

02:55:13 Not too much, I mean, I’m a Roman Catholic

02:55:17 so I am not afraid of death.

02:55:19 I think a lot of people who have problems with death

02:55:25 are suffering from some lack of either faith

02:55:30 in their transcending death or maybe they don’t have

02:55:33 children or they feel like they get later in life

02:55:37 and they feel like they’ve missed opportunities

02:55:39 to do something that endures.

02:55:40 And I sympathize with a lot because I’m old,

02:55:43 I got married fairly old, so I understand all that.

02:55:46 Nothing human is alien to me as Terrence said.

02:55:50 But I don’t fear it, no.

02:55:54 What do you hope your legacy is?

02:55:56 Yeah, it’s gonna be JavaScript.

02:55:57 I think, no, I think my legacy has more to do

02:56:01 with my children and their children.

02:56:03 I think it also has to do with web standards,

02:56:06 it has to do with things like Brave,

02:56:08 the things we did with Firefox.

02:56:10 When we did, I’m not gonna oversell Brave

02:56:13 but I think Brave is important and we’ll continue

02:56:15 to prove this in a way that counts

02:56:16 for many decades to come.

02:56:18 But even Firefox, whatever its future fortune,

02:56:21 showed you can restart the browser market.

02:56:23 This thing you said about people opting out

02:56:26 and routing around, you don’t need everybody to do that.

02:56:28 It’s more like Taleb’s stubborn minorities that do that.

02:56:31 It’s the lead users, Erfron Hipple’s lead users.

02:56:33 You can be a few percent, you can tilt the market.

02:56:36 And that can be done in spite of the incumbents,

02:56:39 of moneyed interests not being in favor of what you’re doing.

02:56:41 So I think what we do with Firefox won’t be forgotten

02:56:45 and it needs to be done more and we’re doing it with Brave.

02:56:47 And you could argue that other projects are doing it.

02:56:48 In some ways, blockchain is doing it.

02:56:50 The Robinhood, take down the use of Robinhood

02:56:56 by the Wall Street Bets kids, similar.

02:56:59 So yeah, that kind of spirit endures.

02:57:01 And I think it, in some ways it’s American, right?

02:57:04 It’s not hard revolutionary.

02:57:06 It’s not trying to burn the past and destroy everything.

02:57:08 It’s more like we have these certain, let’s say rights.

02:57:15 We have duties too.

02:57:16 So there’s some debate about which comes first

02:57:17 in American jurisprudence and the founding documents.

02:57:20 But as long as things are working,

02:57:23 we’ll be like pragmatic Americans,

02:57:25 like de Tocqueville described in his writings.

02:57:29 But if things get too out of whack for one reason or another,

02:57:32 too unequal, too oligarchic and abusive,

02:57:35 we’re gonna start our rights.

02:57:37 And even a few of us can do it.

02:57:38 And even in the American Revolution,

02:57:40 it was the minority who fought and put their lives,

02:57:44 treasure and sacred honor at stake.

02:57:45 It was a bunch of people went to upper Canada,

02:57:48 I think it was called, Ontario.

02:57:51 Yeah, that’s the beautiful, I mean,

02:57:52 that is at the core where your work stands for

02:57:55 is that a few people can have the power

02:57:58 to transform society with just a few radical ideas,

02:58:01 with just a little bit of code, change the world.

02:58:04 Gotta do it.

02:58:05 And that’s empowering.

02:58:06 That is the American way.

02:58:07 That’s why this country is, I believe,

02:58:09 the greatest country on Earth.

02:58:10 That’s not over, or Matt says it too much,

02:58:13 but I think some special things

02:58:15 have already happened in this country

02:58:17 and will continue to happen.

02:58:18 And that’s really exciting.

02:58:19 And that spirit can continue no matter who comes here.

02:58:22 They can adopt those folkways and that spirit.

02:58:25 Brandon, I can’t tell you how much,

02:58:27 I was freaking out how much of an honor it is

02:58:29 to talk to you.

02:58:30 You’re an incredible human being.

02:58:31 It’s one of my favorite conversations ever.

02:58:33 Thank you so much for wasting all this time with me.

02:58:35 I really appreciate it.

02:58:36 Oh, it seems like a breeze.

02:58:38 My pleasure.

02:58:39 Thank you for listening to this conversation

02:58:41 with Brandon and Ike.

02:58:42 And thank you to our sponsors,

02:58:44 Jordan Harbert’s Show, Sun Basket Meal Delivery Service,

02:58:48 BetterHelp Online Therapy,

02:58:50 and Eight Sleep Self Cooling Mattress.

02:58:52 Click the sponsor links to get a discount

02:58:54 and to support this podcast.

02:58:57 And now, let me leave you with some words from Jeff Atwood.

02:59:00 Any app that can be written in JavaScript

02:59:03 will eventually be written in JavaScript.

02:59:06 Thank you for listening and hope to see you next time.