YouSaid · the spoken record

Brendan Eich

lines on the record
237
first
2021-02-12
most recent
2021-02-12
sittings or episodes
1
sources
podcast

Every line below is reproduced as it was said and linked to the record it came from. Nothing here is summarised or generated. Directory · Search · Corrections

  1. Added things to the language and added something that was already ES5 strict mode, but made it implicit in class bodies and module bodies. It was a big jump, but it Are the ones that go into Adobe Flash acquired from Macromedia, and the one that went into the server side of Microsoft's stack, which kind of died. And then trying to bring them back into the standard and not quite succeeding, ES4 was mothballed. But all the good parts that everyone liked made it into ES6. And so that was a success. And I said earlier I had the wrong year. I think it's 2015. So it's off by

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  2. He designed this successor language JavaScript too, but it only showed up in mutated form in Microsoft's ASP.net server side, and it didn't last there. And it showed up in Flash. And that's what became ActionScript 3.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  3. Was totally material in the antitrust case. But JavaScript escaped into the standard setting where there was fairly good cooperation. Microsoft had a really good guy on it and Guy Steele was there for a time and there was some good work. After the antitrust case and Netscape kind of dissolving into AOL and not really going anywhere quickly, Mozilla took years to really bring up. The standard froze and by 2003, even though they'd been sort of noodling around with advanced versions, JavaScript 2 had given the keys to the kingdom to another MIT grad, Baltimore Horwat. Very big brain, still at Google, I think. He won the Putnam in 86. Very mathematical.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  4. Which is called tying an antitrust law. And they were doing even more brutal things. There's a famous investor he did very well on Google, so he's a billionaire, Ram Sri Ram, and he was sales guy or head of sales at Netscape. And he got off the phone looking ashen-faced after Compaq called and said Microsoft just told us they're going to pull our Windows license if we ship Netscape as the default browser.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  5. Giants, so there was a staged process where I had to hold back things that were well designed by others in other languages and I could imitate, but I couldn't do them all in the 10 days. So they came in in 1996, in 97, and they came into the third edition of the standard, which was finalized in 1999. But at that point, Netscape had been sold to AOL and which was a decent exit considering and had previously been mercilessly crushed. Netscape was selling the browser along with server software that it had acquired after its IPO. And Microsoft was just underpricing it. So there was no way to compete with that. Microsoft was also making Internet Explorer the default browser in Windows.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  6. Mainly writing down what worked and what we thought should work in the edge cases that didn't interoperate or that seemed wrong. But we were already laying the groundwork for the future editions that I was already implementing. I was still trying to lead the standard by using the dominant market power to write the code that actually shipped. So the de facto standard would lead the de jure standard. And I was putting in The missing function forms that I didn't have time for in the 10 days.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  7. It was painful because it was rushed now. Guy Steele was contributed by Sun, so even more than Sean, you had this giant brain Guy Steele helping, bringing some of that scheme magic. He even brought Richard Gabriel for fun. Richard wrote the fourth clause of the Ekma standard, which was kind of an intro to what JavaScript's all about. So we had some really good people. And we didn't fight too much. There were some tension where I was fixing bugs and I was late to a meeting and Sean Katzenberger at Microsoft was actually mad. Like, where is he? We need him. And when I got there, I saw that only he saw this sort of off by one bug and somewhere in the spec. And I saw it too. And I said, there's a fence post bug there. And then we kind of locked eyes and we realized we were on the same page. And we kind of, he wasn't mad anymore.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  8. And ECMA is European, and IBM and others were there. Mike Kalashaw, an IBM fellow was a Britisher. And the guy who ran ECMA at the time, Jan Vandenbell, was quite a reconteur and a very fun guy, and he had us house for the great Fuitemaire, the Boyabais

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  9. Got away with slight changes, and that's the story of standards. You have different implementations, and depending on their market power, they interoperate where you have agreement and where they don't. The dominant one usually sets this de facto standard. And then you should probably reflect that into the de jure standard. And this happened with JavaScript. Over time, as Netscape went down and Microsoft went up, we did the first edition of the standard codified in 1997 in France. We had a trip to Nice, which was very memorable.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  10. So we took this new standards body, which we thought sort of a proven record of standing up to Microsoft. But Microsoft sent a lot of people. They sent some people who were pretty good. And then when they realized that I was there and Netscape was not going to just bend over and do whatever they wanted, they sent somebody really good. And he was a smart guy. He did a lot of the work on the first draft of the spec. Sean Katzenberger, he's left Microsoft. Even did what I sort of did. He told his bosses, stop bugging me to do other things. I'm focused on this because it took a lot of focused work to create the first draft of the spec. And I was still holding, I was spending almost all the plates. I had like part-time help in certain areas and on the front end integrations, I had the front end guys. But I couldn't take as much time as Sean was to write the draft spec, but I had to participate because I was essentially helping write down what the language did in areas where we didn't like what it did and Microsoft didn't agree. We sometimes...

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  11. Was the standard name because Java was a trademark of suns. They were so aggressive they were sending cease and desist letters to. People whose Middle European heritage meant their surname was Javanko, and they called their website Givanco.com. And Sun sent them a letter saying, you're using JAVA at the start of your domain name. You must cease and desist.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  12. Right. And as one of the early Microsoft guys I met when we first convened a working group to talk about JavaScript said it sounds like a skin disease.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  13. So they kind of bastardized it to make it popular and usable and accessible. And so XML as a pure thing was never going to take over. And what W3C was kind of not fully functional because Netscape wasn't cooperating with them. We thought about where to take JavaScript and we realized our standards guru, Carl, Cargo realized there was a European standards body that had already given Microsoft fits by standardizing parts of the Windows 3.1 API, which European governments insist on. And they said, Microsoft, we can't use your operating system without some standards. And Microsoft said, you know, here's And the government said, no, we need a European standard. So this body called the European Computer Manufacturers Association, ECMA, which eventually became global and became a proper noun instead of an acronym.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  14. Yeah, exactly. And so. XML was in its standard form super strict and could never have admitted the kind of users who were committing these errors. And the funniest part was Microsoft said, hey, we're doing XML. But the way they put it in Internet Explorer under the default media type put it through the HTML error corrector.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  15. HTML was the precursor markup language to HTML. It was sort of the more extensible. Generalized Markup language. It was a Pointy brackets, but it had all sorts of elaborate syntax for doing different semantics. And this is why I think TBL and others who wanted to do the semantic web then took XML Forward, but they had this, or some of them anyway, had this strange idea they could replace the web with XML or that they would upgrade the web to be XML. And it couldn't be done. Worse is better had concrete meaning. The web was very forgiving of HTML including sort of minor syntax errors that could be error corrected. Like error correction isn't generally done in programming languages because...

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  16. That was a fun ride, too, because Netscape had taken the lead with the web and HTML innovations like frames and framesets tables. And the W3C was sort of off even then, sort of in SGML land heading toward XML land. I'm going to be a little harsh on it.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  17. It's been a bumpy ride because the standards body got shut down after Microsoft, I think, took over the web and then felt punished by the USV Microsoft antitrust case.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  18. Doesn't quite work. He uses JavaScript locally. He's a local database. What you would think of now is JSON, but it's all. Pure JavaScript code, a bunch of objects being constructed.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  19. Guy named Bill Dortch. You can find his work in the web archive still from 1996. It's a single page application. It's an artist gallery of mountain art.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  20. It did impress me with something which I learned later about from Eric von Hippo of MIT, which is user innovation networks, lead user effects, that throwing out JavaScript, even though we weren't doing open source, we were doing beta releases early and permissively with Netscape, getting early developer feedback absolutely critical. I loved it. I did some of that with SGI with some of the products I worked on, but it really came to the fore in Netscape. And that culminated in Mozilla, where you're dealing with developers all the time and early adopters, lead users. But the lead users helped improve JavaScript, even in those last few betas where I could hardly change things. I was under pretty rigid change control.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  21. But distribution matters. And that's why I think IE was going to win. That's why everybody at Netsuke felt were doomed. This was something Michael Toy and Jamie would say were doomed. But for a while there, we had a chance and we innovated in Netscape 2. We did a big platform push, Java and JavaScript and plugins, more plugins. you know, more HTML table features and really started making a programmable stack out of what were pretty static web languages. And even in the beta releases of Netscape, two people were using JavaScript to build what you would call single page applications like Gmail. And they were using JavaScript locally to compute things and to call the server on a hidden frame in the background. So it was prefiguring a lot of what came later as Ajax or dynamic JavaScript dynamic HTML.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  22. Distribution. Distribution matters more than anything. And this is why even now we're seeing in the browser wars edge doing better because it's being foisted on people of Windows. We have Windows 10 boxes at home. We have some Windows 7 boxes or laptops we keep running to because we We don't connect them to the internet generally, but once you have that operating system to hold, you can force edge. And Apple did it with Safari Tooth. It's not unique to Microsoft.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  23. So, I'm going to segment this into historical eras because I think Microsoft is today with Satya is quite a different company and what they're doing with Edge is different. But back then Gates, you know, aggressive character, not really original in my view, not an originator. Steve Job famously said once, he doesn't have any taste. And I don't mean this in a small way. He has no taste. You can see this. Apple at the time had beautiful typography and ligatures and kerning and the fonts looked great. And Windows had this sort of ugly system font that was carefully aligned with pixels so it didn't get anthropically.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  24. Yeah, like three dimensional. Like even SGI had already But why not put that graphics capability on the web? And in fact, it finally happened at Mozilla with Firefox era with Vlad Vukichevich taking OpenGLES and reflecting it as WebGL. But OpenGLES is the mobile version of OpenGL, which is a standard based on SGI GL. So this whole lineage of graphics libraries or really graphics languages for what became the GPU. And Mark was thinking ahead. It's like, we need graphics too. And I thought, okay, I try to get somebody I knew at SGI, but he's a grad student at MIT. He was studying under Barbara Liskoff. He laughed when he heard about this later, Andrew Myers. He's at Cornell a long time. I think he's a full professor. And Mark said, great, we'll get him. I'm not sure he's going to come. We'll throw money, stock options. We never did it. And they did the sun deal. So Kip nobly put aside his own JVM and we used the Sun JVM. So that was an ambitious period and Mark was very generative because he was pushing hard.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  25. Yes, even though he was saying that, and Java was the big name, hence the trademark license, he saw JavaScript as important. And he even thought, what if we got, I told us in other interviews I can say it, he thought, what if we had my friend Kip Hickman who'd been at Netscape from the beginning and who was Colonel Hacker at SGI when I joined, he started writing his own JVM before we consummated the Sun deal and got our hands on their code. The Java compiler, Java C, which Arthur Van Hoff had written very nice code, was all written in Java. It was self-hosted or so-called Bootstrap. And so we could use that as soon as Java VM could run the bytecode from the JVM running the self-hosted compiler to emit the bytecode. So once we could bootstrap into KIPS VM, we wouldn't need Sun. And Mark was like, well, maybe we can just ditch Sun. We'll have KIPS Java VM. We'll have your JavaScript VM. Now we need graphics. So Mark was thinking far.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  26. Yeah, we would meet at the Peninsula Creamery in downtown Palo Alto. And Mark was just fresh out of grad school or whatever he was doing. And he was big dude. And he got fitter later. He had hair. He would order giant milkshakes and burgers. And we would meet there and brainstorm about what to do. And it was very direct because we didn't have much time. We didn't talk about it, but the implication was Microsoft's coming after us. Mark was saying things boldly pre-IPO like Netscape plus Java kills Windows, right?

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  27. At the end of the day, in spirit. I mean, people complain because scheme has minimalism. It has, you know, six or seven special forms. It has hygienic macros. It has Call CC. It has sort of beautiful, complete set of forms to make the lambda calculus pleasant to use in practice. And JavaScript is kind of multi-paradigm or shambolic.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  28. Stack defenses against taking over memory. So if you can, from the remote side, write some HTML and JavaScript that just happens to exploit a bug in memory safety, like it causes JavaScript to underflow a reference counter. And the script still has its hands on that object and it's trying to call a method on it. And there's some kind of lookup function table in the object. But you've managed to stuff the heap with strings that forge their own lookalike for the function table. You can call some other code. And this was a problem right away. So security, you know, JavaScript up the ante. Java had this problem too, but in its own VM and it just was, you know, a separate headache for Sand to worry about. We had this problem in Netscape right away. So Netscape 2 came out after my 10 days and after these, you know, follow on work to embed JavaScript better in the browser and to add garbage or collection through reference counting, really, I call it reference counting.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  29. If you're writing a game or something and you're doing event based allocation, you run out of memory. And this was noticed in the summer of 1995, and people were like, What's going on? Oh, yeah, I gotta get, I better go back and do reference counting. And then the problem with reference counting is you're writing the language in the runtime in C, an unsafe language. And if you're reference counting and you overflow the counter, you mismanage it so it goes high, it gets stuck high, you leak memory again and you run out. If you underflow it, you pre-memory that's still in use. And even then, we knew what all the security hackers came to know, that you therefore have potentially a remote code execution vulnerability. Because this was before things like non-executable heap memory.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  30. So that making it sloppy came after the 10 days, and my lesson there, which I've tweeted, is When people come to you saying, Can you please make it sloppy or add this cute feature? The answer should be no. And I should have known that because I think Nikolaos Viert, one of my heroes, said the essence of design is leaving things out. But during the 10 days, I also, like I said, I was in such a hurry I left out garbage collection, came back to haunt me, but I got reference counting in in time that people weren't running out of memory right away on long-lived JavaScript.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  31. Sprint between two objects of different dynamic type said no, they're not equal, their types are different. And then after that, I had internal early adopters and they were using JavaScript to match a number against database field that had been stringized. And they said, oh, can we just have implicit conversion? And like an idiot, I agreed. I gave them what they wanted. I was trying to please them and get adoption. And that, you know, broke what equivalence relation nature there was to the double equal. There's some edge cases with not a number that break that too, but it really broke it. Having implicit conversions in the operator is something that people still roast me over.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  32. Not enough. And I was really going fast because I'd already used a lot of C compiler and front-end compiler knowledge that I'd gained from undergraduate school. When I started getting into computing as a renegade physics major, people were formalizing more efficient bottom-up grammars, parsers for bottom-up languages. Really L-A-L-R-1 was the big thing. And I studied all this and learned how to parse them. And in the end, if you're doing C languages, you often do what Dennis Richie did anyway, which is the recursive descent parser. You can hand code it. And I did that for JavaScript in a blazing hurry. It mostly got it right. I didn't, you know, have precedence inversion problems or other bugs, but I copied a lot from Java and C. And I tried to keep things simple, like the equality operator in those 10 days.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  33. So I had to do a demo. I forget the dates. I think for a history of programming languages paid for the Alan Wirsbrock did with my help. He did a lot of the writing. I think it was 10 days from Thursday evening through to the following weeks, the whole of that week and then into the Monday.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  34. Frank Miller put it in the Dark Knight Returns that there was this silly little language that would be the glue language and it could become important over time. And you were better off having that complementarity, that pairing of languages, just like Microsoft stacked it with Visual C++ and Visual Pacing.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  35. I didn't have time to write a garbage collector, so I just didn't at first. So the thing was using essentially arenas or what GNU calls Ojp pools and just would run out of memory eventually. And I added reference counting in a hurry after the 10 days in which I hacked. So after I was in the server team doing HTTP 1.1 and thinking about the language, I finally got transferred to the client team in early May. And that's when I got the ghost sign from Mark and it was like we can't wait because people inside Netscape are doubting even people inside Sun are definitely doubting. Bill Joy was the champion, but he was like alone in that and seeing there was a role for JavaScript as the, as I call it, the sidekick language. Robin the boy hostage.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  36. A comment for old browsers and a set of brackets that were ignored with real code for new. And it was this two way comment hiding hack, as I called it, that was absolutely necessary for us to get off the ground. We couldn't have bootstrapped JavaScript without it. We didn't have scripts that were loaded from a separate file. The only scripts in Netscape 2 were inline in the document.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  37. And whatever coast. I had to hide it from old browsers, including Netscape 1.1, which was predominant then. So I used an HTML comment. But inside the container that comment lived in, the script tag, which is a new element, I could make different semantics in Netscape 2 where those HTML comment delimiters instead of being multi line brackets became one line essentially one line.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  38. The webpage, yeah, it was considered kind of heretical. There was an SGML guru, I forget his name, but he corresponded with me, and at first he was angry. He's like, Should have used a marked section. Why didn't you use a marked section? And I said, Well HTML mark sections are not part of HTML, by the way, and they're not supported in the browser. And so I did some hack that was equivalent. And over time, you could do the proper HTML thing. But eventually it came around and it was, again, sort of evolutionary necessity. It was almost like introgression. Like, you know, the idea. Which Lim Argoulis, I think, helped get across that we have to consider mutualism biology that maybe mitochondria were ancient prokaryotes that got into the cell and became beneficial. Somehow

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  39. I'll try to remember it. I mean, you're right. There were these pregnant moments you see in hindsight, maybe they're overrated, but like Hegel sees Napoleon on horseback at Yena and says, there's the world spirit on horse. And I knew that there was a chance to do it. Mark knew, and he was my executive sponsor, and he was the one sort of brainstorming how the JavaScript should be right there in the page. That was important for him to say that because I thought so too. But a lot of people were like, well, you can't write programming language in the middle of the markup. And indeed, there are problems. If you did it naively, you'd see the code laid out as like random gibberish. So I had to figure out how to hide that. That was a challenge.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  40. Evolutionary advantage in the priority of place, but you can also improve it over time. And so, if you're going to improve flash, and for some reason, Flash is now out of favor. Steve Jobs said you can't have Flash on the iPhone. That was probably the death knell. Put your energy into JavaScript. And that happened, right? So we did things at Mozilla with Adobe to improve, which bought macro media, to improve Flash, and to improve the version of JavaScript that was in Flash. We tried to standardize that.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  41. Not really. I actually admire Flash's technology, and I'm pretty pragmatic about these things. And I realized that it doesn't matter if you're dealt a bad hand like JavaScript was a Rust job, or if you have Flash as a plugin and you can invest in the tools and make it pretty good, you should make it better for your users and grow it as best you can. And what happened with the browser due to Microsoft's monopoly abuse for which they were convicted and even after that until I think Firefox and then Chrome was people kept saying, oh, the web can't do X, it can't do Y. We'll have to have a plug-in. We'll have to have a new approach. We'll clean the slate and have a new web. And everyone who said that failed. And the reason they failed is because there's too much value in the web, this huge network. And the worst is better principle means that you can not only start bad, which they all sneer at, but get on first and get wide distribution, get sort of.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  42. Was one of the last ones, these tools were used by real artists and special effects people and designers. All the restaurant websites around 2005 were done in Flash, which was, you know, we were trying to do HTML5 at the same time. That was the Firefox era. We were trying to make the web capable enough you didn't need Flash. But if you recall, you go to a restaurant. It's like, this is kind of like a game or something. It's like a flash. All the font looks small.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  43. No, it was called Future Splash, and it was these brothers, Jonathan Gay, I think his name was. He came knocking, and the marketing guy at Netscape who was screening the technology partners or wannabe acquisitions was brutal. And just everybody wanted to get in on the Netscape stock gravy train. And he sent them packing. And they ended up selling the macro media. And Macromedia was where Flash was created. And the good thing about Macromedia was it was a tool company. So it invested in the best ideas, I think, which are still somewhat lost to us of Flash, the timeline animation has sort of an immutable function over time.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  44. And after Microsoft kicked it out, it was a plugin, and you would find it required for smart card, banking in Nordic countries where that was mandated by law, but really didn't get used much. Or there were pilots who used it for flight information. But Flash, which Netscape could have bought, but fortunately didn't, the early didn't. Yeah, we would have screwed it up.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  45. And when they gave the boot to Sun, suddenly other, you know, the left hand gave the boot and the right hand said, we better do something else and outlook web access. What are we going to do? And they said, let's just add an active X component, which is their own native way of embedding things in languages. We'll make it, it'll be what became XML HTTP request, which is now a web standard for calling asynchronously. And it's been replaced by the fetch API and HTML5 or HTML living.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  46. And Microsoft kicked Java out of Windows, and that's when they really pulled the trigger. I think they already evaluated it and liked it on Anders Hellsbergs.net and C sharp and decided we're going to just not have Java. We don't want any of that sun stuff. We don't want the patent risk. We don't want, I'm not sure what all fights were about. There was some patent angle to it, I think. Up till then, Microsoft had been using Java components like in Outlook web access, which had a lot of JavaScript to be a webmail like Hotmail-like user interface, they had to call the mail server through HTTP and they used a Java object to do this.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  47. What happened over time? It's like an evolutionary filter. Just kind of who needs the plugin? And in fact, sun mismanaged Java as a plugin. They thought, oh, Netscape is giving us the distribution vehicle and we don't care about the browser. It's just about getting Java out there. And that was a big miscalculation. They then tried, because Microsoft's killing Netscape after years, they tried getting into Microsoft. And you may remember there was a Sun Microsoft deal, which famously blew up.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  48. It was a mix of event driven single threaded programming because it had to run in the main thread of the browser where the action is. And Java never got there, which meant Java could not interact easily or quickly in a nested way with the document, with the objects reflected from the HTML document, with the tables and forms and so on. And that is one of the reasons I think JavaScript survived and Java kind of died. Java was in this plug-in prison. It essentially was confined to a rectangle, the Applet rectangle. And while we even built next year, Nick Thompson, a friend from SGI, who was an intern grad student at CMU at the time, built the first version of Live Connect to glue Java and JavaScript together to deliver on that vision where you do have commerce between the data types in the heap.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  49. Right. And the reason was Java was going to run into plugins. We could fork threads and go to town. But the main action in the browser was in the single threaded program, the single Unix process on Unix or Windows. And it was where you had to service the event loop and then go do things, respond to the network, lay out some HTML, render it, turn widths into heights by filling containers, boxes, the early, what became the CSS box model, and run scripts to make the thing livelier respond to user input. And all that event driven programming was in part like HyperCard because HyperCard had this on event name syntax. And so that's why you have in JavaScript on click run together as the name of the event handler. And there's some funny ones on mouse over and on mouse out. People still complain about those. But, you know, there are many more events now over the years standardized.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source

  50. I wanted first class functions because I saw the need for callbacks in the browser where it's a single threaded program. All the early browsers were single threaded, and it's the right model for users. Most users weren't ready for mutual exclusion. Reading. So in a single threaded world, you cannot block the user interface. So you have to use a callback and run later. Without getting too fancy and trying to capture the continuation like CallCC does in Scheme, I thought I'll just make it easy to have fun arcs, first class functions you pass, you know, downward and it can call back, be called back. And Java didn't have that at the time. It took forever to get proper first class functions lambdas now into Java. Java 7 or 8, I think.

    2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source