← Lex Fridman

Brendan Eich: JavaScript, Firefox, Mozilla, and Brave

Episode 1602021-02-12English

Guests: Brendan Eich

Listen to this episode00:00 / 3:04:30
Reading settings
Reading preferences
Text size
Download in-depth read
Read offline

In-depth read pending

Downloads are not available yet.

§01Transcript · 00:00–08:37

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

00:02creator of the JavaScript programming language,

00:05co-founder of Mozilla, which created the Firefox browser,

00:09and now co-founder and CEO of Brave Software,

00:12which has created the Brave browser.

00:15Each of these are revolutionary technologies.

00:18JavaScript is one of the most widely used

00:21and impactful programming languages in the world.

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

00:29or even take for granted today.

00:31And Brave is looking to revolutionize

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

00:36and the nature of the internet to make it fundamentally

00:39about respecting people's control over their data.

00:43Quick mention of our sponsors,

00:45the Jordan Harbinger Show,

00:47Sun Basket Meal Delivery Service,

00:49BetterHelp Online Therapy,

00:51and 8sleep Self-Cleaning Mattress.

00:53Click the sponsor links to get a discount

00:56and to support this podcast.

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

01:00between theory and engineering

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

01:05I tweeted something like,

01:06"Good execution is more important than a good idea,

01:09"but one helps the other."

01:11I think the wording of that sucks,

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

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

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

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

01:26and good execution is essential.

01:28Getting that mix right is tough,

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

01:32did just that.

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

01:36like most interesting things in life.

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

01:41review on Apple Podcasts, follow on Spotify,

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

01:47@lexfriedman.

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

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

01:56- I didn't program a lot when I was in high school,

01:58but I had a friend who had a Commodore PET.

02:01And after we saw Star Wars, he said,

02:02"Hey, let's make a basic program

02:05"that does the Death Star Trench run."

02:07And it was just simple 2D graphics.

02:10And I didn't know what I was doing,

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

02:14I was a math and science kid.

02:15I was really into the HP calculators of the early mid '70s.

02:19These were the RPM.

02:21They were really strongly built,

02:23and are at Goldfinger, instead of gold divinely heavy.

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

02:29But they were awesome calculators,

02:31and they had all the scientific functions,

02:32so I was really into that.

02:34So I aimed toward physics.

02:37I was a little late for the, I think,

02:40the 20th century golden age,

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

02:43so I was like, yeah, it's on the hyperdrives and warp drives.

02:46And physics was not gonna get there quickly,

02:50and I started hacking on computers

02:52while I was studying physics as an undergraduate

02:54at Santa Clara University.

02:56And I dodged the Fortran bullet

02:59because I was in the science department

03:01instead of the engineering department,

03:02where they still did Fortran card decks.

03:05I think they had an auto collator.

03:07But we were using Pascal,

03:09and I got one of the first portable C compilers,

03:13ports to the deck minicomputers we were using.

03:17And I fell in love with programming

03:19just based on procedural abstraction, Pascal,

03:24just what now would be considered old school,

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

03:31Niklaus Wirth, the creator of Pascal,

03:33was a good writer and a good pedagogue.

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

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

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

03:42- From scratch. - Yeah, kind of.

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

03:47said he would torture the students

03:50with things like this custom email system

03:52that had 25 word limit. (laughs)

03:55And things like that.

03:56- I unfortunately dodged both the Pascal

03:59and the Fortran bullets.

04:00Could you maybe linger on the Pascal?

04:04What kind of programming language was it?

04:06What is it reminiscent of today?

04:08Because it sounds like it may have had

04:10an impact on your own trajectory.

04:12- Yeah, it was in the Algol family.

04:14And Algol was the big successful

04:19language design and compiler project in the '60s.

04:23It had a successor called Algol 68,

04:24which was ambitious but not as successful.

04:27But Pascal was kind of a wordy procedures

04:30and functions language.

04:32It distinguished between functions,

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

04:36which just compute.

04:37And you could say that whole Algol family went into Ada.

04:42Pascal had a second life thanks to Borland

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

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

04:51who then went to Microsoft and did C# and .NET

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

04:55Doing TypeScript, Type JavaScript.

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

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

05:03by the time I was an undergrad.

05:05Because people were bringing Unix up

05:07on all sorts of hardware.

05:09I had some friends who were doing

05:10their own wire-wrapped computers, 6820 maybe.

05:14And I was wire-wrapping for my engineering course,

05:191609 or something simpler, building a computer on a board.

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

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

05:26I picked the National Semiconductor NS16032,

05:30which was this amazing CISC,

05:34Complex Instruction Set Computer.

05:37And not the reduced instruction set computers

05:39that were just being contemplated into the mid '80s.

05:43- And RISC ultimately won out.

05:45- RISC-I in some ways, it dissolved into,

05:48you have both now.

05:49You have these super scalar architectures

05:50where Intel has kept probably too much backward compatibility

05:55at the instruction level.

05:56But there's a front end that parses that

05:58into these wide internal instructions.

06:01So the very long instruction word research

06:04that was also interesting at the time

06:06kind of became the microarchitecture

06:08inside the backward compatible Intel.

06:11But I picked the National Semichip

06:13and it never got made successfully.

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

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

06:21into math computer science.

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

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

06:28And I thought, meanwhile, the valley is go-go for computers.

06:32The Apple II, the PC, the Intel.

06:368086, 8088 based PC, the IBM.

06:41Gave Microsoft the future for a somewhat fishy deal.

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

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

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

06:54who were all in the same grade.

06:56I have a twin and a younger brother

06:58who skipped second grade and was with us

07:01the whole time after that.

07:02And he went on.

07:04He actually studied under Kip Thorne at Caltech.

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

07:09(laughing)

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

07:16even with string theory, hasn't really had

07:18any foundational breakthroughs in the latter part

07:21of the 20th century?

07:23- Yeah, in fact, I'd say the problem is theory

07:25over experiments.

07:27I would say we need more Aristotle and less Plato.

07:30Mathematics is not all physical.

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

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

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

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

07:45that could have lots of alternative theories

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

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

07:53- I don't know if you are friends with

07:54or have a relationship with Elon Musk.

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

08:00our society investing in building up,

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

08:06Feynman and Einstein and those?

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

08:10and I think that's noticed.

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

08:14the famous pictures from Germany before the Second War

08:17were just a fantastic assembly of brains,

08:21Schrodinger and Einstein.

08:23Physics, I think, took a wrong turn

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

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

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

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

08:37and generative and then we build actual devices

§02Transcript · 08:40–17:06

08:40or semiconductors, things like that.

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

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

08:46and prove them and test them.

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

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

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

08:59is models that don't really have to be tested

09:04against reality.

09:05They can instead become policy tools

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

09:09one of a large family of alternate theories

09:12that could be as predictive,

09:14but nobody's doing the winnowing out.

09:16- That's such an interesting tension in society.

09:18You see this in even the softer sciences,

09:20which I have a deep love for, like psychology.

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

09:27- Absolutely.

09:28- There's this tension of how much of the world

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

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

09:37is in machine learning, where it's like

09:41there is no provable thing usually.

09:44It's just kind of, it's all about just getting

09:46the right data set and getting tricks and so on.

09:49And there's this tension, even in my own soul,

09:51of like I grew up in theoretical computer science.

09:55I loved approximation algorithms,

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

10:01just those little puzzles.

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

10:06who was in math and computer science

10:08and then ended up going into places

10:11where you engineered some of the most impactful things

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

10:18all that whole space as interesting at all?

10:21- Yeah, it's not that useful in practice, right?

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

10:27or asymptotic arguments about can we have

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

10:35which may not be practical, right?

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

10:40there are big questions about how quantum computing

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

10:46- Is that something that you think about,

10:48quantum computing?

10:49- Not for a spare time.

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

10:53in practice because almost everything now is engineering

10:57and finding ways to get computers

11:02to be more useful for people,

11:03which goes from design problems,

11:06which are really kind of an art.

11:07Like Knuth said, anything you can't automate is an art.

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

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

11:14and it can sound kind of decent,

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

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

11:23- So speaking of things that didn't follow

11:26a perfect theory and model, JavaScript.

11:30So there's two things.

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

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

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

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

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

11:47- Yeah, I was at Silicon Graphics after graduate school

11:51for seven years, and it got to be big and successful

11:54and divisionalized and political,

11:56and I thought, kind of boring.

12:00And a friend who'd been there went to

12:03one of the last of the super companies,

12:05super startups in the early '90s.

12:07There were several.

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

12:10or around the same time.

12:11But MicroUnity was that company that I went to,

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

12:16had gone there from Silicon Graphics.

12:18He recruited me, and MicroUnity was doing everything.

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

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

12:29It was doing new analog and digital circuits

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

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

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

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

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

12:49that was essentially a barrel processor,

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

12:55that we now see in modern architectures

12:58with short vector instructions

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

13:04and doing a lot of the stuff in software

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

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

13:13of rolling the trucks out

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

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

13:21So if you could have software-gradeable set-top boxes,

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

13:26and add features.

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

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

13:33We were writing C++ in C.

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

13:39hired from a sort of Wall Street

13:43hotshot programming consultancy,

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

13:47We were working on how to make

13:49not only short vector units,

13:50but general bit shufflers and permuters

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

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

14:01complex quadrature amplitude modulated signal.

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

14:07dumping things in buffers,

14:09and then doing the rest in software.

14:10All the framing and the Reed Solomon

14:12and Viterbi and all that error correction.

14:14So that was really great learning experience,

14:16but it was not gonna work.

14:16It was doing too many risky things at once.

14:19As Jim Clark said to me when I hopped to Netscape

14:21after three years at MicroUnity,

14:23he said, "Oh yeah, you do 10 things,

14:25"each one in 10 odds, it's gonna be one in 10 billion."

14:28(laughing)

14:29The multiplication principle.

14:31So Netscape was already a rocket,

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

14:36I knew the founders, 'cause I worked at SGI,

14:39Clark's company.

14:40- Could you pause for a second?

14:41Netscape, when was the launch of this rocket?

14:44- '94.

14:45- '94 was the launch of Netscape?

14:47- And I went there in early '95, in April.

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

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

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

14:59- How obvious was it that Netscape was world changing?

15:02What was the layout?

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

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

15:09we saw a browser called Mosaic.

15:11And up 'til then, we'd used email,

15:13and we'd used Usenet, the NNTP protocol.

15:15We'd used Newsreaders, we used FTP,

15:18we used all these old internet protocols,

15:20all relying on the DNS and TCP/IP and UDP,

15:24for that matter.

15:25When I was at Silicon Graphics,

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

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

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

15:34ARP protocol, all that stuff.

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

15:38what was gonna win.

15:39All the proprietary stacks like IBM, SNA, and DECnet,

15:43and all these other protocols were saying,

15:45we're gonna do it, or it's gonna be heterogeneous future.

15:48Instead, it was Berkeley Unix and the TCP/IP stack

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

15:54And I think we knew it.

15:56We all knew it at SGI, but the salespeople didn't.

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

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

16:04And so that was the internet.

16:06And it was email and texty, and it was used then,

16:09very texty.

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

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

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

16:16or when he wrote the famous email,

16:17it's been pushed back to '89.

16:19But I noticed a mosaic in '93,

16:21because one of the things that Mark Andreessen

16:24and Eric Bina did at NCSA was they innovated

16:28on the early HTML standard.

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

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

16:34to put an image in a page.

16:36And you know when he sent that,

16:37Eric Bina had already written the code.

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

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

16:43oh, we had another way of doing it.

16:44And it didn't work out, 'cause Mark shipped his in mosaic.

16:47And this convinced me of several things.

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

16:53first mover advantage, and being fast,

16:56getting on first, mattered a lot.

16:58And so Richard Gabriel of Scheme and Poetry fame

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

17:03- Poetry, what's poetry?

17:04- Well, he's a poet.

17:06- Oh, actual poetry.

§03Transcript · 17:07–25:07

17:07He's like talking about some kind of subject.

17:08- No, no, I mean, he's the founder of Lucid,

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

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

17:16which was a fork of Emacs, famously Jamie fighting

17:19against Richard Stallman, Stallmax.

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

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

17:27that gets abused all the time.

17:28In fact, Jamie's put a kind of warning

17:30in front of his version of it on his site, JWZ.org,

17:33called Worse is Better.

17:34And this is about survival advantage of software

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

17:39It's about Unix, it started out being framed

17:42as Unix and Lisp, good news, bad news,

17:44because all the Lisp people, the MIT people,

17:46were like, oh, the crown jewel scheme,

17:50this Fabergé egg, or Common Lisp, this giant cathedral.

17:53Of course we're gonna win, this is civilization.

17:55And those farmers in New Jersey, to borrow from Sopranos,

17:59those hicks down at Bell Labs, they're just,

18:02there's nothing sound there, it's all hacking.

18:04- Yeah.

18:05- Well, guess what won?

18:06- Wow, so you're saying this is a fundamental principle

18:11of the internet is moving fast winds.

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

18:16like in biological evolution, you see successful alleles

18:19sweep populations, and they don't always have,

18:22they aren't free of flaws, they,

18:24heterozygous advantage, right?

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

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

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

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

18:38except at large scale, and then you realize that

18:40because it moves fast and can adapt, it can win.

18:44And people still struggle with this.

18:46I used to struggle with this, because JavaScript was done

18:48in such a hurry, and the force of web compatibility

18:52meant early mistakes couldn't be fixed.

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

18:57as it will, but often standards bodies go back

19:00and making compatible changes.

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

19:03It's more like, again, like biology,

19:05you preserve what still works.

19:07You don't wanna break ATP metabolism or whatever.

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

19:15of worse is better being enshrined

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

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

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

19:28which is why JavaScript has kind of swept

19:31a lot of programming domains.

19:33People will say, "Oh, it's not because of merit."

19:34Well, you're right, but we also improved it over time

19:36in the standards body.

19:37I spent 20 years doing that.

19:39And you don't get that choice.

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

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

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

19:50I could have told Netscape, "I can't do this.

19:52"It's too rushed."

19:53And it would have been Visual Basic Script,

19:55and it would have been bad.

19:58- So that's a good way to present the alternative.

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

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

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

20:08in your mind at the time?

20:09- So the whole, I'm sort of describing worse is better

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

20:15When it was known that Jim Clark and Mark Inveas

20:19were founding Netscape, and they did the first release

20:21in 1994, that browser took over from Mosaic.

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

20:27It's the Mosaic killer.

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

20:30- That's awesome.

20:30- And they knew that, it wasn't that, again,

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

20:36that is changing the world.

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

20:41of the browser Mark did, which had images,

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

20:45and you're making Netscape the new thing that has images,

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

20:51It had something that's kind of died now

20:53for tiled windows called frames and framesets.

20:56- Oh, yeah, yeah, yeah, yeah.

20:57- HTML tables, that was new.

20:59Eric Bina did tables in Netscape 1.1.

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

21:05Clark wanted to IPO early.

21:06I think his instinct was right,

21:07and that kicked off the whole dot-com era.

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

21:13You can see old Law & Order reruns

21:15where they talk about the recession,

21:16how hard it's hitting New Yorkers.

21:18And after that, Greenspan really goosed things

21:20at the Federal Reserve, and technology had been

21:23sort of fermenting in a way that came together

21:25with the internet, and Netscape made it possible

21:28to do pets.com, to do eBay, to get people to recognize

21:33a URL on a billboard and then type it in when they get home.

21:36And that was huge.

21:37That was so fast moving a rocket that Mark

21:42and the engineering team there thought,

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

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

21:50- So it was all HTML with images and tables,

21:53and also, like you said, frames.

21:55- Early plugins.

21:56- There's no dynamic element at all.

21:57- Yeah, the most dynamism you get was from a plugin,

21:59which there were a few of them then.

22:01Flash didn't exist at that point.

22:03It was, I think--

22:05- Java Applets yet, or no?

22:07- Well, that's the thing.

22:08We did the deal with Sun.

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

22:12Remember Guy Steele and Gerald Sussman's

22:14beautiful Lisp variant?

22:16I was gonna do it in the browser

22:17because my friends from SGI thought,

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

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

22:22It's not really used in industry,

22:23except in sort of silos.

22:25But I like it.

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

22:29I have a slide from my 2017 talk

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

22:34in Die Hard.

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

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

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

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

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

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

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

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

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

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

23:04that was still most popular,

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

23:09Microsoft was coming out with Windows 95

23:11and everyone was afraid they were gonna do

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

23:16three the next year.

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

23:20this other company that shot out from NCSA

23:24at University of Illinois.

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

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

23:31And I heard about this later.

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

23:35And so Jim Barksdale and Jim Clark said,

23:37"Get out of here," in a pound of sand.

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

23:43because now they're gonna copy us.

23:45Didn't happen right away.

23:46I'm not sure when Gates' Internet Tidal Wave memo

23:49was written.

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

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

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

24:01presumably after the SR-71, I don't know.

24:03But they were gonna make a dial-up service

24:05with a custom content language stack and custom rendering.

24:09It wasn't the web.

24:10They could have content partners.

24:13They have a lot of money.

24:14But it still wasn't to scale the web.

24:15It wasn't gonna be compelling.

24:16And Gates realized this, and he turned the company

24:19on a dime, and they couldn't buy Netscape.

24:22Again, I'm not sure of the timing.

24:23So they decided to copy it.

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

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

24:30And so my chance to do Scheme disappeared

24:33when the Java deal started brewing.

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

24:38to Java because Java is a compiled language.

24:42It's evolved and improved quite a lot since then too.

24:44But it was for serious advanced programmers

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

24:51And people observed, Bill Joy observed,

24:53and Mark Andreessen and I observed,

24:55that in a mature stack like Microsoft,

24:57you really benefit from having a scripting language

25:00like Visual Basic, which became Visual Basic Script

25:03in IE3, but didn't take over and kill JavaScript,

25:07that you need two languages.

§04Transcript · 25:08–32:39

25:08One is for the component writers

25:10who are higher priced and more expert.

25:12And the other is for scripters,

25:17certified public accountants, designers,

25:19graphic designers with some programming inclination.

25:21Anybody, amateurs, doesn't matter.

25:23There's a much more demotic approach there

25:26for programming the components together,

25:28gluing them together.

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

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

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

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

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

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

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

25:47So they said, "Oh, there's some trademark

25:48"in some software somewhere that uses Mocha,

25:50"so we can't use that."

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

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

25:56in December, 1995.

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

26:01was important because I came in in April

26:05and even then Netscape was growing so fast

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

26:11in the client team for me.

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

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

26:16on what became HTTP/1/1.

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

26:20at Silicon Graphics with Greg Chesson,

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

26:25who knew all the Unix founders.

26:27And Greg was very interested in taking protocols

26:30to the next level with VLSI

26:32'cause he thought that CPUs wouldn't scale up.

26:35He was mistaken in that, unfortunately.

26:37Moore's law more than kept up.

26:39And you have gigabit ethernet running

26:41with conventional processors.

26:42But I worked on protocols at SGI

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

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

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

26:55what should this language be like?

26:56Should it be easy to use?

26:58Might it syntax even be more like natural language

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

27:04in HyperCard, if you have ever used HyperCard

27:07on an early Mac.

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

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

27:15which looks like C from a distance.

27:17- What does that mean?

27:18Is it braces we're talking about visually?

27:20Does it mean like, what, management,

27:23do they understand what--

27:24- They don't, marketing didn't know,

27:25but management did, like the rickshaw of engineering knew.

27:28And we had a plan even that was,

27:31if you have this companion language,

27:32you're going to glue things together

27:34between Java and JavaScript.

27:35So you're going to have commerce in memory,

27:38in the heap with data types.

27:40So you're going to want some of the data types in Java

27:42to reflect in the JavaScript.

27:43You're going to want the primitive types that Java,

27:46unfortunately, severed from objects.

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

27:50in Java's terms, from the C term for double precision,

27:53floating point, or strings, or Booleans, and objects.

27:58And so right away, there was this constraint

28:03that looking like Java meant kind of the C curly brace

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

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

28:11- Dotted columns.

28:12- Comparison operator.

28:13- Garbage collection, all that stuff.

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

28:17including the unsigned right shift,

28:19which Java had because it didn't have unsigned integer types.

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

28:24use an operator.

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

28:27I'll tell that story five times.

28:28But JavaScript inherited a set of,

28:33operators, the expression grammar,

28:36the statement grammar up to a point from Java.

28:39But I wanted a functional language.

28:40I wanted a little bit of Scheme,

28:42even though it wasn't as clean as Scheme.

28:44- So you had a love, sorry to interrupt,

28:46you had a love for Scheme and Lisp,

28:47that functional language landscape.

28:49- Yes, I wanted first class functions.

28:51Because I saw the need for callbacks in the browser,

28:54where it's a single threaded program.

28:55All the early browsers were single threaded.

28:57And it's the right model for users.

28:58Most users weren't ready for mutual exclusion

29:00and threading.

29:01So in a single threaded world,

29:03you cannot block the user interface.

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

29:07And without getting too fancy

29:09and trying to capture the continuation,

29:11like call CC does in Scheme,

29:13I thought I'll just make it easy to have fun arcs,

29:16first class functions you pass downward

29:18and it can be called back.

29:20And Java didn't have that at the time.

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

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

29:30- It did have concurrency, right?

29:32- Yes.

29:32- From the very beginning.

29:33But you were thinking that the JavaScript in the browser

29:36would not have the luxury of being concurrent.

29:39- That's right.

29:40And the reason was,

29:41Java was gonna run in the plugins.

29:42We could fork threads and go to town.

29:44But the main action in the browser

29:46was in the single threaded program,

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

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

29:54and then go do things.

29:56Respond to the network, lay out some HTML,

29:58render it, turn widths into heights

30:01by filling containers, boxes,

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

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

30:09respond to user input.

30:11And all that event driven programming

30:14was in part like HyperCard

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

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

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

30:24And there's some funny ones on mouse over and on mouse out.

30:27People still complain about those.

30:28But there are many more events now

30:30over the years standardized.

30:31But it was a mix of event driven,

30:33single threaded programming

30:34because it had to run in the main thread of the browser

30:38where the action is.

