Brendan Eich: JavaScript, Firefox, Mozilla, and Brave
技术与编程音乐与艺术政治与社会商业与创业AI 与机器学习
📋 章节目录
暂无章节信息
🔑 关键词
javascriptbrowsernetscapesaiddondidngotmicrosoftlanguagedoinggooglejavawebmozillacalledfirefoxbraveusedflashgetting
💬 精彩语录
暂无语录
🎙️ 完整对话(4504 条)
Lex Fridman (00:00.000)
The following is a conversation with Brendan Eich,
以下是与 Brendan Eich 的对话,
Lex Fridman (00:02.560)
creator of the JavaScript programming language,
JavaScript 编程语言的创造者,
Lex Fridman (00:05.700)
cofounder of Mozilla, which created the Firefox browser,
Mozilla 的联合创始人,创建了 Firefox 浏览器,
Lex Fridman (00:09.200)
and now cofounder and CEO of Brave Software,
现在是 Brave Software 的联合创始人兼首席执行官,
Lex Fridman (00:12.860)
which has created the Brave browser.
它创造了 Brave 浏览器。
Brendan Eich (00:15.440)
Each of these are revolutionary technologies.
这些都是革命性的技术。
Lex Fridman (00:18.340)
JavaScript is one of the most widely used
JavaScript 是最广泛使用的语言之一
Lex Fridman (00:21.120)
and impactful programming languages in the world.
以及世界上有影响力的编程语言。
Lex Fridman (00:24.920)
Firefox pioneered many browser ideas that we love today
Firefox 开创了许多我们今天喜爱的浏览器创意
Brendan Eich (00:29.040)
or even take for granted today,
甚至在今天视为理所当然,
Lex Fridman (00:31.280)
and Brave is looking to revolutionize
Brave 正在寻求彻底变革
Brendan Eich (00:33.540)
not only the browser, but content creation online
不仅仅是浏览器,还有在线内容创作
Lex Fridman (00:36.640)
and the nature of the internet
以及互联网的本质
Brendan Eich (00:38.280)
to make it fundamentally about respecting
从根本上讲是尊重
Lex Fridman (00:40.680)
people's control over their data.
人们对其数据的控制。
Brendan Eich (00:43.440)
Quick mention of our sponsors.
快速提及我们的赞助商。
Lex Fridman (00:45.400)
The Jordan Harbinger Show,
乔丹先驱秀,
Brendan Eich (00:47.360)
Sun Basket Meal Delivery Service,
太阳篮送餐服务,
Lex Fridman (00:49.760)
Better Help Online Therapy,
更好的帮助在线治疗,
Lex Fridman (00:51.540)
and AidSleep Self Cleaning Mattress.
和 AidSleep 自清洁床垫。
Lex Fridman (00:53.940)
Click the sponsor links to get a discount
Lex Fridman (00:56.240)
and to support this podcast.
Lex Fridman (00:58.120)
As a side note, let me say that there's a tension
Brendan Eich (01:00.840)
between theory and engineering
Lex Fridman (01:03.160)
that I've been thinking a lot about.
Brendan Eich (01:05.220)
I tweeted something like,
Lex Fridman (01:06.960)
"'Good execution is more important than a good idea,
Brendan Eich (01:09.840)
"'but one helps the other.'"
Lex Fridman (01:11.800)
I think the wording of that sucks,
Lex Fridman (01:13.480)
but what I mean is a good idea is a must,
Lex Fridman (01:16.880)
but in my experience, good ideas are in abundance.
Brendan Eich (01:20.740)
Good execution, on the other hand, is rare.
Lex Fridman (01:23.720)
I think some mix of good timing, good idea,
Lex Fridman (01:26.040)
and good execution is essential.
Lex Fridman (01:28.160)
Getting that mix right is tough,
Lex Fridman (01:29.840)
and Brendan, somehow, multiple times in his career,
Lex Fridman (01:32.880)
did just that.
Brendan Eich (01:34.260)
I'm starting to believe it's more art than science,
Lex Fridman (01:36.640)
like most interesting things in life.
Brendan Eich (01:39.200)
If you enjoy this thing, subscribe on YouTube,
Lex Fridman (01:41.720)
review an Apple podcast, follow on Spotify,
Brendan Eich (01:44.680)
support on Patreon, or connect with me on Twitter
Lex Fridman (01:47.480)
at Lex Friedman.
Lex Fridman (01:48.840)
And now, here's my conversation with Brendan Eich.
Lex Fridman (01:53.360)
When did you first fall in love with programming?
Brendan Eich (01:56.000)
I didn't program a lot when I was in high school,
Lex Fridman (01:58.320)
but I had a friend who had a Commodore PET,
Lex Fridman (02:01.580)
and after we saw Star Wars, he said,
Lex Fridman (02:03.160)
"'Hey, let's make a basic program
Brendan Eich (02:05.660)
"'that does the Death Star Trench run.'"
Lex Fridman (02:08.040)
And it was just simple 2D graphics,
Lex Fridman (02:10.960)
and I didn't know what I was doing,
Lex Fridman (02:11.840)
so I just helped him out on the math and stuff like that.
Brendan Eich (02:14.320)
I was a math and science kid.
Lex Fridman (02:16.120)
I was really into the HP calculators of the early mid-'70s.
Brendan Eich (02:20.120)
These were the RPN.
Lex Fridman (02:21.600)
They were really strongly built,
Lex Fridman (02:23.440)
and as Arik Goldfinger said of gold, divinely heavy.
Lex Fridman (02:27.520)
There's probably some gold in them, too, gold metalization.
Lex Fridman (02:29.880)
But they were awesome calculators,
Lex Fridman (02:31.300)
and they had all the scientific functions,
Lex Fridman (02:33.160)
so I was really into that.
Lex Fridman (02:35.420)
So I aimed toward physics.
Brendan Eich (02:38.720)
I was a little late for the, I think,
Lex Fridman (02:40.640)
the 20th century golden age,
Lex Fridman (02:42.460)
and I read a lot of science fiction,
Lex Fridman (02:43.760)
so I was like, yeah, it's on the hyperdrives
Lex Fridman (02:45.880)
and warp drives, and physics was not gonna get there quickly,
Lex Fridman (02:50.360)
and I started hacking on computers
Brendan Eich (02:52.480)
while I was studying physics as an undergraduate
Lex Fridman (02:55.040)
at Santa Clara University,
Lex Fridman (02:56.560)
and I dodged the Fortran bullet
Lex Fridman (03:00.120)
because I was in the science department
Brendan Eich (03:02.040)
instead of the engineering department,
Lex Fridman (03:03.140)
where they still did Fortran card decks.
Brendan Eich (03:05.720)
I think they had an auto collator.
Lex Fridman (03:07.520)
But we were using Pascal,
Lex Fridman (03:09.320)
and I got one of the first portable C Compilers ports
Lex Fridman (03:15.200)
to the DEC minicomputers we were using,
Lex Fridman (03:17.760)
and I fell in love with programming
Lex Fridman (03:19.320)
just based on procedural abstraction, Pascal,
Brendan Eich (03:25.880)
just what now would be considered old school,
Lex Fridman (03:28.880)
like structured programming from the 70s.
Brendan Eich (03:31.600)
Niklaus Wirth, the creator of Pascal,
Lex Fridman (03:33.480)
was a good writer and a good pedagogue, right?
Brendan Eich (03:36.160)
He always at ETH would do these courses
Lex Fridman (03:38.220)
where it's like build your own computer,
Brendan Eich (03:40.120)
build your own compiler, build your own operating system.
Lex Fridman (03:42.720)
It was scratch. Yeah, kind of.
Lex Fridman (03:44.220)
And I know some people who were grad students under him
Lex Fridman (03:47.120)
and said he would torture the students
Brendan Eich (03:50.480)
with things like this custom email system
Lex Fridman (03:52.260)
that had 25 word limit and things like that.
Brendan Eich (03:56.820)
I unfortunately dodged both the Pascal
Lex Fridman (03:59.240)
and the Fortran bullets.
Lex Fridman (04:00.740)
Could you maybe linger on the Pascal?
Lex Fridman (04:04.760)
What kind of programming language was it?
Lex Fridman (04:06.320)
What is it reminiscent of today?
Lex Fridman (04:08.160)
Because it sounds like it may have had an impact
Brendan Eich (04:11.440)
on your own trajectory.
Lex Fridman (04:12.600)
Yeah, it was in the ALGOL family,
Lex Fridman (04:14.460)
and ALGOL was the big successful language design
Lex Fridman (04:20.960)
and compiler project in the 60s.
Brendan Eich (04:23.160)
It had a successor called ALGOL 68,
Lex Fridman (04:24.960)
which was ambitious but not as successful.
Lex Fridman (04:27.440)
But Pascal was kind of wordy procedures
Lex Fridman (04:31.000)
and functions language.
Brendan Eich (04:32.580)
It distinguished between functions
Lex Fridman (04:33.920)
which return a value and procedures which don't,
Brendan Eich (04:36.160)
which just compute.
Lex Fridman (04:37.880)
And you could say that whole ALGOL family went into ADA.
Brendan Eich (04:42.580)
Pascal had a second life thanks to Borland
Lex Fridman (04:44.560)
with Turbo Pascal, which was hugely successful.
Brendan Eich (04:48.920)
I think in large part due to Anders Helberg,
Lex Fridman (04:51.000)
who then went to Microsoft and did C Sharp and done that
Brendan Eich (04:53.820)
with his team there and has done really well
Lex Fridman (04:55.520)
doing TypeScript, type JavaScript.
Lex Fridman (04:58.000)
So yeah, there's a lineage here.
Lex Fridman (05:00.800)
But I was also interested in C and Unix
Brendan Eich (05:03.800)
by the time I was an undergrad
Lex Fridman (05:05.680)
because people were bringing Unix up
Brendan Eich (05:07.840)
on all sorts of hardware.
Lex Fridman (05:09.240)
I had some friends who were doing
Brendan Eich (05:10.200)
their own wirewrapped computers, 6820 maybe.
Lex Fridman (05:14.480)
And I was wirewrapping for my engineering course,
Brendan Eich (05:19.160)
6809 or something simpler, building a computer on a board.
Lex Fridman (05:22.480)
And I wanted to build a more ambitious one
Lex Fridman (05:24.720)
and port Unix to it, but I picked the wrong processor.
Lex Fridman (05:26.960)
I picked the National Semiconductor NS16032,
Brendan Eich (05:30.960)
which was this amazing, you know,
Lex Fridman (05:33.440)
CISC, complex instruction set computer,
Lex Fridman (05:37.200)
and not the reduced instruction set computers
Lex Fridman (05:39.360)
that were just being contemplated into the mid eighties.
Lex Fridman (05:43.740)
And RISC ultimately went out.
Lex Fridman (05:45.440)
RISC won in some ways, it dissolved into,
Brendan Eich (05:48.360)
you have both now, you have these super scalar architectures
Lex Fridman (05:50.800)
where like Intel has kept probably too much
Brendan Eich (05:54.160)
backward compatibility at the instruction level,
Lex Fridman (05:56.800)
but that's just, there's a front end that parses that
Brendan Eich (05:58.920)
into these, you know, these wide internal instructions.
Lex Fridman (06:01.240)
So, you know, the very long instruction word research
Brendan Eich (06:04.440)
that was also interesting at the time
Lex Fridman (06:06.900)
kind of became the micro architecture
Brendan Eich (06:08.560)
inside the backward compatible Intel.
Lex Fridman (06:11.440)
But I picked a National Semi chip
Lex Fridman (06:13.160)
and it never got made successfully.
Lex Fridman (06:14.840)
It was full of bugs and I never could have brought it up.
Lex Fridman (06:17.800)
But I went on out of physics after three years
Lex Fridman (06:21.160)
into math, computer science.
Lex Fridman (06:23.240)
And like I said, I did it because I saw,
Lex Fridman (06:25.740)
I was being sort of childlike and naive about physics.
Lex Fridman (06:28.420)
And I thought, meanwhile, the Valley is go go for computers.
Lex Fridman (06:32.120)
The Apple II, right?
Brendan Eich (06:33.700)
The PC, the Intel 8086, 8088 based PC,
Lex Fridman (06:40.720)
the IBM, you know, gave Microsoft the future for,
Brendan Eich (06:45.040)
you know, somewhat fishy deal.
Lex Fridman (06:46.800)
So it was wide open in the computing space,
Lex Fridman (06:48.640)
but in physics, you were as optimistic about physics as?
Lex Fridman (06:52.200)
No, I mean, I was one of three brothers
Brendan Eich (06:54.680)
who were all in the same grade.
Lex Fridman (06:56.060)
I have a twin and a younger brother who skipped second grade
Lex Fridman (07:00.920)
and was with us the whole time after that.
Lex Fridman (07:02.980)
And, you know, he went on,
Brendan Eich (07:04.480)
he actually studied under Kip Thorne at Caltech.
Lex Fridman (07:07.520)
But he also didn't, he ended up in software.
Brendan Eich (07:09.560)
He didn't talk about physics stuff.
Lex Fridman (07:12.340)
Does it make you sad that theoretical physics,
Brendan Eich (07:16.080)
even with string theory,
Lex Fridman (07:17.120)
hasn't really had any foundational breakthroughs
Lex Fridman (07:20.920)
in the latter part of the 20th century?
Lex Fridman (07:23.320)
Yeah, in fact, I'd say the problem is theory
Brendan Eich (07:25.220)
over experiment.
Lex Fridman (07:27.120)
I would say, you know, we need more Aristotle
Lex Fridman (07:29.920)
and less Plato.
Lex Fridman (07:31.240)
You know, mathematics is not all physical.
Brendan Eich (07:33.800)
There are lots of mathematics that cannot be realized
Lex Fridman (07:36.280)
as far as I know in this world.
Lex Fridman (07:38.360)
So to understand the world, you need to do experiments.
Lex Fridman (07:41.000)
You need to not just dream up inductive theories
Brendan Eich (07:45.200)
that could have lots of alternative theories
Lex Fridman (07:47.880)
competing with them, with no way to decide between them,
Brendan Eich (07:50.120)
except aesthetics, which is not a good guide in my opinion.
Lex Fridman (07:53.000)
Yeah, I don't know if you are friends
Brendan Eich (07:54.760)
or have a relationship with Elon Musk.
Lex Fridman (07:56.880)
Where's the, in terms of like what you would love to see
Brendan Eich (08:00.520)
our society investing in, building up,
Lex Fridman (08:02.800)
is it closer to Elon or is it closer to Feynman
Lex Fridman (08:07.080)
and Einstein and those?
Lex Fridman (08:09.120)
Well, those gentlemen are no longer with us
Lex Fridman (08:10.600)
and I think that's noticed.
Lex Fridman (08:12.000)
So like I said, the real glory days of physics,
Brendan Eich (08:14.480)
the famous pictures from Germany before the second war
Lex Fridman (08:17.280)
were just a fantastic assembly of brains,
Brendan Eich (08:21.760)
Schrodinger and Einstein.
Lex Fridman (08:23.120)
And physics, I think, took a wrong turn
Brendan Eich (08:26.320)
that maybe all of, I would say, Western science
Lex Fridman (08:30.040)
took in going for models over reality, right?
Brendan Eich (08:33.760)
You see this in all sorts of fields.
Lex Fridman (08:35.320)
Now, we can build models that are very predictive
Lex Fridman (08:38.000)
and generative and then we build actual devices
Lex Fridman (08:40.320)
or semiconductors, things like that.
Brendan Eich (08:42.200)
That's good, I'm not dismissing that.
Lex Fridman (08:44.440)
We need good models, we need to experiment
Lex Fridman (08:46.880)
and prove them and test them.
Lex Fridman (08:49.680)
But the problem I've seen in physics,
Brendan Eich (08:51.920)
which you see certainly in economics, the dismal science,
Lex Fridman (08:55.640)
and you see surprisingly in other so called hard sciences
Brendan Eich (08:59.080)
is models that don't really have to be
Lex Fridman (09:04.320)
tested against reality.
Brendan Eich (09:05.440)
They can instead become policy tools
Lex Fridman (09:07.640)
or they can become, like I said,
Brendan Eich (09:09.920)
one of a large family of alternate theories
Lex Fridman (09:12.960)
that could be as predictive
Lex Fridman (09:14.640)
but nobody's doing the winnowing out.
Lex Fridman (09:17.000)
That's such an interesting tension in society.
Brendan Eich (09:18.920)
You see this in even the software scientists
Lex Fridman (09:21.000)
which have a deep love for psychology.
Brendan Eich (09:24.440)
You see this in epidemiology, not with the virus.
Lex Fridman (09:27.200)
Absolutely.
Brendan Eich (09:28.040)
There's this tension of how much of the world
Lex Fridman (09:31.280)
can we understand through just a beautifully fit model?
Lex Fridman (09:35.040)
And then at the same time, my main work
Lex Fridman (09:37.640)
is in machine learning where it's like
Brendan Eich (09:41.000)
there is no provable thing usually.
Lex Fridman (09:44.400)
It's all about just getting the right data set
Lex Fridman (09:47.760)
and getting tricks and so on.
Lex Fridman (09:49.640)
And there's this tension even in my own soul
Brendan Eich (09:51.760)
of I grew up on theoretical computer science.
Lex Fridman (09:55.680)
I loved approximation algorithms,
Brendan Eich (09:58.920)
all of that different complexity classes,
Lex Fridman (10:01.920)
just those little puzzles.
Brendan Eich (10:03.960)
I mean, I don't know, to you as somebody
Lex Fridman (10:06.200)
who was in math and computer science
Lex Fridman (10:08.600)
and then ended up going into places
Lex Fridman (10:11.280)
where you engineer some of the most impactful things
Brendan Eich (10:13.880)
in this world, do you see the P versus NP,
Lex Fridman (10:18.680)
all that whole space is interesting at all?
Brendan Eich (10:21.280)
Yeah, it's not that useful in practice.
Lex Fridman (10:24.640)
People are using it with sort of crypto analysis
Brendan Eich (10:27.920)
or asymptotic arguments about can we have
Lex Fridman (10:31.760)
a quantum resistant crypto algorithm, things like that,
Lex Fridman (10:35.320)
which may not be practical, right?
Lex Fridman (10:36.560)
If you follow Mikhail Diakonov or Gil Kalai,
Brendan Eich (10:40.400)
there are big questions about how quantum computing
Lex Fridman (10:43.640)
will scale up, how practical it will be.
Lex Fridman (10:46.800)
Is that something that you think about quantum computing?
Lex Fridman (10:49.880)
Not except for spare time.
Brendan Eich (10:51.080)
Like you said, I'm not using this kind of computer science
Lex Fridman (10:53.560)
in practice because almost everything now is engineering
Lex Fridman (10:57.680)
and finding ways to get computers
Lex Fridman (11:02.160)
to be more useful for people,
Brendan Eich (11:03.320)
which goes from design problems,
Lex Fridman (11:06.160)
which are really kind of an art.
Brendan Eich (11:07.440)
Like you said, anything you can't automate is an art.
Lex Fridman (11:09.960)
Well, we can have machine learning compose music
Lex Fridman (11:13.360)
and it can imitate, you can train it,
Lex Fridman (11:14.800)
and it can sound kind of decent,
Lex Fridman (11:16.040)
but maybe lacking that je ne sais quoi.
Lex Fridman (11:18.680)
But user interface still, I think, requires human art.
Lex Fridman (11:23.560)
So speaking of things that didn't follow
Lex Fridman (11:26.440)
a perfect theory and model, JavaScript,
Lex Fridman (11:30.480)
so there's two things.
Lex Fridman (11:31.320)
One, it had an impact on the world at a huge scale,
Brendan Eich (11:34.360)
obviously, and it also still is one of probably
Lex Fridman (11:38.920)
the most popular programming language in the world.
Lex Fridman (11:41.400)
So can we go back to the origin story?
Lex Fridman (11:45.200)
Can you tell the story of how JavaScript was created?
Brendan Eich (11:47.840)
Yeah, I was at Silicon Graphics
Lex Fridman (11:49.960)
after graduate school for seven years,
Lex Fridman (11:53.080)
and it got to be big and successful
Lex Fridman (11:54.720)
and divisionalized and political,
Lex Fridman (11:56.800)
and I thought kind of boring.
Lex Fridman (12:00.480)
And a friend who'd been there went to one of the last
Brendan Eich (12:03.960)
of the super companies, the super startups
Lex Fridman (12:06.040)
in the early 90s.
Brendan Eich (12:07.640)
There were several.
Lex Fridman (12:08.720)
I suppose General Magic was a little after that
Brendan Eich (12:10.840)
around the same time.
Lex Fridman (12:11.920)
But Micro Unity was that company that I went to,
Lex Fridman (12:14.360)
and it was because my friend Jeff Weinstein
Lex Fridman (12:16.880)
had gone there from Silicon Graphics.
Brendan Eich (12:18.040)
He recruited me, and Micro Unity was doing everything.
Lex Fridman (12:21.960)
So this was like the ultimate sort of pretend grad school.
Brendan Eich (12:26.080)
It was doing a new fab, new semiconductor process.
Lex Fridman (12:29.360)
It was doing new analog and digital circuits
Brendan Eich (12:32.600)
on the same very large but not wafer scale chip.
Lex Fridman (12:36.080)
Originally, it was five centimeters on a side.
Brendan Eich (12:40.400)
It was really hot too, so I needed a water cooler.
Lex Fridman (12:43.880)
It was a Craykiller, and then they shrunk it,
Lex Fridman (12:46.280)
and they tried to do a home sort of media processor
Lex Fridman (12:49.360)
that was essentially a barrel processor.
Lex Fridman (12:51.920)
But you could think of trying to do all the things
Lex Fridman (12:55.440)
that we now see in modern architectures
Brendan Eich (12:58.160)
with short vector instructions
Lex Fridman (13:00.240)
and sort of wide instructions or multiple issue,
Lex Fridman (13:05.120)
and doing a lot of the stuff in software
Lex Fridman (13:07.520)
because the second iteration, the set top box,
Brendan Eich (13:10.120)
was really for avoiding the cost to the cable company
Lex Fridman (13:13.040)
of rolling the trucks out
Brendan Eich (13:14.520)
to replace your garbage General Atlantic set top box
Lex Fridman (13:17.560)
with a totally newer, less garbagey one.
Lex Fridman (13:21.000)
So if you could have software gradable set top boxes,
Lex Fridman (13:23.860)
the cable companies thought they could save a lot of money
Lex Fridman (13:26.200)
and add features.
Lex Fridman (13:27.160)
Is this assembly, or which level of the software?
Brendan Eich (13:30.240)
It was like, we were writing in, we were using GCC.
Lex Fridman (13:33.800)
We were writing C++ and C.
Brendan Eich (13:36.240)
Somebody I worked with there, really very smart guy,
Lex Fridman (13:39.880)
hired from a sort of Wall Street
Brendan Eich (13:41.680)
hotshot programming consultancy,
Lex Fridman (13:45.240)
did his own hardware design as well as software.
Lex Fridman (13:47.040)
And we were working on how to make
Lex Fridman (13:49.380)
not only a short vector units,
Lex Fridman (13:50.740)
but general bit shufflers and permuters.
Lex Fridman (13:53.080)
So you could do things like crypto algorithms efficiently,
Lex Fridman (13:57.440)
and you could do demodulation of the cable,
Lex Fridman (14:01.400)
complex quadrature amplitude modulated signal.
Lex Fridman (14:05.240)
So you're basically taking A to D converters,
Lex Fridman (14:07.980)
dumping things in buffers,
Lex Fridman (14:09.000)
and then doing the rest in software.
Lex Fridman (14:10.740)
All the framing and the Reed Solomon and Viterbi
Lex Fridman (14:13.480)
and all that error correction.
Lex Fridman (14:14.480)
So that was really great learning experience,
Lex Fridman (14:16.060)
but it was not gonna work.
Lex Fridman (14:16.920)
It was doing too many risky things at once, right?
Brendan Eich (14:18.660)
If you, as Jim Clark said to me,
Lex Fridman (14:20.460)
when I hopped to Netscape after three years at MicroUnity,
Brendan Eich (14:23.200)
he said, oh yeah, you do 10 things each,
Lex Fridman (14:26.040)
one in 10 odds, it's gonna be one in 10 billion, right?
Brendan Eich (14:29.840)
The multiplication principle.
Lex Fridman (14:31.080)
So, Netscape was already a rocket,
Lex Fridman (14:33.360)
and I passed the chance to go there in 1994.
Lex Fridman (14:36.760)
I knew the founders because I worked at SGI,
Brendan Eich (14:39.200)
Clark's company.
Lex Fridman (14:40.040)
Could you pause for a second in Netscape?
Lex Fridman (14:42.200)
When was the launch of this rocket?
Lex Fridman (14:44.800)
94.
Lex Fridman (14:45.840)
94 was the launch of Netscape?
Lex Fridman (14:47.320)
And I went there in early 95 in April.
Brendan Eich (14:49.720)
Okay, so you said you missed the launch.
Lex Fridman (14:52.200)
Well, I missed the first floor employment opportunity,
Lex Fridman (14:55.560)
but the IPO was August 1995, so I was there for that.
Lex Fridman (14:58.960)
How obvious was it that Netscape was like world changing?
Lex Fridman (15:02.280)
What was the layout?
Lex Fridman (15:04.080)
Was Netscape one of the first big browsers?
Brendan Eich (15:06.160)
Yes, so when I was at MicroUnity still in 93,
Lex Fridman (15:09.280)
we saw a browser called Mosaic.
Lex Fridman (15:11.720)
And up till then, we'd used email and we'd used Usenet,
Lex Fridman (15:14.760)
the NNTP protocol, we'd use news readers, we used FTP,
Brendan Eich (15:18.680)
we used all these old internet protocols,
Lex Fridman (15:20.860)
all relying on the DNS and TCP IP and UDP for that matter.
Brendan Eich (15:25.720)
When I was at Silicon Graphics,
Lex Fridman (15:26.800)
we brought up the whole stack, right?
Brendan Eich (15:28.140)
We had to discover how to find the ethernet addresses
Lex Fridman (15:31.760)
on your network and then find IP addresses for them,
Brendan Eich (15:34.720)
ARP protocol, all that stuff.
Lex Fridman (15:35.940)
And it was great because nobody knew in the 80s
Lex Fridman (15:38.680)
what was gonna win, all the proprietary stacks
Lex Fridman (15:41.480)
like IBM, SNA and DeckNet and all these other protocols
Brendan Eich (15:44.840)
were saying, we're gonna do it
Lex Fridman (15:46.320)
or it's gonna be heterogeneous future.
Lex Fridman (15:48.080)
And instead it was Berkeley Unix and the TCP IP stack
Lex Fridman (15:52.520)
that dated back to the ARPANET that won.
Lex Fridman (15:54.900)
And I think we knew it, we all knew it at SGI,
Lex Fridman (15:57.680)
but the salespeople didn't.
Lex Fridman (15:59.280)
And so they kept trying to get multiple network stacks
Lex Fridman (16:02.080)
interoperating, but in the end it won.
Lex Fridman (16:04.360)
And so that was the internet and it was email and texty
Lex Fridman (16:08.120)
and it was used and very texty.
Lex Fridman (16:09.520)
And then Tim Berners Lee did his thing,
Lex Fridman (16:12.540)
but I don't think I was paying attention.
Lex Fridman (16:14.120)
And I think the date when he first did it
Lex Fridman (16:16.400)
or when he wrote the famous emails and pushed back to 89,
Lex Fridman (16:19.580)
but I noticed a mosaic in 93 because one of the things
Lex Fridman (16:23.160)
that Mark Andreessen and Eric Bina did at NCSA
Brendan Eich (16:26.560)
was they innovated on the early HTML standard.
Lex Fridman (16:31.320)
They in particular Mark sent this email saying,
Brendan Eich (16:33.040)
hey everybody, we think you should be able
Lex Fridman (16:34.360)
to put an image in a page.
Lex Fridman (16:36.240)
And you know when he sent that Eric Bina had already
Lex Fridman (16:38.400)
written the code.
Lex Fridman (16:39.240)
And I talked to Tim Berners Lee more recently
Lex Fridman (16:41.920)
just a few years ago and he was like,
Brendan Eich (16:43.080)
oh, we had another way of doing it and it didn't work out
Lex Fridman (16:45.880)
because Mark shipped his in mosaic.
Lex Fridman (16:48.000)
And this convinced me of several things.
Lex Fridman (16:50.040)
One, the internet meant there was a huge first mover
Brendan Eich (16:53.840)
advantage and being fast, getting on first mattered a lot.
Lex Fridman (16:58.080)
And so Richard Gabriel of scheme and poetry fame
Brendan Eich (17:01.840)
has written about this, the famous.
Lex Fridman (17:03.160)
What's poetry? Well, he's a poet.
Brendan Eich (17:06.320)
Oh, actual poetry.
Lex Fridman (17:07.160)
Is he talking about some kind of something?
Brendan Eich (17:08.360)
No, no.
Lex Fridman (17:09.200)
I mean, he's the founder of Lucid,
Brendan Eich (17:10.200)
which is where Jamie Zawinski worked before Netscape.
Lex Fridman (17:12.920)
And Lucid was doing compilers and Lucid Emacs,
Brendan Eich (17:16.320)
which was a fork of Emacs,
Lex Fridman (17:18.240)
famously Jamie fighting against Richard Stallman, Stalmax.
Lex Fridman (17:22.680)
And so Richard Gabriel, very, very brainy computer guy,
Lex Fridman (17:25.260)
but also a poet, but he wrote a nice essay
Brendan Eich (17:27.360)
that gets abused all the time.
Lex Fridman (17:28.960)
In fact, Jamie's put a kind of warning in front
Brendan Eich (17:30.760)
of his version of it on his site,
Lex Fridman (17:32.640)
JWC.org called Worse is Better.
Lex Fridman (17:34.400)
And this is about survival advantage of software
Lex Fridman (17:38.240)
in the network world, in my opinion.
Brendan Eich (17:39.780)
It's about Unix.
Lex Fridman (17:41.440)
It started out being framed as Unix and Lisp,
Brendan Eich (17:43.720)
good news, bad news, because all the Lisp people,
Lex Fridman (17:46.000)
the MIT people were like, oh, you know,
Brendan Eich (17:48.320)
the crown jewel scheme, this Faberge egg or Common Lisp,
Lex Fridman (17:52.720)
this giant cathedral, of course we're going to win.
Brendan Eich (17:54.520)
This is civilization.
Lex Fridman (17:55.740)
And those, you know, those farmers in New Jersey
Brendan Eich (17:58.040)
to borrow from the Sopranos, those picks down at Bell Labs,
Lex Fridman (18:01.320)
they're just, you know, there's nothing sound there.
Brendan Eich (18:03.400)
It's all hacking.
Lex Fridman (18:05.280)
Well, guess what won?
Brendan Eich (18:06.840)
Wow, so you're saying this is a fundamental,
Lex Fridman (18:09.960)
like principle of the internet is moving fast wins.
Brendan Eich (18:14.800)
You could say in almost any network system,
Lex Fridman (18:16.960)
like in biological evolution,
Brendan Eich (18:18.260)
you see successful alleles sweep populations
Lex Fridman (18:20.720)
and they don't always have, you know,
Brendan Eich (18:23.440)
they aren't free of flaws.
Lex Fridman (18:24.480)
They're heterozygous advantage, right?
Brendan Eich (18:26.360)
You can get both parents give you the gene variant
Lex Fridman (18:30.200)
and you get sickle cell anemia, right?
Lex Fridman (18:31.800)
But if one of them does, you're more resistant to malaria.
Lex Fridman (18:34.680)
And so this isn't a beautiful process,
Brendan Eich (18:38.160)
except at large scale.
Lex Fridman (18:39.520)
And then you realize that because it moves fast
Lex Fridman (18:41.520)
and can adapt, it can win.
Lex Fridman (18:44.200)
And people still struggle with this.
Brendan Eich (18:46.600)
I used to struggle with this
Lex Fridman (18:47.880)
because JavaScript was done in such a hurry
Lex Fridman (18:50.120)
and the force of web compatibility meant
Lex Fridman (18:52.980)
early mistakes couldn't be fixed.
Lex Fridman (18:55.240)
And even the standards process injected new mistakes,
Lex Fridman (18:57.680)
as it will.
Lex Fridman (18:59.040)
But often standards bodies go back
Lex Fridman (19:00.400)
and making compatible changes.
Brendan Eich (19:01.680)
You can't do that with the web.
Lex Fridman (19:03.080)
It's more like, again, like biology,
Brendan Eich (19:05.200)
you preserve what still works.
Lex Fridman (19:07.120)
You don't want to break ATP metabolism or whatever.
Lex Fridman (19:10.360)
So you have to kind of resign yourself to the reality
Lex Fridman (19:15.140)
of worse is better being enshrined
Brendan Eich (19:20.000)
in actual design points you might not like.
Lex Fridman (19:23.120)
And that happened with JavaScript and I'm way over it,
Lex Fridman (19:25.780)
but it also, I think was a huge advantage.
Lex Fridman (19:28.880)
That's why JavaScript has kind of swept
Brendan Eich (19:31.160)
a lot of programming domains.
Lex Fridman (19:33.400)
People will say, oh, it's not because of merit.
Brendan Eich (19:34.840)
Well, you're right.
Lex Fridman (19:35.660)
But we also improved it over time in the standards body.
Brendan Eich (19:37.600)
I spent 20 years doing that.
Lex Fridman (19:39.320)
And you don't get that choice.
Brendan Eich (19:41.760)
It's like, I'm not saying that that was the best language.
Lex Fridman (19:45.360)
I'm just saying that was the right time to do it.
Lex Fridman (19:47.360)
And I like to say the alternative was not to do it.
Lex Fridman (19:50.280)
I could have told Netscape, I can't do this.
Brendan Eich (19:52.180)
It's too rushed.
Lex Fridman (19:53.200)
And it would have been visual basic script.
Lex Fridman (19:55.260)
And it would have been bad.
Lex Fridman (19:57.180)
So that's a good way to present the alternative.
Lex Fridman (19:59.780)
But so it was a Netscape and you have written it
Lex Fridman (1:00:00.520)
So this is the engineering mindset versus the theoretician.
Lex Fridman (1:00:03.500)
So you didn't want to create the perfect language,
Lex Fridman (1:00:05.120)
but one that was the popular and shipped
Lex Fridman (1:00:06.940)
and all that kind of stuff.
Lex Fridman (1:00:07.780)
And you could say there was,
Brendan Eich (1:00:08.620)
I was standing on the shoulders of giants.
Lex Fridman (1:00:09.940)
So there was a staged process
Brendan Eich (1:00:11.220)
where I had to hold back things
Lex Fridman (1:00:12.820)
that were well designed by others in other languages
Lex Fridman (1:00:15.900)
and I could imitate,
Lex Fridman (1:00:17.260)
but I couldn't do them all in the 10 days.
Lex Fridman (1:00:18.540)
So they came in 1996 and 97,
Lex Fridman (1:00:22.820)
and they came into the third edition of the standard,
Brendan Eich (1:00:25.140)
which was final finalized in 1999.
Lex Fridman (1:00:27.680)
But at that point,
Brendan Eich (1:00:28.520)
Netscape had been sold to AOL
Lex Fridman (1:00:31.220)
which was a decent exit considering
Lex Fridman (1:00:33.140)
and had previously been mercilessly crushed.
Lex Fridman (1:00:37.380)
Netscape was selling the browser along with server software
Brendan Eich (1:00:40.700)
that it had acquired after its IPO
Lex Fridman (1:00:42.740)
and Microsoft was just underpricing it.
Lex Fridman (1:00:44.560)
So there was no way to compete with that.
Lex Fridman (1:00:47.500)
Microsoft was also making Internet Explorer
Brendan Eich (1:00:51.420)
the default browser in Windows,
Lex Fridman (1:00:53.140)
which is called tying and antitrust law.
Lex Fridman (1:00:55.580)
And they were doing even more brutal things.
Lex Fridman (1:00:57.140)
There was a famous investor.
Brendan Eich (1:00:59.260)
He did very well on Google.
Lex Fridman (1:01:00.340)
So he's a billionaire, Ramshree Ram,
Lex Fridman (1:01:01.780)
and he was sales guy or head of sales at Netscape.
Lex Fridman (1:01:04.700)
And he got off the phone looking ashen faced
Brendan Eich (1:01:07.920)
after a compact called and said,
Lex Fridman (1:01:10.540)
Microsoft just told us they're gonna pull
Brendan Eich (1:01:12.060)
our Windows license if we ship Netscape
Lex Fridman (1:01:13.860)
as the default browser.
Brendan Eich (1:01:15.100)
Wow.
Lex Fridman (1:01:15.940)
So there is some bullying going on.
Brendan Eich (1:01:17.460)
It was totally immaterial in the antitrust case.
Lex Fridman (1:01:19.720)
But JavaScript escaped into the standard setting
Brendan Eich (1:01:23.060)
where there was fairly good cooperation.
Lex Fridman (1:01:24.900)
Microsoft had a really good guy on it
Lex Fridman (1:01:26.860)
and Guy Steele was there for a time
Lex Fridman (1:01:29.420)
and there was some good work.
Lex Fridman (1:01:30.900)
But after the antitrust case
Lex Fridman (1:01:33.460)
and Netscape kind of dissolving into AOL
Lex Fridman (1:01:37.500)
and not really going anywhere quickly,
Lex Fridman (1:01:38.940)
Mozilla took years to really bring up,
Brendan Eich (1:01:42.380)
the standard froze.
Lex Fridman (1:01:43.400)
And by 2003, even though they'd been sort of noodling around
Brendan Eich (1:01:46.300)
with advanced versions, JavaScript 2,
Lex Fridman (1:01:48.900)
I'd given the keys to the kingdom
Brendan Eich (1:01:50.300)
to another MIT grad, Baltimore Horwatt.
Lex Fridman (1:01:53.060)
Very big brain and still at Google, I think.
Brendan Eich (1:01:54.860)
He won the Putnam in 86
Lex Fridman (1:01:56.700)
and he's very mathematical.
Brendan Eich (1:01:58.380)
Legit.
Lex Fridman (1:01:59.640)
He designed this successor language, JavaScript 2,
Lex Fridman (1:02:02.980)
but it only showed up in mutated form
Lex Fridman (1:02:06.620)
in Microsoft's ASP.NET server side
Lex Fridman (1:02:09.560)
and it didn't last there.
Lex Fridman (1:02:11.100)
And it showed up in Flash
Lex Fridman (1:02:12.340)
and that's what became ActionScript 3.
Lex Fridman (1:02:14.220)
Ah, ActionScript, interesting.
Lex Fridman (1:02:16.860)
And then Flash of course declined.
Lex Fridman (1:02:18.740)
And so how did we arrive at ES6
Brendan Eich (1:02:21.300)
where it's like there's so many,
Lex Fridman (1:02:24.120)
where everyone, okay, there's this history of JavaScript
Brendan Eich (1:02:27.220)
that people were, it was just like cool
Lex Fridman (1:02:29.220)
when you're like having beers to talk crap about JavaScript.
Brendan Eich (1:02:32.540)
Everyone loves to hate,
Lex Fridman (1:02:33.900)
like people who are married say, ah, marriage sucks,
Brendan Eich (1:02:36.460)
is they just wanna get, let off some steam
Lex Fridman (1:02:38.900)
even though everyone uses the language.
Lex Fridman (1:02:40.900)
But ES6, it's become this like reputable,
Lex Fridman (1:02:45.940)
like it fixed major pain points, I think.
Brendan Eich (1:02:49.180)
It added things to the language
Lex Fridman (1:02:50.420)
and added something that was already ES5 strict mode,
Lex Fridman (1:02:53.580)
but made it implicit in class bodies and module bodies.
Lex Fridman (1:02:57.260)
It was a big jump,
Lex Fridman (1:02:58.500)
but it accumulated some of the ES4 designs
Lex Fridman (1:03:01.300)
that we'd done with Adobe
Brendan Eich (1:03:03.640)
for what we hoped would be the fourth edition of ECMAScript
Lex Fridman (1:03:07.660)
that were supposed to fold in some of these old JavaScript 2
Brendan Eich (1:03:10.740)
ideas that had come into ActionScript 3.
Lex Fridman (1:03:13.060)
So you look at the family tree and you see these forks
Lex Fridman (1:03:15.220)
and the main ones are the ones that go into Adobe Flash
Lex Fridman (1:03:20.700)
acquired from Macromedia
Lex Fridman (1:03:21.900)
and the one that went into the service side
Lex Fridman (1:03:23.580)
of Microsoft's stack, which kind of died.
Lex Fridman (1:03:27.100)
And then trying to bring them back into the standard
Lex Fridman (1:03:28.900)
and not quite succeeding, ES4 was mothballed,
Lex Fridman (1:03:32.300)
but all the good parts that everyone liked made it into ES6.
Lex Fridman (1:03:35.700)
And so that was a success.
Lex Fridman (1:03:37.060)
And I said earlier, I had the wrong year,
Lex Fridman (1:03:38.380)
I think it's 2015, so it's off by.
Brendan Eich (1:03:40.380)
Four, ES6.
Lex Fridman (1:03:42.420)
Yeah, it was finalized in 2015.
Brendan Eich (1:03:44.300)
It took a little longer than we hoped,
Lex Fridman (1:03:45.620)
but because ES5 was 2009
Lex Fridman (1:03:48.580)
and that was a smaller increment from ES3.
Lex Fridman (1:03:51.580)
We skipped four again, we mothballed it.
Lex Fridman (1:03:53.500)
And we had a split in the committee where some people said,
Lex Fridman (1:03:56.620)
ES4 is too big, we're gonna work on incremental improvements,
Brendan Eich (1:03:59.540)
no new syntax in particular, they promised.
Lex Fridman (1:04:02.580)
Not quite true, but they added a bunch of interesting APIs,
Brendan Eich (1:04:06.300)
Alan Wiersbrock, my coauthor of the Hobble paper.
Lex Fridman (1:04:09.880)
And he was at Microsoft at the time.
Brendan Eich (1:04:11.140)
I ended up hiring with Mozilla.
Lex Fridman (1:04:12.300)
He wanted to get to Mozilla and keep doing
Brendan Eich (1:04:16.620)
his sort of editor job of the JavaScript standard,
Lex Fridman (1:04:19.660)
ECMAScript.
Lex Fridman (1:04:21.300)
And when we got ES6 done, it was a little late, 2015,
Lex Fridman (1:04:25.660)
and we switched to year numbers.
Lex Fridman (1:04:27.180)
So people still call it ES6, I call it ES6.
Lex Fridman (1:04:30.100)
But if you remember, off by nine plus 2000.
Brendan Eich (1:04:33.100)
Yeah, I mean, ES6 is such a big job.
Lex Fridman (1:04:35.780)
I mean, like you said, there's a third that connects all of it,
Lex Fridman (1:04:38.300)
but ES6 is when it became this language
Lex Fridman (1:04:41.100)
that almost feels ready to take over the world completely.
Brendan Eich (1:04:45.180)
More programming and the large features,
Lex Fridman (1:04:46.660)
more features you need for larger teams.
Brendan Eich (1:04:49.380)
Software engineering.
Lex Fridman (1:04:50.300)
Microsoft did something smart, too.
Brendan Eich (1:04:52.220)
Anders and company, Luke Hoban, who's left Microsoft,
Lex Fridman (1:04:56.220)
also did TypeScript.
Lex Fridman (1:04:57.800)
And they realized something, I think,
Lex Fridman (1:05:00.400)
that Gilad Barak has also popularized,
Lex Fridman (1:05:02.760)
and he was involved in Dart at Google.
Lex Fridman (1:05:05.740)
If you, don't worry about soundness in the type system.
Brendan Eich (1:05:08.860)
You don't try to enforce the type checks
Lex Fridman (1:05:10.920)
at runtime in particular.
Brendan Eich (1:05:11.860)
Just use it as sort of a warning system,
Lex Fridman (1:05:13.460)
a tool time type system.
Brendan Eich (1:05:15.020)
You can still have a lot of value for developers,
Lex Fridman (1:05:17.660)
especially in large projects.
Lex Fridman (1:05:19.260)
So TypeScript's been a roaring success for Microsoft.
Lex Fridman (1:05:21.260)
What do you think about TypeScript?
Lex Fridman (1:05:24.100)
Is it adding confusion, or is it ultimately beneficial?
Lex Fridman (1:05:27.380)
I think it's beneficial.
Brendan Eich (1:05:28.220)
Now, it's technically a superset of JavaScript,
Lex Fridman (1:05:30.920)
so of course I love it, right?
Brendan Eich (1:05:33.380)
The shortest JavaScript program
Lex Fridman (1:05:35.540)
is still a TypeScript program.
Brendan Eich (1:05:36.660)
Any JavaScript program is a TypeScript program,
Lex Fridman (1:05:38.540)
which is brilliant,
Brendan Eich (1:05:39.380)
because then you can start incrementally adding
Lex Fridman (1:05:40.860)
type annotations, getting warnings,
Brendan Eich (1:05:43.020)
learning how to use them.
Lex Fridman (1:05:44.420)
Microsoft's had to kind of look around corners
Brendan Eich (1:05:47.180)
at the standards body and guess how their version of modules
Lex Fridman (1:05:50.780)
or decorators should work.
Lex Fridman (1:05:52.500)
And the standards body then may change things a bit.
Lex Fridman (1:05:55.380)
So I think they're obligated with TypeScript
Brendan Eich (1:05:57.620)
either to carry their own version
Lex Fridman (1:05:59.340)
or to bring it back with incompatible changes
Brendan Eich (1:06:01.680)
towards the standard over time.
Lex Fridman (1:06:03.100)
And I think they've played generally fair there.
Brendan Eich (1:06:05.420)
There's some sentiment that,
Lex Fridman (1:06:06.460)
why don't they standardize TypeScript?
Brendan Eich (1:06:07.980)
Well, they've been clear they don't want to.
Lex Fridman (1:06:09.920)
They have a proprietary investment, it's valuable.
Brendan Eich (1:06:11.880)
They have control of the ball.
Lex Fridman (1:06:13.420)
And in some ways, you can say the same thing
Brendan Eich (1:06:15.820)
to any of the other big companies in the standards body.
Lex Fridman (1:06:18.100)
Why doesn't Google standardize its stuff?
Lex Fridman (1:06:20.580)
So you think it'll continue being
Lex Fridman (1:06:22.260)
like a kind of dance partner to JavaScript,
Lex Fridman (1:06:24.620)
to the base JavaScript?
Lex Fridman (1:06:25.860)
There's a hope that at some point,
Brendan Eich (1:06:27.620)
if they keep reconverging it and the standard
Lex Fridman (1:06:29.740)
doesn't break them and goes in a good direction,
Brendan Eich (1:06:32.020)
we will get at least the annotation syntax
Lex Fridman (1:06:34.780)
and some semantics around them.
Brendan Eich (1:06:37.020)
Because when you're talking about type annotations,
Lex Fridman (1:06:39.020)
they're generally on parameters and return values
Lex Fridman (1:06:42.340)
and variable declarations.
Lex Fridman (1:06:43.940)
They're cast operators.
Brendan Eich (1:06:45.540)
You want that syntax to be reserved
Lex Fridman (1:06:47.260)
and you want it to work the same in all engines.
Lex Fridman (1:06:49.980)
And this is where ideas like Gilad's
Lex Fridman (1:06:51.540)
pluggable type systems might be good,
Brendan Eich (1:06:54.240)
though then you could create the same problem
Lex Fridman (1:06:55.820)
you have with Lisp and Scheme,
Brendan Eich (1:06:56.960)
where there's a bunch of macro libraries
Lex Fridman (1:06:58.540)
and they don't agree and you have conflicts between them.
Lex Fridman (1:07:01.700)
But pluggable type systems could be one way to standardize.
Lex Fridman (1:07:04.940)
What do you think about the giant ecosystem
Lex Fridman (1:07:07.060)
of frameworks in JavaScript?
Lex Fridman (1:07:09.820)
It feels like, because, I mean,
Brendan Eich (1:07:12.860)
this is a side effect of how many people use JavaScript,
Lex Fridman (1:07:16.060)
a lot of entrepreneurial spirit
Brendan Eich (1:07:19.220)
create their own JavaScript frameworks
Lex Fridman (1:07:22.300)
and they're actually awesome in all different ways.
Lex Fridman (1:07:27.260)
And this is an interesting question
Lex Fridman (1:07:31.220)
about almost like philosophically
Brendan Eich (1:07:33.180)
about biological system and evolution,
Lex Fridman (1:07:35.260)
all that kind of stuff.
Lex Fridman (1:07:36.140)
Do you see that as good or should it like,
Lex Fridman (1:07:38.600)
should some of them die out quicker?
Brendan Eich (1:07:40.380)
I think maybe they should, now jQuery was a very clever
Lex Fridman (1:07:44.480)
thing, John Resig made this library
Brendan Eich (1:07:45.980)
that was sort of query and do
Lex Fridman (1:07:47.600)
and blended sort of CSS selector syntax
Brendan Eich (1:07:49.980)
with JavaScript sort of object graph or DOM querying
Lex Fridman (1:07:53.020)
and made it very easy for people to do things
Brendan Eich (1:07:54.940)
almost like they were learning jQuery as its own language,
Lex Fridman (1:07:57.660)
domain specific language.
Lex Fridman (1:07:58.980)
And that I think reflected in part the difficulty
Lex Fridman (1:08:03.220)
of using the document object model,
Brendan Eich (1:08:04.960)
these APIs that were originally designed in the 90s
Lex Fridman (1:08:07.020)
for Java as well as JavaScript.
Brendan Eich (1:08:08.460)
They're very object oriented or even procedural.
Lex Fridman (1:08:11.740)
They're very kind of verbose.
Lex Fridman (1:08:13.360)
And it took like a constructor call
Lex Fridman (1:08:15.420)
and three different, you know, hokey pokey dances
Brendan Eich (1:08:17.820)
to do something where as in jQuery, it's just one line.
Lex Fridman (1:08:20.500)
Right, so that fed back finally into the standards.
Brendan Eich (1:08:24.500)
It didn't mean we standardized jQuery.
Lex Fridman (1:08:25.940)
It wasn't quite that concise,
Lex Fridman (1:08:27.140)
but you find now with the modern standards
Lex Fridman (1:08:29.660)
that we were working on in the HTML5 sort of effort
Brendan Eich (1:08:34.780)
that things became simpler, the fetch API
Lex Fridman (1:08:37.100)
and the query selector API, document.querySelector.
Brendan Eich (1:08:40.140)
A lot of things can be done now in raw JavaScript
Lex Fridman (1:08:42.540)
that you would make more concise and terse in jQuery,
Lex Fridman (1:08:46.660)
but it's not bad.
Lex Fridman (1:08:47.980)
It's pretty good.
Brendan Eich (1:08:48.820)
Whereas in the old DOM of 15 years ago,
Lex Fridman (1:08:51.100)
it was just too verbose.
Lex Fridman (1:08:51.940)
So maybe the frameworks were born kind of
Lex Fridman (1:08:55.560)
because JavaScript lacks some of the features of jQuery.
Lex Fridman (1:08:59.020)
And so like now that JavaScript is swallowing
Lex Fridman (1:09:02.700)
what jQuery was, then the frameworks will,
Brendan Eich (1:09:05.220)
only the ones that truly add value will stick around
Lex Fridman (1:09:07.840)
and the other ones will die out.
Lex Fridman (1:09:08.980)
And that highlights this also this division
Lex Fridman (1:09:10.700)
between the core language JavaScript,
Brendan Eich (1:09:12.300)
which can show up in other places
Lex Fridman (1:09:13.580)
like Node.js on the server side
Lex Fridman (1:09:15.680)
and the browser specific APIs
Lex Fridman (1:09:17.660)
or the document object model APIs,
Brendan Eich (1:09:19.720)
which are even managed by the W3C,
Lex Fridman (1:09:21.580)
the standards body that was off in XML La La Land
Brendan Eich (1:09:24.460)
when we were doing real JavaScript standards in ECMA.
Lex Fridman (1:09:26.940)
And you have this division of labor,
Brendan Eich (1:09:30.260)
division of responsibility and division of style
Lex Fridman (1:09:33.260)
and sort of aesthetics and also speed.
Lex Fridman (1:09:37.260)
So the document object model really stagnated
Lex Fridman (1:09:39.620)
after Microsoft kind of deinvested in the web.
Lex Fridman (1:09:43.580)
And Microsoft did something in their haste
Lex Fridman (1:09:45.860)
in the spirit of Netscape,
Brendan Eich (1:09:46.900)
doing things quickly and getting on first called DHTML.
Lex Fridman (1:09:49.780)
And some of their innovations
Brendan Eich (1:09:51.340)
that were like an alternative document object model
Lex Fridman (1:09:53.700)
didn't really get standardized until HTML5
Brendan Eich (1:09:56.860)
when we pragmatists at Opera at the time,
Lex Fridman (1:10:00.020)
Ian Hickson who went to Google,
Brendan Eich (1:10:01.720)
Apple and Mozilla said let's,
Lex Fridman (1:10:05.100)
XML is not gonna replace HTML, HTML4 is too old.
Brendan Eich (1:10:08.700)
Let's standardize HTML5 based on all this good stuff
Lex Fridman (1:10:12.140)
including that DHTML variant dynamic HTML5.
Brendan Eich (1:10:14.900)
HTML5, it feels like to me, maybe you can correct me,
Lex Fridman (1:10:18.140)
like a beautiful piece of design work.
Brendan Eich (1:10:21.140)
It was, it's not often with web stuff,
Lex Fridman (1:10:24.860)
you have this breath of just like,
Brendan Eich (1:10:27.320)
oh, whoever did this is, it just feels good.
Lex Fridman (1:10:31.740)
Is that, what are your thoughts about HTML?
Lex Fridman (1:10:33.660)
Is the, am I being too romantic?
Lex Fridman (1:10:35.860)
A little bit, a little bit.
Brendan Eich (1:10:36.780)
Are there flaws, fundamental flaws to it
Lex Fridman (1:10:38.660)
that I'm just not aware of?
Brendan Eich (1:10:40.180)
My old friend Hixie did a great job.
Lex Fridman (1:10:42.540)
He was another renegade physics student.
Lex Fridman (1:10:45.660)
And he was basically a QA guy at Opera
Lex Fridman (1:10:47.980)
but he obviously trained physics student
Lex Fridman (1:10:52.500)
and someone who could write British
Lex Fridman (1:10:54.620)
or he developed test suites
Lex Fridman (1:10:57.820)
and he started thinking about them more axiomatically.
Lex Fridman (1:11:00.920)
Now this is, this can be good
Brendan Eich (1:11:02.520)
because you can sort of systematize
Lex Fridman (1:11:03.980)
in a way that makes a better HTML
Brendan Eich (1:11:06.020)
or you can get caught in the pragmatism of saying,
Lex Fridman (1:11:08.100)
well, we have to handle all of these edge cases
Lex Fridman (1:11:09.820)
so we're just gonna have sort of a test matrix.
Lex Fridman (1:11:12.580)
And if the matrix is large,
Brendan Eich (1:11:13.980)
it will not be beautiful by many people's lights.
Lex Fridman (1:11:15.860)
Everyone likes to minimize along their preferred dimensions,
Brendan Eich (1:11:19.340)
the seven special forms and scheme or whatever.
Lex Fridman (1:11:21.660)
But reality is HTML needs to be big.
Brendan Eich (1:11:27.140)
It's kind of shambolic, it's a creative multi paradigm.
Lex Fridman (1:11:30.400)
And Hixie did a good job, I would say, with a bunch of it.
Brendan Eich (1:11:34.380)
Other people came in in the spirit of Ian Hickson
Lex Fridman (1:11:36.620)
to do HTML5 work and they've carried on that effort.
Lex Fridman (1:11:40.260)
And so it's a mix of pragmatism,
Lex Fridman (1:11:42.820)
de facto standards from the past being sort of combined
Brendan Eich (1:11:46.280)
or written down for the first time
Lex Fridman (1:11:47.580)
and then rethought in a way that has a simpler syntax,
Brendan Eich (1:11:50.300)
like the fetch API instead of XML HTTP request.
Lex Fridman (1:11:54.420)
This video too as well, it ultimately,
Brendan Eich (1:11:56.540)
it feels like maybe you can correct me,
Lex Fridman (1:11:58.100)
it feels like it was the nail in the coffin of Flash.
Brendan Eich (1:12:01.180)
Steve Jobs saying no Flash on the iPhone,
Lex Fridman (1:12:03.020)
in my opinion, was the actual sting through the heart.
Brendan Eich (1:12:05.460)
But, well, I'm not sure what trope you wanna use.
Lex Fridman (1:12:09.140)
Flash was a zombie until just this year, right?
Brendan Eich (1:12:12.060)
Or last year, I think last year
Lex Fridman (1:12:13.300)
was the end of Flash in main browsers.
Lex Fridman (1:12:16.380)
But Jobs really did the death blow.
Lex Fridman (1:12:18.280)
And yeah, you're right, we had to make HTML5 competitive.
Brendan Eich (1:12:23.020)
I still don't think we got
Lex Fridman (1:12:23.900)
that beautiful timeline animation.
Brendan Eich (1:12:26.780)
The timeline thing, so you like the time.
Lex Fridman (1:12:28.620)
I mean, me from, I used to animate
Brendan Eich (1:12:31.180)
all kinds of stuff inside Flash,
Lex Fridman (1:12:32.780)
plus there's a programming element.
Brendan Eich (1:12:34.940)
It was a little bit, I don't know if you can comment on that,
Lex Fridman (1:12:38.440)
but to me, it was a little bit like go to statement,
Brendan Eich (1:12:40.780)
like in a sense that it was a little bit too chaotic.
Lex Fridman (1:12:44.900)
Like it didn't, that OCD part of me as a programmer
Brendan Eich (1:12:48.380)
wasn't satisfied by Flash.
Lex Fridman (1:12:50.180)
It feels like there was bugs that were introduced
Brendan Eich (1:12:52.760)
through the animation process that I couldn't debug easily.
Lex Fridman (1:12:55.340)
Yes, I heard that too.
Brendan Eich (1:12:56.620)
I didn't use it,
Lex Fridman (1:12:57.460)
so I'm doing the grass is greener thing here.
Brendan Eich (1:12:59.820)
The thing I liked about the animation model
Lex Fridman (1:13:02.100)
was that it was this immutable function of time.
Lex Fridman (1:13:03.900)
So you could time warp and you could,
Lex Fridman (1:13:06.220)
if you dodged these bugs or worked carefully,
Brendan Eich (1:13:08.320)
you could really make it sing in ways
Lex Fridman (1:13:09.900)
that I think still a little challenging
Brendan Eich (1:13:11.700)
with the web animation standards.
Lex Fridman (1:13:14.620)
But, or just using raw canvas and WebGL.
Lex Fridman (1:13:18.140)
But there's so many tools now that maybe it doesn't matter.
Lex Fridman (1:13:20.740)
And yet we had to do video,
Brendan Eich (1:13:23.980)
we had to do WebGL and then evolve it.
Lex Fridman (1:13:27.820)
We had to do web audio.
Lex Fridman (1:13:30.060)
But once we did all these things that helped Flash die,
Lex Fridman (1:13:34.140)
thanks to Steve Gubbs,
Brendan Eich (1:13:35.700)
we had something that people didn't realize.
Lex Fridman (1:13:39.580)
We had that vision that Market Vision had,
Brendan Eich (1:13:41.180)
this graphics capable to the metal portable runtime.
Lex Fridman (1:13:46.620)
And we at Mozilla realized this
Lex Fridman (1:13:49.360)
and we saw JavaScript was something
Lex Fridman (1:13:52.420)
that you could compile to.
Brendan Eich (1:13:53.340)
Adobe had somebody in the Adobe Labs doing this too.
Lex Fridman (1:13:55.620)
He had a project called Alchemy.
Brendan Eich (1:13:57.220)
We had somebody who's now Google,
Lex Fridman (1:13:59.820)
Alon Zakai, who did his own LLVM based compiler
Brendan Eich (1:14:03.260)
that would take C or C++ and it would emit JavaScript.
Lex Fridman (1:14:06.140)
And you would think this is crazy.
Brendan Eich (1:14:07.660)
You're going from this sort of machine types,
Lex Fridman (1:14:09.820)
low level, controlled memory allocation language
Brendan Eich (1:14:13.100)
to this garbage collected, dynamically typed,
Lex Fridman (1:14:16.380)
high level, higher level language.
Lex Fridman (1:14:18.060)
But Alon sort of just phenomenologically carved nature
Lex Fridman (1:14:22.460)
of the joint and found the forms
Brendan Eich (1:14:23.740)
that were fast in JavaScript.
Lex Fridman (1:14:25.380)
And then with Dave Herman,
Brendan Eich (1:14:27.300)
who I'd recruited from Northeastern University,
Lex Fridman (1:14:29.580)
who was a type theorist,
Lex Fridman (1:14:31.280)
and Luke Wagner, who's still at Mozilla,
Lex Fridman (1:14:33.840)
who was the compiler guy and the JIT guy,
Brendan Eich (1:14:36.860)
they figured out how to codify what Alon had done
Lex Fridman (1:14:40.240)
into a typed subset of JavaScript called Asm.js.
Lex Fridman (1:14:44.320)
And this is a strange thing to think about
Lex Fridman (1:14:45.700)
because it doesn't have new syntax.
Brendan Eich (1:14:47.320)
The types are casts that occur in dominator positions
Lex Fridman (1:14:52.780)
in the control flow graph.
Lex Fridman (1:14:54.180)
So it's like a hack on JavaScript and it's a subset
Lex Fridman (1:14:56.740)
and it uses those bitwise operators
Brendan Eich (1:14:58.380)
that I talked about copying from Java
Lex Fridman (1:15:00.420)
to basically cast numeric types,
Brendan Eich (1:15:04.500)
which are double position flowing point, into integers.
Lex Fridman (1:15:06.940)
And so inside JavaScript, in the kernel semantics,
Brendan Eich (1:15:10.600)
are integers.
Lex Fridman (1:15:11.700)
And if you use these operators,
Brendan Eich (1:15:13.040)
if a compiler emits them in the right places,
Lex Fridman (1:15:15.600)
you can then treat them as typed values,
Brendan Eich (1:15:18.500)
typed memory locations, and you can type check your program.
Lex Fridman (1:15:22.380)
You can not only type check it, you can compile it.
Lex Fridman (1:15:24.940)
And this is all in sort of linear time, Alon.
Lex Fridman (1:15:27.480)
You can compile it to have deterministic performance.
Brendan Eich (1:15:30.420)
It doesn't touch the garbage collector.
Lex Fridman (1:15:32.580)
It calls a bunch of functions that come from the C functions
Brendan Eich (1:15:35.500)
or C++ code that you're compiling.
Lex Fridman (1:15:37.500)
And you can make the Epic Unreal Engine
Brendan Eich (1:15:40.980)
go in 30 frames a second.
Lex Fridman (1:15:43.620)
And when we did this in 2013 in the fall,
Brendan Eich (1:15:46.900)
Tim Sweeney and I didn't think it could be done quickly.
Lex Fridman (1:15:50.180)
Thought it would take years.
Lex Fridman (1:15:51.580)
And the team went to Raleigh, to Epic,
Lex Fridman (1:15:54.100)
and in four days they had Unreal Engine ported
Brendan Eich (1:15:57.460)
by pressing a compile button.
Lex Fridman (1:15:59.980)
But they had to have WebGL,
Brendan Eich (1:16:01.700)
which came from OpenGL.
Lex Fridman (1:16:03.220)
Yes, it came to OpenGL, which came from Silicon Graphics GL.
Brendan Eich (1:16:06.020)
They had to have Web Audio so they could map OpenAL,
Lex Fridman (1:16:09.460)
which was another audio library standard to Web Audio,
Brendan Eich (1:16:11.740)
which was kind of a Chrome idiosyncratic thing.
Lex Fridman (1:16:14.940)
But they could make it work.
Lex Fridman (1:16:16.300)
And they had to have Asm.js for fast C++ to JavaScript.
Lex Fridman (1:16:21.100)
And if you didn't have that fast compiler step,
Brendan Eich (1:16:25.260)
the JavaScript you'd write by hand
Lex Fridman (1:16:27.380)
trying to do an Unreal game would be too big and too slow.
Brendan Eich (1:16:29.820)
It would touch the garbage collector.
Lex Fridman (1:16:31.420)
It would not keep up with 30 frames a second
Brendan Eich (1:16:33.220)
on the hardware, 2013 hardware.
Lex Fridman (1:16:35.580)
So we demoed that at,
Brendan Eich (1:16:38.540)
this must have been fall 2012 now that I think about it.
Lex Fridman (1:16:40.420)
Because we demoed it at GDC,
Brendan Eich (1:16:42.340)
Game Developer Conference 2013.
Lex Fridman (1:16:44.420)
And people were stunned.
Brendan Eich (1:16:45.420)
That's like Unreal Engine, Unreal Tournament
Lex Fridman (1:16:47.380)
running in my browser window.
Brendan Eich (1:16:48.860)
No plugin, no Flash, no Java, no.
Lex Fridman (1:16:52.660)
So were those the early days of,
Brendan Eich (1:16:54.420)
because JavaScript now is able to run basically on par
Lex Fridman (1:16:58.340)
with a lot of the C++.
Lex Fridman (1:17:01.860)
And even before then,
Lex Fridman (1:17:02.780)
you had the fast JavaScript VMs in 2008
Brendan Eich (1:17:05.340)
when Chrome came out.
Lex Fridman (1:17:06.520)
Just before it came out, Mozilla,
Brendan Eich (1:17:08.740)
my friend Andreas Gal and I and others
Lex Fridman (1:17:11.660)
hacked out Trace Monkey, our Trace based JIT.
Brendan Eich (1:17:14.420)
The Squirrel Fish Extreme team at Apple did their JIT.
Lex Fridman (1:17:18.700)
And we were all competing
Brendan Eich (1:17:19.660)
on these crazy performance benchmarks.
Lex Fridman (1:17:21.860)
It was a little bit too much tuning to the benchmark.
Lex Fridman (1:17:23.520)
But JavaScript started getting fast
Lex Fridman (1:17:25.180)
and developers started noticing it.
Lex Fridman (1:17:26.660)
But it was still kind of its own high level language
Lex Fridman (1:17:29.740)
with garbage collection.
Brendan Eich (1:17:30.740)
The Asm.js step helped us go further
Lex Fridman (1:17:33.220)
because until we really proved the concept,
Brendan Eich (1:17:37.060)
people were still saying, well, JavaScript's okay.
Lex Fridman (1:17:39.340)
It's getting faster, thanks to V8.
Brendan Eich (1:17:40.980)
Everybody gave Google credit, especially Google.
Lex Fridman (1:17:43.300)
But we need something to kill Flash.
Brendan Eich (1:17:44.900)
Let's use the portable native client code
Lex Fridman (1:17:47.260)
that Google had acquired, native client.
Brendan Eich (1:17:50.260)
Which is a separate lineage for taking basically C code,
Lex Fridman (1:17:52.940)
compiling it into a software fault isolated container
Brendan Eich (1:17:56.260)
of some sort using some kind of virtualization technique.
Lex Fridman (1:17:59.740)
And maybe it can even be in process
Lex Fridman (1:18:01.620)
and still be memory safe, that would be awesome.
Lex Fridman (1:18:03.080)
But they ended up using process isolation too.
Lex Fridman (1:18:04.800)
And that kind of weakened it.
Lex Fridman (1:18:06.300)
And in the end, it was like portable native client,
Brendan Eich (1:18:08.540)
okay, meet the new boss, same as the old boss.
Lex Fridman (1:18:11.060)
This is the Google Flash, right?
Lex Fridman (1:18:13.260)
But when we did Asm.js and we showed Unreal Engine working,
Lex Fridman (1:18:17.180)
I think it was only a matter of time
Brendan Eich (1:18:18.660)
before Google threw in the towel.
Lex Fridman (1:18:19.820)
And in fact, everybody agreed in spring of 2015,
Brendan Eich (1:18:23.160)
we're gonna take what was proven by Asm.js
Lex Fridman (1:18:25.500)
and make a new syntax, a binary syntax, it's efficient,
Brendan Eich (1:18:29.460)
that loads into the same JavaScript VM
Lex Fridman (1:18:31.580)
that JavaScript loads into.
Lex Fridman (1:18:32.620)
So there'll be two source languages, one VM,
Lex Fridman (1:18:34.780)
very important, one garbage collector,
Brendan Eich (1:18:36.220)
one memory manager, one set of compiler stages.
Lex Fridman (1:18:40.780)
And that's called WebAssembly.
Lex Fridman (1:18:42.300)
And that's the successor to Asm.js.
Lex Fridman (1:18:44.260)
And it's important that it have binary syntax
Brendan Eich (1:18:46.340)
because at the end of the day, especially on mobile,
Lex Fridman (1:18:48.780)
if you're downloading JavaScript,
Brendan Eich (1:18:50.100)
even if you're using LZ compression on the wire,
Lex Fridman (1:18:52.040)
that's cool, but you've got to blow it out into memory
Lex Fridman (1:18:53.940)
and then parse the silly eight character function keyword
Lex Fridman (1:18:56.860)
that I picked, when I should have used something shorter,
Brendan Eich (1:19:00.820)
I picked it because of awk, the Unix tool.
Lex Fridman (1:19:04.540)
So anyways.
Brendan Eich (1:19:05.380)
I want to, but I'm not following the awk thread.
Lex Fridman (1:19:07.940)
Yeah, don't worry about it.
Brendan Eich (1:19:09.780)
Is it surprising to you that,
Lex Fridman (1:19:12.260)
how damn fast JavaScript is these days?
Brendan Eich (1:19:14.660)
I mean, like, you've been through the whole journey.
Lex Fridman (1:19:16.900)
I know every step of the way, but is it like,
Brendan Eich (1:19:19.640)
I mean, it feels incredible.
Lex Fridman (1:19:22.140)
It does, but I knew, so the funny thing is,
Lex Fridman (1:19:24.220)
computer science is this big karmic wheel, right?
Lex Fridman (1:19:26.860)
Wheel of Fortuna.
Lex Fridman (1:19:29.140)
And in the, it's about the 97,
Lex Fridman (1:19:32.460)
I was loaned by Netscape to do due diligence for Sun
Brendan Eich (1:19:37.100)
in their acquisition of Anamorphic,
Lex Fridman (1:19:39.300)
which was David Unger and friends, people,
Brendan Eich (1:19:45.180)
Craig, I'm forgetting his name, he went to Microsoft.
Lex Fridman (1:19:47.700)
These Stanford language buffs who'd taken Smalltalk
Lex Fridman (1:19:51.180)
and then David create itself
Lex Fridman (1:19:53.500)
as a simpler sort of Smalltalk language
Lex Fridman (1:19:56.260)
and made really fast, just in time compiling VMs for them.
Lex Fridman (1:20:00.620)
And they, you know, well ahead of Java hotspot
Brendan Eich (1:20:04.320)
or JavaScript V8 or any of these modern VMs,
Lex Fridman (1:20:07.660)
figured out how to make dynamic code fast
Lex Fridman (1:20:10.780)
because Smalltalk is dynamic language, right?
Lex Fridman (1:20:13.100)
It has classes, it has, I think more lockdown declarative
Brendan Eich (1:20:16.420)
syntax than JavaScript, but it's fundamentally dynamic.
Lex Fridman (1:20:18.500)
You don't declare the types.
Lex Fridman (1:20:19.900)
But you could infer the types as the program runs
Lex Fridman (1:20:24.180)
and you start to form these ideas
Brendan Eich (1:20:26.100)
about what types are actually flowing through key operations
Lex Fridman (1:20:29.100)
and you form little so called polymorphic inline caches
Brendan Eich (1:20:32.740)
that are optimized machine code.
Lex Fridman (1:20:35.660)
The cache is the machine code that assumes,
Brendan Eich (1:20:38.340)
does a quick check to make sure the type is right
Lex Fridman (1:20:40.180)
and if it's not right, it bails to the interpreter.
Lex Fridman (1:20:42.420)
And if it is right, you go pretty fast.
Lex Fridman (1:20:44.500)
And that short test is a predicted branch,
Lex Fridman (1:20:47.100)
so things are pretty quick.
Lex Fridman (1:20:48.660)
All that amazing stuff I knew about in the 90s
Lex Fridman (1:20:51.340)
and I didn't have time to do it
Lex Fridman (1:20:53.780)
and Anamorphic got bought by Sun and they did hotspot.
Lex Fridman (1:20:57.220)
And you needed that even in Java because at scale,
Lex Fridman (1:21:00.060)
Java has some dynamic aspects due to invoke interface.
Brendan Eich (1:21:04.340)
You can have basically collections of Java code
Lex Fridman (1:21:06.740)
where you don't know at the time each module
Brendan Eich (1:21:10.900)
or package is compiled exactly what's being called,
Lex Fridman (1:21:13.900)
what subclass or what implementation
Brendan Eich (1:21:16.300)
of an interface is being called.
Lex Fridman (1:21:17.820)
And so you want to optimize using this sort of dynamic
Brendan Eich (1:21:20.100)
polymorphic caching there too.
Lex Fridman (1:21:21.740)
And they did that and hotspot, it's amazing beast.
Brendan Eich (1:21:24.620)
I've met like 13 people who all claim they created it.
Lex Fridman (1:21:27.740)
I think one of them may deserve credit more than others.
Lex Fridman (1:21:31.620)
But I didn't get to do that in JavaScript.
Lex Fridman (1:21:34.660)
And when we knew that Google was going to do their own
Brendan Eich (1:21:38.420)
browser, which we knew at Mozilla around 2006,
Lex Fridman (1:21:42.420)
I also met the team that did V8.
Lex Fridman (1:21:45.140)
And it turns out it was Lars Bach,
Lex Fridman (1:21:46.580)
who was one of the young engineers from Anamorphic
Brendan Eich (1:21:49.300)
that got acquired by Sun.
Lex Fridman (1:21:50.660)
And so Lars is like one of the world's expert
Brendan Eich (1:21:52.940)
on these kinds of virtual machines.
Lex Fridman (1:21:54.940)
And he picked my brains about JavaScript.
Brendan Eich (1:21:56.780)
I could tell he didn't like it at the time,
Lex Fridman (1:21:58.100)
but he had to do it.
Brendan Eich (1:21:59.920)
And...
Lex Fridman (1:22:00.760)
Oh, really interesting.
Brendan Eich (1:22:01.580)
Yeah, in 2006 lunch at Google's campus.
Lex Fridman (1:22:03.780)
And then I had another friend who was DevRel at Chrome
Lex Fridman (1:22:07.020)
and he said, yeah, we don't know what they're doing.
Lex Fridman (1:22:08.340)
This is getting 2007 to fall, getting toward 2008.
Brendan Eich (1:22:12.020)
We're trying to get Chrome out
Lex Fridman (1:22:13.020)
and we don't know what's going with the V8 team.
Brendan Eich (1:22:14.500)
They're off in Aarhus, Denmark,
Lex Fridman (1:22:16.900)
rewriting their engine four times, which is good.
Brendan Eich (1:22:19.300)
That's the right way to do this kind of development.
Lex Fridman (1:22:22.300)
They were learning JavaScript, including all its quirks,
Brendan Eich (1:22:24.280)
which they came to hate the fire of a thousand suns,
Lex Fridman (1:22:27.020)
which is one of the reasons that Lars and company did Dart,
Brendan Eich (1:22:29.820)
their own language.
Lex Fridman (1:22:30.940)
But they also made the language fast.
Lex Fridman (1:22:32.900)
And meanwhile, we knew this was happening.
Lex Fridman (1:22:35.260)
So we got our act together with Trace Monkey,
Brendan Eich (1:22:38.500)
our tracing JIT at Mozilla and Apple I think was also aware.
Lex Fridman (1:22:41.860)
And so they were doing their own JIT.
Lex Fridman (1:22:43.020)
So the era of JITed fast JavaScript in 2008
Lex Fridman (1:22:46.420)
had this prehistory going back to Smalltalk itself
Lex Fridman (1:22:49.580)
and Anamorphic.
Lex Fridman (1:22:50.980)
And again, the lineage is interesting
Brendan Eich (1:22:53.100)
because you had Lars and Anamorphic
Lex Fridman (1:22:54.500)
and then he ends up at Google.
Brendan Eich (1:22:55.980)
Yeah, and today we have an incredibly fast language
Lex Fridman (1:23:00.160)
that like you said, still,
Brendan Eich (1:23:02.860)
without hate, you can't have love.
Lex Fridman (1:23:04.780)
So I think there's both love and hate for this dance,
Brendan Eich (1:23:09.820)
this rich complex dance of JavaScript
Lex Fridman (1:23:12.100)
throughout its history.
Brendan Eich (1:23:12.940)
There's a dialectic for sure.
Lex Fridman (1:23:15.300)
Today, JavaScript is the most popular language in the world.
Lex Fridman (1:23:20.140)
Why by many measures?
Lex Fridman (1:23:22.980)
Why do you think that is?
Brendan Eich (1:23:24.700)
Is there some fundamental ideas
Lex Fridman (1:23:28.420)
that you've already spoke to a little bit
Lex Fridman (1:23:29.740)
but sort of broader
Lex Fridman (1:23:30.820)
that you think is the most popular language in the world?
Lex Fridman (1:23:32.820)
So I think I did, by doing first class functions
Lex Fridman (1:23:36.220)
and taking the good parts of the C operator hierarchy
Lex Fridman (1:23:40.780)
and just keeping things simple enough,
Lex Fridman (1:23:44.060)
maybe it could have been simpler
Lex Fridman (1:23:45.100)
but I had to make it look like Java
Lex Fridman (1:23:47.380)
and interoperate with Java
Brendan Eich (1:23:48.780)
that there was inherent goodness,
Lex Fridman (1:23:52.860)
Aristotelian quality there.
Lex Fridman (1:23:54.420)
And people perceive that
Lex Fridman (1:23:56.100)
even through all the quirks and warts.
Lex Fridman (1:23:57.740)
And then over time working on it with the standards body,
Lex Fridman (1:23:59.940)
working on it not only as a core language
Lex Fridman (1:24:02.800)
but in the context of HTML5 and making the browser better,
Lex Fridman (1:24:06.660)
listening to developers, thinking about,
Brendan Eich (1:24:08.940)
this is something that Nick Thompson wrote nicely
Lex Fridman (1:24:10.860)
about on Hacker News, I was very flattered.
Brendan Eich (1:24:12.620)
He said, Java was this thing
Lex Fridman (1:24:14.300)
where the experts were writing the code
Lex Fridman (1:24:16.000)
and it was compiled and you had to declare all your types
Lex Fridman (1:24:18.020)
and Sun didn't really give a damn about
Brendan Eich (1:24:20.980)
the average programmer who wanted to build real web apps,
Lex Fridman (1:24:23.820)
dynamic things.
Lex Fridman (1:24:25.060)
And I was in there meanwhile doing a bunch of people's jobs
Lex Fridman (1:24:28.820)
making JavaScript survive those early years
Brendan Eich (1:24:31.580)
when it was kind of touch and go.
Lex Fridman (1:24:33.620)
JavaScript was considered a Mickey Mouse language.
Brendan Eich (1:24:36.140)
It was for annoyances like the scrolling text
Lex Fridman (1:24:38.660)
at the bottom of the browser in the status bar.
Lex Fridman (1:24:40.780)
But I kept listening to developers working with them
Lex Fridman (1:24:43.060)
and trying to make it run in that single threaded event loop
Brendan Eich (1:24:46.860)
in a useful way.
Lex Fridman (1:24:47.720)
And I think that forged something
Brendan Eich (1:24:49.880)
that people have come to love.
Lex Fridman (1:24:51.180)
Now you don't always love the best thing, right?
Brendan Eich (1:24:53.700)
I talked about Shakespeare sonnet about
Lex Fridman (1:24:58.620)
I'm Mr. Sizer, nothing like the sun.
Brendan Eich (1:25:00.180)
Or the scene from Josh Whedon's film Serenity at the end
Lex Fridman (1:25:04.860)
where the actual piece in the score by David Newman
Brendan Eich (1:25:08.340)
is called Love where Captain Mal is teaching River Tam
Lex Fridman (1:25:12.860)
about how to pilot the ship.
Lex Fridman (1:25:13.860)
And she's a super genius, super soldier.
Lex Fridman (1:25:15.380)
She knows how to do it already.
Lex Fridman (1:25:17.100)
And he's basically talking about how you have to love
Lex Fridman (1:25:19.500)
the ship because if you don't, it's going to kill you.
Lex Fridman (1:25:22.020)
And then the piece falls off the ship.
Lex Fridman (1:25:23.860)
It's kind of like JavaScript.
Brendan Eich (1:25:26.060)
You have to love it.
Lex Fridman (1:25:26.900)
You have to love it because now people say we're stuck
Brendan Eich (1:25:30.020)
with it because it got this priority of place.
Lex Fridman (1:25:31.620)
But there's love underpinning that.
Lex Fridman (1:25:33.340)
And actually the listening to developers,
Lex Fridman (1:25:35.860)
that's kind of beautiful.
Brendan Eich (1:25:36.700)
There's most successful products in this world
Lex Fridman (1:25:41.140)
with all the messes, with all the flaws.
Brendan Eich (1:25:43.100)
Perhaps the flaws themselves are actual features,
Lex Fridman (1:25:45.360)
but that's a whole nother, that's a discussion about love.
Lex Fridman (1:25:48.180)
But underneath it, there's something
Lex Fridman (1:25:50.220)
that just connects with people.
Lex Fridman (1:25:52.420)
And it has to keep connecting.
Lex Fridman (1:25:53.480)
If JavaScript kind of went off in this,
Brendan Eich (1:25:55.640)
people sometimes complain about ES6.
Lex Fridman (1:25:57.340)
Oh, you put classes in JavaScript.
Brendan Eich (1:25:58.700)
I hate classes.
Lex Fridman (1:25:59.540)
You've ruined it.
Lex Fridman (1:26:00.420)
But it's not true.
Lex Fridman (1:26:01.420)
It's a dynamic language.
Brendan Eich (1:26:02.660)
Smalltalk had classes.
Lex Fridman (1:26:04.820)
Python has classes.
Brendan Eich (1:26:07.060)
There are lots of Lisp variants that have classy systems.
Lex Fridman (1:26:12.740)
So people who don't reject it based on some sort
Brendan Eich (1:26:16.780)
of fashion judgment do use it and do interact
Lex Fridman (1:26:22.120)
with the standards body.
Brendan Eich (1:26:23.380)
The standards body is competing browser vendors mainly,
Lex Fridman (1:26:25.840)
but also now big companies that use JavaScript heavily,
Brendan Eich (1:26:28.480)
the Paypal's and other such companies, Salesforce.
Lex Fridman (1:26:32.980)
And they have to cater to web developers.
Brendan Eich (1:26:36.300)
They have to hire developers who know JavaScript.
Lex Fridman (1:26:39.020)
They have to keep their engines up to the latest standard.
Lex Fridman (1:26:43.100)
And this creates all this sort of social structure
Lex Fridman (1:26:45.900)
around JavaScript that is unusual.
Brendan Eich (1:26:47.820)
I mean, you get C++ buffs that follow the inner workings
Lex Fridman (1:26:51.420)
of C++, what is it now?
Brendan Eich (1:26:54.460)
21 something, I don't know.
Lex Fridman (1:26:56.580)
I've lost track.
Lex Fridman (1:26:57.500)
But it's a more rarefied group.
Lex Fridman (1:26:59.020)
It's more like the old language, gray hairs.
Brendan Eich (1:27:02.860)
Whereas JavaScript is a younger
Lex Fridman (1:27:04.500)
and more vibrant and large crowd.
Brendan Eich (1:27:07.380)
There's a community feel to it.
Lex Fridman (1:27:09.260)
There's echoes, perhaps I don't wanna draw too many
Brendan Eich (1:27:13.180)
similarities, maybe you can comment on it.
Lex Fridman (1:27:15.420)
There's C++ is like Wall Street,
Lex Fridman (1:27:18.980)
and the JavaScript is like Wall Street bets
Lex Fridman (1:27:21.220)
from the recent events.
Brendan Eich (1:27:22.620)
It's like there's a chaotic community of all,
Lex Fridman (1:27:24.940)
and there's some power from that distributed crowd
Brendan Eich (1:27:28.820)
of people that ultimately.
Lex Fridman (1:27:30.260)
It's more thematic, it's more of the people.
Brendan Eich (1:27:32.660)
It lets people in without requiring these credentials.
Lex Fridman (1:27:35.860)
I remember in the late 90s into the 90s,
Brendan Eich (1:27:38.420)
people were all getting Java credentials.
Lex Fridman (1:27:39.900)
And I knew people, and friends knew people
Brendan Eich (1:27:42.700)
who became Java programmers, and you knew
Lex Fridman (1:27:44.580)
they really should have been like nature guides or pilots.
Brendan Eich (1:27:47.260)
They hated programming, but they thought,
Lex Fridman (1:27:49.020)
I gotta make money, I'm gonna become a Java programmer.
Lex Fridman (1:27:51.780)
Do you have some, because it's such a monumental moment
Lex Fridman (1:27:55.060)
in our current history, as a quick aside,
Lex Fridman (1:27:58.060)
do you have thoughts about this huge distributed crowdsourced
Lex Fridman (1:28:03.260)
financial happenings with Wall Street bets?
Brendan Eich (1:28:06.740)
That's like nobody could have, well,
Lex Fridman (1:28:08.780)
you could have predicted, but the scale and the impact
Brendan Eich (1:28:11.420)
of this kind of emergent behavior
Lex Fridman (1:28:13.260)
from independent parties that could happen.
Brendan Eich (1:28:15.780)
Like I said, my own experience with the dismal science,
Lex Fridman (1:28:19.900)
as with physics, led me to reject a lot of bad models.
Brendan Eich (1:28:23.500)
Economics was always compromised by politics,
Lex Fridman (1:28:26.260)
political economy.
Brendan Eich (1:28:28.220)
You could also argue that it was,
Lex Fridman (1:28:29.460)
it used to be a branch of moral philosophy,
Lex Fridman (1:28:30.980)
so it was concerned with the good,
Lex Fridman (1:28:32.460)
and it became divorced and became sort of
Brendan Eich (1:28:34.740)
in this quasi Newtonian way, just about,
Lex Fridman (1:28:37.700)
everything's just running by itself, don't worry about it.
Brendan Eich (1:28:40.220)
This monopoly's crushing your Netscape company,
Lex Fridman (1:28:42.060)
but that's just nature.
Lex Fridman (1:28:43.700)
And economics couldn't, or doesn't really have good models
Lex Fridman (1:28:46.580)
for the Wall Street bets subreddit.
Lex Fridman (1:28:49.500)
You know, they know how to squeeze a short, right?
Lex Fridman (1:28:52.300)
So the amazing thing is you have Robinhood app,
Brendan Eich (1:28:56.460)
which was, again, supposedly for the demos, for the people,
Lex Fridman (1:29:00.740)
and eliminated the fee through various kinds of straddles
Brendan Eich (1:29:06.300)
or some kind of spread operation
Lex Fridman (1:29:09.220)
that helped them eliminate the fee or eat the fee.
Lex Fridman (1:29:11.860)
And in fact, as a broker in these days,
Lex Fridman (1:29:14.540)
because it takes two days to settle,
Brendan Eich (1:29:15.820)
there's counterparty risk, as they found out.
Lex Fridman (1:29:18.620)
And so the Wall Street bets people,
Brendan Eich (1:29:22.980)
you know, the memes are like the Terminator robot
Lex Fridman (1:29:25.700)
with the $600 STEMI check and the hedge funds
Brendan Eich (1:29:30.140)
that make little girl hiding under the desk.
Lex Fridman (1:29:34.060)
There is a problem, which I talked about
Brendan Eich (1:29:36.060)
in a recent podcast, which I'm conscious of
Lex Fridman (1:29:38.300)
from the history of the web, and that is,
Brendan Eich (1:29:40.020)
you could say it's monopoly,
Lex Fridman (1:29:41.260)
which antitrust wasn't enforced
Brendan Eich (1:29:42.980)
after USB Microsoft for a long time.
Lex Fridman (1:29:45.140)
And a lot of this was due to the money interests
Brendan Eich (1:29:48.020)
buying control of politicians.
Lex Fridman (1:29:50.900)
And, you know, in Plato's five regimes, that's oligarchy.
Brendan Eich (1:29:54.460)
That's where we are.
Lex Fridman (1:29:56.060)
And now we're seeing a fight against the oligarchs.
Brendan Eich (1:29:58.780)
I don't know if it'll work,
Lex Fridman (1:29:59.620)
but you're definitely seeing it.
Lex Fridman (1:30:00.780)
And it's also kind of hackerish, right?
Lex Fridman (1:30:02.420)
It's got a hacker ethos.
Brendan Eich (1:30:04.100)
You know, hey, Robinhood, no fees.
Lex Fridman (1:30:05.660)
Oh, interesting.
Brendan Eich (1:30:06.500)
Hey, you know, I could buy a fraction of a share
Lex Fridman (1:30:09.180)
in this thing, or I can keep buying with my stimulus check.
Lex Fridman (1:30:12.300)
So I mentioned Hegel seeing Napoleon on the horse, right?
Lex Fridman (1:30:16.980)
Hegel also talked about the cunning of reason
Brendan Eich (1:30:19.220)
that you have this sort of, you know,
Lex Fridman (1:30:21.380)
God sees history in full, and if you believe in God,
Brendan Eich (1:30:24.100)
or, you know, we don't know the future,
Lex Fridman (1:30:25.940)
but there's always this sort of fly in the ointment,
Brendan Eich (1:30:28.380)
this unintended consequence that confounds
Lex Fridman (1:30:32.140)
the best plans of the powers that be.
Lex Fridman (1:30:35.660)
And we're living through it.
Lex Fridman (1:30:37.060)
I'm glad it's not, you know, street warfare
Brendan Eich (1:30:39.700)
or mechanized warfare, because it has been in the past.
Lex Fridman (1:30:43.380)
It's more like soft power, and people are fighting back.
Lex Fridman (1:30:50.620)
Do you think it's possible?
Lex Fridman (1:30:51.740)
So JavaScript used to be for the front end of the web.
Brendan Eich (1:30:57.100)
It's now increasingly so being used for back end,
Lex Fridman (1:31:01.620)
like running stuff that's like behind the scenes.
Lex Fridman (1:31:06.060)
And it's also starting to be used quite a bit
Lex Fridman (1:31:10.260)
for things like TensorFlow.js.
Lex Fridman (1:31:12.260)
So starting to actually use like these heavy duty
Lex Fridman (1:31:14.700)
applications that are using neural networks,
Brendan Eich (1:31:17.140)
machine learning, and so on in the browser.
Lex Fridman (1:31:19.380)
Is it possible in 10, 20, 30 years
Lex Fridman (1:31:24.140)
that basically most of the world runs on JavaScript?
Lex Fridman (1:31:28.660)
This is a dystopia and a nightmare to some people.
Brendan Eich (1:31:32.380)
When we did Asm.js and WebAssembly,
Lex Fridman (1:31:34.940)
I would joke and mean people with scenes like
Brendan Eich (1:31:37.340)
Neo waking up in his pod in the matrix,
Lex Fridman (1:31:39.500)
and he's all skinny and weak and hairless.
Brendan Eich (1:31:42.380)
And, you know, you realize in the future
Lex Fridman (1:31:46.220)
that you're living in some simulation
Brendan Eich (1:31:48.020)
that it's all running on JavaScript,
Lex Fridman (1:31:49.180)
and you just scream forever.
Brendan Eich (1:31:51.980)
It's possible.
Lex Fridman (1:31:52.820)
Gary Bernhardt does these funny talks.
Brendan Eich (1:31:54.860)
He did watch.js, and then he did this
Lex Fridman (1:31:58.020)
life and death of JavaScript, I think it's called,
Brendan Eich (1:31:59.540)
where he took some clever ideas that actually have
Lex Fridman (1:32:02.580)
a thread of credibility to them.
Lex Fridman (1:32:05.340)
But I mentioned software fault isolation.
Lex Fridman (1:32:09.220)
In the old days, when we were using computers,
Brendan Eich (1:32:10.620)
we said we're gonna use the Unix monolithic monitor,
Lex Fridman (1:32:14.140)
and it's the privileged program.
Brendan Eich (1:32:15.980)
This is before you even had hardware rings of protection.
Lex Fridman (1:32:18.420)
Those, some of the early 60s operating systems
Brendan Eich (1:32:20.460)
used hardware protection zones.
Lex Fridman (1:32:22.700)
But Unix is privileged, and the program
Brendan Eich (1:32:25.900)
that runs user code in a process is hosted.
Lex Fridman (1:32:30.460)
It's the guest, in the host, and you get to suspend it.
Brendan Eich (1:32:33.660)
You get to kill it.
Lex Fridman (1:32:35.220)
If it crashes, it doesn't take down the whole OS.
Brendan Eich (1:32:37.300)
It's a wonderful idea, but the call into the kernel
Lex Fridman (1:32:41.940)
is expensive, the system call, so called.
Lex Fridman (1:32:43.820)
And this has even been optimized now
Lex Fridman (1:32:45.180)
for things like getting the time of day,
Lex Fridman (1:32:46.320)
so it doesn't actually enter the kernel.
Lex Fridman (1:32:49.580)
And meanwhile, hardware architectures
Lex Fridman (1:32:52.780)
and virtualization techniques have gone
Lex Fridman (1:32:54.460)
in a different direction, even to the point
Brendan Eich (1:32:56.380)
where you can do software fault isolation very cheaply
Lex Fridman (1:32:58.840)
without entering the operating system kernel,
Lex Fridman (1:33:00.740)
and so you get unikernels and exokernels
Lex Fridman (1:33:02.940)
and very lightweight VMs.
Lex Fridman (1:33:04.460)
And so Gary took this idea and said, JavaScript
Lex Fridman (1:33:08.060)
will take over computing, because the system call
Brendan Eich (1:33:10.540)
boundary's too expensive, so everything ends up
Lex Fridman (1:33:12.340)
in JavaScript with these lighter weight
Brendan Eich (1:33:14.220)
isolation enforcement mechanisms.
Lex Fridman (1:33:16.940)
It's not totally beyond belief.
Brendan Eich (1:33:18.580)
It'd be WebAssembly too.
Lex Fridman (1:33:22.100)
It's nice to ask you sort of for advice to,
Brendan Eich (1:33:25.380)
there's so many people that are interested
Lex Fridman (1:33:26.980)
in starting to learning about programming,
Brendan Eich (1:33:29.180)
getting into this world.
Lex Fridman (1:33:31.180)
Is there some number of languages,
Brendan Eich (1:33:34.980)
three to five programming languages
Lex Fridman (1:33:36.460)
that you would recommend people learn,
Brendan Eich (1:33:38.220)
or maybe a broader advice on how
Lex Fridman (1:33:42.060)
to get started in programming?
Brendan Eich (1:33:43.940)
Well, so you asked about machine learning,
Lex Fridman (1:33:45.380)
and JavaScript is a general purpose language,
Lex Fridman (1:33:47.820)
and it's a language that's not that great
Lex Fridman (1:33:53.100)
for doing matrix operations or doing parallel programming,
Brendan Eich (1:33:58.100)
I would say, without using some extensions
Lex Fridman (1:34:01.100)
or some libraries that have some magic in them.
Lex Fridman (1:34:03.620)
So if someone wanted to learn,
Lex Fridman (1:34:08.580)
there are amazing languages in sort of the APL family
Brendan Eich (1:34:11.100)
that are very useful for, I would say, linear algebra,
Lex Fridman (1:34:14.060)
which gets to a lot of the kernels in machine learning.
Lex Fridman (1:34:16.820)
And so APL had like J and then K and their K variants
Lex Fridman (1:34:22.240)
because the guy that did K is still going,
Lex Fridman (1:34:24.660)
and they're proprietary, but he's still innovating there.
Lex Fridman (1:34:28.900)
There are, you know, Python is used.
Lex Fridman (1:34:30.420)
So people talk about TensorFlow.js.
Lex Fridman (1:34:31.740)
Well, it's not that surprising
Brendan Eich (1:34:33.460)
because Python was heavily used for machine learning,
Lex Fridman (1:34:36.380)
and Python was always, you know,
Brendan Eich (1:34:38.740)
they didn't have this fast just in time compiler tradition.
Lex Fridman (1:34:41.540)
There were some projects that tried this,
Lex Fridman (1:34:43.180)
and some of them were interesting.
Lex Fridman (1:34:45.340)
PyPy was interesting,
Lex Fridman (1:34:46.300)
but the philosophy with Python was,
Lex Fridman (1:34:50.020)
oh, you need to go fast, write a C plugin,
Lex Fridman (1:34:51.780)
and drop into C code.
Lex Fridman (1:34:53.300)
So I think people should look at multiple languages
Brendan Eich (1:34:57.500)
because there are different tools in the belt.
Lex Fridman (1:34:59.500)
If you're trying to do supervision or rapid prototyping,
Brendan Eich (1:35:02.820)
you want a dynamic language.
Lex Fridman (1:35:03.900)
You want to throw things together and see what works.
Brendan Eich (1:35:06.500)
If you are trying to go down to the metal very fast,
Lex Fridman (1:35:09.280)
well, I'm an old C hacker,
Lex Fridman (1:35:10.740)
but I was also the executive sponsor of Rust at Mozilla,
Lex Fridman (1:35:14.300)
and Rust has now escaped, you know,
Brendan Eich (1:35:16.180)
from that sort of nest where it was born
Lex Fridman (1:35:18.540)
to be adopted by a bunch of companies
Brendan Eich (1:35:21.460)
that have a foundation in the works.
Lex Fridman (1:35:23.220)
Some of the key core team members
Brendan Eich (1:35:24.780)
are working now at Amazon and other places.
Lex Fridman (1:35:27.700)
So it looks like Rust has reached escape velocity,
Lex Fridman (1:35:30.100)
and Rust is an interesting language
Lex Fridman (1:35:31.380)
because one of our goals there,
Brendan Eich (1:35:33.060)
one of the reasons I sponsored it was we were all tired
Lex Fridman (1:35:35.300)
of seeing those remote code execution vulnerabilities
Brendan Eich (1:35:38.100)
due to C and C++, and we thought,
Lex Fridman (1:35:41.240)
can we have a sort of safety property
Brendan Eich (1:35:43.840)
through a type and effect system or an ownership system,
Lex Fridman (1:35:46.920)
and Rust has that.
Lex Fridman (1:35:48.300)
And that ownership system is interesting
Lex Fridman (1:35:50.020)
because it doesn't just give you memory safety.
Brendan Eich (1:35:52.140)
There's a sort of theorem for free,
Lex Fridman (1:35:53.500)
a dual that falls out for protection against data races.
Lex Fridman (1:35:57.220)
So Rust is better for low level programming.
Lex Fridman (1:35:59.740)
You delimit your unsafe code
Brendan Eich (1:36:01.100)
where you do have to be unsafe,
Lex Fridman (1:36:02.900)
and you can prove certain facts about memory safety
Lex Fridman (1:36:05.300)
and race condition avoidance.
Lex Fridman (1:36:08.820)
And so I think people should learn these new languages.
Brendan Eich (1:36:11.340)
I think Go is a great language.
Lex Fridman (1:36:13.380)
I admire, you know, the Unix people who did that.
Brendan Eich (1:36:16.540)
Ken Stoll was involved, Rob Pike, of course, David,
Lex Fridman (1:36:21.420)
what's his name, and other people.
Brendan Eich (1:36:23.440)
Go is a huge success, really on the server side,
Lex Fridman (1:36:27.100)
anywhere you have a lot of networking to do,
Lex Fridman (1:36:30.140)
and it's garbage collected, but it's also very pragmatic.
Lex Fridman (1:36:33.780)
It has that sort of C flavor.
Brendan Eich (1:36:35.420)
As an old C hacker, I can't get used to the fact
Lex Fridman (1:36:37.020)
that they swapped the type and declarator
Brendan Eich (1:36:39.620)
in the declaration order.
Lex Fridman (1:36:41.140)
I haven't used Rust, but this is one of the most respected
Lex Fridman (1:36:44.180)
and loved languages currently, so it's interesting.
Lex Fridman (1:36:46.260)
Yeah, and it's still young.
Brendan Eich (1:36:47.380)
You look at these things, JavaScript is now considered old.
Lex Fridman (1:36:50.980)
It's gone through so many versions
Brendan Eich (1:36:52.500)
that you can fall in love with it all over again.
Lex Fridman (1:36:54.860)
25 plus years, you know, it's an adult.
Brendan Eich (1:36:58.740)
It should be out of the house.
Lex Fridman (1:36:59.800)
But it could be around another 25 years.
Brendan Eich (1:37:03.420)
Cannot rule it out.
Lex Fridman (1:37:04.240)
So Rust will be around for a long time.
Brendan Eich (1:37:06.260)
The longer you're around, the more likely you're Lindy,
Lex Fridman (1:37:08.900)
and you're around your wife.
Brendan Eich (1:37:10.400)
A lot of people ask me, like,
Lex Fridman (1:37:13.500)
I'm often torn between recommending either Python
Brendan Eich (1:37:15.780)
or JavaScript as the first language to play with,
Lex Fridman (1:37:18.100)
because, I mean, it's difficult,
Brendan Eich (1:37:20.900)
because it's so easy to do JavaScript incorrectly.
Lex Fridman (1:37:25.180)
It's much easier to do it correctly these days,
Brendan Eich (1:37:29.460)
or like, well, learn about programming.
Lex Fridman (1:37:31.620)
But the cool thing about JavaScript
Brendan Eich (1:37:33.940)
is that you can create stuff
Lex Fridman (1:37:36.100)
that will put a smile on your face.
Brendan Eich (1:37:38.140)
Like, as a developer, you can create stuff,
Lex Fridman (1:37:41.460)
and it'll visually look like something,
Lex Fridman (1:37:43.060)
and it'll do stuff, and it makes you feel good.
Lex Fridman (1:37:45.700)
It makes you fall in love with programming.
Brendan Eich (1:37:47.340)
With Python, you could do the same.
Lex Fridman (1:37:48.700)
It's a little slower.
Lex Fridman (1:37:49.540)
And with C++, it takes five to 10 years
Lex Fridman (1:37:51.580)
to write a program that actually does something.
Brendan Eich (1:37:54.100)
So, like, there's that tension between
Lex Fridman (1:37:56.820)
is JavaScript the right first step, or is it Python?
Lex Fridman (1:37:59.460)
And I've been going back and forth on those two.
Lex Fridman (1:38:02.060)
My Python, right, it came from a lineage of ABC,
Brendan Eich (1:38:05.300)
which was a pedagogical language in the Netherlands.
Lex Fridman (1:38:09.580)
And it, you know,
Brendan Eich (1:38:12.140)
it was a good teaching language, too.
Lex Fridman (1:38:16.700)
I think it is a good teaching language,
Lex Fridman (1:38:17.980)
and it's a little more restrictive
Lex Fridman (1:38:19.100)
in that if you misspell something
Brendan Eich (1:38:21.980)
in a way that JavaScript might let run,
Lex Fridman (1:38:25.220)
let reach runtime, it'll get stopped
Brendan Eich (1:38:26.860)
at syntax check in Python.
Lex Fridman (1:38:30.600)
That's good for beginners.
Brendan Eich (1:38:31.700)
I think the sloppiness that some people object to,
Lex Fridman (1:38:34.760)
like, people were just tweeting at me,
Brendan Eich (1:38:37.140)
having just learned JavaScript.
Lex Fridman (1:38:38.660)
They said, I can take a number, and I can index into it,
Lex Fridman (1:38:41.160)
and get undefined out of it as a property.
Lex Fridman (1:38:43.180)
Why is that?
Brendan Eich (1:38:44.020)
A number's not an object.
Lex Fridman (1:38:44.860)
And I explained why it is,
Brendan Eich (1:38:46.180)
because like in Java, the primitive types,
Lex Fridman (1:38:48.340)
which unfortunately are not objects,
Brendan Eich (1:38:49.840)
can be automatically boxed or wrapped by an object.
Lex Fridman (1:38:53.260)
And I made that implicit.
Brendan Eich (1:38:55.440)
In Java, it's typed, and you have to declare things,
Lex Fridman (1:38:58.240)
and you'll get type errors.
Lex Fridman (1:39:00.500)
But there are cases in Java where you get auto boxing
Lex Fridman (1:39:03.080)
or auto wrapping, because you've declared that you want it.
Brendan Eich (1:39:06.020)
In JavaScript, it just happens.
Lex Fridman (1:39:07.580)
And so once I explained it, like, oh, wow, I get it.
Lex Fridman (1:39:10.300)
But it also means that you can commit a blunder that just.
Lex Fridman (1:39:13.540)
You don't get punished for it, you don't detect.
Brendan Eich (1:39:15.360)
You get an undefined value,
Lex Fridman (1:39:16.800)
and you don't know where it came from.
Brendan Eich (1:39:17.860)
Right.
Lex Fridman (1:39:19.900)
I've been reading a lot about military history recently.
Lex Fridman (1:39:23.340)
And one way to paint the picture of browsers,
Lex Fridman (1:39:26.780)
internet browsers, is through the various wars
Brendan Eich (1:39:29.280)
throughout its history.
Lex Fridman (1:39:30.620)
I don't know if that's a useful way to look at it,
Lex Fridman (1:39:32.300)
but we've already talked a little bit about Netscape
Lex Fridman (1:39:34.660)
and Internet Explorer in the early days.
Lex Fridman (1:39:38.420)
Can you tell the story of the different wars,
Lex Fridman (1:39:41.260)
if that's at all an interesting way to look at it,
Lex Fridman (1:39:43.420)
of the 90s and to today?
Lex Fridman (1:39:46.460)
Yeah.
Lex Fridman (1:39:47.300)
So I mentioned that Microsoft, you know,
Lex Fridman (1:39:49.100)
which was convicted for it, did abuse its monopoly,
Lex Fridman (1:39:51.500)
but they had a pretty good team by the time they did IE4.
Lex Fridman (1:39:55.100)
And Netscape, unfortunately, I was like second floor,
Lex Fridman (1:39:57.900)
and I was friends with all the first floor people,
Lex Fridman (1:39:59.540)
the front end guys who did the JavaScript event hookup
Lex Fridman (1:40:02.700)
and things like that,
Lex Fridman (1:40:04.700)
that that team was fairly burnt out.
Lex Fridman (1:40:07.580)
And I think having gone public,
Lex Fridman (1:40:10.900)
the upper management wanted to buy a bunch of companies
Brendan Eich (1:40:13.300)
to try to go head to head with Microsoft.
Lex Fridman (1:40:15.340)
Didn't work, but buying a bunch of companies
Brendan Eich (1:40:17.740)
usually doesn't work.
Lex Fridman (1:40:19.380)
I think the modern sort of approach roughly
Brendan Eich (1:40:22.800)
is like Mark Zuckerberg took,
Lex Fridman (1:40:25.260)
which is to keep them at arm's length
Lex Fridman (1:40:26.860)
and let them do their thing.
Lex Fridman (1:40:28.300)
And now that he's pulling WhatsApp in
Lex Fridman (1:40:29.900)
and people are fleeing it
Lex Fridman (1:40:31.420)
because it's tied into the ad surveillance.
Brendan Eich (1:40:33.480)
But, you know, for a while,
Lex Fridman (1:40:36.260)
they're keeping it separate really does work
Brendan Eich (1:40:37.660)
because you bought it for its value,
Lex Fridman (1:40:39.020)
it's complimentary, and you're not messing with it.
Brendan Eich (1:40:41.140)
With Netscape, when they bought a bunch of companies,
Lex Fridman (1:40:43.600)
they had some of the first floor people
Brendan Eich (1:40:45.500)
or the founders burned out.
Lex Fridman (1:40:46.940)
They had newcomers who wanted their turn to do the browser,
Lex Fridman (1:40:51.460)
and they hadn't really done browsers or understood them.
Lex Fridman (1:40:54.540)
And so Netscape 4 was originally supposed to be 3,
Lex Fridman (1:40:57.340)
and it was so late, they renumbered it.
Lex Fridman (1:40:58.820)
We did a 3 release.
Brendan Eich (1:41:00.560)
Jamie and a few others put some extra effort into.
Lex Fridman (1:41:03.060)
SecureMine was supported in the built in mail program.
Lex Fridman (1:41:08.340)
And Netscape 4 was late,
Lex Fridman (1:41:10.200)
and it was only on Windows at first,
Lex Fridman (1:41:11.860)
and Microsoft had really started doing better,
Lex Fridman (1:41:14.920)
like they do.
Brendan Eich (1:41:15.760)
They copy, and the first version's trash,
Lex Fridman (1:41:17.300)
and the second one, you're starting to feel threatened.
Brendan Eich (1:41:19.100)
The third one, you can tell what's gonna happen,
Lex Fridman (1:41:21.460)
and the fourth one's good.
Lex Fridman (1:41:22.460)
And plus there's the benefit, like you said,
Lex Fridman (1:41:24.260)
that it comes as a default browser.
Brendan Eich (1:41:26.120)
Yes, and yet Netscape's screwing it up,
Lex Fridman (1:41:28.780)
and Microsoft really putting some quality people on it.
Brendan Eich (1:41:32.540)
IE4 was good.
Lex Fridman (1:41:33.380)
On Windows, it was good.
Lex Fridman (1:41:34.220)
And they did the dynamic HTML innovations.
Lex Fridman (1:41:38.300)
Scott Isaac's my old buddy,
Brendan Eich (1:41:39.700)
a former accountant who programmed in BASIC
Lex Fridman (1:41:42.360)
and became what Microsoft calls a program manager,
Brendan Eich (1:41:45.500)
which is kind of an elevated position.
Lex Fridman (1:41:48.760)
You can be a programmer or an engineer and track,
Lex Fridman (1:41:50.500)
but you switch to it,
Lex Fridman (1:41:51.340)
and you sort of lead a lot of design and standards efforts.
Lex Fridman (1:41:54.700)
And so Scott Isaac put in a lot of those funky DHTML APIs
Lex Fridman (1:41:58.940)
that didn't quite have the same flavor
Brendan Eich (1:42:01.020)
as the stuff that I did, and neither of them
Lex Fridman (1:42:03.260)
was like the later sort of verbose Java,
Brendan Eich (1:42:05.540)
like DOM W3C standardized.
Lex Fridman (1:42:08.540)
But IE4 was pretty darn good.
Brendan Eich (1:42:10.540)
I remember a friend, Scott Furman and I,
Lex Fridman (1:42:12.460)
got invited by Scott Isaac to Gordon Beers in San Jose.
Brendan Eich (1:42:16.700)
They were doing a preview of IE4.
Lex Fridman (1:42:19.340)
This must have been 1997.
Lex Fridman (1:42:21.500)
And Scott said, yeah, here's the new graphics stuff
Lex Fridman (1:42:25.140)
we're doing.
Brendan Eich (1:42:25.980)
We've got something like your Netscape layers.
Lex Fridman (1:42:28.220)
We've got VML, a vector markup language.
Brendan Eich (1:42:31.740)
We can do virtual reality.
Lex Fridman (1:42:33.420)
And Scott and I looked at each other and said,
Lex Fridman (1:42:35.260)
we're doomed, right?
Lex Fridman (1:42:36.820)
Microsoft was starting to fire on all cylinders.
Lex Fridman (1:42:38.780)
So I have to give them credit for that,
Lex Fridman (1:42:40.460)
even though they abused their market power.
Lex Fridman (1:42:42.940)
And maybe I shouldn't give them credit
Lex Fridman (1:42:44.320)
for having the resources to hire talented people,
Lex Fridman (1:42:45.940)
but they did a credible job on IE4.
Lex Fridman (1:42:48.900)
What really was bad was that phase of the browser wars
Brendan Eich (1:42:51.940)
ended with monopoly and perhaps due to the antitrust case,
Lex Fridman (1:42:56.100)
perhaps due to regulation in Europe,
Brendan Eich (1:42:59.340)
perhaps just due to Microsoft not liking
Lex Fridman (1:43:01.100)
dealing with standardization, they let it rot.
Brendan Eich (1:43:05.420)
They just abandoned it, IE5, 5.5, IE6 later,
Lex Fridman (1:43:10.520)
but these were not well maintained.
Brendan Eich (1:43:12.300)
They had a lot of security bugs.
Lex Fridman (1:43:14.420)
It felt really closed and outdated too,
Brendan Eich (1:43:16.660)
even though it's getting updated, it's just weird.
Lex Fridman (1:43:19.020)
Browsers like Mozilla and then Firefox were adding tabs.
Brendan Eich (1:43:22.100)
Opera had a version of tabs and they didn't add tabs.
Lex Fridman (1:43:25.940)
And they pop up blocking,
Brendan Eich (1:43:27.560)
something I should have done from the start.
Lex Fridman (1:43:28.860)
People realized that you can tell
Brendan Eich (1:43:30.160)
when the user clicks something
Lex Fridman (1:43:31.540)
and it goes in JavaScript to open a little window,
Brendan Eich (1:43:34.300)
that you can sort of inspect the stack
Lex Fridman (1:43:36.220)
and see that the click originated that,
Lex Fridman (1:43:38.140)
and it's probably okay.
Lex Fridman (1:43:39.420)
Whereas if you're just loading a script
Lex Fridman (1:43:40.820)
and it opens a new window, that's a spam technique
Lex Fridman (1:43:43.860)
and you should block it.
Brendan Eich (1:43:45.220)
Tabs were a brilliant innovation.
Lex Fridman (1:43:47.380)
Like you said, Opera had it,
Lex Fridman (1:43:48.380)
but I remember I fully switched to Firefox the moment.
Lex Fridman (1:43:52.060)
I remember the moments of first using tabs in Firefox
Lex Fridman (1:43:57.060)
and not liking it for the first few minutes,
Lex Fridman (1:44:00.220)
and then like, wait a minute.
Brendan Eich (1:44:02.460)
You get the groove, yeah.
Lex Fridman (1:44:03.300)
You get the groove and you understand.
Lex Fridman (1:44:05.580)
So that timing, what year was this?
Lex Fridman (1:44:08.540)
Because also as a aspiring web designer,
Brendan Eich (1:44:12.100)
I use Table, so we didn't mention Layout or CSS much.
Lex Fridman (1:44:16.260)
There's also a change in the way
Brendan Eich (1:44:18.760)
the frames were going away.
Lex Fridman (1:44:21.100)
So there's a change in the way websites looked
Lex Fridman (1:44:23.620)
and behaved and all that kind of stuff.
Lex Fridman (1:44:25.300)
CSS finally, which Microsoft embraced with IA4
Lex Fridman (1:44:28.420)
and Netscape never really did right.
Lex Fridman (1:44:30.700)
CSS became a better standard over time
Brendan Eich (1:44:33.440)
for doing Table Layout that relieved you
Lex Fridman (1:44:36.140)
of the need to use what are called spacer GIFs,
Lex Fridman (1:44:39.260)
spacer GIFs, right?
Lex Fridman (1:44:40.300)
Images, you would throw into space at tables.
Brendan Eich (1:44:44.180)
The typographic power of the web has gotten better,
Lex Fridman (1:44:47.460)
but it's still not on the level of PDF
Lex Fridman (1:44:49.320)
and you can't do advanced typography,
Lex Fridman (1:44:51.580)
but it's gotten really better.
Lex Fridman (1:44:53.180)
And even then, tables were getting better.
Lex Fridman (1:44:54.920)
If you were using Firefox, that would have been 2004
Brendan Eich (1:44:57.260)
because it was called Firebird until earlier that year.
Lex Fridman (1:45:00.260)
No, yeah, I think it wasn't.
Brendan Eich (1:45:01.860)
2003.
Lex Fridman (1:45:02.700)
I don't remember, it was a Firebird, which had tabs?
Brendan Eich (1:45:06.100)
We had tabs the whole way.
Lex Fridman (1:45:07.060)
So it started out as Mozilla slash browser in 2002,
Brendan Eich (1:45:10.420)
became Phoenix.
Lex Fridman (1:45:12.080)
There's a BIOS that has an embedded version of IE
Lex Fridman (1:45:14.700)
and they said, we're called Phoenix Technologies,
Lex Fridman (1:45:16.420)
you can't use Phoenix.
Lex Fridman (1:45:17.620)
And so we said, okay, we'll call it Firebird.
Lex Fridman (1:45:19.180)
And then this Australian centered
Brendan Eich (1:45:21.220)
open source database project started really like
Lex Fridman (1:45:24.900)
in the true Mad Max style, just screaming at us saying,
Brendan Eich (1:45:27.340)
you can't use Firebird.
Lex Fridman (1:45:28.380)
And I had to sort of be the ambassador and say,
Brendan Eich (1:45:30.660)
okay, we're gonna rename.
Lex Fridman (1:45:31.500)
And they're like, we don't believe you,
Brendan Eich (1:45:32.340)
you shouldn't have used it, we hate you.
Lex Fridman (1:45:33.700)
And then we renamed it to Firefox.
Lex Fridman (1:45:36.100)
And they're like, ah, we love you.
Lex Fridman (1:45:38.060)
And then I haven't heard of them ever since.
Lex Fridman (1:45:40.140)
But Firefox was a clever name.
Lex Fridman (1:45:41.780)
We had to think of something distinctive.
Brendan Eich (1:45:43.660)
We wanted to keep the fire going.
Lex Fridman (1:45:45.740)
And it turns out there's a red panda, right?
Brendan Eich (1:45:48.180)
That's the nickname for it.
Lex Fridman (1:45:49.460)
So that's the second set of browser wars.
Lex Fridman (1:45:51.980)
So how was Firefox born, how was Mozilla born?
Lex Fridman (1:45:59.660)
There's a long story there too.
Lex Fridman (1:46:01.060)
So Netscape got acquired by AOL,
Lex Fridman (1:46:02.980)
which as I say was a reasonable happy ending
Brendan Eich (1:46:05.500)
for a lot of people,
Lex Fridman (1:46:06.580)
because Netscape otherwise was gonna go out of business
Brendan Eich (1:46:08.500)
because Microsoft was just killing its market.
Lex Fridman (1:46:10.740)
There was no way to charge for a browser.
Brendan Eich (1:46:12.540)
Windows came with IE, IE4 was pretty good
Lex Fridman (1:46:15.980)
and Netscape 4 wasn't that good.
Brendan Eich (1:46:17.580)
It took a while to get better.
Lex Fridman (1:46:20.180)
But the Netscape executive said,
Brendan Eich (1:46:22.340)
let's do an open source escape pod.
Lex Fridman (1:46:25.660)
And like in Star Wars, A New Hope,
Brendan Eich (1:46:27.180)
the gunner won't shoot it
Lex Fridman (1:46:28.340)
because there's no life forms on board, right?
Brendan Eich (1:46:30.180)
It's not a threat.
Lex Fridman (1:46:31.460)
And so we did Mozilla in 1998
Lex Fridman (1:46:33.740)
and it looked like it was going to initially
Lex Fridman (1:46:37.980)
just give the world an open source browser.
Lex Fridman (1:46:40.140)
But it's really hard to get people to work
Lex Fridman (1:46:42.020)
on this sort of hairball that had been hacked up
Brendan Eich (1:46:43.900)
over by that point four years.
Lex Fridman (1:46:46.100)
And it also couldn't have the crypto module
Brendan Eich (1:46:49.140)
for secure sockets, so called,
Lex Fridman (1:46:51.020)
or now transport layer security.
Brendan Eich (1:46:52.980)
That was an electronic munition.
Lex Fridman (1:46:54.380)
We were not allowed to release that
Brendan Eich (1:46:56.100)
in the full 1024 bit key strength.
Lex Fridman (1:47:00.460)
And yet people, one of whom I happened to meet previously
Brendan Eich (1:47:05.100)
at SGI when I went on a sales support engineering trip,
Lex Fridman (1:47:08.980)
Tim Hudson in Brisbane, Australia,
Lex Fridman (1:47:11.100)
and Eric A. Young did what became open SSL.
Lex Fridman (1:47:16.460)
It was called SSL EAY after Eric's initials.
Lex Fridman (1:47:19.500)
And Tim and Eric took their open SSL
Lex Fridman (1:47:23.180)
outside of the purview of the NSA
Lex Fridman (1:47:25.420)
and the Department of Commerce,
Lex Fridman (1:47:27.300)
and they stuck it into Mozilla's code.
Lex Fridman (1:47:28.940)
And that was perhaps the best hack that was done
Lex Fridman (1:47:31.060)
in the first few months after we open sourced the browser.
Brendan Eich (1:47:34.540)
We had other problems.
Lex Fridman (1:47:35.420)
The politics inside Netscape were riven
Brendan Eich (1:47:37.420)
by these acquisitions.
Lex Fridman (1:47:38.340)
So the one acquisition that kind of messed up Netscape
Brendan Eich (1:47:41.020)
for also wanted to keep doing a proprietary mail
Lex Fridman (1:47:44.340)
and groupware program, not Jamie Zawinski's mail program
Brendan Eich (1:47:48.860)
that was in Netscape two and three.
Lex Fridman (1:47:50.180)
And they held it back from open source.
Brendan Eich (1:47:51.860)
We didn't have a mail program, it was just a browser.
Lex Fridman (1:47:54.320)
We didn't know what AOL will do to us.
Brendan Eich (1:47:56.700)
Turns out they didn't interfere with us for a long time.
Lex Fridman (1:47:59.260)
But Netscape wasn't the best steward of Mozilla.
Brendan Eich (1:48:02.980)
We were operating Mozilla as a pirate ship
Lex Fridman (1:48:05.340)
without a legal entity.
Lex Fridman (1:48:06.420)
So most of us worked for Netscape
Lex Fridman (1:48:08.900)
under a separate organization.
Lex Fridman (1:48:10.900)
And initially the first engineering manager,
Lex Fridman (1:48:15.400)
Tom Paquin of Netscape was the Mozilla founding manager.
Lex Fridman (1:48:19.360)
But he left pretty quickly
Lex Fridman (1:48:20.820)
and he left me as the acting manager,
Brendan Eich (1:48:23.120)
which is more like method acting in my case.
Lex Fridman (1:48:25.500)
And that was my first management stint.
Lex Fridman (1:48:28.780)
But then someone who'd written the licenses,
Lex Fridman (1:48:32.140)
Mitchell Baker, she was a lawyer at Netscape.
Brendan Eich (1:48:34.100)
She was involved in the open source license decision making
Lex Fridman (1:48:38.180)
and the actual writing and construction of those licenses.
Brendan Eich (1:48:40.380)
That was Mitchell's job, Netscape public license
Lex Fridman (1:48:42.980)
and the truly open Mozilla public license.
Lex Fridman (1:48:45.700)
And there were two because Netscape needed,
Lex Fridman (1:48:47.380)
because of some encumbered code, needed some special rights
Lex Fridman (1:48:49.580)
but that went away over time.
Lex Fridman (1:48:51.100)
Mitchell was always interested in Mozilla
Lex Fridman (1:48:52.820)
and she came back from maternity leave
Lex Fridman (1:48:54.220)
and she said, I'll be the manager if you want.
Lex Fridman (1:48:55.900)
And Jamie and I said, sure.
Lex Fridman (1:48:57.420)
And then Jamie quit, he quit after a year.
Brendan Eich (1:48:59.380)
He said, this didn't work, I'm sorry.
Lex Fridman (1:49:02.580)
He acted like it was a total failure
Brendan Eich (1:49:04.340)
because Mozilla didn't restart the browser market.
Lex Fridman (1:49:08.100)
But there's no way it could have, right?
Brendan Eich (1:49:09.260)
Netscape was still shipping variants of Netscape 4,
Lex Fridman (1:49:13.740)
which was based on the old code.
Brendan Eich (1:49:15.700)
Mozilla was trying to react to the code
Lex Fridman (1:49:18.360)
to make greenfield for developers.
Lex Fridman (1:49:19.860)
So it was one of my big goals.
Lex Fridman (1:49:20.900)
It wasn't a technical goal so much as again, a social goal.
Brendan Eich (1:49:24.180)
People wanted a more standard spaced browser.
Lex Fridman (1:49:26.380)
They wanted less of a hairball that had been hacked on
Brendan Eich (1:49:29.380)
by ex grad students starting four years prior.
Lex Fridman (1:49:32.020)
So we said, we're gonna make a modular code base.
Brendan Eich (1:49:35.100)
We're gonna use a variant or an open source version
Lex Fridman (1:49:37.500)
of Microsoft's component object model,
Brendan Eich (1:49:39.980)
has reference counting and standardized V tables,
Lex Fridman (1:49:43.420)
virtual calls and C++.
Lex Fridman (1:49:45.180)
And we're gonna use JavaScript.
Lex Fridman (1:49:47.300)
We're gonna have a bridge between those two
Lex Fridman (1:49:48.700)
so you can script those components
Lex Fridman (1:49:50.140)
just like Java components.
Brendan Eich (1:49:52.780)
We're going to make a portable front end
Lex Fridman (1:49:54.800)
with a markup language for the user interface.
Brendan Eich (1:49:57.220)
Not tables, not HTML, but custom menus
Lex Fridman (1:50:00.380)
and dropdowns and toolbars.
Lex Fridman (1:50:02.880)
And that was called Zool, XML user interface language.
Lex Fridman (1:50:06.060)
And some real talent on the Netscape side delivered that.
Brendan Eich (1:50:08.220)
Dave Hyatt, who was instrumental in Zool,
Lex Fridman (1:50:11.320)
Chris Watterson, Joe Hewitt, Blake Ross.
Lex Fridman (1:50:15.700)
And Blake was an intern.
Lex Fridman (1:50:17.820)
He was like a high school aged intern at Netscape.
Lex Fridman (1:50:20.500)
And at some point we were innovating rapidly
Lex Fridman (1:50:23.920)
in the Mozilla world and Netscape was still caught up
Brendan Eich (1:50:26.960)
in this management mess from these acquisitions
Lex Fridman (1:50:29.340)
and it wasn't delivering.
Lex Fridman (1:50:30.420)
And every year they were wondering if ALO was gonna come
Lex Fridman (1:50:32.800)
and start beheading the executives
Brendan Eich (1:50:34.260)
because it didn't do anything useful.
Lex Fridman (1:50:36.100)
And there was this thought
Brendan Eich (1:50:36.940)
you should take the Netscape browser engine
Lex Fridman (1:50:38.940)
and put it in the Windows ALO client,
Brendan Eich (1:50:40.740)
which was the dial up client
Lex Fridman (1:50:41.980)
that all the increasingly aging users of ALO were using.
Brendan Eich (1:50:45.420)
Never happened.
Lex Fridman (1:50:46.260)
It would have been too big a change.
Lex Fridman (1:50:48.140)
So it wasn't clear why ALO bought Netscape,
Lex Fridman (1:50:49.820)
but as I said, they left it alone.
Lex Fridman (1:50:50.940)
But Netscape didn't leave Mozilla alone.
Lex Fridman (1:50:53.300)
And so in 2001, Mitchell called me up and said,
Brendan Eich (1:50:58.780)
I'm no longer employed.
Lex Fridman (1:50:59.820)
And I was like, what?
Lex Fridman (1:51:00.660)
You quit?
Lex Fridman (1:51:01.480)
No, no, this wasn't my choice.
Lex Fridman (1:51:02.320)
And there was a layoff which maybe accidentally
Lex Fridman (1:51:05.300)
or on purpose got rid of Mitchell.
Lex Fridman (1:51:06.820)
But the funny thing was we had an open source project.
Lex Fridman (1:51:08.660)
We had a lot of the engineers on staff on our side
Lex Fridman (1:51:11.220)
and we had people we'd hired through the Mozilla community
Lex Fridman (1:51:15.220)
who were top notch.
Brendan Eich (1:51:16.300)
They'd risen, they came in high quality, they knew the code
Lex Fridman (1:51:19.260)
and they actually were better than the average
Brendan Eich (1:51:21.660)
or median hire of Netscape.
Lex Fridman (1:51:23.340)
And so the funny thing was the executive
Brendan Eich (1:51:26.940)
who thought they'd gotten rid of Mitchell in the layoff
Lex Fridman (1:51:29.940)
on the next week's community call around Mozilla
Lex Fridman (1:51:32.700)
and what to do, there's Mitchell.
Lex Fridman (1:51:35.220)
And so this showed you can kind of transcend
Brendan Eich (1:51:36.820)
your boundaries of corporate open source
Lex Fridman (1:51:40.420)
if you get a project that has enough loyalty,
Brendan Eich (1:51:42.700)
even among the paid staff.
Lex Fridman (1:51:43.820)
Because we had outside people contributing.
Brendan Eich (1:51:45.580)
We had people at Red Hat and a few other places,
Lex Fridman (1:51:47.980)
but the majority of the hackers were employed by Netscape.
Lex Fridman (1:51:50.620)
But a lot of them at that point had come from the community
Lex Fridman (1:51:53.380)
and others got the community and wanted to work with it.
Lex Fridman (1:51:55.820)
And it was really the weakest engineers at Netscape
Lex Fridman (1:51:57.900)
who didn't like Mozilla and didn't like the crucible
Brendan Eich (1:52:01.100)
of competing with the better programmers.
Lex Fridman (1:52:04.220)
So if the project is good enough, it will rise,
Brendan Eich (1:52:06.640)
the Phoenix will rise out of the...
Lex Fridman (1:52:08.220)
That's exactly right.
Lex Fridman (1:52:09.060)
And so we had this Mozilla code base
Lex Fridman (1:52:10.880)
that was getting better.
Brendan Eich (1:52:11.720)
In fact, I think at some point in 2002
Lex Fridman (1:52:13.540)
when we declared Mozilla 1.0, I engineered a roadmap
Brendan Eich (1:52:17.380)
that successively through similar sort of six week,
Lex Fridman (1:52:20.100)
five week releases, like we all do with browser releases
Brendan Eich (1:52:23.000)
nowadays, Chrome does and Firefox braved us three weeks.
Lex Fridman (1:52:26.460)
We got to a point where we said, you know what?
Brendan Eich (1:52:29.700)
It doesn't suck.
Lex Fridman (1:52:30.540)
This is like the 1.0 that you want to release
Brendan Eich (1:52:33.240)
because if you hold it back any longer to polish it,
Lex Fridman (1:52:35.340)
you're denying others the ability to use it.
Brendan Eich (1:52:36.980)
It's like pro engineer, the mechanical CAD tool
Lex Fridman (1:52:39.400)
embedded the code, they embedded the layout engine.
Lex Fridman (1:52:43.660)
And Mozilla 1.0 was like a Netscape communication suite.
Lex Fridman (1:52:46.980)
We had at that point gotten male people
Brendan Eich (1:52:49.560)
to reintegrate mail and news and we had an editor for HTML.
Lex Fridman (1:52:53.640)
And it felt like a 90s suite, suiteware.
Lex Fridman (1:52:57.620)
And it felt kind of bloated.
Lex Fridman (1:52:58.800)
And the people who were taking that Mozilla open source
Lex Fridman (1:53:02.140)
and then adding Netscape flavor to it
Lex Fridman (1:53:05.020)
were not calling the shots right.
Lex Fridman (1:53:06.540)
And they were also under AOL's thumb a little bit
Lex Fridman (1:53:08.460)
and that they said, well, we should probably put
Brendan Eich (1:53:10.540)
the AOL instant messenger chicklet on the toolbar.
Lex Fridman (1:53:13.180)
We should put the ICQ, the other messaging system
Brendan Eich (1:53:16.220)
that AOL had acquired.
Lex Fridman (1:53:17.340)
We should put the ICQ button on the toolbar.
Lex Fridman (1:53:19.580)
And pretty soon Netscape looked like a bit of a NASCAR
Lex Fridman (1:53:23.500)
badged version of Mozilla.
Lex Fridman (1:53:24.900)
And that also made Mozilla more popular.
Lex Fridman (1:53:27.180)
And yet they had contrived to fire or lay off the leader
Lex Fridman (1:53:35.460)
and we carried on with an open source structure
Lex Fridman (1:53:38.540)
where Mozilla was still, you know, Mitchell was calling
Brendan Eich (1:53:40.860)
sort of management or project level shots
Lex Fridman (1:53:44.480)
and I was calling technical shots.
Lex Fridman (1:53:46.100)
And we had a popular suite, but we thought,
Lex Fridman (1:53:51.200)
why not make it just a browser?
Brendan Eich (1:53:52.740)
Because it'll be simpler, it'll do one job well.
Lex Fridman (1:53:55.380)
And even then we can strip it down by having extensions.
Lex Fridman (1:53:58.780)
So Dave Hyatt and Blake Ross, the high school aged intern
Lex Fridman (1:54:03.740)
did the first version, which was called Mozilla slash browser.
Brendan Eich (1:54:07.260)
It was very, the small group of us, Ian Hicks
Lex Fridman (1:54:09.220)
and Asa Dotzler, me and Joe Hewitt and Hyatt and Blake.
Lex Fridman (1:54:14.340)
And Hyatt was really the senior hacker.
Lex Fridman (1:54:16.540)
He'd done all these things like amazing cross platform menus
Brendan Eich (1:54:20.500)
through the user interface, markup language.
Lex Fridman (1:54:23.500)
And he knew how to do tab browsing.
Brendan Eich (1:54:24.740)
He'd implemented it natively on Mac OS at the time
Lex Fridman (1:54:28.260)
in Camino originally called Chimera.
Brendan Eich (1:54:31.740)
He'd written multiple implementations,
Lex Fridman (1:54:34.300)
which was a thing programmers should do.
Brendan Eich (1:54:36.340)
It's like the V8 team did for those missing years
Lex Fridman (1:54:38.440)
when the rest of the Chrome team's like, where's V8?
Brendan Eich (1:54:41.980)
In fact, Dave's wife, Rebecca told me a story
Lex Fridman (1:54:44.440)
about when they were at UIUC,
Brendan Eich (1:54:45.860)
they were also University of Illinois grad students.
Lex Fridman (1:54:49.460)
There was an assignment, it was a programming assignment
Brendan Eich (1:54:51.300)
it was supposed to do at the end of the semester.
Lex Fridman (1:54:53.300)
And Dave's friend was this, I'm gonna go think
Lex Fridman (1:54:56.820)
and I'm gonna design and I'm gonna make this
Lex Fridman (1:54:59.460)
platonic perfect form of the program.
Lex Fridman (1:55:01.300)
And then I'm gonna write it at the end when it's due.
Lex Fridman (1:55:03.580)
And Hyatt just went there and started hacking.
Brendan Eich (1:55:05.140)
He wrote one version, he wrote a second version,
Lex Fridman (1:55:06.660)
a third version, end of the semester comes around.
Brendan Eich (1:55:09.220)
The friend's not doing too well.
Lex Fridman (1:55:11.140)
It wasn't perfect and it wasn't written.
Brendan Eich (1:55:13.000)
I'm not sure how that story ended for him,
Lex Fridman (1:55:14.820)
but Dave's version was a fifth iteration, it was great.
Lex Fridman (1:55:18.100)
And so he'd done that with everything you need
Lex Fridman (1:55:20.700)
in a tabbed browser.
Lex Fridman (1:55:21.700)
And this really showed well in Phoenix,
Lex Fridman (1:55:24.360)
what we called Phoenix and I had to rename two more times.
Lex Fridman (1:55:28.120)
And Blake went to Stanford, he became a Stanford student
Lex Fridman (1:55:32.260)
and couldn't work on it.
Brendan Eich (1:55:34.060)
Dave Hyatt went to Apple in 2001.
Lex Fridman (1:55:36.620)
He was one of the founding Safari team members.
Brendan Eich (1:55:39.580)
Interesting, wow.
Lex Fridman (1:55:40.460)
But he was still blogging about tabbed browsing.
Brendan Eich (1:55:43.540)
I think Apple at some point said you should.
Lex Fridman (1:55:44.860)
Safari have tabbed browsing?
Brendan Eich (1:55:46.140)
Yeah, but it was because of Hyatt.
Lex Fridman (1:55:48.220)
Hyatt was quite a feather in their cap.
Brendan Eich (1:55:49.820)
Don Melton, who had been the engineering manager
Lex Fridman (1:55:53.420)
for Safari from the beginning, had been in Netscape also.
Lex Fridman (1:55:56.540)
And so there's this diaspora of talent
Lex Fridman (1:55:58.980)
and yet Hyatt was still kind of writing blog posts
Brendan Eich (1:56:01.620)
about how to do tabs right.
Lex Fridman (1:56:03.260)
And at some point Apple said, don't blog about that.
Brendan Eich (1:56:05.360)
That's our proprietary tab technology.
Lex Fridman (1:56:07.580)
And I was like, no, it's not.
Brendan Eich (1:56:08.620)
It was an opera and I've refined it.
Lex Fridman (1:56:10.580)
So we had to replace people and we had Ben Goodger,
Brendan Eich (1:56:15.420)
a New Zealander we hired at Netscape.
Lex Fridman (1:56:18.020)
And he stepped in to be the Firefox lead.
Lex Fridman (1:56:21.260)
And we also had this weird circumstance
Lex Fridman (1:56:23.340)
where AOL finally did notice that Netscape
Brendan Eich (1:56:26.900)
was kind of an albatross,
Lex Fridman (1:56:28.380)
that they bought it for no particular benefit.
Lex Fridman (1:56:31.060)
And even then the AOL politics were also heinous,
Lex Fridman (1:56:33.820)
sort of East Coast politics.
Brendan Eich (1:56:35.380)
I remember taking two trips there
Lex Fridman (1:56:36.660)
because I was a principal engineer.
Lex Fridman (1:56:37.820)
And so us principal engineers got trotted out
Lex Fridman (1:56:39.560)
to do dog and pony shows in Dallas, Virginia.
Lex Fridman (1:56:42.740)
And the AOL opera management was very East Coast in flavor.
Lex Fridman (1:56:46.400)
And they were at that time merging with Time Warner,
Brendan Eich (1:56:49.100)
which did not go well.
Lex Fridman (1:56:50.500)
So one of these years we went out there
Lex Fridman (1:56:52.020)
and we were all doing dog and pony shows
Lex Fridman (1:56:53.420)
and there were these characters
Brendan Eich (1:56:55.100)
that were sort of like marketing guys.
Lex Fridman (1:56:56.340)
One of them was wearing a cravat
Lex Fridman (1:56:57.700)
and one was named Reggie.
Lex Fridman (1:56:59.460)
And they were very you rather than non you.
Brendan Eich (1:57:05.940)
Or they were like what's what's Stoneman's
Lex Fridman (1:57:07.480)
metropolitan film, UHB, urban haute bourgeoisie.
Brendan Eich (1:57:13.980)
They were haute bourgeoisie.
Lex Fridman (1:57:15.820)
They were funny and they were kind of useless
Lex Fridman (1:57:19.100)
and kind of preppy.
Lex Fridman (1:57:20.140)
And then the next year we went back
Lex Fridman (1:57:21.460)
and I said, where's Reggie?
Lex Fridman (1:57:22.340)
And it's like, oh, Reggie's not here anymore
Brendan Eich (1:57:24.140)
because Time Warner realized that the merger
Lex Fridman (1:57:26.300)
wasn't in their interest either.
Lex Fridman (1:57:27.520)
And then the sort of knives came out.
Lex Fridman (1:57:29.140)
And these mergers rarely work, right?
Brendan Eich (1:57:31.820)
This is very difficult.
Lex Fridman (1:57:32.680)
You get these giant companies
Lex Fridman (1:57:33.820)
and they think there's gonna be synergy.
Lex Fridman (1:57:35.300)
That was the 90s, late 90s watch word.
Lex Fridman (1:57:37.540)
And there wasn't synergy with AOL buying Netscape
Lex Fridman (1:57:39.340)
and there wasn't synergy with Time Warner and AOL.
Lex Fridman (1:57:41.260)
But did AOL ever really work?
Lex Fridman (1:57:43.020)
Was it ever really cool?
Brendan Eich (1:57:44.260)
Like the same kind of fire and excitement
Lex Fridman (1:57:46.460)
that Firefox eventually created,
Lex Fridman (1:57:48.740)
was that ever there in AOL?
Lex Fridman (1:57:51.100)
AOL was the right time to do a dial up service
Brendan Eich (1:57:55.020)
that got distribution by basically
Lex Fridman (1:57:56.660)
leaflet bombing compact discs on the country.
Lex Fridman (1:58:00.700)
And they beat out CompuServe and the other ones,
Lex Fridman (1:58:04.420)
Prodigy, and then the web happened.
Lex Fridman (1:58:06.860)
And so you had almost like this isolated continent,
Lex Fridman (1:58:10.940)
like some of the evolutionary biologists I follow
Brendan Eich (1:58:14.180)
make fun of the funny large marsupial mammals of Australia,
Lex Fridman (1:58:19.900)
how silly they are.
Lex Fridman (1:58:21.500)
And so AOL is like Australia.
Lex Fridman (1:58:23.100)
Yeah.
Lex Fridman (1:58:23.940)
And you saw it over time because they kept aging
Lex Fridman (1:58:26.420)
and they were using AOL to get online
Lex Fridman (1:58:28.180)
and they couldn't really use a web browser.
Lex Fridman (1:58:30.440)
And it became sort of a valued cohort
Brendan Eich (1:58:33.380)
because they still have relatively high
Lex Fridman (1:58:35.140)
socioeconomic status and they have grandchildren,
Lex Fridman (1:58:37.200)
but it's going away, it's dying at some point.
Lex Fridman (1:58:39.500)
Towards the end of the aughts, that decade,
Lex Fridman (1:58:42.100)
and then to the decade 2010 plus,
Lex Fridman (1:58:45.980)
that Firefox became this incredible,
Brendan Eich (1:58:48.620)
I forget when Chrome came out, but.
Lex Fridman (1:58:50.260)
2008, September.
Brendan Eich (1:58:51.100)
2008, but Firefox was the sexy cool thing
Lex Fridman (1:58:55.060)
that represented a lot of the cutting edge technologies
Lex Fridman (1:58:57.500)
and all that kind of stuff.
Lex Fridman (1:58:58.340)
Web 2, it was amazing.
Brendan Eich (1:59:00.140)
Kim O'reilly and John Battelle did the first Web 2 conference
Lex Fridman (1:59:03.380)
which eventually became huge and they split it.
Lex Fridman (1:59:05.420)
But that was in 2004, it was right when Firefox was out.
Lex Fridman (1:59:08.540)
Craigslist was huge, it was killing classified revenue
Brendan Eich (1:59:11.640)
for newspapers, but there was just this ferment.
Lex Fridman (1:59:14.420)
People starting.
Brendan Eich (1:59:15.260)
Wikipedia along there somewhere.
Lex Fridman (1:59:16.660)
Gmail was already done and it was an impressive web mail.
Brendan Eich (1:59:19.820)
There were others before it like Hotmail,
Lex Fridman (1:59:21.140)
but Gmail was really impressive from Google.
Lex Fridman (1:59:22.860)
And Google Maps, people started seeing what could be done.
Lex Fridman (1:59:26.020)
They thought how can you drag the map around
Lex Fridman (1:59:28.100)
and how does that work?
Lex Fridman (1:59:29.700)
And it was all JavaScript and images and.
Lex Fridman (1:59:32.460)
So Gmail was 2003, four?
Lex Fridman (1:59:34.500)
Yeah, it actually started quite early.
Brendan Eich (1:59:36.220)
It might've been 2002 or three,
Lex Fridman (1:59:37.340)
but by the time we started dealing with Google and Firefox
Brendan Eich (1:59:40.100)
to get the search deal,
Lex Fridman (1:59:41.040)
which was the main revenue source for Mozilla,
Lex Fridman (1:59:43.420)
and still is, 2004, early, Sergey Brinz,
Lex Fridman (1:59:47.740)
one of his trusted engineer guys, Fritz Schneider,
Brendan Eich (1:59:50.420)
made contact with me at Mozilla and we started talking
Lex Fridman (1:59:53.380)
and we realized search and browser need each other.
Lex Fridman (1:59:56.980)
And this is deeply true, right?
Lex Fridman (1:59:58.460)
This is still true.
Brendan Eich (1:59:59.780)
This is why a lot of the search engines
Lex Fridman (20:03.020)
in how many days and why was it only that many days?
Lex Fridman (20:05.860)
And what was the goal and the underlying principles
Lex Fridman (20:08.880)
in your mind at the time?
Lex Fridman (20:09.720)
So the whole, I'm sort of describing worse is better
Lex Fridman (20:11.740)
in a frenetic way because it fit the model of Netscape.
Brendan Eich (20:14.980)
When it was known that Jim Clark
Lex Fridman (20:18.420)
and Marc Inves were founding Netscape
Lex Fridman (20:20.020)
and they did the first release in 1994,
Lex Fridman (20:22.880)
that browser took over from Mosaic.
Brendan Eich (20:24.820)
In fact, that's why Mozilla is called that.
Lex Fridman (20:27.100)
It's the Mosaic killer.
Brendan Eich (20:28.260)
It's like the giant monster that kills Mosaic.
Lex Fridman (20:30.140)
That's awesome.
Lex Fridman (20:30.980)
And they knew they could, it wasn't that, again,
Lex Fridman (20:34.180)
it's not like you're doing advanced scientific research
Brendan Eich (20:36.220)
that is changing the world.
Lex Fridman (20:37.380)
You're more like taking down the last iteration
Brendan Eich (20:41.020)
on the browser, Marc did, which had images
Lex Fridman (20:43.180)
and other importances before he stopped working on it.
Lex Fridman (20:45.900)
And you're making Netscape the new thing that has images,
Lex Fridman (20:49.060)
plugins, which was the way to do video back in the day.
Brendan Eich (20:51.720)
It had something that's kind of died now for tiled windows
Lex Fridman (20:54.260)
called frames and frame sets.
Brendan Eich (20:56.000)
HTML tables, that was new.
Lex Fridman (20:59.280)
Eric Bina did tables in Netscape 1.1.
Lex Fridman (21:01.640)
So when I got there, they were heading toward IPO.
Lex Fridman (21:05.040)
Clark wanted the IPO early, I think his instinct was right.
Lex Fridman (21:07.640)
And that kicked off the whole dot com era, right?
Lex Fridman (21:10.280)
There was a recession in the US in 91.
Brendan Eich (21:13.280)
You can see old law and order reruns
Lex Fridman (21:15.140)
where they talk about the recession
Lex Fridman (21:16.520)
and how hard it's hitting New Yorkers.
Lex Fridman (21:18.080)
And after that, Greenspan really goosed things
Brendan Eich (21:20.440)
at the Federal Reserve and technology had been sort of
Lex Fridman (21:23.840)
fermenting in a way that came together with the internet.
Lex Fridman (21:26.480)
And Netscape made it possible to do pets.com,
Lex Fridman (21:30.040)
to do eBay, to get people to recognize a URL on a billboard
Lex Fridman (21:34.280)
and then type it in when they get home.
Lex Fridman (21:36.040)
And that was huge.
Brendan Eich (21:38.280)
That was so fast moving a rocket that Marc
Lex Fridman (21:42.120)
and the engineering team there thought,
Brendan Eich (21:45.060)
we need to make this a programmable browser,
Lex Fridman (21:47.920)
not just a document viewer, not just a video.
Brendan Eich (21:50.840)
It was all HTML with images and tables and also,
Lex Fridman (21:54.120)
like you said, frames.
Brendan Eich (21:55.320)
There was no dynamic element at all.
Lex Fridman (21:57.800)
Yeah, the most dynamism we get was from a plugin,
Brendan Eich (21:59.680)
which there are a few of them then.
Lex Fridman (22:01.640)
Flash didn't exist at that point.
Brendan Eich (22:03.960)
It was, I think.
Lex Fridman (22:05.960)
Java Applets yet or no?
Brendan Eich (22:07.400)
Well, that's the thing we did to deal with Sun.
Lex Fridman (22:09.440)
In fact, I was recruited to go do Scheme in the browser.
Brendan Eich (22:12.600)
Remember Guy Steele and Gerald Sussman's
Lex Fridman (22:14.800)
beautiful Lisp variant?
Brendan Eich (22:16.760)
I was gonna do it in the browser
Lex Fridman (22:17.920)
because my friends from SG, I thought,
Brendan Eich (22:19.480)
hey, we like Scheme, you like Scheme.
Lex Fridman (22:20.920)
And I'm like, I hardly ever use Scheme.
Brendan Eich (22:22.140)
It's not really used in industry,
Lex Fridman (22:23.360)
except in sort of silos, but I like it.
Brendan Eich (22:27.080)
Okay, I'll come do Scheme in the browser.
Lex Fridman (22:29.760)
I have a slide from my 2017 talk
Brendan Eich (22:32.720)
where I have Bruce Willis crawling through the duct
Lex Fridman (22:34.640)
in Die Hard.
Brendan Eich (22:35.480)
He's like, come out to the coast, have a lot of fun.
Lex Fridman (22:38.300)
Come on, do Scheme in the browser.
Lex Fridman (22:40.560)
But when I got there, there was no Scheme in the browser
Lex Fridman (22:42.160)
because they'd started a deal with Sun Microsystems.
Lex Fridman (22:45.240)
And my best contact there was Bill Joy,
Lex Fridman (22:47.040)
who I admired as a Berkeley Unix founder.
Brendan Eich (22:48.960)
And, you know, Sun founder.
Lex Fridman (22:50.600)
And Bill got the idea of making the browser programmable too.
Lex Fridman (22:53.920)
And so the main idea was to put the Java VM,
Lex Fridman (22:57.240)
which at that point was not really easy to embed,
Brendan Eich (23:00.400)
into Netscape, including the Netscape version on Windows
Lex Fridman (23:04.280)
that was still most popular,
Brendan Eich (23:05.660)
which was the 16 bit Windows 3.1, which was going away.
Lex Fridman (23:09.560)
Microsoft was coming out with Windows 95
Lex Fridman (23:11.360)
and everyone was afraid they were gonna do
Lex Fridman (23:13.620)
Internet Explorer, I guess, two at that point,
Brendan Eich (23:16.200)
three the next year.
Lex Fridman (23:17.080)
They already bought or invested in somehow Spyglass,
Brendan Eich (23:20.960)
this other company that shot out from NCSA
Lex Fridman (23:24.440)
at University of Illinois.
Lex Fridman (23:26.000)
And in fact, Microsoft had tried to buy Netscape
Lex Fridman (23:29.740)
in late 94, before I got there.
Lex Fridman (23:31.400)
And I heard about this later.
Lex Fridman (23:32.280)
I heard they offered way too little money.
Lex Fridman (23:35.040)
And so, you know, Jim Barksdale and Jim Clark said,
Lex Fridman (23:37.480)
get out of here, you know, pound sand.
Lex Fridman (23:39.820)
But then they realized, oh, this is going to hurt us
Lex Fridman (23:43.780)
because now they're gonna copy us.
Brendan Eich (23:45.520)
Didn't happen right away.
Lex Fridman (23:46.340)
I'm not sure when Gates internet title wave memo
Brendan Eich (23:49.080)
was written.
Lex Fridman (23:50.240)
That's the famous memo he wrote when Bill Gates realized
Brendan Eich (23:53.180)
that Microsoft was going down this old copy AOL path
Lex Fridman (23:56.840)
or copy CompuServe path, a project called Blackbird,
Brendan Eich (24:01.100)
presumably after the SR71, I don't know.
Lex Fridman (24:03.240)
But they were gonna make a, you know,
Brendan Eich (24:04.680)
dial up service with a custom content language stack
Lex Fridman (24:07.600)
and custom rendering.
Brendan Eich (24:09.040)
It wasn't the web.
Lex Fridman (24:10.680)
You know, they could have content partners.
Brendan Eich (24:13.200)
They have a lot of money,
Lex Fridman (24:14.400)
but it still wasn't to scale the web.
Brendan Eich (24:15.920)
It wasn't gonna be compelling.
Lex Fridman (24:16.880)
And Gates realized this,
Lex Fridman (24:18.200)
and he turned the company on a dime
Lex Fridman (24:20.000)
and they couldn't buy Netscape.
Brendan Eich (24:22.400)
Again, I'm not sure the timing,
Lex Fridman (24:23.320)
so they decided to copy it.
Lex Fridman (24:24.540)
And once we realized that everybody inside Netscape
Lex Fridman (24:27.400)
felt even more urgency and more of a frenetic mood.
Lex Fridman (24:30.920)
And so my chance to do scheme disappeared
Lex Fridman (24:33.620)
when the Java deal started brewing.
Lex Fridman (24:35.840)
But there was still a chance to do a companion language
Lex Fridman (24:38.800)
to Java because Java was a compiled,
Brendan Eich (24:41.080)
is a compiled language.
Lex Fridman (24:42.620)
It's evolved and improved quite a lot since then too,
Lex Fridman (24:44.960)
but it was for sort of serious advanced programmers
Lex Fridman (24:48.560)
that cost a certain salary or hourly rate.
Lex Fridman (24:51.400)
And people observed, Bill Joy observed,
Lex Fridman (24:53.880)
and Mark Andreessen and I observed
Brendan Eich (24:55.760)
that in a mature stack like Microsoft,
Lex Fridman (24:57.900)
you really benefit from having a scripting language
Brendan Eich (25:00.020)
like Visual Basic,
Lex Fridman (25:01.680)
which became Visual Basic script in IE3,
Lex Fridman (25:03.680)
but didn't take over and kill JavaScript,
Lex Fridman (25:07.120)
that you need two languages.
Brendan Eich (25:08.340)
One is for the component writers
Lex Fridman (25:10.160)
who are higher price and more expert.
Lex Fridman (25:12.560)
And the other is for scripters,
Lex Fridman (25:17.000)
certified public accountants, designers,
Brendan Eich (25:19.480)
graphic designers with some programming inclination,
Lex Fridman (25:21.720)
anybody, amateurs, doesn't matter.
Brendan Eich (25:23.460)
There's a much more demotic approach there
Lex Fridman (25:26.600)
for programming the components together,
Brendan Eich (25:28.660)
gluing them together.
Lex Fridman (25:29.880)
Some people say duct tape language, which I don't really like.
Lex Fridman (25:32.800)
But we saw, Bill Joy and Mark Andreessen and I,
Lex Fridman (25:36.080)
we saw the need for a companion language.
Lex Fridman (25:38.020)
And the gleam in our eye was to call it JavaScript.
Lex Fridman (25:40.400)
I didn't like it, that was marketing's plan.
Brendan Eich (25:42.480)
Mark called it Mocha, which I liked.
Lex Fridman (25:45.080)
And Netscape Marketing, I think, didn't like that.
Lex Fridman (25:47.080)
So they said, oh, there's some trademark
Lex Fridman (25:48.520)
and some software somewhere that uses Mocha,
Lex Fridman (25:50.800)
so we can't use that.
Lex Fridman (25:52.000)
And they tried LiveScript in August and that didn't last.
Lex Fridman (25:54.960)
And then finally we got the trademark license
Lex Fridman (25:56.680)
in December 1995.
Lex Fridman (25:58.720)
But the work I did to prove that it could be done
Lex Fridman (26:01.600)
was important because I came in in April
Lex Fridman (26:05.200)
and even then Netscape was growing so fast
Lex Fridman (26:08.320)
that they couldn't find an open hiring requisition
Brendan Eich (26:11.280)
in the client team for me.
Lex Fridman (26:12.320)
So they hired me into the server team.
Lex Fridman (26:14.280)
And I worked for a month on server team
Lex Fridman (26:16.680)
on what became HTTP 1.1.
Lex Fridman (26:18.600)
So I was actually, I had done protocol work
Lex Fridman (26:20.280)
at Silicon Graphics with Greg Chesson,
Brendan Eich (26:22.640)
former Bell Labs intern, grad student intern
Lex Fridman (26:25.360)
who knew all the Unix founders.
Lex Fridman (26:27.020)
And Greg was very interested in taking protocols
Lex Fridman (26:30.880)
to the next level with VLSI,
Brendan Eich (26:32.840)
because he thought that CPUs wouldn't scale up.
Lex Fridman (26:35.640)
He was mistaken in that, unfortunately.
Brendan Eich (26:37.480)
Moore's law more than kept up.
Lex Fridman (26:39.060)
And you have gigabit ethernet running
Brendan Eich (26:41.400)
with conventional processors.
Lex Fridman (26:42.520)
But I worked on protocols at SGI
Brendan Eich (26:45.680)
as well as Unix kernel hacking and NFS and things like that.
Lex Fridman (26:49.000)
So I came into Netscape to work on the server side
Brendan Eich (26:53.040)
for a month, but I was thinking the whole time,
Lex Fridman (26:55.260)
what should this language be like?
Lex Fridman (26:56.360)
Should it be easy to use?
Lex Fridman (26:58.480)
Might its syntax even be more like natural language
Brendan Eich (27:00.680)
like HyperTalk, which is Bill Atkinson's language
Lex Fridman (27:04.840)
in HyperCard, if you ever used HyperCard on an early Mac.
Lex Fridman (27:08.560)
And I thought, well, I'd like to do that,
Lex Fridman (27:12.080)
but my management is saying, make it look like Java,
Brendan Eich (27:15.160)
which looks like C from a distance.
Lex Fridman (27:17.480)
What does that mean?
Lex Fridman (27:18.320)
Is it braces?
Lex Fridman (27:19.280)
We're talking about visually?
Brendan Eich (27:20.400)
Does that mean like, management,
Lex Fridman (27:23.060)
do they understand what they think about?
Brendan Eich (27:24.640)
Marketing didn't know, but management did.
Lex Fridman (27:26.560)
Like Rick Schell, the VP of engineering, knew.
Lex Fridman (27:29.680)
And we had a plan even that was,
Lex Fridman (27:31.720)
if you have this companion language,
Brendan Eich (27:32.920)
you're going to glue things together
Lex Fridman (27:34.560)
between Java and JavaScript.
Lex Fridman (27:35.680)
So you're going to have commerce in memory, in the heap
Lex Fridman (27:38.800)
with data types.
Lex Fridman (27:40.240)
So you're going to want some of the data types
Lex Fridman (27:41.760)
in Java to reflect in the JavaScript.
Brendan Eich (27:43.880)
You're going to want the primitive types
Lex Fridman (27:45.700)
that Java unfortunately separated from objects.
Lex Fridman (27:47.540)
So at least some of them, double, let's call it
Lex Fridman (27:50.880)
in Java's terms from the C term
Brendan Eich (27:52.560)
for double precision floating point,
Lex Fridman (27:55.640)
or strings or Booleans and objects.
Lex Fridman (28:01.200)
And so right away there was this constraint
Lex Fridman (28:04.000)
that looking like Java meant kind of a C curly brace syntax
Lex Fridman (28:07.920)
but also some of the data types and objects.
Lex Fridman (28:09.800)
Like objects and so on, all that kind of stuff.
Brendan Eich (28:12.000)
Comparison operator.
Lex Fridman (28:13.000)
Garbage collection, all that stuff.
Brendan Eich (28:15.480)
Even the bitwise operators and the shift operators
Lex Fridman (28:17.640)
including the unsigned right shift,
Brendan Eich (28:19.580)
which Java had because it didn't have
Lex Fridman (28:21.420)
unsigned integer types.
Brendan Eich (28:22.720)
It said, if you want to do unsigned operations,
Lex Fridman (28:24.600)
use an operator.
Lex Fridman (28:25.440)
And that turned out to be important much later.
Lex Fridman (28:27.560)
I'll tell that story five time.
Lex Fridman (28:28.560)
But JavaScript inherited a set of operators,
Lex Fridman (28:35.080)
the expression grammar, the statement grammar
Brendan Eich (28:37.160)
up to a point from Java.
Lex Fridman (28:39.360)
But I wanted a functional language.
Brendan Eich (28:40.720)
I wanted scheme, a little bit of scheme,
Lex Fridman (28:42.840)
even though it wasn't as clean as scheme.
Brendan Eich (28:44.600)
I wanted.
Lex Fridman (28:45.440)
So you had a love, sorry to interrupt.
Brendan Eich (28:46.260)
You had a love for scheme and list
Lex Fridman (28:47.600)
but that functional language landscape.
Brendan Eich (28:49.760)
Yes, I wanted first class functions
Lex Fridman (28:51.640)
because I saw the need for callbacks in the browser
Brendan Eich (28:54.000)
where it's a single threaded program.
Lex Fridman (28:55.880)
All the early browsers were single threaded
Lex Fridman (28:57.360)
and it's the right model for users.
Lex Fridman (28:58.640)
Most users weren't ready for mutual exclusion
Lex Fridman (29:00.600)
and threading.
Lex Fridman (29:01.680)
So in a single threaded world,
Brendan Eich (29:03.680)
you cannot block the user interface.
Lex Fridman (29:05.440)
So you have to use a callback and run later.
Lex Fridman (29:07.520)
And without getting too fancy
Lex Fridman (29:09.920)
and trying to capture the continuation
Brendan Eich (29:11.640)
like call CC does in scheme,
Lex Fridman (29:13.340)
I thought I'll just make it easy to have fun arcs.
Brendan Eich (29:16.640)
First class functions you pass downward
Lex Fridman (29:18.860)
and it can call back, it'd be called back.
Lex Fridman (29:21.800)
And Java didn't have that at the time.
Lex Fridman (29:23.640)
It took forever to get proper first class functions
Brendan Eich (29:27.280)
or lambdas now into Java, Java seven or eight, I think.
Lex Fridman (29:30.720)
It did have concurrency, right?
Brendan Eich (29:32.120)
Yes.
Lex Fridman (29:32.960)
From the very beginning.
Lex Fridman (29:33.780)
But you were thinking that the JavaScript
Lex Fridman (29:35.680)
in the browser would not have the luxury
Brendan Eich (29:38.160)
of being concurrent.
Lex Fridman (29:39.360)
That's right.
Lex Fridman (29:40.200)
And the reason was Java was gonna run in the plugins.
Lex Fridman (29:42.480)
So it could fork threads and go to town.
Lex Fridman (29:44.560)
But the main action in the browser
Lex Fridman (29:46.880)
was in the single threaded program,
Brendan Eich (29:48.280)
the single Unix process on Unix or Windows.
Lex Fridman (29:51.880)
And it was where you had to service the event loop
Lex Fridman (29:54.400)
and then go do things.
Lex Fridman (29:56.160)
Respond to the network layout, some HTML, render it,
Brendan Eich (29:59.360)
turn widths into heights by filling containers, boxes,
Lex Fridman (2:00:01.140)
have their own browsers.
Brendan Eich (2:00:02.240)
Yeah, so in case people don't know,
Lex Fridman (2:00:03.660)
the main revenue source for the browser
Brendan Eich (2:00:05.580)
is the default search engine,
Lex Fridman (2:00:07.240)
which is kind of incredible to think about
Brendan Eich (2:00:09.260)
that that is a revenue source.
Lex Fridman (2:00:11.460)
It's a little bit sad.
Brendan Eich (2:00:12.580)
Yeah, it leads to this capture or kill effect
Lex Fridman (2:00:14.580)
where you have the search engine own its own browser
Lex Fridman (2:00:17.020)
and other browsers may struggle to get the distribution
Lex Fridman (2:00:21.260)
we talked about earlier.
Lex Fridman (2:00:22.620)
So where, and you said you've figured out
Lex Fridman (2:00:26.800)
that Google is working on its own browser
Brendan Eich (2:00:29.100)
at some point there.
Lex Fridman (2:00:29.940)
2006, yeah.
Brendan Eich (2:00:30.780)
2006, so would you say Firefox versus,
Lex Fridman (2:00:33.220)
was Internet Explorer part of the war here
Lex Fridman (2:00:35.380)
or was the Firefox versus Chrome?
Lex Fridman (2:00:37.300)
So Firefox didn't quite cause Microsoft to reconvene IE.
Brendan Eich (2:00:40.900)
They did do IE7 and I remember being on a plane
Lex Fridman (2:00:44.580)
back from the standards meeting,
Brendan Eich (2:00:46.220)
JavaScript standards meeting from Seattle, from Redmond,
Lex Fridman (2:00:48.980)
and there was some Microsoft guy in front of me.
Brendan Eich (2:00:52.100)
Turns out my wife knew him from her past life
Lex Fridman (2:00:54.940)
before we married and he was just this bearded big guy
Lex Fridman (2:00:58.200)
and he was like,
Lex Fridman (2:00:59.040)
we should have just killed Firefox in the cradle.
Brendan Eich (2:01:01.500)
All we needed to do was add pop up blocking in tabs
Lex Fridman (2:01:04.160)
and we could have made Internet Explorer kill Firefox.
Lex Fridman (2:01:06.180)
And it's like, shoulda, coulda, woulda, pal.
Lex Fridman (2:01:07.820)
And I was right behind him during this.
Lex Fridman (2:01:10.300)
But they didn't, they were slow
Lex Fridman (2:01:11.580)
and IE7 wasn't that great.
Lex Fridman (2:01:13.540)
And what really got them started I think was Chrome.
Lex Fridman (2:01:18.440)
And I talked to Larry Page in 2005,
Brendan Eich (2:01:21.500)
I think I said, we're talking about the Firefox relationship
Lex Fridman (2:01:24.500)
but he was also saying, what about WebKit?
Brendan Eich (2:01:26.120)
This was Apple's version of the old KHTML engine from Linux,
Lex Fridman (2:01:32.020)
the KDE side of Linux that was used in the Conqueror browser
Brendan Eich (2:01:35.780)
also with Ks that Apple had forked.
Lex Fridman (2:01:38.140)
And in 2005 was when Apple's principals
Brendan Eich (2:01:41.700)
including Dave Hyatt, Maciej Stokowiak,
Lex Fridman (2:01:43.400)
some of my friends who are still there said,
Brendan Eich (2:01:45.580)
we must stop patch bombing this poor KHTML project.
Lex Fridman (2:01:48.540)
We should make a proper Mozilla like organization,
Brendan Eich (2:01:50.900)
webkit.org.
Lex Fridman (2:01:51.780)
Now it wasn't a separate nonprofit or anything.
Brendan Eich (2:01:53.700)
It was still Apple, it was Apple controlled
Lex Fridman (2:01:55.220)
but they made their fork first class
Lex Fridman (2:01:58.180)
and they made it be something that they all worked in
Lex Fridman (2:02:00.500)
and lived in.
Lex Fridman (2:02:01.340)
And that was before Chrome.
Lex Fridman (2:02:03.040)
And then Chrome, Larry Page said, what about WebKit?
Brendan Eich (2:02:05.660)
I said, yeah, it's nice.
Lex Fridman (2:02:06.540)
I have friends who work on it.
Brendan Eich (2:02:08.000)
You might use that if you do your own browser.
Lex Fridman (2:02:09.560)
Why don't you do your own browser?
Brendan Eich (2:02:10.460)
Don't worry about Firefox.
Lex Fridman (2:02:11.980)
You should do your own browser.
Brendan Eich (2:02:12.940)
You can have your own opinion of how it should work.
Lex Fridman (2:02:15.260)
And sure enough they did.
Lex Fridman (2:02:17.060)
So by 2006, we knew they'd been working on it.
Lex Fridman (2:02:19.180)
Some of my friends who'd been at Netscape
Brendan Eich (2:02:21.320)
did the original demo.
Lex Fridman (2:02:22.420)
And the demo wasn't what you thought.
Brendan Eich (2:02:24.020)
It didn't have the fast JavaScript yet.
Lex Fridman (2:02:25.340)
That was still off in Denmark on a farm.
Lex Fridman (2:02:29.540)
Did it have tabs?
Lex Fridman (2:02:30.500)
It had tabs because all browsers had tabs at this point.
Lex Fridman (2:02:32.820)
And it had this software fault isolation I mentioned.
Lex Fridman (2:02:37.460)
It was through process isolation.
Lex Fridman (2:02:39.060)
So in theory, each tab has some operating system process.
Lex Fridman (2:02:43.560)
And so what's gonna take your tab down?
Brendan Eich (2:02:45.580)
Well, WebKit has bugs that can crash it
Lex Fridman (2:02:48.380)
but Flash was still big then.
Brendan Eich (2:02:49.880)
All the restaurant sites remember.
Lex Fridman (2:02:51.220)
And Flash crashed a lot.
Lex Fridman (2:02:53.100)
So the demo that I heard about,
Lex Fridman (2:02:55.020)
my friends at Netscape as a lot of people did,
Brendan Eich (2:02:57.980)
inside Google was the sad tab.
Lex Fridman (2:03:00.460)
They showed an early version of Chrome
Brendan Eich (2:03:02.120)
which is just this bare bones tab browser.
Lex Fridman (2:03:04.200)
They loaded a site with a known Flash volume
Lex Fridman (2:03:06.700)
and then suddenly Flash crashes.
Lex Fridman (2:03:08.540)
And everyone expected the whole browser to go down.
Lex Fridman (2:03:10.860)
But instead you got this little sad face in the tab
Lex Fridman (2:03:13.080)
and you could reload it and there it is again.
Lex Fridman (2:03:14.740)
So this was an improvement.
Lex Fridman (2:03:16.740)
It was a real move for security.
Brendan Eich (2:03:18.740)
It was based on a company they acquired
Lex Fridman (2:03:21.420)
called Green Border.
Brendan Eich (2:03:22.660)
They had some really big brains like Olfar Erlingsson
Lex Fridman (2:03:25.060)
I think was involved.
Lex Fridman (2:03:25.880)
And they had done some exotic security stuff
Lex Fridman (2:03:28.880)
but they ended up simplifying it to this process isolation.
Lex Fridman (2:03:32.180)
And it was good.
Lex Fridman (2:03:34.960)
And Firefox didn't have it at the time.
Lex Fridman (2:03:36.740)
So we were still struggling with security bugs.
Lex Fridman (2:03:41.760)
So we knew Chrome was coming
Lex Fridman (2:03:42.980)
but it took two more years to come out.
Lex Fridman (2:03:45.060)
And we were still getting the Google search revenue
Lex Fridman (2:03:48.300)
and we were still making Google the default engine
Lex Fridman (2:03:51.860)
and Firefox was still growing.
Brendan Eich (2:03:52.980)
Firefox grew I think until 2011.
Lex Fridman (2:03:55.260)
That was when it peaked.
Lex Fridman (2:03:56.900)
And as it started falling, it was because of Chrome.
Lex Fridman (2:03:59.900)
Chrome came out in 2008 and it had a comic book
Brendan Eich (2:04:02.900)
that leaked accidentally that showed some of the people
Lex Fridman (2:04:04.820)
who worked on it.
Brendan Eich (2:04:05.660)
Lars Bock was in there and so on.
Lex Fridman (2:04:07.260)
It was kind of soft launch
Brendan Eich (2:04:08.980)
because they didn't market it heavily.
Lex Fridman (2:04:10.380)
They didn't push distribution.
Lex Fridman (2:04:12.580)
But Google had reason to worry about distribution
Lex Fridman (2:04:14.820)
because Microsoft was doing a search engine, Bing,
Brendan Eich (2:04:19.220)
since 2007.
Lex Fridman (2:04:20.500)
In fact, when they came out with Bing,
Brendan Eich (2:04:22.020)
Google was worried that Microsoft would just brute force
Lex Fridman (2:04:25.220)
switch the default browser in everyone's Internet Explorer
Brendan Eich (2:04:28.540)
or even Firefox on Windows to Bing from Google.
Lex Fridman (2:04:32.580)
And Microsoft wasn't I think ready
Brendan Eich (2:04:34.860)
to dare the antitrust cops that way
Lex Fridman (2:04:37.100)
even though they'd gone to sleep.
Lex Fridman (2:04:39.020)
And I don't think Bing was ready either.
Lex Fridman (2:04:42.020)
But just in case it happened, Sundar Pichai,
Brendan Eich (2:04:45.500)
who rose very well based on this work,
Lex Fridman (2:04:47.740)
was sort of in charge of getting distribution deals.
Lex Fridman (2:04:50.580)
And he got Google toolbar
Lex Fridman (2:04:52.180)
and Google desktop search distribution.
Lex Fridman (2:04:55.500)
And if you remember those pieces of software,
Lex Fridman (2:04:56.780)
those were like desktop extensions,
Brendan Eich (2:04:59.460)
toolbars or operating system extensions
Lex Fridman (2:05:01.940)
for doing desktop search, searching your local files.
Lex Fridman (2:05:03.820)
Kind of like Mac OS Spotlight, right?
Lex Fridman (2:05:05.900)
Sadly, it died.
Brendan Eich (2:05:07.300)
It all died.
Lex Fridman (2:05:08.140)
And there were some features that we still missed
Brendan Eich (2:05:09.220)
that didn't make it into Chrome.
Lex Fridman (2:05:10.580)
But Sundar got OEMs to bundle those.
Lex Fridman (2:05:14.020)
And then he got enough of those deals
Lex Fridman (2:05:15.500)
that by 2007 or eight, Google felt,
Brendan Eich (2:05:18.000)
well, if Bing, Microsoft does the worst
Lex Fridman (2:05:20.500)
and tries to force Bing,
Brendan Eich (2:05:21.860)
we can reach in and reset it with that point of presence.
Lex Fridman (2:05:25.500)
So that was good for Sundar's career
Lex Fridman (2:05:27.340)
and it was good for Google,
Lex Fridman (2:05:28.180)
but it never came to pass that they had to defend.
Brendan Eich (2:05:30.780)
Microsoft was still slow.
Lex Fridman (2:05:32.940)
And by the time they saw Chrome come out,
Brendan Eich (2:05:35.000)
then they did what would have been IE9.
Lex Fridman (2:05:37.420)
And then they said,
Brendan Eich (2:05:38.260)
we're gonna have a fast JavaScript engine
Lex Fridman (2:05:39.500)
to Chakra, Chakra core.
Lex Fridman (2:05:41.380)
And they did okay.
Lex Fridman (2:05:43.140)
They were another process isolated,
Brendan Eich (2:05:46.220)
fast JavaScript browser, tab browser.
Lex Fridman (2:05:48.980)
So it sounds like there's a deep fundamental coupling
Brendan Eich (2:05:52.340)
of search engine and browser
Lex Fridman (2:05:53.640)
that's mixing this whole thing up.
Lex Fridman (2:05:55.780)
And obviously Firefox doesn't have a search engine.
Lex Fridman (2:05:59.980)
That's like, I mean, you're partnering with somebody
Brendan Eich (2:06:03.680)
with a search engine.
Lex Fridman (2:06:04.940)
With Yahoo or with Google or so on.
Brendan Eich (2:06:08.780)
They tried Yahoo, that was unfortunate
Lex Fridman (2:06:10.660)
because I think even though Marissa Mayer talked about it,
Brendan Eich (2:06:14.660)
she never pulled it off.
Lex Fridman (2:06:15.840)
They never restored the search team
Brendan Eich (2:06:18.620)
that had been laid off.
Lex Fridman (2:06:19.600)
I believe Carol Bartz was running Yahoo
Brendan Eich (2:06:21.460)
when Carol said, I've got to get rid
Lex Fridman (2:06:23.100)
of one of the three expensive things.
Brendan Eich (2:06:24.580)
I'm gonna get rid of search.
Lex Fridman (2:06:25.940)
And those researchers went to Google and Microsoft
Lex Fridman (2:06:29.800)
and there was no way to put Yahoo search back together.
Lex Fridman (2:06:32.500)
So when Firefox tried switching all their users
Brendan Eich (2:06:36.020)
who'd stuck with a default from Google to Yahoo,
Lex Fridman (2:06:38.700)
it was like mid December, 2014,
Lex Fridman (2:06:40.980)
a bunch of users said, what just happened to my Firefox?
Lex Fridman (2:06:44.060)
And others didn't notice right away,
Lex Fridman (2:06:45.300)
but over time they did.
Lex Fridman (2:06:46.220)
And so over the next year,
Brendan Eich (2:06:48.320)
the traffic just went away for Yahoo.
Lex Fridman (2:06:51.360)
And yet they were obliged, I understand it.
Brendan Eich (2:06:54.420)
I don't have inside knowledge, but this has leaked out
Lex Fridman (2:06:56.700)
and Danny Sullivan's written about it,
Brendan Eich (2:06:58.340)
search engine land.
Lex Fridman (2:06:59.260)
I think the deal was like fixed payments to Mozilla.
Lex Fridman (2:07:01.520)
So Mozilla was getting a bunch of money for traffic
Lex Fridman (2:07:03.500)
that wasn't staying because users
Brendan Eich (2:07:04.960)
were resetting their default.
Lex Fridman (2:07:06.580)
And this shows how defaults are important,
Lex Fridman (2:07:09.220)
but they have to be good enough
Lex Fridman (2:07:10.520)
that the user doesn't override them.
Lex Fridman (2:07:12.580)
And a lot of the commercial value in popular apps
Lex Fridman (2:07:16.620)
is what are the default settings?
Lex Fridman (2:07:18.040)
What is the default search?
Lex Fridman (2:07:20.120)
But oftentimes there's something just like you said,
Brendan Eich (2:07:21.860)
I mean, if there's something compelling
Lex Fridman (2:07:25.020)
that's also can beat out the default,
Brendan Eich (2:07:27.220)
like tab browsing and so on.
Lex Fridman (2:07:29.020)
And that's where, I mean, we'll talk about brave browser.
Brendan Eich (2:07:32.300)
It feels like now we're in this third stage
Lex Fridman (2:07:36.200)
where there's a Chrome, Firefox, Edge,
Brendan Eich (2:07:41.440)
I guess it's called and brave.
Lex Fridman (2:07:44.620)
And these are all seem like really exciting,
Brendan Eich (2:07:48.500)
I don't know, innovative browsers.
Lex Fridman (2:07:50.560)
They're all kind of copying off of each other,
Brendan Eich (2:07:52.260)
picking up the good stuff.
Lex Fridman (2:07:53.760)
There's evolution again, especially on tracking protection.
Lex Fridman (2:07:56.260)
So privacy is this sort of global wave that's rising.
Lex Fridman (2:08:02.500)
I like to call it a wave because it's a large,
Brendan Eich (2:08:04.820)
somewhat chaotic structure.
Lex Fridman (2:08:07.020)
It's not a unitary good.
Brendan Eich (2:08:08.600)
You can't say I'm buying privacy for $3,
Lex Fridman (2:08:11.780)
I'm paying $3 privacy.
Brendan Eich (2:08:12.740)
Some people think a VPN does this
Lex Fridman (2:08:14.300)
and are disappointed when it fails them.
Lex Fridman (2:08:15.980)
But often people use VPNs for region unlocking video
Lex Fridman (2:08:19.700)
or getting the US Netflix catalog.
Lex Fridman (2:08:22.860)
But privacy is not a unitary good, it's complex
Lex Fridman (2:08:25.380)
and people are understanding it only over time
Lex Fridman (2:08:28.060)
and as they get burned, but there's a genie
Lex Fridman (2:08:30.700)
that's not going back in the bottle there.
Brendan Eich (2:08:31.980)
People are fed up.
Lex Fridman (2:08:33.380)
Apple has responded to this.
Brendan Eich (2:08:34.700)
Apple was always making Safari, I think,
Lex Fridman (2:08:36.620)
more of a privacy branded browser from the very beginning.
Brendan Eich (2:08:40.340)
I think this was probably Steve Jobs.
Lex Fridman (2:08:42.300)
Safari had private windows, private tabs
Brendan Eich (2:08:45.260)
before Firefox did.
Lex Fridman (2:08:48.220)
And these are only private in the sense
Brendan Eich (2:08:50.060)
that they don't leave local traces,
Lex Fridman (2:08:53.020)
if you don't want them to.
Brendan Eich (2:08:53.980)
Turns out Safari does keep them around between shutdown.
Lex Fridman (2:08:57.180)
But the canonical model is no local traces
Brendan Eich (2:08:59.860)
after you close the private window.
Lex Fridman (2:09:01.780)
No leftover traces that you went to some site
Brendan Eich (2:09:04.900)
that you were embarrassed by
Lex Fridman (2:09:06.140)
or bought a gift for somebody you wanted to keep secret.
Lex Fridman (2:09:10.220)
But there's still some level of tracking.
Lex Fridman (2:09:11.780)
There's network tracking.
Brendan Eich (2:09:14.860)
Network privacy is not guaranteed at all
Lex Fridman (2:09:16.900)
because you're using the same internet and ISP
Brendan Eich (2:09:18.980)
as a public window, a non private window.
Lex Fridman (2:09:21.340)
But, Safari had that early on.
Brendan Eich (2:09:22.900)
They also had a cookie blocking policy
Lex Fridman (2:09:26.060)
that might take a little explaining.
Brendan Eich (2:09:27.860)
When you, if you know what a cookie is,
Lex Fridman (2:09:29.820)
it's a little bit of storage in the browser
Brendan Eich (2:09:31.300)
indexed by the name of the site.
Lex Fridman (2:09:33.420)
And it's really only the main name of the site,
Brendan Eich (2:09:35.060)
like bofa.com or, you know, something like npr.org.
Lex Fridman (2:09:43.700)
Every site can store some information in a cookie.
Brendan Eich (2:09:45.980)
Every time it's contacted by the browser,
Lex Fridman (2:09:48.620)
the previous version is sent back.
Lex Fridman (2:09:50.860)
And in the response from the server, the cookie's updated.
Lex Fridman (2:09:54.060)
So it's this little bit of storage in the browser
Brendan Eich (2:09:56.580)
that the site can keep updating
Lex Fridman (2:09:58.180)
and it can store an encrypted version
Brendan Eich (2:10:01.460)
of your login credentials with a timestamp
Lex Fridman (2:10:03.820)
so you can stay logged in
Brendan Eich (2:10:05.980)
without having to retype your password
Lex Fridman (2:10:07.700)
every time you navigate,
Brendan Eich (2:10:08.820)
which is how it would be if you didn't have cookies.
Lex Fridman (2:10:11.220)
The web protocols, especially in the 90s,
Brendan Eich (2:10:14.420)
are so called stateless protocols.
Lex Fridman (2:10:16.020)
So you go to your bank, you log in,
Brendan Eich (2:10:18.740)
you go from your login confirmed page
Lex Fridman (2:10:21.220)
to your account view.
Brendan Eich (2:10:22.460)
If you didn't have a cookie, you'd be logging in again.
Lex Fridman (2:10:24.980)
Every time you type in the source.
Lex Fridman (2:10:26.580)
So that was the great thing about cookies.
Lex Fridman (2:10:27.900)
Luhmann truly did it in a hurry in 1994
Brendan Eich (2:10:29.820)
before I joined Escape
Lex Fridman (2:10:30.860)
and he did it for really holding that kind of credential.
Lex Fridman (2:10:34.860)
But even then there was the image element
Lex Fridman (2:10:37.500)
embedded in the page
Lex Fridman (2:10:38.580)
and the image gets fetched possibly from a different server
Lex Fridman (2:10:41.980)
and that request carries the last cookie,
Brendan Eich (2:10:44.220)
which could be empty at first,
Lex Fridman (2:10:45.740)
and the response carries the updated cookie.
Lex Fridman (2:10:47.980)
So just by having images and cookies,
Lex Fridman (2:10:49.780)
you got tracking because that image server
Brendan Eich (2:10:51.420)
can be serving a little one by one pixel
Lex Fridman (2:10:54.220)
and they still use the word pixel in ad tech.
Lex Fridman (2:10:56.500)
And that pixel can be served from the same server,
Lex Fridman (2:10:59.380)
embedded differently with different URL spellings
Brendan Eich (2:11:02.140)
in the New York Times and ESPN.
Lex Fridman (2:11:03.740)
And as you go from one to the other,
Brendan Eich (2:11:05.860)
the image server can say,
Lex Fridman (2:11:06.980)
I haven't got a cookie for you.
Brendan Eich (2:11:08.180)
It's empty initially.
Lex Fridman (2:11:09.020)
I'm gonna assign you user number 1234.
Brendan Eich (2:11:11.260)
I'm gonna put a database entry in.
Lex Fridman (2:11:13.020)
And I see, by the way,
Brendan Eich (2:11:13.860)
I always fetch the name of the path part of the URL
Lex Fridman (2:11:15.980)
that I was in the New York Times.
Lex Fridman (2:11:17.460)
So you're a New York Times reader.
Lex Fridman (2:11:18.980)
And then you hit ESPN, same thing.
Lex Fridman (2:11:20.980)
And the database gets updated
Lex Fridman (2:11:22.260)
and the number user 1234 indexes in the database
Brendan Eich (2:11:25.580)
to a profile of you, you've been tracked.
Lex Fridman (2:11:28.140)
This was not intended.
Lex Fridman (2:11:29.420)
And it was too late to undo by the time I got the Netscape.
Lex Fridman (2:11:32.740)
I think Lou wanted to do Twinkies, he called them.
Lex Fridman (2:11:35.100)
And he was trying to solve several problems.
Lex Fridman (2:11:37.380)
He wanted them to be bigger
Brendan Eich (2:11:38.380)
because initially cookies had a short size limit.
Lex Fridman (2:11:40.540)
I think he wanted to solve the third party problem,
Lex Fridman (2:11:42.340)
but Tom Paquin, the engineering manager said,
Lex Fridman (2:11:45.100)
nope, no Twinkies, just cookies.
Brendan Eich (2:11:47.180)
We're done.
Lex Fridman (2:11:48.100)
You're done, son.
Lex Fridman (2:11:49.060)
And that's how a lot of that stuff was.
Lex Fridman (2:11:51.540)
That's how JavaScript got frozen
Brendan Eich (2:11:54.620)
like a flying Amber in some ways
Lex Fridman (2:11:55.860)
with that sloppy equality operator that I made
Brendan Eich (2:11:57.900)
because of the early adopters.
Lex Fridman (2:11:58.980)
And the cookie got stuck with this tracking hazard.
Lex Fridman (2:12:01.900)
And then because JavaScripts can be like images,
Lex Fridman (2:12:04.300)
they're embedded in the page.
Brendan Eich (2:12:05.940)
By the time Netscape 3, I made that work.
Lex Fridman (2:12:08.660)
You can get a request with the last cookie value
Lex Fridman (2:12:10.820)
and the response updates it.
Lex Fridman (2:12:11.940)
That's a tracking mechanism.
Lex Fridman (2:12:12.940)
And that's why you don't even need images to track.
Lex Fridman (2:12:14.940)
Now you just use scripts.
Lex Fridman (2:12:16.460)
So this whole tracking economy evolved
Lex Fridman (2:12:20.020)
and it depended on these accidents of the 90s,
Brendan Eich (2:12:23.860)
these unintended consequences.
Lex Fridman (2:12:25.300)
Well, it created some of the richest companies
Lex Fridman (2:12:27.200)
in the world, right?
Lex Fridman (2:12:28.040)
I mean, it's the social media.
Brendan Eich (2:12:28.860)
All I got was T shirts.
Lex Fridman (2:12:29.980)
All I got is this crappy T shirt.
Brendan Eich (2:12:33.180)
Yeah.
Lex Fridman (2:12:34.100)
I mean, so that's the fundamental problem
Brendan Eich (2:12:38.420)
the world is facing now.
Lex Fridman (2:12:39.500)
They're looking at what social media has created
Lex Fridman (2:12:42.020)
and they're looking at,
Lex Fridman (2:12:44.180)
and like a world is looking at itself in the mirror
Lex Fridman (2:12:47.020)
and seeing that privacy is actually something
Lex Fridman (2:12:50.980)
as opposed to like a nice thing to have.
Brendan Eich (2:12:53.540)
It's something that is actually should be fundamental
Lex Fridman (2:12:57.260)
to the way we interact with the world
Brendan Eich (2:12:59.220)
as part of our tooling.
Lex Fridman (2:13:00.600)
And that's where the Brave browser comes in.
Lex Fridman (2:13:03.540)
And I suppose others as well are playing with this idea,
Lex Fridman (2:13:06.060)
but Brave is at the forefront of that.
Lex Fridman (2:13:07.660)
So maybe can you like describe what Brave is
Lex Fridman (2:13:11.020)
and what are its key principles and what's broken
Lex Fridman (2:13:14.700)
and what is it Brave trying to fix?
Lex Fridman (2:13:16.140)
So when I realized that these accidents
Brendan Eich (2:13:18.380)
like the third party cookie,
Lex Fridman (2:13:19.900)
the image or script that's tracking you
Brendan Eich (2:13:21.840)
or the JavaScripts that can do an invisibly now,
Lex Fridman (2:13:26.020)
that all this stuff wasn't intended
Lex Fridman (2:13:28.700)
and that Firefox had supported extensions
Lex Fridman (2:13:31.660)
that block some of these things,
Brendan Eich (2:13:32.640)
I thought probably we should have browsers
Lex Fridman (2:13:34.740)
just block some of these things by default.
Brendan Eich (2:13:37.440)
These were not intended and they're now unsafe.
Lex Fridman (2:13:39.780)
They're tracking you.
Brendan Eich (2:13:40.620)
There could be data breaches, malware distribution,
Lex Fridman (2:13:44.940)
bullying and psyops and other attacks on people.
Brendan Eich (2:13:49.660)
Block that stuff, block that JavaScript.
Lex Fridman (2:13:51.500)
I'm Dr. Frankenstein, I've got to deal with a monster here.
Lex Fridman (2:13:54.700)
But obviously you go to Gmail,
Lex Fridman (2:13:56.540)
there's a bunch of script there
Brendan Eich (2:13:57.540)
to make that amazing web client.
Lex Fridman (2:13:59.320)
That's okay, that's first party JavaScript.
Lex Fridman (2:14:02.180)
So how do you tell the first from the third party?
Lex Fridman (2:14:04.020)
And it's not easy.
Brendan Eich (2:14:04.860)
It's not a matter of just what's embedded
Lex Fridman (2:14:06.700)
from a different server because a lot of publishers
Brendan Eich (2:14:09.860)
use benign scripts from unrelated domains
Lex Fridman (2:14:12.980)
or apparently unrelated domains.
Lex Fridman (2:14:14.360)
So you end up having to develop a sort of human
Lex Fridman (2:14:16.660)
and machine learning practice around blocking.
Lex Fridman (2:14:19.700)
And at Brave, we did that from the start
Lex Fridman (2:14:22.300)
and built a research team to help drive it and automate it.
Brendan Eich (2:14:25.740)
We realized that protecting people needed machine learning
Lex Fridman (2:14:28.900)
and around 2017 spring,
Brendan Eich (2:14:30.420)
I talked to my friends at Apple about this too
Lex Fridman (2:14:32.680)
and they were also doing
Lex Fridman (2:14:34.060)
what they call intelligent tracking prevention,
Lex Fridman (2:14:36.640)
which uses local machine learning in the browser.
Lex Fridman (2:14:39.320)
And the funny thing is, great minds think alike,
Lex Fridman (2:14:42.880)
they were taking their third party cookie blocker
Brendan Eich (2:14:44.780)
that was in Safari from the old days
Lex Fridman (2:14:46.460)
and making it not have a big loophole.
Brendan Eich (2:14:48.540)
Because what they did was in 2003, when Safari came out,
Lex Fridman (2:14:51.740)
they said, we're gonna block cookies
Brendan Eich (2:14:53.740)
that are from those third party embedded elements
Lex Fridman (2:14:57.220)
where you've never visited that site before.
Lex Fridman (2:14:59.120)
So I'm gonna pick an ad company that got sold to AT&T,
Lex Fridman (2:15:02.340)
so I'm not picking on anybody unfairly, appnexus.com.
Lex Fridman (2:15:05.140)
Have you ever been to appnexus.com?
Lex Fridman (2:15:06.660)
Nope.
Brendan Eich (2:15:07.500)
I've never been there, but I guarantee you 10 years ago,
Lex Fridman (2:15:09.020)
you probably had, if you were using Firefox,
Brendan Eich (2:15:11.180)
you had a cookie, third party cookie,
Lex Fridman (2:15:13.020)
because you were being tracked by them
Lex Fridman (2:15:14.980)
and they were using that cookie
Lex Fridman (2:15:15.920)
to build up a profile of you.
Brendan Eich (2:15:17.560)
In Safari, as long as the user never went to appnexus,
Lex Fridman (2:15:20.700)
that cookie would not be set.
Lex Fridman (2:15:22.380)
And that was a real move for privacy early on
Lex Fridman (2:15:25.460)
when jobs were still around in Safari.
Lex Fridman (2:15:27.660)
But it had this loophole that if you do go to appnexus,
Lex Fridman (2:15:30.620)
then why it's okay to be a third party cookie.
Lex Fridman (2:15:32.540)
And so appnexus did something very naughty.
Lex Fridman (2:15:35.180)
They took their ad partners
Brendan Eich (2:15:36.820)
to put the actual ad you click on.
Lex Fridman (2:15:39.000)
And they said, hey, add a little script
Lex Fridman (2:15:40.300)
so that when somebody clicks on the ad,
Lex Fridman (2:15:42.620)
before it goes to your landing page,
Brendan Eich (2:15:44.500)
redirect to appnexus and we'll redirect
Lex Fridman (2:15:46.340)
to the landing page.
Lex Fridman (2:15:47.180)
And by doing that, they set a first party cookie
Lex Fridman (2:15:49.140)
and they got whitelisted.
Lex Fridman (2:15:49.980)
So it was a loophole they exploited.
Lex Fridman (2:15:51.660)
Intelligent tracking prevention in Safari
Brendan Eich (2:15:53.580)
was sophisticated enough to counteract this
Lex Fridman (2:15:56.620)
and it did other things and it's evolved since they did it.
Lex Fridman (2:15:59.100)
And we've evolved brave too.
Lex Fridman (2:16:00.720)
And so when I say machine and human learning,
Brendan Eich (2:16:02.560)
there's a real set of techniques here.
Lex Fridman (2:16:05.580)
They have to fight.
Brendan Eich (2:16:06.420)
This is a fascinating problem.
Lex Fridman (2:16:07.580)
Fingerprinting, right?
Brendan Eich (2:16:08.400)
Anytime you have a little bit of storage in the browser
Lex Fridman (2:16:10.720)
associated with a website,
Brendan Eich (2:16:13.580)
if the bad guy can get 32 websites,
Lex Fridman (2:16:15.540)
each one has a bit of storage, that's 32 bits.
Brendan Eich (2:16:17.660)
You can turn the bit on or off,
Lex Fridman (2:16:19.820)
you can make 4 billion numbers,
Brendan Eich (2:16:21.280)
you can make an identifier.
Lex Fridman (2:16:22.260)
It's called a super cookie sometimes.
Brendan Eich (2:16:26.660)
There are weaker ways that are statistical.
Lex Fridman (2:16:28.880)
They're called fingerprinting.
Brendan Eich (2:16:29.780)
You have to block all of them
Lex Fridman (2:16:30.780)
and you have to not only automate,
Brendan Eich (2:16:32.840)
you want to work in the web standards body
Lex Fridman (2:16:34.940)
to put privacy in by default, by design,
Brendan Eich (2:16:38.480)
from the get go, not add it as an afterthought
Lex Fridman (2:16:40.500)
or go hogwile with new web APIs
Brendan Eich (2:16:43.180)
to add a bunch more local storage or fingerprint surface area.
Lex Fridman (2:16:47.500)
And that's been a struggle too,
Brendan Eich (2:16:48.660)
because guess who's the new Microsoft
Lex Fridman (2:16:50.940)
in the standards body?
Brendan Eich (2:16:51.780)
It's Google.
Lex Fridman (2:16:52.700)
And they're not in favor of privacy first.
Brendan Eich (2:16:55.900)
They want to do privacy their way,
Lex Fridman (2:16:58.740)
only under, I would say, market pressure.
Lex Fridman (2:17:01.180)
But with Apple and with Brave leading the way,
Lex Fridman (2:17:03.660)
we block third party cookies almost without exception.
Lex Fridman (2:17:06.280)
So we've just blocked them.
Lex Fridman (2:17:07.940)
And that gives us a very strong privacy benefit,
Lex Fridman (2:17:11.540)
but it also means some sites just don't work right.
Lex Fridman (2:17:13.740)
Embedded YouTube videos might not work right.
Lex Fridman (2:17:15.500)
So we're adapting in a similar way to Apple's done with ITP
Lex Fridman (2:17:19.620)
to make third party cookies blocked,
Lex Fridman (2:17:22.740)
but to sort of simulate what looks like
Lex Fridman (2:17:26.460)
a working third party cookie for the site.
Brendan Eich (2:17:28.860)
It essentially tries to partition each site
Lex Fridman (2:17:32.320)
and its third parties into its own sort of cookie jar.
Brendan Eich (2:17:34.860)
Got it.
Lex Fridman (2:17:35.700)
And so, like you said,
Brendan Eich (2:17:37.060)
is this both like a human fine tuning issue
Lex Fridman (2:17:41.100)
and a machine learning problem?
Lex Fridman (2:17:42.580)
And as the humans learn,
Lex Fridman (2:17:44.540)
then they train the machine learning.
Brendan Eich (2:17:46.380)
But, you know, maybe Google aside or including Google,
Lex Fridman (2:17:50.580)
there's millions of dollars, if not B,
Brendan Eich (2:17:53.220)
billions of dollars to be made
Lex Fridman (2:17:54.900)
from fighting the ways of Brave.
Brendan Eich (2:17:57.860)
That's right.
Lex Fridman (2:17:58.700)
And it's been an interesting change
Brendan Eich (2:18:00.660)
from when we started in 2015.
Lex Fridman (2:18:01.980)
When we started, you know, ad blocking extensions,
Brendan Eich (2:18:04.420)
ad block plus was one of the big ones
Lex Fridman (2:18:06.140)
that started on Firefox in 2006, I believe,
Brendan Eich (2:18:08.660)
had gotten to a certain level of use around the world.
Lex Fridman (2:18:11.020)
And browsers like UC Web, UC Browser in Asia
Brendan Eich (2:18:14.380)
had some amount of ad blocking built in and on by default.
Lex Fridman (2:18:17.300)
So, a page fair was a startup
Lex Fridman (2:18:20.500)
and they measured ad blocking adoption.
Lex Fridman (2:18:23.580)
And they tried to say,
Brendan Eich (2:18:24.420)
hey publishers, you're, you know,
Lex Fridman (2:18:26.580)
30% of the visitors to Pitchfork or Wire
Brendan Eich (2:18:30.200)
to Conda NAS properties are using ad blockers.
Lex Fridman (2:18:32.900)
If we can somehow convince them
Brendan Eich (2:18:34.380)
to lower their ad blocking for your site,
Lex Fridman (2:18:37.340)
that could be like a 43% lift, right?
Brendan Eich (2:18:39.300)
And, you know, three sevenths.
Lex Fridman (2:18:42.020)
Well, that's easier said than done.
Lex Fridman (2:18:44.260)
And PageFair and others, SourcePoint,
Lex Fridman (2:18:46.140)
and many others tried to either smuggle ads through
Brendan Eich (2:18:48.060)
or cajole the user into letting, you know, ads appear.
Lex Fridman (2:18:52.260)
And it didn't really work.
Lex Fridman (2:18:53.100)
And meanwhile, the ad blocking adoption
Lex Fridman (2:18:54.460)
has just continued intelligent tracking prevention
Brendan Eich (2:18:56.860)
in Safari in 2017, Brave from 2016 on
Lex Fridman (2:19:01.620)
with very strong cookie blocking and other protections.
Lex Fridman (2:19:04.460)
And this is not going away.
Lex Fridman (2:19:06.660)
The publishers used to rage against it.
Brendan Eich (2:19:08.500)
Like we would try to say, we can help you.
Lex Fridman (2:19:10.460)
You're dealing with users
Brendan Eich (2:19:11.960)
who are already blocking all your ads.
Lex Fridman (2:19:14.100)
We can try to put back some economics
Brendan Eich (2:19:16.800)
that help the user and you
Lex Fridman (2:19:18.460)
that led to the basic attention token
Brendan Eich (2:19:19.980)
that we started with Bitcoin.
Lex Fridman (2:19:21.460)
We can be your friend.
Brendan Eich (2:19:22.460)
Don't just fingerprint us as an ad blocker
Lex Fridman (2:19:24.980)
and treat us as an enemy.
Lex Fridman (2:19:26.480)
But in 2015 or 16, it was like,
Lex Fridman (2:19:28.620)
nah, you're an ad blocker.
Brendan Eich (2:19:29.540)
Get out of here.
Lex Fridman (2:19:30.380)
I hate you.
Lex Fridman (2:19:31.200)
And by 2017 or 18, it's like something's happening.
Lex Fridman (2:19:33.740)
The ad blocking is not stopping
Lex Fridman (2:19:34.940)
and we're all getting sort of pulled
Lex Fridman (2:19:37.020)
on the Google's plantation through AMP, AMP.
Brendan Eich (2:19:41.580)
Or we're getting killed by the Google ad system we use
Lex Fridman (2:19:44.580)
because it's taking all the revenue
Brendan Eich (2:19:46.620)
or it's permitting or some other vendors we use
Lex Fridman (2:19:49.140)
are permitting ad fraud.
Lex Fridman (2:19:50.140)
And so a fake New York Times is getting paid
Lex Fridman (2:19:52.640)
by the marketer running an ad that a bot clicks on.
Lex Fridman (2:19:57.140)
And the real New York Times
Lex Fridman (2:19:58.240)
that's supposed to get the ad doesn't get it.
Lex Fridman (2:20:00.500)
And there's something really broken
Lex Fridman (2:20:01.540)
about that kind of system.
Lex Fridman (2:20:02.460)
And that fraud is mediated through Google's ad exchange,
Lex Fridman (2:20:06.700)
which is the biggest of them all.
Lex Fridman (2:20:07.860)
And Google takes a fee.
Lex Fridman (2:20:09.660)
There's a flip side of that,
Brendan Eich (2:20:10.700)
which is malware distribution, malvertising,
Lex Fridman (2:20:12.660)
where fake advertisers put malware payloads
Brendan Eich (2:20:16.300)
in or exploit hit loaders in JavaScript
Lex Fridman (2:20:19.340)
and they smuggle them in ads onto real publisher pages,
Brendan Eich (2:20:22.460)
the ad exchange takes the fee.
Lex Fridman (2:20:24.460)
Now, I'm not a lawyer.
Brendan Eich (2:20:25.580)
I'm not gonna say this is a RICO predicate,
Lex Fridman (2:20:27.100)
but why is the ad exchange facilitating fraud
Lex Fridman (2:20:30.220)
and malware distribution and taking a fee?
Lex Fridman (2:20:32.060)
It's not right.
Brendan Eich (2:20:32.880)
As opposed to just fighting,
Lex Fridman (2:20:33.940)
this is the really interesting thing about Brave
Brendan Eich (2:20:35.660)
is as opposed to just fighting
Lex Fridman (2:20:37.700)
and then being treated like an ad blocker,
Brendan Eich (2:20:39.980)
you're providing an alternate.
Lex Fridman (2:20:42.060)
There's a philosophical idea here
Brendan Eich (2:20:45.460)
that might change the nature of the internet
Lex Fridman (2:20:47.500)
with the basic attention token.
Brendan Eich (2:20:49.220)
Yes.
Lex Fridman (2:20:50.060)
Well, maybe what is basic attention token BAT
Lex Fridman (2:20:54.060)
and how does it work?
Lex Fridman (2:20:55.300)
Okay, I'll tell the story first by saying how I came to it.
Brendan Eich (2:20:58.200)
I realized for a long time at Firefox,
Lex Fridman (2:21:00.820)
we were dependent on this Google search deal.
Lex Fridman (2:21:02.940)
And I thought, now that Chrome's out,
Lex Fridman (2:21:05.700)
maybe that's gonna go away.
Lex Fridman (2:21:07.260)
And they just, at some point, Google will say,
Lex Fridman (2:21:10.740)
Firefox, like old yeller, you saved me from the rabid beast,
Brendan Eich (2:21:14.620)
now I have to shoot you in the head.
Lex Fridman (2:21:16.360)
Done your job, sad but true, goodbye.
Lex Fridman (2:21:19.660)
And what could we do?
Lex Fridman (2:21:21.780)
And I think Mozilla doesn't know what to do.
Brendan Eich (2:21:24.140)
This is something that I couldn't solve there
Lex Fridman (2:21:25.900)
and I don't think they can solve.
Lex Fridman (2:21:27.220)
But I thought, why is the browser
Lex Fridman (2:21:29.460)
the sort of passive servant of these big tech companies?
Lex Fridman (2:21:32.300)
Why is it a blind runtime for ad tech JavaScripts,
Lex Fridman (2:21:36.420)
including from Google?
Lex Fridman (2:21:38.100)
Why doesn't it block some?
Lex Fridman (2:21:39.220)
And if it blocks some, why can't it reconnect users,
Lex Fridman (2:21:43.940)
readers, fans with publishers, creators, websites?
Lex Fridman (2:21:48.480)
Why can't it help people make direct payments
Brendan Eich (2:21:51.220)
or even possibly get an ad revenue share for private ads
Lex Fridman (2:21:54.900)
that are placed in the browser?
Brendan Eich (2:21:56.300)
The ads are all placed in the browser.
Lex Fridman (2:21:57.580)
Some people have this sort of model
Brendan Eich (2:21:58.840)
that the server's painting the ad into some,
Lex Fridman (2:22:01.620)
flash combined package or into some giant image
Lex Fridman (2:22:06.500)
and then it all gets sent down, that's not how it works.
Lex Fridman (2:22:08.600)
All the ads you see on the web are placed in your browser
Brendan Eich (2:22:11.340)
by it calling out to various ad tech partners
Lex Fridman (2:22:13.980)
and Google's among them.
Lex Fridman (2:22:15.620)
And so if you block those scripts,
Lex Fridman (2:22:17.580)
you break the advertising flow of money
Brendan Eich (2:22:22.420)
from the brands and their agencies to the publishers.
Lex Fridman (2:22:26.300)
And if you want to reconnect it directly with the user,
Brendan Eich (2:22:29.460)
you have limited choices.
Lex Fridman (2:22:30.420)
The user generally isn't gonna sign up
Brendan Eich (2:22:31.940)
with a ACH bank connection or a credit card.
Lex Fridman (2:22:34.980)
The publisher isn't gonna sign up the user
Brendan Eich (2:22:37.260)
except as a subscriber and then they're gonna overcharge you
Lex Fridman (2:22:39.980)
because they want you to cross subsidize all the content
Lex Fridman (2:22:42.060)
and buy more than you read and all that stuff.
Lex Fridman (2:22:43.660)
And how many, people are doing great who are big names
Brendan Eich (2:22:47.220)
like New York Times and The Washington Post,
Lex Fridman (2:22:48.740)
but how many subscriptions are you as a user gonna pay for?
Brendan Eich (2:22:51.820)
This is why startups like Tony Hale Scroll
Lex Fridman (2:22:54.420)
are trying to do a portable subscription system.
Brendan Eich (2:22:57.160)
By the way, just a small tangent there,
Lex Fridman (2:22:58.860)
even the New York Times is really annoying
Lex Fridman (2:23:00.860)
how difficult it is to subscribe.
Lex Fridman (2:23:03.300)
There's way too many clicks.
Brendan Eich (2:23:04.620)
They don't make it easy.
Lex Fridman (2:23:05.460)
And I had friends a few years ago,
Brendan Eich (2:23:06.300)
I think they fixed this, who would pay for the paper
Lex Fridman (2:23:08.340)
and then they'd go online and they get upcharged
Brendan Eich (2:23:11.140)
for the digital and there was no break.
Lex Fridman (2:23:13.140)
There was no connection between them.
Lex Fridman (2:23:15.380)
But publishers are not that technical
Lex Fridman (2:23:17.260)
and they can't all get you to subscribe.
Brendan Eich (2:23:19.580)
You can't have a thousand subscriptions.
Lex Fridman (2:23:21.300)
So for a long time, people talked about micropayments.
Brendan Eich (2:23:23.460)
There was Blendle and other ones which came to the US,
Lex Fridman (2:23:25.860)
but it didn't grow.
Lex Fridman (2:23:27.580)
And I thought, if you have just a browser
Lex Fridman (2:23:29.820)
and it's protecting you by blocking
Brendan Eich (2:23:31.200)
all this ad tech tracking junk,
Lex Fridman (2:23:33.820)
it can provide you an option that uses cryptocurrency
Brendan Eich (2:23:36.620)
to let you support your favorite sites
Lex Fridman (2:23:39.420)
and even YouTube channels.
Lex Fridman (2:23:40.580)
And that we prototyped with Bitcoin.
Lex Fridman (2:23:42.740)
And that meant the user had to be of means to contribute
Lex Fridman (2:23:45.940)
and willing to contribute,
Lex Fridman (2:23:47.480)
but it could be done on the Bitcoin blockchain
Lex Fridman (2:23:49.220)
and it could be fairly efficient
Lex Fridman (2:23:50.560)
even though Bitcoin went through a period
Brendan Eich (2:23:52.260)
when we had this prototype running in 2016 into 2017
Lex Fridman (2:23:55.740)
where Bitcoin was very congested and very slow to confirm
Lex Fridman (2:23:58.780)
and the fees got very high.
Lex Fridman (2:24:01.020)
And a lot of users who were not Bitcoin maximalists
Brendan Eich (2:24:03.540)
or even experienced,
Lex Fridman (2:24:04.940)
we helped them out by embedding a Coinbase buy widget
Lex Fridman (2:24:07.620)
and they had the income to buy, but it was hard.
Lex Fridman (2:24:10.180)
It was like, do I buy $5 a month?
Lex Fridman (2:24:12.420)
But the fee is like 450.
Lex Fridman (2:24:14.320)
I better buy in larger batches, right?
Lex Fridman (2:24:16.420)
And they're like, I don't wanna own that much Bitcoin.
Lex Fridman (2:24:18.540)
So it became this painful thing.
Lex Fridman (2:24:21.180)
And the real idea that I had of private ads
Lex Fridman (2:24:23.800)
that pay the user a rev share
Brendan Eich (2:24:25.940)
couldn't be realized alone in that kind of system.
Lex Fridman (2:24:30.580)
In these cryptocurrency systems,
Brendan Eich (2:24:33.060)
especially with the blockchain we switched to Ethereum,
Lex Fridman (2:24:35.180)
you can have smart contracts.
Brendan Eich (2:24:36.920)
The Bitcoin system is not turned complete.
Lex Fridman (2:24:38.980)
So what you can do with the scripts is more limited,
Lex Fridman (2:24:41.100)
but you can still do sort of clever things
Lex Fridman (2:24:44.500)
even with Bitcoin script.
Lex Fridman (2:24:46.140)
What we wanted to do was sort of a three sided ecosystem.
Lex Fridman (2:24:49.280)
We wanted users, creators or publishers and advertisers.
Lex Fridman (2:24:53.740)
And we wanted the advertisers to put money in
Lex Fridman (2:24:55.740)
just like they do today,
Lex Fridman (2:24:57.140)
but without going through the Googles and the app nexuses
Lex Fridman (2:25:00.380)
and all these other ad tech companies,
Brendan Eich (2:25:01.980)
because those companies take out a huge cut.
Lex Fridman (2:25:04.420)
The Guardian in the UK once did an experiment for a month.
Brendan Eich (2:25:06.940)
They bought out their own ad space.
Lex Fridman (2:25:08.820)
They put in a pound and they were paid 30 pence.
Brendan Eich (2:25:11.180)
70% was coming out to the intermediary vendors
Lex Fridman (2:25:15.200)
they were using.
Lex Fridman (2:25:17.020)
And that's like the opposite of what the app store does.
Lex Fridman (2:25:19.260)
The app store takes 30% and gives the publisher 70%.
Lex Fridman (2:25:22.220)
So pretty broken, in the old days of the superstation TBS,
Lex Fridman (2:25:26.180)
the media owner would get 85%.
Lex Fridman (2:25:29.900)
So these splits have become really unbalanced
Lex Fridman (2:25:33.460)
and the middle players, the ad tech vendors
Brendan Eich (2:25:35.720)
are taking out way too much money.
Lex Fridman (2:25:37.420)
And they're doing something worse, which has been noticed.
Brendan Eich (2:25:39.700)
They're letting not just the malware vendors,
Lex Fridman (2:25:44.060)
but also the ad fraud side, which fakes the publishers
Lex Fridman (2:25:47.220)
and clickbait merchants come in and steal traffic
Lex Fridman (2:25:52.120)
from good sites.
Brendan Eich (2:25:53.220)
Because once you have a certain audience identified
Lex Fridman (2:25:55.640)
at one site, Jason Calconas told me this
Brendan Eich (2:25:57.500)
about his experience with, I guess it was in Gadget,
Lex Fridman (2:25:59.900)
I forget which site he was running.
Lex Fridman (2:26:01.620)
But once he started using an ad partner
Lex Fridman (2:26:04.180)
that was sharing his audience information
Brendan Eich (2:26:06.200)
across multiple sites, he saw his competitors
Lex Fridman (2:26:08.420)
stealing all his traffic.
Lex Fridman (2:26:09.540)
And then what's worse is the clickbait sites
Lex Fridman (2:26:11.540)
that just have much cheaper rates steal all that traffic.
Lex Fridman (2:26:15.500)
And that facilitates fraud, facilitates fake news,
Lex Fridman (2:26:20.300)
all sorts of problems.
Lex Fridman (2:26:21.340)
So Gray blocks it and then we give users the ability
Lex Fridman (2:26:24.580)
to give back and because we invented
Brendan Eich (2:26:27.460)
the basic attention token on Ethereum,
Lex Fridman (2:26:28.940)
we can do this three way split.
Lex Fridman (2:26:31.020)
And we can give users a share of the revenue.
Lex Fridman (2:26:33.620)
And if they want to take it out, they can.
Brendan Eich (2:26:35.500)
Now, unfortunately for us and for all blockchain,
Lex Fridman (2:26:38.240)
the regulators are saying,
Brendan Eich (2:26:39.800)
we're gonna have to know who you are.
Lex Fridman (2:26:41.300)
There's the Treasury Department's FinCEN agency.
Brendan Eich (2:26:47.320)
There's the Office of Foreign Asset Controls, OFAC.
Lex Fridman (2:26:50.780)
There's the other regulators in the federal government
Brendan Eich (2:26:55.260)
that take a very dark look at things like money laundering
Lex Fridman (2:26:58.260)
and sending money to someone named Osama bin Laden.
Lex Fridman (2:27:01.260)
So compliance starts to come in.
Lex Fridman (2:27:03.540)
And even now they're threatening for pure Bitcoin
Brendan Eich (2:27:06.100)
sending to some address.
Lex Fridman (2:27:07.820)
If you're a Coinbase, you're gonna have to know
Brendan Eich (2:27:10.260)
who's at that address.
Lex Fridman (2:27:11.340)
You're gonna have to start.
Brendan Eich (2:27:12.180)
Like the actual identities of people involved.
Lex Fridman (2:27:13.580)
Yeah, now with Coinbase members,
Brendan Eich (2:27:14.900)
you sign up and they know you
Lex Fridman (2:27:15.900)
and they comply with the regulations.
Brendan Eich (2:27:16.980)
They're a regulated money services business.
Lex Fridman (2:27:20.220)
And, but if somebody's using their own self custody,
Lex Fridman (2:27:25.600)
so called self custodial wallet
Lex Fridman (2:27:27.240)
where they have the hardware private key
Lex Fridman (2:27:29.340)
and they're not named and they want to send to that address,
Lex Fridman (2:27:33.620)
our friends in the federal government are talking about
Brendan Eich (2:27:35.080)
requiring at some threshold and knowing who that is.
Lex Fridman (2:27:37.560)
So.
Brendan Eich (2:27:38.400)
Some threshold that's unreasonable.
Lex Fridman (2:27:40.460)
It's not that big.
Brendan Eich (2:27:42.220)
Yeah.
Lex Fridman (2:27:43.060)
Yeah, I don't know how this will play out.
Brendan Eich (2:27:43.880)
I think crypto is here to stay.
Lex Fridman (2:27:44.820)
I think the beauty of being able to send peer to peer
Brendan Eich (2:27:47.260)
without any bank in the middle,
Lex Fridman (2:27:48.500)
without any huge wire charge and two day delay
Lex Fridman (2:27:51.620)
and all that nonsense.
Lex Fridman (2:27:52.460)
It's beautiful and I've used it and I love it.
Lex Fridman (2:27:54.340)
But we're pragmatists are brave about crypto.
Lex Fridman (2:27:56.400)
And we realized that anything like a revenue split,
Brendan Eich (2:27:59.580)
we can't facilitate without being licensed in a certain way
Lex Fridman (2:28:02.180)
and it requires knowing who the user is.
Lex Fridman (2:28:03.880)
So our default mode doesn't know who the user is.
Lex Fridman (2:28:06.460)
It instead imputes to the user's browser,
Brendan Eich (2:28:09.540)
some of the revenue and allows that browser
Lex Fridman (2:28:11.820)
to steer it back to the creators.
Lex Fridman (2:28:14.940)
And we do have to identify the creators.
Lex Fridman (2:28:16.680)
But as things improve and who knows how it'll play out,
Brendan Eich (2:28:20.460)
there should become a day when this full vision
Lex Fridman (2:28:22.820)
can be done more fully on a blockchain.
Lex Fridman (2:28:25.740)
But regulations and the practicalities of today's blockchains,
Lex Fridman (2:28:29.260)
which are not that fast and not anonymous over time,
Brendan Eich (2:28:32.700)
you fingerprint yourself over time.
Lex Fridman (2:28:34.780)
We do some of this with the browser.
Lex Fridman (2:28:36.260)
So one of the ideas of the basic attention token
Lex Fridman (2:28:39.780)
is to make a hybrid system
Brendan Eich (2:28:41.880)
that's stronger than blockchain alone.
Lex Fridman (2:28:43.420)
It's the browser and the blockchain.
Lex Fridman (2:28:45.900)
And the browser is this trusted endpoint software.
Lex Fridman (2:28:48.420)
It's this universal app.
Brendan Eich (2:28:49.980)
Everyone uses browsers.
Lex Fridman (2:28:51.120)
The bigger the screen, the more you're in the browser
Lex Fridman (2:28:53.020)
and the less you install fat clients for things.
Lex Fridman (2:28:56.140)
I use Slack on Mac OS and it's like a browser.
Brendan Eich (2:29:00.140)
It's based on an electron framework we used to use.
Lex Fridman (2:29:02.140)
And it's just, it's not that great.
Brendan Eich (2:29:04.740)
Some of the people at Brave use Slack in Brave as a...
Lex Fridman (2:29:07.780)
In the browser, yeah.
Brendan Eich (2:29:08.620)
In the browser, yeah.
Lex Fridman (2:29:09.440)
I use that often, yeah.
Lex Fridman (2:29:10.340)
And I noticed on the iPad, I use apps less.
Lex Fridman (2:29:13.140)
The smaller the screen, the browser got handicapped
Brendan Eich (2:29:16.460)
by Apple and Android both.
Lex Fridman (2:29:17.960)
And it also can be slower or not have the right affordances,
Brendan Eich (2:29:22.700)
the interface with the security limited APIs.
Lex Fridman (2:29:26.780)
But in principle, with the right permissioning,
Brendan Eich (2:29:28.740)
you can make the web browser just as good as any app.
Lex Fridman (2:29:31.680)
You make it be a super app.
Lex Fridman (2:29:33.380)
And that's part of our mission at Brave.
Lex Fridman (2:29:35.120)
So we want to have the economics that got captured
Brendan Eich (2:29:37.820)
by these big tech companies through tracking
Lex Fridman (2:29:40.060)
and through social networks.
Brendan Eich (2:29:41.380)
We want to block that for your own safety
Lex Fridman (2:29:43.300)
and then let you opt into a cleaner world
Brendan Eich (2:29:45.480)
where you keep your data defended in your browser
Lex Fridman (2:29:47.980)
and you can actually realize value from it.
Lex Fridman (2:29:49.840)
So the way our ad system works,
Lex Fridman (2:29:51.300)
I mentioned it being private, but how does that work?
Brendan Eich (2:29:53.340)
We don't see your data at all.
Lex Fridman (2:29:54.980)
All browsers are sort of the mother of all data feeds,
Brendan Eich (2:29:57.740)
your history, all your searches at all engines.
Lex Fridman (2:30:00.700)
Each engine sees the queries you send to it,
Lex Fridman (2:30:02.560)
but it doesn't see the others,
Lex Fridman (2:30:03.500)
but the browser sees them all.
Brendan Eich (2:30:05.220)
Machine learning in the browser that you can opt into
Lex Fridman (2:30:07.540)
can study all that in a very complete way
Lex Fridman (2:30:10.140)
and do a better job than Google does.
Lex Fridman (2:30:11.980)
Google has cookie and scripts across the web
Brendan Eich (2:30:15.180)
from acquiring DoubleClick, they have YouTube,
Lex Fridman (2:30:17.860)
they have Android, they have search,
Brendan Eich (2:30:19.700)
which is still their big revenue lane,
Lex Fridman (2:30:21.580)
but they don't see everything.
Brendan Eich (2:30:22.620)
The browser sees everything.
Lex Fridman (2:30:23.780)
And if it can do a good job locally,
Lex Fridman (2:30:25.180)
and this is not advanced machine learning,
Lex Fridman (2:30:26.660)
this is not TensorFlow, this is like SVMs now,
Brendan Eich (2:30:29.620)
naive Bayes, then you can match intense signals,
Lex Fridman (2:30:35.020)
intense signals from those data feeds,
Brendan Eich (2:30:37.180)
searches, the queries, the history, how much you're
Lex Fridman (2:30:40.220)
scrolling down a page, how much you redid a search.
Brendan Eich (2:30:43.860)
It's all blind browser algorithm, we don't see that data.
Lex Fridman (2:30:47.020)
And then pick the best ad from a fixed catalog per day.
Lex Fridman (2:30:50.820)
And the catalog is fixed across a large population per day,
Lex Fridman (2:30:53.460)
and it only updates once a day,
Brendan Eich (2:30:55.100)
because new offers come in and old ones expire,
Lex Fridman (2:30:57.620)
sometimes every week or every month.
Lex Fridman (2:30:59.620)
And that catalog, and there can be many such catalogs,
Lex Fridman (2:31:02.740)
is sold by our direct sales team.
Lex Fridman (2:31:06.220)
And so we're making an anonymous audience available
Lex Fridman (2:31:09.420)
to advertisers without the advertisers tracking them.
Brendan Eich (2:31:12.020)
Instead, each browser is a little machine learning system
Lex Fridman (2:31:15.300)
that's picking the best catalog entry.
Lex Fridman (2:31:17.180)
Now, the catalog is not the ads, those are big, right?
Lex Fridman (2:31:19.340)
It's a video or a webpage, it's just the link
Brendan Eich (2:31:21.420)
to an edge cache, and there are many such edge caches.
Lex Fridman (2:31:23.820)
We're not trying to protect them from seeing
Brendan Eich (2:31:25.620)
your IP address, it's not really feasible.
Lex Fridman (2:31:27.780)
We could use Tor, but we don't yet.
Lex Fridman (2:31:30.260)
And then some keywords about the ad.
Lex Fridman (2:31:31.980)
So it's basically like metadata and a link.
Lex Fridman (2:31:34.900)
And that's what the catalog consists of,
Lex Fridman (2:31:36.340)
and that's what the machine learning picks.
Lex Fridman (2:31:37.460)
And the machine learning is learning
Lex Fridman (2:31:39.020)
about the use specifically locally
Brendan Eich (2:31:41.820)
in order to choose from the catalog of different ads.
Lex Fridman (2:31:44.180)
Couldn't this possibly be like a multi billion dollar,
Lex Fridman (2:31:47.780)
isn't this taken on the Google ad?
Lex Fridman (2:31:50.980)
Could be.
Lex Fridman (2:31:51.820)
So like what, I mean, one question to ask,
Lex Fridman (2:31:54.580)
there seems to be some really profound ideas here
Brendan Eich (2:31:57.380)
that are different than what the internet has grown up to be.
Lex Fridman (2:32:01.900)
If Brave or something like Brave,
Brendan Eich (2:32:05.340)
the ideas, the fundamental philosophical ideas
Lex Fridman (2:32:07.580)
underlying Brave went out and runs 95% of the internet,
Lex Fridman (2:32:13.100)
how does that change the, what are the major things
Lex Fridman (2:32:18.500)
these changes about the internet?
Lex Fridman (2:32:19.620)
So social networks and then the creatives,
Lex Fridman (2:32:21.620)
like YouTube creators and all that kind of stuff.
Lex Fridman (2:32:23.660)
So let's talk about that.
Lex Fridman (2:32:24.580)
First of all, if Brave gets 95%,
Brendan Eich (2:32:26.260)
I'm gonna demand a recount, because I won't believe it.
Lex Fridman (2:32:29.100)
I don't know, I think we're trying to put things
Brendan Eich (2:32:31.980)
into web standards that can be standardized across browsers.
Lex Fridman (2:32:34.980)
So the main value of Brave will be the trust users have in us
Lex Fridman (2:32:38.940)
and our ability to give the best deal to users.
Lex Fridman (2:32:41.340)
So 70% of the gross ad revenue we give to the user.
Lex Fridman (2:32:45.140)
And if they go through that KYC process I mentioned,
Lex Fridman (2:32:47.940)
they can take it out.
Brendan Eich (2:32:48.940)
They can also give it back, they can take some out,
Lex Fridman (2:32:50.620)
give the rest back.
Brendan Eich (2:32:51.460)
They can add basic attention tokens to give back.
Lex Fridman (2:32:54.660)
Some of them turn off the ads,
Brendan Eich (2:32:56.140)
cause they just don't like ads,
Lex Fridman (2:32:57.220)
but they put in $20 a month.
Lex Fridman (2:32:58.980)
But I believe Zuko of Zcashframe does that.
Lex Fridman (2:33:01.140)
And that's very generous,
Brendan Eich (2:33:02.060)
because the browser is just anonymously
Lex Fridman (2:33:04.100)
based on his browsing, sort of keeping score
Brendan Eich (2:33:06.260)
on how much time he spent on this video, on that website.
Lex Fridman (2:33:09.540)
And if those sites verify in sort of a,
Brendan Eich (2:33:13.260)
like getting a domain certificate fashion,
Lex Fridman (2:33:15.240)
they can get paid, they can get part of his $20 a month.
Lex Fridman (2:33:19.260)
So that vision could go big.
Lex Fridman (2:33:21.140)
And if it does, I hope it's across multiple browsers.
Brendan Eich (2:33:23.400)
I don't know that they'll all compete well
Lex Fridman (2:33:25.980)
on the quality of the ads, the quality of the ad blocking
Lex Fridman (2:33:29.020)
and tracking protection.
Lex Fridman (2:33:30.340)
Those are subject to competition.
Brendan Eich (2:33:31.860)
It'll take a while to standardize them.
Lex Fridman (2:33:33.380)
But I think that would be a better world.
Brendan Eich (2:33:35.380)
It would have less counterparty risk,
Lex Fridman (2:33:38.220)
fewer fee takers in the middle, really just the browser.
Brendan Eich (2:33:40.740)
We're taking 30%, sort of the app store split.
Lex Fridman (2:33:44.580)
And if we get bigger, maybe we can take even less.
Brendan Eich (2:33:47.420)
Social networks, creators.
Lex Fridman (2:33:49.540)
If you look at YouTubers, a lot of them are the indies
Brendan Eich (2:33:52.220)
that are getting some size are getting sponsorship deals.
Lex Fridman (2:33:56.700)
They're using Patreon.
Brendan Eich (2:33:58.840)
They're encouraging people to subscribe
Lex Fridman (2:34:01.420)
and give them regular money through Patreon.
Lex Fridman (2:34:04.300)
But that's centralized through Patreon.
Lex Fridman (2:34:06.080)
So there's censorship hazards, there's a 5% fee.
Lex Fridman (2:34:09.840)
What if that were a web standard?
Lex Fridman (2:34:10.960)
What if Brave pioneered it first and we took 3%?
Lex Fridman (2:34:14.500)
And we did it in a way that was through your browser
Lex Fridman (2:34:17.460)
so we couldn't censor it.
Brendan Eich (2:34:19.180)
That's brilliant.
Lex Fridman (2:34:20.220)
Do you think it could be standardized across browsers?
Brendan Eich (2:34:22.780)
Can Internet Explorer come in again and...
Lex Fridman (2:34:25.580)
Yeah, protocols are easy to copy
Brendan Eich (2:34:27.900)
in that they're meant to be interoperable.
Lex Fridman (2:34:29.500)
So there's a risk there.
Lex Fridman (2:34:31.100)
And the loyal users might be tricked into leaving you.
Lex Fridman (2:34:33.980)
Or they might, because of that distribution power,
Brendan Eich (2:34:36.180)
you might end up getting stomped.
Lex Fridman (2:34:38.260)
I don't know, I can't predict the future.
Brendan Eich (2:34:39.640)
I think antitrust is back on the case finally in the US.
Lex Fridman (2:34:42.300)
And certainly in Europe, G Comp is doing its thing.
Lex Fridman (2:34:45.420)
So I'm hopeful that we'll have a period of innovation.
Lex Fridman (2:34:48.820)
People were talking, like Elizabeth Warren was talking
Brendan Eich (2:34:50.620)
about breaking up the tech companies very clearly.
Lex Fridman (2:34:53.700)
Now she didn't win, and I suspect that won't happen,
Lex Fridman (2:34:56.460)
but I also suspect that Google might be smart enough
Lex Fridman (2:34:58.400)
to see they should do something more
Brendan Eich (2:35:01.040)
than just put privacy perfume on Chrome.
Lex Fridman (2:35:03.380)
They should maybe get rid of DoubleClick or something,
Brendan Eich (2:35:05.300)
divest something.
Lex Fridman (2:35:06.700)
I don't know, it might happen.
Lex Fridman (2:35:07.780)
So Brave might inspire Google to completely change
Lex Fridman (2:35:10.380)
the way they're doing things in the browser?
Brendan Eich (2:35:11.420)
They're already doing something,
Lex Fridman (2:35:12.780)
you may have read about called the Privacy Sandbox
Brendan Eich (2:35:15.460)
or Flock, which they have this bird metaphor going,
Lex Fridman (2:35:20.020)
Turtle Dove, Fledge.
Lex Fridman (2:35:22.780)
But these systems have been very Googley,
Lex Fridman (2:35:25.860)
kind of overengineered, and yet,
Brendan Eich (2:35:27.820)
depending on differential privacy,
Lex Fridman (2:35:29.260)
which has weakness over time, if you know how that works,
Brendan Eich (2:35:31.420)
it's kind of injecting noise to hide you in a crowd,
Lex Fridman (2:35:34.260)
but over time an adversary can pull you out of the crowd.
Brendan Eich (2:35:37.660)
This doesn't look like it's gonna become a standard.
Lex Fridman (2:35:39.380)
Like Apple, Brave, Mozilla, we're not gonna just say,
Brendan Eich (2:35:42.740)
oh, Google, you saved us.
Lex Fridman (2:35:44.700)
You've invented the Privacy Sandbox,
Lex Fridman (2:35:46.060)
so we'll all just adopt it.
Lex Fridman (2:35:47.660)
Not gonna be that easy.
Brendan Eich (2:35:48.580)
It's gonna be more like pieces of what we do in Brave,
Lex Fridman (2:35:51.540)
the synonymous ad matching or the blind signature
Brendan Eich (2:35:54.420)
cryptography we use to confirm the ad impressions.
Lex Fridman (2:35:57.020)
That's David Chow's invention.
Brendan Eich (2:35:59.260)
That could get standardized.
Lex Fridman (2:36:00.340)
In fact, some of that is being standardized.
Brendan Eich (2:36:02.220)
Even Google's in favor of so called trust tokens,
Lex Fridman (2:36:04.460)
which are Chowmian blind signature certs.
Lex Fridman (2:36:07.460)
But they're not using them for ad confirmations
Lex Fridman (2:36:09.300)
because they don't wanna blow up their own business.
Lex Fridman (2:36:11.460)
And they need to let some of the publishers they serve
Lex Fridman (2:36:14.740)
have other ad tech scripts on the page.
Lex Fridman (2:36:17.340)
And so they're kind of caught.
Lex Fridman (2:36:18.620)
And this is something I realized doing Brave.
Brendan Eich (2:36:19.860)
I thought, what's Google's innovators dilemma
Lex Fridman (2:36:22.900)
apart from just being mature and having trouble innovating?
Brendan Eich (2:36:26.300)
It's that they have come to depend on this ad tech system
Lex Fridman (2:36:30.620)
that has all these vendors that publishers rely on
Brendan Eich (2:36:34.980)
because publishers aren't technical enough.
Lex Fridman (2:36:36.380)
And I feel for the publishers,
Lex Fridman (2:36:37.980)
but I realized the users have to come first.
Lex Fridman (2:36:39.900)
And if you give the users a better browser that's faster,
Brendan Eich (2:36:43.700)
then you'll get enough users to give back
Lex Fridman (2:36:46.220)
or support publishers.
Brendan Eich (2:36:47.700)
The speed and the battery savings
Lex Fridman (2:36:49.420)
and the data plan savings are significant.
Brendan Eich (2:36:51.140)
There's so much bad JavaScript involved in ad tech
Lex Fridman (2:36:53.340)
that if you block it, you sort of chop off
Brendan Eich (2:36:55.740)
what's called the programmatic waterfall,
Lex Fridman (2:36:57.500)
which chains a bunch of requests.
Brendan Eich (2:36:59.140)
Yeah, that's one of the incredible things about Brave.
Lex Fridman (2:37:01.220)
I guess you're saying you should attribute it
Brendan Eich (2:37:03.220)
to the fact that the messy JavaScript, no offense.
Lex Fridman (2:37:06.620)
No offense.
Brendan Eich (2:37:07.460)
Not my solution.
Lex Fridman (2:37:08.300)
I mean, Brave just feels faster.
Brendan Eich (2:37:13.900)
Even then, I mean, Chrome was fast.
Lex Fridman (2:37:16.420)
One of the things that it was like impressive
Brendan Eich (2:37:18.420)
is it showed that browsers can be really fast
Lex Fridman (2:37:21.620)
and Brave is even faster than that, which is incredible.
Lex Fridman (2:37:24.260)
And it saves the network, which means data plan.
Lex Fridman (2:37:26.940)
It saves battery because the radio consumes your battery
Brendan Eich (2:37:29.420)
when it's running more to do those requests.
Lex Fridman (2:37:31.140)
And it's just stunning how many there are.
Brendan Eich (2:37:32.940)
Like some of my Google friends were like,
Lex Fridman (2:37:34.600)
oh, that's just that bad site.
Brendan Eich (2:37:35.860)
They'll fix it.
Lex Fridman (2:37:36.700)
And you actually do a survey of web pages
Brendan Eich (2:37:38.580)
that they're like mostly like that.
Lex Fridman (2:37:40.340)
I know Google engineers could make everything
Brendan Eich (2:37:42.460)
super efficient, but they can't,
Lex Fridman (2:37:44.300)
especially in antitrust court, do it.
Brendan Eich (2:37:45.780)
They cannot take over all the publishers and do that.
Lex Fridman (2:37:48.460)
They're trying with accelerated mobile profile, AMP.
Brendan Eich (2:37:51.780)
They're trying to pull publishers.
Lex Fridman (2:37:53.460)
They're like, oh, you poor publishers
Brendan Eich (2:37:54.620)
don't know how to make your pages fast.
Lex Fridman (2:37:56.900)
Put them on our AMP system.
Brendan Eich (2:37:58.180)
We'll give you extra placement in the search carousel.
Lex Fridman (2:38:00.660)
That's an antitrust problem for one.
Lex Fridman (2:38:02.420)
But it's also publishers we talk to hate it
Lex Fridman (2:38:04.340)
because it degrades their brand.
Brendan Eich (2:38:06.020)
Now they look like a gig writer wrote a piece
Lex Fridman (2:38:08.020)
that's got Google's framing an AMP URL on top of it.
Lex Fridman (2:38:12.140)
And they're trying to fix that too.
Lex Fridman (2:38:13.340)
But it just looks like Google's Borgifying
Brendan Eich (2:38:16.340)
all these publishers and they don't want to be plugged
Lex Fridman (2:38:18.160)
into the Borg cube.
Brendan Eich (2:38:19.020)
They want to build up their own brand and have loyal readers.
Lex Fridman (2:38:22.040)
So, you know, I'm in favor of giving the users power
Brendan Eich (2:38:25.580)
to help all the publishers and the little platoons
Lex Fridman (2:38:28.740)
and the creators.
Lex Fridman (2:38:29.580)
And so we talked about Patreon.
Lex Fridman (2:38:30.860)
What about social networks?
Brendan Eich (2:38:31.980)
Well, they're inherently like search, a global algorithm.
Lex Fridman (2:38:35.420)
You're trying to find friends of friends.
Brendan Eich (2:38:37.100)
You're doing the transitive closure of a graph
Lex Fridman (2:38:39.340)
induced by this friend of relation.
Lex Fridman (2:38:41.700)
But you should own your friend relation.
Lex Fridman (2:38:45.320)
You should own your posts.
Brendan Eich (2:38:46.980)
They shouldn't be owned by somebody else
Lex Fridman (2:38:48.660)
who can take them down or censor them.
Lex Fridman (2:38:51.060)
And your friend relations, you should be able
Lex Fridman (2:38:52.540)
to find those friends on other networks.
Lex Fridman (2:38:54.220)
And that's why I've tweeted about this.
Lex Fridman (2:38:55.420)
I haven't built it yet.
Lex Fridman (2:38:56.700)
What if the browser could keep track of those for you?
Lex Fridman (2:38:59.740)
What if the browser could maybe combine Facebook and Twitter
Lex Fridman (2:39:03.500)
and you could find your friends on both
Lex Fridman (2:39:05.300)
and you could have a sort of multi.
Lex Fridman (2:39:06.780)
So that relationship is not owned by Facebook or Twitter.
Lex Fridman (2:39:09.900)
It's owned by you through the browser.
Brendan Eich (2:39:12.020)
They'll have terms of use and they'll say they own it.
Lex Fridman (2:39:14.020)
But if they zap you on one and you're still on the other,
Brendan Eich (2:39:17.000)
your friends find you and the browser
Lex Fridman (2:39:18.500)
could preserve a combined view.
Brendan Eich (2:39:20.820)
You could resurrect almost across networks.
Lex Fridman (2:39:23.800)
It's something I wanna maybe quickly ask you about.
Brendan Eich (2:39:26.600)
On that front, there's been quite a lot of centralized,
Lex Fridman (2:39:31.340)
we talked about Wall Street Bets and then Robinhood.
Brendan Eich (2:39:35.260)
There's been centralized banning of different accounts
Lex Fridman (2:39:39.300)
and removing like Parler, for example, from AWS
Lex Fridman (2:39:42.620)
and this kind of overreach of centralized control.
Lex Fridman (2:39:46.740)
Is your hope that it's possible to,
Lex Fridman (2:39:49.360)
like what are your thoughts about that in general?
Lex Fridman (2:39:51.300)
And then is it possible to create tools
Brendan Eich (2:39:54.480)
that give individual people the power
Lex Fridman (2:39:56.700)
to fight back against overreach of such control?
Lex Fridman (2:40:00.060)
So we're talking about oligarchy, I do think.
Lex Fridman (2:40:02.660)
And if it controls a nation state, that's formidable.
Brendan Eich (2:40:05.260)
It's the tax and the police power, the military power.
Lex Fridman (2:40:08.220)
It means that you may have the great firewall of China.
Brendan Eich (2:40:10.860)
You may have people in China who are jailed
Lex Fridman (2:40:13.380)
because of their tweets, right?
Brendan Eich (2:40:14.880)
This is a serious threat.
Lex Fridman (2:40:15.740)
I can't minimize it or say that we'll win.
Brendan Eich (2:40:18.240)
I don't know how it's gonna go.
Lex Fridman (2:40:19.980)
But I do think, like I said earlier
Brendan Eich (2:40:21.660)
about the kind of reason people find ways around things.
Lex Fridman (2:40:24.000)
The internet routes around censorship.
Lex Fridman (2:40:25.820)
And this is not to endorse any particular bad faction.
Lex Fridman (2:40:28.820)
One of the things that happens
Brendan Eich (2:40:29.900)
when you try to wave the free speech flag too much,
Lex Fridman (2:40:33.020)
you say, I'm not gonna censor anything
Lex Fridman (2:40:34.620)
and you get colonized by terrible, terrible people.
Lex Fridman (2:40:37.900)
I don't care if you call them neo Nazis,
Brendan Eich (2:40:39.820)
some of them could be doing illegal things.
Lex Fridman (2:40:41.840)
And you don't want them colonizing
Brendan Eich (2:40:44.020)
because it'll ruin your reputation
Lex Fridman (2:40:45.220)
and destroy your business.
Lex Fridman (2:40:46.380)
So what you really want is that kind of
Lex Fridman (2:40:48.740)
user first subsidiarity, that subjectivity.
Brendan Eich (2:40:51.580)
I want my social networks to be composited
Lex Fridman (2:40:55.320)
in some multi social user interface
Brendan Eich (2:40:57.100)
where I don't lose track of people across networks.
Lex Fridman (2:40:59.420)
And if they leave one or they get banned from one,
Brendan Eich (2:41:01.620)
I can find them on another,
Lex Fridman (2:41:02.520)
I can still sort of thread them together.
Brendan Eich (2:41:04.360)
That's brilliant.
Lex Fridman (2:41:05.200)
And this didn't happen because browsers
Brendan Eich (2:41:07.740)
got captured by the central powers.
Lex Fridman (2:41:10.060)
Why did they get captured?
Brendan Eich (2:41:10.900)
Mostly because of search.
Lex Fridman (2:41:11.900)
And search is a central algorithm.
Lex Fridman (2:41:13.740)
So Larry Page said this too many years ago.
Lex Fridman (2:41:15.620)
He said, with search, you're giving up a little privacy
Brendan Eich (2:41:17.960)
by handing the query over to us.
Lex Fridman (2:41:19.820)
And we'll error correct it.
Brendan Eich (2:41:21.460)
Alan used to be a Google executive.
Lex Fridman (2:41:24.340)
He said, oh yeah, we used to laugh.
Brendan Eich (2:41:25.600)
They'd all be doing typos and they'd be typing
Lex Fridman (2:41:27.480)
the wrong word.
Lex Fridman (2:41:28.320)
And we'd be like, no dummy, type that query.
Lex Fridman (2:41:29.760)
And it's like, okay Google,
Brendan Eich (2:41:31.340)
might want to dial back that ego a little bit.
Lex Fridman (2:41:33.060)
But yes, you do see all the queries
Lex Fridman (2:41:35.260)
and you can improve them and you can find the best results.
Lex Fridman (2:41:37.340)
And that was Google's forte.
Brendan Eich (2:41:38.900)
When we did the Firefox deal in 2004,
Lex Fridman (2:41:40.580)
Google was really good.
Lex Fridman (2:41:42.380)
And over time, SEO, which is an adversarial game,
Lex Fridman (2:41:46.260)
and Google itself buying all these companies
Lex Fridman (2:41:48.580)
and crowding its own results page
Lex Fridman (2:41:50.100)
with its own tied in stuff.
Brendan Eich (2:41:53.160)
The YouTube.
Lex Fridman (2:41:54.000)
It's a slippery slope that happens
Brendan Eich (2:41:55.260)
when you have control over these kinds
Lex Fridman (2:41:58.380)
of really important mechanisms.
Brendan Eich (2:42:00.020)
Yeah, monopoly capitalism or cartel.
Lex Fridman (2:42:02.140)
You get this with the Robin Hoods and the hedge funds.
Brendan Eich (2:42:05.300)
You get sort of the money interests take over
Lex Fridman (2:42:07.940)
and kind of abuse their power and wear out their welcome.
Lex Fridman (2:42:10.100)
So how do you get around that?
Lex Fridman (2:42:11.940)
You have to have either new land to go to,
Brendan Eich (2:42:15.380)
which some people's ancestors, not mine,
Lex Fridman (2:42:18.220)
did to found the country.
Brendan Eich (2:42:20.820)
I'm mostly Irish, German.
Lex Fridman (2:42:22.780)
You have new virtual space people go to
Lex Fridman (2:42:26.020)
and that requires an ISP or a colo center
Lex Fridman (2:42:30.300)
or Amazon to host you.
Brendan Eich (2:42:32.060)
It requires domain name registrar who will not strike you.
Lex Fridman (2:42:35.980)
And so when Parler was taken down,
Brendan Eich (2:42:39.580)
I thought that was egregious.
Lex Fridman (2:42:40.860)
Parler, it was not well designed
Lex Fridman (2:42:42.980)
and I tried it out because I tried all these things,
Lex Fridman (2:42:45.900)
but I didn't use it.
Lex Fridman (2:42:46.740)
And I also felt they were being unfairly scored
Lex Fridman (2:42:49.380)
for not moderating because you can find tweets to this day
Brendan Eich (2:42:51.780)
that are horrendous and threaten all sorts of violence.
Lex Fridman (2:42:54.640)
Whereas Twitter, why isn't Twitter being taken down?
Lex Fridman (2:42:56.700)
But so it was very selective.
Lex Fridman (2:42:57.640)
It was the insiders who have the power
Brendan Eich (2:42:59.900)
are gonna take out the newcomer.
Lex Fridman (2:43:01.660)
And it looked bad, sort of like the hedge funds,
Brendan Eich (2:43:05.380)
shorting GameStop, looked bad.
Lex Fridman (2:43:08.060)
You're seeing a piece in Time Magazine this week
Brendan Eich (2:43:10.060)
that's like basically saying,
Lex Fridman (2:43:11.340)
yeah, we interfere with the election,
Lex Fridman (2:43:12.660)
but it was great, aren't we good?
Lex Fridman (2:43:14.580)
I don't know if you've seen this piece yet.
Brendan Eich (2:43:16.620)
If you tried to say that as a Trump supporter
Lex Fridman (2:43:18.980)
in November after the election,
Brendan Eich (2:43:21.500)
you'd get banned from Twitter.
Lex Fridman (2:43:22.900)
But now Time in its Twitter account is saying,
Brendan Eich (2:43:25.980)
we saved the day, it's AFL, CIO and big business,
Lex Fridman (2:43:30.260)
the Better Business Bureau got together
Lex Fridman (2:43:32.060)
and kept Trump from spreading fake news.
Lex Fridman (2:43:34.980)
So the country's kind of broken.
Brendan Eich (2:43:36.860)
I don't know how to fix that.
Lex Fridman (2:43:37.820)
The oligarchs have run wild in my opinion.
Lex Fridman (2:43:40.180)
And big tech is in the antitrust dock.
Lex Fridman (2:43:42.780)
What's gonna happen?
Brendan Eich (2:43:43.740)
I don't think they get out.
Lex Fridman (2:43:44.780)
I think some of the DOJ and certainly the state cases,
Brendan Eich (2:43:47.900)
because they're separate cases,
Lex Fridman (2:43:49.060)
are not gonna go away just
Brendan Eich (2:43:50.100)
because somebody got elected differently.
Lex Fridman (2:43:52.420)
And these are career prosecutors
Lex Fridman (2:43:53.900)
and they have a strong case.
Lex Fridman (2:43:55.940)
And Google's smart.
Lex Fridman (2:43:56.780)
And Microsoft almost got split up, right?
Lex Fridman (2:43:59.620)
The judge, Thomas Penfield Jackson, he overreached.
Brendan Eich (2:44:02.780)
He didn't hold a hearing about the remedy.
Lex Fridman (2:44:05.020)
He just said, I'm gonna break you up.
Lex Fridman (2:44:06.820)
And Microsoft appealed and the higher level court said,
Lex Fridman (2:44:10.580)
go back and figure this out.
Brendan Eich (2:44:11.660)
You're not breaking them up.
Lex Fridman (2:44:12.480)
You didn't even hold a hearing.
Lex Fridman (2:44:13.700)
And when they got back, Microsoft said,
Lex Fridman (2:44:15.460)
let's settle, let's settle, we don't wanna get broken up.
Brendan Eich (2:44:17.660)
Because Jackson was gonna make the Opsco,
Lex Fridman (2:44:20.500)
the operating system company,
Lex Fridman (2:44:21.620)
and the Appsco office, you know, Word and Excel.
Lex Fridman (2:44:24.780)
And that would have been a huge blow to Microsoft, so.
Lex Fridman (2:44:28.500)
But ultimately, I don't know if you're optimistic
Lex Fridman (2:44:31.140)
or cynical about the possibility of breaking up big tech.
Brendan Eich (2:44:34.540)
To me, I'm optimistic that tools like Brave,
Lex Fridman (2:44:40.060)
I love the idea of owning your friendships.
Brendan Eich (2:44:42.100)
Like users more and more owning the stuff
Lex Fridman (2:44:44.660)
is the only real way.
Brendan Eich (2:44:46.460)
Unfortunately, it's like the WallStreetBets subreddit
Lex Fridman (2:44:48.540)
is the only real way to fight decentralized power.
Brendan Eich (2:44:51.100)
You can't break them up with the regulation.
Lex Fridman (2:44:52.700)
It's very difficult.
Brendan Eich (2:44:53.540)
Certainly don't wanna wait for the law.
Lex Fridman (2:44:55.220)
Netscape was long dead or acquired by AOL
Lex Fridman (2:44:57.660)
and effectively dead.
Lex Fridman (2:44:58.500)
It was only Mozilla that returned Firefox to the market
Brendan Eich (2:45:01.980)
by the time that the US v. Microsoft case
Lex Fridman (2:45:04.140)
was finally settled and the penalties were put in place.
Lex Fridman (2:45:07.180)
And yet, antitrust has a role to play.
Lex Fridman (2:45:11.020)
Those penalties caused Microsoft
Brendan Eich (2:45:12.660)
to kind of turn away from the web.
Lex Fridman (2:45:14.220)
They did Windows Vista and they thought,
Brendan Eich (2:45:16.060)
the web's too painful.
Lex Fridman (2:45:16.900)
We got punished in court and we had to standardize things
Brendan Eich (2:45:19.700)
with those icky standards people.
Lex Fridman (2:45:21.220)
So they ran back to proprietary lock in
Lex Fridman (2:45:23.460)
and Windows Vista flopped.
Lex Fridman (2:45:24.660)
It was late, it was bloated.
Lex Fridman (2:45:26.620)
Longhorn, remember?
Lex Fridman (2:45:27.700)
Now, what I was gonna say, but Google's smart enough,
Brendan Eich (2:45:30.340)
they won't get split up.
Lex Fridman (2:45:31.620)
They'll split something out to get off the hook, I think.
Brendan Eich (2:45:35.780)
This is a complicated subject, but I myself was so,
Lex Fridman (2:45:39.660)
I decided to journey out from the world
Brendan Eich (2:45:43.220)
of being a researcher at MIT
Lex Fridman (2:45:45.260)
and potentially doing a startup myself.
Lex Fridman (2:45:48.340)
And I've been thinking of, you know,
Lex Fridman (2:45:51.420)
I wanted to come to Silicon Valley to do so.
Brendan Eich (2:45:53.660)
It's the land of the entrepreneur.
Lex Fridman (2:45:55.780)
And there's a lot of my friends,
Brendan Eich (2:45:57.980)
a lot of them are successfully,
Lex Fridman (2:45:59.580)
have been entrepreneurs themselves,
Brendan Eich (2:46:01.380)
have said, do not come to Silicon Valley.
Lex Fridman (2:46:04.540)
It'd be, you've started, you ran amazing teams of engineers.
Brendan Eich (2:46:09.100)
You started a lot of successful businesses.
Lex Fridman (2:46:12.100)
I wondered if you could comment on why a lot of people
Brendan Eich (2:46:15.860)
are leaving California.
Lex Fridman (2:46:17.180)
Is there something that could be fixed about California?
Brendan Eich (2:46:19.780)
If you were starting a business today,
Lex Fridman (2:46:22.700)
would you consider somewhere else,
Lex Fridman (2:46:24.780)
like Austin or some other place?
Lex Fridman (2:46:27.300)
Or is Silicon Valley still, is it just a little lull,
Brendan Eich (2:46:30.660)
everybody's being overdramatic during this particular year
Lex Fridman (2:46:34.100)
of the coronavirus and so on?
Brendan Eich (2:46:35.820)
I think, you know, even Austin's getting overheated, I hear.
Lex Fridman (2:46:39.220)
And I've had relatives and friends move to Texas
Brendan Eich (2:46:42.420)
within the last few months.
Lex Fridman (2:46:43.260)
So Texas as a whole is a big place.
Brendan Eich (2:46:45.860)
And, you know, people are moving to Florida.
Lex Fridman (2:46:48.460)
There's a big movement toward Miami,
Brendan Eich (2:46:50.700)
Peter Thielke, these people.
Lex Fridman (2:46:53.260)
The mayor has been very business friendly about it,
Brendan Eich (2:46:56.260)
which I think is just good politics.
Lex Fridman (2:46:58.460)
America is fundamentally a commercial republic.
Lex Fridman (2:47:00.660)
So you would think this would be what's happening.
Lex Fridman (2:47:02.540)
For a long time, California was the golden state.
Brendan Eich (2:47:04.420)
I came here in late 76 when I was a teenager.
Lex Fridman (2:47:06.820)
So it's in crushing debt due to the lockdowns.
Brendan Eich (2:47:11.380)
It's got the highest taxes.
Lex Fridman (2:47:13.460)
That's got to matter.
Brendan Eich (2:47:14.500)
People will do high taxes.
Lex Fridman (2:47:17.640)
It's got likely fires every year because of the deadfall.
Brendan Eich (2:47:21.580)
It's not global warming.
Lex Fridman (2:47:22.780)
It's because the forests weren't managed
Brendan Eich (2:47:24.220)
like they had been in the first part of the 20th century.
Lex Fridman (2:47:28.140)
Just, I would say corruption at all levels,
Brendan Eich (2:47:31.100)
especially up to the governor,
Lex Fridman (2:47:32.260)
who famously was eating at the French Laundry
Lex Fridman (2:47:34.460)
and claimed that the outside was inside.
Lex Fridman (2:47:36.740)
And they wore masks off and it was great.
Brendan Eich (2:47:39.540)
Do what I say, not what I do.
Lex Fridman (2:47:42.300)
Rules for thee, but not for me.
Brendan Eich (2:47:45.380)
When you see that in leadership,
Lex Fridman (2:47:47.580)
people either run or they get rid of the leadership.
Lex Fridman (2:47:50.400)
So there's a recall drive,
Lex Fridman (2:47:51.420)
which is about to reach the threshold.
Lex Fridman (2:47:53.500)
Or in the old days, they get their guns, right?
Lex Fridman (2:47:56.140)
You don't put up with this junk.
Lex Fridman (2:47:57.580)
But ultimately, the thing that made Silicon Valley
Lex Fridman (2:48:00.700)
a special place, it gave freedom to young kids,
Brendan Eich (2:48:04.600)
entrepreneurs, young minds, brave minds
Lex Fridman (2:48:08.100)
to think bold, to try different stuff.
Brendan Eich (2:48:10.820)
I mean, even if the taxes are high,
Lex Fridman (2:48:12.940)
so outside of financial stuff, outside of all of that.
Brendan Eich (2:48:15.540)
Housing's super expensive.
Lex Fridman (2:48:16.980)
Housing's super.
Lex Fridman (2:48:17.820)
So it's hard.
Lex Fridman (2:48:18.820)
Okay, everything about startups is hard.
Lex Fridman (2:48:19.660)
Peninsula was narrow and they didn't plan the roads, right?
Lex Fridman (2:48:22.820)
Yeah.
Brendan Eich (2:48:23.660)
They got rid of public transportation in LA,
Lex Fridman (2:48:26.020)
like the Who Framed Roger Rabbit cartoon show.
Brendan Eich (2:48:28.260)
They used to have trolley cars in Portland too.
Lex Fridman (2:48:30.860)
The oil companies and the DOD conspired to build highways
Lex Fridman (2:48:34.300)
and make cars dominant.
Lex Fridman (2:48:35.660)
And the rights of way are long gone.
Brendan Eich (2:48:37.420)
Like Elon's gonna go underground.
Lex Fridman (2:48:39.740)
And I wish him well.
Brendan Eich (2:48:40.740)
That's probably the only way to do it now.
Lex Fridman (2:48:42.780)
But is it still a place,
Lex Fridman (2:48:44.820)
do you think it's possible that Silicon Valley
Lex Fridman (2:48:46.500)
is still a place where magic happens?
Lex Fridman (2:48:48.180)
Where the next Google's built?
Lex Fridman (2:48:49.500)
Where the next, I mean, Brave is built where?
Brendan Eich (2:48:53.580)
I think all good things come to an end.
Lex Fridman (2:48:54.900)
I think the problem is Silicon Valley
Brendan Eich (2:48:56.660)
had strong network effects through Stanford,
Lex Fridman (2:48:58.820)
through the angel investor networks and the wealth effect.
Lex Fridman (2:49:02.300)
And originally you have to give the federal government credit
Lex Fridman (2:49:05.220)
like the ARPANET was a government project.
Brendan Eich (2:49:07.300)
Let's not kid ourselves.
Lex Fridman (2:49:08.140)
This wasn't wild free market, libertarian capitalism.
Brendan Eich (2:49:11.180)
This was all Cold War stuff.
Lex Fridman (2:49:14.020)
You had out of the academia, you had Shockley
Lex Fridman (2:49:17.060)
and then the Traders Aid and Fairchild and Intel.
Lex Fridman (2:49:21.060)
But now, when's the last fab that was built in the Valley?
Brendan Eich (2:49:25.040)
MicroUnity might've been the last, I don't know.
Lex Fridman (2:49:26.880)
I haven't followed.
Brendan Eich (2:49:27.720)
We built a fab in Sunnyvale and MicroUnity
Lex Fridman (2:49:31.340)
in starting early 90s.
Lex Fridman (2:49:33.300)
And now the fabs are overseas.
Lex Fridman (2:49:36.600)
And the one thing that I would say
Brendan Eich (2:49:38.820)
that the oligarchs have intentionally done
Lex Fridman (2:49:40.640)
in both parties is sort of labor
Lex Fridman (2:49:44.220)
and environmental protection law arbitrage
Lex Fridman (2:49:46.180)
by going where the labor is cheaper
Lex Fridman (2:49:47.580)
and the environmental laws aren't as strict.
Lex Fridman (2:49:49.460)
And that's polluted the hell out of parts of China,
Lex Fridman (2:49:52.020)
but it's made things, you can make cheaper junk.
Lex Fridman (2:49:54.940)
And this is not a story that's over yet.
Lex Fridman (2:49:58.900)
So what is Silicon Valley for now?
Lex Fridman (2:50:00.740)
It's for the network effect, the brain trust
Brendan Eich (2:50:03.300)
of who you know, the parties, the Stanford sort of network.
Lex Fridman (2:50:09.500)
That's fragile too over time, I'm afraid.
Brendan Eich (2:50:11.860)
Stanford, a lot of good professors are like,
Lex Fridman (2:50:16.100)
they still filter mainly based on socioeconomic status,
Lex Fridman (2:50:19.900)
but it's kind of a skate school.
Lex Fridman (2:50:22.180)
I had a friend hired out of Harvard 20 years ago at Netscape
Lex Fridman (2:50:26.980)
and we talked about Harvard and he said,
Lex Fridman (2:50:28.860)
yeah, there's still professors who do great on the curve.
Lex Fridman (2:50:30.700)
And I said, oh yeah, I don't think they're any doing that
Lex Fridman (2:50:32.340)
at Stanford anymore.
Lex Fridman (2:50:33.180)
And he said, yo, it was shocking.
Lex Fridman (2:50:35.100)
Some of the students got Cs and Ds and they were crying.
Brendan Eich (2:50:37.700)
It's like, yes, that's right, the precious deers
Lex Fridman (2:50:39.620)
can't take that at Stanford, so they get As and Bs.
Brendan Eich (2:50:42.420)
Now you look at China and people say what you all about China,
Lex Fridman (2:50:46.260)
they prove Russia too, a lot of math science training,
Brendan Eich (2:50:49.700)
a lot of engineering, a lot of people who are doing
Lex Fridman (2:50:52.540)
their coursework to get the As and the Bs.
Lex Fridman (2:50:55.220)
So I'm an American, I'm born on the 4th of July.
Lex Fridman (2:50:59.940)
American, yeah.
Brendan Eich (2:51:00.780)
4th of July, wow.
Lex Fridman (2:51:02.100)
And America, as I say, fundamentally
Brendan Eich (2:51:03.940)
is a commercial republic.
Lex Fridman (2:51:04.860)
You can try to make it something else.
Brendan Eich (2:51:06.340)
You can say it's the new Atlantis and mystify it.
Lex Fridman (2:51:09.020)
You could talk about it in a more, I think, correct way,
Brendan Eich (2:51:11.260)
which is 13 colonies that grew and then there's a lot
Lex Fridman (2:51:13.780)
of local or original design anyway,
Brendan Eich (2:51:16.740)
the federalist papers talk about this,
Lex Fridman (2:51:18.820)
there's a lot of subsidiarity,
Lex Fridman (2:51:20.660)
but that's been eroded over time.
Lex Fridman (2:51:23.940)
And like I say, a lot of the offshoring is hurt.
Lex Fridman (2:51:26.660)
So what happened with coronavirus?
Lex Fridman (2:51:28.860)
People working from home, and at first it was funny
Brendan Eich (2:51:30.940)
because I have friends at Google who used to grumble
Lex Fridman (2:51:33.540)
that not only did they have to come into the office,
Brendan Eich (2:51:35.420)
if they joined a different team that was centered
Lex Fridman (2:51:37.340)
in a different office, they had to move.
Brendan Eich (2:51:39.100)
Or if the VA team was reconstituted in Munich,
Lex Fridman (2:51:43.060)
which it was after Lars Bock just got tired of JavaScript,
Brendan Eich (2:51:46.700)
that they hired in Munich or they hired PhDs
Lex Fridman (2:51:48.780)
in Germany and moved them to Munich.
Brendan Eich (2:51:50.780)
With coronavirus, everyone's working from home
Lex Fridman (2:51:52.300)
and it's like, what a relief, I can work for Google
Brendan Eich (2:51:53.940)
from home.
Lex Fridman (2:51:54.820)
But then the next shoe dropped and people started asking
Brendan Eich (2:51:57.220)
Mark Zuckerberg, hey, can I move to my hometown
Lex Fridman (2:52:00.460)
in the Midwest?
Lex Fridman (2:52:01.580)
And he said, okay.
Lex Fridman (2:52:02.420)
And they said, oh, can I keep getting my Silicon Valley pay?
Brendan Eich (2:52:05.100)
No.
Lex Fridman (2:52:06.660)
We're gonna figure out what your cost of living there is
Lex Fridman (2:52:08.500)
and we're gonna adjust your pay accordingly.
Lex Fridman (2:52:10.300)
And these colonies and these little mini experiments
Brendan Eich (2:52:13.020)
that all combine to the big giant experiment,
Lex Fridman (2:52:15.140)
I have a, I don't know, I have this vision of America,
Brendan Eich (2:52:20.060)
which the country, I was born in Russia, like I said here,
Lex Fridman (2:52:22.180)
and this is truly a wonderful country.
Brendan Eich (2:52:24.980)
I wasn't born on the 4th of July, but I might as well be.
Lex Fridman (2:52:27.500)
People still flee here.
Brendan Eich (2:52:28.340)
I still, and I'm a red blooded American at this point.
Lex Fridman (2:52:31.740)
And I have a sense that we figured it out somehow.
Brendan Eich (2:52:35.420)
If Silicon Valley burns, another place will come up
Lex Fridman (2:52:37.940)
in this place that even more innovation and people will move
Lex Fridman (2:52:42.020)
and the remote work might change fundamentally how we work
Lex Fridman (2:52:46.460)
or it might not.
Brendan Eich (2:52:47.300)
It might just give you the freedom to then create
Lex Fridman (2:52:49.540)
many other small Silicon Valleys throughout the place,
Brendan Eich (2:52:52.220)
like Austin included, but other places as well.
Lex Fridman (2:52:54.940)
And we somehow figured it out and...
Brendan Eich (2:52:58.540)
I think that's true that there will be more mobility
Lex Fridman (2:53:01.660)
and maybe new places that come up.
Brendan Eich (2:53:03.460)
I don't know if Silicon Valley has passed some sell by date
Lex Fridman (2:53:07.940)
because it did hurt.
Brendan Eich (2:53:10.820)
The coronavirus hurt, the lockdowns hurt in the sense
Lex Fridman (2:53:13.420)
that part of what keeps things going is social.
Lex Fridman (2:53:15.860)
And so a lot of young people, even before coronavirus,
Lex Fridman (2:53:18.300)
moved to San Francisco.
Brendan Eich (2:53:19.660)
It was very strange to watch because in the 80s,
Lex Fridman (2:53:21.660)
we all lived in the Valley and it was less populated
Lex Fridman (2:53:24.860)
and San Francisco was grungier.
Lex Fridman (2:53:26.060)
It was more like Dirty Harry in the 70s.
Lex Fridman (2:53:28.620)
But by the 90s, and Jamie runs a nightclub there
Lex Fridman (2:53:31.660)
and he's talked about this, you had sort of wealthy
Brendan Eich (2:53:33.780)
tech people moving in south of market,
Lex Fridman (2:53:36.100)
fancy townhouses being built.
Lex Fridman (2:53:37.780)
And that's continued in such a point that it's almost like,
Lex Fridman (2:53:41.020)
what's the movie by the South African director Nils Jody
Lex Fridman (2:53:43.540)
Foster up in the space colony?
Lex Fridman (2:53:46.020)
Matt Damon is the guy on the earth who has to go
Brendan Eich (2:53:48.180)
up and anyway, it's about the stratification.
Lex Fridman (2:53:50.540)
It's about the great inequality that people
Brendan Eich (2:53:52.060)
in the space station have like amazing medical auto docs
Lex Fridman (2:53:55.540)
that can extend their life or save them cure cancer.
Brendan Eich (2:53:57.940)
People on earth are all suffering ground down in poverty.
Lex Fridman (2:54:02.820)
And that sort of happened while I was here.
Brendan Eich (2:54:06.260)
You saw a lot of money drive prices up
Lex Fridman (2:54:10.660)
along the narrow peninsula and the single people
Brendan Eich (2:54:12.540)
wanted nightlife so they were in the city
Lex Fridman (2:54:14.540)
and the condos in the city got super expensive.
Lex Fridman (2:54:16.700)
And I know even Google friends who are socially responsible
Lex Fridman (2:54:20.660)
say we should have more housing built.
Brendan Eich (2:54:22.820)
We should have yes in my backyard, not in my backyard.
Lex Fridman (2:54:25.860)
But that's not happening as far as I can tell.
Lex Fridman (2:54:28.460)
And from the government to the incumbent landowners
Lex Fridman (2:54:32.540)
and renters, it's just not happening.
Lex Fridman (2:54:34.500)
And that has to drive people away.
Lex Fridman (2:54:37.500)
I appreciate that people come here and you should wait
Brendan Eich (2:54:40.500)
for the prices to moderate, they will.
Lex Fridman (2:54:42.620)
But a lot of people are gonna go where the prices are lower.
Brendan Eich (2:54:47.360)
You, and sorry for silly questions here,
Lex Fridman (2:54:50.340)
but just looking back, you have created things,
Brendan Eich (2:54:54.380)
have been part of creating things
Lex Fridman (2:54:56.540)
that have transformed this world, the world of technology,
Brendan Eich (2:55:00.740)
perhaps more than almost anything else.
Lex Fridman (2:55:04.820)
But you're still a human being
Lex Fridman (2:55:07.580)
and unfortunately this ride ends.
Lex Fridman (2:55:10.900)
Do you ever think about your own mortality?
Brendan Eich (2:55:13.780)
Not too much, I mean, I'm a Roman Catholic
Lex Fridman (2:55:17.460)
so I am not afraid of death.
Brendan Eich (2:55:19.220)
I think a lot of people who have problems with death
Lex Fridman (2:55:25.140)
are suffering from some lack of either faith
Brendan Eich (2:55:30.700)
in their transcending death or maybe they don't have
Lex Fridman (2:55:33.380)
children or they feel like they get later in life
Lex Fridman (2:55:37.260)
and they feel like they've missed opportunities
Lex Fridman (2:55:39.220)
to do something that endures.
Lex Fridman (2:55:40.620)
And I sympathize with a lot because I'm old,
Lex Fridman (2:55:43.540)
I got married fairly old, so I understand all that.
Brendan Eich (2:55:46.440)
Nothing human is alien to me as Terrence said.
Lex Fridman (2:55:50.820)
But I don't fear it, no.
Lex Fridman (2:55:54.100)
What do you hope your legacy is?
Lex Fridman (2:55:56.300)
Yeah, it's gonna be JavaScript.
Brendan Eich (2:55:57.740)
I think, no, I think my legacy has more to do
Lex Fridman (2:56:01.100)
with my children and their children.
Brendan Eich (2:56:03.540)
I think it also has to do with web standards,
Lex Fridman (2:56:06.460)
it has to do with things like Brave,
Brendan Eich (2:56:08.340)
the things we did with Firefox.
Lex Fridman (2:56:10.060)
When we did, I'm not gonna oversell Brave
Lex Fridman (2:56:13.100)
but I think Brave is important and we'll continue
Lex Fridman (2:56:15.140)
to prove this in a way that counts
Brendan Eich (2:56:16.780)
for many decades to come.
Lex Fridman (2:56:18.120)
But even Firefox, whatever its future fortune,
Brendan Eich (2:56:21.420)
showed you can restart the browser market.
Lex Fridman (2:56:23.300)
This thing you said about people opting out
Lex Fridman (2:56:26.180)
and routing around, you don't need everybody to do that.
Lex Fridman (2:56:28.600)
It's more like Taleb's stubborn minorities that do that.
Brendan Eich (2:56:31.220)
It's the lead users, Erfron Hipple's lead users.
Lex Fridman (2:56:33.640)
You can be a few percent, you can tilt the market.
Lex Fridman (2:56:36.100)
And that can be done in spite of the incumbents,
Lex Fridman (2:56:39.380)
of moneyed interests not being in favor of what you're doing.
Lex Fridman (2:56:41.540)
So I think what we do with Firefox won't be forgotten
Lex Fridman (2:56:45.260)
and it needs to be done more and we're doing it with Brave.
Lex Fridman (2:56:47.140)
And you could argue that other projects are doing it.
Lex Fridman (2:56:48.780)
In some ways, blockchain is doing it.
Brendan Eich (2:56:50.780)
The Robinhood, take down the use of Robinhood
Lex Fridman (2:56:56.100)
by the Wall Street Bets kids, similar.
Lex Fridman (2:56:59.100)
So yeah, that kind of spirit endures.
Lex Fridman (2:57:01.300)
And I think it, in some ways it's American, right?
Brendan Eich (2:57:04.180)
It's not hard revolutionary.
Lex Fridman (2:57:06.540)
It's not trying to burn the past and destroy everything.
Brendan Eich (2:57:08.780)
It's more like we have these certain, let's say rights.
Lex Fridman (2:57:15.140)
We have duties too.
Lex Fridman (2:57:16.180)
So there's some debate about which comes first
Lex Fridman (2:57:17.780)
in American jurisprudence and the founding documents.
Lex Fridman (2:57:20.360)
But as long as things are working,
Lex Fridman (2:57:23.020)
we'll be like pragmatic Americans,
Brendan Eich (2:57:25.900)
like de Tocqueville described in his writings.
Lex Fridman (2:57:29.300)
But if things get too out of whack for one reason or another,
Brendan Eich (2:57:32.620)
too unequal, too oligarchic and abusive,
Lex Fridman (2:57:35.540)
we're gonna start our rights.
Lex Fridman (2:57:37.060)
And even a few of us can do it.
Lex Fridman (2:57:38.860)
And even in the American Revolution,
Brendan Eich (2:57:40.460)
it was the minority who fought and put their lives,
Lex Fridman (2:57:44.100)
treasure and sacred honor at stake.
Brendan Eich (2:57:45.620)
It was a bunch of people went to upper Canada,
Lex Fridman (2:57:48.860)
I think it was called, Ontario.
Brendan Eich (2:57:51.140)
Yeah, that's the beautiful, I mean,
Lex Fridman (2:57:52.860)
that is at the core where your work stands for
Brendan Eich (2:57:55.100)
is that a few people can have the power
Lex Fridman (2:57:58.180)
to transform society with just a few radical ideas,
Brendan Eich (2:58:01.580)
with just a little bit of code, change the world.
Lex Fridman (2:58:04.580)
Gotta do it.
Lex Fridman (2:58:05.420)
And that's empowering.
Lex Fridman (2:58:06.240)
That is the American way.
Brendan Eich (2:58:07.220)
That's why this country is, I believe,
Lex Fridman (2:58:09.380)
the greatest country on Earth.
Brendan Eich (2:58:10.460)
That's not over, or Matt says it too much,
Lex Fridman (2:58:13.040)
but I think some special things
Brendan Eich (2:58:15.900)
have already happened in this country
Lex Fridman (2:58:17.580)
and will continue to happen.
Lex Fridman (2:58:18.800)
And that's really exciting.
Lex Fridman (2:58:19.640)
And that spirit can continue no matter who comes here.
Brendan Eich (2:58:22.520)
They can adopt those folkways and that spirit.
Lex Fridman (2:58:25.520)
Brandon, I can't tell you how much,
Brendan Eich (2:58:27.580)
I was freaking out how much of an honor it is
Lex Fridman (2:58:29.540)
to talk to you.
Brendan Eich (2:58:30.380)
You're an incredible human being.
Lex Fridman (2:58:31.420)
It's one of my favorite conversations ever.
Brendan Eich (2:58:33.580)
Thank you so much for wasting all this time with me.
Lex Fridman (2:58:35.660)
I really appreciate it.
Brendan Eich (2:58:36.580)
Oh, it seems like a breeze.
Lex Fridman (2:58:38.060)
My pleasure.
Brendan Eich (2:58:39.740)
Thank you for listening to this conversation
Lex Fridman (2:58:41.380)
with Brandon and Ike.
Lex Fridman (2:58:42.580)
And thank you to our sponsors,
Lex Fridman (2:58:44.440)
Jordan Harbert's Show, Sun Basket Meal Delivery Service,
Brendan Eich (2:58:48.460)
BetterHelp Online Therapy,
Lex Fridman (2:58:50.260)
and Eight Sleep Self Cooling Mattress.
Brendan Eich (2:58:52.820)
Click the sponsor links to get a discount
Lex Fridman (2:58:54.860)
and to support this podcast.
Lex Fridman (2:58:57.060)
And now, let me leave you with some words from Jeff Atwood.
Lex Fridman (2:59:00.720)
Any app that can be written in JavaScript
Brendan Eich (2:59:03.700)
will eventually be written in JavaScript.
Lex Fridman (2:59:06.980)
Thank you for listening and hope to see you next time.
Brendan Eich (30:03.200)
the early, what became the CSS box model.
Lex Fridman (30:06.080)
And run scripts to make the thing livelier,
Brendan Eich (30:09.600)
respond to user input.
Lex Fridman (30:11.160)
And all that event driven programming
Brendan Eich (30:14.240)
was in part like HyperCard
Lex Fridman (30:16.080)
because HyperCard had this on event name syntax.
Lex Fridman (30:19.440)
And so that's why you have in JavaScript on click
Lex Fridman (30:21.680)
run together as the name of the event handler.
Lex Fridman (30:24.120)
And there's some funny ones on mouse over
Lex Fridman (30:26.060)
and on mouse out, people still complain about those.
Lex Fridman (30:28.200)
But there were many more events now over the years
Lex Fridman (30:31.060)
standardized, but it was a mix of event driven
Brendan Eich (30:33.980)
single threaded programming because it had to run
Lex Fridman (30:36.240)
in the main thread of the browser where the action is
Lex Fridman (30:38.960)
and Java never got there.
Lex Fridman (30:40.680)
Which meant Java could not interact easily
Brendan Eich (30:42.640)
or quickly or in a nested way with the document,
Lex Fridman (30:46.720)
with the objects reflected from the HTML document,
Brendan Eich (30:49.200)
with the tables and forms and so on.
Lex Fridman (30:50.960)
And that is one of the reasons I think JavaScript
Brendan Eich (30:53.960)
survived and Java kind of died.
Lex Fridman (30:55.320)
Java was in this plugin prison.
Brendan Eich (30:56.960)
It essentially was confined to a rectangle,
Lex Fridman (30:58.760)
the applet rectangle.
Lex Fridman (30:59.960)
And while we even built next year,
Lex Fridman (31:02.720)
Nick Thompson, a friend from SGI
Brendan Eich (31:04.840)
who was an intern grad student at CMU at the time,
Lex Fridman (31:08.640)
built the first version of Live Connect
Brendan Eich (31:10.280)
to glue Java and JavaScript together
Lex Fridman (31:12.640)
to deliver on that vision where you do have commerce
Brendan Eich (31:14.680)
between the data types in the heap.
Lex Fridman (31:18.040)
Did it work?
Brendan Eich (31:18.880)
It worked, but Java was in charge.
Lex Fridman (31:21.280)
JavaScript was in charge and Java was just these components,
Brendan Eich (31:23.640)
these helper objects.
Lex Fridman (31:24.480)
You might as well do everything in JavaScript.
Lex Fridman (31:25.920)
What happened over time, it's like an evolutionary filter.
Lex Fridman (31:27.960)
It just kind of, who needs the plugin?
Lex Fridman (31:29.600)
And in fact, Sun mismanaged Java as a plugin.
Lex Fridman (31:33.000)
They thought, oh, Netscape is giving us
Brendan Eich (31:35.520)
the distribution vehicle and we don't care about the browser.
Lex Fridman (31:38.400)
It's just about getting Java out there.
Lex Fridman (31:39.680)
And that was a big miscalculation.
Lex Fridman (31:41.220)
They then tried, because Microsoft's killing Netscape
Brendan Eich (31:43.840)
after years, they tried getting into Microsoft.
Lex Fridman (31:46.120)
And you may remember there was a Sun Microsoft deal
Brendan Eich (31:48.520)
which famously blew up.
Lex Fridman (31:50.640)
And Microsoft kicked Java out of Windows.
Lex Fridman (31:54.800)
And that's when they really pulled the trigger.
Lex Fridman (31:56.400)
I think they'd already evaluated it and liked it
Brendan Eich (31:58.120)
on Anders Helzberg's.NET and C Sharp
Lex Fridman (32:01.740)
and decided we're gonna just not have Java.
Brendan Eich (32:04.160)
We don't want any of that Sun stuff.
Lex Fridman (32:06.440)
We don't want the patent risk.
Brendan Eich (32:07.560)
We don't want, I'm not sure what all fights were about.
Lex Fridman (32:10.080)
There was some patent angle to it, I think.
Lex Fridman (32:12.040)
And up till then, Microsoft had been using Java components
Lex Fridman (32:16.920)
like in Outlook Web Access,
Brendan Eich (32:19.240)
which had a lot of JavaScript to be a webmail
Lex Fridman (32:21.480)
like Hotmail, like user interface.
Brendan Eich (32:23.120)
They had to call the mail server through HTTP
Lex Fridman (32:27.760)
and they used a Java object to do this.
Lex Fridman (32:31.360)
And when they gave the boot to Sun,
Lex Fridman (32:34.280)
suddenly the left hand gave the boot
Lex Fridman (32:37.240)
and the right hand said, we better do something else
Lex Fridman (32:39.160)
in Outlook Web Access.
Lex Fridman (32:40.080)
What are we gonna do?
Lex Fridman (32:40.920)
And they said, let's just add an ActiveX component,
Brendan Eich (32:43.640)
which is their own native way of embedding things
Lex Fridman (32:46.300)
in languages and it'll be what became XML HTTP request,
Brendan Eich (32:51.960)
which is now a web standard for calling asynchronously.
Lex Fridman (32:54.760)
And it's been replaced by the fetch API
Brendan Eich (32:57.040)
in HTML5 or HTML living document.
Lex Fridman (32:59.480)
But this whole lineage goes back to Java
Brendan Eich (33:02.400)
being successfully the loser and getting kicked out.
Lex Fridman (33:05.100)
And after Microsoft kicked it out, it was a plugin
Lex Fridman (33:07.680)
and you would find it required for like smart card banking
Lex Fridman (33:11.040)
in the Nordic countries where that was mandated by law,
Lex Fridman (33:14.700)
but really didn't get used much.
Lex Fridman (33:16.360)
Or there were pilots who used it for flight information,
Lex Fridman (33:21.560)
but Flash, which Netscape could have bought,
Lex Fridman (33:24.160)
but fortunately didn't.
Brendan Eich (33:25.560)
The early days.
Lex Fridman (33:26.400)
Yeah, we would have screwed it up.
Lex Fridman (33:28.080)
What year are we talking about with Flash?
Lex Fridman (33:29.520)
I think after the IPO, so it was probably late 95.
Brendan Eich (33:32.160)
Oh, Flash was around.
Lex Fridman (33:33.320)
Was it Adobe?
Brendan Eich (33:34.160)
No, it wasn't.
Lex Fridman (33:34.980)
No, it was called Future Splash
Lex Fridman (33:36.360)
and it was these brothers, Jonathan Gay,
Lex Fridman (33:38.720)
I think his name was, and he came knocking
Lex Fridman (33:41.720)
and the marketing guy at Netscape,
Lex Fridman (33:43.520)
who was screening the technology partners
Brendan Eich (33:45.840)
or wannabe acquisitions was brutal
Lex Fridman (33:47.800)
and just everybody wanted to get in on the Netscape,
Brendan Eich (33:50.320)
stock gravy train and he sent them packing
Lex Fridman (33:52.480)
and they ended up selling to Macromedia
Lex Fridman (33:55.120)
and Macromedia was where Flash was created.
Lex Fridman (33:57.320)
And the good thing about Macromedia was
Brendan Eich (33:58.960)
it was a tool company.
Lex Fridman (34:02.000)
So it invested in the best ideas, I think,
Brendan Eich (34:05.800)
which are still somewhat lost to us of Flash,
Lex Fridman (34:08.120)
the timeline, animation has sort of been a mutable function
Brendan Eich (34:12.500)
over time.
Lex Fridman (34:13.800)
They had the tooling around that too,
Brendan Eich (34:14.920)
like they had Dreamweaver, there's a Flash.
Lex Fridman (34:17.240)
Flash Director, there were a bunch of them.
Brendan Eich (34:18.840)
Yeah, I mean, yeah, that was a great.
Lex Fridman (34:20.840)
Flash Builder was one of the last ones.
Brendan Eich (34:22.800)
These tools were used by real artists
Lex Fridman (34:25.420)
and special effects people and designers.
Brendan Eich (34:27.440)
All the restaurant websites around 2005
Lex Fridman (34:29.760)
were done in Flash, which was,
Brendan Eich (34:32.280)
we were trying to do HTML5 at the same time.
Lex Fridman (34:34.080)
That was the Firefox era.
Brendan Eich (34:35.080)
We were trying to make the web capable enough
Lex Fridman (34:37.640)
you didn't need Flash, but if you recall,
Brendan Eich (34:39.400)
you go to a restaurant and it's like,
Lex Fridman (34:41.080)
this is kind of like a game or something.
Brendan Eich (34:42.400)
It's like a Flash, all the font looks small.
Lex Fridman (34:44.600)
So you didn't like Flash from the beginning.
Brendan Eich (34:45.880)
You're like, this doesn't feel right.
Lex Fridman (34:47.640)
Not really.
Brendan Eich (34:48.480)
I actually admire Flash's technology
Lex Fridman (34:50.000)
and I'm pretty pragmatic about these things.
Lex Fridman (34:51.700)
And I realized that it doesn't matter
Lex Fridman (34:54.840)
if your Delta bad hand like JavaScript was a rush job,
Brendan Eich (34:58.280)
or if you have Flash as a plugin
Lex Fridman (35:00.240)
and you can invest in the tools and make it pretty good.
Brendan Eich (35:03.620)
You should make it better for your users
Lex Fridman (35:05.720)
and grow it as best you can.
Lex Fridman (35:07.000)
And what happened with the browser
Lex Fridman (35:08.800)
due to Microsoft's monopoly abuse
Brendan Eich (35:11.040)
for which they were convicted.
Lex Fridman (35:12.600)
And even after that, until I think Firefox and then Chrome
Brendan Eich (35:17.440)
was people kept saying, oh, the web can't do X, can't do Y.
Lex Fridman (35:21.240)
We'll have to have a plugin.
Brendan Eich (35:22.240)
We'll have to have a new approach.
Lex Fridman (35:23.680)
We'll clean the slate and have a new web.
Lex Fridman (35:26.860)
And everyone who said that failed.
Lex Fridman (35:28.960)
And the reason they failed is because
Brendan Eich (35:30.180)
there's too much value in the web, this huge network.
Lex Fridman (35:34.080)
And the worse is better principle means
Brendan Eich (35:36.040)
that you can not only start bad, which they all sneer at,
Lex Fridman (35:39.460)
but get on first and get wide distribution,
Brendan Eich (35:41.920)
get sort of evolutionary advantage in priority of place,
Lex Fridman (35:47.080)
but you can also improve it over time.
Lex Fridman (35:49.320)
And so if you're gonna improve Flash,
Lex Fridman (35:51.080)
and for some reason Flash is now out of favor.
Brendan Eich (35:53.000)
Steve Jobs said you can't have Flash on the iPhone.
Lex Fridman (35:55.000)
That was probably the death knell.
Brendan Eich (35:56.740)
Put your energy into JavaScript.
Lex Fridman (35:58.100)
And that happened, right?
Lex Fridman (35:58.940)
So we did things at Mozilla with Adobe to improve,
Lex Fridman (36:02.400)
which bought my Macromedia, to improve Flash
Lex Fridman (36:04.860)
and to improve the version of JavaScript that was in Flash.
Lex Fridman (36:07.560)
We tried to standardize that.
Brendan Eich (36:09.000)
Oh, that's right.
Lex Fridman (36:09.840)
I'm getting ahead of myself with it.
Brendan Eich (36:10.660)
It was ES4.
Lex Fridman (36:11.500)
Yeah.
Brendan Eich (36:12.340)
That's right, that's right.
Lex Fridman (36:13.180)
Can we just rewind to the magical, like, you know.
Brendan Eich (36:17.000)
It's a special moment in the history of all of computing.
Lex Fridman (36:20.160)
We'll talk about it later, but it's arguable.
Brendan Eich (36:22.840)
It's possible that the entirety of the world
Lex Fridman (36:25.280)
will run in JavaScript at some point.
Lex Fridman (36:27.280)
So like, it's like those days,
Lex Fridman (36:30.040)
it would be interesting if you could just describe,
Brendan Eich (36:33.320)
actually zooming in on how the cake was baked
Lex Fridman (36:38.320)
from the several days that you were working on it.
Lex Fridman (36:41.580)
What was on your mind?
Lex Fridman (36:43.320)
How much coffee were you drinking?
Lex Fridman (36:45.380)
Were you nervous?
Lex Fridman (36:46.220)
Why, freaking out?
Brendan Eich (36:47.360)
I'll try to remember it.
Lex Fridman (36:48.360)
I mean, you're right.
Brendan Eich (36:49.200)
There are these pregnant moments you see in hindsight,
Lex Fridman (36:50.940)
maybe they're overrated,
Lex Fridman (36:52.200)
but like Hegel sees Napoleon on horseback at Jena
Lex Fridman (36:55.760)
and says, there's the world spirit on horse.
Lex Fridman (37:00.440)
And I knew that there was a chance to do it.
Lex Fridman (37:04.120)
Mark knew, and he was my executive sponsor
Lex Fridman (37:07.960)
and he was the one sort of brainstorming
Lex Fridman (37:10.800)
how the JavaScript should be right there in the page.
Brendan Eich (37:13.360)
That was important for him to say that.
Lex Fridman (37:14.760)
Cause I thought so too, but a lot of people were like,
Brendan Eich (37:17.360)
well, you can't write programming language
Lex Fridman (37:18.680)
in the middle of the markup.
Lex Fridman (37:20.120)
And indeed there are problems.
Lex Fridman (37:21.040)
If you did it naively, you'd see the code laid out
Brendan Eich (37:23.600)
as like random gibberish.
Lex Fridman (37:25.300)
So I had to figure out how to hide that.
Brendan Eich (37:26.600)
That was a challenge.
Lex Fridman (37:28.120)
Is that a breakthrough idea?
Brendan Eich (37:29.800)
I mean, so you and Mark thinking about this idea
Lex Fridman (37:32.580)
that you just inject code in the middle of the markup.
Brendan Eich (37:36.080)
Of the webpage.
Lex Fridman (37:36.920)
I consider kind of heretical.
Brendan Eich (37:38.000)
There was an SGML guru, I forget his name,
Lex Fridman (37:40.120)
but he corresponded with me and at first he was angry.
Brendan Eich (37:42.120)
He's like, you should have used a marked section.
Lex Fridman (37:44.760)
Why didn't you use a marked section?
Lex Fridman (37:45.960)
And I said, well, SGML marked sections are not part of HTML
Lex Fridman (37:48.600)
by the way, and they're not supported in the browser.
Lex Fridman (37:50.600)
And so I did some hack that was equivalent
Lex Fridman (37:52.540)
and over time you could do the proper SGML thing.
Lex Fridman (37:55.280)
But eventually he came around and it was again,
Lex Fridman (37:58.200)
sort of evolutionary necessity.
Brendan Eich (37:59.640)
It was almost like introgression, like the idea
Lex Fridman (38:02.920)
which Lynn Margulies, I think helped get across
Brendan Eich (38:06.980)
that we have to consider mutualism biology
Lex Fridman (38:10.640)
that maybe mitochondria were ancient prokaryotes
Brendan Eich (38:14.080)
that got into the cell and became beneficial.
Lex Fridman (38:17.420)
Somehow the same sort of thinking applies.
Brendan Eich (38:21.200)
You have to embed JavaScript in HTML.
Lex Fridman (38:23.040)
It's gonna be a good virus.
Brendan Eich (38:24.760)
It won't hurt you.
Lex Fridman (38:25.720)
The code becomes data in the sense
Brendan Eich (38:27.400)
it just gets carried along.
Lex Fridman (38:30.040)
But is there the side of the, so you were focusing
Brendan Eich (38:33.680)
on Netscape at that time.
Lex Fridman (38:35.080)
Doesn't the browser have to support interpret correctly
Lex Fridman (38:38.360)
this mix of HTML and whatever code?
Lex Fridman (38:41.440)
I had to hide it from old browsers,
Brendan Eich (38:42.720)
including Netscape 1.1, which was predominant then.
Lex Fridman (38:45.140)
So I used an HTML comment, but the inside the container
Brendan Eich (38:49.560)
that comment lived in the script tag,
Lex Fridman (38:51.080)
which is a new element, I could make different semantics
Brendan Eich (38:53.480)
in Netscape 2 where those HTML comment delimiters
Lex Fridman (38:57.040)
instead of being multi line brackets became one line
Brendan Eich (38:59.760)
or essentially one line.
Lex Fridman (39:00.600)
So you wrote, so JavaScript was written,
Brendan Eich (39:02.600)
the programming language was written as a comment.
Lex Fridman (39:05.080)
A comment for old browsers and a set of brackets
Brendan Eich (39:08.120)
that were ignored with real code for new.
Lex Fridman (39:10.160)
And it was this two way comment hiding hack, as I called it,
Brendan Eich (39:13.480)
that was absolutely necessary for us to get off the ground.
Lex Fridman (39:15.700)
We couldn't have bootstrapped JavaScript without it.
Brendan Eich (39:17.680)
We didn't have scripts that were loaded from a separate file.
Lex Fridman (39:20.240)
The only scripts in Netscape 2 were inline in the document.
Lex Fridman (39:22.900)
What were the challenges here?
Lex Fridman (39:24.280)
What, like what, you know, typing,
Lex Fridman (39:27.440)
what were the choices you were thinking about?
Lex Fridman (39:30.120)
What was the design for this garbage collection?
Brendan Eich (39:31.560)
I didn't have time to write a garbage collector.
Lex Fridman (39:32.960)
So I just, I didn't at first.
Brendan Eich (39:34.680)
The thing was using essentially arenas
Lex Fridman (39:36.920)
or what GNU calls object pools
Lex Fridman (39:39.160)
and just would run out of memory eventually.
Lex Fridman (39:41.680)
And I added reference counting in a hurry
Brendan Eich (39:43.560)
after the 10 days in which I hacked.
Lex Fridman (39:45.340)
So after I was in the server team doing HTTP 1.1
Lex Fridman (39:48.120)
and thinking about the language,
Lex Fridman (39:49.640)
I finally got transferred to the client team in early May.
Lex Fridman (39:52.300)
And that's when I, you know, I got the go sign from Mark
Lex Fridman (39:55.260)
and it was like, we can't wait
Brendan Eich (39:57.280)
because people inside Netscape are doubting.
Lex Fridman (39:59.360)
Even people inside Sun are definitely doubting.
Brendan Eich (40:01.880)
Bill Joy was the champion, but he was like alone in that
Lex Fridman (40:04.960)
in seeing that there was a role for JavaScript
Brendan Eich (40:07.260)
as the, as I call it, the sidekick language,
Lex Fridman (40:10.560)
robbing the boy hostage.
Brendan Eich (40:12.720)
Frank Miller put it in the Dark Knight Returns
Lex Fridman (40:16.360)
that there was this silly little language
Brendan Eich (40:18.640)
that would be the glue language
Lex Fridman (40:19.520)
and it could become important over time.
Lex Fridman (40:20.960)
And you were better off having that complementarity,
Lex Fridman (40:23.880)
that pairing of languages,
Brendan Eich (40:25.120)
just like Microsoft stacked it with visual C plus plus
Lex Fridman (40:28.080)
and visual pacing.
Lex Fridman (40:28.900)
So what was the big moment of I'm done?
Lex Fridman (40:33.120)
So I had to do a demo.
Brendan Eich (40:34.320)
I forget the dates.
Lex Fridman (40:35.800)
I think I, for a history of programming languages paper
Brendan Eich (40:38.680)
that Alan Wiersbrock did with my help,
Lex Fridman (40:40.840)
he did a lot of the writing.
Brendan Eich (40:42.760)
I think it was the 10 days from like Thursday evening
Lex Fridman (40:47.440)
through to the following weeks, you know,
Brendan Eich (40:50.800)
the whole of that week and then into the Monday.
Lex Fridman (40:52.520)
You get sleep?
Brendan Eich (40:53.360)
Not enough.
Lex Fridman (40:54.400)
And I was really going fast
Brendan Eich (40:56.280)
because I had already used a lot of C compiler
Lex Fridman (41:00.080)
and front end compiler knowledge
Brendan Eich (41:02.320)
that I'd gained from undergraduate school.
Lex Fridman (41:04.700)
When I started getting into computing
Brendan Eich (41:07.560)
as a renegade physics major,
Lex Fridman (41:10.040)
people were formalizing more efficient bottom up grammars,
Brendan Eich (41:14.640)
parsers for bottom up languages,
Lex Fridman (41:17.040)
really LALR one was the big thing.
Lex Fridman (41:19.520)
And I studied all this and learned how to parse them.
Lex Fridman (41:22.440)
And in the end, if you're doing C languages,
Brendan Eich (41:25.100)
you often do what Dennis Ritchie did anyway,
Lex Fridman (41:28.640)
which is the recursive descent parser.
Brendan Eich (41:31.280)
You can hand code it.
Lex Fridman (41:32.200)
And I did that for JavaScript in a blazing hurry,
Brendan Eich (41:36.280)
mostly got it right.
Lex Fridman (41:37.280)
I didn't have precedence inversion problems or other bugs,
Lex Fridman (41:40.160)
but I copied a lot from Java and C.
Lex Fridman (41:43.160)
And I tried to keep things simple,
Brendan Eich (41:45.240)
like the equality operator in those 10 days sprint
Lex Fridman (41:49.400)
between two objects of different dynamic type said,
Brendan Eich (41:52.360)
no, they're not equal, their types are different.
Lex Fridman (41:54.320)
And then after that, I had internal early adopters
Lex Fridman (41:57.680)
and they were using JavaScript to match a number
Lex Fridman (42:01.240)
against a database field that had been stringized.
Lex Fridman (42:03.920)
And they said, oh, can we just have implicit conversion?
Lex Fridman (42:06.440)
Like an idiot, I agreed.
Brendan Eich (42:07.720)
I gave them what they wanted.
Lex Fridman (42:08.640)
I was trying to please them and get adoption.
Lex Fridman (42:10.680)
And that broke what equivalence relation
Lex Fridman (42:16.560)
nature there was to the double equal.
Brendan Eich (42:19.600)
There's some edge cases with not a number
Lex Fridman (42:22.360)
that break that too, but it really broke it.
Brendan Eich (42:25.040)
Having an implicit conversions in the operator
Lex Fridman (42:26.960)
is something that people still roast me over.
Lex Fridman (42:29.360)
So let's talk about two things.
Lex Fridman (42:31.720)
One, it sounds like the comparison operator,
Brendan Eich (42:34.280)
the equality operator is the thing that you regret.
Lex Fridman (42:38.760)
So maybe you can.
Brendan Eich (42:39.600)
Making it sloppy.
Lex Fridman (42:40.600)
Making it sloppy.
Lex Fridman (42:41.440)
So what is the biggest thing you regret in those 10 days?
Lex Fridman (42:45.200)
And what is the biggest thing you're proud of?
Lex Fridman (42:47.480)
So that making it sloppy came after the 10 days.
Lex Fridman (42:49.680)
And my lesson there, which I've tweeted is
Brendan Eich (42:51.880)
when people come to you saying,
Lex Fridman (42:53.160)
can you please make it sloppy or add this cute feature?
Brendan Eich (42:56.080)
The answer should be no.
Lex Fridman (42:57.640)
And I should have known that
Brendan Eich (42:58.480)
because I think Nicholas Viert, one of my heroes said,
Lex Fridman (43:01.200)
the essence of design is leaving things out.
Lex Fridman (43:04.560)
But during the 10 days, I also, like I said,
Lex Fridman (43:06.200)
I was in such a hurry, I left out garbage collection,
Brendan Eich (43:08.560)
came back to haunt me, but I got reference counting in
Lex Fridman (43:10.760)
in time that people weren't running out of memory
Brendan Eich (43:13.960)
right away on long lived JavaScript.
Lex Fridman (43:16.120)
What happens when you don't have garbage collection
Lex Fridman (43:17.760)
and you have objects?
Lex Fridman (43:18.600)
Well, you just run out of memory.
Lex Fridman (43:20.240)
And you know, at first you write a short script
Lex Fridman (43:24.120)
and the page doesn't last long or it doesn't do a lot.
Brendan Eich (43:25.920)
It's okay.
Lex Fridman (43:26.760)
Oh, I see, yeah, yeah.
Lex Fridman (43:27.600)
But if you're writing a game or something
Lex Fridman (43:28.600)
and you're doing event based allocation,
Brendan Eich (43:30.600)
you run out of memory.
Lex Fridman (43:31.680)
And this was noticed in the summer of 1985
Lex Fridman (43:34.320)
and people were like, what's going on?
Lex Fridman (43:35.720)
Oh yeah, I better go back and do reference counting.
Lex Fridman (43:38.600)
And then the problem with reference counting is
Lex Fridman (43:40.200)
you're writing the language in the runtime in C,
Brendan Eich (43:43.160)
an unsafe language, and if you're reference counting
Lex Fridman (43:45.760)
and you overflow the counter, you mismanage it
Lex Fridman (43:48.080)
so it goes high, it gets stuck high,
Lex Fridman (43:49.640)
you leak memory again and you run out.
Brendan Eich (43:51.560)
If you underflow it, you pre memory that's still in use.
Lex Fridman (43:56.200)
And even then we knew what all the security hackers
Brendan Eich (44:00.120)
came to know that you therefore have potentially
Lex Fridman (44:03.000)
a remote code execution vulnerability.
Brendan Eich (44:05.840)
Cause this was before things like non executable
Lex Fridman (44:09.800)
heap memory and staff defenses against taking over memory.
Lex Fridman (44:14.800)
So if you can, from the remote side,
Lex Fridman (44:17.780)
write some HTML and JavaScript that just happens
Brendan Eich (44:19.920)
to exploit a bug in memory safety,
Lex Fridman (44:21.820)
like it causes JavaScript to underflow reference counter.
Lex Fridman (44:24.960)
And the script still has its hands on that object
Lex Fridman (44:27.560)
and it's trying to call a method on it
Lex Fridman (44:29.040)
and there's some kind of lookup function table
Lex Fridman (44:30.680)
in the object, but you've managed to stuff the heap
Brendan Eich (44:34.600)
with strings that forwards their own lookalike
Lex Fridman (44:37.160)
for the function table.
Brendan Eich (44:39.720)
You can call some other code.
Lex Fridman (44:41.360)
And this was a problem right away.
Lex Fridman (44:43.400)
So security, JavaScript upped the ante.
Lex Fridman (44:46.280)
Java had this problem too, but in its own VM.
Lex Fridman (44:48.840)
And it just was a separate headache for Sun to worry about.
Lex Fridman (44:53.440)
We had this problem in Netscape right away.
Lex Fridman (44:55.280)
So Netscape 2 came out after my 10 days
Lex Fridman (44:58.360)
and after these follow on work to embed JavaScript
Brendan Eich (45:02.640)
better in the browser and to add garbage
Lex Fridman (45:04.480)
or collection through reference counting,
Brendan Eich (45:05.960)
really I call it reference counting and get it shipped.
Lex Fridman (45:09.640)
We had a bunch of dot releases where we fixed
Brendan Eich (45:11.400)
security bugs like maniacs.
Lex Fridman (45:13.560)
But what is the thing you're, you know,
Brendan Eich (45:16.200)
when you sit back on a porch and just look out
Lex Fridman (45:19.120)
into the sunset, what are you most proud of
Lex Fridman (45:21.000)
from those 10 days?
Lex Fridman (45:21.960)
I think the first class functions shines.
Brendan Eich (45:23.560)
I think especially since Java didn't have it
Lex Fridman (45:25.600)
and it was somewhat unusual.
Brendan Eich (45:27.600)
Scheme made it in somehow at the end of the day.
Lex Fridman (45:30.640)
In spirit, I mean, people complain because Scheme has,
Brendan Eich (45:33.440)
you know, minimalism.
Lex Fridman (45:34.840)
It has, you know, six or seven special forms.
Brendan Eich (45:37.000)
It has hygienic macros.
Lex Fridman (45:38.720)
It has call CC.
Brendan Eich (45:39.640)
It has sort of a beautiful complete set of forms
Lex Fridman (45:44.880)
to make the land of calculus pleasant to use in practice.
Lex Fridman (45:49.440)
And JavaScript is, you know, kind of a multi paradigm
Lex Fridman (45:54.120)
or shambolic.
Brendan Eich (45:55.200)
Just in a small tangent, you mentioned Mark Andreessen.
Lex Fridman (45:59.400)
It sounds like, and Bill Joy, but staying on Mark,
Brendan Eich (46:03.400)
it sounds like he had an impact on you
Lex Fridman (46:06.520)
in that he sort of believed in what you were doing there.
Lex Fridman (46:09.120)
Can you talk about like what role Mark had in your life?
Lex Fridman (46:11.920)
Yeah, we would meet at the Peninsula Creamery
Brendan Eich (46:15.880)
in downtown Palo Alto.
Lex Fridman (46:17.720)
And Mark was just fresh out of, you know, grad school
Brendan Eich (46:19.960)
or whatever he was doing and he was big dude
Lex Fridman (46:22.720)
and he got fitter later.
Brendan Eich (46:25.280)
He had hair, he would order giant milkshakes and burgers
Lex Fridman (46:28.800)
and we would meet there and brainstorm about what to do.
Lex Fridman (46:31.040)
And it was very direct because we didn't have much time.
Lex Fridman (46:34.280)
The sort of, we didn't talk about it.
Brendan Eich (46:36.400)
The implication was Microsoft was coming after us.
Lex Fridman (46:39.080)
Mark was saying things boldly pre IPO
Lex Fridman (46:41.760)
like Netscape plus Java kills Windows, right?
Lex Fridman (46:44.320)
This is, make a browser programmable.
Brendan Eich (46:46.840)
It becomes the new runtime for programs.
Lex Fridman (46:49.440)
It's the meta OS or it's the replacement OS.
Lex Fridman (46:52.000)
But he still saw value in JavaScript.
Lex Fridman (46:54.280)
Yes, even though he was saying that
Lex Fridman (46:56.000)
and Java was the big name, hence the trademark license,
Lex Fridman (46:59.800)
he saw JavaScript as important.
Lex Fridman (47:01.360)
And he even thought, what if we got,
Lex Fridman (47:03.720)
I told this in other interviews, I can say it.
Brendan Eich (47:05.040)
He thought, what if we had my friend Kip Hickman
Lex Fridman (47:07.680)
who'd been at Netscape from the beginning
Lex Fridman (47:09.560)
and who was a kernel hacker at SGI when I joined,
Lex Fridman (47:13.080)
he'd started writing his own JVM
Brendan Eich (47:14.920)
before we consummated the Sun deal
Lex Fridman (47:16.440)
and got our hands on their code.
Lex Fridman (47:17.960)
And the Java compiler, Java C,
Lex Fridman (47:20.480)
which Arthur Van Hoff had written very nice code,
Brendan Eich (47:23.200)
was all written in Java.
Lex Fridman (47:24.160)
It was self hosted or so called bootstrap.
Lex Fridman (47:26.480)
And so we could use that as soon as Kip's Java VM
Lex Fridman (47:29.320)
could run the bytecode from the Sun JVM
Brendan Eich (47:34.400)
running the self hosted compiler to emit the bytecode.
Lex Fridman (47:37.520)
So once we could bootstrap into Kip's VM,
Brendan Eich (47:39.400)
we wouldn't need Sun.
Lex Fridman (47:40.320)
And Mark was like, well, maybe we can just ditch Sun.
Brendan Eich (47:44.400)
Well, if Kip's Java VM, or if you're a JavaScript VM,
Lex Fridman (47:47.360)
now we need graphics.
Lex Fridman (47:48.240)
So Mark was thinking far ahead
Lex Fridman (47:49.600)
because he knew you could do things with HTML and images,
Lex Fridman (47:53.380)
but at some point you really want.
Lex Fridman (47:54.920)
Like dynamic graphics or three dimensional?
Brendan Eich (47:57.600)
Even SGI had already started its downfall
Lex Fridman (47:59.920)
because the first floor VLSI team there
Brendan Eich (48:02.960)
had gone off to do 3D effects
Lex Fridman (48:04.440)
and all these other companies
Lex Fridman (48:05.360)
that made the graphics card on your PC, right?
Lex Fridman (48:07.520)
Doom was big and Quake.
Lex Fridman (48:09.360)
And so you were, we were all playing Quake.
Lex Fridman (48:10.680)
I was old, so I was terrible.
Lex Fridman (48:12.880)
But why not put that graphics capability on the web?
Lex Fridman (48:16.400)
And in fact, it finally happened at Mozilla
Brendan Eich (48:18.720)
with Firefox era with Vlad Vukicovic
Lex Fridman (48:21.520)
taking OpenGL ES and reflecting it as WebGL.
Lex Fridman (48:24.420)
But OpenGL ES is the mobile version of OpenGL,
Lex Fridman (48:28.000)
which is a standard based on SGI GL.
Lex Fridman (48:30.320)
So this whole lineage of graphics libraries
Lex Fridman (48:32.800)
or really graphics languages for what became the GPU.
Lex Fridman (48:36.280)
And Mark was thinking ahead.
Lex Fridman (48:37.320)
He's like, we need graphics too.
Lex Fridman (48:38.560)
And I thought, okay, I can try to get somebody I knew at SGI,
Lex Fridman (48:40.960)
but he's a grad student at MIT.
Brendan Eich (48:42.880)
He was studying under Barbara Liskov.
Lex Fridman (48:44.440)
He laughed when he heard about this later, Andrew Myers.
Brendan Eich (48:46.780)
He's at Cornell, long time, I think he's a full professor.
Lex Fridman (48:50.040)
And Mark said, great, we'll get him.
Brendan Eich (48:52.200)
I'm not sure he's gonna come.
Lex Fridman (48:53.200)
We'll throw money, we'll stock options.
Brendan Eich (48:55.320)
We never did it.
Lex Fridman (48:56.160)
And they did the Sun deal.
Lex Fridman (48:57.640)
So Kip Nobly put aside his own JVM
Lex Fridman (49:00.960)
and we used the Sun JVM.
Lex Fridman (49:02.880)
So that was an ambitious period.
Lex Fridman (49:04.000)
And Mark was very generative because he was pushing hard.
Brendan Eich (49:06.640)
He was ambitious and he wanted to have Netscape
Lex Fridman (49:11.200)
possibly be in control of the ball.
Brendan Eich (49:13.680)
Maybe you can speak to this dance
Lex Fridman (49:16.840)
of Netscape versus Internet Explorer.
Brendan Eich (49:20.440)
You've thrown some loving words towards Microsoft
Lex Fridman (49:25.600)
throughout this conversation,
Lex Fridman (49:26.720)
but that's a theme with, I mean, Steve Jobs
Lex Fridman (49:29.080)
has a similar sort of commentary.
Brendan Eich (49:31.280)
From a big sort of philosophical principle perspective,
Lex Fridman (49:34.520)
can you comment on like the approach
Brendan Eich (49:36.600)
that Microsoft has taken with Internet Explorer
Lex Fridman (49:39.280)
from IE1 to Edge today?
Brendan Eich (49:42.120)
Is there something that you see as valuable
Lex Fridman (49:45.400)
that they're doing in the occasional copying
Lex Fridman (49:48.420)
and that kind of stuff?
Lex Fridman (49:49.600)
Or is it, is the world worse off
Lex Fridman (49:53.360)
because Internet Explorer exists?
Lex Fridman (49:55.240)
So I'm gonna segment this into historical areas
Brendan Eich (49:57.640)
because I think Microsoft today with Satya
Lex Fridman (49:59.560)
is quite a different company
Lex Fridman (50:00.640)
and what they're doing with Edge is different.
Lex Fridman (50:02.360)
But back then, Gates, aggressive character,
Brendan Eich (50:06.160)
not really original in my view, not an originator.
Lex Fridman (50:09.680)
Steve Jobs famously said once,
Brendan Eich (50:11.280)
he doesn't have any taste
Lex Fridman (50:12.440)
and I don't mean this in a small way, he has no taste.
Brendan Eich (50:15.080)
You can see this, Apple at the time had beautiful typography
Lex Fridman (50:19.360)
and ligatures and kerning and the fonts looked great.
Lex Fridman (50:22.600)
And Windows had this sort of ugly system font
Lex Fridman (50:25.240)
that was carefully aligned with Pixel
Lex Fridman (50:26.920)
so it didn't get anything.
Lex Fridman (50:28.640)
What is it?
Brendan Eich (50:29.480)
I'm sorry to keep interrupting,
Lex Fridman (50:30.300)
but why was Internet Explorer winning
Lex Fridman (50:32.360)
throughout the history of these competitions?
Lex Fridman (50:34.320)
Distribution.
Brendan Eich (50:35.240)
Distribution matters more than anything.
Lex Fridman (50:36.600)
And this is why even now we're seeing
Brendan Eich (50:39.840)
in the browser wars Edge doing better
Lex Fridman (50:41.640)
because it's being foisted on people of Windows.
Brendan Eich (50:43.440)
We have Windows 10 boxes at home.
Lex Fridman (50:45.200)
We have some Windows 7 boxes or laptops we keep running to
Brendan Eich (50:48.240)
because we don't connect them to the internet generally.
Lex Fridman (50:50.840)
But once you have that operating system to hold,
Brendan Eich (50:55.840)
you can force Edge.
Lex Fridman (50:57.800)
And Apple did it with Safari too.
Brendan Eich (50:59.480)
It's not unique to Microsoft.
Lex Fridman (51:01.340)
That's sad.
Lex Fridman (51:02.180)
But distribution matters.
Lex Fridman (51:03.680)
And that's why I think IE was going to win.
Brendan Eich (51:07.080)
That's why everybody at Netscape felt we're doomed.
Lex Fridman (51:09.560)
This was something Michael Toy and Jamie Woodson were doomed.
Lex Fridman (51:12.900)
But for a while there we had a chance
Lex Fridman (51:14.720)
and we innovated in Netscape too.
Brendan Eich (51:16.040)
We did a big platform push, Java and JavaScript
Lex Fridman (51:18.860)
and plugins, more plugins and more HTML table features.
Lex Fridman (51:23.860)
And really started making a programmable stack
Lex Fridman (51:28.700)
out of what were pretty static web languages.
Lex Fridman (51:30.820)
And even in the beta releases of Netscape,
Lex Fridman (51:33.220)
two people were using JavaScript
Brendan Eich (51:34.460)
to build what you would call single page applications
Lex Fridman (51:36.620)
like Gmail.
Lex Fridman (51:37.620)
And they were using JavaScript locally to compute things
Lex Fridman (51:40.380)
and to call the server on a hidden frame in the background.
Lex Fridman (51:43.660)
So it was prefiguring a lot of what came later as AJAX
Lex Fridman (51:46.860)
or dynamic JavaScript, dynamic HTML.
Lex Fridman (51:48.580)
So people saw that, I mean.
Lex Fridman (51:49.740)
Even then they saw it, yeah.
Brendan Eich (51:50.920)
That's kind of, I don't know.
Lex Fridman (51:52.900)
But from my perspective, that seems quite brilliant.
Brendan Eich (51:55.180)
It seems like really innovative
Lex Fridman (51:56.580)
that you would have code run in the browser.
Brendan Eich (51:59.220)
It did impress me with something
Lex Fridman (52:01.380)
which I learned later about from Eric Von Hippel of MIT,
Brendan Eich (52:04.020)
which is user innovation networks, lead user effects.
Lex Fridman (52:07.260)
That throwing out JavaScript,
Brendan Eich (52:09.200)
even though we weren't doing open source,
Lex Fridman (52:10.460)
we were doing beta releases early
Lex Fridman (52:12.320)
and permissively with Netscape.
Lex Fridman (52:14.360)
Getting early developer feedback, absolutely critical.
Brendan Eich (52:17.180)
I loved it.
Lex Fridman (52:18.020)
I did some of that with SGI
Brendan Eich (52:19.140)
with some of the products I worked on,
Lex Fridman (52:20.260)
but it really came to the fore in Netscape.
Lex Fridman (52:21.860)
And that culminated in Mozilla
Lex Fridman (52:23.780)
where you're dealing with developers all the time
Lex Fridman (52:25.740)
and early adopters, lead users.
Lex Fridman (52:27.240)
But the lead users helped improve JavaScript,
Brendan Eich (52:29.840)
even in those last few betas
Lex Fridman (52:31.580)
where I could hardly change things.
Brendan Eich (52:32.660)
I was under pretty rigid change control.
Lex Fridman (52:34.580)
So we're talking about just a small collection
Brendan Eich (52:36.260)
of individuals that are just like upfront.
Lex Fridman (52:38.340)
A guy named Bill Dorch.
Brendan Eich (52:39.420)
You can find his work in the web archives,
Lex Fridman (52:40.940)
still from 1996.
Brendan Eich (52:41.960)
It's a single page application.
Lex Fridman (52:43.300)
It's an artist gallery of mountain art.
Lex Fridman (52:46.340)
He used JavaScript?
Lex Fridman (52:47.180)
It doesn't quite work.
Brendan Eich (52:48.000)
He uses JavaScript locally.
Lex Fridman (52:48.840)
He uses a local database.
Lex Fridman (52:50.580)
What you would think of now is JSON,
Lex Fridman (52:52.180)
but it's all pure JavaScript code,
Brendan Eich (52:54.260)
a bunch of objects being constructed.
Lex Fridman (52:55.820)
That's so cool.
Lex Fridman (52:57.460)
So how is, if you can do sort of a big sweeping progress
Lex Fridman (53:02.620)
of JavaScript, how has JavaScript changed over the years?
Brendan Eich (53:05.380)
Any of you from those early 10 days
Lex Fridman (53:07.300)
with a quick addition of garbage collection
Lex Fridman (53:09.460)
and fixes around security,
Lex Fridman (53:11.140)
how has this evolution that now it's taken over the world?
Brendan Eich (53:14.500)
In this, it's been a bumpy ride
Lex Fridman (53:16.340)
because the standards body got shut down after Microsoft,
Brendan Eich (53:19.900)
I think, took over the web and then felt punished
Lex Fridman (53:22.580)
by the USB Microsoft antitrust case.
Lex Fridman (53:25.360)
Can you speak to the standard body?
Lex Fridman (53:27.380)
That was a fun ride too
Brendan Eich (53:28.260)
because Netscape had taken the lead
Lex Fridman (53:30.940)
with the web and HTML innovations
Brendan Eich (53:34.340)
like frames and framesets tables.
Lex Fridman (53:36.900)
And the W3C was sort of off even then,
Brendan Eich (53:39.220)
sort of in SGML land heading toward XML, la la land.
Lex Fridman (53:43.100)
I'm gonna be a little harsh on it.
Lex Fridman (53:44.340)
What's SGML?
Lex Fridman (53:45.180)
I'm sorry.
Brendan Eich (53:46.000)
SGML was the precursor markup language to HTML.
Lex Fridman (53:48.900)
It was sort of the more extensible standards,
Brendan Eich (53:52.740)
generalized markup language.
Lex Fridman (53:54.140)
It was a...
Brendan Eich (53:54.980)
XML like...
Lex Fridman (53:55.820)
Pointy brackets, but it had all sorts of elaborate syntax
Brendan Eich (53:58.540)
for doing different semantics.
Lex Fridman (54:00.940)
And this is why I think TBL and others
Brendan Eich (54:03.780)
who wanted to do the semantic web then took XML forward,
Lex Fridman (54:08.320)
but they had this, or some of them anyway,
Brendan Eich (54:10.400)
had this strange idea they could replace the web with XML
Lex Fridman (54:12.980)
or that they would upgrade the web to be XML.
Lex Fridman (54:15.720)
And it couldn't be done.
Lex Fridman (54:17.240)
Worse is better had concrete meaning.
Brendan Eich (54:19.500)
The web was very forgiving of HTML,
Lex Fridman (54:22.660)
including sort of minor syntax errors
Brendan Eich (54:25.180)
that could be error corrected.
Lex Fridman (54:26.500)
Like error correction isn't generally done
Brendan Eich (54:28.140)
in programming languages because...
Lex Fridman (54:29.980)
That's another amazing thing about HTML is like,
Brendan Eich (54:32.540)
it's more like biology than programming.
Lex Fridman (54:35.140)
Exactly.
Lex Fridman (54:35.980)
And so XML was in its standard form super strict
Lex Fridman (54:40.700)
and could never have admitted the kind of users
Brendan Eich (54:43.220)
who were committing these errors.
Lex Fridman (54:44.420)
And the funniest part was Microsoft said,
Brendan Eich (54:46.500)
hey, we're doing XML,
Lex Fridman (54:47.620)
but the way they put it in Internet Explorer
Brendan Eich (54:49.540)
under the default media type,
Lex Fridman (54:51.500)
put it through the HTML error corrector.
Brendan Eich (54:53.940)
Oh, wow.
Lex Fridman (54:54.940)
So they kind of bastardized it to make it popular
Lex Fridman (54:57.020)
and usable and accessible.
Lex Fridman (54:58.580)
And so XML as a pure thing was never gonna take over.
Lex Fridman (55:04.220)
And what W3C was kind of not fully functional
Lex Fridman (55:07.140)
because Netscape wasn't cooperating with them.
Brendan Eich (55:09.700)
We thought about where to take JavaScript
Lex Fridman (55:11.100)
and we realized our standards,
Brendan Eich (55:12.660)
Guru Kargal realized there was a European standards body
Lex Fridman (55:17.140)
that had already given Microsoft fits
Brendan Eich (55:18.800)
by standardizing parts of the Windows 3.1 API,
Lex Fridman (55:22.580)
which European governments insisted on.
Brendan Eich (55:24.020)
They said, Microsoft, we can't use your operating system
Lex Fridman (55:26.260)
without some standards.
Lex Fridman (55:27.580)
And Microsoft said, here's our docs.
Lex Fridman (55:29.660)
And the government said, no, we need a European standard.
Lex Fridman (55:32.460)
So this body called
Lex Fridman (55:33.420)
the European Computer Manufacturers Association, ECMA,
Brendan Eich (55:37.500)
which eventually became global
Lex Fridman (55:38.620)
and became a proper noun instead of an acronym.
Brendan Eich (55:40.980)
Right, it's just one capital E now with a lowercase CMA.
Lex Fridman (55:44.660)
Right, and as one of the early Microsoft guys I met
Brendan Eich (55:47.580)
when we first convened a working group
Lex Fridman (55:50.260)
to talk about JavaScript said,
Brendan Eich (55:51.420)
it sounds like a skin disease.
Lex Fridman (55:53.420)
But it gave, I mean, maybe you'll speak to that,
Lex Fridman (55:56.140)
but it gave the name to JavaScript of ECMA script.
Lex Fridman (55:58.980)
That was the standard name
Brendan Eich (55:59.820)
because Java was a trademark of Suns.
Lex Fridman (56:02.820)
They were so aggressive,
Brendan Eich (56:03.720)
they were sending cease and desist letters
Lex Fridman (56:05.840)
to people whose middle European heritage
Brendan Eich (56:08.500)
meant their surname was Javanko
Lex Fridman (56:10.820)
and they called their website javanko.com
Lex Fridman (56:12.900)
and Sunwood sent them a letter saying,
Lex Fridman (56:14.680)
you're using J A V A at the start of your domain name,
Brendan Eich (56:16.820)
you must cease and desist.
Lex Fridman (56:18.940)
I love marketing more than anything else in this world.
Lex Fridman (56:22.020)
So ECMA script and now is popularly named as ES plus version.
Lex Fridman (56:27.420)
I would say people use JS more than anything.
Brendan Eich (56:29.900)
People still say JavaScript.
Lex Fridman (56:31.140)
JavaScript is in all the books.
Lex Fridman (56:32.460)
So I mean, when you're referring to it,
Lex Fridman (56:33.740)
it's usually JavaScript.
Lex Fridman (56:34.900)
And when you wanna refer to a version of JavaScript,
Lex Fridman (56:37.340)
you'll say ES6, ES5.
Brendan Eich (56:39.180)
Yes, or now they've gone to years,
Lex Fridman (56:40.860)
which is kind of confusing
Brendan Eich (56:41.840)
because it's an offset of 2009, ES6, ES 2016.
Lex Fridman (56:50.740)
Yeah, it doesn't match the years perfectly.
Brendan Eich (56:52.700)
Yeah, so what were the choices made
Lex Fridman (56:55.680)
and how did JavaScript evolve here?
Lex Fridman (56:58.020)
So we took this new standards body,
Lex Fridman (57:01.100)
which we thought sort of a proven record
Brendan Eich (57:04.340)
of standing up to Microsoft,
Lex Fridman (57:05.420)
but Microsoft sent a lot of people.
Brendan Eich (57:07.540)
They sent some people who were pretty good.
Lex Fridman (57:10.540)
And then when they realized that I was there
Lex Fridman (57:12.940)
and Netscape was not gonna just bend over
Lex Fridman (57:15.220)
and do whatever they wanted,
Brendan Eich (57:16.380)
they sent somebody really good.
Lex Fridman (57:17.220)
And he was a smart guy.
Brendan Eich (57:18.060)
He did a lot of the work on the first draft of the spec.
Lex Fridman (57:21.000)
Sean Katzenberger, he's left Microsoft.
Brendan Eich (57:22.780)
He even did what I sort of did.
Lex Fridman (57:25.280)
He told his bosses, stop bugging me to do other things.
Brendan Eich (57:28.000)
I'm focused on this.
Lex Fridman (57:28.960)
Cause it took a lot of focused work
Brendan Eich (57:30.580)
to create the first draft of the spec.
Lex Fridman (57:31.940)
And I was still holding,
Brendan Eich (57:33.560)
I was spending almost all the plates.
Lex Fridman (57:34.900)
I had like part time help in certain areas.
Lex Fridman (57:37.220)
And on the front end integrations,
Lex Fridman (57:38.740)
I had the front end guys.
Lex Fridman (57:40.080)
But I couldn't take as much time as Sean was
Lex Fridman (57:42.620)
to write the draft spec,
Lex Fridman (57:43.680)
but I had to participate
Lex Fridman (57:44.660)
because I was essentially helping write down
Lex Fridman (57:46.880)
what the language did
Lex Fridman (57:48.020)
and in areas where we didn't like what it did
Lex Fridman (57:50.180)
and Microsoft didn't agree,
Lex Fridman (57:51.620)
we sometimes got away with slight changes.
Lex Fridman (57:54.580)
And that's the story of standards.
Lex Fridman (57:55.800)
You have different implementations
Lex Fridman (57:58.020)
and depending on their market power,
Lex Fridman (57:59.840)
they interoperate where you have agreement
Lex Fridman (58:01.840)
and where they don't,
Lex Fridman (58:02.780)
the dominant one usually sets the de facto standard.
Lex Fridman (58:05.900)
And then you should probably reflect that
Lex Fridman (58:07.500)
into the de jure standard.
Lex Fridman (58:09.340)
And this happened with JavaScript.
Lex Fridman (58:11.060)
Over time, as Netscape went down and Microsoft went up,
Brendan Eich (58:14.120)
we did the first edition of the standard codified in 1997
Lex Fridman (58:18.180)
in France, we had a trip to Nice, which was very memorable.
Lex Fridman (58:22.140)
For any interesting reason or just because it's Nice?
Lex Fridman (58:24.540)
And ECMA's European and IBM and others were there.
Brendan Eich (58:28.980)
Mike Kalashaw, an IBM fellow was a British.
Lex Fridman (58:31.340)
And the guy who ran ECMA at the time, Jan van der Bell,
Brendan Eich (58:35.260)
was quite a raconteur and a very fun guy.
Lex Fridman (58:39.060)
And he had us out for, you know, the great,
Brendan Eich (58:41.220)
you know, Fui de mer, the bouillabaisse and the...
Lex Fridman (58:43.480)
Was the standardization process beautiful or painful
Lex Fridman (58:46.140)
that those early days, you as a designer of the language?
Lex Fridman (58:48.460)
It was painful because it was rushed.
Brendan Eich (58:50.140)
Now, Guy Steele was contributed by Sun.
Lex Fridman (58:52.400)
So even more than Sean,
Brendan Eich (58:53.620)
you had this giant brain Guy Steele helping,
Lex Fridman (58:55.960)
bringing some of that scheme magic.
Lex Fridman (58:57.220)
And he even brought Richard Gabriel for funding.
Lex Fridman (58:59.460)
Richard wrote the fourth clause of the ECMA standard,
Brendan Eich (59:02.900)
which was kind of an intro to what JavaScript's all about.
Lex Fridman (59:05.300)
So we had some really good people
Lex Fridman (59:07.260)
and we didn't fight too much.
Lex Fridman (59:09.140)
There was some tension where I was fixing bugs
Lex Fridman (59:11.480)
and I was late to a meeting and Sean Katzenberger,
Lex Fridman (59:13.860)
Microsoft, was actually mad.
Lex Fridman (59:15.020)
Like, where is he?
Lex Fridman (59:15.840)
We need him.
Lex Fridman (59:16.680)
And when I got there,
Lex Fridman (59:18.660)
I saw that only he saw this sort of off by one bug
Brendan Eich (59:21.940)
in somewhere in the spec.
Lex Fridman (59:22.960)
And then I saw it too.
Lex Fridman (59:24.020)
And I said, there's a fence post bug there.
Lex Fridman (59:25.300)
And then we kind of locked eyes
Lex Fridman (59:27.020)
and we realized we were on the same page.
Lex Fridman (59:28.480)
And we kind of, he wasn't mad anymore.
Lex Fridman (59:30.300)
What were the features that are being struggled over
Lex Fridman (59:33.020)
and debated and thought about?
Brendan Eich (59:35.000)
It was mainly writing down what worked
Lex Fridman (59:36.480)
and what we thought should work in the edge cases
Brendan Eich (59:38.420)
that didn't interoperate or that seemed wrong.
Lex Fridman (59:41.540)
But we were already laying the groundwork
Brendan Eich (59:43.080)
for the future additions that I was already implementing.
Lex Fridman (59:46.220)
I was still trying to lead the standard
Brendan Eich (59:48.120)
by using the dominant market power
Lex Fridman (59:50.100)
to write the code that actually shipped.
Lex Fridman (59:52.500)
So the de facto standard would lead the de jure standard.
Lex Fridman (59:54.740)
And I was putting in the missing function forms
Brendan Eich (59:58.220)
that I didn't have time for in the 10 days.
🔗 相关节目