Transcript
00:00:00 The following is a conversation with Brendan Eich,
00:00:02 creator of the JavaScript programming language,
00:00:05 cofounder of Mozilla, which created the Firefox browser,
00:00:09 and now cofounder and CEO of Brave Software,
00:00:12 which has created the Brave browser.
00:00:15 Each of these are revolutionary technologies.
00:00:18 JavaScript is one of the most widely used
00:00:21 and impactful programming languages in the world.
00:00:24 Firefox pioneered many browser ideas that we love today
00:00:29 or even take for granted today,
00:00:31 and Brave is looking to revolutionize
00:00:33 not only the browser, but content creation online
00:00:36 and the nature of the internet
00:00:38 to make it fundamentally about respecting
00:00:40 people’s control over their data.
00:00:43 Quick mention of our sponsors.
00:00:45 The Jordan Harbinger Show,
00:00:47 Sun Basket Meal Delivery Service,
00:00:49 Better Help Online Therapy,
00:00:51 and AidSleep Self Cleaning Mattress.
00:00:53 Click the sponsor links to get a discount
00:00:56 and to support this podcast.
00:00:58 As a side note, let me say that there’s a tension
00:01:00 between theory and engineering
00:01:03 that I’ve been thinking a lot about.
00:01:05 I tweeted something like,
00:01:06 “‘Good execution is more important than a good idea,
00:01:09 “‘but one helps the other.’”
00:01:11 I think the wording of that sucks,
00:01:13 but what I mean is a good idea is a must,
00:01:16 but in my experience, good ideas are in abundance.
00:01:20 Good execution, on the other hand, is rare.
00:01:23 I think some mix of good timing, good idea,
00:01:26 and good execution is essential.
00:01:28 Getting that mix right is tough,
00:01:29 and Brendan, somehow, multiple times in his career,
00:01:32 did just that.
00:01:34 I’m starting to believe it’s more art than science,
00:01:36 like most interesting things in life.
00:01:39 If you enjoy this thing, subscribe on YouTube,
00:01:41 review an Apple podcast, follow on Spotify,
00:01:44 support on Patreon, or connect with me on Twitter
00:01:47 at Lex Friedman.
00:01:48 And now, here’s my conversation with Brendan Eich.
00:01:53 When did you first fall in love with programming?
00:01:56 I didn’t program a lot when I was in high school,
00:01:58 but I had a friend who had a Commodore PET,
00:02:01 and after we saw Star Wars, he said,
00:02:03 “‘Hey, let’s make a basic program
00:02:05 “’that does the Death Star Trench run.’”
00:02:08 And it was just simple 2D graphics,
00:02:10 and I didn’t know what I was doing,
00:02:11 so I just helped him out on the math and stuff like that.
00:02:14 I was a math and science kid.
00:02:16 I was really into the HP calculators of the early mid-’70s.
00:02:20 These were the RPN.
00:02:21 They were really strongly built,
00:02:23 and as Arik Goldfinger said of gold, divinely heavy.
00:02:27 There’s probably some gold in them, too, gold metalization.
00:02:29 But they were awesome calculators,
00:02:31 and they had all the scientific functions,
00:02:33 so I was really into that.
00:02:35 So I aimed toward physics.
00:02:38 I was a little late for the, I think,
00:02:40 the 20th century golden age,
00:02:42 and I read a lot of science fiction,
00:02:43 so I was like, yeah, it’s on the hyperdrives
00:02:45 and warp drives, and physics was not gonna get there quickly,
00:02:50 and I started hacking on computers
00:02:52 while I was studying physics as an undergraduate
00:02:55 at Santa Clara University,
00:02:56 and I dodged the Fortran bullet
00:03:00 because I was in the science department
00:03:02 instead of the engineering department,
00:03:03 where they still did Fortran card decks.
00:03:05 I think they had an auto collator.
00:03:07 But we were using Pascal,
00:03:09 and I got one of the first portable C Compilers ports
00:03:15 to the DEC minicomputers we were using,
00:03:17 and I fell in love with programming
00:03:19 just based on procedural abstraction, Pascal,
00:03:25 just what now would be considered old school,
00:03:28 like structured programming from the 70s.
00:03:31 Niklaus Wirth, the creator of Pascal,
00:03:33 was a good writer and a good pedagogue, right?
00:03:36 He always at ETH would do these courses
00:03:38 where it’s like build your own computer,
00:03:40 build your own compiler, build your own operating system.
00:03:42 It was scratch. Yeah, kind of.
00:03:44 And I know some people who were grad students under him
00:03:47 and said he would torture the students
00:03:50 with things like this custom email system
00:03:52 that had 25 word limit and things like that.
00:03:56 I unfortunately dodged both the Pascal
00:03:59 and the Fortran bullets.
00:04:00 Could you maybe linger on the Pascal?
00:04:04 What kind of programming language was it?
00:04:06 What is it reminiscent of today?
00:04:08 Because it sounds like it may have had an impact
00:04:11 on your own trajectory.
00:04:12 Yeah, it was in the ALGOL family,
00:04:14 and ALGOL was the big successful language design
00:04:20 and compiler project in the 60s.
00:04:23 It had a successor called ALGOL 68,
00:04:24 which was ambitious but not as successful.
00:04:27 But Pascal was kind of wordy procedures
00:04:31 and functions language.
00:04:32 It distinguished between functions
00:04:33 which return a value and procedures which don’t,
00:04:36 which just compute.
00:04:37 And you could say that whole ALGOL family went into ADA.
00:04:42 Pascal had a second life thanks to Borland
00:04:44 with Turbo Pascal, which was hugely successful.
00:04:48 I think in large part due to Anders Helberg,
00:04:51 who then went to Microsoft and did C Sharp and done that
00:04:53 with his team there and has done really well
00:04:55 doing TypeScript, type JavaScript.
00:04:58 So yeah, there’s a lineage here.
00:05:00 But I was also interested in C and Unix
00:05:03 by the time I was an undergrad
00:05:05 because people were bringing Unix up
00:05:07 on all sorts of hardware.
00:05:09 I had some friends who were doing
00:05:10 their own wirewrapped computers, 6820 maybe.
00:05:14 And I was wirewrapping for my engineering course,
00:05:19 6809 or something simpler, building a computer on a board.
00:05:22 And I wanted to build a more ambitious one
00:05:24 and port Unix to it, but I picked the wrong processor.
00:05:26 I picked the National Semiconductor NS16032,
00:05:30 which was this amazing, you know,
00:05:33 CISC, complex instruction set computer,
00:05:37 and not the reduced instruction set computers
00:05:39 that were just being contemplated into the mid eighties.
00:05:43 And RISC ultimately went out.
00:05:45 RISC won in some ways, it dissolved into,
00:05:48 you have both now, you have these super scalar architectures
00:05:50 where like Intel has kept probably too much
00:05:54 backward compatibility at the instruction level,
00:05:56 but that’s just, there’s a front end that parses that
00:05:58 into these, you know, these wide internal instructions.
00:06:01 So, you know, the very long instruction word research
00:06:04 that was also interesting at the time
00:06:06 kind of became the micro architecture
00:06:08 inside the backward compatible Intel.
00:06:11 But I picked a National Semi chip
00:06:13 and it never got made successfully.
00:06:14 It was full of bugs and I never could have brought it up.
00:06:17 But I went on out of physics after three years
00:06:21 into math, computer science.
00:06:23 And like I said, I did it because I saw,
00:06:25 I was being sort of childlike and naive about physics.
00:06:28 And I thought, meanwhile, the Valley is go go for computers.
00:06:32 The Apple II, right?
00:06:33 The PC, the Intel 8086, 8088 based PC,
00:06:40 the IBM, you know, gave Microsoft the future for,
00:06:45 you know, somewhat fishy deal.
00:06:46 So it was wide open in the computing space,
00:06:48 but in physics, you were as optimistic about physics as?
00:06:52 No, I mean, I was one of three brothers
00:06:54 who were all in the same grade.
00:06:56 I have a twin and a younger brother who skipped second grade
00:07:00 and was with us the whole time after that.
00:07:02 And, you know, he went on,
00:07:04 he actually studied under Kip Thorne at Caltech.
00:07:07 But he also didn’t, he ended up in software.
00:07:09 He didn’t talk about physics stuff.
00:07:12 Does it make you sad that theoretical physics,
00:07:16 even with string theory,
00:07:17 hasn’t really had any foundational breakthroughs
00:07:20 in the latter part of the 20th century?
00:07:23 Yeah, in fact, I’d say the problem is theory
00:07:25 over experiment.
00:07:27 I would say, you know, we need more Aristotle
00:07:29 and less Plato.
00:07:31 You know, mathematics is not all physical.
00:07:33 There are lots of mathematics that cannot be realized
00:07:36 as far as I know in this world.
00:07:38 So to understand the world, you need to do experiments.
00:07:41 You need to not just dream up inductive theories
00:07:45 that could have lots of alternative theories
00:07:47 competing with them, with no way to decide between them,
00:07:50 except aesthetics, which is not a good guide in my opinion.
00:07:53 Yeah, I don’t know if you are friends
00:07:54 or have a relationship with Elon Musk.
00:07:56 Where’s the, in terms of like what you would love to see
00:08:00 our society investing in, building up,
00:08:02 is it closer to Elon or is it closer to Feynman
00:08:07 and Einstein and those?
00:08:09 Well, those gentlemen are no longer with us
00:08:10 and I think that’s noticed.
00:08:12 So like I said, the real glory days of physics,
00:08:14 the famous pictures from Germany before the second war
00:08:17 were just a fantastic assembly of brains,
00:08:21 Schrodinger and Einstein.
00:08:23 And physics, I think, took a wrong turn
00:08:26 that maybe all of, I would say, Western science
00:08:30 took in going for models over reality, right?
00:08:33 You see this in all sorts of fields.
00:08:35 Now, we can build models that are very predictive
00:08:38 and generative and then we build actual devices
00:08:40 or semiconductors, things like that.
00:08:42 That’s good, I’m not dismissing that.
00:08:44 We need good models, we need to experiment
00:08:46 and prove them and test them.
00:08:49 But the problem I’ve seen in physics,
00:08:51 which you see certainly in economics, the dismal science,
00:08:55 and you see surprisingly in other so called hard sciences
00:08:59 is models that don’t really have to be
00:09:04 tested against reality.
00:09:05 They can instead become policy tools
00:09:07 or they can become, like I said,
00:09:09 one of a large family of alternate theories
00:09:12 that could be as predictive
00:09:14 but nobody’s doing the winnowing out.
00:09:17 That’s such an interesting tension in society.
00:09:18 You see this in even the software scientists
00:09:21 which have a deep love for psychology.
00:09:24 You see this in epidemiology, not with the virus.
00:09:27 Absolutely.
00:09:28 There’s this tension of how much of the world
00:09:31 can we understand through just a beautifully fit model?
00:09:35 And then at the same time, my main work
00:09:37 is in machine learning where it’s like
00:09:41 there is no provable thing usually.
00:09:44 It’s all about just getting the right data set
00:09:47 and getting tricks and so on.
00:09:49 And there’s this tension even in my own soul
00:09:51 of I grew up on theoretical computer science.
00:09:55 I loved approximation algorithms,
00:09:58 all of that different complexity classes,
00:10:01 just those little puzzles.
00:10:03 I mean, I don’t know, to you as somebody
00:10:06 who was in math and computer science
00:10:08 and then ended up going into places
00:10:11 where you engineer some of the most impactful things
00:10:13 in this world, do you see the P versus NP,
00:10:18 all that whole space is interesting at all?
00:10:21 Yeah, it’s not that useful in practice.
00:10:24 People are using it with sort of crypto analysis
00:10:27 or asymptotic arguments about can we have
00:10:31 a quantum resistant crypto algorithm, things like that,
00:10:35 which may not be practical, right?
00:10:36 If you follow Mikhail Diakonov or Gil Kalai,
00:10:40 there are big questions about how quantum computing
00:10:43 will scale up, how practical it will be.
00:10:46 Is that something that you think about quantum computing?
00:10:49 Not except for spare time.
00:10:51 Like you said, I’m not using this kind of computer science
00:10:53 in practice because almost everything now is engineering
00:10:57 and finding ways to get computers
00:11:02 to be more useful for people,
00:11:03 which goes from design problems,
00:11:06 which are really kind of an art.
00:11:07 Like you said, anything you can’t automate is an art.
00:11:09 Well, we can have machine learning compose music
00:11:13 and it can imitate, you can train it,
00:11:14 and it can sound kind of decent,
00:11:16 but maybe lacking that je ne sais quoi.
00:11:18 But user interface still, I think, requires human art.
00:11:23 So speaking of things that didn’t follow
00:11:26 a perfect theory and model, JavaScript,
00:11:30 so there’s two things.
00:11:31 One, it had an impact on the world at a huge scale,
00:11:34 obviously, and it also still is one of probably
00:11:38 the most popular programming language in the world.
00:11:41 So can we go back to the origin story?
00:11:45 Can you tell the story of how JavaScript was created?
00:11:47 Yeah, I was at Silicon Graphics
00:11:49 after graduate school for seven years,
00:11:53 and it got to be big and successful
00:11:54 and divisionalized and political,
00:11:56 and I thought kind of boring.
00:12:00 And a friend who’d been there went to one of the last
00:12:03 of the super companies, the super startups
00:12:06 in the early 90s.
00:12:07 There were several.
00:12:08 I suppose General Magic was a little after that
00:12:10 around the same time.
00:12:11 But Micro Unity was that company that I went to,
00:12:14 and it was because my friend Jeff Weinstein
00:12:16 had gone there from Silicon Graphics.
00:12:18 He recruited me, and Micro Unity was doing everything.
00:12:21 So this was like the ultimate sort of pretend grad school.
00:12:26 It was doing a new fab, new semiconductor process.
00:12:29 It was doing new analog and digital circuits
00:12:32 on the same very large but not wafer scale chip.
00:12:36 Originally, it was five centimeters on a side.
00:12:40 It was really hot too, so I needed a water cooler.
00:12:43 It was a Craykiller, and then they shrunk it,
00:12:46 and they tried to do a home sort of media processor
00:12:49 that was essentially a barrel processor.
00:12:51 But you could think of trying to do all the things
00:12:55 that we now see in modern architectures
00:12:58 with short vector instructions
00:13:00 and sort of wide instructions or multiple issue,
00:13:05 and doing a lot of the stuff in software
00:13:07 because the second iteration, the set top box,
00:13:10 was really for avoiding the cost to the cable company
00:13:13 of rolling the trucks out
00:13:14 to replace your garbage General Atlantic set top box
00:13:17 with a totally newer, less garbagey one.
00:13:21 So if you could have software gradable set top boxes,
00:13:23 the cable companies thought they could save a lot of money
00:13:26 and add features.
00:13:27 Is this assembly, or which level of the software?
00:13:30 It was like, we were writing in, we were using GCC.
00:13:33 We were writing C++ and C.
00:13:36 Somebody I worked with there, really very smart guy,
00:13:39 hired from a sort of Wall Street
00:13:41 hotshot programming consultancy,
00:13:45 did his own hardware design as well as software.
00:13:47 And we were working on how to make
00:13:49 not only a short vector units,
00:13:50 but general bit shufflers and permuters.
00:13:53 So you could do things like crypto algorithms efficiently,
00:13:57 and you could do demodulation of the cable,
00:14:01 complex quadrature amplitude modulated signal.
00:14:05 So you’re basically taking A to D converters,
00:14:07 dumping things in buffers,
00:14:09 and then doing the rest in software.
00:14:10 All the framing and the Reed Solomon and Viterbi
00:14:13 and all that error correction.
00:14:14 So that was really great learning experience,
00:14:16 but it was not gonna work.
00:14:16 It was doing too many risky things at once, right?
00:14:18 If you, as Jim Clark said to me,
00:14:20 when I hopped to Netscape after three years at MicroUnity,
00:14:23 he said, oh yeah, you do 10 things each,
00:14:26 one in 10 odds, it’s gonna be one in 10 billion, right?
00:14:29 The multiplication principle.
00:14:31 So, Netscape was already a rocket,
00:14:33 and I passed the chance to go there in 1994.
00:14:36 I knew the founders because I worked at SGI,
00:14:39 Clark’s company.
00:14:40 Could you pause for a second in Netscape?
00:14:42 When was the launch of this rocket?
00:14:44 94.
00:14:45 94 was the launch of Netscape?
00:14:47 And I went there in early 95 in April.
00:14:49 Okay, so you said you missed the launch.
00:14:52 Well, I missed the first floor employment opportunity,
00:14:55 but the IPO was August 1995, so I was there for that.
00:14:58 How obvious was it that Netscape was like world changing?
00:15:02 What was the layout?
00:15:04 Was Netscape one of the first big browsers?
00:15:06 Yes, so when I was at MicroUnity still in 93,
00:15:09 we saw a browser called Mosaic.
00:15:11 And up till then, we’d used email and we’d used Usenet,
00:15:14 the NNTP protocol, we’d use news readers, we used FTP,
00:15:18 we used all these old internet protocols,
00:15:20 all relying on the DNS and TCP IP and UDP for that matter.
00:15:25 When I was at Silicon Graphics,
00:15:26 we brought up the whole stack, right?
00:15:28 We had to discover how to find the ethernet addresses
00:15:31 on your network and then find IP addresses for them,
00:15:34 ARP protocol, all that stuff.
00:15:35 And it was great because nobody knew in the 80s
00:15:38 what was gonna win, all the proprietary stacks
00:15:41 like IBM, SNA and DeckNet and all these other protocols
00:15:44 were saying, we’re gonna do it
00:15:46 or it’s gonna be heterogeneous future.
00:15:48 And instead it was Berkeley Unix and the TCP IP stack
00:15:52 that dated back to the ARPANET that won.
00:15:54 And I think we knew it, we all knew it at SGI,
00:15:57 but the salespeople didn’t.
00:15:59 And so they kept trying to get multiple network stacks
00:16:02 interoperating, but in the end it won.
00:16:04 And so that was the internet and it was email and texty
00:16:08 and it was used and very texty.
00:16:09 And then Tim Berners Lee did his thing,
00:16:12 but I don’t think I was paying attention.
00:16:14 And I think the date when he first did it
00:16:16 or when he wrote the famous emails and pushed back to 89,
00:16:19 but I noticed a mosaic in 93 because one of the things
00:16:23 that Mark Andreessen and Eric Bina did at NCSA
00:16:26 was they innovated on the early HTML standard.
00:16:31 They in particular Mark sent this email saying,
00:16:33 hey everybody, we think you should be able
00:16:34 to put an image in a page.
00:16:36 And you know when he sent that Eric Bina had already
00:16:38 written the code.
00:16:39 And I talked to Tim Berners Lee more recently
00:16:41 just a few years ago and he was like,
00:16:43 oh, we had another way of doing it and it didn’t work out
00:16:45 because Mark shipped his in mosaic.
00:16:48 And this convinced me of several things.
00:16:50 One, the internet meant there was a huge first mover
00:16:53 advantage and being fast, getting on first mattered a lot.
00:16:58 And so Richard Gabriel of scheme and poetry fame
00:17:01 has written about this, the famous.
00:17:03 What’s poetry? Well, he’s a poet.
00:17:06 Oh, actual poetry.
00:17:07 Is he talking about some kind of something?
00:17:08 No, no.
00:17:09 I mean, he’s the founder of Lucid,
00:17:10 which is where Jamie Zawinski worked before Netscape.
00:17:12 And Lucid was doing compilers and Lucid Emacs,
00:17:16 which was a fork of Emacs,
00:17:18 famously Jamie fighting against Richard Stallman, Stalmax.
00:17:22 And so Richard Gabriel, very, very brainy computer guy,
00:17:25 but also a poet, but he wrote a nice essay
00:17:27 that gets abused all the time.
00:17:28 In fact, Jamie’s put a kind of warning in front
00:17:30 of his version of it on his site,
00:17:32 JWC.org called Worse is Better.
00:17:34 And this is about survival advantage of software
00:17:38 in the network world, in my opinion.
00:17:39 It’s about Unix.
00:17:41 It started out being framed as Unix and Lisp,
00:17:43 good news, bad news, because all the Lisp people,
00:17:46 the MIT people were like, oh, you know,
00:17:48 the crown jewel scheme, this Faberge egg or Common Lisp,
00:17:52 this giant cathedral, of course we’re going to win.
00:17:54 This is civilization.
00:17:55 And those, you know, those farmers in New Jersey
00:17:58 to borrow from the Sopranos, those picks down at Bell Labs,
00:18:01 they’re just, you know, there’s nothing sound there.
00:18:03 It’s all hacking.
00:18:05 Well, guess what won?
00:18:06 Wow, so you’re saying this is a fundamental,
00:18:09 like principle of the internet is moving fast wins.
00:18:14 You could say in almost any network system,
00:18:16 like in biological evolution,
00:18:18 you see successful alleles sweep populations
00:18:20 and they don’t always have, you know,
00:18:23 they aren’t free of flaws.
00:18:24 They’re heterozygous advantage, right?
00:18:26 You can get both parents give you the gene variant
00:18:30 and you get sickle cell anemia, right?
00:18:31 But if one of them does, you’re more resistant to malaria.
00:18:34 And so this isn’t a beautiful process,
00:18:38 except at large scale.
00:18:39 And then you realize that because it moves fast
00:18:41 and can adapt, it can win.
00:18:44 And people still struggle with this.
00:18:46 I used to struggle with this
00:18:47 because JavaScript was done in such a hurry
00:18:50 and the force of web compatibility meant
00:18:52 early mistakes couldn’t be fixed.
00:18:55 And even the standards process injected new mistakes,
00:18:57 as it will.
00:18:59 But often standards bodies go back
00:19:00 and making compatible changes.
00:19:01 You can’t do that with the web.
00:19:03 It’s more like, again, like biology,
00:19:05 you preserve what still works.
00:19:07 You don’t want to break ATP metabolism or whatever.
00:19:10 So you have to kind of resign yourself to the reality
00:19:15 of worse is better being enshrined
00:19:20 in actual design points you might not like.
00:19:23 And that happened with JavaScript and I’m way over it,
00:19:25 but it also, I think was a huge advantage.
00:19:28 That’s why JavaScript has kind of swept
00:19:31 a lot of programming domains.
00:19:33 People will say, oh, it’s not because of merit.
00:19:34 Well, you’re right.
00:19:35 But we also improved it over time in the standards body.
00:19:37 I spent 20 years doing that.
00:19:39 And you don’t get that choice.
00:19:41 It’s like, I’m not saying that that was the best language.
00:19:45 I’m just saying that was the right time to do it.
00:19:47 And I like to say the alternative was not to do it.
00:19:50 I could have told Netscape, I can’t do this.
00:19:52 It’s too rushed.
00:19:53 And it would have been visual basic script.
00:19:55 And it would have been bad.
00:19:57 So that’s a good way to present the alternative.
00:19:59 But so it was a Netscape and you have written it
00:20:03 in how many days and why was it only that many days?
00:20:05 And what was the goal and the underlying principles
00:20:08 in your mind at the time?
00:20:09 So the whole, I’m sort of describing worse is better
00:20:11 in a frenetic way because it fit the model of Netscape.
00:20:14 When it was known that Jim Clark
00:20:18 and Marc Inves were founding Netscape
00:20:20 and they did the first release in 1994,
00:20:22 that browser took over from Mosaic.
00:20:24 In fact, that’s why Mozilla is called that.
00:20:27 It’s the Mosaic killer.
00:20:28 It’s like the giant monster that kills Mosaic.
00:20:30 That’s awesome.
00:20:30 And they knew they could, it wasn’t that, again,
00:20:34 it’s not like you’re doing advanced scientific research
00:20:36 that is changing the world.
00:20:37 You’re more like taking down the last iteration
00:20:41 on the browser, Marc did, which had images
00:20:43 and other importances before he stopped working on it.
00:20:45 And you’re making Netscape the new thing that has images,
00:20:49 plugins, which was the way to do video back in the day.
00:20:51 It had something that’s kind of died now for tiled windows
00:20:54 called frames and frame sets.
00:20:56 HTML tables, that was new.
00:20:59 Eric Bina did tables in Netscape 1.1.
00:21:01 So when I got there, they were heading toward IPO.
00:21:05 Clark wanted the IPO early, I think his instinct was right.
00:21:07 And that kicked off the whole dot com era, right?
00:21:10 There was a recession in the US in 91.
00:21:13 You can see old law and order reruns
00:21:15 where they talk about the recession
00:21:16 and how hard it’s hitting New Yorkers.
00:21:18 And after that, Greenspan really goosed things
00:21:20 at the Federal Reserve and technology had been sort of
00:21:23 fermenting in a way that came together with the internet.
00:21:26 And Netscape made it possible to do pets.com,
00:21:30 to do eBay, to get people to recognize a URL on a billboard
00:21:34 and then type it in when they get home.
00:21:36 And that was huge.
00:21:38 That was so fast moving a rocket that Marc
00:21:42 and the engineering team there thought,
00:21:45 we need to make this a programmable browser,
00:21:47 not just a document viewer, not just a video.
00:21:50 It was all HTML with images and tables and also,
00:21:54 like you said, frames.
00:21:55 There was no dynamic element at all.
00:21:57 Yeah, the most dynamism we get was from a plugin,
00:21:59 which there are a few of them then.
00:22:01 Flash didn’t exist at that point.
00:22:03 It was, I think.
00:22:05 Java Applets yet or no?
00:22:07 Well, that’s the thing we did to deal with Sun.
00:22:09 In fact, I was recruited to go do Scheme in the browser.
00:22:12 Remember Guy Steele and Gerald Sussman’s
00:22:14 beautiful Lisp variant?
00:22:16 I was gonna do it in the browser
00:22:17 because my friends from SG, I thought,
00:22:19 hey, we like Scheme, you like Scheme.
00:22:20 And I’m like, I hardly ever use Scheme.
00:22:22 It’s not really used in industry,
00:22:23 except in sort of silos, but I like it.
00:22:27 Okay, I’ll come do Scheme in the browser.
00:22:29 I have a slide from my 2017 talk
00:22:32 where I have Bruce Willis crawling through the duct
00:22:34 in Die Hard.
00:22:35 He’s like, come out to the coast, have a lot of fun.
00:22:38 Come on, do Scheme in the browser.
00:22:40 But when I got there, there was no Scheme in the browser
00:22:42 because they’d started a deal with Sun Microsystems.
00:22:45 And my best contact there was Bill Joy,
00:22:47 who I admired as a Berkeley Unix founder.
00:22:48 And, you know, Sun founder.
00:22:50 And Bill got the idea of making the browser programmable too.
00:22:53 And so the main idea was to put the Java VM,
00:22:57 which at that point was not really easy to embed,
00:23:00 into Netscape, including the Netscape version on Windows
00:23:04 that was still most popular,
00:23:05 which was the 16 bit Windows 3.1, which was going away.
00:23:09 Microsoft was coming out with Windows 95
00:23:11 and everyone was afraid they were gonna do
00:23:13 Internet Explorer, I guess, two at that point,
00:23:16 three the next year.
00:23:17 They already bought or invested in somehow Spyglass,
00:23:20 this other company that shot out from NCSA
00:23:24 at University of Illinois.
00:23:26 And in fact, Microsoft had tried to buy Netscape
00:23:29 in late 94, before I got there.
00:23:31 And I heard about this later.
00:23:32 I heard they offered way too little money.
00:23:35 And so, you know, Jim Barksdale and Jim Clark said,
00:23:37 get out of here, you know, pound sand.
00:23:39 But then they realized, oh, this is going to hurt us
00:23:43 because now they’re gonna copy us.
00:23:45 Didn’t happen right away.
00:23:46 I’m not sure when Gates internet title wave memo
00:23:49 was written.
00:23:50 That’s the famous memo he wrote when Bill Gates realized
00:23:53 that Microsoft was going down this old copy AOL path
00:23:56 or copy CompuServe path, a project called Blackbird,
00:24:01 presumably after the SR71, I don’t know.
00:24:03 But they were gonna make a, you know,
00:24:04 dial up service with a custom content language stack
00:24:07 and custom rendering.
00:24:09 It wasn’t the web.
00:24:10 You know, they could have content partners.
00:24:13 They have a lot of money,
00:24:14 but it still wasn’t to scale the web.
00:24:15 It wasn’t gonna be compelling.
00:24:16 And Gates realized this,
00:24:18 and he turned the company on a dime
00:24:20 and they couldn’t buy Netscape.
00:24:22 Again, I’m not sure the timing,
00:24:23 so they decided to copy it.
00:24:24 And once we realized that everybody inside Netscape
00:24:27 felt even more urgency and more of a frenetic mood.
00:24:30 And so my chance to do scheme disappeared
00:24:33 when the Java deal started brewing.
00:24:35 But there was still a chance to do a companion language
00:24:38 to Java because Java was a compiled,
00:24:41 is a compiled language.
00:24:42 It’s evolved and improved quite a lot since then too,
00:24:44 but it was for sort of serious advanced programmers
00:24:48 that cost a certain salary or hourly rate.
00:24:51 And people observed, Bill Joy observed,
00:24:53 and Mark Andreessen and I observed
00:24:55 that in a mature stack like Microsoft,
00:24:57 you really benefit from having a scripting language
00:25:00 like Visual Basic,
00:25:01 which became Visual Basic script in IE3,
00:25:03 but didn’t take over and kill JavaScript,
00:25:07 that you need two languages.
00:25:08 One is for the component writers
00:25:10 who are higher price and more expert.
00:25:12 And the other is for scripters,
00:25:17 certified public accountants, designers,
00:25:19 graphic designers with some programming inclination,
00:25:21 anybody, amateurs, doesn’t matter.
00:25:23 There’s a much more demotic approach there
00:25:26 for programming the components together,
00:25:28 gluing them together.
00:25:29 Some people say duct tape language, which I don’t really like.
00:25:32 But we saw, Bill Joy and Mark Andreessen and I,
00:25:36 we saw the need for a companion language.
00:25:38 And the gleam in our eye was to call it JavaScript.
00:25:40 I didn’t like it, that was marketing’s plan.
00:25:42 Mark called it Mocha, which I liked.
00:25:45 And Netscape Marketing, I think, didn’t like that.
00:25:47 So they said, oh, there’s some trademark
00:25:48 and some software somewhere that uses Mocha,
00:25:50 so we can’t use that.
00:25:52 And they tried LiveScript in August and that didn’t last.
00:25:54 And then finally we got the trademark license
00:25:56 in December 1995.
00:25:58 But the work I did to prove that it could be done
00:26:01 was important because I came in in April
00:26:05 and even then Netscape was growing so fast
00:26:08 that they couldn’t find an open hiring requisition
00:26:11 in the client team for me.
00:26:12 So they hired me into the server team.
00:26:14 And I worked for a month on server team
00:26:16 on what became HTTP 1.1.
00:26:18 So I was actually, I had done protocol work
00:26:20 at Silicon Graphics with Greg Chesson,
00:26:22 former Bell Labs intern, grad student intern
00:26:25 who knew all the Unix founders.
00:26:27 And Greg was very interested in taking protocols
00:26:30 to the next level with VLSI,
00:26:32 because he thought that CPUs wouldn’t scale up.
00:26:35 He was mistaken in that, unfortunately.
00:26:37 Moore’s law more than kept up.
00:26:39 And you have gigabit ethernet running
00:26:41 with conventional processors.
00:26:42 But I worked on protocols at SGI
00:26:45 as well as Unix kernel hacking and NFS and things like that.
00:26:49 So I came into Netscape to work on the server side
00:26:53 for a month, but I was thinking the whole time,
00:26:55 what should this language be like?
00:26:56 Should it be easy to use?
00:26:58 Might its syntax even be more like natural language
00:27:00 like HyperTalk, which is Bill Atkinson’s language
00:27:04 in HyperCard, if you ever used HyperCard on an early Mac.
00:27:08 And I thought, well, I’d like to do that,
00:27:12 but my management is saying, make it look like Java,
00:27:15 which looks like C from a distance.
00:27:17 What does that mean?
00:27:18 Is it braces?
00:27:19 We’re talking about visually?
00:27:20 Does that mean like, management,
00:27:23 do they understand what they think about?
00:27:24 Marketing didn’t know, but management did.
00:27:26 Like Rick Schell, the VP of engineering, knew.
00:27:29 And we had a plan even that was,
00:27:31 if you have this companion language,
00:27:32 you’re going to glue things together
00:27:34 between Java and JavaScript.
00:27:35 So you’re going to have commerce in memory, in the heap
00:27:38 with data types.
00:27:40 So you’re going to want some of the data types
00:27:41 in Java to reflect in the JavaScript.
00:27:43 You’re going to want the primitive types
00:27:45 that Java unfortunately separated from objects.
00:27:47 So at least some of them, double, let’s call it
00:27:50 in Java’s terms from the C term
00:27:52 for double precision floating point,
00:27:55 or strings or Booleans and objects.
00:28:01 And so right away there was this constraint
00:28:04 that looking like Java meant kind of a C curly brace syntax
00:28:07 but also some of the data types and objects.
00:28:09 Like objects and so on, all that kind of stuff.
00:28:12 Comparison operator.
00:28:13 Garbage collection, all that stuff.
00:28:15 Even the bitwise operators and the shift operators
00:28:17 including the unsigned right shift,
00:28:19 which Java had because it didn’t have
00:28:21 unsigned integer types.
00:28:22 It said, if you want to do unsigned operations,
00:28:24 use an operator.
00:28:25 And that turned out to be important much later.
00:28:27 I’ll tell that story five time.
00:28:28 But JavaScript inherited a set of operators,
00:28:35 the expression grammar, the statement grammar
00:28:37 up to a point from Java.
00:28:39 But I wanted a functional language.
00:28:40 I wanted scheme, a little bit of scheme,
00:28:42 even though it wasn’t as clean as scheme.
00:28:44 I wanted.
00:28:45 So you had a love, sorry to interrupt.
00:28:46 You had a love for scheme and list
00:28:47 but that functional language landscape.
00:28:49 Yes, I wanted first class functions
00:28:51 because I saw the need for callbacks in the browser
00:28:54 where it’s a single threaded program.
00:28:55 All the early browsers were single threaded
00:28:57 and it’s the right model for users.
00:28:58 Most users weren’t ready for mutual exclusion
00:29:00 and threading.
00:29:01 So in a single threaded world,
00:29:03 you cannot block the user interface.
00:29:05 So you have to use a callback and run later.
00:29:07 And without getting too fancy
00:29:09 and trying to capture the continuation
00:29:11 like call CC does in scheme,
00:29:13 I thought I’ll just make it easy to have fun arcs.
00:29:16 First class functions you pass downward
00:29:18 and it can call back, it’d be called back.
00:29:21 And Java didn’t have that at the time.
00:29:23 It took forever to get proper first class functions
00:29:27 or lambdas now into Java, Java seven or eight, I think.
00:29:30 It did have concurrency, right?
00:29:32 Yes.
00:29:32 From the very beginning.
00:29:33 But you were thinking that the JavaScript
00:29:35 in the browser would not have the luxury
00:29:38 of being concurrent.
00:29:39 That’s right.
00:29:40 And the reason was Java was gonna run in the plugins.
00:29:42 So it could fork threads and go to town.
00:29:44 But the main action in the browser
00:29:46 was in the single threaded program,
00:29:48 the single Unix process on Unix or Windows.
00:29:51 And it was where you had to service the event loop
00:29:54 and then go do things.
00:29:56 Respond to the network layout, some HTML, render it,
00:29:59 turn widths into heights by filling containers, boxes,
00:30:03 the early, what became the CSS box model.
00:30:06 And run scripts to make the thing livelier,
00:30:09 respond to user input.
00:30:11 And all that event driven programming
00:30:14 was in part like HyperCard
00:30:16 because HyperCard had this on event name syntax.
00:30:19 And so that’s why you have in JavaScript on click
00:30:21 run together as the name of the event handler.
00:30:24 And there’s some funny ones on mouse over
00:30:26 and on mouse out, people still complain about those.
00:30:28 But there were many more events now over the years
00:30:31 standardized, but it was a mix of event driven
00:30:33 single threaded programming because it had to run
00:30:36 in the main thread of the browser where the action is
00:30:38 and Java never got there.
00:30:40 Which meant Java could not interact easily
00:30:42 or quickly or in a nested way with the document,
00:30:46 with the objects reflected from the HTML document,
00:30:49 with the tables and forms and so on.
00:30:50 And that is one of the reasons I think JavaScript
00:30:53 survived and Java kind of died.
00:30:55 Java was in this plugin prison.
00:30:56 It essentially was confined to a rectangle,
00:30:58 the applet rectangle.
00:30:59 And while we even built next year,
00:31:02 Nick Thompson, a friend from SGI
00:31:04 who was an intern grad student at CMU at the time,
00:31:08 built the first version of Live Connect
00:31:10 to glue Java and JavaScript together
00:31:12 to deliver on that vision where you do have commerce
00:31:14 between the data types in the heap.
00:31:18 Did it work?
00:31:18 It worked, but Java was in charge.
00:31:21 JavaScript was in charge and Java was just these components,
00:31:23 these helper objects.
00:31:24 You might as well do everything in JavaScript.
00:31:25 What happened over time, it’s like an evolutionary filter.
00:31:27 It just kind of, who needs the plugin?
00:31:29 And in fact, Sun mismanaged Java as a plugin.
00:31:33 They thought, oh, Netscape is giving us
00:31:35 the distribution vehicle and we don’t care about the browser.
00:31:38 It’s just about getting Java out there.
00:31:39 And that was a big miscalculation.
00:31:41 They then tried, because Microsoft’s killing Netscape
00:31:43 after years, they tried getting into Microsoft.
00:31:46 And you may remember there was a Sun Microsoft deal
00:31:48 which famously blew up.
00:31:50 And Microsoft kicked Java out of Windows.
00:31:54 And that’s when they really pulled the trigger.
00:31:56 I think they’d already evaluated it and liked it
00:31:58 on Anders Helzberg’s.NET and C Sharp
00:32:01 and decided we’re gonna just not have Java.
00:32:04 We don’t want any of that Sun stuff.
00:32:06 We don’t want the patent risk.
00:32:07 We don’t want, I’m not sure what all fights were about.
00:32:10 There was some patent angle to it, I think.
00:32:12 And up till then, Microsoft had been using Java components
00:32:16 like in Outlook Web Access,
00:32:19 which had a lot of JavaScript to be a webmail
00:32:21 like Hotmail, like user interface.
00:32:23 They had to call the mail server through HTTP
00:32:27 and they used a Java object to do this.
00:32:31 And when they gave the boot to Sun,
00:32:34 suddenly the left hand gave the boot
00:32:37 and the right hand said, we better do something else
00:32:39 in Outlook Web Access.
00:32:40 What are we gonna do?
00:32:40 And they said, let’s just add an ActiveX component,
00:32:43 which is their own native way of embedding things
00:32:46 in languages and it’ll be what became XML HTTP request,
00:32:51 which is now a web standard for calling asynchronously.
00:32:54 And it’s been replaced by the fetch API
00:32:57 in HTML5 or HTML living document.
00:32:59 But this whole lineage goes back to Java
00:33:02 being successfully the loser and getting kicked out.
00:33:05 And after Microsoft kicked it out, it was a plugin
00:33:07 and you would find it required for like smart card banking
00:33:11 in the Nordic countries where that was mandated by law,
00:33:14 but really didn’t get used much.
00:33:16 Or there were pilots who used it for flight information,
00:33:21 but Flash, which Netscape could have bought,
00:33:24 but fortunately didn’t.
00:33:25 The early days.
00:33:26 Yeah, we would have screwed it up.
00:33:28 What year are we talking about with Flash?
00:33:29 I think after the IPO, so it was probably late 95.
00:33:32 Oh, Flash was around.
00:33:33 Was it Adobe?
00:33:34 No, it wasn’t.
00:33:34 No, it was called Future Splash
00:33:36 and it was these brothers, Jonathan Gay,
00:33:38 I think his name was, and he came knocking
00:33:41 and the marketing guy at Netscape,
00:33:43 who was screening the technology partners
00:33:45 or wannabe acquisitions was brutal
00:33:47 and just everybody wanted to get in on the Netscape,
00:33:50 stock gravy train and he sent them packing
00:33:52 and they ended up selling to Macromedia
00:33:55 and Macromedia was where Flash was created.
00:33:57 And the good thing about Macromedia was
00:33:58 it was a tool company.
00:34:02 So it invested in the best ideas, I think,
00:34:05 which are still somewhat lost to us of Flash,
00:34:08 the timeline, animation has sort of been a mutable function
00:34:12 over time.
00:34:13 They had the tooling around that too,
00:34:14 like they had Dreamweaver, there’s a Flash.
00:34:17 Flash Director, there were a bunch of them.
00:34:18 Yeah, I mean, yeah, that was a great.
00:34:20 Flash Builder was one of the last ones.
00:34:22 These tools were used by real artists
00:34:25 and special effects people and designers.
00:34:27 All the restaurant websites around 2005
00:34:29 were done in Flash, which was,
00:34:32 we were trying to do HTML5 at the same time.
00:34:34 That was the Firefox era.
00:34:35 We were trying to make the web capable enough
00:34:37 you didn’t need Flash, but if you recall,
00:34:39 you go to a restaurant and it’s like,
00:34:41 this is kind of like a game or something.
00:34:42 It’s like a Flash, all the font looks small.
00:34:44 So you didn’t like Flash from the beginning.
00:34:45 You’re like, this doesn’t feel right.
00:34:47 Not really.
00:34:48 I actually admire Flash’s technology
00:34:50 and I’m pretty pragmatic about these things.
00:34:51 And I realized that it doesn’t matter
00:34:54 if your Delta bad hand like JavaScript was a rush job,
00:34:58 or if you have Flash as a plugin
00:35:00 and you can invest in the tools and make it pretty good.
00:35:03 You should make it better for your users
00:35:05 and grow it as best you can.
00:35:07 And what happened with the browser
00:35:08 due to Microsoft’s monopoly abuse
00:35:11 for which they were convicted.
00:35:12 And even after that, until I think Firefox and then Chrome
00:35:17 was people kept saying, oh, the web can’t do X, can’t do Y.
00:35:21 We’ll have to have a plugin.
00:35:22 We’ll have to have a new approach.
00:35:23 We’ll clean the slate and have a new web.
00:35:26 And everyone who said that failed.
00:35:28 And the reason they failed is because
00:35:30 there’s too much value in the web, this huge network.
00:35:34 And the worse is better principle means
00:35:36 that you can not only start bad, which they all sneer at,
00:35:39 but get on first and get wide distribution,
00:35:41 get sort of evolutionary advantage in priority of place,
00:35:47 but you can also improve it over time.
00:35:49 And so if you’re gonna improve Flash,
00:35:51 and for some reason Flash is now out of favor.
00:35:53 Steve Jobs said you can’t have Flash on the iPhone.
00:35:55 That was probably the death knell.
00:35:56 Put your energy into JavaScript.
00:35:58 And that happened, right?
00:35:58 So we did things at Mozilla with Adobe to improve,
00:36:02 which bought my Macromedia, to improve Flash
00:36:04 and to improve the version of JavaScript that was in Flash.
00:36:07 We tried to standardize that.
00:36:09 Oh, that’s right.
00:36:09 I’m getting ahead of myself with it.
00:36:10 It was ES4.
00:36:11 Yeah.
00:36:12 That’s right, that’s right.
00:36:13 Can we just rewind to the magical, like, you know.
00:36:17 It’s a special moment in the history of all of computing.
00:36:20 We’ll talk about it later, but it’s arguable.
00:36:22 It’s possible that the entirety of the world
00:36:25 will run in JavaScript at some point.
00:36:27 So like, it’s like those days,
00:36:30 it would be interesting if you could just describe,
00:36:33 actually zooming in on how the cake was baked
00:36:38 from the several days that you were working on it.
00:36:41 What was on your mind?
00:36:43 How much coffee were you drinking?
00:36:45 Were you nervous?
00:36:46 Why, freaking out?
00:36:47 I’ll try to remember it.
00:36:48 I mean, you’re right.
00:36:49 There are these pregnant moments you see in hindsight,
00:36:50 maybe they’re overrated,
00:36:52 but like Hegel sees Napoleon on horseback at Jena
00:36:55 and says, there’s the world spirit on horse.
00:37:00 And I knew that there was a chance to do it.
00:37:04 Mark knew, and he was my executive sponsor
00:37:07 and he was the one sort of brainstorming
00:37:10 how the JavaScript should be right there in the page.
00:37:13 That was important for him to say that.
00:37:14 Cause I thought so too, but a lot of people were like,
00:37:17 well, you can’t write programming language
00:37:18 in the middle of the markup.
00:37:20 And indeed there are problems.
00:37:21 If you did it naively, you’d see the code laid out
00:37:23 as like random gibberish.
00:37:25 So I had to figure out how to hide that.
00:37:26 That was a challenge.
00:37:28 Is that a breakthrough idea?
00:37:29 I mean, so you and Mark thinking about this idea
00:37:32 that you just inject code in the middle of the markup.
00:37:36 Of the webpage.
00:37:36 I consider kind of heretical.
00:37:38 There was an SGML guru, I forget his name,
00:37:40 but he corresponded with me and at first he was angry.
00:37:42 He’s like, you should have used a marked section.
00:37:44 Why didn’t you use a marked section?
00:37:45 And I said, well, SGML marked sections are not part of HTML
00:37:48 by the way, and they’re not supported in the browser.
00:37:50 And so I did some hack that was equivalent
00:37:52 and over time you could do the proper SGML thing.
00:37:55 But eventually he came around and it was again,
00:37:58 sort of evolutionary necessity.
00:37:59 It was almost like introgression, like the idea
00:38:02 which Lynn Margulies, I think helped get across
00:38:06 that we have to consider mutualism biology
00:38:10 that maybe mitochondria were ancient prokaryotes
00:38:14 that got into the cell and became beneficial.
00:38:17 Somehow the same sort of thinking applies.
00:38:21 You have to embed JavaScript in HTML.
00:38:23 It’s gonna be a good virus.
00:38:24 It won’t hurt you.
00:38:25 The code becomes data in the sense
00:38:27 it just gets carried along.
00:38:30 But is there the side of the, so you were focusing
00:38:33 on Netscape at that time.
00:38:35 Doesn’t the browser have to support interpret correctly
00:38:38 this mix of HTML and whatever code?
00:38:41 I had to hide it from old browsers,
00:38:42 including Netscape 1.1, which was predominant then.
00:38:45 So I used an HTML comment, but the inside the container
00:38:49 that comment lived in the script tag,
00:38:51 which is a new element, I could make different semantics
00:38:53 in Netscape 2 where those HTML comment delimiters
00:38:57 instead of being multi line brackets became one line
00:38:59 or essentially one line.
00:39:00 So you wrote, so JavaScript was written,
00:39:02 the programming language was written as a comment.
00:39:05 A comment for old browsers and a set of brackets
00:39:08 that were ignored with real code for new.
00:39:10 And it was this two way comment hiding hack, as I called it,
00:39:13 that was absolutely necessary for us to get off the ground.
00:39:15 We couldn’t have bootstrapped JavaScript without it.
00:39:17 We didn’t have scripts that were loaded from a separate file.
00:39:20 The only scripts in Netscape 2 were inline in the document.
00:39:22 What were the challenges here?
00:39:24 What, like what, you know, typing,
00:39:27 what were the choices you were thinking about?
00:39:30 What was the design for this garbage collection?
00:39:31 I didn’t have time to write a garbage collector.
00:39:32 So I just, I didn’t at first.
00:39:34 The thing was using essentially arenas
00:39:36 or what GNU calls object pools
00:39:39 and just would run out of memory eventually.
00:39:41 And I added reference counting in a hurry
00:39:43 after the 10 days in which I hacked.
00:39:45 So after I was in the server team doing HTTP 1.1
00:39:48 and thinking about the language,
00:39:49 I finally got transferred to the client team in early May.
00:39:52 And that’s when I, you know, I got the go sign from Mark
00:39:55 and it was like, we can’t wait
00:39:57 because people inside Netscape are doubting.
00:39:59 Even people inside Sun are definitely doubting.
00:40:01 Bill Joy was the champion, but he was like alone in that
00:40:04 in seeing that there was a role for JavaScript
00:40:07 as the, as I call it, the sidekick language,
00:40:10 robbing the boy hostage.
00:40:12 Frank Miller put it in the Dark Knight Returns
00:40:16 that there was this silly little language
00:40:18 that would be the glue language
00:40:19 and it could become important over time.
00:40:20 And you were better off having that complementarity,
00:40:23 that pairing of languages,
00:40:25 just like Microsoft stacked it with visual C plus plus
00:40:28 and visual pacing.
00:40:28 So what was the big moment of I’m done?
00:40:33 So I had to do a demo.
00:40:34 I forget the dates.
00:40:35 I think I, for a history of programming languages paper
00:40:38 that Alan Wiersbrock did with my help,
00:40:40 he did a lot of the writing.
00:40:42 I think it was the 10 days from like Thursday evening
00:40:47 through to the following weeks, you know,
00:40:50 the whole of that week and then into the Monday.
00:40:52 You get sleep?
00:40:53 Not enough.
00:40:54 And I was really going fast
00:40:56 because I had already used a lot of C compiler
00:41:00 and front end compiler knowledge
00:41:02 that I’d gained from undergraduate school.
00:41:04 When I started getting into computing
00:41:07 as a renegade physics major,
00:41:10 people were formalizing more efficient bottom up grammars,
00:41:14 parsers for bottom up languages,
00:41:17 really LALR one was the big thing.
00:41:19 And I studied all this and learned how to parse them.
00:41:22 And in the end, if you’re doing C languages,
00:41:25 you often do what Dennis Ritchie did anyway,
00:41:28 which is the recursive descent parser.
00:41:31 You can hand code it.
00:41:32 And I did that for JavaScript in a blazing hurry,
00:41:36 mostly got it right.
00:41:37 I didn’t have precedence inversion problems or other bugs,
00:41:40 but I copied a lot from Java and C.
00:41:43 And I tried to keep things simple,
00:41:45 like the equality operator in those 10 days sprint
00:41:49 between two objects of different dynamic type said,
00:41:52 no, they’re not equal, their types are different.
00:41:54 And then after that, I had internal early adopters
00:41:57 and they were using JavaScript to match a number
00:42:01 against a database field that had been stringized.
00:42:03 And they said, oh, can we just have implicit conversion?
00:42:06 Like an idiot, I agreed.
00:42:07 I gave them what they wanted.
00:42:08 I was trying to please them and get adoption.
00:42:10 And that broke what equivalence relation
00:42:16 nature there was to the double equal.
00:42:19 There’s some edge cases with not a number
00:42:22 that break that too, but it really broke it.
00:42:25 Having an implicit conversions in the operator
00:42:26 is something that people still roast me over.
00:42:29 So let’s talk about two things.
00:42:31 One, it sounds like the comparison operator,
00:42:34 the equality operator is the thing that you regret.
00:42:38 So maybe you can.
00:42:39 Making it sloppy.
00:42:40 Making it sloppy.
00:42:41 So what is the biggest thing you regret in those 10 days?
00:42:45 And what is the biggest thing you’re proud of?
00:42:47 So that making it sloppy came after the 10 days.
00:42:49 And my lesson there, which I’ve tweeted is
00:42:51 when people come to you saying,
00:42:53 can you please make it sloppy or add this cute feature?
00:42:56 The answer should be no.
00:42:57 And I should have known that
00:42:58 because I think Nicholas Viert, one of my heroes said,
00:43:01 the essence of design is leaving things out.
00:43:04 But during the 10 days, I also, like I said,
00:43:06 I was in such a hurry, I left out garbage collection,
00:43:08 came back to haunt me, but I got reference counting in
00:43:10 in time that people weren’t running out of memory
00:43:13 right away on long lived JavaScript.
00:43:16 What happens when you don’t have garbage collection
00:43:17 and you have objects?
00:43:18 Well, you just run out of memory.
00:43:20 And you know, at first you write a short script
00:43:24 and the page doesn’t last long or it doesn’t do a lot.
00:43:25 It’s okay.
00:43:26 Oh, I see, yeah, yeah.
00:43:27 But if you’re writing a game or something
00:43:28 and you’re doing event based allocation,
00:43:30 you run out of memory.
00:43:31 And this was noticed in the summer of 1985
00:43:34 and people were like, what’s going on?
00:43:35 Oh yeah, I better go back and do reference counting.
00:43:38 And then the problem with reference counting is
00:43:40 you’re writing the language in the runtime in C,
00:43:43 an unsafe language, and if you’re reference counting
00:43:45 and you overflow the counter, you mismanage it
00:43:48 so it goes high, it gets stuck high,
00:43:49 you leak memory again and you run out.
00:43:51 If you underflow it, you pre memory that’s still in use.
00:43:56 And even then we knew what all the security hackers
00:44:00 came to know that you therefore have potentially
00:44:03 a remote code execution vulnerability.
00:44:05 Cause this was before things like non executable
00:44:09 heap memory and staff defenses against taking over memory.
00:44:14 So if you can, from the remote side,
00:44:17 write some HTML and JavaScript that just happens
00:44:19 to exploit a bug in memory safety,
00:44:21 like it causes JavaScript to underflow reference counter.
00:44:24 And the script still has its hands on that object
00:44:27 and it’s trying to call a method on it
00:44:29 and there’s some kind of lookup function table
00:44:30 in the object, but you’ve managed to stuff the heap
00:44:34 with strings that forwards their own lookalike
00:44:37 for the function table.
00:44:39 You can call some other code.
00:44:41 And this was a problem right away.
00:44:43 So security, JavaScript upped the ante.
00:44:46 Java had this problem too, but in its own VM.
00:44:48 And it just was a separate headache for Sun to worry about.
00:44:53 We had this problem in Netscape right away.
00:44:55 So Netscape 2 came out after my 10 days
00:44:58 and after these follow on work to embed JavaScript
00:45:02 better in the browser and to add garbage
00:45:04 or collection through reference counting,
00:45:05 really I call it reference counting and get it shipped.
00:45:09 We had a bunch of dot releases where we fixed
00:45:11 security bugs like maniacs.
00:45:13 But what is the thing you’re, you know,
00:45:16 when you sit back on a porch and just look out
00:45:19 into the sunset, what are you most proud of
00:45:21 from those 10 days?
00:45:21 I think the first class functions shines.
00:45:23 I think especially since Java didn’t have it
00:45:25 and it was somewhat unusual.
00:45:27 Scheme made it in somehow at the end of the day.
00:45:30 In spirit, I mean, people complain because Scheme has,
00:45:33 you know, minimalism.
00:45:34 It has, you know, six or seven special forms.
00:45:37 It has hygienic macros.
00:45:38 It has call CC.
00:45:39 It has sort of a beautiful complete set of forms
00:45:44 to make the land of calculus pleasant to use in practice.
00:45:49 And JavaScript is, you know, kind of a multi paradigm
00:45:54 or shambolic.
00:45:55 Just in a small tangent, you mentioned Mark Andreessen.
00:45:59 It sounds like, and Bill Joy, but staying on Mark,
00:46:03 it sounds like he had an impact on you
00:46:06 in that he sort of believed in what you were doing there.
00:46:09 Can you talk about like what role Mark had in your life?
00:46:11 Yeah, we would meet at the Peninsula Creamery
00:46:15 in downtown Palo Alto.
00:46:17 And Mark was just fresh out of, you know, grad school
00:46:19 or whatever he was doing and he was big dude
00:46:22 and he got fitter later.
00:46:25 He had hair, he would order giant milkshakes and burgers
00:46:28 and we would meet there and brainstorm about what to do.
00:46:31 And it was very direct because we didn’t have much time.
00:46:34 The sort of, we didn’t talk about it.
00:46:36 The implication was Microsoft was coming after us.
00:46:39 Mark was saying things boldly pre IPO
00:46:41 like Netscape plus Java kills Windows, right?
00:46:44 This is, make a browser programmable.
00:46:46 It becomes the new runtime for programs.
00:46:49 It’s the meta OS or it’s the replacement OS.
00:46:52 But he still saw value in JavaScript.
00:46:54 Yes, even though he was saying that
00:46:56 and Java was the big name, hence the trademark license,
00:46:59 he saw JavaScript as important.
00:47:01 And he even thought, what if we got,
00:47:03 I told this in other interviews, I can say it.
00:47:05 He thought, what if we had my friend Kip Hickman
00:47:07 who’d been at Netscape from the beginning
00:47:09 and who was a kernel hacker at SGI when I joined,
00:47:13 he’d started writing his own JVM
00:47:14 before we consummated the Sun deal
00:47:16 and got our hands on their code.
00:47:17 And the Java compiler, Java C,
00:47:20 which Arthur Van Hoff had written very nice code,
00:47:23 was all written in Java.
00:47:24 It was self hosted or so called bootstrap.
00:47:26 And so we could use that as soon as Kip’s Java VM
00:47:29 could run the bytecode from the Sun JVM
00:47:34 running the self hosted compiler to emit the bytecode.
00:47:37 So once we could bootstrap into Kip’s VM,
00:47:39 we wouldn’t need Sun.
00:47:40 And Mark was like, well, maybe we can just ditch Sun.
00:47:44 Well, if Kip’s Java VM, or if you’re a JavaScript VM,
00:47:47 now we need graphics.
00:47:48 So Mark was thinking far ahead
00:47:49 because he knew you could do things with HTML and images,
00:47:53 but at some point you really want.
00:47:54 Like dynamic graphics or three dimensional?
00:47:57 Even SGI had already started its downfall
00:47:59 because the first floor VLSI team there
00:48:02 had gone off to do 3D effects
00:48:04 and all these other companies
00:48:05 that made the graphics card on your PC, right?
00:48:07 Doom was big and Quake.
00:48:09 And so you were, we were all playing Quake.
00:48:10 I was old, so I was terrible.
00:48:12 But why not put that graphics capability on the web?
00:48:16 And in fact, it finally happened at Mozilla
00:48:18 with Firefox era with Vlad Vukicovic
00:48:21 taking OpenGL ES and reflecting it as WebGL.
00:48:24 But OpenGL ES is the mobile version of OpenGL,
00:48:28 which is a standard based on SGI GL.
00:48:30 So this whole lineage of graphics libraries
00:48:32 or really graphics languages for what became the GPU.
00:48:36 And Mark was thinking ahead.
00:48:37 He’s like, we need graphics too.
00:48:38 And I thought, okay, I can try to get somebody I knew at SGI,
00:48:40 but he’s a grad student at MIT.
00:48:42 He was studying under Barbara Liskov.
00:48:44 He laughed when he heard about this later, Andrew Myers.
00:48:46 He’s at Cornell, long time, I think he’s a full professor.
00:48:50 And Mark said, great, we’ll get him.
00:48:52 I’m not sure he’s gonna come.
00:48:53 We’ll throw money, we’ll stock options.
00:48:55 We never did it.
00:48:56 And they did the Sun deal.
00:48:57 So Kip Nobly put aside his own JVM
00:49:00 and we used the Sun JVM.
00:49:02 So that was an ambitious period.
00:49:04 And Mark was very generative because he was pushing hard.
00:49:06 He was ambitious and he wanted to have Netscape
00:49:11 possibly be in control of the ball.
00:49:13 Maybe you can speak to this dance
00:49:16 of Netscape versus Internet Explorer.
00:49:20 You’ve thrown some loving words towards Microsoft
00:49:25 throughout this conversation,
00:49:26 but that’s a theme with, I mean, Steve Jobs
00:49:29 has a similar sort of commentary.
00:49:31 From a big sort of philosophical principle perspective,
00:49:34 can you comment on like the approach
00:49:36 that Microsoft has taken with Internet Explorer
00:49:39 from IE1 to Edge today?
00:49:42 Is there something that you see as valuable
00:49:45 that they’re doing in the occasional copying
00:49:48 and that kind of stuff?
00:49:49 Or is it, is the world worse off
00:49:53 because Internet Explorer exists?
00:49:55 So I’m gonna segment this into historical areas
00:49:57 because I think Microsoft today with Satya
00:49:59 is quite a different company
00:50:00 and what they’re doing with Edge is different.
00:50:02 But back then, Gates, aggressive character,
00:50:06 not really original in my view, not an originator.
00:50:09 Steve Jobs famously said once,
00:50:11 he doesn’t have any taste
00:50:12 and I don’t mean this in a small way, he has no taste.
00:50:15 You can see this, Apple at the time had beautiful typography
00:50:19 and ligatures and kerning and the fonts looked great.
00:50:22 And Windows had this sort of ugly system font
00:50:25 that was carefully aligned with Pixel
00:50:26 so it didn’t get anything.
00:50:28 What is it?
00:50:29 I’m sorry to keep interrupting,
00:50:30 but why was Internet Explorer winning
00:50:32 throughout the history of these competitions?
00:50:34 Distribution.
00:50:35 Distribution matters more than anything.
00:50:36 And this is why even now we’re seeing
00:50:39 in the browser wars Edge doing better
00:50:41 because it’s being foisted on people of Windows.
00:50:43 We have Windows 10 boxes at home.
00:50:45 We have some Windows 7 boxes or laptops we keep running to
00:50:48 because we don’t connect them to the internet generally.
00:50:50 But once you have that operating system to hold,
00:50:55 you can force Edge.
00:50:57 And Apple did it with Safari too.
00:50:59 It’s not unique to Microsoft.
00:51:01 That’s sad.
00:51:02 But distribution matters.
00:51:03 And that’s why I think IE was going to win.
00:51:07 That’s why everybody at Netscape felt we’re doomed.
00:51:09 This was something Michael Toy and Jamie Woodson were doomed.
00:51:12 But for a while there we had a chance
00:51:14 and we innovated in Netscape too.
00:51:16 We did a big platform push, Java and JavaScript
00:51:18 and plugins, more plugins and more HTML table features.
00:51:23 And really started making a programmable stack
00:51:28 out of what were pretty static web languages.
00:51:30 And even in the beta releases of Netscape,
00:51:33 two people were using JavaScript
00:51:34 to build what you would call single page applications
00:51:36 like Gmail.
00:51:37 And they were using JavaScript locally to compute things
00:51:40 and to call the server on a hidden frame in the background.
00:51:43 So it was prefiguring a lot of what came later as AJAX
00:51:46 or dynamic JavaScript, dynamic HTML.
00:51:48 So people saw that, I mean.
00:51:49 Even then they saw it, yeah.
00:51:50 That’s kind of, I don’t know.
00:51:52 But from my perspective, that seems quite brilliant.
00:51:55 It seems like really innovative
00:51:56 that you would have code run in the browser.
00:51:59 It did impress me with something
00:52:01 which I learned later about from Eric Von Hippel of MIT,
00:52:04 which is user innovation networks, lead user effects.
00:52:07 That throwing out JavaScript,
00:52:09 even though we weren’t doing open source,
00:52:10 we were doing beta releases early
00:52:12 and permissively with Netscape.
00:52:14 Getting early developer feedback, absolutely critical.
00:52:17 I loved it.
00:52:18 I did some of that with SGI
00:52:19 with some of the products I worked on,
00:52:20 but it really came to the fore in Netscape.
00:52:21 And that culminated in Mozilla
00:52:23 where you’re dealing with developers all the time
00:52:25 and early adopters, lead users.
00:52:27 But the lead users helped improve JavaScript,
00:52:29 even in those last few betas
00:52:31 where I could hardly change things.
00:52:32 I was under pretty rigid change control.
00:52:34 So we’re talking about just a small collection
00:52:36 of individuals that are just like upfront.
00:52:38 A guy named Bill Dorch.
00:52:39 You can find his work in the web archives,
00:52:40 still from 1996.
00:52:41 It’s a single page application.
00:52:43 It’s an artist gallery of mountain art.
00:52:46 He used JavaScript?
00:52:47 It doesn’t quite work.
00:52:48 He uses JavaScript locally.
00:52:48 He uses a local database.
00:52:50 What you would think of now is JSON,
00:52:52 but it’s all pure JavaScript code,
00:52:54 a bunch of objects being constructed.
00:52:55 That’s so cool.
00:52:57 So how is, if you can do sort of a big sweeping progress
00:53:02 of JavaScript, how has JavaScript changed over the years?
00:53:05 Any of you from those early 10 days
00:53:07 with a quick addition of garbage collection
00:53:09 and fixes around security,
00:53:11 how has this evolution that now it’s taken over the world?
00:53:14 In this, it’s been a bumpy ride
00:53:16 because the standards body got shut down after Microsoft,
00:53:19 I think, took over the web and then felt punished
00:53:22 by the USB Microsoft antitrust case.
00:53:25 Can you speak to the standard body?
00:53:27 That was a fun ride too
00:53:28 because Netscape had taken the lead
00:53:30 with the web and HTML innovations
00:53:34 like frames and framesets tables.
00:53:36 And the W3C was sort of off even then,
00:53:39 sort of in SGML land heading toward XML, la la land.
00:53:43 I’m gonna be a little harsh on it.
00:53:44 What’s SGML?
00:53:45 I’m sorry.
00:53:46 SGML was the precursor markup language to HTML.
00:53:48 It was sort of the more extensible standards,
00:53:52 generalized markup language.
00:53:54 It was a…
00:53:54 XML like…
00:53:55 Pointy brackets, but it had all sorts of elaborate syntax
00:53:58 for doing different semantics.
00:54:00 And this is why I think TBL and others
00:54:03 who wanted to do the semantic web then took XML forward,
00:54:08 but they had this, or some of them anyway,
00:54:10 had this strange idea they could replace the web with XML
00:54:12 or that they would upgrade the web to be XML.
00:54:15 And it couldn’t be done.
00:54:17 Worse is better had concrete meaning.
00:54:19 The web was very forgiving of HTML,
00:54:22 including sort of minor syntax errors
00:54:25 that could be error corrected.
00:54:26 Like error correction isn’t generally done
00:54:28 in programming languages because…
00:54:29 That’s another amazing thing about HTML is like,
00:54:32 it’s more like biology than programming.
00:54:35 Exactly.
00:54:35 And so XML was in its standard form super strict
00:54:40 and could never have admitted the kind of users
00:54:43 who were committing these errors.
00:54:44 And the funniest part was Microsoft said,
00:54:46 hey, we’re doing XML,
00:54:47 but the way they put it in Internet Explorer
00:54:49 under the default media type,
00:54:51 put it through the HTML error corrector.
00:54:53 Oh, wow.
00:54:54 So they kind of bastardized it to make it popular
00:54:57 and usable and accessible.
00:54:58 And so XML as a pure thing was never gonna take over.
00:55:04 And what W3C was kind of not fully functional
00:55:07 because Netscape wasn’t cooperating with them.
00:55:09 We thought about where to take JavaScript
00:55:11 and we realized our standards,
00:55:12 Guru Kargal realized there was a European standards body
00:55:17 that had already given Microsoft fits
00:55:18 by standardizing parts of the Windows 3.1 API,
00:55:22 which European governments insisted on.
00:55:24 They said, Microsoft, we can’t use your operating system
00:55:26 without some standards.
00:55:27 And Microsoft said, here’s our docs.
00:55:29 And the government said, no, we need a European standard.
00:55:32 So this body called
00:55:33 the European Computer Manufacturers Association, ECMA,
00:55:37 which eventually became global
00:55:38 and became a proper noun instead of an acronym.
00:55:40 Right, it’s just one capital E now with a lowercase CMA.
00:55:44 Right, and as one of the early Microsoft guys I met
00:55:47 when we first convened a working group
00:55:50 to talk about JavaScript said,
00:55:51 it sounds like a skin disease.
00:55:53 But it gave, I mean, maybe you’ll speak to that,
00:55:56 but it gave the name to JavaScript of ECMA script.
00:55:58 That was the standard name
00:55:59 because Java was a trademark of Suns.
00:56:02 They were so aggressive,
00:56:03 they were sending cease and desist letters
00:56:05 to people whose middle European heritage
00:56:08 meant their surname was Javanko
00:56:10 and they called their website javanko.com
00:56:12 and Sunwood sent them a letter saying,
00:56:14 you’re using J A V A at the start of your domain name,
00:56:16 you must cease and desist.
00:56:18 I love marketing more than anything else in this world.
00:56:22 So ECMA script and now is popularly named as ES plus version.
00:56:27 I would say people use JS more than anything.
00:56:29 People still say JavaScript.
00:56:31 JavaScript is in all the books.
00:56:32 So I mean, when you’re referring to it,
00:56:33 it’s usually JavaScript.
00:56:34 And when you wanna refer to a version of JavaScript,
00:56:37 you’ll say ES6, ES5.
00:56:39 Yes, or now they’ve gone to years,
00:56:40 which is kind of confusing
00:56:41 because it’s an offset of 2009, ES6, ES 2016.
00:56:50 Yeah, it doesn’t match the years perfectly.
00:56:52 Yeah, so what were the choices made
00:56:55 and how did JavaScript evolve here?
00:56:58 So we took this new standards body,
00:57:01 which we thought sort of a proven record
00:57:04 of standing up to Microsoft,
00:57:05 but Microsoft sent a lot of people.
00:57:07 They sent some people who were pretty good.
00:57:10 And then when they realized that I was there
00:57:12 and Netscape was not gonna just bend over
00:57:15 and do whatever they wanted,
00:57:16 they sent somebody really good.
00:57:17 And he was a smart guy.
00:57:18 He did a lot of the work on the first draft of the spec.
00:57:21 Sean Katzenberger, he’s left Microsoft.
00:57:22 He even did what I sort of did.
00:57:25 He told his bosses, stop bugging me to do other things.
00:57:28 I’m focused on this.
00:57:28 Cause it took a lot of focused work
00:57:30 to create the first draft of the spec.
00:57:31 And I was still holding,
00:57:33 I was spending almost all the plates.
00:57:34 I had like part time help in certain areas.
00:57:37 And on the front end integrations,
00:57:38 I had the front end guys.
00:57:40 But I couldn’t take as much time as Sean was
00:57:42 to write the draft spec,
00:57:43 but I had to participate
00:57:44 because I was essentially helping write down
00:57:46 what the language did
00:57:48 and in areas where we didn’t like what it did
00:57:50 and Microsoft didn’t agree,
00:57:51 we sometimes got away with slight changes.
00:57:54 And that’s the story of standards.
00:57:55 You have different implementations
00:57:58 and depending on their market power,
00:57:59 they interoperate where you have agreement
00:58:01 and where they don’t,
00:58:02 the dominant one usually sets the de facto standard.
00:58:05 And then you should probably reflect that
00:58:07 into the de jure standard.
00:58:09 And this happened with JavaScript.
00:58:11 Over time, as Netscape went down and Microsoft went up,
00:58:14 we did the first edition of the standard codified in 1997
00:58:18 in France, we had a trip to Nice, which was very memorable.
00:58:22 For any interesting reason or just because it’s Nice?
00:58:24 And ECMA’s European and IBM and others were there.
00:58:28 Mike Kalashaw, an IBM fellow was a British.
00:58:31 And the guy who ran ECMA at the time, Jan van der Bell,
00:58:35 was quite a raconteur and a very fun guy.
00:58:39 And he had us out for, you know, the great,
00:58:41 you know, Fui de mer, the bouillabaisse and the…
00:58:43 Was the standardization process beautiful or painful
00:58:46 that those early days, you as a designer of the language?
00:58:48 It was painful because it was rushed.
00:58:50 Now, Guy Steele was contributed by Sun.
00:58:52 So even more than Sean,
00:58:53 you had this giant brain Guy Steele helping,
00:58:55 bringing some of that scheme magic.
00:58:57 And he even brought Richard Gabriel for funding.
00:58:59 Richard wrote the fourth clause of the ECMA standard,
00:59:02 which was kind of an intro to what JavaScript’s all about.
00:59:05 So we had some really good people
00:59:07 and we didn’t fight too much.
00:59:09 There was some tension where I was fixing bugs
00:59:11 and I was late to a meeting and Sean Katzenberger,
00:59:13 Microsoft, was actually mad.
00:59:15 Like, where is he?
00:59:15 We need him.
00:59:16 And when I got there,
00:59:18 I saw that only he saw this sort of off by one bug
00:59:21 in somewhere in the spec.
00:59:22 And then I saw it too.
00:59:24 And I said, there’s a fence post bug there.
00:59:25 And then we kind of locked eyes
00:59:27 and we realized we were on the same page.
00:59:28 And we kind of, he wasn’t mad anymore.
00:59:30 What were the features that are being struggled over
00:59:33 and debated and thought about?
00:59:35 It was mainly writing down what worked
00:59:36 and what we thought should work in the edge cases
00:59:38 that didn’t interoperate or that seemed wrong.
00:59:41 But we were already laying the groundwork
00:59:43 for the future additions that I was already implementing.
00:59:46 I was still trying to lead the standard
00:59:48 by using the dominant market power
00:59:50 to write the code that actually shipped.
00:59:52 So the de facto standard would lead the de jure standard.
00:59:54 And I was putting in the missing function forms
00:59:58 that I didn’t have time for in the 10 days.
01:00:00 So this is the engineering mindset versus the theoretician.
01:00:03 So you didn’t want to create the perfect language,
01:00:05 but one that was the popular and shipped
01:00:06 and all that kind of stuff.
01:00:07 And you could say there was,
01:00:08 I was standing on the shoulders of giants.
01:00:09 So there was a staged process
01:00:11 where I had to hold back things
01:00:12 that were well designed by others in other languages
01:00:15 and I could imitate,
01:00:17 but I couldn’t do them all in the 10 days.
01:00:18 So they came in 1996 and 97,
01:00:22 and they came into the third edition of the standard,
01:00:25 which was final finalized in 1999.
01:00:27 But at that point,
01:00:28 Netscape had been sold to AOL
01:00:31 which was a decent exit considering
01:00:33 and had previously been mercilessly crushed.
01:00:37 Netscape was selling the browser along with server software
01:00:40 that it had acquired after its IPO
01:00:42 and Microsoft was just underpricing it.
01:00:44 So there was no way to compete with that.
01:00:47 Microsoft was also making Internet Explorer
01:00:51 the default browser in Windows,
01:00:53 which is called tying and antitrust law.
01:00:55 And they were doing even more brutal things.
01:00:57 There was a famous investor.
01:00:59 He did very well on Google.
01:01:00 So he’s a billionaire, Ramshree Ram,
01:01:01 and he was sales guy or head of sales at Netscape.
01:01:04 And he got off the phone looking ashen faced
01:01:07 after a compact called and said,
01:01:10 Microsoft just told us they’re gonna pull
01:01:12 our Windows license if we ship Netscape
01:01:13 as the default browser.
01:01:15 Wow.
01:01:15 So there is some bullying going on.
01:01:17 It was totally immaterial in the antitrust case.
01:01:19 But JavaScript escaped into the standard setting
01:01:23 where there was fairly good cooperation.
01:01:24 Microsoft had a really good guy on it
01:01:26 and Guy Steele was there for a time
01:01:29 and there was some good work.
01:01:30 But after the antitrust case
01:01:33 and Netscape kind of dissolving into AOL
01:01:37 and not really going anywhere quickly,
01:01:38 Mozilla took years to really bring up,
01:01:42 the standard froze.
01:01:43 And by 2003, even though they’d been sort of noodling around
01:01:46 with advanced versions, JavaScript 2,
01:01:48 I’d given the keys to the kingdom
01:01:50 to another MIT grad, Baltimore Horwatt.
01:01:53 Very big brain and still at Google, I think.
01:01:54 He won the Putnam in 86
01:01:56 and he’s very mathematical.
01:01:58 Legit.
01:01:59 He designed this successor language, JavaScript 2,
01:02:02 but it only showed up in mutated form
01:02:06 in Microsoft’s ASP.NET server side
01:02:09 and it didn’t last there.
01:02:11 And it showed up in Flash
01:02:12 and that’s what became ActionScript 3.
01:02:14 Ah, ActionScript, interesting.
01:02:16 And then Flash of course declined.
01:02:18 And so how did we arrive at ES6
01:02:21 where it’s like there’s so many,
01:02:24 where everyone, okay, there’s this history of JavaScript
01:02:27 that people were, it was just like cool
01:02:29 when you’re like having beers to talk crap about JavaScript.
01:02:32 Everyone loves to hate,
01:02:33 like people who are married say, ah, marriage sucks,
01:02:36 is they just wanna get, let off some steam
01:02:38 even though everyone uses the language.
01:02:40 But ES6, it’s become this like reputable,
01:02:45 like it fixed major pain points, I think.
01:02:49 It added things to the language
01:02:50 and added something that was already ES5 strict mode,
01:02:53 but made it implicit in class bodies and module bodies.
01:02:57 It was a big jump,
01:02:58 but it accumulated some of the ES4 designs
01:03:01 that we’d done with Adobe
01:03:03 for what we hoped would be the fourth edition of ECMAScript
01:03:07 that were supposed to fold in some of these old JavaScript 2
01:03:10 ideas that had come into ActionScript 3.
01:03:13 So you look at the family tree and you see these forks
01:03:15 and the main ones are the ones that go into Adobe Flash
01:03:20 acquired from Macromedia
01:03:21 and the one that went into the service side
01:03:23 of Microsoft’s stack, which kind of died.
01:03:27 And then trying to bring them back into the standard
01:03:28 and not quite succeeding, ES4 was mothballed,
01:03:32 but all the good parts that everyone liked made it into ES6.
01:03:35 And so that was a success.
01:03:37 And I said earlier, I had the wrong year,
01:03:38 I think it’s 2015, so it’s off by.
01:03:40 Four, ES6.
01:03:42 Yeah, it was finalized in 2015.
01:03:44 It took a little longer than we hoped,
01:03:45 but because ES5 was 2009
01:03:48 and that was a smaller increment from ES3.
01:03:51 We skipped four again, we mothballed it.
01:03:53 And we had a split in the committee where some people said,
01:03:56 ES4 is too big, we’re gonna work on incremental improvements,
01:03:59 no new syntax in particular, they promised.
01:04:02 Not quite true, but they added a bunch of interesting APIs,
01:04:06 Alan Wiersbrock, my coauthor of the Hobble paper.
01:04:09 And he was at Microsoft at the time.
01:04:11 I ended up hiring with Mozilla.
01:04:12 He wanted to get to Mozilla and keep doing
01:04:16 his sort of editor job of the JavaScript standard,
01:04:19 ECMAScript.
01:04:21 And when we got ES6 done, it was a little late, 2015,
01:04:25 and we switched to year numbers.
01:04:27 So people still call it ES6, I call it ES6.
01:04:30 But if you remember, off by nine plus 2000.
01:04:33 Yeah, I mean, ES6 is such a big job.
01:04:35 I mean, like you said, there’s a third that connects all of it,
01:04:38 but ES6 is when it became this language
01:04:41 that almost feels ready to take over the world completely.
01:04:45 More programming and the large features,
01:04:46 more features you need for larger teams.
01:04:49 Software engineering.
01:04:50 Microsoft did something smart, too.
01:04:52 Anders and company, Luke Hoban, who’s left Microsoft,
01:04:56 also did TypeScript.
01:04:57 And they realized something, I think,
01:05:00 that Gilad Barak has also popularized,
01:05:02 and he was involved in Dart at Google.
01:05:05 If you, don’t worry about soundness in the type system.
01:05:08 You don’t try to enforce the type checks
01:05:10 at runtime in particular.
01:05:11 Just use it as sort of a warning system,
01:05:13 a tool time type system.
01:05:15 You can still have a lot of value for developers,
01:05:17 especially in large projects.
01:05:19 So TypeScript’s been a roaring success for Microsoft.
01:05:21 What do you think about TypeScript?
01:05:24 Is it adding confusion, or is it ultimately beneficial?
01:05:27 I think it’s beneficial.
01:05:28 Now, it’s technically a superset of JavaScript,
01:05:30 so of course I love it, right?
01:05:33 The shortest JavaScript program
01:05:35 is still a TypeScript program.
01:05:36 Any JavaScript program is a TypeScript program,
01:05:38 which is brilliant,
01:05:39 because then you can start incrementally adding
01:05:40 type annotations, getting warnings,
01:05:43 learning how to use them.
01:05:44 Microsoft’s had to kind of look around corners
01:05:47 at the standards body and guess how their version of modules
01:05:50 or decorators should work.
01:05:52 And the standards body then may change things a bit.
01:05:55 So I think they’re obligated with TypeScript
01:05:57 either to carry their own version
01:05:59 or to bring it back with incompatible changes
01:06:01 towards the standard over time.
01:06:03 And I think they’ve played generally fair there.
01:06:05 There’s some sentiment that,
01:06:06 why don’t they standardize TypeScript?
01:06:07 Well, they’ve been clear they don’t want to.
01:06:09 They have a proprietary investment, it’s valuable.
01:06:11 They have control of the ball.
01:06:13 And in some ways, you can say the same thing
01:06:15 to any of the other big companies in the standards body.
01:06:18 Why doesn’t Google standardize its stuff?
01:06:20 So you think it’ll continue being
01:06:22 like a kind of dance partner to JavaScript,
01:06:24 to the base JavaScript?
01:06:25 There’s a hope that at some point,
01:06:27 if they keep reconverging it and the standard
01:06:29 doesn’t break them and goes in a good direction,
01:06:32 we will get at least the annotation syntax
01:06:34 and some semantics around them.
01:06:37 Because when you’re talking about type annotations,
01:06:39 they’re generally on parameters and return values
01:06:42 and variable declarations.
01:06:43 They’re cast operators.
01:06:45 You want that syntax to be reserved
01:06:47 and you want it to work the same in all engines.
01:06:49 And this is where ideas like Gilad’s
01:06:51 pluggable type systems might be good,
01:06:54 though then you could create the same problem
01:06:55 you have with Lisp and Scheme,
01:06:56 where there’s a bunch of macro libraries
01:06:58 and they don’t agree and you have conflicts between them.
01:07:01 But pluggable type systems could be one way to standardize.
01:07:04 What do you think about the giant ecosystem
01:07:07 of frameworks in JavaScript?
01:07:09 It feels like, because, I mean,
01:07:12 this is a side effect of how many people use JavaScript,
01:07:16 a lot of entrepreneurial spirit
01:07:19 create their own JavaScript frameworks
01:07:22 and they’re actually awesome in all different ways.
01:07:27 And this is an interesting question
01:07:31 about almost like philosophically
01:07:33 about biological system and evolution,
01:07:35 all that kind of stuff.
01:07:36 Do you see that as good or should it like,
01:07:38 should some of them die out quicker?
01:07:40 I think maybe they should, now jQuery was a very clever
01:07:44 thing, John Resig made this library
01:07:45 that was sort of query and do
01:07:47 and blended sort of CSS selector syntax
01:07:49 with JavaScript sort of object graph or DOM querying
01:07:53 and made it very easy for people to do things
01:07:54 almost like they were learning jQuery as its own language,
01:07:57 domain specific language.
01:07:58 And that I think reflected in part the difficulty
01:08:03 of using the document object model,
01:08:04 these APIs that were originally designed in the 90s
01:08:07 for Java as well as JavaScript.
01:08:08 They’re very object oriented or even procedural.
01:08:11 They’re very kind of verbose.
01:08:13 And it took like a constructor call
01:08:15 and three different, you know, hokey pokey dances
01:08:17 to do something where as in jQuery, it’s just one line.
01:08:20 Right, so that fed back finally into the standards.
01:08:24 It didn’t mean we standardized jQuery.
01:08:25 It wasn’t quite that concise,
01:08:27 but you find now with the modern standards
01:08:29 that we were working on in the HTML5 sort of effort
01:08:34 that things became simpler, the fetch API
01:08:37 and the query selector API, document.querySelector.
01:08:40 A lot of things can be done now in raw JavaScript
01:08:42 that you would make more concise and terse in jQuery,
01:08:46 but it’s not bad.
01:08:47 It’s pretty good.
01:08:48 Whereas in the old DOM of 15 years ago,
01:08:51 it was just too verbose.
01:08:51 So maybe the frameworks were born kind of
01:08:55 because JavaScript lacks some of the features of jQuery.
01:08:59 And so like now that JavaScript is swallowing
01:09:02 what jQuery was, then the frameworks will,
01:09:05 only the ones that truly add value will stick around
01:09:07 and the other ones will die out.
01:09:08 And that highlights this also this division
01:09:10 between the core language JavaScript,
01:09:12 which can show up in other places
01:09:13 like Node.js on the server side
01:09:15 and the browser specific APIs
01:09:17 or the document object model APIs,
01:09:19 which are even managed by the W3C,
01:09:21 the standards body that was off in XML La La Land
01:09:24 when we were doing real JavaScript standards in ECMA.
01:09:26 And you have this division of labor,
01:09:30 division of responsibility and division of style
01:09:33 and sort of aesthetics and also speed.
01:09:37 So the document object model really stagnated
01:09:39 after Microsoft kind of deinvested in the web.
01:09:43 And Microsoft did something in their haste
01:09:45 in the spirit of Netscape,
01:09:46 doing things quickly and getting on first called DHTML.
01:09:49 And some of their innovations
01:09:51 that were like an alternative document object model
01:09:53 didn’t really get standardized until HTML5
01:09:56 when we pragmatists at Opera at the time,
01:10:00 Ian Hickson who went to Google,
01:10:01 Apple and Mozilla said let’s,
01:10:05 XML is not gonna replace HTML, HTML4 is too old.
01:10:08 Let’s standardize HTML5 based on all this good stuff
01:10:12 including that DHTML variant dynamic HTML5.
01:10:14 HTML5, it feels like to me, maybe you can correct me,
01:10:18 like a beautiful piece of design work.
01:10:21 It was, it’s not often with web stuff,
01:10:24 you have this breath of just like,
01:10:27 oh, whoever did this is, it just feels good.
01:10:31 Is that, what are your thoughts about HTML?
01:10:33 Is the, am I being too romantic?
01:10:35 A little bit, a little bit.
01:10:36 Are there flaws, fundamental flaws to it
01:10:38 that I’m just not aware of?
01:10:40 My old friend Hixie did a great job.
01:10:42 He was another renegade physics student.
01:10:45 And he was basically a QA guy at Opera
01:10:47 but he obviously trained physics student
01:10:52 and someone who could write British
01:10:54 or he developed test suites
01:10:57 and he started thinking about them more axiomatically.
01:11:00 Now this is, this can be good
01:11:02 because you can sort of systematize
01:11:03 in a way that makes a better HTML
01:11:06 or you can get caught in the pragmatism of saying,
01:11:08 well, we have to handle all of these edge cases
01:11:09 so we’re just gonna have sort of a test matrix.
01:11:12 And if the matrix is large,
01:11:13 it will not be beautiful by many people’s lights.
01:11:15 Everyone likes to minimize along their preferred dimensions,
01:11:19 the seven special forms and scheme or whatever.
01:11:21 But reality is HTML needs to be big.
01:11:27 It’s kind of shambolic, it’s a creative multi paradigm.
01:11:30 And Hixie did a good job, I would say, with a bunch of it.
01:11:34 Other people came in in the spirit of Ian Hickson
01:11:36 to do HTML5 work and they’ve carried on that effort.
01:11:40 And so it’s a mix of pragmatism,
01:11:42 de facto standards from the past being sort of combined
01:11:46 or written down for the first time
01:11:47 and then rethought in a way that has a simpler syntax,
01:11:50 like the fetch API instead of XML HTTP request.
01:11:54 This video too as well, it ultimately,
01:11:56 it feels like maybe you can correct me,
01:11:58 it feels like it was the nail in the coffin of Flash.
01:12:01 Steve Jobs saying no Flash on the iPhone,
01:12:03 in my opinion, was the actual sting through the heart.
01:12:05 But, well, I’m not sure what trope you wanna use.
01:12:09 Flash was a zombie until just this year, right?
01:12:12 Or last year, I think last year
01:12:13 was the end of Flash in main browsers.
01:12:16 But Jobs really did the death blow.
01:12:18 And yeah, you’re right, we had to make HTML5 competitive.
01:12:23 I still don’t think we got
01:12:23 that beautiful timeline animation.
01:12:26 The timeline thing, so you like the time.
01:12:28 I mean, me from, I used to animate
01:12:31 all kinds of stuff inside Flash,
01:12:32 plus there’s a programming element.
01:12:34 It was a little bit, I don’t know if you can comment on that,
01:12:38 but to me, it was a little bit like go to statement,
01:12:40 like in a sense that it was a little bit too chaotic.
01:12:44 Like it didn’t, that OCD part of me as a programmer
01:12:48 wasn’t satisfied by Flash.
01:12:50 It feels like there was bugs that were introduced
01:12:52 through the animation process that I couldn’t debug easily.
01:12:55 Yes, I heard that too.
01:12:56 I didn’t use it,
01:12:57 so I’m doing the grass is greener thing here.
01:12:59 The thing I liked about the animation model
01:13:02 was that it was this immutable function of time.
01:13:03 So you could time warp and you could,
01:13:06 if you dodged these bugs or worked carefully,
01:13:08 you could really make it sing in ways
01:13:09 that I think still a little challenging
01:13:11 with the web animation standards.
01:13:14 But, or just using raw canvas and WebGL.
01:13:18 But there’s so many tools now that maybe it doesn’t matter.
01:13:20 And yet we had to do video,
01:13:23 we had to do WebGL and then evolve it.
01:13:27 We had to do web audio.
01:13:30 But once we did all these things that helped Flash die,
01:13:34 thanks to Steve Gubbs,
01:13:35 we had something that people didn’t realize.
01:13:39 We had that vision that Market Vision had,
01:13:41 this graphics capable to the metal portable runtime.
01:13:46 And we at Mozilla realized this
01:13:49 and we saw JavaScript was something
01:13:52 that you could compile to.
01:13:53 Adobe had somebody in the Adobe Labs doing this too.
01:13:55 He had a project called Alchemy.
01:13:57 We had somebody who’s now Google,
01:13:59 Alon Zakai, who did his own LLVM based compiler
01:14:03 that would take C or C++ and it would emit JavaScript.
01:14:06 And you would think this is crazy.
01:14:07 You’re going from this sort of machine types,
01:14:09 low level, controlled memory allocation language
01:14:13 to this garbage collected, dynamically typed,
01:14:16 high level, higher level language.
01:14:18 But Alon sort of just phenomenologically carved nature
01:14:22 of the joint and found the forms
01:14:23 that were fast in JavaScript.
01:14:25 And then with Dave Herman,
01:14:27 who I’d recruited from Northeastern University,
01:14:29 who was a type theorist,
01:14:31 and Luke Wagner, who’s still at Mozilla,
01:14:33 who was the compiler guy and the JIT guy,
01:14:36 they figured out how to codify what Alon had done
01:14:40 into a typed subset of JavaScript called Asm.js.
01:14:44 And this is a strange thing to think about
01:14:45 because it doesn’t have new syntax.
01:14:47 The types are casts that occur in dominator positions
01:14:52 in the control flow graph.
01:14:54 So it’s like a hack on JavaScript and it’s a subset
01:14:56 and it uses those bitwise operators
01:14:58 that I talked about copying from Java
01:15:00 to basically cast numeric types,
01:15:04 which are double position flowing point, into integers.
01:15:06 And so inside JavaScript, in the kernel semantics,
01:15:10 are integers.
01:15:11 And if you use these operators,
01:15:13 if a compiler emits them in the right places,
01:15:15 you can then treat them as typed values,
01:15:18 typed memory locations, and you can type check your program.
01:15:22 You can not only type check it, you can compile it.
01:15:24 And this is all in sort of linear time, Alon.
01:15:27 You can compile it to have deterministic performance.
01:15:30 It doesn’t touch the garbage collector.
01:15:32 It calls a bunch of functions that come from the C functions
01:15:35 or C++ code that you’re compiling.
01:15:37 And you can make the Epic Unreal Engine
01:15:40 go in 30 frames a second.
01:15:43 And when we did this in 2013 in the fall,
01:15:46 Tim Sweeney and I didn’t think it could be done quickly.
01:15:50 Thought it would take years.
01:15:51 And the team went to Raleigh, to Epic,
01:15:54 and in four days they had Unreal Engine ported
01:15:57 by pressing a compile button.
01:15:59 But they had to have WebGL,
01:16:01 which came from OpenGL.
01:16:03 Yes, it came to OpenGL, which came from Silicon Graphics GL.
01:16:06 They had to have Web Audio so they could map OpenAL,
01:16:09 which was another audio library standard to Web Audio,
01:16:11 which was kind of a Chrome idiosyncratic thing.
01:16:14 But they could make it work.
01:16:16 And they had to have Asm.js for fast C++ to JavaScript.
01:16:21 And if you didn’t have that fast compiler step,
01:16:25 the JavaScript you’d write by hand
01:16:27 trying to do an Unreal game would be too big and too slow.
01:16:29 It would touch the garbage collector.
01:16:31 It would not keep up with 30 frames a second
01:16:33 on the hardware, 2013 hardware.
01:16:35 So we demoed that at,
01:16:38 this must have been fall 2012 now that I think about it.
01:16:40 Because we demoed it at GDC,
01:16:42 Game Developer Conference 2013.
01:16:44 And people were stunned.
01:16:45 That’s like Unreal Engine, Unreal Tournament
01:16:47 running in my browser window.
01:16:48 No plugin, no Flash, no Java, no.
01:16:52 So were those the early days of,
01:16:54 because JavaScript now is able to run basically on par
01:16:58 with a lot of the C++.
01:17:01 And even before then,
01:17:02 you had the fast JavaScript VMs in 2008
01:17:05 when Chrome came out.
01:17:06 Just before it came out, Mozilla,
01:17:08 my friend Andreas Gal and I and others
01:17:11 hacked out Trace Monkey, our Trace based JIT.
01:17:14 The Squirrel Fish Extreme team at Apple did their JIT.
01:17:18 And we were all competing
01:17:19 on these crazy performance benchmarks.
01:17:21 It was a little bit too much tuning to the benchmark.
01:17:23 But JavaScript started getting fast
01:17:25 and developers started noticing it.
01:17:26 But it was still kind of its own high level language
01:17:29 with garbage collection.
01:17:30 The Asm.js step helped us go further
01:17:33 because until we really proved the concept,
01:17:37 people were still saying, well, JavaScript’s okay.
01:17:39 It’s getting faster, thanks to V8.
01:17:40 Everybody gave Google credit, especially Google.
01:17:43 But we need something to kill Flash.
01:17:44 Let’s use the portable native client code
01:17:47 that Google had acquired, native client.
01:17:50 Which is a separate lineage for taking basically C code,
01:17:52 compiling it into a software fault isolated container
01:17:56 of some sort using some kind of virtualization technique.
01:17:59 And maybe it can even be in process
01:18:01 and still be memory safe, that would be awesome.
01:18:03 But they ended up using process isolation too.
01:18:04 And that kind of weakened it.
01:18:06 And in the end, it was like portable native client,
01:18:08 okay, meet the new boss, same as the old boss.
01:18:11 This is the Google Flash, right?
01:18:13 But when we did Asm.js and we showed Unreal Engine working,
01:18:17 I think it was only a matter of time
01:18:18 before Google threw in the towel.
01:18:19 And in fact, everybody agreed in spring of 2015,
01:18:23 we’re gonna take what was proven by Asm.js
01:18:25 and make a new syntax, a binary syntax, it’s efficient,
01:18:29 that loads into the same JavaScript VM
01:18:31 that JavaScript loads into.
01:18:32 So there’ll be two source languages, one VM,
01:18:34 very important, one garbage collector,
01:18:36 one memory manager, one set of compiler stages.
01:18:40 And that’s called WebAssembly.
01:18:42 And that’s the successor to Asm.js.
01:18:44 And it’s important that it have binary syntax
01:18:46 because at the end of the day, especially on mobile,
01:18:48 if you’re downloading JavaScript,
01:18:50 even if you’re using LZ compression on the wire,
01:18:52 that’s cool, but you’ve got to blow it out into memory
01:18:53 and then parse the silly eight character function keyword
01:18:56 that I picked, when I should have used something shorter,
01:19:00 I picked it because of awk, the Unix tool.
01:19:04 So anyways.
01:19:05 I want to, but I’m not following the awk thread.
01:19:07 Yeah, don’t worry about it.
01:19:09 Is it surprising to you that,
01:19:12 how damn fast JavaScript is these days?
01:19:14 I mean, like, you’ve been through the whole journey.
01:19:16 I know every step of the way, but is it like,
01:19:19 I mean, it feels incredible.
01:19:22 It does, but I knew, so the funny thing is,
01:19:24 computer science is this big karmic wheel, right?
01:19:26 Wheel of Fortuna.
01:19:29 And in the, it’s about the 97,
01:19:32 I was loaned by Netscape to do due diligence for Sun
01:19:37 in their acquisition of Anamorphic,
01:19:39 which was David Unger and friends, people,
01:19:45 Craig, I’m forgetting his name, he went to Microsoft.
01:19:47 These Stanford language buffs who’d taken Smalltalk
01:19:51 and then David create itself
01:19:53 as a simpler sort of Smalltalk language
01:19:56 and made really fast, just in time compiling VMs for them.
01:20:00 And they, you know, well ahead of Java hotspot
01:20:04 or JavaScript V8 or any of these modern VMs,
01:20:07 figured out how to make dynamic code fast
01:20:10 because Smalltalk is dynamic language, right?
01:20:13 It has classes, it has, I think more lockdown declarative
01:20:16 syntax than JavaScript, but it’s fundamentally dynamic.
01:20:18 You don’t declare the types.
01:20:19 But you could infer the types as the program runs
01:20:24 and you start to form these ideas
01:20:26 about what types are actually flowing through key operations
01:20:29 and you form little so called polymorphic inline caches
01:20:32 that are optimized machine code.
01:20:35 The cache is the machine code that assumes,
01:20:38 does a quick check to make sure the type is right
01:20:40 and if it’s not right, it bails to the interpreter.
01:20:42 And if it is right, you go pretty fast.
01:20:44 And that short test is a predicted branch,
01:20:47 so things are pretty quick.
01:20:48 All that amazing stuff I knew about in the 90s
01:20:51 and I didn’t have time to do it
01:20:53 and Anamorphic got bought by Sun and they did hotspot.
01:20:57 And you needed that even in Java because at scale,
01:21:00 Java has some dynamic aspects due to invoke interface.
01:21:04 You can have basically collections of Java code
01:21:06 where you don’t know at the time each module
01:21:10 or package is compiled exactly what’s being called,
01:21:13 what subclass or what implementation
01:21:16 of an interface is being called.
01:21:17 And so you want to optimize using this sort of dynamic
01:21:20 polymorphic caching there too.
01:21:21 And they did that and hotspot, it’s amazing beast.
01:21:24 I’ve met like 13 people who all claim they created it.
01:21:27 I think one of them may deserve credit more than others.
01:21:31 But I didn’t get to do that in JavaScript.
01:21:34 And when we knew that Google was going to do their own
01:21:38 browser, which we knew at Mozilla around 2006,
01:21:42 I also met the team that did V8.
01:21:45 And it turns out it was Lars Bach,
01:21:46 who was one of the young engineers from Anamorphic
01:21:49 that got acquired by Sun.
01:21:50 And so Lars is like one of the world’s expert
01:21:52 on these kinds of virtual machines.
01:21:54 And he picked my brains about JavaScript.
01:21:56 I could tell he didn’t like it at the time,
01:21:58 but he had to do it.
01:21:59 And…
01:22:00 Oh, really interesting.
01:22:01 Yeah, in 2006 lunch at Google’s campus.
01:22:03 And then I had another friend who was DevRel at Chrome
01:22:07 and he said, yeah, we don’t know what they’re doing.
01:22:08 This is getting 2007 to fall, getting toward 2008.
01:22:12 We’re trying to get Chrome out
01:22:13 and we don’t know what’s going with the V8 team.
01:22:14 They’re off in Aarhus, Denmark,
01:22:16 rewriting their engine four times, which is good.
01:22:19 That’s the right way to do this kind of development.
01:22:22 They were learning JavaScript, including all its quirks,
01:22:24 which they came to hate the fire of a thousand suns,
01:22:27 which is one of the reasons that Lars and company did Dart,
01:22:29 their own language.
01:22:30 But they also made the language fast.
01:22:32 And meanwhile, we knew this was happening.
01:22:35 So we got our act together with Trace Monkey,
01:22:38 our tracing JIT at Mozilla and Apple I think was also aware.
01:22:41 And so they were doing their own JIT.
01:22:43 So the era of JITed fast JavaScript in 2008
01:22:46 had this prehistory going back to Smalltalk itself
01:22:49 and Anamorphic.
01:22:50 And again, the lineage is interesting
01:22:53 because you had Lars and Anamorphic
01:22:54 and then he ends up at Google.
01:22:55 Yeah, and today we have an incredibly fast language
01:23:00 that like you said, still,
01:23:02 without hate, you can’t have love.
01:23:04 So I think there’s both love and hate for this dance,
01:23:09 this rich complex dance of JavaScript
01:23:12 throughout its history.
01:23:12 There’s a dialectic for sure.
01:23:15 Today, JavaScript is the most popular language in the world.
01:23:20 Why by many measures?
01:23:22 Why do you think that is?
01:23:24 Is there some fundamental ideas
01:23:28 that you’ve already spoke to a little bit
01:23:29 but sort of broader
01:23:30 that you think is the most popular language in the world?
01:23:32 So I think I did, by doing first class functions
01:23:36 and taking the good parts of the C operator hierarchy
01:23:40 and just keeping things simple enough,
01:23:44 maybe it could have been simpler
01:23:45 but I had to make it look like Java
01:23:47 and interoperate with Java
01:23:48 that there was inherent goodness,
01:23:52 Aristotelian quality there.
01:23:54 And people perceive that
01:23:56 even through all the quirks and warts.
01:23:57 And then over time working on it with the standards body,
01:23:59 working on it not only as a core language
01:24:02 but in the context of HTML5 and making the browser better,
01:24:06 listening to developers, thinking about,
01:24:08 this is something that Nick Thompson wrote nicely
01:24:10 about on Hacker News, I was very flattered.
01:24:12 He said, Java was this thing
01:24:14 where the experts were writing the code
01:24:16 and it was compiled and you had to declare all your types
01:24:18 and Sun didn’t really give a damn about
01:24:20 the average programmer who wanted to build real web apps,
01:24:23 dynamic things.
01:24:25 And I was in there meanwhile doing a bunch of people’s jobs
01:24:28 making JavaScript survive those early years
01:24:31 when it was kind of touch and go.
01:24:33 JavaScript was considered a Mickey Mouse language.
01:24:36 It was for annoyances like the scrolling text
01:24:38 at the bottom of the browser in the status bar.
01:24:40 But I kept listening to developers working with them
01:24:43 and trying to make it run in that single threaded event loop
01:24:46 in a useful way.
01:24:47 And I think that forged something
01:24:49 that people have come to love.
01:24:51 Now you don’t always love the best thing, right?
01:24:53 I talked about Shakespeare sonnet about
01:24:58 I’m Mr. Sizer, nothing like the sun.
01:25:00 Or the scene from Josh Whedon’s film Serenity at the end
01:25:04 where the actual piece in the score by David Newman
01:25:08 is called Love where Captain Mal is teaching River Tam
01:25:12 about how to pilot the ship.
01:25:13 And she’s a super genius, super soldier.
01:25:15 She knows how to do it already.
01:25:17 And he’s basically talking about how you have to love
01:25:19 the ship because if you don’t, it’s going to kill you.
01:25:22 And then the piece falls off the ship.
01:25:23 It’s kind of like JavaScript.
01:25:26 You have to love it.
01:25:26 You have to love it because now people say we’re stuck
01:25:30 with it because it got this priority of place.
01:25:31 But there’s love underpinning that.
01:25:33 And actually the listening to developers,
01:25:35 that’s kind of beautiful.
01:25:36 There’s most successful products in this world
01:25:41 with all the messes, with all the flaws.
01:25:43 Perhaps the flaws themselves are actual features,
01:25:45 but that’s a whole nother, that’s a discussion about love.
01:25:48 But underneath it, there’s something
01:25:50 that just connects with people.
01:25:52 And it has to keep connecting.
01:25:53 If JavaScript kind of went off in this,
01:25:55 people sometimes complain about ES6.
01:25:57 Oh, you put classes in JavaScript.
01:25:58 I hate classes.
01:25:59 You’ve ruined it.
01:26:00 But it’s not true.
01:26:01 It’s a dynamic language.
01:26:02 Smalltalk had classes.
01:26:04 Python has classes.
01:26:07 There are lots of Lisp variants that have classy systems.
01:26:12 So people who don’t reject it based on some sort
01:26:16 of fashion judgment do use it and do interact
01:26:22 with the standards body.
01:26:23 The standards body is competing browser vendors mainly,
01:26:25 but also now big companies that use JavaScript heavily,
01:26:28 the Paypal’s and other such companies, Salesforce.
01:26:32 And they have to cater to web developers.
01:26:36 They have to hire developers who know JavaScript.
01:26:39 They have to keep their engines up to the latest standard.
01:26:43 And this creates all this sort of social structure
01:26:45 around JavaScript that is unusual.
01:26:47 I mean, you get C++ buffs that follow the inner workings
01:26:51 of C++, what is it now?
01:26:54 21 something, I don’t know.
01:26:56 I’ve lost track.
01:26:57 But it’s a more rarefied group.
01:26:59 It’s more like the old language, gray hairs.
01:27:02 Whereas JavaScript is a younger
01:27:04 and more vibrant and large crowd.
01:27:07 There’s a community feel to it.
01:27:09 There’s echoes, perhaps I don’t wanna draw too many
01:27:13 similarities, maybe you can comment on it.
01:27:15 There’s C++ is like Wall Street,
01:27:18 and the JavaScript is like Wall Street bets
01:27:21 from the recent events.
01:27:22 It’s like there’s a chaotic community of all,
01:27:24 and there’s some power from that distributed crowd
01:27:28 of people that ultimately.
01:27:30 It’s more thematic, it’s more of the people.
01:27:32 It lets people in without requiring these credentials.
01:27:35 I remember in the late 90s into the 90s,
01:27:38 people were all getting Java credentials.
01:27:39 And I knew people, and friends knew people
01:27:42 who became Java programmers, and you knew
01:27:44 they really should have been like nature guides or pilots.
01:27:47 They hated programming, but they thought,
01:27:49 I gotta make money, I’m gonna become a Java programmer.
01:27:51 Do you have some, because it’s such a monumental moment
01:27:55 in our current history, as a quick aside,
01:27:58 do you have thoughts about this huge distributed crowdsourced
01:28:03 financial happenings with Wall Street bets?
01:28:06 That’s like nobody could have, well,
01:28:08 you could have predicted, but the scale and the impact
01:28:11 of this kind of emergent behavior
01:28:13 from independent parties that could happen.
01:28:15 Like I said, my own experience with the dismal science,
01:28:19 as with physics, led me to reject a lot of bad models.
01:28:23 Economics was always compromised by politics,
01:28:26 political economy.
01:28:28 You could also argue that it was,
01:28:29 it used to be a branch of moral philosophy,
01:28:30 so it was concerned with the good,
01:28:32 and it became divorced and became sort of
01:28:34 in this quasi Newtonian way, just about,
01:28:37 everything’s just running by itself, don’t worry about it.
01:28:40 This monopoly’s crushing your Netscape company,
01:28:42 but that’s just nature.
01:28:43 And economics couldn’t, or doesn’t really have good models
01:28:46 for the Wall Street bets subreddit.
01:28:49 You know, they know how to squeeze a short, right?
01:28:52 So the amazing thing is you have Robinhood app,
01:28:56 which was, again, supposedly for the demos, for the people,
01:29:00 and eliminated the fee through various kinds of straddles
01:29:06 or some kind of spread operation
01:29:09 that helped them eliminate the fee or eat the fee.
01:29:11 And in fact, as a broker in these days,
01:29:14 because it takes two days to settle,
01:29:15 there’s counterparty risk, as they found out.
01:29:18 And so the Wall Street bets people,
01:29:22 you know, the memes are like the Terminator robot
01:29:25 with the $600 STEMI check and the hedge funds
01:29:30 that make little girl hiding under the desk.
01:29:34 There is a problem, which I talked about
01:29:36 in a recent podcast, which I’m conscious of
01:29:38 from the history of the web, and that is,
01:29:40 you could say it’s monopoly,
01:29:41 which antitrust wasn’t enforced
01:29:42 after USB Microsoft for a long time.
01:29:45 And a lot of this was due to the money interests
01:29:48 buying control of politicians.
01:29:50 And, you know, in Plato’s five regimes, that’s oligarchy.
01:29:54 That’s where we are.
01:29:56 And now we’re seeing a fight against the oligarchs.
01:29:58 I don’t know if it’ll work,
01:29:59 but you’re definitely seeing it.
01:30:00 And it’s also kind of hackerish, right?
01:30:02 It’s got a hacker ethos.
01:30:04 You know, hey, Robinhood, no fees.
01:30:05 Oh, interesting.
01:30:06 Hey, you know, I could buy a fraction of a share
01:30:09 in this thing, or I can keep buying with my stimulus check.
01:30:12 So I mentioned Hegel seeing Napoleon on the horse, right?
01:30:16 Hegel also talked about the cunning of reason
01:30:19 that you have this sort of, you know,
01:30:21 God sees history in full, and if you believe in God,
01:30:24 or, you know, we don’t know the future,
01:30:25 but there’s always this sort of fly in the ointment,
01:30:28 this unintended consequence that confounds
01:30:32 the best plans of the powers that be.
01:30:35 And we’re living through it.
01:30:37 I’m glad it’s not, you know, street warfare
01:30:39 or mechanized warfare, because it has been in the past.
01:30:43 It’s more like soft power, and people are fighting back.
01:30:50 Do you think it’s possible?
01:30:51 So JavaScript used to be for the front end of the web.
01:30:57 It’s now increasingly so being used for back end,
01:31:01 like running stuff that’s like behind the scenes.
01:31:06 And it’s also starting to be used quite a bit
01:31:10 for things like TensorFlow.js.
01:31:12 So starting to actually use like these heavy duty
01:31:14 applications that are using neural networks,
01:31:17 machine learning, and so on in the browser.
01:31:19 Is it possible in 10, 20, 30 years
01:31:24 that basically most of the world runs on JavaScript?
01:31:28 This is a dystopia and a nightmare to some people.
01:31:32 When we did Asm.js and WebAssembly,
01:31:34 I would joke and mean people with scenes like
01:31:37 Neo waking up in his pod in the matrix,
01:31:39 and he’s all skinny and weak and hairless.
01:31:42 And, you know, you realize in the future
01:31:46 that you’re living in some simulation
01:31:48 that it’s all running on JavaScript,
01:31:49 and you just scream forever.
01:31:51 It’s possible.
01:31:52 Gary Bernhardt does these funny talks.
01:31:54 He did watch.js, and then he did this
01:31:58 life and death of JavaScript, I think it’s called,
01:31:59 where he took some clever ideas that actually have
01:32:02 a thread of credibility to them.
01:32:05 But I mentioned software fault isolation.
01:32:09 In the old days, when we were using computers,
01:32:10 we said we’re gonna use the Unix monolithic monitor,
01:32:14 and it’s the privileged program.
01:32:15 This is before you even had hardware rings of protection.
01:32:18 Those, some of the early 60s operating systems
01:32:20 used hardware protection zones.
01:32:22 But Unix is privileged, and the program
01:32:25 that runs user code in a process is hosted.
01:32:30 It’s the guest, in the host, and you get to suspend it.
01:32:33 You get to kill it.
01:32:35 If it crashes, it doesn’t take down the whole OS.
01:32:37 It’s a wonderful idea, but the call into the kernel
01:32:41 is expensive, the system call, so called.
01:32:43 And this has even been optimized now
01:32:45 for things like getting the time of day,
01:32:46 so it doesn’t actually enter the kernel.
01:32:49 And meanwhile, hardware architectures
01:32:52 and virtualization techniques have gone
01:32:54 in a different direction, even to the point
01:32:56 where you can do software fault isolation very cheaply
01:32:58 without entering the operating system kernel,
01:33:00 and so you get unikernels and exokernels
01:33:02 and very lightweight VMs.
01:33:04 And so Gary took this idea and said, JavaScript
01:33:08 will take over computing, because the system call
01:33:10 boundary’s too expensive, so everything ends up
01:33:12 in JavaScript with these lighter weight
01:33:14 isolation enforcement mechanisms.
01:33:16 It’s not totally beyond belief.
01:33:18 It’d be WebAssembly too.
01:33:22 It’s nice to ask you sort of for advice to,
01:33:25 there’s so many people that are interested
01:33:26 in starting to learning about programming,
01:33:29 getting into this world.
01:33:31 Is there some number of languages,
01:33:34 three to five programming languages
01:33:36 that you would recommend people learn,
01:33:38 or maybe a broader advice on how
01:33:42 to get started in programming?
01:33:43 Well, so you asked about machine learning,
01:33:45 and JavaScript is a general purpose language,
01:33:47 and it’s a language that’s not that great
01:33:53 for doing matrix operations or doing parallel programming,
01:33:58 I would say, without using some extensions
01:34:01 or some libraries that have some magic in them.
01:34:03 So if someone wanted to learn,
01:34:08 there are amazing languages in sort of the APL family
01:34:11 that are very useful for, I would say, linear algebra,
01:34:14 which gets to a lot of the kernels in machine learning.
01:34:16 And so APL had like J and then K and their K variants
01:34:22 because the guy that did K is still going,
01:34:24 and they’re proprietary, but he’s still innovating there.
01:34:28 There are, you know, Python is used.
01:34:30 So people talk about TensorFlow.js.
01:34:31 Well, it’s not that surprising
01:34:33 because Python was heavily used for machine learning,
01:34:36 and Python was always, you know,
01:34:38 they didn’t have this fast just in time compiler tradition.
01:34:41 There were some projects that tried this,
01:34:43 and some of them were interesting.
01:34:45 PyPy was interesting,
01:34:46 but the philosophy with Python was,
01:34:50 oh, you need to go fast, write a C plugin,
01:34:51 and drop into C code.
01:34:53 So I think people should look at multiple languages
01:34:57 because there are different tools in the belt.
01:34:59 If you’re trying to do supervision or rapid prototyping,
01:35:02 you want a dynamic language.
01:35:03 You want to throw things together and see what works.
01:35:06 If you are trying to go down to the metal very fast,
01:35:09 well, I’m an old C hacker,
01:35:10 but I was also the executive sponsor of Rust at Mozilla,
01:35:14 and Rust has now escaped, you know,
01:35:16 from that sort of nest where it was born
01:35:18 to be adopted by a bunch of companies
01:35:21 that have a foundation in the works.
01:35:23 Some of the key core team members
01:35:24 are working now at Amazon and other places.
01:35:27 So it looks like Rust has reached escape velocity,
01:35:30 and Rust is an interesting language
01:35:31 because one of our goals there,
01:35:33 one of the reasons I sponsored it was we were all tired
01:35:35 of seeing those remote code execution vulnerabilities
01:35:38 due to C and C++, and we thought,
01:35:41 can we have a sort of safety property
01:35:43 through a type and effect system or an ownership system,
01:35:46 and Rust has that.
01:35:48 And that ownership system is interesting
01:35:50 because it doesn’t just give you memory safety.
01:35:52 There’s a sort of theorem for free,
01:35:53 a dual that falls out for protection against data races.
01:35:57 So Rust is better for low level programming.
01:35:59 You delimit your unsafe code
01:36:01 where you do have to be unsafe,
01:36:02 and you can prove certain facts about memory safety
01:36:05 and race condition avoidance.
01:36:08 And so I think people should learn these new languages.
01:36:11 I think Go is a great language.
01:36:13 I admire, you know, the Unix people who did that.
01:36:16 Ken Stoll was involved, Rob Pike, of course, David,
01:36:21 what’s his name, and other people.
01:36:23 Go is a huge success, really on the server side,
01:36:27 anywhere you have a lot of networking to do,
01:36:30 and it’s garbage collected, but it’s also very pragmatic.
01:36:33 It has that sort of C flavor.
01:36:35 As an old C hacker, I can’t get used to the fact
01:36:37 that they swapped the type and declarator
01:36:39 in the declaration order.
01:36:41 I haven’t used Rust, but this is one of the most respected
01:36:44 and loved languages currently, so it’s interesting.
01:36:46 Yeah, and it’s still young.
01:36:47 You look at these things, JavaScript is now considered old.
01:36:50 It’s gone through so many versions
01:36:52 that you can fall in love with it all over again.
01:36:54 25 plus years, you know, it’s an adult.
01:36:58 It should be out of the house.
01:36:59 But it could be around another 25 years.
01:37:03 Cannot rule it out.
01:37:04 So Rust will be around for a long time.
01:37:06 The longer you’re around, the more likely you’re Lindy,
01:37:08 and you’re around your wife.
01:37:10 A lot of people ask me, like,
01:37:13 I’m often torn between recommending either Python
01:37:15 or JavaScript as the first language to play with,
01:37:18 because, I mean, it’s difficult,
01:37:20 because it’s so easy to do JavaScript incorrectly.
01:37:25 It’s much easier to do it correctly these days,
01:37:29 or like, well, learn about programming.
01:37:31 But the cool thing about JavaScript
01:37:33 is that you can create stuff
01:37:36 that will put a smile on your face.
01:37:38 Like, as a developer, you can create stuff,
01:37:41 and it’ll visually look like something,
01:37:43 and it’ll do stuff, and it makes you feel good.
01:37:45 It makes you fall in love with programming.
01:37:47 With Python, you could do the same.
01:37:48 It’s a little slower.
01:37:49 And with C++, it takes five to 10 years
01:37:51 to write a program that actually does something.
01:37:54 So, like, there’s that tension between
01:37:56 is JavaScript the right first step, or is it Python?
01:37:59 And I’ve been going back and forth on those two.
01:38:02 My Python, right, it came from a lineage of ABC,
01:38:05 which was a pedagogical language in the Netherlands.
01:38:09 And it, you know,
01:38:12 it was a good teaching language, too.
01:38:16 I think it is a good teaching language,
01:38:17 and it’s a little more restrictive
01:38:19 in that if you misspell something
01:38:21 in a way that JavaScript might let run,
01:38:25 let reach runtime, it’ll get stopped
01:38:26 at syntax check in Python.
01:38:30 That’s good for beginners.
01:38:31 I think the sloppiness that some people object to,
01:38:34 like, people were just tweeting at me,
01:38:37 having just learned JavaScript.
01:38:38 They said, I can take a number, and I can index into it,
01:38:41 and get undefined out of it as a property.
01:38:43 Why is that?
01:38:44 A number’s not an object.
01:38:44 And I explained why it is,
01:38:46 because like in Java, the primitive types,
01:38:48 which unfortunately are not objects,
01:38:49 can be automatically boxed or wrapped by an object.
01:38:53 And I made that implicit.
01:38:55 In Java, it’s typed, and you have to declare things,
01:38:58 and you’ll get type errors.
01:39:00 But there are cases in Java where you get auto boxing
01:39:03 or auto wrapping, because you’ve declared that you want it.
01:39:06 In JavaScript, it just happens.
01:39:07 And so once I explained it, like, oh, wow, I get it.
01:39:10 But it also means that you can commit a blunder that just.
01:39:13 You don’t get punished for it, you don’t detect.
01:39:15 You get an undefined value,
01:39:16 and you don’t know where it came from.
01:39:17 Right.
01:39:19 I’ve been reading a lot about military history recently.
01:39:23 And one way to paint the picture of browsers,
01:39:26 internet browsers, is through the various wars
01:39:29 throughout its history.
01:39:30 I don’t know if that’s a useful way to look at it,
01:39:32 but we’ve already talked a little bit about Netscape
01:39:34 and Internet Explorer in the early days.
01:39:38 Can you tell the story of the different wars,
01:39:41 if that’s at all an interesting way to look at it,
01:39:43 of the 90s and to today?
01:39:46 Yeah.
01:39:47 So I mentioned that Microsoft, you know,
01:39:49 which was convicted for it, did abuse its monopoly,
01:39:51 but they had a pretty good team by the time they did IE4.
01:39:55 And Netscape, unfortunately, I was like second floor,
01:39:57 and I was friends with all the first floor people,
01:39:59 the front end guys who did the JavaScript event hookup
01:40:02 and things like that,
01:40:04 that that team was fairly burnt out.
01:40:07 And I think having gone public,
01:40:10 the upper management wanted to buy a bunch of companies
01:40:13 to try to go head to head with Microsoft.
01:40:15 Didn’t work, but buying a bunch of companies
01:40:17 usually doesn’t work.
01:40:19 I think the modern sort of approach roughly
01:40:22 is like Mark Zuckerberg took,
01:40:25 which is to keep them at arm’s length
01:40:26 and let them do their thing.
01:40:28 And now that he’s pulling WhatsApp in
01:40:29 and people are fleeing it
01:40:31 because it’s tied into the ad surveillance.
01:40:33 But, you know, for a while,
01:40:36 they’re keeping it separate really does work
01:40:37 because you bought it for its value,
01:40:39 it’s complimentary, and you’re not messing with it.
01:40:41 With Netscape, when they bought a bunch of companies,
01:40:43 they had some of the first floor people
01:40:45 or the founders burned out.
01:40:46 They had newcomers who wanted their turn to do the browser,
01:40:51 and they hadn’t really done browsers or understood them.
01:40:54 And so Netscape 4 was originally supposed to be 3,
01:40:57 and it was so late, they renumbered it.
01:40:58 We did a 3 release.
01:41:00 Jamie and a few others put some extra effort into.
01:41:03 SecureMine was supported in the built in mail program.
01:41:08 And Netscape 4 was late,
01:41:10 and it was only on Windows at first,
01:41:11 and Microsoft had really started doing better,
01:41:14 like they do.
01:41:15 They copy, and the first version’s trash,
01:41:17 and the second one, you’re starting to feel threatened.
01:41:19 The third one, you can tell what’s gonna happen,
01:41:21 and the fourth one’s good.
01:41:22 And plus there’s the benefit, like you said,
01:41:24 that it comes as a default browser.
01:41:26 Yes, and yet Netscape’s screwing it up,
01:41:28 and Microsoft really putting some quality people on it.
01:41:32 IE4 was good.
01:41:33 On Windows, it was good.
01:41:34 And they did the dynamic HTML innovations.
01:41:38 Scott Isaac’s my old buddy,
01:41:39 a former accountant who programmed in BASIC
01:41:42 and became what Microsoft calls a program manager,
01:41:45 which is kind of an elevated position.
01:41:48 You can be a programmer or an engineer and track,
01:41:50 but you switch to it,
01:41:51 and you sort of lead a lot of design and standards efforts.
01:41:54 And so Scott Isaac put in a lot of those funky DHTML APIs
01:41:58 that didn’t quite have the same flavor
01:42:01 as the stuff that I did, and neither of them
01:42:03 was like the later sort of verbose Java,
01:42:05 like DOM W3C standardized.
01:42:08 But IE4 was pretty darn good.
01:42:10 I remember a friend, Scott Furman and I,
01:42:12 got invited by Scott Isaac to Gordon Beers in San Jose.
01:42:16 They were doing a preview of IE4.
01:42:19 This must have been 1997.
01:42:21 And Scott said, yeah, here’s the new graphics stuff
01:42:25 we’re doing.
01:42:25 We’ve got something like your Netscape layers.
01:42:28 We’ve got VML, a vector markup language.
01:42:31 We can do virtual reality.
01:42:33 And Scott and I looked at each other and said,
01:42:35 we’re doomed, right?
01:42:36 Microsoft was starting to fire on all cylinders.
01:42:38 So I have to give them credit for that,
01:42:40 even though they abused their market power.
01:42:42 And maybe I shouldn’t give them credit
01:42:44 for having the resources to hire talented people,
01:42:45 but they did a credible job on IE4.
01:42:48 What really was bad was that phase of the browser wars
01:42:51 ended with monopoly and perhaps due to the antitrust case,
01:42:56 perhaps due to regulation in Europe,
01:42:59 perhaps just due to Microsoft not liking
01:43:01 dealing with standardization, they let it rot.
01:43:05 They just abandoned it, IE5, 5.5, IE6 later,
01:43:10 but these were not well maintained.
01:43:12 They had a lot of security bugs.
01:43:14 It felt really closed and outdated too,
01:43:16 even though it’s getting updated, it’s just weird.
01:43:19 Browsers like Mozilla and then Firefox were adding tabs.
01:43:22 Opera had a version of tabs and they didn’t add tabs.
01:43:25 And they pop up blocking,
01:43:27 something I should have done from the start.
01:43:28 People realized that you can tell
01:43:30 when the user clicks something
01:43:31 and it goes in JavaScript to open a little window,
01:43:34 that you can sort of inspect the stack
01:43:36 and see that the click originated that,
01:43:38 and it’s probably okay.
01:43:39 Whereas if you’re just loading a script
01:43:40 and it opens a new window, that’s a spam technique
01:43:43 and you should block it.
01:43:45 Tabs were a brilliant innovation.
01:43:47 Like you said, Opera had it,
01:43:48 but I remember I fully switched to Firefox the moment.
01:43:52 I remember the moments of first using tabs in Firefox
01:43:57 and not liking it for the first few minutes,
01:44:00 and then like, wait a minute.
01:44:02 You get the groove, yeah.
01:44:03 You get the groove and you understand.
01:44:05 So that timing, what year was this?
01:44:08 Because also as a aspiring web designer,
01:44:12 I use Table, so we didn’t mention Layout or CSS much.
01:44:16 There’s also a change in the way
01:44:18 the frames were going away.
01:44:21 So there’s a change in the way websites looked
01:44:23 and behaved and all that kind of stuff.
01:44:25 CSS finally, which Microsoft embraced with IA4
01:44:28 and Netscape never really did right.
01:44:30 CSS became a better standard over time
01:44:33 for doing Table Layout that relieved you
01:44:36 of the need to use what are called spacer GIFs,
01:44:39 spacer GIFs, right?
01:44:40 Images, you would throw into space at tables.
01:44:44 The typographic power of the web has gotten better,
01:44:47 but it’s still not on the level of PDF
01:44:49 and you can’t do advanced typography,
01:44:51 but it’s gotten really better.
01:44:53 And even then, tables were getting better.
01:44:54 If you were using Firefox, that would have been 2004
01:44:57 because it was called Firebird until earlier that year.
01:45:00 No, yeah, I think it wasn’t.
01:45:01 2003.
01:45:02 I don’t remember, it was a Firebird, which had tabs?
01:45:06 We had tabs the whole way.
01:45:07 So it started out as Mozilla slash browser in 2002,
01:45:10 became Phoenix.
01:45:12 There’s a BIOS that has an embedded version of IE
01:45:14 and they said, we’re called Phoenix Technologies,
01:45:16 you can’t use Phoenix.
01:45:17 And so we said, okay, we’ll call it Firebird.
01:45:19 And then this Australian centered
01:45:21 open source database project started really like
01:45:24 in the true Mad Max style, just screaming at us saying,
01:45:27 you can’t use Firebird.
01:45:28 And I had to sort of be the ambassador and say,
01:45:30 okay, we’re gonna rename.
01:45:31 And they’re like, we don’t believe you,
01:45:32 you shouldn’t have used it, we hate you.
01:45:33 And then we renamed it to Firefox.
01:45:36 And they’re like, ah, we love you.
01:45:38 And then I haven’t heard of them ever since.
01:45:40 But Firefox was a clever name.
01:45:41 We had to think of something distinctive.
01:45:43 We wanted to keep the fire going.
01:45:45 And it turns out there’s a red panda, right?
01:45:48 That’s the nickname for it.
01:45:49 So that’s the second set of browser wars.
01:45:51 So how was Firefox born, how was Mozilla born?
01:45:59 There’s a long story there too.
01:46:01 So Netscape got acquired by AOL,
01:46:02 which as I say was a reasonable happy ending
01:46:05 for a lot of people,
01:46:06 because Netscape otherwise was gonna go out of business
01:46:08 because Microsoft was just killing its market.
01:46:10 There was no way to charge for a browser.
01:46:12 Windows came with IE, IE4 was pretty good
01:46:15 and Netscape 4 wasn’t that good.
01:46:17 It took a while to get better.
01:46:20 But the Netscape executive said,
01:46:22 let’s do an open source escape pod.
01:46:25 And like in Star Wars, A New Hope,
01:46:27 the gunner won’t shoot it
01:46:28 because there’s no life forms on board, right?
01:46:30 It’s not a threat.
01:46:31 And so we did Mozilla in 1998
01:46:33 and it looked like it was going to initially
01:46:37 just give the world an open source browser.
01:46:40 But it’s really hard to get people to work
01:46:42 on this sort of hairball that had been hacked up
01:46:43 over by that point four years.
01:46:46 And it also couldn’t have the crypto module
01:46:49 for secure sockets, so called,
01:46:51 or now transport layer security.
01:46:52 That was an electronic munition.
01:46:54 We were not allowed to release that
01:46:56 in the full 1024 bit key strength.
01:47:00 And yet people, one of whom I happened to meet previously
01:47:05 at SGI when I went on a sales support engineering trip,
01:47:08 Tim Hudson in Brisbane, Australia,
01:47:11 and Eric A. Young did what became open SSL.
01:47:16 It was called SSL EAY after Eric’s initials.
01:47:19 And Tim and Eric took their open SSL
01:47:23 outside of the purview of the NSA
01:47:25 and the Department of Commerce,
01:47:27 and they stuck it into Mozilla’s code.
01:47:28 And that was perhaps the best hack that was done
01:47:31 in the first few months after we open sourced the browser.
01:47:34 We had other problems.
01:47:35 The politics inside Netscape were riven
01:47:37 by these acquisitions.
01:47:38 So the one acquisition that kind of messed up Netscape
01:47:41 for also wanted to keep doing a proprietary mail
01:47:44 and groupware program, not Jamie Zawinski’s mail program
01:47:48 that was in Netscape two and three.
01:47:50 And they held it back from open source.
01:47:51 We didn’t have a mail program, it was just a browser.
01:47:54 We didn’t know what AOL will do to us.
01:47:56 Turns out they didn’t interfere with us for a long time.
01:47:59 But Netscape wasn’t the best steward of Mozilla.
01:48:02 We were operating Mozilla as a pirate ship
01:48:05 without a legal entity.
01:48:06 So most of us worked for Netscape
01:48:08 under a separate organization.
01:48:10 And initially the first engineering manager,
01:48:15 Tom Paquin of Netscape was the Mozilla founding manager.
01:48:19 But he left pretty quickly
01:48:20 and he left me as the acting manager,
01:48:23 which is more like method acting in my case.
01:48:25 And that was my first management stint.
01:48:28 But then someone who’d written the licenses,
01:48:32 Mitchell Baker, she was a lawyer at Netscape.
01:48:34 She was involved in the open source license decision making
01:48:38 and the actual writing and construction of those licenses.
01:48:40 That was Mitchell’s job, Netscape public license
01:48:42 and the truly open Mozilla public license.
01:48:45 And there were two because Netscape needed,
01:48:47 because of some encumbered code, needed some special rights
01:48:49 but that went away over time.
01:48:51 Mitchell was always interested in Mozilla
01:48:52 and she came back from maternity leave
01:48:54 and she said, I’ll be the manager if you want.
01:48:55 And Jamie and I said, sure.
01:48:57 And then Jamie quit, he quit after a year.
01:48:59 He said, this didn’t work, I’m sorry.
01:49:02 He acted like it was a total failure
01:49:04 because Mozilla didn’t restart the browser market.
01:49:08 But there’s no way it could have, right?
01:49:09 Netscape was still shipping variants of Netscape 4,
01:49:13 which was based on the old code.
01:49:15 Mozilla was trying to react to the code
01:49:18 to make greenfield for developers.
01:49:19 So it was one of my big goals.
01:49:20 It wasn’t a technical goal so much as again, a social goal.
01:49:24 People wanted a more standard spaced browser.
01:49:26 They wanted less of a hairball that had been hacked on
01:49:29 by ex grad students starting four years prior.
01:49:32 So we said, we’re gonna make a modular code base.
01:49:35 We’re gonna use a variant or an open source version
01:49:37 of Microsoft’s component object model,
01:49:39 has reference counting and standardized V tables,
01:49:43 virtual calls and C++.
01:49:45 And we’re gonna use JavaScript.
01:49:47 We’re gonna have a bridge between those two
01:49:48 so you can script those components
01:49:50 just like Java components.
01:49:52 We’re going to make a portable front end
01:49:54 with a markup language for the user interface.
01:49:57 Not tables, not HTML, but custom menus
01:50:00 and dropdowns and toolbars.
01:50:02 And that was called Zool, XML user interface language.
01:50:06 And some real talent on the Netscape side delivered that.
01:50:08 Dave Hyatt, who was instrumental in Zool,
01:50:11 Chris Watterson, Joe Hewitt, Blake Ross.
01:50:15 And Blake was an intern.
01:50:17 He was like a high school aged intern at Netscape.
01:50:20 And at some point we were innovating rapidly
01:50:23 in the Mozilla world and Netscape was still caught up
01:50:26 in this management mess from these acquisitions
01:50:29 and it wasn’t delivering.
01:50:30 And every year they were wondering if ALO was gonna come
01:50:32 and start beheading the executives
01:50:34 because it didn’t do anything useful.
01:50:36 And there was this thought
01:50:36 you should take the Netscape browser engine
01:50:38 and put it in the Windows ALO client,
01:50:40 which was the dial up client
01:50:41 that all the increasingly aging users of ALO were using.
01:50:45 Never happened.
01:50:46 It would have been too big a change.
01:50:48 So it wasn’t clear why ALO bought Netscape,
01:50:49 but as I said, they left it alone.
01:50:50 But Netscape didn’t leave Mozilla alone.
01:50:53 And so in 2001, Mitchell called me up and said,
01:50:58 I’m no longer employed.
01:50:59 And I was like, what?
01:51:00 You quit?
01:51:01 No, no, this wasn’t my choice.
01:51:02 And there was a layoff which maybe accidentally
01:51:05 or on purpose got rid of Mitchell.
01:51:06 But the funny thing was we had an open source project.
01:51:08 We had a lot of the engineers on staff on our side
01:51:11 and we had people we’d hired through the Mozilla community
01:51:15 who were top notch.
01:51:16 They’d risen, they came in high quality, they knew the code
01:51:19 and they actually were better than the average
01:51:21 or median hire of Netscape.
01:51:23 And so the funny thing was the executive
01:51:26 who thought they’d gotten rid of Mitchell in the layoff
01:51:29 on the next week’s community call around Mozilla
01:51:32 and what to do, there’s Mitchell.
01:51:35 And so this showed you can kind of transcend
01:51:36 your boundaries of corporate open source
01:51:40 if you get a project that has enough loyalty,
01:51:42 even among the paid staff.
01:51:43 Because we had outside people contributing.
01:51:45 We had people at Red Hat and a few other places,
01:51:47 but the majority of the hackers were employed by Netscape.
01:51:50 But a lot of them at that point had come from the community
01:51:53 and others got the community and wanted to work with it.
01:51:55 And it was really the weakest engineers at Netscape
01:51:57 who didn’t like Mozilla and didn’t like the crucible
01:52:01 of competing with the better programmers.
01:52:04 So if the project is good enough, it will rise,
01:52:06 the Phoenix will rise out of the…
01:52:08 That’s exactly right.
01:52:09 And so we had this Mozilla code base
01:52:10 that was getting better.
01:52:11 In fact, I think at some point in 2002
01:52:13 when we declared Mozilla 1.0, I engineered a roadmap
01:52:17 that successively through similar sort of six week,
01:52:20 five week releases, like we all do with browser releases
01:52:23 nowadays, Chrome does and Firefox braved us three weeks.
01:52:26 We got to a point where we said, you know what?
01:52:29 It doesn’t suck.
01:52:30 This is like the 1.0 that you want to release
01:52:33 because if you hold it back any longer to polish it,
01:52:35 you’re denying others the ability to use it.
01:52:36 It’s like pro engineer, the mechanical CAD tool
01:52:39 embedded the code, they embedded the layout engine.
01:52:43 And Mozilla 1.0 was like a Netscape communication suite.
01:52:46 We had at that point gotten male people
01:52:49 to reintegrate mail and news and we had an editor for HTML.
01:52:53 And it felt like a 90s suite, suiteware.
01:52:57 And it felt kind of bloated.
01:52:58 And the people who were taking that Mozilla open source
01:53:02 and then adding Netscape flavor to it
01:53:05 were not calling the shots right.
01:53:06 And they were also under AOL’s thumb a little bit
01:53:08 and that they said, well, we should probably put
01:53:10 the AOL instant messenger chicklet on the toolbar.
01:53:13 We should put the ICQ, the other messaging system
01:53:16 that AOL had acquired.
01:53:17 We should put the ICQ button on the toolbar.
01:53:19 And pretty soon Netscape looked like a bit of a NASCAR
01:53:23 badged version of Mozilla.
01:53:24 And that also made Mozilla more popular.
01:53:27 And yet they had contrived to fire or lay off the leader
01:53:35 and we carried on with an open source structure
01:53:38 where Mozilla was still, you know, Mitchell was calling
01:53:40 sort of management or project level shots
01:53:44 and I was calling technical shots.
01:53:46 And we had a popular suite, but we thought,
01:53:51 why not make it just a browser?
01:53:52 Because it’ll be simpler, it’ll do one job well.
01:53:55 And even then we can strip it down by having extensions.
01:53:58 So Dave Hyatt and Blake Ross, the high school aged intern
01:54:03 did the first version, which was called Mozilla slash browser.
01:54:07 It was very, the small group of us, Ian Hicks
01:54:09 and Asa Dotzler, me and Joe Hewitt and Hyatt and Blake.
01:54:14 And Hyatt was really the senior hacker.
01:54:16 He’d done all these things like amazing cross platform menus
01:54:20 through the user interface, markup language.
01:54:23 And he knew how to do tab browsing.
01:54:24 He’d implemented it natively on Mac OS at the time
01:54:28 in Camino originally called Chimera.
01:54:31 He’d written multiple implementations,
01:54:34 which was a thing programmers should do.
01:54:36 It’s like the V8 team did for those missing years
01:54:38 when the rest of the Chrome team’s like, where’s V8?
01:54:41 In fact, Dave’s wife, Rebecca told me a story
01:54:44 about when they were at UIUC,
01:54:45 they were also University of Illinois grad students.
01:54:49 There was an assignment, it was a programming assignment
01:54:51 it was supposed to do at the end of the semester.
01:54:53 And Dave’s friend was this, I’m gonna go think
01:54:56 and I’m gonna design and I’m gonna make this
01:54:59 platonic perfect form of the program.
01:55:01 And then I’m gonna write it at the end when it’s due.
01:55:03 And Hyatt just went there and started hacking.
01:55:05 He wrote one version, he wrote a second version,
01:55:06 a third version, end of the semester comes around.
01:55:09 The friend’s not doing too well.
01:55:11 It wasn’t perfect and it wasn’t written.
01:55:13 I’m not sure how that story ended for him,
01:55:14 but Dave’s version was a fifth iteration, it was great.
01:55:18 And so he’d done that with everything you need
01:55:20 in a tabbed browser.
01:55:21 And this really showed well in Phoenix,
01:55:24 what we called Phoenix and I had to rename two more times.
01:55:28 And Blake went to Stanford, he became a Stanford student
01:55:32 and couldn’t work on it.
01:55:34 Dave Hyatt went to Apple in 2001.
01:55:36 He was one of the founding Safari team members.
01:55:39 Interesting, wow.
01:55:40 But he was still blogging about tabbed browsing.
01:55:43 I think Apple at some point said you should.
01:55:44 Safari have tabbed browsing?
01:55:46 Yeah, but it was because of Hyatt.
01:55:48 Hyatt was quite a feather in their cap.
01:55:49 Don Melton, who had been the engineering manager
01:55:53 for Safari from the beginning, had been in Netscape also.
01:55:56 And so there’s this diaspora of talent
01:55:58 and yet Hyatt was still kind of writing blog posts
01:56:01 about how to do tabs right.
01:56:03 And at some point Apple said, don’t blog about that.
01:56:05 That’s our proprietary tab technology.
01:56:07 And I was like, no, it’s not.
01:56:08 It was an opera and I’ve refined it.
01:56:10 So we had to replace people and we had Ben Goodger,
01:56:15 a New Zealander we hired at Netscape.
01:56:18 And he stepped in to be the Firefox lead.
01:56:21 And we also had this weird circumstance
01:56:23 where AOL finally did notice that Netscape
01:56:26 was kind of an albatross,
01:56:28 that they bought it for no particular benefit.
01:56:31 And even then the AOL politics were also heinous,
01:56:33 sort of East Coast politics.
01:56:35 I remember taking two trips there
01:56:36 because I was a principal engineer.
01:56:37 And so us principal engineers got trotted out
01:56:39 to do dog and pony shows in Dallas, Virginia.
01:56:42 And the AOL opera management was very East Coast in flavor.
01:56:46 And they were at that time merging with Time Warner,
01:56:49 which did not go well.
01:56:50 So one of these years we went out there
01:56:52 and we were all doing dog and pony shows
01:56:53 and there were these characters
01:56:55 that were sort of like marketing guys.
01:56:56 One of them was wearing a cravat
01:56:57 and one was named Reggie.
01:56:59 And they were very you rather than non you.
01:57:05 Or they were like what’s what’s Stoneman’s
01:57:07 metropolitan film, UHB, urban haute bourgeoisie.
01:57:13 They were haute bourgeoisie.
01:57:15 They were funny and they were kind of useless
01:57:19 and kind of preppy.
01:57:20 And then the next year we went back
01:57:21 and I said, where’s Reggie?
01:57:22 And it’s like, oh, Reggie’s not here anymore
01:57:24 because Time Warner realized that the merger
01:57:26 wasn’t in their interest either.
01:57:27 And then the sort of knives came out.
01:57:29 And these mergers rarely work, right?
01:57:31 This is very difficult.
01:57:32 You get these giant companies
01:57:33 and they think there’s gonna be synergy.
01:57:35 That was the 90s, late 90s watch word.
01:57:37 And there wasn’t synergy with AOL buying Netscape
01:57:39 and there wasn’t synergy with Time Warner and AOL.
01:57:41 But did AOL ever really work?
01:57:43 Was it ever really cool?
01:57:44 Like the same kind of fire and excitement
01:57:46 that Firefox eventually created,
01:57:48 was that ever there in AOL?
01:57:51 AOL was the right time to do a dial up service
01:57:55 that got distribution by basically
01:57:56 leaflet bombing compact discs on the country.
01:58:00 And they beat out CompuServe and the other ones,
01:58:04 Prodigy, and then the web happened.
01:58:06 And so you had almost like this isolated continent,
01:58:10 like some of the evolutionary biologists I follow
01:58:14 make fun of the funny large marsupial mammals of Australia,
01:58:19 how silly they are.
01:58:21 And so AOL is like Australia.
01:58:23 Yeah.
01:58:23 And you saw it over time because they kept aging
01:58:26 and they were using AOL to get online
01:58:28 and they couldn’t really use a web browser.
01:58:30 And it became sort of a valued cohort
01:58:33 because they still have relatively high
01:58:35 socioeconomic status and they have grandchildren,
01:58:37 but it’s going away, it’s dying at some point.
01:58:39 Towards the end of the aughts, that decade,
01:58:42 and then to the decade 2010 plus,
01:58:45 that Firefox became this incredible,
01:58:48 I forget when Chrome came out, but.
01:58:50 2008, September.
01:58:51 2008, but Firefox was the sexy cool thing
01:58:55 that represented a lot of the cutting edge technologies
01:58:57 and all that kind of stuff.
01:58:58 Web 2, it was amazing.
01:59:00 Kim O’reilly and John Battelle did the first Web 2 conference
01:59:03 which eventually became huge and they split it.
01:59:05 But that was in 2004, it was right when Firefox was out.
01:59:08 Craigslist was huge, it was killing classified revenue
01:59:11 for newspapers, but there was just this ferment.
01:59:14 People starting.
01:59:15 Wikipedia along there somewhere.
01:59:16 Gmail was already done and it was an impressive web mail.
01:59:19 There were others before it like Hotmail,
01:59:21 but Gmail was really impressive from Google.
01:59:22 And Google Maps, people started seeing what could be done.
01:59:26 They thought how can you drag the map around
01:59:28 and how does that work?
01:59:29 And it was all JavaScript and images and.
01:59:32 So Gmail was 2003, four?
01:59:34 Yeah, it actually started quite early.
01:59:36 It might’ve been 2002 or three,
01:59:37 but by the time we started dealing with Google and Firefox
01:59:40 to get the search deal,
01:59:41 which was the main revenue source for Mozilla,
01:59:43 and still is, 2004, early, Sergey Brinz,
01:59:47 one of his trusted engineer guys, Fritz Schneider,
01:59:50 made contact with me at Mozilla and we started talking
01:59:53 and we realized search and browser need each other.
01:59:56 And this is deeply true, right?
01:59:58 This is still true.
01:59:59 This is why a lot of the search engines
02:00:01 have their own browsers.
02:00:02 Yeah, so in case people don’t know,
02:00:03 the main revenue source for the browser
02:00:05 is the default search engine,
02:00:07 which is kind of incredible to think about
02:00:09 that that is a revenue source.
02:00:11 It’s a little bit sad.
02:00:12 Yeah, it leads to this capture or kill effect
02:00:14 where you have the search engine own its own browser
02:00:17 and other browsers may struggle to get the distribution
02:00:21 we talked about earlier.
02:00:22 So where, and you said you’ve figured out
02:00:26 that Google is working on its own browser
02:00:29 at some point there.
02:00:29 2006, yeah.
02:00:30 2006, so would you say Firefox versus,
02:00:33 was Internet Explorer part of the war here
02:00:35 or was the Firefox versus Chrome?
02:00:37 So Firefox didn’t quite cause Microsoft to reconvene IE.
02:00:40 They did do IE7 and I remember being on a plane
02:00:44 back from the standards meeting,
02:00:46 JavaScript standards meeting from Seattle, from Redmond,
02:00:48 and there was some Microsoft guy in front of me.
02:00:52 Turns out my wife knew him from her past life
02:00:54 before we married and he was just this bearded big guy
02:00:58 and he was like,
02:00:59 we should have just killed Firefox in the cradle.
02:01:01 All we needed to do was add pop up blocking in tabs
02:01:04 and we could have made Internet Explorer kill Firefox.
02:01:06 And it’s like, shoulda, coulda, woulda, pal.
02:01:07 And I was right behind him during this.
02:01:10 But they didn’t, they were slow
02:01:11 and IE7 wasn’t that great.
02:01:13 And what really got them started I think was Chrome.
02:01:18 And I talked to Larry Page in 2005,
02:01:21 I think I said, we’re talking about the Firefox relationship
02:01:24 but he was also saying, what about WebKit?
02:01:26 This was Apple’s version of the old KHTML engine from Linux,
02:01:32 the KDE side of Linux that was used in the Conqueror browser
02:01:35 also with Ks that Apple had forked.
02:01:38 And in 2005 was when Apple’s principals
02:01:41 including Dave Hyatt, Maciej Stokowiak,
02:01:43 some of my friends who are still there said,
02:01:45 we must stop patch bombing this poor KHTML project.
02:01:48 We should make a proper Mozilla like organization,
02:01:50 webkit.org.
02:01:51 Now it wasn’t a separate nonprofit or anything.
02:01:53 It was still Apple, it was Apple controlled
02:01:55 but they made their fork first class
02:01:58 and they made it be something that they all worked in
02:02:00 and lived in.
02:02:01 And that was before Chrome.
02:02:03 And then Chrome, Larry Page said, what about WebKit?
02:02:05 I said, yeah, it’s nice.
02:02:06 I have friends who work on it.
02:02:08 You might use that if you do your own browser.
02:02:09 Why don’t you do your own browser?
02:02:10 Don’t worry about Firefox.
02:02:11 You should do your own browser.
02:02:12 You can have your own opinion of how it should work.
02:02:15 And sure enough they did.
02:02:17 So by 2006, we knew they’d been working on it.
02:02:19 Some of my friends who’d been at Netscape
02:02:21 did the original demo.
02:02:22 And the demo wasn’t what you thought.
02:02:24 It didn’t have the fast JavaScript yet.
02:02:25 That was still off in Denmark on a farm.
02:02:29 Did it have tabs?
02:02:30 It had tabs because all browsers had tabs at this point.
02:02:32 And it had this software fault isolation I mentioned.
02:02:37 It was through process isolation.
02:02:39 So in theory, each tab has some operating system process.
02:02:43 And so what’s gonna take your tab down?
02:02:45 Well, WebKit has bugs that can crash it
02:02:48 but Flash was still big then.
02:02:49 All the restaurant sites remember.
02:02:51 And Flash crashed a lot.
02:02:53 So the demo that I heard about,
02:02:55 my friends at Netscape as a lot of people did,
02:02:57 inside Google was the sad tab.
02:03:00 They showed an early version of Chrome
02:03:02 which is just this bare bones tab browser.
02:03:04 They loaded a site with a known Flash volume
02:03:06 and then suddenly Flash crashes.
02:03:08 And everyone expected the whole browser to go down.
02:03:10 But instead you got this little sad face in the tab
02:03:13 and you could reload it and there it is again.
02:03:14 So this was an improvement.
02:03:16 It was a real move for security.
02:03:18 It was based on a company they acquired
02:03:21 called Green Border.
02:03:22 They had some really big brains like Olfar Erlingsson
02:03:25 I think was involved.
02:03:25 And they had done some exotic security stuff
02:03:28 but they ended up simplifying it to this process isolation.
02:03:32 And it was good.
02:03:34 And Firefox didn’t have it at the time.
02:03:36 So we were still struggling with security bugs.
02:03:41 So we knew Chrome was coming
02:03:42 but it took two more years to come out.
02:03:45 And we were still getting the Google search revenue
02:03:48 and we were still making Google the default engine
02:03:51 and Firefox was still growing.
02:03:52 Firefox grew I think until 2011.
02:03:55 That was when it peaked.
02:03:56 And as it started falling, it was because of Chrome.
02:03:59 Chrome came out in 2008 and it had a comic book
02:04:02 that leaked accidentally that showed some of the people
02:04:04 who worked on it.
02:04:05 Lars Bock was in there and so on.
02:04:07 It was kind of soft launch
02:04:08 because they didn’t market it heavily.
02:04:10 They didn’t push distribution.
02:04:12 But Google had reason to worry about distribution
02:04:14 because Microsoft was doing a search engine, Bing,
02:04:19 since 2007.
02:04:20 In fact, when they came out with Bing,
02:04:22 Google was worried that Microsoft would just brute force
02:04:25 switch the default browser in everyone’s Internet Explorer
02:04:28 or even Firefox on Windows to Bing from Google.
02:04:32 And Microsoft wasn’t I think ready
02:04:34 to dare the antitrust cops that way
02:04:37 even though they’d gone to sleep.
02:04:39 And I don’t think Bing was ready either.
02:04:42 But just in case it happened, Sundar Pichai,
02:04:45 who rose very well based on this work,
02:04:47 was sort of in charge of getting distribution deals.
02:04:50 And he got Google toolbar
02:04:52 and Google desktop search distribution.
02:04:55 And if you remember those pieces of software,
02:04:56 those were like desktop extensions,
02:04:59 toolbars or operating system extensions
02:05:01 for doing desktop search, searching your local files.
02:05:03 Kind of like Mac OS Spotlight, right?
02:05:05 Sadly, it died.
02:05:07 It all died.
02:05:08 And there were some features that we still missed
02:05:09 that didn’t make it into Chrome.
02:05:10 But Sundar got OEMs to bundle those.
02:05:14 And then he got enough of those deals
02:05:15 that by 2007 or eight, Google felt,
02:05:18 well, if Bing, Microsoft does the worst
02:05:20 and tries to force Bing,
02:05:21 we can reach in and reset it with that point of presence.
02:05:25 So that was good for Sundar’s career
02:05:27 and it was good for Google,
02:05:28 but it never came to pass that they had to defend.
02:05:30 Microsoft was still slow.
02:05:32 And by the time they saw Chrome come out,
02:05:35 then they did what would have been IE9.
02:05:37 And then they said,
02:05:38 we’re gonna have a fast JavaScript engine
02:05:39 to Chakra, Chakra core.
02:05:41 And they did okay.
02:05:43 They were another process isolated,
02:05:46 fast JavaScript browser, tab browser.
02:05:48 So it sounds like there’s a deep fundamental coupling
02:05:52 of search engine and browser
02:05:53 that’s mixing this whole thing up.
02:05:55 And obviously Firefox doesn’t have a search engine.
02:05:59 That’s like, I mean, you’re partnering with somebody
02:06:03 with a search engine.
02:06:04 With Yahoo or with Google or so on.
02:06:08 They tried Yahoo, that was unfortunate
02:06:10 because I think even though Marissa Mayer talked about it,
02:06:14 she never pulled it off.
02:06:15 They never restored the search team
02:06:18 that had been laid off.
02:06:19 I believe Carol Bartz was running Yahoo
02:06:21 when Carol said, I’ve got to get rid
02:06:23 of one of the three expensive things.
02:06:24 I’m gonna get rid of search.
02:06:25 And those researchers went to Google and Microsoft
02:06:29 and there was no way to put Yahoo search back together.
02:06:32 So when Firefox tried switching all their users
02:06:36 who’d stuck with a default from Google to Yahoo,
02:06:38 it was like mid December, 2014,
02:06:40 a bunch of users said, what just happened to my Firefox?
02:06:44 And others didn’t notice right away,
02:06:45 but over time they did.
02:06:46 And so over the next year,
02:06:48 the traffic just went away for Yahoo.
02:06:51 And yet they were obliged, I understand it.
02:06:54 I don’t have inside knowledge, but this has leaked out
02:06:56 and Danny Sullivan’s written about it,
02:06:58 search engine land.
02:06:59 I think the deal was like fixed payments to Mozilla.
02:07:01 So Mozilla was getting a bunch of money for traffic
02:07:03 that wasn’t staying because users
02:07:04 were resetting their default.
02:07:06 And this shows how defaults are important,
02:07:09 but they have to be good enough
02:07:10 that the user doesn’t override them.
02:07:12 And a lot of the commercial value in popular apps
02:07:16 is what are the default settings?
02:07:18 What is the default search?
02:07:20 But oftentimes there’s something just like you said,
02:07:21 I mean, if there’s something compelling
02:07:25 that’s also can beat out the default,
02:07:27 like tab browsing and so on.
02:07:29 And that’s where, I mean, we’ll talk about brave browser.
02:07:32 It feels like now we’re in this third stage
02:07:36 where there’s a Chrome, Firefox, Edge,
02:07:41 I guess it’s called and brave.
02:07:44 And these are all seem like really exciting,
02:07:48 I don’t know, innovative browsers.
02:07:50 They’re all kind of copying off of each other,
02:07:52 picking up the good stuff.
02:07:53 There’s evolution again, especially on tracking protection.
02:07:56 So privacy is this sort of global wave that’s rising.
02:08:02 I like to call it a wave because it’s a large,
02:08:04 somewhat chaotic structure.
02:08:07 It’s not a unitary good.
02:08:08 You can’t say I’m buying privacy for $3,
02:08:11 I’m paying $3 privacy.
02:08:12 Some people think a VPN does this
02:08:14 and are disappointed when it fails them.
02:08:15 But often people use VPNs for region unlocking video
02:08:19 or getting the US Netflix catalog.
02:08:22 But privacy is not a unitary good, it’s complex
02:08:25 and people are understanding it only over time
02:08:28 and as they get burned, but there’s a genie
02:08:30 that’s not going back in the bottle there.
02:08:31 People are fed up.
02:08:33 Apple has responded to this.
02:08:34 Apple was always making Safari, I think,
02:08:36 more of a privacy branded browser from the very beginning.
02:08:40 I think this was probably Steve Jobs.
02:08:42 Safari had private windows, private tabs
02:08:45 before Firefox did.
02:08:48 And these are only private in the sense
02:08:50 that they don’t leave local traces,
02:08:53 if you don’t want them to.
02:08:53 Turns out Safari does keep them around between shutdown.
02:08:57 But the canonical model is no local traces
02:08:59 after you close the private window.
02:09:01 No leftover traces that you went to some site
02:09:04 that you were embarrassed by
02:09:06 or bought a gift for somebody you wanted to keep secret.
02:09:10 But there’s still some level of tracking.
02:09:11 There’s network tracking.
02:09:14 Network privacy is not guaranteed at all
02:09:16 because you’re using the same internet and ISP
02:09:18 as a public window, a non private window.
02:09:21 But, Safari had that early on.
02:09:22 They also had a cookie blocking policy
02:09:26 that might take a little explaining.
02:09:27 When you, if you know what a cookie is,
02:09:29 it’s a little bit of storage in the browser
02:09:31 indexed by the name of the site.
02:09:33 And it’s really only the main name of the site,
02:09:35 like bofa.com or, you know, something like npr.org.
02:09:43 Every site can store some information in a cookie.
02:09:45 Every time it’s contacted by the browser,
02:09:48 the previous version is sent back.
02:09:50 And in the response from the server, the cookie’s updated.
02:09:54 So it’s this little bit of storage in the browser
02:09:56 that the site can keep updating
02:09:58 and it can store an encrypted version
02:10:01 of your login credentials with a timestamp
02:10:03 so you can stay logged in
02:10:05 without having to retype your password
02:10:07 every time you navigate,
02:10:08 which is how it would be if you didn’t have cookies.
02:10:11 The web protocols, especially in the 90s,
02:10:14 are so called stateless protocols.
02:10:16 So you go to your bank, you log in,
02:10:18 you go from your login confirmed page
02:10:21 to your account view.
02:10:22 If you didn’t have a cookie, you’d be logging in again.
02:10:24 Every time you type in the source.
02:10:26 So that was the great thing about cookies.
02:10:27 Luhmann truly did it in a hurry in 1994
02:10:29 before I joined Escape
02:10:30 and he did it for really holding that kind of credential.
02:10:34 But even then there was the image element
02:10:37 embedded in the page
02:10:38 and the image gets fetched possibly from a different server
02:10:41 and that request carries the last cookie,
02:10:44 which could be empty at first,
02:10:45 and the response carries the updated cookie.
02:10:47 So just by having images and cookies,
02:10:49 you got tracking because that image server
02:10:51 can be serving a little one by one pixel
02:10:54 and they still use the word pixel in ad tech.
02:10:56 And that pixel can be served from the same server,
02:10:59 embedded differently with different URL spellings
02:11:02 in the New York Times and ESPN.
02:11:03 And as you go from one to the other,
02:11:05 the image server can say,
02:11:06 I haven’t got a cookie for you.
02:11:08 It’s empty initially.
02:11:09 I’m gonna assign you user number 1234.
02:11:11 I’m gonna put a database entry in.
02:11:13 And I see, by the way,
02:11:13 I always fetch the name of the path part of the URL
02:11:15 that I was in the New York Times.
02:11:17 So you’re a New York Times reader.
02:11:18 And then you hit ESPN, same thing.
02:11:20 And the database gets updated
02:11:22 and the number user 1234 indexes in the database
02:11:25 to a profile of you, you’ve been tracked.
02:11:28 This was not intended.
02:11:29 And it was too late to undo by the time I got the Netscape.
02:11:32 I think Lou wanted to do Twinkies, he called them.
02:11:35 And he was trying to solve several problems.
02:11:37 He wanted them to be bigger
02:11:38 because initially cookies had a short size limit.
02:11:40 I think he wanted to solve the third party problem,
02:11:42 but Tom Paquin, the engineering manager said,
02:11:45 nope, no Twinkies, just cookies.
02:11:47 We’re done.
02:11:48 You’re done, son.
02:11:49 And that’s how a lot of that stuff was.
02:11:51 That’s how JavaScript got frozen
02:11:54 like a flying Amber in some ways
02:11:55 with that sloppy equality operator that I made
02:11:57 because of the early adopters.
02:11:58 And the cookie got stuck with this tracking hazard.
02:12:01 And then because JavaScripts can be like images,
02:12:04 they’re embedded in the page.
02:12:05 By the time Netscape 3, I made that work.
02:12:08 You can get a request with the last cookie value
02:12:10 and the response updates it.
02:12:11 That’s a tracking mechanism.
02:12:12 And that’s why you don’t even need images to track.
02:12:14 Now you just use scripts.
02:12:16 So this whole tracking economy evolved
02:12:20 and it depended on these accidents of the 90s,
02:12:23 these unintended consequences.
02:12:25 Well, it created some of the richest companies
02:12:27 in the world, right?
02:12:28 I mean, it’s the social media.
02:12:28 All I got was T shirts.
02:12:29 All I got is this crappy T shirt.
02:12:33 Yeah.
02:12:34 I mean, so that’s the fundamental problem
02:12:38 the world is facing now.
02:12:39 They’re looking at what social media has created
02:12:42 and they’re looking at,
02:12:44 and like a world is looking at itself in the mirror
02:12:47 and seeing that privacy is actually something
02:12:50 as opposed to like a nice thing to have.
02:12:53 It’s something that is actually should be fundamental
02:12:57 to the way we interact with the world
02:12:59 as part of our tooling.
02:13:00 And that’s where the Brave browser comes in.
02:13:03 And I suppose others as well are playing with this idea,
02:13:06 but Brave is at the forefront of that.
02:13:07 So maybe can you like describe what Brave is
02:13:11 and what are its key principles and what’s broken
02:13:14 and what is it Brave trying to fix?
02:13:16 So when I realized that these accidents
02:13:18 like the third party cookie,
02:13:19 the image or script that’s tracking you
02:13:21 or the JavaScripts that can do an invisibly now,
02:13:26 that all this stuff wasn’t intended
02:13:28 and that Firefox had supported extensions
02:13:31 that block some of these things,
02:13:32 I thought probably we should have browsers
02:13:34 just block some of these things by default.
02:13:37 These were not intended and they’re now unsafe.
02:13:39 They’re tracking you.
02:13:40 There could be data breaches, malware distribution,
02:13:44 bullying and psyops and other attacks on people.
02:13:49 Block that stuff, block that JavaScript.
02:13:51 I’m Dr. Frankenstein, I’ve got to deal with a monster here.
02:13:54 But obviously you go to Gmail,
02:13:56 there’s a bunch of script there
02:13:57 to make that amazing web client.
02:13:59 That’s okay, that’s first party JavaScript.
02:14:02 So how do you tell the first from the third party?
02:14:04 And it’s not easy.
02:14:04 It’s not a matter of just what’s embedded
02:14:06 from a different server because a lot of publishers
02:14:09 use benign scripts from unrelated domains
02:14:12 or apparently unrelated domains.
02:14:14 So you end up having to develop a sort of human
02:14:16 and machine learning practice around blocking.
02:14:19 And at Brave, we did that from the start
02:14:22 and built a research team to help drive it and automate it.
02:14:25 We realized that protecting people needed machine learning
02:14:28 and around 2017 spring,
02:14:30 I talked to my friends at Apple about this too
02:14:32 and they were also doing
02:14:34 what they call intelligent tracking prevention,
02:14:36 which uses local machine learning in the browser.
02:14:39 And the funny thing is, great minds think alike,
02:14:42 they were taking their third party cookie blocker
02:14:44 that was in Safari from the old days
02:14:46 and making it not have a big loophole.
02:14:48 Because what they did was in 2003, when Safari came out,
02:14:51 they said, we’re gonna block cookies
02:14:53 that are from those third party embedded elements
02:14:57 where you’ve never visited that site before.
02:14:59 So I’m gonna pick an ad company that got sold to AT&T,
02:15:02 so I’m not picking on anybody unfairly, appnexus.com.
02:15:05 Have you ever been to appnexus.com?
02:15:06 Nope.
02:15:07 I’ve never been there, but I guarantee you 10 years ago,
02:15:09 you probably had, if you were using Firefox,
02:15:11 you had a cookie, third party cookie,
02:15:13 because you were being tracked by them
02:15:14 and they were using that cookie
02:15:15 to build up a profile of you.
02:15:17 In Safari, as long as the user never went to appnexus,
02:15:20 that cookie would not be set.
02:15:22 And that was a real move for privacy early on
02:15:25 when jobs were still around in Safari.
02:15:27 But it had this loophole that if you do go to appnexus,
02:15:30 then why it’s okay to be a third party cookie.
02:15:32 And so appnexus did something very naughty.
02:15:35 They took their ad partners
02:15:36 to put the actual ad you click on.
02:15:39 And they said, hey, add a little script
02:15:40 so that when somebody clicks on the ad,
02:15:42 before it goes to your landing page,
02:15:44 redirect to appnexus and we’ll redirect
02:15:46 to the landing page.
02:15:47 And by doing that, they set a first party cookie
02:15:49 and they got whitelisted.
02:15:49 So it was a loophole they exploited.
02:15:51 Intelligent tracking prevention in Safari
02:15:53 was sophisticated enough to counteract this
02:15:56 and it did other things and it’s evolved since they did it.
02:15:59 And we’ve evolved brave too.
02:16:00 And so when I say machine and human learning,
02:16:02 there’s a real set of techniques here.
02:16:05 They have to fight.
02:16:06 This is a fascinating problem.
02:16:07 Fingerprinting, right?
02:16:08 Anytime you have a little bit of storage in the browser
02:16:10 associated with a website,
02:16:13 if the bad guy can get 32 websites,
02:16:15 each one has a bit of storage, that’s 32 bits.
02:16:17 You can turn the bit on or off,
02:16:19 you can make 4 billion numbers,
02:16:21 you can make an identifier.
02:16:22 It’s called a super cookie sometimes.
02:16:26 There are weaker ways that are statistical.
02:16:28 They’re called fingerprinting.
02:16:29 You have to block all of them
02:16:30 and you have to not only automate,
02:16:32 you want to work in the web standards body
02:16:34 to put privacy in by default, by design,
02:16:38 from the get go, not add it as an afterthought
02:16:40 or go hogwile with new web APIs
02:16:43 to add a bunch more local storage or fingerprint surface area.
02:16:47 And that’s been a struggle too,
02:16:48 because guess who’s the new Microsoft
02:16:50 in the standards body?
02:16:51 It’s Google.
02:16:52 And they’re not in favor of privacy first.
02:16:55 They want to do privacy their way,
02:16:58 only under, I would say, market pressure.
02:17:01 But with Apple and with Brave leading the way,
02:17:03 we block third party cookies almost without exception.
02:17:06 So we’ve just blocked them.
02:17:07 And that gives us a very strong privacy benefit,
02:17:11 but it also means some sites just don’t work right.
02:17:13 Embedded YouTube videos might not work right.
02:17:15 So we’re adapting in a similar way to Apple’s done with ITP
02:17:19 to make third party cookies blocked,
02:17:22 but to sort of simulate what looks like
02:17:26 a working third party cookie for the site.
02:17:28 It essentially tries to partition each site
02:17:32 and its third parties into its own sort of cookie jar.
02:17:34 Got it.
02:17:35 And so, like you said,
02:17:37 is this both like a human fine tuning issue
02:17:41 and a machine learning problem?
02:17:42 And as the humans learn,
02:17:44 then they train the machine learning.
02:17:46 But, you know, maybe Google aside or including Google,
02:17:50 there’s millions of dollars, if not B,
02:17:53 billions of dollars to be made
02:17:54 from fighting the ways of Brave.
02:17:57 That’s right.
02:17:58 And it’s been an interesting change
02:18:00 from when we started in 2015.
02:18:01 When we started, you know, ad blocking extensions,
02:18:04 ad block plus was one of the big ones
02:18:06 that started on Firefox in 2006, I believe,
02:18:08 had gotten to a certain level of use around the world.
02:18:11 And browsers like UC Web, UC Browser in Asia
02:18:14 had some amount of ad blocking built in and on by default.
02:18:17 So, a page fair was a startup
02:18:20 and they measured ad blocking adoption.
02:18:23 And they tried to say,
02:18:24 hey publishers, you’re, you know,
02:18:26 30% of the visitors to Pitchfork or Wire
02:18:30 to Conda NAS properties are using ad blockers.
02:18:32 If we can somehow convince them
02:18:34 to lower their ad blocking for your site,
02:18:37 that could be like a 43% lift, right?
02:18:39 And, you know, three sevenths.
02:18:42 Well, that’s easier said than done.
02:18:44 And PageFair and others, SourcePoint,
02:18:46 and many others tried to either smuggle ads through
02:18:48 or cajole the user into letting, you know, ads appear.
02:18:52 And it didn’t really work.
02:18:53 And meanwhile, the ad blocking adoption
02:18:54 has just continued intelligent tracking prevention
02:18:56 in Safari in 2017, Brave from 2016 on
02:19:01 with very strong cookie blocking and other protections.
02:19:04 And this is not going away.
02:19:06 The publishers used to rage against it.
02:19:08 Like we would try to say, we can help you.
02:19:10 You’re dealing with users
02:19:11 who are already blocking all your ads.
02:19:14 We can try to put back some economics
02:19:16 that help the user and you
02:19:18 that led to the basic attention token
02:19:19 that we started with Bitcoin.
02:19:21 We can be your friend.
02:19:22 Don’t just fingerprint us as an ad blocker
02:19:24 and treat us as an enemy.
02:19:26 But in 2015 or 16, it was like,
02:19:28 nah, you’re an ad blocker.
02:19:29 Get out of here.
02:19:30 I hate you.
02:19:31 And by 2017 or 18, it’s like something’s happening.
02:19:33 The ad blocking is not stopping
02:19:34 and we’re all getting sort of pulled
02:19:37 on the Google’s plantation through AMP, AMP.
02:19:41 Or we’re getting killed by the Google ad system we use
02:19:44 because it’s taking all the revenue
02:19:46 or it’s permitting or some other vendors we use
02:19:49 are permitting ad fraud.
02:19:50 And so a fake New York Times is getting paid
02:19:52 by the marketer running an ad that a bot clicks on.
02:19:57 And the real New York Times
02:19:58 that’s supposed to get the ad doesn’t get it.
02:20:00 And there’s something really broken
02:20:01 about that kind of system.
02:20:02 And that fraud is mediated through Google’s ad exchange,
02:20:06 which is the biggest of them all.
02:20:07 And Google takes a fee.
02:20:09 There’s a flip side of that,
02:20:10 which is malware distribution, malvertising,
02:20:12 where fake advertisers put malware payloads
02:20:16 in or exploit hit loaders in JavaScript
02:20:19 and they smuggle them in ads onto real publisher pages,
02:20:22 the ad exchange takes the fee.
02:20:24 Now, I’m not a lawyer.
02:20:25 I’m not gonna say this is a RICO predicate,
02:20:27 but why is the ad exchange facilitating fraud
02:20:30 and malware distribution and taking a fee?
02:20:32 It’s not right.
02:20:32 As opposed to just fighting,
02:20:33 this is the really interesting thing about Brave
02:20:35 is as opposed to just fighting
02:20:37 and then being treated like an ad blocker,
02:20:39 you’re providing an alternate.
02:20:42 There’s a philosophical idea here
02:20:45 that might change the nature of the internet
02:20:47 with the basic attention token.
02:20:49 Yes.
02:20:50 Well, maybe what is basic attention token BAT
02:20:54 and how does it work?
02:20:55 Okay, I’ll tell the story first by saying how I came to it.
02:20:58 I realized for a long time at Firefox,
02:21:00 we were dependent on this Google search deal.
02:21:02 And I thought, now that Chrome’s out,
02:21:05 maybe that’s gonna go away.
02:21:07 And they just, at some point, Google will say,
02:21:10 Firefox, like old yeller, you saved me from the rabid beast,
02:21:14 now I have to shoot you in the head.
02:21:16 Done your job, sad but true, goodbye.
02:21:19 And what could we do?
02:21:21 And I think Mozilla doesn’t know what to do.
02:21:24 This is something that I couldn’t solve there
02:21:25 and I don’t think they can solve.
02:21:27 But I thought, why is the browser
02:21:29 the sort of passive servant of these big tech companies?
02:21:32 Why is it a blind runtime for ad tech JavaScripts,
02:21:36 including from Google?
02:21:38 Why doesn’t it block some?
02:21:39 And if it blocks some, why can’t it reconnect users,
02:21:43 readers, fans with publishers, creators, websites?
02:21:48 Why can’t it help people make direct payments
02:21:51 or even possibly get an ad revenue share for private ads
02:21:54 that are placed in the browser?
02:21:56 The ads are all placed in the browser.
02:21:57 Some people have this sort of model
02:21:58 that the server’s painting the ad into some,
02:22:01 flash combined package or into some giant image
02:22:06 and then it all gets sent down, that’s not how it works.
02:22:08 All the ads you see on the web are placed in your browser
02:22:11 by it calling out to various ad tech partners
02:22:13 and Google’s among them.
02:22:15 And so if you block those scripts,
02:22:17 you break the advertising flow of money
02:22:22 from the brands and their agencies to the publishers.
02:22:26 And if you want to reconnect it directly with the user,
02:22:29 you have limited choices.
02:22:30 The user generally isn’t gonna sign up
02:22:31 with a ACH bank connection or a credit card.
02:22:34 The publisher isn’t gonna sign up the user
02:22:37 except as a subscriber and then they’re gonna overcharge you
02:22:39 because they want you to cross subsidize all the content
02:22:42 and buy more than you read and all that stuff.
02:22:43 And how many, people are doing great who are big names
02:22:47 like New York Times and The Washington Post,
02:22:48 but how many subscriptions are you as a user gonna pay for?
02:22:51 This is why startups like Tony Hale Scroll
02:22:54 are trying to do a portable subscription system.
02:22:57 By the way, just a small tangent there,
02:22:58 even the New York Times is really annoying
02:23:00 how difficult it is to subscribe.
02:23:03 There’s way too many clicks.
02:23:04 They don’t make it easy.
02:23:05 And I had friends a few years ago,
02:23:06 I think they fixed this, who would pay for the paper
02:23:08 and then they’d go online and they get upcharged
02:23:11 for the digital and there was no break.
02:23:13 There was no connection between them.
02:23:15 But publishers are not that technical
02:23:17 and they can’t all get you to subscribe.
02:23:19 You can’t have a thousand subscriptions.
02:23:21 So for a long time, people talked about micropayments.
02:23:23 There was Blendle and other ones which came to the US,
02:23:25 but it didn’t grow.
02:23:27 And I thought, if you have just a browser
02:23:29 and it’s protecting you by blocking
02:23:31 all this ad tech tracking junk,
02:23:33 it can provide you an option that uses cryptocurrency
02:23:36 to let you support your favorite sites
02:23:39 and even YouTube channels.
02:23:40 And that we prototyped with Bitcoin.
02:23:42 And that meant the user had to be of means to contribute
02:23:45 and willing to contribute,
02:23:47 but it could be done on the Bitcoin blockchain
02:23:49 and it could be fairly efficient
02:23:50 even though Bitcoin went through a period
02:23:52 when we had this prototype running in 2016 into 2017
02:23:55 where Bitcoin was very congested and very slow to confirm
02:23:58 and the fees got very high.
02:24:01 And a lot of users who were not Bitcoin maximalists
02:24:03 or even experienced,
02:24:04 we helped them out by embedding a Coinbase buy widget
02:24:07 and they had the income to buy, but it was hard.
02:24:10 It was like, do I buy $5 a month?
02:24:12 But the fee is like 450.
02:24:14 I better buy in larger batches, right?
02:24:16 And they’re like, I don’t wanna own that much Bitcoin.
02:24:18 So it became this painful thing.
02:24:21 And the real idea that I had of private ads
02:24:23 that pay the user a rev share
02:24:25 couldn’t be realized alone in that kind of system.
02:24:30 In these cryptocurrency systems,
02:24:33 especially with the blockchain we switched to Ethereum,
02:24:35 you can have smart contracts.
02:24:36 The Bitcoin system is not turned complete.
02:24:38 So what you can do with the scripts is more limited,
02:24:41 but you can still do sort of clever things
02:24:44 even with Bitcoin script.
02:24:46 What we wanted to do was sort of a three sided ecosystem.
02:24:49 We wanted users, creators or publishers and advertisers.
02:24:53 And we wanted the advertisers to put money in
02:24:55 just like they do today,
02:24:57 but without going through the Googles and the app nexuses
02:25:00 and all these other ad tech companies,
02:25:01 because those companies take out a huge cut.
02:25:04 The Guardian in the UK once did an experiment for a month.
02:25:06 They bought out their own ad space.
02:25:08 They put in a pound and they were paid 30 pence.
02:25:11 70% was coming out to the intermediary vendors
02:25:15 they were using.
02:25:17 And that’s like the opposite of what the app store does.
02:25:19 The app store takes 30% and gives the publisher 70%.
02:25:22 So pretty broken, in the old days of the superstation TBS,
02:25:26 the media owner would get 85%.
02:25:29 So these splits have become really unbalanced
02:25:33 and the middle players, the ad tech vendors
02:25:35 are taking out way too much money.
02:25:37 And they’re doing something worse, which has been noticed.
02:25:39 They’re letting not just the malware vendors,
02:25:44 but also the ad fraud side, which fakes the publishers
02:25:47 and clickbait merchants come in and steal traffic
02:25:52 from good sites.
02:25:53 Because once you have a certain audience identified
02:25:55 at one site, Jason Calconas told me this
02:25:57 about his experience with, I guess it was in Gadget,
02:25:59 I forget which site he was running.
02:26:01 But once he started using an ad partner
02:26:04 that was sharing his audience information
02:26:06 across multiple sites, he saw his competitors
02:26:08 stealing all his traffic.
02:26:09 And then what’s worse is the clickbait sites
02:26:11 that just have much cheaper rates steal all that traffic.
02:26:15 And that facilitates fraud, facilitates fake news,
02:26:20 all sorts of problems.
02:26:21 So Gray blocks it and then we give users the ability
02:26:24 to give back and because we invented
02:26:27 the basic attention token on Ethereum,
02:26:28 we can do this three way split.
02:26:31 And we can give users a share of the revenue.
02:26:33 And if they want to take it out, they can.
02:26:35 Now, unfortunately for us and for all blockchain,
02:26:38 the regulators are saying,
02:26:39 we’re gonna have to know who you are.
02:26:41 There’s the Treasury Department’s FinCEN agency.
02:26:47 There’s the Office of Foreign Asset Controls, OFAC.
02:26:50 There’s the other regulators in the federal government
02:26:55 that take a very dark look at things like money laundering
02:26:58 and sending money to someone named Osama bin Laden.
02:27:01 So compliance starts to come in.
02:27:03 And even now they’re threatening for pure Bitcoin
02:27:06 sending to some address.
02:27:07 If you’re a Coinbase, you’re gonna have to know
02:27:10 who’s at that address.
02:27:11 You’re gonna have to start.
02:27:12 Like the actual identities of people involved.
02:27:13 Yeah, now with Coinbase members,
02:27:14 you sign up and they know you
02:27:15 and they comply with the regulations.
02:27:16 They’re a regulated money services business.
02:27:20 And, but if somebody’s using their own self custody,
02:27:25 so called self custodial wallet
02:27:27 where they have the hardware private key
02:27:29 and they’re not named and they want to send to that address,
02:27:33 our friends in the federal government are talking about
02:27:35 requiring at some threshold and knowing who that is.
02:27:37 So.
02:27:38 Some threshold that’s unreasonable.
02:27:40 It’s not that big.
02:27:42 Yeah.
02:27:43 Yeah, I don’t know how this will play out.
02:27:43 I think crypto is here to stay.
02:27:44 I think the beauty of being able to send peer to peer
02:27:47 without any bank in the middle,
02:27:48 without any huge wire charge and two day delay
02:27:51 and all that nonsense.
02:27:52 It’s beautiful and I’ve used it and I love it.
02:27:54 But we’re pragmatists are brave about crypto.
02:27:56 And we realized that anything like a revenue split,
02:27:59 we can’t facilitate without being licensed in a certain way
02:28:02 and it requires knowing who the user is.
02:28:03 So our default mode doesn’t know who the user is.
02:28:06 It instead imputes to the user’s browser,
02:28:09 some of the revenue and allows that browser
02:28:11 to steer it back to the creators.
02:28:14 And we do have to identify the creators.
02:28:16 But as things improve and who knows how it’ll play out,
02:28:20 there should become a day when this full vision
02:28:22 can be done more fully on a blockchain.
02:28:25 But regulations and the practicalities of today’s blockchains,
02:28:29 which are not that fast and not anonymous over time,
02:28:32 you fingerprint yourself over time.
02:28:34 We do some of this with the browser.
02:28:36 So one of the ideas of the basic attention token
02:28:39 is to make a hybrid system
02:28:41 that’s stronger than blockchain alone.
02:28:43 It’s the browser and the blockchain.
02:28:45 And the browser is this trusted endpoint software.
02:28:48 It’s this universal app.
02:28:49 Everyone uses browsers.
02:28:51 The bigger the screen, the more you’re in the browser
02:28:53 and the less you install fat clients for things.
02:28:56 I use Slack on Mac OS and it’s like a browser.
02:29:00 It’s based on an electron framework we used to use.
02:29:02 And it’s just, it’s not that great.
02:29:04 Some of the people at Brave use Slack in Brave as a…
02:29:07 In the browser, yeah.
02:29:08 In the browser, yeah.
02:29:09 I use that often, yeah.
02:29:10 And I noticed on the iPad, I use apps less.
02:29:13 The smaller the screen, the browser got handicapped
02:29:16 by Apple and Android both.
02:29:17 And it also can be slower or not have the right affordances,
02:29:22 the interface with the security limited APIs.
02:29:26 But in principle, with the right permissioning,
02:29:28 you can make the web browser just as good as any app.
02:29:31 You make it be a super app.
02:29:33 And that’s part of our mission at Brave.
02:29:35 So we want to have the economics that got captured
02:29:37 by these big tech companies through tracking
02:29:40 and through social networks.
02:29:41 We want to block that for your own safety
02:29:43 and then let you opt into a cleaner world
02:29:45 where you keep your data defended in your browser
02:29:47 and you can actually realize value from it.
02:29:49 So the way our ad system works,
02:29:51 I mentioned it being private, but how does that work?
02:29:53 We don’t see your data at all.
02:29:54 All browsers are sort of the mother of all data feeds,
02:29:57 your history, all your searches at all engines.
02:30:00 Each engine sees the queries you send to it,
02:30:02 but it doesn’t see the others,
02:30:03 but the browser sees them all.
02:30:05 Machine learning in the browser that you can opt into
02:30:07 can study all that in a very complete way
02:30:10 and do a better job than Google does.
02:30:11 Google has cookie and scripts across the web
02:30:15 from acquiring DoubleClick, they have YouTube,
02:30:17 they have Android, they have search,
02:30:19 which is still their big revenue lane,
02:30:21 but they don’t see everything.
02:30:22 The browser sees everything.
02:30:23 And if it can do a good job locally,
02:30:25 and this is not advanced machine learning,
02:30:26 this is not TensorFlow, this is like SVMs now,
02:30:29 naive Bayes, then you can match intense signals,
02:30:35 intense signals from those data feeds,
02:30:37 searches, the queries, the history, how much you’re
02:30:40 scrolling down a page, how much you redid a search.
02:30:43 It’s all blind browser algorithm, we don’t see that data.
02:30:47 And then pick the best ad from a fixed catalog per day.
02:30:50 And the catalog is fixed across a large population per day,
02:30:53 and it only updates once a day,
02:30:55 because new offers come in and old ones expire,
02:30:57 sometimes every week or every month.
02:30:59 And that catalog, and there can be many such catalogs,
02:31:02 is sold by our direct sales team.
02:31:06 And so we’re making an anonymous audience available
02:31:09 to advertisers without the advertisers tracking them.
02:31:12 Instead, each browser is a little machine learning system
02:31:15 that’s picking the best catalog entry.
02:31:17 Now, the catalog is not the ads, those are big, right?
02:31:19 It’s a video or a webpage, it’s just the link
02:31:21 to an edge cache, and there are many such edge caches.
02:31:23 We’re not trying to protect them from seeing
02:31:25 your IP address, it’s not really feasible.
02:31:27 We could use Tor, but we don’t yet.
02:31:30 And then some keywords about the ad.
02:31:31 So it’s basically like metadata and a link.
02:31:34 And that’s what the catalog consists of,
02:31:36 and that’s what the machine learning picks.
02:31:37 And the machine learning is learning
02:31:39 about the use specifically locally
02:31:41 in order to choose from the catalog of different ads.
02:31:44 Couldn’t this possibly be like a multi billion dollar,
02:31:47 isn’t this taken on the Google ad?
02:31:50 Could be.
02:31:51 So like what, I mean, one question to ask,
02:31:54 there seems to be some really profound ideas here
02:31:57 that are different than what the internet has grown up to be.
02:32:01 If Brave or something like Brave,
02:32:05 the ideas, the fundamental philosophical ideas
02:32:07 underlying Brave went out and runs 95% of the internet,
02:32:13 how does that change the, what are the major things
02:32:18 these changes about the internet?
02:32:19 So social networks and then the creatives,
02:32:21 like YouTube creators and all that kind of stuff.
02:32:23 So let’s talk about that.
02:32:24 First of all, if Brave gets 95%,
02:32:26 I’m gonna demand a recount, because I won’t believe it.
02:32:29 I don’t know, I think we’re trying to put things
02:32:31 into web standards that can be standardized across browsers.
02:32:34 So the main value of Brave will be the trust users have in us
02:32:38 and our ability to give the best deal to users.
02:32:41 So 70% of the gross ad revenue we give to the user.
02:32:45 And if they go through that KYC process I mentioned,
02:32:47 they can take it out.
02:32:48 They can also give it back, they can take some out,
02:32:50 give the rest back.
02:32:51 They can add basic attention tokens to give back.
02:32:54 Some of them turn off the ads,
02:32:56 cause they just don’t like ads,
02:32:57 but they put in $20 a month.
02:32:58 But I believe Zuko of Zcashframe does that.
02:33:01 And that’s very generous,
02:33:02 because the browser is just anonymously
02:33:04 based on his browsing, sort of keeping score
02:33:06 on how much time he spent on this video, on that website.
02:33:09 And if those sites verify in sort of a,
02:33:13 like getting a domain certificate fashion,
02:33:15 they can get paid, they can get part of his $20 a month.
02:33:19 So that vision could go big.
02:33:21 And if it does, I hope it’s across multiple browsers.
02:33:23 I don’t know that they’ll all compete well
02:33:25 on the quality of the ads, the quality of the ad blocking
02:33:29 and tracking protection.
02:33:30 Those are subject to competition.
02:33:31 It’ll take a while to standardize them.
02:33:33 But I think that would be a better world.
02:33:35 It would have less counterparty risk,
02:33:38 fewer fee takers in the middle, really just the browser.
02:33:40 We’re taking 30%, sort of the app store split.
02:33:44 And if we get bigger, maybe we can take even less.
02:33:47 Social networks, creators.
02:33:49 If you look at YouTubers, a lot of them are the indies
02:33:52 that are getting some size are getting sponsorship deals.
02:33:56 They’re using Patreon.
02:33:58 They’re encouraging people to subscribe
02:34:01 and give them regular money through Patreon.
02:34:04 But that’s centralized through Patreon.
02:34:06 So there’s censorship hazards, there’s a 5% fee.
02:34:09 What if that were a web standard?
02:34:10 What if Brave pioneered it first and we took 3%?
02:34:14 And we did it in a way that was through your browser
02:34:17 so we couldn’t censor it.
02:34:19 That’s brilliant.
02:34:20 Do you think it could be standardized across browsers?
02:34:22 Can Internet Explorer come in again and…
02:34:25 Yeah, protocols are easy to copy
02:34:27 in that they’re meant to be interoperable.
02:34:29 So there’s a risk there.
02:34:31 And the loyal users might be tricked into leaving you.
02:34:33 Or they might, because of that distribution power,
02:34:36 you might end up getting stomped.
02:34:38 I don’t know, I can’t predict the future.
02:34:39 I think antitrust is back on the case finally in the US.
02:34:42 And certainly in Europe, G Comp is doing its thing.
02:34:45 So I’m hopeful that we’ll have a period of innovation.
02:34:48 People were talking, like Elizabeth Warren was talking
02:34:50 about breaking up the tech companies very clearly.
02:34:53 Now she didn’t win, and I suspect that won’t happen,
02:34:56 but I also suspect that Google might be smart enough
02:34:58 to see they should do something more
02:35:01 than just put privacy perfume on Chrome.
02:35:03 They should maybe get rid of DoubleClick or something,
02:35:05 divest something.
02:35:06 I don’t know, it might happen.
02:35:07 So Brave might inspire Google to completely change
02:35:10 the way they’re doing things in the browser?
02:35:11 They’re already doing something,
02:35:12 you may have read about called the Privacy Sandbox
02:35:15 or Flock, which they have this bird metaphor going,
02:35:20 Turtle Dove, Fledge.
02:35:22 But these systems have been very Googley,
02:35:25 kind of overengineered, and yet,
02:35:27 depending on differential privacy,
02:35:29 which has weakness over time, if you know how that works,
02:35:31 it’s kind of injecting noise to hide you in a crowd,
02:35:34 but over time an adversary can pull you out of the crowd.
02:35:37 This doesn’t look like it’s gonna become a standard.
02:35:39 Like Apple, Brave, Mozilla, we’re not gonna just say,
02:35:42 oh, Google, you saved us.
02:35:44 You’ve invented the Privacy Sandbox,
02:35:46 so we’ll all just adopt it.
02:35:47 Not gonna be that easy.
02:35:48 It’s gonna be more like pieces of what we do in Brave,
02:35:51 the synonymous ad matching or the blind signature
02:35:54 cryptography we use to confirm the ad impressions.
02:35:57 That’s David Chow’s invention.
02:35:59 That could get standardized.
02:36:00 In fact, some of that is being standardized.
02:36:02 Even Google’s in favor of so called trust tokens,
02:36:04 which are Chowmian blind signature certs.
02:36:07 But they’re not using them for ad confirmations
02:36:09 because they don’t wanna blow up their own business.
02:36:11 And they need to let some of the publishers they serve
02:36:14 have other ad tech scripts on the page.
02:36:17 And so they’re kind of caught.
02:36:18 And this is something I realized doing Brave.
02:36:19 I thought, what’s Google’s innovators dilemma
02:36:22 apart from just being mature and having trouble innovating?
02:36:26 It’s that they have come to depend on this ad tech system
02:36:30 that has all these vendors that publishers rely on
02:36:34 because publishers aren’t technical enough.
02:36:36 And I feel for the publishers,
02:36:37 but I realized the users have to come first.
02:36:39 And if you give the users a better browser that’s faster,
02:36:43 then you’ll get enough users to give back
02:36:46 or support publishers.
02:36:47 The speed and the battery savings
02:36:49 and the data plan savings are significant.
02:36:51 There’s so much bad JavaScript involved in ad tech
02:36:53 that if you block it, you sort of chop off
02:36:55 what’s called the programmatic waterfall,
02:36:57 which chains a bunch of requests.
02:36:59 Yeah, that’s one of the incredible things about Brave.
02:37:01 I guess you’re saying you should attribute it
02:37:03 to the fact that the messy JavaScript, no offense.
02:37:06 No offense.
02:37:07 Not my solution.
02:37:08 I mean, Brave just feels faster.
02:37:13 Even then, I mean, Chrome was fast.
02:37:16 One of the things that it was like impressive
02:37:18 is it showed that browsers can be really fast
02:37:21 and Brave is even faster than that, which is incredible.
02:37:24 And it saves the network, which means data plan.
02:37:26 It saves battery because the radio consumes your battery
02:37:29 when it’s running more to do those requests.
02:37:31 And it’s just stunning how many there are.
02:37:32 Like some of my Google friends were like,
02:37:34 oh, that’s just that bad site.
02:37:35 They’ll fix it.
02:37:36 And you actually do a survey of web pages
02:37:38 that they’re like mostly like that.
02:37:40 I know Google engineers could make everything
02:37:42 super efficient, but they can’t,
02:37:44 especially in antitrust court, do it.
02:37:45 They cannot take over all the publishers and do that.
02:37:48 They’re trying with accelerated mobile profile, AMP.
02:37:51 They’re trying to pull publishers.
02:37:53 They’re like, oh, you poor publishers
02:37:54 don’t know how to make your pages fast.
02:37:56 Put them on our AMP system.
02:37:58 We’ll give you extra placement in the search carousel.
02:38:00 That’s an antitrust problem for one.
02:38:02 But it’s also publishers we talk to hate it
02:38:04 because it degrades their brand.
02:38:06 Now they look like a gig writer wrote a piece
02:38:08 that’s got Google’s framing an AMP URL on top of it.
02:38:12 And they’re trying to fix that too.
02:38:13 But it just looks like Google’s Borgifying
02:38:16 all these publishers and they don’t want to be plugged
02:38:18 into the Borg cube.
02:38:19 They want to build up their own brand and have loyal readers.
02:38:22 So, you know, I’m in favor of giving the users power
02:38:25 to help all the publishers and the little platoons
02:38:28 and the creators.
02:38:29 And so we talked about Patreon.
02:38:30 What about social networks?
02:38:31 Well, they’re inherently like search, a global algorithm.
02:38:35 You’re trying to find friends of friends.
02:38:37 You’re doing the transitive closure of a graph
02:38:39 induced by this friend of relation.
02:38:41 But you should own your friend relation.
02:38:45 You should own your posts.
02:38:46 They shouldn’t be owned by somebody else
02:38:48 who can take them down or censor them.
02:38:51 And your friend relations, you should be able
02:38:52 to find those friends on other networks.
02:38:54 And that’s why I’ve tweeted about this.
02:38:55 I haven’t built it yet.
02:38:56 What if the browser could keep track of those for you?
02:38:59 What if the browser could maybe combine Facebook and Twitter
02:39:03 and you could find your friends on both
02:39:05 and you could have a sort of multi.
02:39:06 So that relationship is not owned by Facebook or Twitter.
02:39:09 It’s owned by you through the browser.
02:39:12 They’ll have terms of use and they’ll say they own it.
02:39:14 But if they zap you on one and you’re still on the other,
02:39:17 your friends find you and the browser
02:39:18 could preserve a combined view.
02:39:20 You could resurrect almost across networks.
02:39:23 It’s something I wanna maybe quickly ask you about.
02:39:26 On that front, there’s been quite a lot of centralized,
02:39:31 we talked about Wall Street Bets and then Robinhood.
02:39:35 There’s been centralized banning of different accounts
02:39:39 and removing like Parler, for example, from AWS
02:39:42 and this kind of overreach of centralized control.
02:39:46 Is your hope that it’s possible to,
02:39:49 like what are your thoughts about that in general?
02:39:51 And then is it possible to create tools
02:39:54 that give individual people the power
02:39:56 to fight back against overreach of such control?
02:40:00 So we’re talking about oligarchy, I do think.
02:40:02 And if it controls a nation state, that’s formidable.
02:40:05 It’s the tax and the police power, the military power.
02:40:08 It means that you may have the great firewall of China.
02:40:10 You may have people in China who are jailed
02:40:13 because of their tweets, right?
02:40:14 This is a serious threat.
02:40:15 I can’t minimize it or say that we’ll win.
02:40:18 I don’t know how it’s gonna go.
02:40:19 But I do think, like I said earlier
02:40:21 about the kind of reason people find ways around things.
02:40:24 The internet routes around censorship.
02:40:25 And this is not to endorse any particular bad faction.
02:40:28 One of the things that happens
02:40:29 when you try to wave the free speech flag too much,
02:40:33 you say, I’m not gonna censor anything
02:40:34 and you get colonized by terrible, terrible people.
02:40:37 I don’t care if you call them neo Nazis,
02:40:39 some of them could be doing illegal things.
02:40:41 And you don’t want them colonizing
02:40:44 because it’ll ruin your reputation
02:40:45 and destroy your business.
02:40:46 So what you really want is that kind of
02:40:48 user first subsidiarity, that subjectivity.
02:40:51 I want my social networks to be composited
02:40:55 in some multi social user interface
02:40:57 where I don’t lose track of people across networks.
02:40:59 And if they leave one or they get banned from one,
02:41:01 I can find them on another,
02:41:02 I can still sort of thread them together.
02:41:04 That’s brilliant.
02:41:05 And this didn’t happen because browsers
02:41:07 got captured by the central powers.
02:41:10 Why did they get captured?
02:41:10 Mostly because of search.
02:41:11 And search is a central algorithm.
02:41:13 So Larry Page said this too many years ago.
02:41:15 He said, with search, you’re giving up a little privacy
02:41:17 by handing the query over to us.
02:41:19 And we’ll error correct it.
02:41:21 Alan used to be a Google executive.
02:41:24 He said, oh yeah, we used to laugh.
02:41:25 They’d all be doing typos and they’d be typing
02:41:27 the wrong word.
02:41:28 And we’d be like, no dummy, type that query.
02:41:29 And it’s like, okay Google,
02:41:31 might want to dial back that ego a little bit.
02:41:33 But yes, you do see all the queries
02:41:35 and you can improve them and you can find the best results.
02:41:37 And that was Google’s forte.
02:41:38 When we did the Firefox deal in 2004,
02:41:40 Google was really good.
02:41:42 And over time, SEO, which is an adversarial game,
02:41:46 and Google itself buying all these companies
02:41:48 and crowding its own results page
02:41:50 with its own tied in stuff.
02:41:53 The YouTube.
02:41:54 It’s a slippery slope that happens
02:41:55 when you have control over these kinds
02:41:58 of really important mechanisms.
02:42:00 Yeah, monopoly capitalism or cartel.
02:42:02 You get this with the Robin Hoods and the hedge funds.
02:42:05 You get sort of the money interests take over
02:42:07 and kind of abuse their power and wear out their welcome.
02:42:10 So how do you get around that?
02:42:11 You have to have either new land to go to,
02:42:15 which some people’s ancestors, not mine,
02:42:18 did to found the country.
02:42:20 I’m mostly Irish, German.
02:42:22 You have new virtual space people go to
02:42:26 and that requires an ISP or a colo center
02:42:30 or Amazon to host you.
02:42:32 It requires domain name registrar who will not strike you.
02:42:35 And so when Parler was taken down,
02:42:39 I thought that was egregious.
02:42:40 Parler, it was not well designed
02:42:42 and I tried it out because I tried all these things,
02:42:45 but I didn’t use it.
02:42:46 And I also felt they were being unfairly scored
02:42:49 for not moderating because you can find tweets to this day
02:42:51 that are horrendous and threaten all sorts of violence.
02:42:54 Whereas Twitter, why isn’t Twitter being taken down?
02:42:56 But so it was very selective.
02:42:57 It was the insiders who have the power
02:42:59 are gonna take out the newcomer.
02:43:01 And it looked bad, sort of like the hedge funds,
02:43:05 shorting GameStop, looked bad.
02:43:08 You’re seeing a piece in Time Magazine this week
02:43:10 that’s like basically saying,
02:43:11 yeah, we interfere with the election,
02:43:12 but it was great, aren’t we good?
02:43:14 I don’t know if you’ve seen this piece yet.
02:43:16 If you tried to say that as a Trump supporter
02:43:18 in November after the election,
02:43:21 you’d get banned from Twitter.
02:43:22 But now Time in its Twitter account is saying,
02:43:25 we saved the day, it’s AFL, CIO and big business,
02:43:30 the Better Business Bureau got together
02:43:32 and kept Trump from spreading fake news.
02:43:34 So the country’s kind of broken.
02:43:36 I don’t know how to fix that.
02:43:37 The oligarchs have run wild in my opinion.
02:43:40 And big tech is in the antitrust dock.
02:43:42 What’s gonna happen?
02:43:43 I don’t think they get out.
02:43:44 I think some of the DOJ and certainly the state cases,
02:43:47 because they’re separate cases,
02:43:49 are not gonna go away just
02:43:50 because somebody got elected differently.
02:43:52 And these are career prosecutors
02:43:53 and they have a strong case.
02:43:55 And Google’s smart.
02:43:56 And Microsoft almost got split up, right?
02:43:59 The judge, Thomas Penfield Jackson, he overreached.
02:44:02 He didn’t hold a hearing about the remedy.
02:44:05 He just said, I’m gonna break you up.
02:44:06 And Microsoft appealed and the higher level court said,
02:44:10 go back and figure this out.
02:44:11 You’re not breaking them up.
02:44:12 You didn’t even hold a hearing.
02:44:13 And when they got back, Microsoft said,
02:44:15 let’s settle, let’s settle, we don’t wanna get broken up.
02:44:17 Because Jackson was gonna make the Opsco,
02:44:20 the operating system company,
02:44:21 and the Appsco office, you know, Word and Excel.
02:44:24 And that would have been a huge blow to Microsoft, so.
02:44:28 But ultimately, I don’t know if you’re optimistic
02:44:31 or cynical about the possibility of breaking up big tech.
02:44:34 To me, I’m optimistic that tools like Brave,
02:44:40 I love the idea of owning your friendships.
02:44:42 Like users more and more owning the stuff
02:44:44 is the only real way.
02:44:46 Unfortunately, it’s like the WallStreetBets subreddit
02:44:48 is the only real way to fight decentralized power.
02:44:51 You can’t break them up with the regulation.
02:44:52 It’s very difficult.
02:44:53 Certainly don’t wanna wait for the law.
02:44:55 Netscape was long dead or acquired by AOL
02:44:57 and effectively dead.
02:44:58 It was only Mozilla that returned Firefox to the market
02:45:01 by the time that the US v. Microsoft case
02:45:04 was finally settled and the penalties were put in place.
02:45:07 And yet, antitrust has a role to play.
02:45:11 Those penalties caused Microsoft
02:45:12 to kind of turn away from the web.
02:45:14 They did Windows Vista and they thought,
02:45:16 the web’s too painful.
02:45:16 We got punished in court and we had to standardize things
02:45:19 with those icky standards people.
02:45:21 So they ran back to proprietary lock in
02:45:23 and Windows Vista flopped.
02:45:24 It was late, it was bloated.
02:45:26 Longhorn, remember?
02:45:27 Now, what I was gonna say, but Google’s smart enough,
02:45:30 they won’t get split up.
02:45:31 They’ll split something out to get off the hook, I think.
02:45:35 This is a complicated subject, but I myself was so,
02:45:39 I decided to journey out from the world
02:45:43 of being a researcher at MIT
02:45:45 and potentially doing a startup myself.
02:45:48 And I’ve been thinking of, you know,
02:45:51 I wanted to come to Silicon Valley to do so.
02:45:53 It’s the land of the entrepreneur.
02:45:55 And there’s a lot of my friends,
02:45:57 a lot of them are successfully,
02:45:59 have been entrepreneurs themselves,
02:46:01 have said, do not come to Silicon Valley.
02:46:04 It’d be, you’ve started, you ran amazing teams of engineers.
02:46:09 You started a lot of successful businesses.
02:46:12 I wondered if you could comment on why a lot of people
02:46:15 are leaving California.
02:46:17 Is there something that could be fixed about California?
02:46:19 If you were starting a business today,
02:46:22 would you consider somewhere else,
02:46:24 like Austin or some other place?
02:46:27 Or is Silicon Valley still, is it just a little lull,
02:46:30 everybody’s being overdramatic during this particular year
02:46:34 of the coronavirus and so on?
02:46:35 I think, you know, even Austin’s getting overheated, I hear.
02:46:39 And I’ve had relatives and friends move to Texas
02:46:42 within the last few months.
02:46:43 So Texas as a whole is a big place.
02:46:45 And, you know, people are moving to Florida.
02:46:48 There’s a big movement toward Miami,
02:46:50 Peter Thielke, these people.
02:46:53 The mayor has been very business friendly about it,
02:46:56 which I think is just good politics.
02:46:58 America is fundamentally a commercial republic.
02:47:00 So you would think this would be what’s happening.
02:47:02 For a long time, California was the golden state.
02:47:04 I came here in late 76 when I was a teenager.
02:47:06 So it’s in crushing debt due to the lockdowns.
02:47:11 It’s got the highest taxes.
02:47:13 That’s got to matter.
02:47:14 People will do high taxes.
02:47:17 It’s got likely fires every year because of the deadfall.
02:47:21 It’s not global warming.
02:47:22 It’s because the forests weren’t managed
02:47:24 like they had been in the first part of the 20th century.
02:47:28 Just, I would say corruption at all levels,
02:47:31 especially up to the governor,
02:47:32 who famously was eating at the French Laundry
02:47:34 and claimed that the outside was inside.
02:47:36 And they wore masks off and it was great.
02:47:39 Do what I say, not what I do.
02:47:42 Rules for thee, but not for me.
02:47:45 When you see that in leadership,
02:47:47 people either run or they get rid of the leadership.
02:47:50 So there’s a recall drive,
02:47:51 which is about to reach the threshold.
02:47:53 Or in the old days, they get their guns, right?
02:47:56 You don’t put up with this junk.
02:47:57 But ultimately, the thing that made Silicon Valley
02:48:00 a special place, it gave freedom to young kids,
02:48:04 entrepreneurs, young minds, brave minds
02:48:08 to think bold, to try different stuff.
02:48:10 I mean, even if the taxes are high,
02:48:12 so outside of financial stuff, outside of all of that.
02:48:15 Housing’s super expensive.
02:48:16 Housing’s super.
02:48:17 So it’s hard.
02:48:18 Okay, everything about startups is hard.
02:48:19 Peninsula was narrow and they didn’t plan the roads, right?
02:48:22 Yeah.
02:48:23 They got rid of public transportation in LA,
02:48:26 like the Who Framed Roger Rabbit cartoon show.
02:48:28 They used to have trolley cars in Portland too.
02:48:30 The oil companies and the DOD conspired to build highways
02:48:34 and make cars dominant.
02:48:35 And the rights of way are long gone.
02:48:37 Like Elon’s gonna go underground.
02:48:39 And I wish him well.
02:48:40 That’s probably the only way to do it now.
02:48:42 But is it still a place,
02:48:44 do you think it’s possible that Silicon Valley
02:48:46 is still a place where magic happens?
02:48:48 Where the next Google’s built?
02:48:49 Where the next, I mean, Brave is built where?
02:48:53 I think all good things come to an end.
02:48:54 I think the problem is Silicon Valley
02:48:56 had strong network effects through Stanford,
02:48:58 through the angel investor networks and the wealth effect.
02:49:02 And originally you have to give the federal government credit
02:49:05 like the ARPANET was a government project.
02:49:07 Let’s not kid ourselves.
02:49:08 This wasn’t wild free market, libertarian capitalism.
02:49:11 This was all Cold War stuff.
02:49:14 You had out of the academia, you had Shockley
02:49:17 and then the Traders Aid and Fairchild and Intel.
02:49:21 But now, when’s the last fab that was built in the Valley?
02:49:25 MicroUnity might’ve been the last, I don’t know.
02:49:26 I haven’t followed.
02:49:27 We built a fab in Sunnyvale and MicroUnity
02:49:31 in starting early 90s.
02:49:33 And now the fabs are overseas.
02:49:36 And the one thing that I would say
02:49:38 that the oligarchs have intentionally done
02:49:40 in both parties is sort of labor
02:49:44 and environmental protection law arbitrage
02:49:46 by going where the labor is cheaper
02:49:47 and the environmental laws aren’t as strict.
02:49:49 And that’s polluted the hell out of parts of China,
02:49:52 but it’s made things, you can make cheaper junk.
02:49:54 And this is not a story that’s over yet.
02:49:58 So what is Silicon Valley for now?
02:50:00 It’s for the network effect, the brain trust
02:50:03 of who you know, the parties, the Stanford sort of network.
02:50:09 That’s fragile too over time, I’m afraid.
02:50:11 Stanford, a lot of good professors are like,
02:50:16 they still filter mainly based on socioeconomic status,
02:50:19 but it’s kind of a skate school.
02:50:22 I had a friend hired out of Harvard 20 years ago at Netscape
02:50:26 and we talked about Harvard and he said,
02:50:28 yeah, there’s still professors who do great on the curve.
02:50:30 And I said, oh yeah, I don’t think they’re any doing that
02:50:32 at Stanford anymore.
02:50:33 And he said, yo, it was shocking.
02:50:35 Some of the students got Cs and Ds and they were crying.
02:50:37 It’s like, yes, that’s right, the precious deers
02:50:39 can’t take that at Stanford, so they get As and Bs.
02:50:42 Now you look at China and people say what you all about China,
02:50:46 they prove Russia too, a lot of math science training,
02:50:49 a lot of engineering, a lot of people who are doing
02:50:52 their coursework to get the As and the Bs.
02:50:55 So I’m an American, I’m born on the 4th of July.
02:50:59 American, yeah.
02:51:00 4th of July, wow.
02:51:02 And America, as I say, fundamentally
02:51:03 is a commercial republic.
02:51:04 You can try to make it something else.
02:51:06 You can say it’s the new Atlantis and mystify it.
02:51:09 You could talk about it in a more, I think, correct way,
02:51:11 which is 13 colonies that grew and then there’s a lot
02:51:13 of local or original design anyway,
02:51:16 the federalist papers talk about this,
02:51:18 there’s a lot of subsidiarity,
02:51:20 but that’s been eroded over time.
02:51:23 And like I say, a lot of the offshoring is hurt.
02:51:26 So what happened with coronavirus?
02:51:28 People working from home, and at first it was funny
02:51:30 because I have friends at Google who used to grumble
02:51:33 that not only did they have to come into the office,
02:51:35 if they joined a different team that was centered
02:51:37 in a different office, they had to move.
02:51:39 Or if the VA team was reconstituted in Munich,
02:51:43 which it was after Lars Bock just got tired of JavaScript,
02:51:46 that they hired in Munich or they hired PhDs
02:51:48 in Germany and moved them to Munich.
02:51:50 With coronavirus, everyone’s working from home
02:51:52 and it’s like, what a relief, I can work for Google
02:51:53 from home.
02:51:54 But then the next shoe dropped and people started asking
02:51:57 Mark Zuckerberg, hey, can I move to my hometown
02:52:00 in the Midwest?
02:52:01 And he said, okay.
02:52:02 And they said, oh, can I keep getting my Silicon Valley pay?
02:52:05 No.
02:52:06 We’re gonna figure out what your cost of living there is
02:52:08 and we’re gonna adjust your pay accordingly.
02:52:10 And these colonies and these little mini experiments
02:52:13 that all combine to the big giant experiment,
02:52:15 I have a, I don’t know, I have this vision of America,
02:52:20 which the country, I was born in Russia, like I said here,
02:52:22 and this is truly a wonderful country.
02:52:24 I wasn’t born on the 4th of July, but I might as well be.
02:52:27 People still flee here.
02:52:28 I still, and I’m a red blooded American at this point.
02:52:31 And I have a sense that we figured it out somehow.
02:52:35 If Silicon Valley burns, another place will come up
02:52:37 in this place that even more innovation and people will move
02:52:42 and the remote work might change fundamentally how we work
02:52:46 or it might not.
02:52:47 It might just give you the freedom to then create
02:52:49 many other small Silicon Valleys throughout the place,
02:52:52 like Austin included, but other places as well.
02:52:54 And we somehow figured it out and…
02:52:58 I think that’s true that there will be more mobility
02:53:01 and maybe new places that come up.
02:53:03 I don’t know if Silicon Valley has passed some sell by date
02:53:07 because it did hurt.
02:53:10 The coronavirus hurt, the lockdowns hurt in the sense
02:53:13 that part of what keeps things going is social.
02:53:15 And so a lot of young people, even before coronavirus,
02:53:18 moved to San Francisco.
02:53:19 It was very strange to watch because in the 80s,
02:53:21 we all lived in the Valley and it was less populated
02:53:24 and San Francisco was grungier.
02:53:26 It was more like Dirty Harry in the 70s.
02:53:28 But by the 90s, and Jamie runs a nightclub there
02:53:31 and he’s talked about this, you had sort of wealthy
02:53:33 tech people moving in south of market,
02:53:36 fancy townhouses being built.
02:53:37 And that’s continued in such a point that it’s almost like,
02:53:41 what’s the movie by the South African director Nils Jody
02:53:43 Foster up in the space colony?
02:53:46 Matt Damon is the guy on the earth who has to go
02:53:48 up and anyway, it’s about the stratification.
02:53:50 It’s about the great inequality that people
02:53:52 in the space station have like amazing medical auto docs
02:53:55 that can extend their life or save them cure cancer.
02:53:57 People on earth are all suffering ground down in poverty.
02:54:02 And that sort of happened while I was here.
02:54:06 You saw a lot of money drive prices up
02:54:10 along the narrow peninsula and the single people
02:54:12 wanted nightlife so they were in the city
02:54:14 and the condos in the city got super expensive.
02:54:16 And I know even Google friends who are socially responsible
02:54:20 say we should have more housing built.
02:54:22 We should have yes in my backyard, not in my backyard.
02:54:25 But that’s not happening as far as I can tell.
02:54:28 And from the government to the incumbent landowners
02:54:32 and renters, it’s just not happening.
02:54:34 And that has to drive people away.
02:54:37 I appreciate that people come here and you should wait
02:54:40 for the prices to moderate, they will.
02:54:42 But a lot of people are gonna go where the prices are lower.
02:54:47 You, and sorry for silly questions here,
02:54:50 but just looking back, you have created things,
02:54:54 have been part of creating things
02:54:56 that have transformed this world, the world of technology,
02:55:00 perhaps more than almost anything else.
02:55:04 But you’re still a human being
02:55:07 and unfortunately this ride ends.
02:55:10 Do you ever think about your own mortality?
02:55:13 Not too much, I mean, I’m a Roman Catholic
02:55:17 so I am not afraid of death.
02:55:19 I think a lot of people who have problems with death
02:55:25 are suffering from some lack of either faith
02:55:30 in their transcending death or maybe they don’t have
02:55:33 children or they feel like they get later in life
02:55:37 and they feel like they’ve missed opportunities
02:55:39 to do something that endures.
02:55:40 And I sympathize with a lot because I’m old,
02:55:43 I got married fairly old, so I understand all that.
02:55:46 Nothing human is alien to me as Terrence said.
02:55:50 But I don’t fear it, no.
02:55:54 What do you hope your legacy is?
02:55:56 Yeah, it’s gonna be JavaScript.
02:55:57 I think, no, I think my legacy has more to do
02:56:01 with my children and their children.
02:56:03 I think it also has to do with web standards,
02:56:06 it has to do with things like Brave,
02:56:08 the things we did with Firefox.
02:56:10 When we did, I’m not gonna oversell Brave
02:56:13 but I think Brave is important and we’ll continue
02:56:15 to prove this in a way that counts
02:56:16 for many decades to come.
02:56:18 But even Firefox, whatever its future fortune,
02:56:21 showed you can restart the browser market.
02:56:23 This thing you said about people opting out
02:56:26 and routing around, you don’t need everybody to do that.
02:56:28 It’s more like Taleb’s stubborn minorities that do that.
02:56:31 It’s the lead users, Erfron Hipple’s lead users.
02:56:33 You can be a few percent, you can tilt the market.
02:56:36 And that can be done in spite of the incumbents,
02:56:39 of moneyed interests not being in favor of what you’re doing.
02:56:41 So I think what we do with Firefox won’t be forgotten
02:56:45 and it needs to be done more and we’re doing it with Brave.
02:56:47 And you could argue that other projects are doing it.
02:56:48 In some ways, blockchain is doing it.
02:56:50 The Robinhood, take down the use of Robinhood
02:56:56 by the Wall Street Bets kids, similar.
02:56:59 So yeah, that kind of spirit endures.
02:57:01 And I think it, in some ways it’s American, right?
02:57:04 It’s not hard revolutionary.
02:57:06 It’s not trying to burn the past and destroy everything.
02:57:08 It’s more like we have these certain, let’s say rights.
02:57:15 We have duties too.
02:57:16 So there’s some debate about which comes first
02:57:17 in American jurisprudence and the founding documents.
02:57:20 But as long as things are working,
02:57:23 we’ll be like pragmatic Americans,
02:57:25 like de Tocqueville described in his writings.
02:57:29 But if things get too out of whack for one reason or another,
02:57:32 too unequal, too oligarchic and abusive,
02:57:35 we’re gonna start our rights.
02:57:37 And even a few of us can do it.
02:57:38 And even in the American Revolution,
02:57:40 it was the minority who fought and put their lives,
02:57:44 treasure and sacred honor at stake.
02:57:45 It was a bunch of people went to upper Canada,
02:57:48 I think it was called, Ontario.
02:57:51 Yeah, that’s the beautiful, I mean,
02:57:52 that is at the core where your work stands for
02:57:55 is that a few people can have the power
02:57:58 to transform society with just a few radical ideas,
02:58:01 with just a little bit of code, change the world.
02:58:04 Gotta do it.
02:58:05 And that’s empowering.
02:58:06 That is the American way.
02:58:07 That’s why this country is, I believe,
02:58:09 the greatest country on Earth.
02:58:10 That’s not over, or Matt says it too much,
02:58:13 but I think some special things
02:58:15 have already happened in this country
02:58:17 and will continue to happen.
02:58:18 And that’s really exciting.
02:58:19 And that spirit can continue no matter who comes here.
02:58:22 They can adopt those folkways and that spirit.
02:58:25 Brandon, I can’t tell you how much,
02:58:27 I was freaking out how much of an honor it is
02:58:29 to talk to you.
02:58:30 You’re an incredible human being.
02:58:31 It’s one of my favorite conversations ever.
02:58:33 Thank you so much for wasting all this time with me.
02:58:35 I really appreciate it.
02:58:36 Oh, it seems like a breeze.
02:58:38 My pleasure.
02:58:39 Thank you for listening to this conversation
02:58:41 with Brandon and Ike.
02:58:42 And thank you to our sponsors,
02:58:44 Jordan Harbert’s Show, Sun Basket Meal Delivery Service,
02:58:48 BetterHelp Online Therapy,
02:58:50 and Eight Sleep Self Cooling Mattress.
02:58:52 Click the sponsor links to get a discount
02:58:54 and to support this podcast.
02:58:57 And now, let me leave you with some words from Jeff Atwood.
02:59:00 Any app that can be written in JavaScript
02:59:03 will eventually be written in JavaScript.
02:59:06 Thank you for listening and hope to see you next time.