30:38And Java never got there,

30:40which meant Java could not interact easily

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

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

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

30:51And that is one of the reasons I think JavaScript survived

30:54and Java kind of died.

30:55Java was in this plugin prison.

30:56It essentially was confined to a rectangle,

30:58the app with rectangle.

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

31:02Nick Thompson, a friend from SGI,

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

31:08built the first version of Live Connect

31:10to glue Java and JavaScript together

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

31:14between the data types in the heap.

31:16- Did it work?

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

31:21JavaScript was in charge

31:22and Java was just these components, these helper.

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

31:25- What happened over time.

31:26It's like an evolutionary filter.

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

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

31:33They thought, oh, Netscape was giving us

31:35the distribution vehicle and we don't care

31:37about the browser, it's just about getting Java out there.

31:39And that was a big miscalculation.

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

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

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

31:48which famously blew up.

31:50And Microsoft kicked Java out of Windows.

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

31:56I think they already evaluated it and liked it

31:58on Anders Helsberg's .NET and C#

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

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

32:06We don't want the patent risk.

32:07We don't want, I'm not sure what the fights were about.

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

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

32:16like in Outlook Web Access, which had a lot of JavaScript

32:20to be a Hotmail-like user interface.

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

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

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

32:33they suddenly other, the left-hand gave the boot

32:37and the right-hand said, "We better do something else

32:39in Outlook Web Access.

§05Transcript · 32:40–40:20

32:40What are we gonna do?"

32:40And they said, "Let's just add an ActiveX component,"

32:43which is their own native way

32:45of embedding things in languages.

32:46And we'll make it, it'll be what became XML HTTP request,

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

32:55And it's been replaced by the Fetch API

32:57in HTML5 or HTML living document.

32:59But this whole lineage goes back

33:01to Java being successfully the loser and getting kicked out.

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

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

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

33:14but really didn't get used much.

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

33:21But Flash, which Netscape could have bought

33:24but unfortunately didn't.

33:25- Unfortunately didn't?

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

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

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

33:32- Flash was around, was it Adobe?

33:34No, it wasn't.

33:34- No, it was called Future Splash

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

33:38I think his name was.

33:39He came knocking and the marketing guy at Netscape

33:43who was screening the technology partners

33:45or wannabe acquisitions was brutal

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

33:50stock gravy train and he sent them packing

33:52and they ended up selling to Macromedia

33:55and Macromedia was where Flash was created.

33:57And the good thing about Macromedia was it was a tool company

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

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

34:08The timeline, animation is sort of an immutable function

34:12over time.

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

34:14like the Dreamweaver, there's a Flash--

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

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

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

34:22These tools were used by real artists

34:25and special effects people and designers.

34:27All the restaurant websites around 2005 were done in Flash

34:30which was, we were trying to do HTML5 at the same time

34:34that was the Firefox era.

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

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

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

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

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

34:44- You didn't like Flash from the beginning.

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

34:47- Not really, I actually admire Flash's technology

34:50and I'm pretty pragmatic about these things

34:51and I realized that it doesn't matter

34:54if you're dealt a bad hand like JavaScript was a rush job

34:58or if you have Flash as a plugin

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

35:03You should make it better for your users

35:05and grow it as best you can.

35:07And what happened with the browser

35:08due to Microsoft's monopoly abuse

35:11for which they were convicted and even after that

35:15until I think Firefox and then Chrome

35:17was people kept saying, oh, the web can't do X,

35:19it can't do Y.

35:21We'll have to have a plugin.

35:22We'll have to have a new approach.

35:23We'll clean the slate and have a new web

35:26and everyone who said that failed

35:29and the reason they failed is because there's too much value

35:31in the web, this huge network

35:34and the worse is better principle

35:35means that you can not only start bad

35:37which they all sneer at but get on first

35:40and get wide distribution, get sort of evolutionary advantage

35:44and priority of place but you can also improve it over time.

35:49And so if you're gonna improve Flash

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

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

35:55That was probably the death knell.

35:56Put your energy into JavaScript and that happened, right?

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

36:02which bought my Macromedia to improve Flash

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

36:07We tried to standardize that.

36:09- Oh, that's right.

36:09- I'm getting ahead of myself.

36:10- You can program Flash. - ES4, yeah.

36:12- That's right.

36:13Can we just rewind to the magical,

36:15like it's a special moment in the history

36:18of all of computing.

36:20We'll talk about it later but it's arguable,

36:22it's possible that the entirety of the world

36:25will run in JavaScript at some point.

36:27So it's like those days, it would be interesting

36:31if you could just describe actually zooming in

36:34on how the cake was baked from the several days

36:39that you were working on it, what was on your mind,

36:43how much coffee were you drinking,

36:45were you nervous, freaking out?

36:47- I'll try to remember it.

36:48I mean, you're right, there were these pregnant moments

36:50you see in hindsight, maybe they're overrated

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

36:55and says, "There's the world spirit on horse."

36:59And I knew that there was a chance to do it, Mark knew,

37:05and he was my executive sponsor

37:08and he was the one sort of brainstorming

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

37:13That was important for him to say that

37:14'cause I thought so too but a lot of people were like,

37:17"Oh, you can't write programming language

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

37:20And indeed there are problems, if you did it naively,

37:22you'd see the code laid out as like random gibberish.

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

37:26that was a challenge.

37:28- Is that a breakthrough idea?

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

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

37:36- Of the webpage, yeah, it was considered kind of heretical.

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

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

37:42He's like, "You should have used a marked section,

37:44"why didn't you use a marked section?"

37:45And I said, "Well, SGML marked sections

37:47"are not part of HTML by the way,

37:48"and they're not supported in the browser."

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

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

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

37:58sort of evolutionary necessity,

37:59it was almost like introgression,

38:00like the idea which Lin Margulies I think helped get across

38:07that we have to consider mutualism biology

38:10that maybe mitochondria were ancient prokaryotes

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

38:17Somehow the same sort of thinking applies,

38:21you have to embed JavaScript in HTML.

38:23It's gonna be a good virus.

38:24- It won't hurt you.

38:25- So the code becomes data in the sense

38:27it just gets carried along.

38:30But is there the side of the,

38:32so you were focusing on the Netscape at that time,

38:35doesn't the browser have to support,

38:37interpret correctly this mix of HTML and whatever code?

38:41- I had to hide it from old browsers including Netscape 1.1

38:43which was predominant then.

38:45So I used an HTML comment,

38:48but inside the container that comment lived in,

38:50the script tag, which is a new element,

38:51I could make different semantics in Netscape 2

38:54where those HTML comment delimiters

38:57instead of being multi-line brackets

38:58became one line or essentially one line.

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

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

39:05- Yeah, comment for old browsers

39:06and a set of brackets that were ignored

39:08with real code for new.

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

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

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

39:17We didn't have scripts that were loaded

39:19from a separate file.

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

39:22- What were the challenges here?

39:24Like what, you know, typing,

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

39:30- Garbage collection. - Was garbage collection.

39:31- I didn't have time to write a garbage collector,

39:33so I just, I didn't at first.

39:34So the thing was using essentially arenas

39:36or what GNU calls obj pools

39:39and just would run out of memory eventually.

39:41And I added reference counting in a hurry

39:43after the 10 days in which I hacked.

39:45So after I was in the server team doing HTTP 1.1

39:48and thinking about the language,

39:49I finally got transferred to the client team in early May.

39:52And that's when I, you know, I got the go sign from Mark

39:55and it was like, we can't wait

39:57because people inside Netscape are doubting,

39:59even people inside Sun are definitely doubting.

40:01Bill Joy was the champion, but he was like alone in that

40:04in seeing there was a role for JavaScript

40:07as the, as I call it, the sidekick language,

40:10robbing the boy hostage.

40:11(laughing)

40:13Frank Miller put it in the Dark Knight Returns

40:16that there was this silly little language

40:18that would be the glue language

40:19and it could become important over time.

40:20And you were better off having that complementarity,

§06Transcript · 40:23–48:18

40:23that pairing of languages,

40:25just like Microsoft stacked it

40:26with Visual C++ and Visual Basic.

40:28- So what was the big moment of I'm done?

40:33- So I had to do a demo.

40:34I forget the dates.

40:35I think I, for a history of programming languages paper

40:38that Alan Weissbrock did with my help,

40:40he did a lot of the writing.

40:42I think it was the 10 days from like Thursday evening

40:47through to the following weeks, you know,

40:50the whole of that week and then into the Monday.

40:52- Did you get sleep?

40:53- Not, not enough.

40:54And I was really going fast

40:56because I'd already used a lot of C compiler

41:00and front-end compiler knowledge

41:02that I'd gained from undergraduate school.

41:04When I started getting into computing

41:06as a renegade physics major,

41:10people were formalizing more efficient bottom-up grammars,

41:14parsers for bottom-up languages.

41:17Really, LALR1 was the big thing.

41:19And I studied all this and learned how to parse them.

41:22And in the end, if you're doing C languages,

41:25you often do what Dennis Ritchie did anyway,

41:28which is a recursive descent parser.

41:31You can hand code it.

41:32And I did that for JavaScript in a blazing hurry.

41:36Mostly got it right.

41:37Didn't have precedence inversion problems or other bugs,

41:40but I copied a lot from Java and C.

41:43And I tried to keep things simple.

41:45Like the equality operator in those 10 days sprint

41:49between two objects of different dynamic type said,

41:52"No, they're not equal.

41:53Their types are different."

41:54And then after that, I had internal early adopters

41:57and they were using JavaScript to match a number

42:01against a database field that had been stringized.

42:03And they said, "Oh, can't we just have implicit conversion?"

42:05And like an idiot, I agreed.

42:07I gave them what they wanted.

42:08I was trying to please them and get adoption.

42:10And that broke what equivalence relation nature

42:15there was to the double equal.

42:19There's some edge cases with not a number

42:22that break that at two.

42:23But it really broke it.

42:25Having implicit conversions in the operator

42:26is something that people still roast me over.

42:29- So let's talk about two things.

42:31One, it sounds like the comparison operator,

42:34the equality operator is the thing that you regret.

42:38So maybe can you--

42:39- Making it sloppy.

42:40- Making it sloppy.

42:41So what is the biggest thing you regret in those 10 days?

42:45And what is the biggest thing you're proud of?

42:47- So that making it sloppy came after the 10 days.

42:49And my lesson there, which I've tweeted is,

42:51when people come to you saying,

42:53"Can you please make it sloppy or add this cute feature?"

42:56The answer should be no.

42:57And I should have known that 'cause I think Niklaus Wirth,

43:00one of my heroes, said,

43:01"The essence of design is leaving things out."

43:03But during the 10 days, I also, like I said,

43:06I was in such a hurry, I left out garbage collection.

43:08Came back to haunt me,

43:09but I got reference counting in in time

43:11that people weren't running out of memory right away

43:14on long-lived JavaScript.

43:16- Wait, what happens when you don't have

43:17garbage collection and you have objects?

43:18- Well, you just run out of memory.

43:20(Lex laughs)

43:21And you know, at first, you write a short script

43:24and the page doesn't last long or it doesn't do a lot,

43:25and it's okay.

43:26- Oh, I see, yeah, yeah, yeah.

43:27- But if you're writing a game or something

43:28and you're doing event-based allocation,

43:30you run out of memory.

43:31And this was noticed in the summer of 1995,

43:34and people were like, "What's going on?"

43:35I was, "Oh yeah, I better go back and do reference counting."

43:38And then the problem with reference counting is

43:40you're writing the language in the runtime in C,

43:43an unsafe language, and if you're reference counting

43:45and you overflow the counter, you mismanage it

43:48so it goes high, it gets stuck high,

43:49you leak memory again and you run out.

43:51If you underflow it, you pre-memory that's still in use.

43:56And even then, we knew what all the security hackers

44:00came to know, that you therefore have

44:02potentially a remote code execution vulnerability.

44:05'Cause this was before things like

44:08non-executable heap memory and

44:11stack defenses against taking over memory.

44:14So if you can, from the remote side,

44:17write some HTML and JavaScript that just happens

44:19to exploit a bug in memory safety,

44:21like it causes JavaScript to underflow a reference counter,

44:24and the script still has its hands on that object

44:27and it's trying to call a method on it,

44:29and there's some kind of lookup function table

44:30in the object, but you've managed to stuff the heap

44:34with strings that forwards their own lookalike

44:37for the function table, you can call some other code.

44:41And this was a problem right away.

44:43So security, JavaScript upped the ante.

44:46Java had this problem too, but in its own VM.

44:48And it just was a separate headache for Sun to worry about.

44:53We had this problem in Netscape right away.

44:55So Netscape 2 came out after my 10 days,

44:58and after these follow-on work to embed JavaScript

45:02better in the browser and to add garbage collection

45:05through reference counting, really,

45:06I call it reference counting, and get it shipped.

45:09We had a bunch of dot releases where we fixed

45:11security bugs like maniacs. (laughs)

45:13- But what is the thing you're,

45:16you know, when you sit back on a porch

45:18and just look out into the sunset,

45:20what are you most proud of from those 10 days?

45:21- I think the first class functions, Sean.

45:23I think, especially since Java didn't have it

45:25and it was somewhat unusual.

45:27- Scheme made it in somehow at the end of the day.

45:30- In spirit, in spirit.

45:31I mean, people complain because Scheme has,

45:33you know, minimalism.

45:34It has six or seven special forms.

45:37It has hygienic macros.

45:38It has call CC.

45:39It has sort of a beautiful, complete set of forms

45:44to make the Lambda calculus pleasant to use in practice.

45:48And JavaScript is, you know,

45:51kind of a multi-paradigm or Schembolic. (laughs)

45:56- Just on a small tangent, you mentioned Mark Andreessen.

45:59It sounds like, and Bill Joy, but staying on Mark,

46:03it sounds like he had an impact on you

46:06in that he sort of believed in what you were doing there.

46:09Can you talk about like what role Mark had in your life?

46:11- Yeah, we would meet at the Pinsla Creamery

46:15in downtown Palo Alto.

46:17And Mark was just fresh out of, you know, grad school

46:19or whatever he was doing.

46:20And he was a big dude and he got fitter later.

46:25He had hair.

46:26He would order giant milkshakes and burgers.

46:28And we would meet there and brainstorm about what to do.

46:31And it was very direct because we didn't have much time.

46:34Sort of, we didn't talk about it,

46:36but the implication was Microsoft was coming after us.

46:39Mark was saying things boldly, pre-IPO,

46:41like Netscape plus Java kills Windows, right?

46:44- Wow, it's ambitious.

46:45- Make a browser programmable,

46:46it becomes the new runtime for programs.

46:49It's the meta OS or it's the replacement OS.

46:52- But he still saw value in JavaScript.

46:54- Yes, even though he was saying that

46:56and Java was the big name, hence the trademark license,

46:59he saw JavaScript as important.

47:01And he even thought, what if we got,

47:03I told this in other interviews, I can say it,

47:05he thought, what if we had my friend Kip Hickman,

47:07who'd been at Netscape from the beginning

47:09and who was a kernel hacker at SGI when I joined,

47:13he started writing his own JVM

47:14before we consummated the Sun deal

47:16and got our hands on their code.

47:17And the Java compiler, Java C,

47:20which Arthur Van Hoff had written, very nice code,

47:23was all written in Java, it was self-hosted

47:24or so-called bootstrap.

47:26And so we could use that as soon as Kip's Java VM

47:29could run the bytecode from the Sun JVM

47:34running the self-hosted compiler to emit the bytecode.

47:37So once we could bootstrap into Kip's VM,

47:39we wouldn't need Sun.

47:40And Mark was like, well, maybe we can just ditch Sun,

47:44we'll have Kip's Java VM, we'll have your JavaScript VM.

47:47Now we need graphics.

47:48So Mark was thinking far ahead

47:49because he knew you could do things with HTML and images,

47:53but at some point you really want--

47:54- Like dynamo graphics or three-dimensional?

47:57- Like even SGI had already started its downfall

47:59because the first four VLSI team there

48:02had gone off to do 3DFX and all these other companies

48:05that made the graphics card on your PC, right?

48:07Doom was big and Quake.

48:09And so we were all playing Quake.

48:10I was old, so I was terrible.

48:12But why not put that graphics capability on the web?

48:16And in fact, it finally happened at Mozilla

48:18with Firefox era with Vlad Vukicevic

§07Transcript · 48:21–55:33

48:21taking OpenGL ES and reflecting it as WebGL.

48:24But OpenGL ES is the mobile version of OpenGL,

48:27which is a standard based on SGI GL.

48:30So this whole lineage of graphics libraries

48:32or really graphics languages for what became the GPU.

48:36And Mark was thinking ahead.

48:37He's like, "We need graphics too."

48:38And I thought, "Okay, I can try to get somebody

48:40I knew at SGI, but he's a grad student at MIT.

48:42He was studying under Barbara Liskov.

48:44He laughed when he heard about this later.

48:46Andrew Myers, he's at Cornell, long time.

48:48I think he's a full professor.

48:50And Mark said, "Great, we'll get him."

48:51And I'm like, "I'm not sure he's gonna come.

48:53We'll throw money, we'll stock options."

48:55We never did it.

48:56And they did the Sun deal.

48:57So Kip Nobly put aside his own JVM

49:00and we used the Sun JVM.

49:02So that was an ambitious period.

49:03And Mark was very generative because he was pushing hard.

49:06He was ambitious and he wanted to have Netscape

49:11possibly be in control of the ball.

49:13- Maybe you can speak to this dance

49:16of Netscape versus Internet Explorer.

49:20You've thrown some loving words towards Microsoft

49:25throughout this conversation,

49:26but that's a theme with, I mean,

49:28Steve Jobs had a similar sort of commentary.

49:31From a big sort of philosophical principle perspective,

49:34can you comment on the approach that Microsoft has taken

49:37with Internet Explorer from IE1 to Edge today?

49:42Is there something that you see as valuable

49:45that they're doing in the occasional copying

49:48and that kind of stuff?

49:49Or is the world worse off because Internet Explorer exists?

49:54- So I'm gonna segment this into historical eras

49:57because I think Microsofters today with Satya

49:59is quite a different company

50:00and what they're doing with Edge is different.

50:02But back then, Gates, aggressive character,

50:06not really original in my view, not an originator.

50:09Steve Jobs famously said once, "He doesn't have any taste."

50:12And I don't mean this in a small way.

50:13He has no taste.

50:15You can see this.

50:16Apple at the time had beautiful typography

50:19and ligatures and kerning and the fonts looked great.

50:22And Windows had this sort of ugly system font

50:25that was carefully aligned with pixels

50:26so it didn't get anti-aliased.

50:28- What is it?

50:29I'm sorry to keep interrupting.

50:30Why was Internet Explorer winning

50:32throughout the history of these competitions?

50:34- Distribution.

50:35Distribution matters more than anything.

50:36And this is why even now we're seeing

50:39in the browser wars, Edge doing better

50:41because it's being foisted on people of Windows.

50:43We have Windows 10 boxes at home.

50:45We have some Windows 7 boxes or laptops we keep running too

50:48because we don't connect them to the internet generally.

50:50But once you have that operating system to hold,

50:56you can force Edge.

50:57And Apple did it with Safari too.

50:59It's not unique to Microsoft.

51:01- That's sad.

51:02- But distribution matters.

51:03And that's why I think IE was going to win.

51:07That's why everybody at Netscape felt we're doomed.

51:09This was something Michael Toy and Jamie Woodson were doomed.

51:12But for a while there, we had a chance

51:14and we innovated in Netscape too.

51:16We did a big platform push.

51:17Java and JavaScript and plugins, more plugins,

51:21and more HTML table features.

51:25And really started making a pre-arable stack

51:28out of what were pretty static web languages.

51:30And even in the beta releases of Netscape,

51:33two people were using JavaScript

51:34to build what you would call single page applications

51:36like Gmail.

51:37And they were using JavaScript locally to compute things

51:40and to call the server on a hidden frame in the background.

51:43So it was prefiguring a lot of what came later as AJAX

51:46or dynamic JavaScript, dynamic HTML.

51:48- So people saw that, I mean--

51:49- Even then they saw it, yeah.

51:50- That's kind of, I don't know, from my perspective,

51:53that seems quite brilliant.

51:54It seems like really innovative

51:56that you would have code run in the browser.

51:59- It did impress me with something,

52:01which I learned later about from Eric von Hippel of MIT,

52:04which is user innovation networks, lead user effects.

52:07That throwing out JavaScript,

52:09even though we weren't doing open source,

52:10we were doing beta releases early

52:12and permissively with Netscape.

52:14Getting early developer feedback, absolutely critical.

52:17I loved it.

52:18I did some of that with SGI,

52:19with some of the products I worked on,

52:20but it really came to the fore in Netscape.

52:21And that culminated in Mozilla,

52:23where you're dealing with developers all the time

52:25and early adopters, lead users.

52:27But the lead users helped improve JavaScript,

52:29even in those last few betas,

52:31where I could hardly change things.

52:32I was under pretty rigid change control.

52:34- So we're talking about just a small collection

52:36of individuals that are just like up front--

52:38- A guy named Bill Dortch,

52:39you can find his work in the web archive,

52:40still from 1996.

52:41It's a single page application.

52:43It's an artist gallery of mountain art.

52:46- He used JavaScript.

52:47- It doesn't quite work.

52:47He uses JavaScript locally.

52:48He uses a local database.

52:50What you would think of now is JSON,

52:52but it's all pure JavaScript code,

52:54a bunch of objects being constructed.

52:55- That's so cool.

52:57So how is, if you can do sort of a big,

53:00sweeping progress of JavaScript,

53:03how has JavaScript changed over the years,

53:05in your view, from those early 10 days,

53:07with a quick addition of garbage collection

53:09and fixes around security?

53:11How has this evolution, that now it's taken over the world?

53:14- It's been a bumpy ride,

53:16because the standards body got shut down after Microsoft,

53:19I think, took over the web,

53:21and then felt punished by the US v. Microsoft

53:24antitrust case.

53:25- Can you speak to the standard body?

53:27- That was a fun ride, too,

53:28because Netscape had taken the lead with the web

53:32and HTML innovations like frames and framesets tables.

