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