53:37And the W3C was sort of off,

53:38even then, sort of in SGML land,

53:40heading toward XML la-la land.

53:43I'm gonna be a little harsh on it.

53:44- What's SGML?

53:45I'm sorry.

53:46- SGML was the precursor markup language to HTML,

53:48or it was sort of the more extensible

53:51standard generalized markup language.

53:54It was a-- - XML-like.

53:55- Pointy brackets, but it had all sorts of elaborate syntax

53:58for doing different semantics.

54:00And this is why I think TBL and others

54:03who wanted to do the semantic web

54:05then took XML forward.

54:08But they had this, or some of them anyway,

54:10had this strange idea that they could replace the web

54:12with XML, or that they would upgrade the web to be XML.

54:15And it couldn't be done.

54:17Worse is better had concrete meaning.

54:19The web was very forgiving of HTML,

54:22including sort of minor syntax errors

54:25that could be error corrected.

54:26Like error correction isn't generally done

54:28in programming languages because--

54:29- Right.

54:30That's another amazing thing about HTML,

54:31is like it's more like biology than programming.

54:34- Yeah, exactly.

54:36And so XML was, in its standard form,

54:40super strict and could never have admitted

54:42the kind of users who were committing these errors.

54:44And the funniest part was Microsoft said,

54:46"Hey, we're doing XML."

54:47But the way they put it in Internet Explorer

54:49under the default media type,

54:51put it through the HTML error corrector.

54:53(laughing)

54:54- Oh, wow.

54:55- So they kind of bastardized it

54:56to make it popular and usable and accessible.

54:58And so XML as a pure thing was never gonna take over.

55:03And W3C was kind of not fully functional

55:07because Netscape wasn't cooperating with them.

55:09We thought about where to take JavaScript

55:11and we realized, our standards guru, Carl Cargill,

55:13realized there was a European standards body

55:17that had already given Microsoft fits

55:18by standardizing parts of the Windows 3.1 API,

55:22which European governments insisted on.

55:24They said, "Microsoft, we can't use your operating system

55:26"without some standards."

55:27And Microsoft said, "Here's our docs."

55:29And the government said, "No, we need a European standard."

55:32So this body called

55:33the European Computer Manufacturers Association, ECMA,

§08Transcript · 55:37–1:02:50

55:37which eventually became global

55:38and became a proper noun instead of an acronym.

55:40- Right, it's just one capital E now

55:43with a lowercase CMA.

55:44- Right.

55:45And as one of the early Microsoft guys I met

55:47when we first convened a working group

55:50to talk about JavaScript said,

55:51"It sounds like a skin disease."

55:53- But it gave, I mean, maybe you'll speak to that,

55:56but it gave the name to JavaScript of ECMAScript.

55:58- That was the standard name

55:59because Java was a trademark of Suns.

56:02They were so aggressive,

56:03they were sending cease and desist letters

56:05to people whose middle European heritage

56:08meant their surname was Javanko

56:10and they called their website javanko.com

56:12and Sun would send them a letter saying,

56:14"You're using J-A-V-A at the start of your domain name.

56:16"You must cease and desist."

56:18- I love marketing more than anything else in this world.

56:22So ECMAScript and now is popularly named as ES plus version.

56:27- I would say people use JS more than anything.

56:29People still say JavaScript.

56:31JavaScript is in all the books.

56:32- So I mean, when you're referring to it,

56:33it's usually JavaScript

56:34and when you wanna refer to a version of JavaScript,

56:37you'll say ES6, ES5.

56:39- Yes, or now they've gone to years,

56:40which is kind of confusing

56:41'cause it's an offset of 2009.

56:45ES6 is ES2016.

56:49- Yeah, it doesn't match the years perfectly.

56:52Yeah, so what were the choices made

56:55and how did JavaScript evolve here?

56:57- So we took this new standards body,

57:01which we thought sort of a proven record

57:04of standing up to Microsoft,

57:05but Microsoft sent a lot of people.

57:07They sent some people who were pretty good

57:10and then when they realized that I was there

57:12and Netscape was not gonna just bend over

57:15and do whatever they wanted,

57:16they sent somebody really good.

57:17He was a smart guy.

57:18He did a lot of the work on the first draft of the spec,

57:21Sean Katzenberger, he's left Microsoft.

57:22He even did what I sort of did.

57:25He told his bosses, stop bugging me to do other things.

57:27I'm focused on this

57:28'cause it took a lot of focused work

57:30to create the first draft of the spec.

57:31And I was still holding,

57:33I was spending almost all the plates.

57:34I had like part-time help in certain areas

57:37and on the front end integrations,

57:38I had the front end guys.

57:40But I couldn't take as much time as Sean was

57:42to write the draft spec,

57:43but I had to participate

57:44because I was essentially helping write down

57:46what the language did.

57:48And in areas where we didn't like what it did

57:50and Microsoft didn't agree,

57:51we sometimes got away with slight changes.

57:54And that's the story of standards.

57:55You have different implementations

57:57and depending on their market power,

57:59they interoperate where you have agreement

58:01and where they don't,

58:02the dominant one usually sets the de facto standard.

58:05And then you should probably reflect that

58:07into the de jure standard.

58:09And this happened with JavaScript.

58:11Over time as Netscape went down and Microsoft went up,

58:14we did the first edition of the standard codified in 1997.

58:18In France, we had a trip to Nice,

58:20which was very memorable.

58:22- For any interesting reason or just because it's Nice?

58:24- And ECMA's European and IBM and others were there.

58:28Mike Kalashaw, an IBM fellow was a British.

58:31And the guy who ran ECMA at the time,

58:34Jan van den Bel was quite a raconteur

58:37and a very fun guy.

58:39And he had us out for the great,

58:41"Fui de mer," the bouillabaisse.

58:43- Was the standardization process beautiful or painful

58:46that those early days, you as a designer of the language?

58:48- It was painful because it was rushed.

58:50Now, Guy Steele was contributed by Sun.

58:52So even more than Sean,

58:53you had this giant brain, Guy Steele helping,

58:55bringing some of that scheme magic.

58:57He even brought Richard Gabriel for fun.

58:59Richard wrote the fourth clause of the ECMA standard,

59:02which was kind of an intro to what JavaScript's all about.

59:05So we had some really good people.

59:07And we didn't fight too much.

59:09There was some tension where I was fixing bugs

59:11and I was late to a meeting.

59:12And Sean Katzenberger of Microsoft was actually mad.

59:14Like, "Where is he? We need him."

59:16And when I got there,

59:18I saw that only he saw this sort of off by one bug

59:21and somewhere in the spec.

59:22And then I saw it too.

59:23And I said, "There's a fence post bug there."

59:25And then we kind of locked eyes

59:26and we realized we were on the same page.

59:28And we kind of, he wasn't mad anymore.

59:30- What were the features that are being struggled over

59:33and debated and thought about?

59:34- It was mainly writing down what worked

59:36and what we thought should work in the edge cases

59:38that didn't interoperate or that seemed wrong.

59:41But we were already laying the groundwork

59:43for the future editions that I was already implementing.

59:46I was still trying to lead the standard

59:48by using the dominant market power

59:50to write the code that actually shipped.

59:52So the de facto standard would lead the de jure standard.

59:54And I was putting in the missing function forms

59:58that I didn't have time for in the 10 days.

60:00- So this is the engineering mindset

60:02versus the theoretician.

60:03So you didn't want to create the perfect language,

60:05but one that was popular and shipped

60:06and all that kind of stuff.

60:07- And you could say there was,

60:08I was standing on the shoulders of giants.

60:09So there was a staged process where I had to hold back

60:12things that were well designed by others

60:15in other languages that I could imitate.

60:17But I couldn't do them all in the 10 days.

60:18So they came in in 1996 and '97.

60:22And they came into the third edition of the standard,

60:25which was finalized in 1999.

60:27But at that point, Netscape had been sold to AOL

60:30and was, which was a decent exit considering.

60:33And had previously been mercilessly crushed.

60:37Netscape was selling the browser along with server software

60:40that it had acquired after its IPO.

60:42And Microsoft was just underpricing it.

60:44So there was no way to compete with that.

60:47Microsoft was also making Internet Explorer

60:51the default browser in Windows,

60:53which is called tying in antitrust law.

60:55And they were doing even more brutal things.

60:57There's a famous investor, he did very well on Google.

61:00So he's a billionaire, Ram Shriram.

61:01He was sales guy or head of sales at Netscape.

61:04And he got off the phone looking ashen faced

61:07after Compaq called and said,

61:09"Microsoft just told us they're gonna pull

61:12"our Windows license if we ship Netscape

61:13"as the default browser."

61:15- Wow.

61:15So there is some bullying going on.

61:17- It was totally immaterial in the antitrust case.

61:19But JavaScript escaped into the standard setting

61:23where there was fairly good cooperation.

61:24Microsoft had a really good guy on it.

61:26And Guy Steele was there for a time.

61:29And there was some good work.

61:30But after the antitrust case and Netscape

61:35kind of dissolving into AOL

61:37and not really going anywhere quickly,

61:38Mozilla took years to really bring up,

61:40the standard froze.

61:43And by 2003, even though they'd been sort of noodling around

61:46with advanced versions, JavaScript 2,

61:48I'd given the keys to the kingdom

61:50to another MIT grad, Baltimore Horwatt.

61:53Very big brain, still at Google, I think.

61:54He won the Putnam in '86.

61:56So he's, yeah, very mathematical.

61:58- Legit.

61:59- He designed the successor language, JavaScript 2,

62:02but it only showed up in mutated form

62:06in Microsoft's ASP.NET server side.

62:09And it didn't last there.

62:11And it showed up in Flash.

62:12And that's what became ActionScript 3.

62:14- Ah, ActionScript.

62:15Interesting.

62:16And then Flash was declined.

62:18And so how did we arrive at ES6,

62:21where it's like, there's so many,

62:24where everyone, okay, there's this history of JavaScript

62:27that people were, it was just like, cool,

62:29when you're having beers to talk crap about JavaScript.

62:32Everyone loves to hate, like people who are married say,

62:35ah, marriage sucks, is they just wanna let off some steam,

62:38even though everyone uses the language.

62:40But ES6, it's become this,

62:43it fixed major pain points, I think.

62:49- It added things to the language

62:50and added something that was already ES5 strict mode,

§09Transcript · 1:02:53–1:10:45

62:53but made it implicit in class bodies and module bodies.

62:57It was a big jump, but it accumulated

62:59some of the ES4 designs that we'd done with Adobe

63:03for what we hoped would be the fourth edition of ECMAScript

63:07that were supposed to fold in some of these old JavaScript,

63:10two ideas that had come into ActionScript 3.

63:13So you look at the family tree and you see these forks,

63:15and the main ones are the ones that go into Adobe Flash,

63:20acquired from Acromedia,

63:22and the one that went into the server side

63:23of Microsoft's stack, which kind of died.

63:27And then trying to bring them back into the standard,

63:28and not quite succeeding, ES4 was mothballed.

63:32But all the good parts that everyone liked

63:34made it into ES6.

63:35And so that was a success.

63:37And I said earlier, I had the wrong year,

63:38I think it's 2015, so it's off by--

63:40- For ES6.

63:41- Yeah, it was done, finalized in 2015.

63:44It took a little longer than we hoped,

63:45but 'cause ES5 was 2009,

63:48and that was a smaller increment from ES3.

63:51We skipped four again, we mothballed it.

63:53And we had a split in the committee

63:55where some people said, ES4 is too big,

63:57we're gonna work on incremental improvements,

63:59no new syntax in particular, they promised.

64:02Not quite true, but they added a bunch of interesting APIs,

64:06Alan Weir-Sprock, my co-author of the Hubble paper.

64:09And he was at Microsoft at the time,

64:11I ended up hiring him at Mozilla,

64:12he wanted to get to Mozilla and keep doing

64:15the sort of editor job of the JavaScript standard,

64:19ECMAScript.

64:21And when we got ES6 done, it was a little late,

64:242015, and we switched to year numbers.

64:27So people still call it ES6, I call it ES6.

64:30But if you remember, off by nine, plus 2000.

64:33- Yeah, I mean, ES6 is such a big job.

64:35I mean, like you said, there's a thread

64:37that connects all of it, but ES6 is one

64:39that's like, became this language

64:41that almost feels ready to take over the world completely.

64:45- More programming in the large features,

64:46more features you need for larger teams.

64:49- Software engineering.

64:50- Microsoft did something smart too,

64:52Anders and company, Luke Hoban, who's left Microsoft,

64:56also did TypeScript.

64:57And they realized something, I think,

65:00that Gilad Brak has also popularized,

65:02and he was involved in Dart at Google.

65:05If you, don't worry about soundness in the type system,

65:08you don't try to enforce type checks

65:10at runtime in particular, just use it

65:12as sort of a warning system, a tool time type system,

65:15you can still have a lot of value for developers,

65:17especially in large projects.

65:19So TypeScript's been a roaring success for Microsoft.

65:21- What do you think about TypeScript?

65:24Is it adding confusion or is it ultimately beneficial?

65:27- I think it's beneficial.

65:28Now, it's technically a superset of JavaScript,

65:30so of course I love it.

65:32(laughs)

65:33The shortest JavaScript program

65:35is still a TypeScript program.

65:36Any JavaScript program is a TypeScript program,

65:38which is brilliant 'cause then you can start

65:40incrementally adding type annotations,

65:41getting warnings, learning how to use them.

65:44Microsoft's had to kind of look around corners

65:47at the standards body and guess how their version

65:49of modules or decorators should work.

65:52And the standards body then may change things a bit.

65:55So I think they're obligated with TypeScript

65:57either to carry their own version

65:59or to bring it back with incompatible changes

66:01towards the standard over time.

66:03And I think they've played generally fair there.

66:05There's some sentiment that,

66:06why don't they standardize TypeScript?

66:07Well, they've been clear they don't want to.

66:09They have a proprietary investment, it's valuable,

66:11they have control of the ball.

66:13And in some ways you can say the same thing

66:15to any of the other big companies in the standards body,

66:18why doesn't Google standardize its stuff?

66:20- So you think it'll continue being

66:22like a kind of a dance partner to JavaScript,

66:24to the base JavaScript?

66:25- There's a hope that at some point,

66:27if they keep reconverging it and the standard

66:29doesn't break them and goes in a good direction,

66:32we will get at least the annotation syntax

66:34and some semantics around them.

66:37Because when you're talking about type annotations,

66:39they're generally on parameters and return values

66:42and variable declarations, they're cast operators.

66:45You want that syntax to be reserved

66:47and you want it to work the same in all engines.

66:50And this is where ideas like GILAD's

66:51pluggable type systems might be good,

66:54though then you could create the same problem

66:55you have with Lisp and Scheme,

66:56where there's a bunch of macro libraries

66:58and they don't agree and you have conflicts between them.

67:01But pluggable type systems could be one way to standardize.

67:04- What do you think about the giant ecosystem

67:07of frameworks in JavaScript?

67:09It feels like, because, I mean,

67:12this is a side effect of how many people use JavaScript,

67:16a lot of entrepreneurial spirit,

67:18like create their own JavaScript frameworks.

67:22And they're actually awesome in all different ways.

67:27And this is an interesting question

67:31about almost like philosophically

67:33about biological system and evolution,

67:35all that kind of stuff.

67:36Do you see that as good or should it,

67:38should some of them die out quicker?

67:40- I think that maybe they should.

67:41Now jQuery was a very clever thing.

67:44John Resig made this library that was sort of query and do

67:47and blended sort of CSS selector syntax

67:50with JavaScript sort of object graph or DOM querying

67:53and made it very easy for people to do things

67:54almost like they were learning jQuery as its own language,

67:57domain-specific language.

67:58And that I think reflected in part

68:02the difficulty of using the document object model,

68:04these APIs that were originally designed in the '90s

68:07for Java as well as JavaScript.

68:08They were very object-oriented or even procedural.

68:11They were very kind of verbose.

68:13And it took like a constructor call

68:15and three different hokey-pokey dances to do something,

68:18whereas in jQuery, it's just one line.

68:20So that fed back finally into the standards.

68:24It didn't mean we standardized jQuery.

68:25It wasn't quite that concise.

68:27But you find now with the modern standards

68:29that we were working on in the HTML5 sort of effort,

68:34that things became simpler,

68:35the fetch API and the query selector API,

68:38document.querySelector.

68:40A lot of things can be done now in raw JavaScript

68:42that you would make more concise and terse in jQuery,

68:46but it's not bad.

68:48It's pretty good.

68:48Whereas in the old DOM of 15 years ago,

68:51it was just too verbose.

68:51- So maybe the frameworks were born

68:53because JavaScript lacked some of the features of jQuery.

68:59And so now that JavaScript is swallowing what jQuery was,

69:03then the frameworks will,

69:05only the ones that truly add value will stick around

69:07and the other ones will die out.

69:09- And that highlights also this division

69:10between the core language JavaScript,

69:12which can show up in other places

69:13like Node.js on the server side

69:15and the browser specific APIs

69:17or the document object model APIs,

69:19which are even managed by the W3C,

69:21the standards body that was off in XML

69:23while I land on we were doing

69:25real JavaScript standards in ECMA.

69:26And you have this division of labor,

69:30division of responsibility and division of style

69:33and sort of aesthetics and also speed.

69:37So the document object model really stagnated

69:39after Microsoft kind of de-invested in the web.

69:43And Microsoft did something in their haste

69:45in the spirit of Netscape,

69:46doing things quickly and getting on first called DHTML.

69:49And some of their innovations

69:51that were like an alternative document object model

69:53didn't really get standardized until HTML5

69:56when we pragmatists set up for at the time,

70:00Ian Hickson, who went to Google, Apple and Mozilla said,

70:03"XML is not gonna replace HTML.

70:07HTML4 is too old.

70:08Let's standardize HTML5 based on all this good stuff,

70:12including that DHTML variant, dynamic HTML.

70:15- HTML5, it feels like to me,

70:17maybe you can correct me,

70:18like a beautiful piece of design work.

70:21It's not often with web stuff,

70:24you have this breath of just like,

70:27oh, whoever did this, this just feels good.

70:31What are your thoughts about HTML?

70:34Am I being too romantic?

70:35- A little bit, a little bit.

70:36- Are there flaws, fundamental flaws to it

70:38that I'm just not aware of?

70:40- My old friend Hicksey did a great job.

70:42He was another renegade physics student.

70:45And he was basically a QA guy at opera,

§10Transcript · 1:10:48–1:19:12

70:48but he obviously trained physics student

70:52and someone who could write, a Britisher.

70:54He developed test suites

70:57and he started thinking about them more axiomatically.

71:00Now this can be good because you can sort of systematize

71:03in a way that makes a better HTML,

71:06or you can get caught in the pragmatism of saying,

71:08well, we have to handle all of these edge cases,

71:09so we're just gonna have sort of a test matrix.

71:12And if the matrix is large,

71:14it will not be beautiful by many people's lights.

71:15Everyone likes to minimize along their preferred dimensions,

71:19the seven special forms and scheme or whatever.

71:21But reality is HTML needs to be big.

71:26It's kind of shambolic, it's a creative multi-paradigm.

71:30And Hicksey did a good job, I would say, with a bunch of it.

71:34Other people came in in the spirit of Ian Hickson

71:36to do HTML5 work and they've carried on that effort.

71:40And so it's a mix of pragmatism,

71:42de facto standards from the past being sort of combined

71:46or written down for the first time,

71:47and then rethought in a way that has a simpler syntax,

71:50like the fetch API instead of XMLHTTP request.

71:54- This video too as well,

71:55it ultimately, it feels like, maybe you can correct me,

71:58it feels like it was the nail in the coffin of Flash.

72:01- Steve Jobs saying no Flash on the iPhone,

72:03in my opinion, was the actual stake to the heart.

72:05But, well, I'm not sure what trope you wanna use.

72:09Flash was a zombie until just this year, right,

72:12or last year, I think last year was the end of Flash

72:14in main browsers.

72:15But Jobs really did the death blow.

72:18And yet, you're right, we had to make HTML5 competitive.

72:23I still don't think we got that beautiful

72:24timeline animation.

72:26- The timeline thing, so you like the time,

72:28I mean, me from, I used to animate all kinds of stuff

72:31inside Flash, plus there's a programming element.

72:34It was a little bit, I don't know if you can comment

72:38on that, but to me, it was a little bit like

72:39go-to statement, like in a sense that

72:42it was a little bit too chaotic.

72:44Like it didn't, that OCD part of me as a programmer

72:48wasn't satisfied by Flash.

72:50It feels like there was bugs that were introduced

72:52through the animation process that I couldn't debug easily.

72:55- Yes, I heard that too.

72:56I didn't use it, so I'm doing the grass is greener thing

72:59here.

73:00The thing I liked about the animation model

73:02was that it was this immutable function of time,

73:03so you could time warp and you could,

73:06if you dodged these bugs or worked carefully,

73:08you could really make it sing in ways that I think

73:10still a little challenging with web animation standards,

73:14but, or just using raw canvas and WebGL.

73:18But there's so many tools now that maybe it doesn't matter.

73:20And yet we had to do video, we had to do WebGL

73:25and then evolve it.

73:27We had to do web audio.

73:30But once we did all these things that helped Flash die,

73:34thanks to Steve Goves, we had something that

73:37people didn't realize.

73:39We had that vision that Mark and Jason had,

73:41this graphics capable to the metal, portable runtime.

73:46And we at Mozilla realized this and we saw JavaScript

73:51was something that you could compile to.

73:53Adobe had somebody in the Adobe labs doing this too.

73:55He had a project called Alchemy.

73:57We had somebody who's now at Google,

73:59Alon Zakai, who did his own LLVM based compiler

74:03that would take C or C++ and it would emit JavaScript.

74:06And you would think this is crazy.

74:07You're going from this sort of machine types,

74:09low level, controlled memory allocation language

74:13to this garbage collected dynamically typed,

74:16high level, higher level language.

74:18But Alon sort of just phenomenologically carved nature

74:22of the joint and found the forms

74:23that were fast in JavaScript.

74:25And then with Dave Herman, who I'd recruited

74:28from Northeastern University, who was a type theorist,

74:31and Luke Wagner, who's still at Mozilla,

74:33who was the compiler guy and the JIT guy,

74:36they figured out how to codify what Alon had done

74:40into a typed subset of JavaScript called Asm.js.

74:44And this is a strange thing to think about

74:45because it doesn't have new syntax.

74:47The types are casts that occur in dominator positions

74:52in the control flow graph.

74:54So it's like a hack on JavaScript and it's a subset.

74:56And it uses those bitwise operators

74:58that I talked about copying from Java

75:00to basically cast numeric types,

75:04which are double precision point into integers.

75:06And so inside JavaScript,

75:08in the kernel semantics are integers.

75:11And if you use these operators,

75:13if a compiler emits them in the right places,

75:15you can then treat them as typed values,

75:18typed memory locations, and you can type check your program.

75:22You can not only type check it, you can compile it.

75:24This is all in sort of linear time.

75:26Oh, and you can compile it

75:29to have deterministic performance.

75:30It doesn't touch the garbage collector.

75:32It calls a bunch of functions that come from the C functions

75:35or C++ code that you're compiling.

75:37And you can make the epic Unreal Engine

75:40go in 30 frames a second.

75:43And when we did this in 2013 in the fall,

75:46Tim Sweeney, I bet, didn't think it could be done quickly.

75:50He thought it would take years.

75:51And the team went to Raleigh to Epic,

75:54and in four days they had Unreal Engine ported

75:57by pressing a compile button.

75:59But they had to have WebGL, which came from OpenGL,

76:03ES came to OpenGL, which came from Silicon Graphics GL.

76:05They had to have Web Audio, so they could map OpenAL,

76:09which was another audio library standard,

76:11to Web Audio, which was kind of a Chrome idiosyncratic thing.

76:14But they could make it work.

76:16And they had to have Asm.js for fast C++ to JavaScript.

76:21And if you didn't have that fast compiler step,

76:25the JavaScript you'd write by hand

76:27trying to do an Unreal game would be too big and too slow.

76:29It would touch the garbage collector.

76:31It would not keep up with 30 frames a second

76:33on the 2013 hardware.

76:35So we demoed that at,

76:37this must have been fall 2012 now that I think about it,

76:40'cause we demoed it at GDC, Game Developer Conference 2013,

76:44and people were stunned.

76:45That's like Unreal Engine, Unreal Tournament,

76:47running in my browser window.

76:48No plugin, no Flash, no Java, no--

76:52- So were those the early days of,

76:54because JavaScript now is able to run basically on par

76:58with a lot of the C++.

77:01- Yeah, and even before then,

77:02you had the fast JavaScript VMs in 2008 when Chrome came out.

77:06Just before it came out, Mozilla,

77:08my friend Andreas Gal and I and others

77:11hacked out TraceMonkey, our trace-based JIT.

77:14The SquirrelFishExtreme team at Apple did their JIT.

77:18And we were all competing

77:19on these crazy performance benchmarks.

77:21It was a little bit too much tuning of the benchmark.

77:23But JavaScript started getting fast,

77:25and developers started noticing it.

77:26But it was still kind of its own high-level language

77:29with garbage collection.

77:30The Asm.js step helped us go further,

77:33because until we really proved the concept,

77:37people were still saying, "Well, JavaScript's okay.

77:39"It's getting faster thanks to V8."

77:41Everybody gave Google credit, especially Google.

77:43But we need something to kill Flash.

77:44Let's use a portable native client code

77:47that Google had acquired, Native Client,

77:49which is a separate lineage for taking basically C code,

77:52compiling it into a software fault isolated container

77:56of some sort, using some kind of virtualization technique.

77:59And maybe it can even be in process

78:01and still be memory-safe.

78:02That would be awesome.

78:03But they ended up using process isolation, too,

78:04and that kind of weakened it.

78:06And in the end, it was like portable native client,

78:08okay, meet the new boss, same as the old boss.

78:11This is the Google Flash, right?

78:13But when we did Asm.js

78:15and we showed Unreal Engine working,

78:17I think it was only a matter of time

78:18before Google threw in the towel.

78:19And in fact, everybody agreed in spring of 2015,

78:23we're gonna take what was proven by Asm.js

78:25and make a new syntax, a binary syntax that's efficient,

78:29that loads into the same JavaScript VM

78:31that JavaScript loads into.

78:32So there'll be two source languages,

78:34one VM, very important, one garbage collector,

78:36one memory manager, one set of compiler stages.

78:40And that's called WebAssembly.

78:42And that's the successor to Asm.js.

78:44And it's important that it have binary syntax

78:46because at the end of the day, especially on mobile,

78:48if you're downloading JavaScript,

78:50even if you're using LZ compression on the wire,

78:52that's cool, but you've got to blow it out into memory

78:53and then parse the silly eight character function keyword

78:56that I picked when I should have used something shorter.

79:00I picked it because of awk, the Unix tool.

79:03So anyways.

79:05- I'm not following, I want to,

79:06but I'm not following the awk thread.

79:07- Yeah, don't worry about it.

79:09- Is it surprising to you that

79:12how damn fast JavaScript is these days?

§11Transcript · 1:19:14–1:27:21

79:14I mean, 'cause you've been through the whole journey.

79:16I know every step of the way, but is it like,

79:19I mean, it feels incredible.

79:22- It does, but I knew, so the funny thing is,

79:24computer science is this big karmic wheel, right?

79:26Wheel of Fortuna.

79:27And in the, it was about the '97,

79:32I was loaned by Netscape to do due diligence for Sun

79:37in their acquisition of Animorphic,

79:39which was David Unger and friends,

79:43people, Craig, I'm forgetting his name,

79:46he went to Microsoft.

79:47These Stanford language buffs who had taken Smalltalk

79:51and then David created Self

79:53as a simpler sort of Smalltalk language

79:56and made really fast, just-in-time compiling VMs for them.

80:00And they, well ahead of Java Hotspot or JavaScript V8

80:05or any of these modern VMs,

80:07figured out how to make dynamic code fast

80:10because Smalltalk is dynamic language, right?

80:13It has classes, it has, I think,

80:15more lockdown declarative syntax than JavaScript,

80:17but it's fundamentally dynamic, you don't declare the types.

80:20But you could infer the types as the program runs

80:24and you start to form these ideas

80:26about what types are actually flowing

80:27through key operations and you form little

80:30so-called polymorphic inline caches

80:32that are optimized machine code.

80:35The cache is the machine code that assumes,

80:38does a quick check to make sure the type is right,

80:40and if it's not right, it bails to the interpreter.

80:42If it is right, you go pretty fast.

80:44And that short test is a predicted branch,

80:47so things are pretty quick.

80:48All that amazing stuff I knew about in the '90s

80:51and I didn't have time to do it

80:53and Anamorphic got bought by Sun and they did Hotspot.

80:57And you needed that even in Java because at scale,

81:00Java has some dynamic aspects due to invoke interface.

81:04You can have basically collections of Java code

81:06where you don't know at the time each module

81:10or package is compiled exactly what's being called,

81:13what subclass or what implementation

81:16of an interface is being called.

81:17And so you want to optimize using this sort

81:19of dynamic polymorphic caching there too.

81:21And they did that and Hotspot is an amazing beast.

81:24I've met like 13 people who all claim they created it.

81:27I think one of them may deserve credit more than others.

81:30But I didn't get to do that in JavaScript

81:34and when we knew that Google was going

81:38to do their own browser, which we knew at Mozilla around 2006

81:41I also met the team that did V8.

81:45And it turns out it was Lars Bach

81:46who was one of the young engineers from Anamorphic

81:49who got acquired by Sun.

81:50And so Lars is like one of the world's expert

81:52on these kinds of virtual machines

81:54and he picked my brains about JavaScript.

81:56I could tell he didn't like it at the time

81:58but he had to do it.

82:00- Oh, really, interesting.

82:01- Yeah, in 2006 launch at Google's campus.

82:03And then I had another friend who was DevRel at Chrome

82:07and he said, yeah, we don't know what they're doing.

82:08This is getting 2007 to fall, getting toward 2008.

82:11We're trying to get Chrome out

82:12and we don't know what's going on with the V8 team.

82:14They're off in Aarhus, Denmark,

82:16rewriting their engine four times, which is good.

82:19That's the right way to do this kind of development.

82:22They were learning JavaScript, including all its quirks

82:24which they came to hate, the fire of a thousand suns

82:26which is one of the reasons that Lars and company

82:28did Dart, their own language.

82:30But they also made the language fast.

82:32And meanwhile, we knew this was happening.

82:35So we got our act together with TraceMonkey,

82:38our tracing JIT at Mozilla.

82:40And Apple, I think, was also aware.

82:41And so they were doing their own JIT.

82:42So the era of JIT-ed fast JavaScript in 2008

82:46had this prehistory going back to Smalltalk itself

82:49and anamorphic.

82:50And again, the lineage is interesting

82:53'cause you had Lars at anamorphic

82:54and then he ends up at Google.

82:55- Yeah, and today we have an incredibly fast language

83:00that like you said, still, without hate, you can't have love.

83:04So I think there's both love and hate for this dance,

83:09this rich, complex dance of JavaScript

83:12throughout its history.

83:12- There's a dialectic for sure.

83:15- Today, JavaScript is the most popular language

83:18in the world.

83:20Why, by many measures, why do you think that is?

83:24Is there some fundamental ideas

83:28that you've already spoke to a little bit

83:29but sort of broader that you think

83:31is the most popular language in the world?

83:32- So I think I did, by doing first class functions

83:36and taking the good parts of the C operator hierarchy

83:40and just keeping things simple enough,

83:44maybe it could have been simpler,

83:45but I had to make it look like Java

83:47and interoperate with Java,

83:48that there was inherent goodness,

83:52Aristotelian quality there.

83:54And people perceive that

83:56even through all the quirks and warts.

83:57And then over time, working on it with the standards body,

83:59working on it not only as a core language,

84:02but in the context of HTML5 and making the browser better,

84:06listening to developers, thinking about,

84:08this is something that Nick Thompson wrote nicely about

84:11on the Hacker News, I was very flattered.

84:12He said, "Java was this thing

84:14"where the experts were writing the code

84:15"and it was compiled and you had to declare all your types.

84:17"And Sun didn't really give a damn about

84:20"the average programmer who wanted to build real web apps,

84:23"dynamic things."

84:25And I was in there meanwhile doing a bunch of people's jobs,

84:28making JavaScript survive those early years

84:31when it was kind of touch and go, right?

84:33JavaScript was considered a Mickey Mouse language.

84:36It was for annoyances like the scrolling text

84:38at the bottom of the browser in the status bar.

84:40But I kept listening to developers,

84:42working with them and trying to make it run

84:45in that single threaded event loop in a useful way.

84:47And I think that forged something

84:49that people have come to love.

84:51Now you don't always love the best thing, right?

84:53I talked about, Shakespeare,

84:56sunnet about, "I'm Mr. Sizer, nothing like the sun."

85:00Or the scene from Josh Whedon's film,

85:03Serenity at the end where the actual piece in the score

85:07by David Newman is called Love,

85:09where Captain Mal is teaching River Tam

85:12about how to pilot a ship.

85:13And she's a super genius, super soldier.

85:15She knows how to do it already.

85:17And he's basically talking about how you have to love

85:19the ship because if you don't, it's gonna kill you.

85:22And then the piece falls off the ship.

85:23It's kind of like JavaScript.

85:25You have to love it.

85:26You have to love it because now people say,

85:28"Ah, we're stuck with it

85:30'cause it got this priority of place."

85:31- But there's love underpinning that.

85:33And actually, listening to developers,

85:35that's kind of beautiful.

85:36There's most successful products in this world

85:41with all the messes, with all the flaws.

85:43Perhaps the flaws themselves are actual features,

85:45but that's a whole nother, that's a discussion about love.

85:48But underneath it, there's something

85:50that just connects with people.

85:52- And it has to keep connecting.

85:53If JavaScript kind of went off in this,

85:55people sometimes complain about ES6.

85:57Oh, you put classes in JavaScript.

85:58I hate classes.

85:59You've ruined it.

86:00But it's not true.

86:01It's a dynamic language.

86:02Smalltalk had classes.

86:04Python has classes.

86:06There are lots of Lisp variants that had classy systems.

86:10Common Lisp.

86:12So people who don't reject it based on some sort

86:16of fashion judgment do use it

86:21and do interact with the standards body.

86:23The standards body is competing browser vendors mainly,

86:25but also now big companies that use JavaScript heavily

86:28the PayPal's and other such companies, Salesforce.

86:32And they have to cater to web developers.

86:36They have to hire developers who know JavaScript.

86:38They have to keep their engines up to the latest standard.

86:43And this creates all this sort of social structure

86:45around JavaScript that is unusual.

86:47I mean, you get C++ buffs that follow the inner workings

86:51of C++, what is it now?

86:5421 something.

86:55I don't know.

86:56I've lost track.

86:57But it's a more rarified group.

86:58It's more like the old language, gray hairs.

87:02Whereas JavaScript is a younger

87:04and more vibrant and large crowd.

87:07- There's a community feel to it.

87:09There's a echoes, perhaps I don't wanna draw

87:12too many similarities.

87:13Maybe you can comment on it.

87:15There's a C++ is like Wall Street

87:18and the JavaScript is like Wall Street bets

87:21from the recent events.

§12Transcript · 1:27:22–1:35:40

87:22It's like, there's a chaotic community of all.

87:24And there's some power from that distributed crowd

87:28of people that ultimately--

87:30- It's more demotic.

87:31It's more of the people.

87:32It lets people in without requiring these credentials.

87:35I remember in the late 90s into the noughties,

87:38people were all getting Java credentials.

87:39And I knew people and friends knew people

87:42who became Java programmers.

87:44And you knew they really should have been

87:45like nature guides or pilots.

87:47They hated programming, but they thought,

87:49I gotta make money.

87:49I'm gonna become a Java programmer.

87:51- Do you have some, because it's such a monumental moment

87:54in our current history as a quick aside,

87:58do you have thoughts about this huge distributed,

88:02crowdsourced financial happenings with Wall Street bets?

88:06- Yeah.

88:07- That's like nobody could have,

88:08well, you could have predicted,

88:09but the scale and the impact of this kind

88:12of emergent behavior from independent parties

88:15that could happen.

88:15- Like I said, my own experience with the dismal science

88:19as with physics led me to reject a lot of bad models.

88:22And economics was always compromised by politics,

88:26political economy.

88:27You could also argue that it was,

88:29it used to be a branch of moral philosophy.

88:31So it was concerned with the good and it became divorced

88:33and became sort of in this quasi Newtonian way,

88:36just about everything's just running by itself.

88:39Don't worry about it.

88:40This monopoly is crushing your Netscape company,

88:42but that's just nature.

88:43- And economics couldn't,

88:45or doesn't really have good models

88:46for the Wall Street bets subreddit.

88:49- They know how to squeeze a short, right?

88:52So the amazing thing is you have Robinhood app,

88:56which was again, supposedly for the demos, for the people,

89:00and eliminated the fee through various kinds of straddles

89:05or some kind of spread operation

89:09that helped them eliminate the fee or eat the fee.

89:11And in fact, as a broker in these days,

89:14because it takes two days to settle,

89:15there's counterparty risk as they found out.

89:18And so the Wall Street bets people,

89:23the memes are like the Terminator robot

89:25with $600 STEMI check and the hedge funds

89:30the little girl hiding under the desk.

89:32There is a problem, which I talked about

89:36in the recent podcast, which I'm conscious of

89:38from the history of the web.

89:39And that is, you could say it's monopoly,

89:41which antitrust wasn't enforced

89:42after US Microsoft for a long time.

89:45And a lot of this was due to the money interests

89:48buying control of politicians.

89:50And in Plato's five regimes, that's oligarchy.

89:54That's where we are.

89:56And now we're seeing a fight against the oligarchs.

89:58I don't know if it'll work,

89:59but you're definitely seeing it.

90:00And it's also kind of hackerish, right?

90:02It's got a hacker ethos.

90:04Hey, Robinhood, no fees.

90:05Oh, interesting.

90:06Hey, I can buy a fraction of a share in this thing,

90:09or I can keep buying with my stimulus check.

90:12So I mentioned Hegel seeing Napoleon on the horse.

90:16Hegel also talked about the cunning of reason,

90:19that you have this sort of God sees history in full,

90:23and if you believe in God, or we don't know the future,

90:25but there's always this sort of fly in the ointment,

90:28this unintended consequence that confounds

90:32the best plans of the powers that be.

90:35And we're living through it.

90:37I'm glad it's not street warfare or mechanized warfare,

90:41'cause it has been in the past.

90:44It's more like soft power.

90:47- Yes.

90:47- And people are fighting back.

90:49- Do you think it's possible,

90:51so JavaScript used to be for the front end of the web.

90:56It's now increasingly so being used for backend,

91:01like running stuff that's like behind the scenes.

91:06And it's also starting to be used quite a bit

91:10for things like TensorFlow.js.

91:12So starting to actually use these heavy duty applications

91:16that are using neural networks, machine learning,

91:17and so on in the browser.

91:19Is it possible in 10, 20, 30 years

91:24that basically most of the world runs on JavaScript?

91:28- This is a dystopia and a nightmare to some people.

91:31(Dave laughs)

91:33When we did Asm.js and WebAssembly,

91:34I would joke and meme people with scenes like

91:37Neo waking up in his pod in the Matrix,

91:39and he's all skinny and weak and hairless.

91:41And you realize in the future that you're living

91:46in some simulation that it's all running on JavaScript,

91:49and you just scream forever.

91:50It's possible.

91:52Gary Bernhardt does these funny talks.

91:54He did Wat.js, and then he did this

91:56Life and Death of JavaScript, I think it's called,

91:59where he took some clever ideas

92:02that actually have a thread of credibility to them.

92:05But I mentioned software fault isolation.

92:09In the old days when we were using computers,

92:10we said we're gonna use the Unix monolithic monitor,

92:14and it's the privileged program.

92:15This is before you even had hardware rings of protection.

92:18Those, some of the early '60s operating systems

92:20used hardware protection zones.

92:22But Unix is privileged, and the program

92:25that runs user code in a process is hosted.

92:30It's the guest in the host, and you get to suspend it.

92:33You get to kill it.

92:35If it crashes, it doesn't take down the whole OS.

92:37It's a wonderful idea.

92:39But the call into the kernel is expensive,

92:42the system call, so-called.

92:43And this has even been optimized now

92:45for things like getting the time of day

92:46so it doesn't actually enter the kernel.

92:48And meanwhile, hardware architectures

92:52and virtualization techniques have gone

92:54in a different direction, even to the point

92:56where you can do software fault isolation very cheaply

92:58without entering the operating system kernel.

93:00And so you get unikernels and exokernels

93:02and very lightweight VMs.

93:04And so Gary took this idea and said,

93:07JavaScript will take over computing

93:09because the system call boundary's too expensive,

93:11so everything ends up in JavaScript

93:12with these lighter-weight isolation enforcement mechanisms.

93:16It's not totally beyond belief.

93:18It'd be WebAssembly, too.

93:20- It's nice to ask you sort of for advice.

93:25There's so many people that are interested

93:26in starting to learning about programming,

93:29getting into this world.

93:30Is there some number of languages,

93:34three to five programming languages

93:36that you would recommend people learn,

93:38or maybe a broader advice

93:41on how to get started in programming?

93:43- Well, so you asked about machine learning,

93:45and JavaScript is a general-purpose language,

93:47and it's a language that's not that great

93:52for doing matrix operations

93:56or doing parallel programming, I would say,

93:59without using some extensions or some libraries

94:02that have some magic in them.

94:03So if someone wanted to learn,

94:06there are amazing languages in sort of the APL family

94:11that are very useful for, I would say, linear algebra,

94:14which gets to a lot of the kernels in machine learning.

94:16And so APL had like J and then K,

94:19and they're K variants

94:22because the guy that did K is still going,

94:24and they're proprietary, but he's still innovating there.

94:27Python is used.

94:30So people talk about TensorFlow.js.

94:31Well, it's not that surprising

94:33'cause Python was heavily used for machine learning,

94:36and Python was always, you know,

94:38they didn't have this fast just-in-time compiler tradition.

94:41There were some projects that tried this,

94:43and some of them were interesting.

94:45PyPy was interesting.

94:46But the philosophy with Python was,

94:49oh, you need to go fast, write a C plugin,

94:51and drop into C code.

94:53So I think people should look at multiple languages

94:57because there are different tools in the belt.

94:59If you're trying to do supervision or rapid prototyping,

95:02you want a dynamic language.

95:03You wanna throw things together and see what works.

95:06If you are trying to go down to the metal very fast,

95:09well, I'm an old C hacker,

95:10but I was also the executive sponsor of Rust at Mozilla,

95:14and Rust has now escaped from that sort of nest

95:17where it was born to be adopted by a bunch of companies

95:21to have a foundation in the works.

95:23Some of the key core team members

95:24are working now at Amazon and other places.

95:27So it looks like Rust has reached escape velocity.

95:30And Rust is an interesting language

95:31because one of our goals there,

95:33one of the reasons I sponsored it was,

95:34we were all tired of seeing

95:35those remote code execution vulnerabilities

95:38due to C and C++.

95:40And we thought, can we have a sort of safety property

§13Transcript · 1:35:43–1:43:45

95:43through a type and effect system or an ownership system?

95:46And Rust has that.

95:48And that ownership system is interesting

95:49because it doesn't just give you memory safety.

95:52There's a sort of theorem for free,

95:53a dual that falls out for protection against data races.

95:57So Rust is better for low-level programming.

95:59You delimit your unsafe code where you do have to be unsafe,

96:02and you can prove certain facts about memory safety

96:05and race condition avoidance.

96:08And so I think people should learn these new languages.

96:11I think Go is a great language.

96:13I admire the Unix people who did that.

96:16Ken Stoll was involved, Rob Pike, of course,

96:19David, what's his name, and other people.

96:23Go is a huge success, really, on the server side,

96:27mainly where you have a lot of networking to do.

96:30And it's garbage collected, but it's also very pragmatic.

96:33It has that sort of C flavor.

96:35As an old C hacker, I can't get used to the fact

96:37that they swapped the type and declarator

96:39in the declaration order.

96:41- I haven't used Rust, but this is one of the most respected

96:44and loved languages currently, so it's interesting.

96:46- Yeah, and it's still young.

96:47You look at these things,

96:48JavaScript is now considered old.

96:50- It's gone through so many versions

96:52that you can fall in love with it all over again.

96:54- 25 plus years, it's an adult.

96:57(laughing)

96:58It should be out of the house.

96:59But it could be around another 25 years.

97:03Cannot rule it out.

97:04So Rust could be around for a long time.

97:06The longer you're around, the more likely you're Lindy

97:08and you're around your wife.

97:10- A lot of people ask me,

97:11I'm often torn between recommending either Python

97:15or JavaScript as the first language to play with,

97:18because it's difficult,

97:20because it's so easy to do JavaScript incorrectly.

97:24It's much easier to do it correctly these days,

97:29or like well, like learn about programming.

97:31But the cool thing about JavaScript

97:33is that you can create stuff

97:36that will put a smile on your face.

97:38Like as a developer, you can create stuff

97:41and it'll visually look like something and it'll do stuff.

97:44And it makes you feel good.

97:45It makes you fall in love with programming.

97:47With Python, you could do the same.

97:48It's a little slower.

97:49And with C++, it takes five to 10 years

97:51to write a program that actually does something.

97:54So like there's that tension between,

97:56is JavaScript the right first step or is it Python?

97:59And I've been going back and forth on those two.

98:01- I have my Python, right?

98:02It came from a lineage of ABC,

98:05which was a pedagogical language in the Netherlands.

98:08And it was a good teaching language too.

98:14I think it is a good teaching language.

98:17And it's a little more restrictive

98:19in that if you misspell something

98:21in a way that JavaScript might let run,

98:25let reach run time, it'll get stopped

98:26at syntax check in Python.

98:30That's good for beginners.

98:31I think the sloppiness that some people object to,

98:34like people were just tweeting at me,

98:37having just learned JavaScript.

98:38They said, "I can take a number and I can index into it

98:41"and get undefined out of it as a property."

98:42And why is that?

98:43A number is not an object.

98:44And I explained why it is.

98:46'Cause like in Java, the primitive types,

98:48which unfortunately are not objects,

98:49can be automatically boxed or wrapped by an object.

98:53And I made that implicit.

98:55In Java, it's typed and you have to declare things

98:58and you'll get type errors.

99:00But there are cases in Java where you get auto-boxing

99:03or auto-wrapping 'cause you've declared that you want it.

99:06In JavaScript, it just happens.

99:07And so once I explained it, I'm like, "Oh, wow, I get it."

99:10But it also means that you can commit a blunder that just--

99:13- You don't get punished for it, you don't detect.

99:15- You get an undefined value

99:16and you don't know where it came from.

99:17- Right.

99:18I've been reading a lot about military history recently.

99:23And one way to paint the picture of browsers,

99:26internet browsers, is through the various wars

99:29throughout its history.

99:30I don't know if that's a useful way to look at it,

99:32but we've already talked a little bit about Netscape

99:34and Internet Explorer in the early days.

99:38Can you tell the story of the different wars,

99:41if that's at all an interesting way to look at it,

99:43of the '90s and to today?

99:46- Yeah, so I mentioned that Microsoft,

99:49which was convicted for it, did abuse its monopoly,

99:51but they had a pretty good team by the time they did IE4.

99:55And Netscape, unfortunately, I was like second floor

99:57and I was friends with all the first floor people,

99:59the front end guys who did the JavaScript event hookup

100:02and things like that, that team was fairly burnt out.

100:07And I think having gone public,

100:10the upper management wanted to buy a bunch of companies

100:13to try to go head to head with Microsoft.

100:15Didn't work, but buying a bunch of companies

100:17usually doesn't work.

100:19I think the modern sort of approach roughly

100:22is like Mark Zuckerberg took,

100:25which is to keep them at arm's length

100:26and let them do their thing.

100:28And now that he's pulling WhatsApp in

100:29and people are fleeing it

100:31because it's tied into the ad surveillance.

100:33But for a while they were keeping it separate.

100:36It really does work 'cause you bought it for its value,

100:39it's complimentary and you're not messing with it.

100:41With Netscape, when they bought a bunch of companies,

100:43they had some of the first floor people

100:45or the founders burned out.

100:46They had newcomers who wanted their turn to do the browser

100:51and they hadn't really done browsers or understood them.

100:54And so Netscape 4 was originally supposed to be 3

100:57and it was so late, they renumbered it.

100:58We did a 3 release, Jamie and a few others

101:01put some extra effort into secure MIME

101:03was supported in the mail, built-in mail program.

101:07And Netscape 4 was late and it was only on Windows at first

101:11and Microsoft had really started doing better.

101:14Like they do, they copy and the first version is trash

101:17and the second one, you're starting to feel threatened.

101:19The third one, you can tell what's gonna happen

101:21and the fourth one's good.

101:22- And plus there's the benefit, like you said,

101:24that it comes as a default browser.

101:26- Yes, and yet Netscape's screwing it up

101:28and Microsoft really putting some quality people on it.

101:32IE 4 was good, on Windows it was good.

101:34And they did the dynamic HTML innovations,

101:37they, Scott Isaacs, my old buddy,

101:39a former accountant who programmed in BASIC

101:42and became what Microsoft calls a program manager,

101:45which is kind of an elevated position.

101:47It's, you can be a programmer or an engineer track

101:50but you switch to it and you sort of lead a lot of design

101:53and standards efforts.

101:54And so Scott Isaac put in a lot of those funky DHTML APIs

101:58that didn't quite have the same flavor

102:01as the stuff that I did.

102:02And neither of them was like the later

102:04sort of verbose Java like DOM W3C standardized.

102:08But IE 4 was pretty darn good.

102:10I remember a friend, Scott Furman and I

102:12got invited by Scott Isaacs to Gordon Beers in San Jose.

102:16They were doing a preview of IE 4, this must have been 1997.

102:21And Scott said, yeah, we've got,

102:24here's the new graphics stuff we're doing.

102:25We've got something like your Netscape layers.

102:28We've got VML, a vector markup language.

102:31We can do like virtual reality

102:33and Scott and I looked at each other

102:34and said, we're doomed, right?

102:36Microsoft was starting to fire on all cylinders.

102:38So I have to give them credit for that

102:40even though they abused their market power.

102:42And maybe I shouldn't give them credit

102:44for having the resource to hire talented people

102:45but they did a credible job on IE 4.

102:48What really was bad was that phase of the browser wars

102:51ended with monopoly and perhaps due to the antitrust case,

102:56perhaps due to regulation in Europe,

102:58perhaps just due to Microsoft

103:00not liking dealing with standardization.

103:03They let it rot.

103:05They just abandoned it, IE 5, 5.5, IE 6 later,

103:10but these were not well-maintained.

103:12They had a lot of security bugs.

103:14- And it was really closed and outdated too,

103:16even though it was getting updated, it's just weird.

103:19- Browsers like Mozilla and then Firefox were adding tabs.

103:22Opera had a version of tabs and they didn't add tabs

103:25and they pop up blocking,

103:27something I should have done from the start.

103:28People realized that you can tell

103:30when the user clicks something

103:31and it goes in JavaScript to open a little window

103:34that you can sort of inspect the stack

103:36and see that the click originated that

103:38and it's probably okay.

103:39Whereas if you're just loading a script

103:40and it opens a new window, that's a spam technique

103:43and you should block it.

103:45- Tabs were a brilliant innovation.

§14Transcript · 1:43:47–1:51:23

103:47Like you said, Opera had it,

103:48but I remember I fully switched to Firefox the moment.

103:52I remember the moments of first using tabs in Firefox

103:57and not liking it for the first few minutes

104:00and then like, wait a minute.

104:02- You get the groove, yeah.

104:03- You get the groove and you understand.

104:05So that timing, what year was this?

104:08Because also as a aspiring web designer, I use table.

104:13So we didn't mention layout or CSS much.

104:16There's also a change in the way

104:18like the frames were going away.

104:21So there's a change in the way websites looked

104:23and behaved and all that kind of stuff.

104:25- CSS finally, which Microsoft embraced with IE4

104:28and Netscape never really did, right?

104:30CSS became a better standard over time

104:33for doing table layout that relieved you of the need

104:36to use what are called spacer GIFs, spacer GIFs, right?

104:40Images you would throw into space out tables.

104:42The typographic power of the web has gotten better,

104:47but it's still not on the level of PDF

104:49and you can't do advanced typography,

104:51but it's gotten really better.

104:53And even then tables were getting better.

104:54If you were using Firefox, that would have been 2004

104:57'cause it was called Firebird until earlier that year.

105:00- No, yeah, I think it wasn't.

105:01- 2003. - Well, I don't remember.

105:03It was a Firebird, which had tabs.

105:06- We had tabs the whole way.

105:07So it started out as Mozilla/browser in 2002,

105:10became Phoenix.

105:12There's a BIOS that has an embedded version of IE

105:14and they said, "We're called Phoenix Technologies.

105:16"You can't use Phoenix."

105:17And so we said, "Okay, we'll call it Firebird."

105:19And then this Australian-centered

105:21open source database project started really

105:24like in the true Mad Max style, just screaming at us,

105:27saying, "You can't use Firebird."

105:28And I had to sort of be the ambassador.

105:30I said, "Okay, we're gonna rename it."

105:31And they're like, "We don't believe you.

105:32"You shouldn't have used it.

105:32"We hate you."

105:33And then we renamed it to Firefox.

105:36And they're like, "Oh, we love you."

105:38And then I haven't heard of them ever since.

105:40But Firefox was a clever name.

105:41We had to think of something distinctive.

105:43We wanted to keep the fire going.

105:45And it turns out there's a red panda, right,

105:48it's a nickname for.

105:49- So that's the second set of browser wars.

105:51- Second browser war.

105:52- So how did you, how was Firefox born?

105:57How's Mozilla born?

105:58Is there a--

105:59- There's a long story there too.

106:01So Netscape got acquired by AOL,

106:02which as I say was a reasonable happy ending

106:05for a lot of people because Netscape otherwise

106:07was gonna go out of business

106:08because Microsoft was just killing its market.

106:10There was no way to charge for a browser.

106:12Windows came with IE.

106:14IE 4 was pretty good and Netscape 4 wasn't that good.

106:17It took a while to get better.

106:19But the Netscape executive said,

106:22"Let's do an open source escape pod."

106:25And like in Star Wars and New Hope,

106:27the gunner won't shoot it 'cause there's no life forms

106:29on board, right?

106:30It's not a threat.

106:31And so we did Mozilla in 1998 and it looked like

106:35it was going to initially just give the world

106:38an open source browser.

106:40But it's really hard to get people to work

106:41on this sort of hairball that had been hacked up

106:43over by that point four years.

106:46It also couldn't have the crypto module

106:49for secure sockets, so-called,

106:50or now transport layer security.

106:52That was an electronic munition.

106:54We were not allowed to release that

106:56in the full 1024-bit key strength.

107:00And yet people, one of whom I happened to meet previously

107:05at SGI when I went on a sales support engineering trip,

107:08Tim Hudson in Brisbane, Australia,

107:11and Eric A. Young did what became OpenSSL.

107:16It was called SSLEAY after Eric's initials.

107:19And Tim and Eric took their OpenSSL

107:23outside of the purview of the NSA

107:25and the Department of Commerce,

107:27and they stuck it into Mozilla's code.

107:28And that was perhaps the best hack that was done

107:31in the first few months after we open sourced the browser.

107:34We had other problems.

107:35The politics inside Netscape were riven

107:37by these acquisitions.

107:38So the one acquisition that kind of messed up Netscape 4

107:41also wanted to keep doing a proprietary mail

107:44and groupware program, not Jamie Zawinski's mail program

107:48that was in Netscape 2 and 3.

107:50And they held it back from open source.

107:51So we didn't have a mail program, it was just a browser.

107:54We didn't know what AOL would do to us.

107:56Turns out they didn't interfere with us for a long time.

107:59But Netscape wasn't the best steward of Mozilla.

108:03We were operating Mozilla as a pirate ship

108:05without a legal entity.

108:06So most of us worked for Netscape

108:08under a separate organization.

108:10And initially the first engineering manager, Tom Paquin

108:15of Netscape was the Mozilla founding manager.

108:19But he left pretty quickly.

108:20And he left me as the acting manager,

108:23which is more like method acting in my case.

108:25And that was my first management stint.

108:28But then someone who'd written the licenses, Mitchell Baker,

108:32she was a lawyer at Netscape.

108:34She was involved in the open source license decision-making

108:38and the actual writing and construction of those licenses.

108:40That was Mitchell's job.

108:41Netscape public license

108:43and the truly open Mozilla public license.

108:45And there were two because Netscape needed,

108:47because of some encumbered code, needed some special rights,

108:49but that went away over time.

108:51Mitchell was always interested in Mozilla

108:52and she came back from maternity leave.

108:54And she said, "I'll be the manager if you want."

108:55And Jamie and I said, "Sure."

108:57And then Jamie quit.

108:58He quit after a year.

108:59He said, "This didn't work.

109:00I'm sorry."

109:01He acted like it was a total failure

109:04because Mozilla didn't restart the browser market.

109:08But there's no way it could have.

109:09Netscape was still shipping variants of Netscape 4,

109:13which was based on the old code.

109:15Mozilla was trying to re-architect code

109:18to make greenfield for developers.

109:19So it was one of my big goals.

109:20It wasn't a technical goal so much as, again, a social goal.

109:24People wanted a more standard spaced browser.

109:26They wanted less of a hairball that had been hacked on

109:29by ex-grad students starting four years prior.

109:32So we said, "We're gonna make a modular code base.

109:35We're gonna use a variant or an open source version

109:37of Microsoft's component object model,

109:40has reference counting and standardized V tables,

109:43virtual calls and C++.

109:45And we're gonna use JavaScript.

109:47We're gonna have a bridge between those two

109:48so you can script those components

109:50just like Java components.

109:51We're going to make a portable front end

109:54with a markup language for the user interface.

109:57Not tables, not HTML, but custom menus

110:00and dropdowns and toolbars."

110:02And that was called Zool, XML user interface language.

110:06And some real talent on the Netscape side

110:07delivered that, Dave Hyatt, who was instrumental in Zool,

110:11Chris Watterson, Joe Hewitt, Blake Ross.

110:15And Blake was an intern.

110:17He was like a high school aged intern at Netscape.

110:20And at some point we were innovating rapidly

110:23in the Mozilla world and Netscape was still caught up

110:26in this management mess from these acquisitions.

110:29And it wasn't delivering.

110:30And every year they were wondering if AOL was gonna come

110:32and start beheading the executives

110:34'cause it didn't do anything useful.

110:36And there was this thought,

110:36you should take the Netscape browser engine

110:38and put it in the Windows AOL client,

110:40which was the dial-up client that all the increasingly aging

110:43users of AOL were using.

110:45Never happened.

110:46It would have been too big a change.

110:48So it wasn't clear why AOL bought Netscape,

110:49but as I said, they left it alone,

110:50but Netscape didn't leave Mozilla alone.

110:53And so in 2001, Mitchell called me up and said,

110:58"I'm no longer employed."

110:59And I was like, "What, you quit?"

111:00And no, no, this wasn't my choice.

111:02And there was a layoff, which maybe accidentally

111:05or on purpose got rid of Mitchell.

111:06But the funny thing was we had an open source project.

111:08We had a lot of the engineers on staff on our side

111:11and we had people we'd hired through the Mozilla community

111:15who were top-notch.

111:16They'd risen, they came in high quality,

111:18they knew the code, and they actually were better

111:20than the average or median hire of Netscape.

111:23And so the funny thing was the executive

§15Transcript · 1:51:26–1:59:28

111:26who thought they'd gotten rid of Mitchell on the layoff,

111:29on the next week's community call around Mozilla

111:32and what to do, there's Mitchell.

111:34And so this showed you can kind of transcend

111:36your boundaries of corporate open source

111:40if you get a project that has enough loyalty,

111:42even among the paid staff.

111:43'Cause we had outside people contributing.

111:45We had people at Red Hat and a few other places,

111:47but the majority of the hackers were employed by Netscape.

111:50But a lot of them at that point had come from the community

111:53and others got the community and wanted to work with it.

111:55And it was really the weakest engineers at Netscape

111:57who didn't like Mozilla and didn't like the crucible

112:01of competing with the better programmers.

112:04- So if the project is good enough, it will rise,

112:06the Phoenix will rise out of the--

112:08- That's exactly right.

112:09And so we had this Mozilla code base

112:10that was getting better.

112:11In fact, I think at some point in 2002,

112:13when we declared Mozilla 1.0, I engineered a roadmap

112:17that successively through similar sort of six week,

112:20five week releases, like we all do

112:21with browser releases nowadays,

112:23Chrome does and Firefox braved us three weeks.

112:26We got to a point where we said, you know what?

112:29It doesn't suck.

112:30This is like the 1.0 that you want to release

112:33because if you hold it back any longer to polish it,

112:35you're denying others the ability to use it.

112:36It's like Pro Engineer, the mechanical CAD tool,

112:39embedded the code, they embedded the layout engine.

112:43And Mozilla 1.0 was like a Netscape communication suite.

112:46We had at that point gotten male people

112:49to reintegrate mail and news,

112:51and we had an editor for HTML.

112:53And it felt like a 90s suite, suite where.

112:56And it felt kind of bloated.

112:58And the people who were taking that Mozilla open source

113:02and then adding Netscape flavor to it

113:04were not calling the shots right.

113:06And they were also under ALS thumb a little bit

113:08in that they said, well, we should probably put

113:10the ALS instant messenger chicklet on the toolbar.

113:13And we should put the ICQ,

113:14the other messaging system that ALS had acquired.

113:17We should put the ICQ button on the toolbar.

113:19And pretty soon Netscape looked like a bit of a NASCAR

113:23badged version of Mozilla.

113:24And that also made Mozilla more popular.

113:27And yet they had contrived to fire or lay off the leader.

113:32And we'd carried on with an open source structure

113:38where Mozilla was still, you know, Mitchell was calling

113:40sort of management or project level shots.

113:44And I was calling technical shots.

113:46And we had a popular suite, but we thought,

113:51why not make it just a browser?

113:52Because it'll be simpler, it'll do one job well.

113:55And even then we can strip it down by having extensions.

113:58So Dave Hyatt and Blake Ross, the high school aged intern,

114:03did the first version, which was called Mozilla/browser.

114:07It was a small group of us, Ian Hicks and Asa Dotsler,

114:09me and Joe Hewitt and Hyatt and Blake.

114:14And Hyatt was really the senior hacker.

114:16He'd done all these things like amazing cross-platform menus

114:20through the user interface, market language.

114:23And he knew how to do tab browsing.

114:24He'd implemented it natively on Mac OS at the time

114:28in Camino, originally called Camara.

114:31He'd written multiple implementations,

114:34which was a thing programmers should do.

114:36It's like the V8 team did for those missing years

114:38when the rest of the Chrome team's like, where's V8?

114:41In fact, Dave's wife, Rebecca, told me a story

114:44about when they were at UIUC,

114:45they were also University of Illinois grad students.

114:49There was an assignment, it was a programming assignment,

114:51it was supposed to be due at the end of the semester.

114:53And Dave's friend was this, I'm gonna go think

114:56and I'm gonna design and I'm gonna make this platonic,

115:00perfect form of the program.

115:01And then I'm gonna write it at the end when it's due.

115:03And Hyatt just went in there and started hacking.

115:05And he wrote one version, he wrote a second version,

115:06a third version, end of the semester comes around,

115:09the friend's not doing too well.

115:11It wasn't perfect and it wasn't written.

115:13I'm not sure how that story ended for him,

115:14but Dave's version was a fifth iteration, it was great.

115:18And so he'd done that with everything you need

115:20in a tabbed browser.

115:21And this really showed well in Phoenix,

115:24what we called Phoenix and had to rename two more times.

115:27And Blake went to Stanford, he became a Stanford student

115:32and couldn't work on it.

115:34Dave Hyatt went to Apple in 2001.

115:36He was one of the founding Safari team members.

115:39- Interesting, wow.

115:40- But he was still blogging about tabbed browsing.

115:43I think Apple at some point said--

115:44- Did Safari have tabbed browsing?

115:46- Yeah, but it was because of Hyatt.

115:48Hyatt was quite a feather in their cap.

115:49Don Melton, who had been the engineering manager

115:53for Safari from the beginning, had been in that scape also.

115:56And so this is a diaspora of talent.

115:58And yet Hyatt was still kind of writing blog posts

116:01about how to do tabs right.

116:03And at some point Apple said, "Don't blog about that.

116:05"That's our proprietary tab technology."

116:07And it's like, "No, it's not.

116:08"It was an opera and I've refined it."

116:10So we had to replace people.

116:12And we had Ben Goodger, a New Zealander,

116:17we hired at Netscape, and he stepped in

116:18to be the Firefox lead.

116:21And we also had this weird circumstance

116:23where AOL finally did notice that Netscape

116:26was kind of an albatross, that they bought it

116:28for no particular benefit.

116:31And even then the AOL politics were also heinous,

116:33sort of East Coast politics.

116:35I remember taking two trips there

116:36'cause I was a principal engineer.

116:37And so us principal engineers got trotted out

116:39to do dog and pony shows in Dulles, Virginia.

116:42And the AOL opera management was very East Coast in flavor.

116:46And they were at that time merging with Time Warner,

116:49which did not go well.

116:50So one of these years we went out there

116:51and we were all doing dog and pony shows.

116:53And there were these characters

116:55that were sort of like marketing guys,

116:56one of them was wearing a cravat,

116:57and one was named Reggie.

116:59And they were very you rather than non-you,

117:04or they were like what's Stillman's Metropolitan film,

117:08UHB, urban haute bourgeoisie.

117:13They were haute bourgeoisie, they were funny,

117:17and they were kind of useless and kind of preppy.

117:20And then the next year we went back and I said,

117:21where's Reggie?

117:22And it's like, oh, Reggie's not here anymore

117:24'cause Time Warner realized that the merger

117:26wasn't in their interest either.

117:27And then the sort of knives came out.

117:29And these mergers rarely work, right?

117:31This is very difficult.

117:32You get these giant companies

117:33and they think there's gonna be synergy.

117:35That was the late '90s with Watchword.

117:37And there wasn't synergy with AOL buying Netscape,

117:39and there wasn't synergy with Time Warner and AOL.

117:41- But did AOL ever really work?

117:42Was it ever really cool?

117:44Like the same kind of fire and excitement

117:46that Firefox eventually created,

117:48was that ever there in AOL?

117:51- AOL was the right time to do a dial-up service

117:55that got distribution by basically

117:56leaflet-bombing compact disks on the country.

118:00And they beat out CompuServe and the other ones, Prodigy,

118:05and then the web happened.

118:06And so you had almost like this isolated continent,

118:10like some of the evolutionary biologists I follow

118:14make fun of the funny large marsupial mammals of Australia,

118:19how silly they are.

118:21- So AOL's like Australia.

118:23(Lex laughing)

118:23- And you saw it over time because they kept aging

118:26and they were using AOL to get online

118:28and they couldn't really use a web browser.

118:30And it became sort of a valued cohort

118:33'cause they still have relatively high socioeconomic status

118:36and they have grandchildren, but it's going away.

118:38It's dying at some point.

118:39- Towards the end of the aughts, that decade,

118:42and then to the decade 2010 plus,

118:46that Firefox became this incredible,

118:48I forget when Chrome came out, but--

118:50- 2008, September.

118:51- 2008, but Firefox was the sexy, cool thing

118:55that represented a lot of the cutting edge technologies

118:57and all that kind of stuff.

118:58- Web 2, it was amazing.

119:00Tim O'Reilly and John Battelle did the first Web 2

119:02conference, which eventually became huge

119:04and they split it, but that was in 2004.

119:06That's right when Firefox was out.

119:08Craigslist was huge, it was killing classified revenue

119:11for newspapers, but there was just this ferment.

119:14People starting--

119:15- Wikipedia along there somewhere?

119:16- Gmail was already done and it was an impressive web mail.

119:19There were others before it like Hotmail,

119:21but Gmail was really impressive from Google.

119:22And Google Maps, people started seeing what could be done.

119:26They thought, how can you drag the map around

119:28and how does that work?

§16Transcript · 1:59:29–2:08:07

119:29And it was all JavaScript and images.

119:31- Gmail was 2003, four?

119:34- Yeah, I think it actually started quite early.

119:36It might have been 2002 or three, but by the time

119:38we started dealing with Google and Firefox

119:40to get the search deal, which was the main revenue source

119:42for Mozilla, and still is, 2004, early,

119:46Sergey Brin's, one of his trusted engineer guys,

119:49Fritz Schneider, made contact with me at Mozilla

119:51and we started talking and we realized search

119:55and browser need each other.

119:57And this is deeply true, right?

119:58This is still true.

119:59This is why a lot of the search engines

120:01have their own browsers.

120:02- Yeah, so in case people don't know,

120:03the main revenue source for the browser

120:05is the default search engine, which is kind of incredible

120:08to think about, that that is a revenue source.

120:11It's a little bit sad.

120:12- Yeah, it leads to this capture or kill effect

120:14where you have the search engine own its own browser

120:17and other browsers may struggle to get distribution,

120:21we talked about it earlier.

120:22- So where, and you said you've figured out

120:26that Google's working on its own browser at some point.

120:29- 2006, yeah.

120:30- 2006, so would you say Firefox versus,

120:33was Internet Explorer part of the war here

120:35or was it Firefox versus Chrome?

120:37- So Firefox didn't quite cause Microsoft

120:39to reconvene, they did do IE7, and I remember

120:43being on a plane back from the standards meeting,

120:46JavaScript standards meeting from Seattle, from Redmond,

120:49and there was some Microsoft guy in front of me,

120:52turns out my wife knew him from her past life

120:54before we married, and he was just this bearded big guy

120:58and he was like, we should have just killed Firefox

121:00in the cradle, all we needed to do was add popup blocking

121:03and tabs and we could have made Internet Explorer

121:05kill Firefox, and it's like, shoulda, coulda, woulda, pal,

121:07and I was right behind him overhearing this.

121:10But they didn't, they were slow and IE7 wasn't that great,

121:13and what really got them started, I think, was Chrome.

121:18And I talked to Larry Page in 2005, I think I said,

121:22we're talking about the Firefox relationship,

121:24but he was also saying, what about WebKit?

121:26This was Apple's version of the old KHTML engine

121:30from Linux, the KDE side of Linux, that was used

121:34in the Conqueror browser, also with Ks,

121:36that Apple had forked, and in 2005 was when Apple's

121:41principals, including Dave Hyatt, Maciej Stachowiak,

121:43some of my friends who are still there, said,

121:45we must stop patch bombing this poor KHTML project,

121:48we should make a proper Mozilla-like organization,

121:50WebKit.org, now it wasn't a separate non-profit

121:53or anything, it was still Apple, it was Apple-controlled,

121:55but they made their fork first class and they made it

121:58be something that they all worked in and lived in,

122:01and that was before Chrome, and then Chrome,

122:04Larry Page said, what about WebKit?

122:05I said, yeah, it's nice, I have friends who work on it,

122:08you might use that if you do your own browser,

122:09why don't you do your own browser?

122:10Don't worry about Firefox, you should do your own browser,

122:12you can have your own opinion of how it should work,

122:15and sure enough, they did, so by 2006, we knew

122:18they'd been working on it, some of my friends

122:20who'd been at Netscape did the original demo,

122:22and the demo wasn't what you thought,

122:24it didn't have the fast JavaScript yet,

122:25that was still off in Denmark on a farm.

122:28- Did it have tabs?

122:30- It had tabs, 'cause all browsers had tabs at this point,

122:32and it had this software fault isolation I mentioned,

122:37it was through process isolation, so in theory,

122:41each tab has its own operating system process,

122:43and so what's gonna take your tab down?

122:45Well, WebKit has bugs that can crash it,

122:48but Flash was still big then, all the restaurant sites,

122:50remember, and Flash crashed a lot, so the demo

122:54that I heard about, my friends at Netscape,

122:56as a lot of people did, inside Google was the sad tab,

123:00they showed an early version of Chrome,

123:02which is just this bare bones tab browser,

123:04they loaded a site with a known Flash vuln,

123:06and then suddenly, Flash crashes, and everyone expected

123:09the whole browser to go down, but instead,

123:11you got this little sad face in the tab,

123:13and you could reload it, and there it is again,

123:14so this was an improvement, it was a real move for security,

123:18it was based on a company they acquired called Green Border,

123:22they had some really big brains, like Olfar Erlingson,

123:25I think was involved, and they had done some exotic

123:28security stuff, but they ended up simplifying it

123:30to this process isolation, and it was good,

123:34and Firefox didn't have it at the time,

123:36so we were still struggling with security bugs.

123:39So we knew Chrome was coming, but it took two more years

123:43to come out, and we were still getting the Google search

123:47revenue, and we were still making Google the default engine,

123:51and Firefox was still growing, Firefox grew,

123:54I think until 2011, that was when it peaked,

123:56and as it started falling, it was because of Chrome.

123:59Chrome came out in 2008, and it was a comic book

124:02that leaked accidentally, that showed some of the people

124:04who worked on it, Lars Bach was in there, and so on.

124:07It was kind of soft launch, because they didn't market

124:10it heavily, they didn't push distribution,

124:12but Google had reason to worry about distribution,

124:14because Microsoft was doing a search engine,

124:18Bing, since 2007, in fact, when they came out with Bing,

124:22Google was worried that Microsoft would just brute force

124:25switch the default browser in everyone's Internet Explorer,

124:28or even Firefox on Windows, to Bing from Google,

124:32and Microsoft wasn't, I think, ready to dare

124:35the antitrust cops that way, even though

124:37they'd gone to sleep, and I don't think

124:40Bing was ready, either, but just in case it happened,

124:44Sundar Pichai, who rose very well based on this work,

124:47was sort of in charge of getting distribution deals,

124:50and he got Google Toolbar, and Google Desktop Search

124:54distribution, and if you remember those pieces of software,

124:56those were like desktop extensions, toolbars,

125:00or operating system extensions for doing desktop search

125:03in your local files, kind of like--

125:03- Oh, that's right. - Mac OS Spotlight.

125:05- Sadly died out. - It all died,

125:07and there were some features that we still missed

125:09that didn't make it into Chrome,

125:10but Sundar got OEMs to bundle those,

125:13and then he got enough of those deals

125:15that by 2007 or '08, Google felt, well,

125:18if Microsoft does the worst and tries to force Bing,

125:21we can reach in and reset it with that point of presence.

125:25So that was good for Sundar's career,

125:27and it was good for Google, but it never came to pass

125:29that they had to defend.

125:30Microsoft was still slow, and by the time they saw

125:34Chrome come out, then they did what would have been IE9,

125:37and then they said, we're gonna have a fast

125:38JavaScript engine to Chakra, Chakra Core,

125:41and they did okay.

125:43They were another process-isolated,

125:46fast JavaScript browser, tab browser.

125:48- So it sounds like there's a deep,

125:51fundamental coupling of search engine and browser

125:53that's mixing this whole thing up,

125:55and obviously Firefox doesn't have a search engine

125:59that's like, I mean, you're partnering with somebody

126:03with a search engine, with Yahoo or with Google or so on.

126:08- They tried Yahoo.

126:09That was unfortunate because I think,

126:11even though Marissa Mayer talked about it,

126:14she never pulled it off.

126:15They never restored the search team

126:18that had been laid off.

126:19I believe Carol Bartz was running Yahoo

126:21when Carol said, I've gotta get rid of

126:23one of the three expensive things.

126:24I'm gonna get rid of search.

126:25And those researchers went to Google and Microsoft,

126:29and there was no way to put Yahoo search back together.

126:32So when Firefox tried switching all their users

126:36who'd stuck with a default from Google to Yahoo,

126:38like mid-December 2014, a bunch of users said,

126:41what just happened to my Firefox?

126:44And others didn't notice right away,

126:45but over time they did, and so over the next year,

126:48the traffic just went away for Yahoo,

126:51and yet they were obliged, I understand it,

126:54I don't have inside knowledge, but this is leaked out,

126:56and Danny Sullivan's written about it,

126:58search engine, and I think the deal

126:59was like fixed payments to Mozilla.

127:01So Mozilla was getting a bunch of money for traffic

127:03that wasn't staying because users were resetting

127:05their default, and this shows how defaults are important,

127:09but they have to be good enough

127:10that the user doesn't override them.

127:12And a lot of the commercial value in popular apps

127:16is what are the default settings?

127:18What is the default search?

127:20- But oftentimes there's something, just like you said,

127:21I mean, if there's something compelling,

127:25that also can beat out the default,

127:27like tab browsing and so on.

127:29And that's where, I mean, we'll talk about Brave browser.

127:32It feels like now we're in this third stage

127:36where there's Chrome, Firefox, Edge, I guess it's called,

127:41and Brave, and these all seem like really exciting,

127:48I don't know, innovative browsers.

127:50They're all kind of copying off of each other,

127:52picking up the good stuff.

127:53- There's evolution again,

127:54especially on tracking protection.

127:56So privacy is this sort of global wave that's rising.

128:00I like to call it a wave

128:03because it's a large, somewhat chaotic structure.

128:07It's not a unitary good.

§17Transcript · 2:08:08–2:15:34

128:08You can't say I'm buying privacy for $3.

128:11I'm paying $3 for privacy.

128:12Some people think a VPN does this

128:14and are disappointed when it fails them,

128:16but often people use VPNs for region unlocking video

128:19or getting the US Netflix catalog.

128:21- Exactly.

128:22- But privacy is not a unitary good.

128:24It's complex and people are understanding it

128:26only over time and as they get burned,

128:28but there's a genie

128:30that's not going back in the bottle there.

128:31People are fed up.

128:33Apple has responded to this.

128:34Apple was always making Safari, I think,

128:36more of a privacy-branded browser from the very beginning.

128:40I think this was probably Steve Jobs.

128:42Safari had private windows, private tabs,

128:45before Firefox did.

128:48And these are only private in the sense

128:50that they don't leave local traces

128:53if you don't want them to.

128:54Turns out Safari does keep them around between shutdown,

128:57but the canonical model is no local traces

128:59after you close the private window.

129:01No leftover traces that you went to some site

129:04that you were embarrassed by

129:06or bought a gift for somebody you wanted to keep secret.

129:08- But there's still some level of tracking.

129:11- There's network tracking.

129:14Network privacy is not guaranteed at all

129:16because you're using the same internet and ISP

129:19as a public window, a non-private window.

129:21But Safari had that early on.

129:22They also had a cookie-blocking policy

129:26that might take a little explaining.

129:28If you know what a cookie is,

129:29it's a little bit of storage in the browser

129:31indexed by the name of the site.

129:33And it's really only the main name of the site,

129:35like bofa.com or something like npr.org.

129:40Every site can store some information in a cookie.

129:46Every time it's contacted by the browser,

129:48the previous version is sent back.

129:50And in the response from the server, the cookie's updated.

129:54So it's this little bit of storage in the browser

129:56that the site can keep updating,

129:58and it can store an encrypted version

130:01of your login credentials with a timestamp

130:03so you can stay logged in

130:05without having to retype your password

130:07every time you navigate,

130:08which is how it would be if you didn't have cookies.

130:11The web protocols, especially in the '90s,

130:14are so-called stateless protocols.

130:16So you go to your bank, you log in,

130:18you go from your login confirmed page to your account view.

130:22If you didn't have a cookie, you'd be logging in again.

130:25- Every time you type in the password.

130:26- So that was a great thing about cookies.

130:27Lou Montuoli did it in a hurry in 1994

130:29before I joined Escape,

130:30and he did it for really holding that kind of credential.

130:34But even then, there was the image element

130:37embedded in the page,

130:38and the image gets fetched possibly from a different server,

130:42and that request carries the last cookie,

130:44which could be empty at first,

130:45and the response carries the updated cookie.

130:48So just by having images and cookies,

130:49you got tracking because that image server

130:51can be serving a little one-by-one pixel,

130:54and they still use the word pixel in ad tech,

130:56and that pixel can be served from the same server

130:59embedded differently with different URL spellings

131:02in the New York Times and ESPN.

131:03And as you go from one to the other,

131:05the image server can say,

131:07I haven't got a cookie for you, it's empty initially.

131:09I'm gonna assign you user number 1234,

131:11I'm gonna put a database entry in,

131:13and I see, by the way, I always fetch

131:14the name of the path part of the URL

131:15that I was in the New York Times.

131:17So you're a New York Times reader.

131:18And then you hit ESPN, same thing,

131:20and the database gets updated,

131:22and the number, user 1234 indexes in the database

131:25to a profile of you, you've been tracked.

131:28This was not intended,

131:29and it was too late to undo by the time I got to Netscape.

131:32I think Lou wanted to do Twinkies, he called them,

131:35and he was trying to solve several problems.

131:37He wanted them to be bigger

131:38'cause initially cookies had a short size limit.

131:40I think he wanted to solve the third-party problem,

131:42but Tom Paquin, the engineering manager said,

131:44"Nope, no Twinkies, just cookies.

131:47"We're done, you're done, son."

131:49And that's how a lot of that stuff was.

131:51That's how JavaScript got frozen like a flying amber

131:55in some ways with that sloppy equality operator

131:57that I made 'cause of the early adopters.

131:58And the cookie got stuck with this tracking hazard,

132:01and then, because JavaScripts can be like images,

132:04they're embedded in the page.

132:05By the time of Netscape 3, I made that work.

132:08You can get a request with the last cookie value,

132:10and the response updates it.

132:11That's a tracking mechanism,

132:12and that's why you don't even need images to track.

132:14Now you just use scripts.

132:16So this whole tracking economy evolved,

132:20and it depended on these accidents of the '90s,

132:23these unintended consequences.

132:25- Well, it created some of the richest companies

132:27in the world, right?

132:28I mean, it's the social media--

132:28- All I got was T-shirts.

132:29(laughing)

132:31- All I got is this crappy T-shirt.

132:33Yeah, I mean, so that's the fundamental problem

132:38the world is facing now.

132:39They're looking at what social media has created,

132:42and they're looking at,

132:44and like a world is looking at itself in the mirror,

132:47and seeing that privacy is actually something,

132:51it's supposed to be like a nice thing to have.

132:53It's something that is, actually should be fundamental

132:57to the way we interact with the world,

132:59as part of our tooling,

133:00and that's where the Brave browser comes in.

133:03And I suppose others as well are playing with this idea,

133:06but Brave is at the forefront of that.

133:07So maybe can you describe what Brave is,

133:11and what are its key principles,

133:13and what's broken, and what is it Brave trying to fix?

133:16- So when I realized that these accidents,

133:18like the third-party cookie,

133:19the image or script that's tracking you,

133:21or the JavaScripts that can do it invisibly now,

133:26that all this stuff wasn't intended,

133:28and that Firefox had supported extensions

133:31that block some of these things,

133:32I thought, probably we should have browsers

133:34just block some of these things by default.

133:37These were not intended, and they're now unsafe.

133:39They're tracking you, there could be data breaches,

133:41malware distribution, bullying, and PsyOps,

133:46and other attacks on people.

133:48Block that stuff, block that JavaScript.

133:51I'm Dr. Frankenstein, I've got to deal with a monster here.

133:54But obviously you go to Gmail,

133:56there's so much a script there

133:57to make that amazing web client,

133:59that's okay, that's first-party JavaScript.

134:02So how do you tell the first from the third party?

134:04And it's not easy, it's not a matter of just

134:06what's embedded from a different server,

134:07because a lot of publishers use benign scripts

134:11from unrelated domains, or apparently unrelated domains.

134:14So you end up having to develop a sort of

134:16human and machine learning practice around blocking.

134:19And at Brave, we did that from the start,

134:22and built a research team to help drive it and automate it.

134:25We realized that protecting people needed machine learning,

134:28and around 2017, in spring,

134:30I talked to my friends at Apple about this too,

134:32and they were also doing what they call

134:34intelligent tracking prevention,

134:36which uses local machine learning in the browser.

134:39And the funny thing is, you know,

134:41great minds think alike,

134:42they were taking their third-party cookie blocker

134:44that was in Safari from the old days,

134:46and making it not have a big loophole.

134:48Because what they did was, in 2003,

134:51when Safari came out, they said,

134:52we're gonna block cookies that are from

134:55those third-party embedded elements,

134:57where you've never visited that site before.

134:59So I'm gonna pick an ad company that got sold to AT&T,

135:02so I'm not picking on anybody unfairly,

135:04appnexus.com.

135:05Have you ever been to appnexus.com?

135:06- Nope. - I've never been there.

135:07But I guarantee you, 10 years ago,

135:09you probably had, if you were using Firefox,

135:11you had a cookie, third-party cookie,

135:13'cause you were being tracked by them.

135:14And they were using that cookie

135:15to build up a profile of you.

135:17In Safari, as long as the user never went to AppNexus,

135:20that cookie would not be set.

135:22And that was a real move for privacy early on,

135:25when jobs were still around, in Safari.

135:27But it had this loophole that if you do go to AppNexus,

135:30then why, it's okay to be a third-party cookie.

135:33So AppNexus did something very naughty.

135:34They took their ad partners,

§18Transcript · 2:15:36–2:23:05

135:36that put the actual ad you click on,

135:39and they said, "Hey, add a little script

135:40"so that when somebody clicks on the ad,

135:42"before it goes to your landing page,

135:44"redirect to AppNexus,

135:45"and we'll redirect to the landing page."

135:47And by doing that, they set a first-party cookie,

135:49and they got whitelisted.

135:49So it was a loophole they exploited.

135:51Intelligent tracking prevention in Safari

135:53was sophisticated enough to counteract this,

135:56and it did other things,

135:57and it's evolved since they did it.

135:59And we've evolved brave, too.

136:00And so when I say machine and human learning,

136:02there's a real set of techniques here.

136:05They have to fight--

136:06- This is a fascinating problem, actually.

136:07- Fingerprinting, right?

136:08Anytime you have a little bit of storage in the browser

136:10associated with a website,

136:13if the bad guy can get 32 websites,

136:15each one has a bit of storage that's 32 bits.

136:17You can turn the bit on or off.

136:19You can make four billion numbers.

136:21You can make an identifier.

136:22It's called a super cookie sometimes.

136:24There are weaker ways that are statistical.

136:28They're called fingerprinting.

136:29You have to block all of them,

136:30and you have to not only automate,

136:32you want to work in the web standards body

136:34to put privacy in by default, by design,

136:38from the get-go, not add it as an afterthought

136:40or go hog-wild with new web APIs

136:43that add a bunch more local storage

136:45or fingerprint surface area.

136:47And that's been a struggle, too,

136:48because guess who's the new Microsoft

136:50in the standards body?

136:51It's Google.

136:52And they're not in favor of privacy first.

136:55They wanna do privacy their way,

136:58only under, I would say, market pressure.

137:01But with Apple and with Brave leading the way,

137:03we block third-party cookies almost without exception.

137:06So we just block them,

137:07and that gives us a very strong privacy benefit,

137:11but it also means some sites just don't work right.

137:13Embedded YouTube videos might not work right.

137:15So we're adapting in a similar way to Apple's done with ITP

137:19to make third-party cookies blocked,

137:22but to sort of simulate what looks like

137:26a working third-party cookie for the site.

137:28It essentially tries to partition each site

137:32and its third parties into its own sort of cookie jar.

137:34- Got it.

137:35And so, like you said,

137:37is this both a human fine-tuning issue

137:41and a machine learning problem?

137:42- Yes, and as the humans learn,

137:44then they train the machine learning.

137:46- But maybe Google aside, or including Google,

137:50there's millions of dollars, if not billions of dollars,

137:54to be made from fighting the ways of Brave.

137:57- That's right, and it's been an interesting change

138:00from when we started in 2015.

138:01When we started, ad-blocking extensions,

138:04AdBlock Plus was one of the big ones

138:06that started on Firefox in 2006, I believe,

138:08had gotten to a certain level of use around the world,

138:11and browsers like UCWeb, UC Browser in Asia,

138:14had some amount of ad-blocking built in and on by default.

138:17So PageFare was a startup,

138:19and they measured ad-blocking adoption,

138:23and they tried to say, "Hey, publishers,

138:25"30% of the visitors to Pitchfork or Wire,

138:30"to Conda NAS properties, are using ad-blockers.

138:32"If we can somehow convince them

138:34"to lower their ad-blocking for your site,

138:37"that could be like a 43% lift, right?"

138:39And 3/7ths, well, that's easier said than done,

138:44and PageFare and others, SourcePoint, many others,

138:46tried to either smuggle ads through

138:48or cajole the user into letting ads appear,

138:52and it didn't really work.

138:53Meanwhile, the ad-blocking adoption

138:54has just continued.

138:55Intelligent Tracking Prevention, Safari in 2017,

138:59Brave from 2016 on with very strong cookie-blocking

139:03and other protections, and this is not going away.

139:06The publishers used to rage against it.

139:08We would try to say, "We can help you.

139:10"You're dealing with users

139:11"who are already blocking all your ads.

139:14"We can try to put back some economics

139:16"that help the user and you,"

139:18that led to the basic attention token

139:20that we started with Bitcoin.

139:21"We can be your friend.

139:22"Don't just fingerprint us as an ad-blocker

139:24"and treat us as an enemy."

139:26But in 2015 or '16, it was like,

139:28"Nah, you're an ad-blocker.

139:29"Get out of here.

139:30"I hate you."

139:31And by 2017 or '18, it's like something's happening.

139:33The ad-blocking's not stopping,

139:34and we're all getting sort of pulled

139:37on the Google's plantation through AMP, A-M-P,

139:41or we're getting killed by the Google ad system we use

139:44because it's taking all the revenue,

139:46or it's permitting, or some other vendors we use

139:49are permitting ad fraud.

139:50And so a fake New York Times is getting paid

139:52by the marketer running an ad that a bot clicks on,

139:57and the real New York Times

139:58that's supposed to get the ad doesn't get it.

140:00- And there's something really broken

140:01about that kind of system.

140:02- And that fraud is mediated through Google's ad exchange,

140:06which is the biggest of them all,

140:07and Google takes a fee.

140:09There's a flip side of that,

140:10which is malware distribution, malvertising,

140:12where fake advertisers put malware payloads

140:16in exploit kit loaders in JavaScript,

140:19and they smuggle them in ads onto real publisher pages.

140:22The ad exchange takes the fee.

140:24Now, I'm not a lawyer.

140:25I'm not gonna say this is a RICO predicate,

140:27but why is the ad exchange facilitating fraud

140:30and malware distribution and taking a fee?

140:32It's not right.

140:32- As opposed to just fighting,

140:33this is the really interesting thing about Brave,

140:35is as opposed to just fighting

140:37and then being treated like an ad blocker,

140:39you're providing an alternate.

140:42There's a philosophical idea here

140:45that might change the nature of the internet

140:47with a basic attention token.

140:49- Yes.

140:50- Maybe what is basic attention token, BAT,

140:54and how does it work?

140:55- Okay, I'll tell the story first by saying how I came to it.

140:58I realized for a long time at Firefox,

141:00we were dependent on this Google search deal,

141:02and I thought, now that Chrome's out,

141:05maybe that's gonna go away.

141:07At some point, Google will say,

141:10Firefox, like old yeller, you saved me from the rabid beast.

141:14Now I have to shoot you in the head.

141:16Done your job, sad but true, goodbye.

141:19And what can we do?

141:21And I think Mozilla doesn't know what to do.

141:24This is something that I couldn't solve there,

141:25and I don't think they can solve.

141:27But I thought, why is the browser

141:29the sort of passive servant of these big tech companies?

141:32Why is it a blind runtime for ad tech JavaScripts,

141:36including from Google?

141:38Why doesn't it block some?

141:39And if it blocks some, why can't it reconnect users,

141:43readers, fans, with publishers, creators, websites?

141:47Why can't it help people make direct payments

141:51or even possibly get an ad revenue share

141:53for private ads that are placed in the browser?

141:56The ads are all placed in the browser.

141:57Some people have this sort of model

141:58that the server's painting the ad into some flash,

142:02combined package or into some giant image,

142:06and then it all gets sent down.

142:07That's not how it works.

142:08All the ads you see on the web are placed in your browser

142:11by it calling out to various ad tech partners,

142:13and Google's among them.

142:15And so if you block those scripts,

142:17you break the advertising flow of money

142:22from the brands and their agencies to the publishers.

142:26And if you want to reconnect it directly with the user,

142:29you have limited choices.

142:30The user generally isn't gonna sign up

142:31with a ACH bank connection or a credit card.

142:34The publisher isn't gonna sign up the user,

142:37except as a subscriber,

142:38and then they're gonna overcharge you

142:39because they want you to cross subsidize all the content

142:42and buy more than you read and all that stuff.

142:43And how many, you know, people are doing great

142:46who are big names like New York Times and The Washington Post

142:48but how many subscriptions are you as a user gonna pay for?

142:51This is why startups like Tony Hale's Scroll

142:54are trying to do a portable subscription system.

142:57- By the way, just on a small tangent there,

142:58even the New York Times is really annoying

143:00how difficult it is just to subscribe.

143:03There's way too many clicks.

143:04- They don't make it easy.

143:05And I had friends a few years ago, I think they fixed this,

§19Transcript · 2:23:06–2:30:55

143:06who would pay for the paper and then they'd go online

143:09and they'd get up charged for the digital

143:11and there was no break, there was no connection between them.

143:15But publishers are not that technical

143:17and they can't all get you to subscribe,

143:19you can't have a thousand subscriptions.

143:21So for a long time people talked about micropayments,

143:23there was Blendle and the other ones which came to the US

143:25but didn't grow.

143:27And I thought if you have just a browser

143:29and it's protecting you

143:30by blocking all this ad tech tracking junk,

143:32it can provide you an option that uses cryptocurrency

143:36to let you support your favorite sites

143:39and even YouTube channels.

143:40And that we prototyped with Bitcoin.

143:42And that meant the user had to be of means to contribute

143:45and willing to contribute.

143:47But it could be done on the Bitcoin blockchain

143:49and it could be fairly efficient

143:50even though Bitcoin went through a period

143:52when we had this prototype running in 2016 into 2017

143:55where Bitcoin was very congested and very slow to confirm

143:58and the fees got very high.

144:00And a lot of users who were not Bitcoin maximalists

144:03or even experienced, we helped them out

144:05by embedding a Coinbase buy widget

144:07and they had the income to buy but it was hard.

144:10It was like, do I buy $5 a month?

144:12But the fee is like 450.

144:14I better buy in larger batches, right?

144:16And they're like, I don't wanna own that much Bitcoin.

144:18So it became this painful thing.

144:21And the real idea that I had of private ads

144:23that pay the user a rev share couldn't be realized

144:27alone in that kind of system.

144:30In these cryptocurrency systems,

144:33especially with the blockchain we switched to Ethereum,

144:35you can have smart contracts.

144:36The Bitcoin system is not Turing complete

144:39so what you can do with the script is more limited.

144:41But you can still do sort of clever things

144:44even with Bitcoin script.

144:46What we wanted to do was sort of a three-sided ecosystem.

144:49We wanted users, creators or publishers and advertisers.

144:53And we wanted the advertisers to put money in

144:55just like they do today but without going through

144:58the Googles and the app nexuses

145:00and all these other ad tech companies.

145:02Because those companies take out a huge cut.

145:04The Guardian in the UK once did an experiment for a month.

145:06They bought out their own ad space.

145:08They put in a pound and they were paid 30 pence.

145:1170% was coming out to the intermediary vendors

145:15they were using.

145:16- Wow.

145:17- And that's like the opposite of what the app store does.

145:19The app store takes 30% and gives the publisher 70%.

145:22So pretty broken.

145:23In the old days of the Superstation TBS,

145:26the media owner would get 85%.

145:29So these splits have become really unbalanced.

145:33And the middle players, the ad tech vendors

145:35are taking out way too much money.

145:37And they're doing something worse which has been noticed.

145:39They're letting not just the malware vendors

145:44but also the ad fraud side which fakes the publishers

145:47and clickbait merchants come in

145:51and steal traffic from good sites.

145:53Because once you have a certain audience

145:55identified at one site.

145:56Jason Kalkanis told me this about his experience

145:58with I guess it was in Gadget.

145:59Which site he was running.

146:01Once he started using an ad partner

146:04that was sharing his audience information

146:06across multiple sites,

146:07he saw his competitors stealing all his traffic.

146:09And then what's worse is the clickbait sites

146:11that just have much cheaper rates steal all that traffic.

146:15And that facilitates fraud, it facilitates fake news,

146:20all sorts of problems.

146:21So Grape blocks it and then we give users

146:24the ability to give back.

146:26And because we invented the basic attention token

146:28in Ethereum, we can do this three way split.

146:31And we can give users a share of the revenue.

146:33And if they want to take it out, they can.

146:35Now unfortunately for us and for all of blockchain,

146:38the regulators are saying,

146:39we're gonna have to know who you are.

146:41There's the Treasury Department's FinCEN agency,

146:46there's the Office of Foreign Asset Control's OFAC,

146:50there's the other regulators in the federal government

146:55that take a very dark look at things like money laundering

146:58and sending money to someone named Osama Bin Laden.

147:01So compliance starts to come in.

147:03And even now they're threatening for pure Bitcoin

147:06sending to some address.

147:07If you're a Coinbase, you're gonna have to know

147:10who's at that address.

147:11- Like the actual identities of people involved.

147:13- Now with Coinbase members, you sign up and they know you

147:15and they comply with the regulations.

147:16They're a regulated money services business.

147:19But if somebody's using their own self-custodial wallet

147:27where they have the hardware private key

147:29and they're not named and they want to send to that address,

147:32our friends in the federal government are talking about

147:35requiring at some threshold knowing who that is.

147:38- Some threshold that's unreasonable?

147:40- It's not that big.

147:41Yeah, I don't know how this will play out.

147:43I think crypto is here to stay.

147:44I think the beauty of being able to send peer to peer

147:47without any bank in the middle,

147:48without any huge wire charge and two day delay

147:51and all that nonsense, it's beautiful.

147:53And I've used it and I love it.

147:54But we're pragmatistic brave about crypto

147:56and we realize that anything like a revenue split,

147:59we can't facilitate without being licensed in a certain way

148:02and it requires knowing who the user is.

148:03So our default mode doesn't know who the user is.

148:06It instead imputes to the user's browser

148:09some of the revenue and allows that browser

148:11to steer it back to the creators.

148:14And we do have to identify the creators.

148:16But as things improve, and who knows how it'll play out,

148:20there should be a day when this full vision can be done

148:23more fully on a blockchain.

148:25But regulations and the practicalities

148:28of today's blockchains, which are not that fast

148:30and not anonymous over time,

148:32you fingerprint yourself over time,

148:34we do some of this with the browser.

148:36So one of the ideas of the basic attention token

148:39is to make a hybrid system that's stronger

148:42than blockchain alone.

148:43It's the browser and the blockchain.

148:45And the browser is this trusted endpoint software.

148:48It's this universal app.

148:49Everyone uses browsers.

148:51The bigger the screen, the more you're in the browser

148:52unless you install fat clients for things.

148:56I use Slack on Mac OS and it's like a browser.

149:00It's based on an electron framework we used to use.

149:02And it's just, it's not that great.

149:04Some of the people at Brave use Slack in Brave as a--

149:07- In the browser, yeah. - In the browser, yeah.

149:09- I use that often, yeah.

149:10- And I noticed on the iPad, I use apps less.

149:13The smaller the screen, the browser got handicapped

149:16by Apple and Android both.

149:17And it also can be slower or not have the right affordances

149:22to interface with the security limited APIs.

149:26But in principle, with the right permissioning,

149:28you can make the web browser just as good as any app.

149:31You make it be a super app.

149:33And that's part of our mission at Brave.

149:35So we want to have the economics that got captured

149:37by these big tech companies through tracking

149:40and through social networks.

149:41We wanna block that for your own safety

149:43and then let you opt into a cleaner world

149:45where you keep your data defended in your browser

149:48and you can actually realize value from it.

149:49So the way our ad system works,

149:51I mentioned it being private,

149:52but how does that work?

149:53We don't see your data at all.

149:55All browsers are sort of the mother of all data feeds.

149:57Your history, all your searches at all engines.

150:00Each engine sees the queries you send to it,

150:02but it doesn't see the others.

150:03But the browser sees them all.

150:05Machine learning in the browser that you can opt into

150:07can study all that in a very complete way

150:10and do a better job than Google does.

150:12Google has cookie and scripts across the web

150:15from acquiring DoubleClick.

150:16They have YouTube, they have Android,

150:19they have Search, which is still their big revenue lane.

150:21But they don't see everything.

150:22The browser sees everything.

150:23And if it can do a good job locally,

150:25and this is not advanced machine learning,

150:26this is not TensorFlow, this is like SVMs now,

150:29and Naive Bayes,

150:30then you can match intense signals,

150:35intense signals from those data feeds,

150:37the searches, the queries, the history,

150:39how much you're scrolling down a page,

150:41how much you redid a search.

150:43It's all blind browser algorithm.

150:45We don't see that data.

150:47And then pick the best ad from a fixed catalog per day.

150:50And the catalog is fixed across a large population per day.

150:53And it only updates once a day

150:55'cause new offers come in and old ones expire,

§20Transcript · 2:30:57–2:38:12

150:57sometimes every week or every month.

150:59And that catalog, and there can be many such catalogs,

151:02is sold by our direct sales team.

151:06And so we're making an anonymous audience

151:08available to advertisers

151:10without the advertisers tracking them.

151:12Instead, each browser is a little machine learning system

151:15that's picking the best catalog entry.

151:17Now, the catalog is not the ads.

151:18Those are big, right?

151:19It's a video or a webpage.

151:20It's just the link to an edge cache.

151:22And there are many such edge caches.

151:23We're not trying to protect them from seeing your IP address.

151:26It's not really feasible.

151:27We could use Tor, but we don't yet.

151:30And then some keywords about the ad.

151:31So it's basically like metadata and a link.

151:34And that's what the catalog consists of,

151:36and that's what the machine learning picks.

151:37- And the machine learning is learning

151:39about you specifically, locally,

151:41in order to choose from the catalog of different ads.

151:44Couldn't this possibly be like a multi-billion dollar,

151:47isn't this taking on the Google ad?

151:51- Could be.

151:51- So like what, I mean, one question to ask,

151:54there seems to be some really profound ideas here

151:57that are different than what the internet

151:59has grown up to be.

152:01If Brave or something like Brave,

152:05the ideas, the fundamental philosophical ideas

152:07underlying Brave went out and runs 95% of the internet,

152:12how does that change the,

152:16what are the major things that changes about the internet?

152:19So social networks and then the creatives,

152:21like YouTube creators and all that kind of stuff.

152:23- So let's talk about that.

152:24First of all, if Brave gets 95%,

152:26I'm gonna demand a recount 'cause I won't believe it.

152:29I don't know.

152:30I think we're trying to put things into web standards

152:32that can be standardized across browsers.

152:34So the main value of Brave will be

152:37the trust users have in us

152:38and our ability to give the best deal to users.

152:41So 70% of the gross ad revenue we give to the user,

152:45and if they go through that KYC process I mentioned,

152:47they can take it out.

152:48They can also give it back.

152:49They can take some out, give the rest back.

152:51They can add basic attention tokens to give back.

152:54Some of them turn off the ads 'cause they just don't like ads

152:57but they put in $20 a month.

152:58I believe Zucco of Zcashfame does that.

153:01And that's very generous

153:02because the browser is just anonymously,

153:04based on his browsing,

153:05sort of keeping score on how much time he spent

153:07on this video, on that website.

153:09And if those sites verify in sort of a,

153:13like getting a domain certificate fashion,

153:15they can get paid.

153:16They can get part of his $20 a month.

153:19So that vision could go big.

153:21And if it does, I hope it's across multiple browsers.

153:23I don't know that they'll all compete well

153:25on the quality of the ads,

153:27the quality of the ad blocking and tracking protection.

153:30Those are subject to competition.

153:31It'll take a while to standardize them.

153:33But I think that would be a better world.

153:35It would have less counterparty risk,

153:38fewer fee takers in the middle, really just the browser.

153:40We're taking 30%.

153:42It's sort of the app store split.

153:44And if we get bigger, maybe we can take even less.

153:47Social networks, creators.

153:49If you look at YouTubers,

153:50a lot of them are the indies that are getting some size,

153:53are getting sponsorship deals.

153:56They're using Patreon.

153:58They're encouraging people to subscribe

154:01and give them regular money through Patreon.

154:04But that's centralized through Patreon.

154:06So there's censorship hazards.

154:07There's a 5% fee.

154:09What if that were a web standard?

154:10What if Brave pioneered it first

154:12and we took 3%?

154:14And we did it in a way that was through your browser

154:17so we couldn't censor it.

154:19- That's brilliant.

154:20Do you think it could be standardized across browsers?

154:22Can Internet Explorer come in again?

154:25- Yeah, protocols are easy to copy

154:27and they're meant to be interoperable.

154:29So there's a risk there.

154:31And the loyal users might be tricked into leaving you

154:34or they might, because of that distribution power,

154:36you might end up getting stomped.

154:38I don't know.

154:39I can't predict the future.

154:39I think antitrust is back on the case finally in the US

154:42and certainly in Europe, DG Comp is doing its thing.

154:45So I'm hopeful that we'll have a period of innovation.

154:48People were talking, like Elizabeth Warren was talking

154:50about breaking up the tech companies very clearly.

154:53Now she didn't win and I suspect that won't happen.

154:56But I also suspect that Google might be smart enough

154:58to see they should do something more

155:01than just put privacy perfume on Chrome.

155:03They should maybe get rid of DoubleClick or something,

155:05divest something.

155:06I don't know, it might happen.

155:07- So Brave might inspire Google to completely change

155:10the way they're doing things in the future.

155:11- They're already doing something you may have read about

155:13called the privacy sandbox or Flock,

155:17which they have this bird metaphor going,

155:20turtle dove, fledge.

155:22But these systems have been very Googly,

155:25kind of over-engineered and yet,

155:27depending on differential privacy,

155:29which has weakness over time, if you know how that works,

155:31it's kind of injecting noise to hide you in a crowd.

155:34But over time, an adversary can pull you out of the crowd.

155:37This doesn't look like it's gonna become a standard.

155:39Like Apple, Brave, Mozilla, we're not gonna just say,

155:42oh, Google, you saved us.

155:44You've invented the privacy sandbox,

155:46so we'll all just adopt it.

155:47Not gonna be that easy.

155:48It's gonna be more like pieces of what we do in Brave,

155:51this anonymous ad matching

155:52or the blind signature cryptography

155:55we use to confirm the ad impressions.

155:56That's David Choum's invention.

155:59That could get standardized.

156:00In fact, some of that is being standardized.

156:02Even Google's in favor of so-called trust tokens,

156:04which are Choumian blind signature certs.

156:07But they're not using them for ad confirmations

156:09'cause they don't wanna blow up their own business.

156:11And they need to let some of the publishers they serve

156:14have other ad tech scripts on the page.

156:17And so they're kind of caught.

156:18And this is something I realized doing Brave.

156:19I thought, what's Google's innovators dilemma,

156:22apart from just being mature and having trouble innovating?

156:26It's that they have come to depend on this ad tech system

156:30that has all these vendors that publishers rely on,

156:34because publishers aren't technical enough.

156:36And I feel for the publishers,

156:37but I realized the users have to come first.

156:39And if you give the users a better browser that's faster,

156:43then you'll get enough users to give back

156:46or support publishers.

156:47The speed and the battery savings

156:49and the data plan savings are significant.

156:51There's so much bad JavaScript involved in ad tech

156:53that if you block it,

156:54you sort of chop off what's called the programmatic waterfall

156:57which chains a bunch of requests.

156:59- Yeah, that's one of the incredible things about Brave.

157:01I guess you're saying you should attribute it

157:03to the fact that the messy JavaScript, no offense.

157:06- No, it's good.

157:07It's not my excuse.

157:08(laughing)

157:10Is, I mean, Brave just feels faster,

157:13even then, I mean, Chrome was fast.

157:16One of the things that it was like impressive

157:18is it showed that browsers can be really fast.

157:21And Brave is even faster than that, which is incredible.

157:23- We've blocked so much.

157:24And it saves the network, which means data plan,

157:26it saves battery because the radio consumes your battery

157:29when it's running more to do those requests.

157:31And it's just stunning how many there are.

157:32Like some of my Google friends were like,

157:34oh, that's just that bad site, they'll fix it.

157:36And you actually do a survey of web pages

157:38that they're like mostly like that.

157:40I know Google engineers could make everything

157:42super efficient, but they can't,

157:44especially in antitrust court, do it.

157:45They cannot take over all the publishers and do that.

157:48They're trying with accelerated mobile profile, AMP.

157:51They're trying to pull publishers.

157:53They're like, oh, you poor publishers

157:54don't know how to make your pages fast.

157:56Put them on our AMP system,

157:58we'll give you extra placement in the search carousel.

158:00That's an antitrust problem for one.

158:02But it's also, publishers we talk to hate it

158:04because it degrades their brand.

158:05Now they look like a gig writer wrote a piece

158:07that's got Google's framing and AMP URL on top of it.

158:12And they're trying to fix that too.

§21Transcript · 2:38:13–2:45:39

158:13But it just looks like Google's

158:15borgifying all these publishers

158:17and they don't wanna be plugged into the BorgCube.

158:18They wanna build up their own brand and have loyal readers.

158:22So I'm in favor of giving the user's power

158:25to help all the publishers

158:27in this little platoons and the creators.

158:29And so we talked about Patreon.

158:30What about social networks?

158:31Well, they're inherently like search, a global algorithm.

158:35You're trying to find friends of friends.

158:37You're doing the transitive closure of a graph

158:39induced by this friend of relation.

158:41But you should own your friend relation.

158:45You should own your posts.

158:46They shouldn't be owned by somebody else

158:48who can take them down or censor them.

158:51And your friend relations,

158:52you should be able to find those friends on other networks.

158:54And so I've tweeted about this, I haven't built it yet.

158:56What if the browser could keep track of those for you?

158:59What if the browser could maybe combine Facebook and Twitter

159:03and you could find your friends on both

159:05and you could have a sort of multi--

159:06- So that relationship is not owned by Facebook or Twitter.

159:09It's owned by you through the browser.

159:12- They'll have terms of use and they'll say they own it.

159:14But if they zap you on one and you're still on the other,

159:16your friends find you

159:17and the browser could preserve a combined view.

159:20You could resurrect almost across networks.

159:23- It's something I wanna maybe quickly ask you about.

159:26On that front, there's been quite a lot of centralized,

159:31we talked about Wall Street Bets and then Robinhood.

159:35There's been centralized banning of different accounts

159:39and removing like Parler, for example, from AWS

159:42and this kind of overreach of centralized control.

159:46Is your hope that it's possible to,

159:49like what are your thoughts about that in general?

159:50Is it, and is it possible to create tools

159:54that give individual people the power

159:56to fight back against overreach of such control?

160:00- So we're talking about oligarchy, I do think.

160:02And that, if it controls a nation state, that's formidable.

160:05It's the tax and the police power, the military power.

160:08It means that you may have the Great Firewall of China.

160:10You may have people in China who are jailed

160:13because of their tweets, right?

160:14This is a serious threat.

160:15I can't minimize it or say that we'll win.

160:18I don't know how it's gonna go.

160:20But I do think, like I said earlier

160:21about the cunning of reason, people find ways around things.

160:24The internet routes around censorship.

160:25And this is not to endorse any particular bad faction.

160:28One of the things that happens

160:29when you try to wave the free speech flag too much,

160:33you say I'm not gonna censor anything,

160:34and you get colonized by terrible, terrible people.

160:37I don't care if you call them neo-Nazis,

160:39some of them could be doing illegal things.

160:41And you don't want them colonizing

160:44'cause it'll ruin your reputation and destroy your business.

160:46So what you really want is that kind of

160:48user-first subsidiarity, that subjectivity.

160:51I want my social networks to be composited

160:55in some multi-social user interface

160:57where I don't lose track of people across networks.

160:59And if they leave one or they get banned from one,

161:01I can find them on another,

161:02I can still sort of thread them together.

161:04- Yeah, that's brilliant.

161:05- And this didn't happen because browsers

161:07got captured by the central powers.

161:09And why did they get captured?

161:10Mostly 'cause of search, and search is a central algorithm.

161:13So Larry Page said this too many years ago.

161:15He said, with search, you're giving up a little privacy

161:17by handing the query over to us,

161:19and then we'll error correct it.

161:21Alan Eustace used to be a Google executive.

161:24He said, oh yeah, we used to laugh.

161:25They'd all be doing typos,

161:27and they'd be typing the wrong word.

161:28And we're like, no, dummy, type that query.

161:29And it's like, okay, Google,

161:31might wanna dial back that ego a little bit.

161:33But yes, you do see all the queries,

161:35and you can improve them,

161:36and you can find the best results.

161:37And that was Google's forte.

161:38When we did the Firefox deal in 2004,

161:40Google was really good.

161:42And over time, SEO, which is an adversarial game,

161:46and Google itself buying all these companies

161:48and crowding its own results page

161:50with its own tied-in stuff, the YouTube--

161:53- It's the slip or slope that happens

161:55when you have control over these kinds

161:58of really important mechanisms

161:59as a set of data. - Yeah, monopoly capitalism

162:01or cartel, you get this with the Robin Hoods

162:03and the hedge funds.

162:05You get sort of the money interests take over

162:08and kind of abuse their power and wear out their welcome.

162:10So how do you get around that?

162:11You have to have either new land to go to,

162:15which some people's ancestors, not mine,

162:18did to found the country.

162:19I'm mostly Irish-German.

162:22You have new virtual space people go to,

162:26and that requires an ISP or a colo center

162:30or Amazon to host you.

162:32It requires domain name registrar who will not strike you.

162:36And so when Parler was taken down,

162:38I thought that was egregious.

162:40Parler, it was not well-designed,

162:43and I tried it out 'cause I tried all these things,

162:45but I didn't use it.

162:46And I also felt they were being unfairly scored

162:49for not moderating, because you can find tweets

162:51to this day that are horrendous

162:53and threaten all sorts of violence.

162:54Whereas Twitter, why isn't Twitter being taken down?

162:56But so it was very selective.

162:57It was the insiders who have the power

162:59are gonna take out the newcomer.

163:01And it looked bad, sort of like the hedge funds

163:05shorting GameStop.

163:06Looked bad.

163:08You're seeing a piece in Time Magazine this week

163:10that's basically saying,

163:11"Yeah, we interfere with the election,

163:12"but it was great, aren't we good?"

163:14I don't know if you've seen this piece yet.

163:16If you tried to say that as a Trump supporter in November

163:20after the election, you'd get banned from Twitter.

163:22But now Time, in its Twitter account,

163:24is saying, "We saved the day.

163:26"It's AFL-CIO and big business,

163:30"the Better Business Bureau got together

163:32"and kept Trump from spreading fake news."

163:34So the country's kind of broken.

163:36I don't know how to fix that.

163:37The oligarchs have run wild, in my opinion.

163:40And big tech is in the antitrust dock.

163:42What's gonna happen?

163:43I don't think they get out.

163:44I think some of the DOJ, and certainly the state cases,

163:47'cause they're separate cases,

163:49are not gonna go away just 'cause

163:50somebody got elected differently.

163:52And these are career prosecutors,

163:53and they have a strong case.

163:55And Google's smart.

163:56Microsoft almost got split up, right?

163:59The judge, Thomas Penfield Jackson, he overreached.

164:02He didn't hold a hearing about the remedy.

164:04He just said, "I'm gonna break you up."

164:06And Microsoft appealed, and the higher-level court said,

164:10"Go back and figure this out.

164:11"You're not breaking them up.

164:12"You didn't even hold a hearing."

164:13And when they got back, Microsoft said,

164:15"Let's settle, let's settle.

164:16"We don't wanna get broken up."

164:17Because Jackson was gonna make the OpsCo,

164:20the operating system company,

164:21and the AppsCo, Office, Word and Excel.

164:24And that would've been a huge blow to Microsoft.

164:27- But ultimately, I don't know if you're optimistic

164:31or cynical about the possibility of breaking up big tech.

164:34To me, I'm optimistic that tools like Brave,

164:39I love the idea of owning your friendships.

164:42Users more and more owning the stuff is the only real way.

164:46Unfortunately, it's like the Wall Street Bets subreddit

164:48is the only real way to fight the centralized power.

164:51You can't break 'em up through regulation.

164:52It's very difficult.

164:53- Certainly, I don't wanna wait for the law.

164:55Netscape was long dead or acquired by AOL

164:57and effectively dead.

164:58It was only Mozilla that returned Firefox to the market

165:01by the time that the US v. Microsoft case

165:04was finally settled and the penalties were put in place.

165:07And yet, antitrust has a role to play.

165:11Those penalties caused Microsoft

165:12to kind of turn away from the web.

165:14They did Windows Vista, and they thought,

165:16"The web's too painful.

165:16"We got punished in court, and we had to standardize things

165:19"with those icky standards people."

165:21So they ran back to proprietary lock-in,

165:23and Windows Vista flopped.

165:24It was late, it was bloated, longhorn, remember?

165:27Now, what I was gonna say, but Google's smart enough,

165:30they won't get split up.

165:31They'll split something out to get off the hook, I think.

165:34- This is a complicated subject, but I, myself, was so,

165:39I decided to journey out from the world

§22Transcript · 2:45:43–2:53:41

165:43of being a researcher at MIT,

165:45and potentially doing a startup myself,

165:48and I've been thinking of,

165:50I wanted to come to Silicon Valley to do so.

165:53It's the land of the entrepreneur.

165:56And there's a lot of my friends,

165:58a lot of them are successfully,

165:59have been entrepreneurs themselves,

166:01have said, "Do not come to Silicon Valley."

166:03You've started, you ran amazing teams of engineers.

166:09You started a lot of successful businesses.

166:12I wondered if you could comment on

166:14why a lot of people are leaving California.

166:17Is there something that could be fixed about California?

166:19If you were starting a business today,

166:22would you consider somewhere else,

166:24like Austin, or some other place?

166:27Or is Silicon Valley still, is it just a little lull,

166:30everybody's being overdramatic

166:32during this particular year of the coronavirus, and so on?

166:35- I think, you know, even Austin's getting overheated,

166:38I hear, and I've had relatives and friends move to Texas

166:42within the last few months.

166:43So Texas as a whole is a big place.

166:45And, you know, people are moving to Florida,

166:48there's a big movement toward Miami,

166:50Peter Thiel, Keith, all these people.

166:53The mayor has been very business-friendly about it,

166:56which I think is just good politics.

166:58America is fundamentally a commercial republic,

167:00so you would think this would be what's happening.

167:02For a long time, California was the golden state.

167:04I came here in late '76 when I was a teenager.

167:06It's in crushing debt due to the lockdowns.

167:11It's got the highest taxes, that's gotta matter,

167:14people will do high taxes.

167:16It's got, likely fires every year because of the deadfall.

167:21It's not global warming,

167:22it's because the forests weren't managed

167:24like they had been in the first part of the 20th century.

167:26Just, I would say corruption at all levels,

167:31especially up to the governor,

167:32who, you know, famously was eating at the French Laundry,

167:34and claimed that the outside was inside,

167:36and they were out in masks off, and it was great.

167:39Do what I say, not what I do.

167:42Rules for thee, but not for me.

167:44When you see that in leadership,

167:47people either run, or they get rid of the leadership,

167:50so there's a recall drive,

167:51which is about to reach the threshold,

167:53or in the old days, they get their guns, right?

167:56You don't put up with this junk.

167:57- But ultimately, the thing that made Silicon Valley

168:00a special place, it gave freedom to young kids,

168:04entrepreneurs, young minds, brave minds,

168:08to think bold, to try different stuff.

168:10I mean, even if the taxes are high,

168:12so outside of financial stuff, outside of all of that--

168:15- Housing's super expensive.

168:16- Housing's super, so it's hard.

168:18Okay, everything about startups is hard.

168:19- Pencils narrow, and they didn't plan the roads, right?

168:22- Yeah.

168:23- They got rid of public transportation in LA,

168:25like the Who Framed Roger Rabbit cartoon show.

168:28They used to have trolley cars in Portland, too.

168:30The oil companies and the DOD conspired to build highways

168:34and make cars dominant, and the rights of way are long gone.

168:37Like Elon's gonna go underground.

168:39And I rushed him well.

168:40That's probably the only way to do it now.

168:42- But is it still a place, do you think it's possible

168:45that Silicon Valley is still a place where magic happens,

168:48where the next Google's built, where the next,

168:50I mean, Brave is built, where--

168:53- I think all good things come to an end.

168:54I think the problem is Silicon Valley

168:56had strong network effects through Stanford,

168:58through the angel investor networks and the wealth effect,

169:02and originally, you have to give

169:04the federal government credit.

169:05Like the ARPANET was a government project.

169:07Let's not kid ourselves.

169:08This wasn't wild free market, libertarian capitalism.

169:11This was all Cold War stuff.

169:12You had, out of the academia, you had Shockley,

169:17and then the Trader SA, and Fairchild, and Intel.

169:20But now, when's the last fab that was built in the Valley?

169:25MicroUnity might've been the last.

169:26I don't know, I haven't followed,

169:27but we built a fab in Sunnyvale,

169:29at MicroUnity, starting in the early '90s.

169:33And now the fabs are overseas.

169:36And the one thing that I will say

169:38that the oligarchs have intentionally done,

169:40in both parties, is sort of labor

169:44and environmental protection law arbitrage

169:46by going where the labor's cheaper,

169:47and the environmental laws aren't as strict.

169:49And that's polluted the hell out of parts of China,

169:51but it's made things, you can make cheaper junk.

169:55And this is not a story that's over yet.

169:58So what is Silicon Valley for now?

170:00It's for the network effect, the brain trust,

170:03the who you know, the parties,

170:05the Stanford sort of network.

170:09That's fragile too, over time, I'm afraid.

170:11Stanford, a lot of good professors I like,

170:16they still filter mainly based on socioeconomic status,

170:19but it's kind of a skate school.

170:22I had a friend hired out of Harvard 20 years ago

170:24at Netscape, and we talked about Harvard,

170:28and he said, "Yeah, there's still professors

170:29"who are great on the curve."

170:30And I said, "Oh yeah, I don't think

170:31"they're any doing that at Stanford anymore."

170:33And he said, "Yo, it was shocking.

170:35"Some of the students got Cs and Ds, and they were crying."

170:37It's like, yes, that's right,

170:38the precious deers can't take that at Stanford,

170:40so they get As and Bs.

170:42Now, you look at China, and people say

170:45what you know about China.

170:46They, true of Russia too, a lot of math science training,

170:49a lot of engineering, a lot of people

170:51who are doing their coursework to get the As and Bs.

170:55So I'm an American, I'm born on the 4th of July.

170:59- Really? - 4th of July.

171:01- Yeah. - Wow.

171:02- And America, as I say, fundamentally

171:03is a commercial republic.

171:04You can try to make it something else.

171:06You can say it's the new Atlantis and mystify it.

171:09You could talk about it in a more, I think, correct way,

171:11which is 13 colonies that grew,

171:12and then there's a lot of local,

171:15or in the original design anyway,

171:16the Federalist Papers talk about this,

171:18there's a lot of subsidiarity.

171:20But that's been eroded over time,

171:23and like I say, a lot of the offshoring has hurt.

171:26So what happened with coronavirus?

171:28People working from home.

171:29At first it was funny, 'cause I have friends at Google

171:32who used to grumble that not only did they have

171:34to come into the office, if they joined a different team

171:36that was centered at a different office, they had to move.

171:39Or if the VA team was reconstituted in Munich,

171:43which it was after Lars Bach just got tired of JavaScript,

171:46that they hired in Munich, or they hired PhDs

171:48from Germany and moved them to Munich.

171:50With coronavirus, everyone's working from home,

171:52and it's like, what a relief,

171:53I can work for Google from home.

171:54But then the next shoe dropped,

171:56and people started asking Mark Zuckerberg,

171:57hey, can I move to my hometown in the Midwest?

172:01And he said, okay.

172:02And they said, oh, can I keep getting my Silicon Valley pay?

172:05No. (laughs)

172:06We're gonna figure out what your cost of living there is,

172:08and we're gonna adjust your pay accordingly.

172:10- And these colonies and these little mini experiments

172:12that all combine to the big giant experiment,

172:15I have a, I don't know, I have this vision of America,

172:20which the country, so I was born in Russia,

172:21like I said, here, and this is truly a wonderful country.

172:24I wasn't born on the Fourth of July, but I might as well be.

172:27People still flee.

172:28- I still, and I'm red-blooded American at this point,

172:31and I have a sense that we've figured it out somehow.

172:35If Silicon Valley burns,

172:36another place will come up in its place

172:38that even more innovation, and people will move.

172:42And the remote work might change fundamentally

172:45how we work, or it might not.

172:47It might just give you the freedom to then create

172:49many other small Silicon Valleys throughout the place,

172:52like Austin included, but other places as well.

172:54And we've somehow figured it out.

172:57- I think that's true, that there will be more mobility

173:01and maybe new places that come up.

173:03I don't know if Silicon Valley has passed some sell-by date

173:07because it did hurt.

173:10The coronavirus hurt, the lockdowns hurt,

173:12in the sense that part of what keeps things going is social.

173:15And so a lot of young people,

173:17even before coronavirus, moved to San Francisco.

173:19It was very strange to watch,

173:20'cause in the '80s, we all lived in the valley,

173:22and it was less populated, and San Francisco was grungier.

173:26It was more like Dirty Harry in the '70s.

173:28But by the '90s, and Jamie runs a nightclub there,

173:31and he's talked about this,

173:32you had sort of wealthy tech people moving in,

173:35South of Market, fancy townhouses being built.

173:37And that's continued in such a point

173:40that it's almost like, what's the movie

173:41by the South African director, Nels Jodie Foster,

§23Transcript · 2:53:43–2:59:12

173:43up in the space colony?

173:46Matt Damon is the guy on the Earth who has to go up.

173:48Anyway, it's about the stratification.

173:50It's about the great inequality.

173:51The people in the space station have amazing medical

173:54auto-docs that can extend their life

173:56or save them, cure cancer.

173:57People on Earth are all suffering, ground down in poverty.

174:01And that sort of happened while I was here.

174:06You saw a lot of money drive prices up

174:10along the narrow peninsula,

174:11and the single people wanted nightlife,

174:13so they were in the city,

174:14and the condos in the city got super expensive.

174:16And I know even Google friends

174:18who are socially responsible say,

174:20we should have more housing built.

174:22We should have, yes, in my backyard, not in my backyard.

174:25But that's not happening, as far as I can tell.

174:28And from the government to the incumbent landowners

174:32and renters, it's just not happening.

174:34And that has to drive people away.

174:37I appreciate that people come here,

174:39and you should wait for the prices to monitor.

174:41They will, but a lot of people are gonna go

174:44where the prices are lower.

174:46- You, and sorry for silly questions here,

174:50but just looking back, you have created things,

174:54have been part of creating things

174:56that have transformed this world,

174:58the world of technology,

175:00perhaps more than almost anything else.

175:02But you're still a human being,

175:07and unfortunately, this ride ends.

175:10Do you ever think about your own mortality?

175:13- Not too much.

175:14I mean, I'm Roman Catholic, so I am not afraid of death.

175:19I think a lot of people who have problems with death

175:24are suffering from some lack of either faith

175:30in their transcending death,

175:31or maybe they don't have children,

175:34or they feel like, they get later in life,

175:37and they feel like they've missed opportunities

175:39to do something that endures.

175:40And I sympathize with a lot, because I'm old.

175:43I got married fairly old, so I understand all that.

175:46Nothing human is alien to me, as Terrence said.

175:49But I don't fear it, no.

175:54- What do you hope your legacy is?

175:56- Yeah, it's gonna be JavaScript.

175:57I think, no, I think my legacy has more to do

176:01with my children and their children.

176:03I think it also has to do with web standards.

176:06It has to do with things like Brave.

176:08The things we did with Firefox, when we did,

176:10you know, I'm not gonna over-celebrate,

176:13but I think Brave is important,

176:14and we'll continue to prove this in a way

176:15that counts for many decades to come.

176:18But even Firefox, whatever its future fortune,

176:21showed you can restart the browser market.

176:23This thing you said about people opting out

176:26and routing around, you don't need everybody to do that.

176:28It's more like Taleb's stubborn minorities that do that.

176:31It's the lead users, Eric Van Hippel's lead users.

176:33You can be a few percent, you can tilt the market.

176:36And that can be done in spite of the incumbents,

176:39the moneyed interests, not being in favor

176:41of what you're doing.

176:41So I think what we did with Firefox won't be forgotten,

176:45and it needs to be done more, and we're doing it with Brave.

176:47And you could argue that other projects are doing it.

176:48In some ways, blockchain is doing it.

176:50The Robinhood take down the use of Robinhood

176:55by the Wall Street Bets kids, similar.

176:59So yeah, that kind of spirit endures,

177:01and I think it, in some ways, it's American, right?

177:04It's not hard revolutionary.

177:06It's not trying to burn the past and destroy everything.

177:08It's more like we have these certain, let's say, rights.

177:15We have duties, too, so there's some debate

177:16about which comes first in American jurisprudence

177:19and the founding documents.

177:20But as long as things are working,

177:23we'll be like pragmatic Americans,

177:25like de Tocqueville described in his writings.

177:29But if things get too out of whack,

177:30for one reason or another, too unequal,

177:33too oligarchic and abusive, we're gonna assert our rights.

177:37And even a few of us can do it.

177:38And even in the American Revolution,

177:40it was the minority who fought and put their lives,

177:44treasure and sacred honor at stake.

177:45It was a bunch of people went to Upper Canada,

177:48I think it was called, Ontario.

177:51- Yeah, that's a beautiful, I mean, that is,

177:53at the core, what your work stands for,

177:55is that a few people can have the power to transform society

178:00with just a few radical ideas,

178:01with just a little bit of code, change the world.

178:04- Gotta do it. - And that's empowering,

178:05and that is the American way.

178:07That's why this country is, I believe,

178:09the greatest country on Earth.

178:10That's not over-rheumatized too much,

178:13but I think some special things have already happened

178:16in this country and will continue to happen.

178:18And that's-- - And that spirit

178:19can continue no matter who comes here.

178:22They can adopt those folk ways and that spirit.

178:25- Brandon, I can't tell you how much,

178:27I was freaking out how much of an honor it is

178:29to talk to you.

178:30You're an incredible human being.

178:31This is one of my favorite conversations ever.

178:33Thank you so much for wasting all this time with me.

178:35I really appreciate it.

178:36- Oh, it seems like a breeze.

178:38My pleasure.

178:38- Thank you for listening to this conversation

178:41with Brandon Eich, and thank you to our sponsors,

178:44Jordan and Harberger Show,

178:46Sun Basket Meal Delivery Service,

178:48BetterHelp Online Therapy,

178:50and 8 Sleep Self-Cooling Mattress.

178:52Click the sponsor links to get a discount

178:54and to support this podcast.

178:57And now, let me leave you with some words from Jeff Atwood.

179:00"Any app that can be written in JavaScript

179:03"will eventually be written in JavaScript."

179:06Thank you for listening, and hope to see you next time.

179:09(upbeat music)

179:12(upbeat music)

— A LITTLE MORE TO THINK ABOUT. —