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
“We had tabs the whole way. So it started out in Mozilla slash browser in 2002, became Phoenix. There's a BIOS that has an embedded version of IE, and they said, we're called Phoenix Technologies, you can't use Phoenix. And so we said, okay, we'll call it Firebird. And then this Australian-centered open source database project started really like in the true Mad Max style just screaming at us saying, you can't use Firebird. And I had to sort of be the ambassador and say, okay, we're going to rename. We don't believe you shouldn't have used it. We hate you. We renamed it to Firefox, and they're like, ah, we love you. And then I haven't heard of them ever since. But Firefox was a clever name. We had to think of something distinctive. We wanted to keep the fire going. And it turns out there's a red panda, right? It's a nickname for.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“And all that kind of stuff. CSS finally, which Microsoft embraced with i4 and Netscape never really did, right? CSS became a better standard over time for doing table layout that relieved you of the need to use what are called spacer gifs. Spacer gifts, right? Images you would throw into space out tables. The typographic power of the web has gotten better, but it's still not on the level of PDF. And you can't do advanced typography. But it's gotten really better. And even then, tables were getting better. If you were using Firefox, that would have been 2004 because it was called Firebird until earlier that year.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“It's just weird. Browsers like Mozilla and then Firefox were adding tabs, Opera had a version of tabs, and they didn't add tabs. And pop-up blocking, something I should have done from the start. People realized that you can tell when the user clicks something and it goes in JavaScript to open a little window. You can sort of inspect the stack and see that the click originated that, and it's probably okay. Whereas if you're just loading a script and it opens a new window, that's a spam technique and you should block it.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“And maybe I shouldn't give them credit for having the resources to hire talented people, but they did a credible job on IE4. What really was bad was that phase of the browser was ended with monopoly and Perhaps due to the antitrust case, perhaps due to regulation in Europe, perhaps just due to Microsoft not liking dealing with standardization, they let it rot. They just abandoned it i5, 55, i6 later, but these were not well maintained. They had a lot of security bugs.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“And so Scott Isaac put in a lot of those funky DHTML APIs that didn't quite have the same flavor as the stuff that I did. And neither of them was like the later sort of verbose Java-like DOM W3C standardized. But I4 was pretty darn good. I remember a friend, Scott Ferman and I got invited by Scott Isaac, Gordon Beersch in San Jose. They were doing a preview of I4. This must have been 1997. Scott says, yeah, we've got here there's the new graphic stuff we're doing. We've got something like your Netscape layers. We've got VML, a vector markup language. We can do like virtual reality. And Scott and I looked at each other and said, we're doomed, right? Microsoft was starting to fire on all cylinders. So I have to give them credit for that, even though they abused their market power.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Yes. And yet, Netscape screwing it up and Microsoft really putting some quality people on it, iE4 was good. On Windows, it was good. And they did the dynamic HTML innovations. Scott Isaacs, my old buddy, a former accountant who programmed in Basic and became what Microsoft calls a program manager, which is kind of an elevated position. You can be a programmer, an engineer track, but you switch to it and you sort of lead a lot of design and standards efforts.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“For a while, they're keeping it separate really does work because you bought it for its value, it's complementary, and you're not messing with it with Netscape, when they bought a bunch of companies, they had some of the first floor people or the founders burned out. They had newcomers who wanted their turn to do the browser. And they hadn't really done browsers or understood them. And so Netscape 4 was originally supposed to be three, and it was so late they renumbered it. We did a three release. Jamie and a few others put some extra effort into SecureMime was supported in the mail built-in mail program. And Netscape 4 was late, and it was only on Windows at first. And Microsoft had really started doing better, like they do. They copy and the first version's trash and the second one. You're starting to feel a little threatened. The third one, you can tell what's going to happen. And the fourth one's good.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Yeah. So I mentioned that Microsoft, which was convicted for it, did abuse its monopoly, but they had a pretty good team by the time they did IE4. And Netscape, unfortunately, I was like the second floor and I was friends with all the first floor people, the front end guys who did the JavaScript event hook up and things like that that that team was fairly burnt out and I think having gone public, the upper management wanted to buy a bunch of companies to try to go ahead to head with Microsoft didn't work, but buying a bunch of companies usually doesn't work. I think the modern sort of approach roughly is like Mark Zuckerberg took, which is to keep them at arm's length and let them do their thing. And now that he's pulling WhatsApp in and people are fleeing it because it's tied into the ad surveillance.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“In JavaScript, it just happens. So once I explain it, like, oh wow, I get it. But it also means that you can commit a blunder that.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“I had my Python right. It came from a lineage of ABC, which was a pedagogical language in the Netherlands. And It was a good teaching language too. I think it is a good teaching language, and it's a little more restrictive in that if you misspell something in a way that JavaScript might let run, let reach runtime, it'll get stopped at syntax check in Python. That's good for beginners. I think the sloppiness that some people object to, like people were just tweeting at me, having just learned JavaScript. They said, I can take a number and I can index into it and get undefined out of it as a property. And why is that? A number is not an object. And I explained why it is, because like in Java, the primitive types, which unfortunately are not objects, can be automatically boxed or wrapped by an object. And I made that implicit in Java, it's typed and you have to declare things and you'll get type errors. But there are cases in Java where you get auto boxing or auto wrapping because you've declared that you want it.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“25 plus years, you know, it's an adult. Should be out of the house. But it could be around another 25 years. Cannot rule it out. So Rusk will be around for a long time. The longer you around, the more likely you're Lindy and you're around.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“And we thought, can we have a sort of safety property through type and effect system or an ownership system? And Rust has that. And that ownership system is interesting because it doesn't just give you memory safety. There's a sort of theorem for free, a dual that falls out for protection against data races. So Rust is better for low-level programming. You delimit your unsafe code where you do have to be unsafe. And you can prove certain facts about memory safety and race condition avoidance. And so I think people should learn these new languages. I think Go is a great language. I admire the Unix people who can still was involved, Bob Pike, of course, Dave, what's his name and other people. Go is a huge success really on the server side, anywhere you have a lot of networking to do. And it's garbage collected, but it's also very pragmatic. It has that sort of sea flavor.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“So I think people should look at multiple languages because there are different tools in the belt. If you're trying to do supervision or rapid prototyping, you want a dynamic language. You want to throw things together and see what works. If you're trying to go down to the metal very fast, well, I'm an old sea hacker, but I was also the sponsor, executive sponsor of Rust at Mozilla, and Rust is now escaped from that sort of nest where it was born to be adopted by a bunch of companies and have a foundation in the works. Some of the key core team members are working now at Amazon and other places. So it looks like Rust has reached escape velocity. And Rust is an interesting language because one of our goals there, one of the reasons I sponsored it was we were all tired of seeing those remote code execution vulnerabilities due to CNC++.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Have this fast just in time compiler tradition. There were some projects that tried this, and some of them were interesting. PyPy was interesting. The philosophy with Python was, oh, you need to go faster. Write a C plugin and drop into C”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“So, you asked about machine learning, and you know, JavaScript is a general purpose language, and it's a language that's not that great for doing matrix operations or doing parallel programming, I would say, without using some extensions or some libraries that have some magic in them. So if someone wanted to learn their amazing languages in sort of the APL family that are very useful for, I would say, linear algebra, which gets to a lot of the kernels and machine learning. And so APL had like J and then K and their K variants because the guy that did K is still going and they're proprietary, but he's still innovating there. Python is used. So people talk about Tennessee.js. Well, it's not that surprising because Python was heavily used for machine learning. And Python was always, you know, they didn't.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“User code in a process is Is hosted, it's the guest in the host, and you get to suspend it, you get to kill it. If it crashes, it doesn't take down the whole OS. Wonderful idea. The call into the kernel is expensive, the system call is so-called. And this has even been optimized now for things like getting the time of day so it doesn't actually enter the kernel. And meanwhile, hardware architectures and virtualization techniques have gone in a different direction, even to the point where you can do software fault isolation very cheaply without. JavaScript will take over computing because the system call boundaries too expensive. So everything ends up in JavaScript with these lighter weight isolation enforcement mechanisms. It's not totally beyond belief. Free Web Assembly too.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Is a dystopia and a nightmare to some people. When I did AsmGS and WebAssembly, I would joke and meme people with scenes like Neo waking up in his pod in the Matrix and he's all skinny and weak and hairless. And you realize in the future that you're living in some simulation that it's all running on JavaScript and you just scream forever. It's possible. Gary Bernhardt does these funny talks. He did WatJS and then he did this life and death of JavaScript. I think it's called where he took some clever ideas that actually have a thread of credibility to them. I mentioned software fault isolation. In the old days when we were using computers, we said we're going to use the Unix monolithic monitor. And it's the privileged program. This is before you even had hardware rings of protection, some of the early 60s operating systems used hardware protection zones. But Unix is privileged and the program that runs”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“We're living through it. That's I'm glad it's not street warfare or mechanized warfare because it has been in the past. It's more like soft power.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“And a lot of this was due to the money interest buying control of politicians. And Plato's five regimes, that's oligarchy. That's where we are And now we're seeing a fight against the old arts. I don't know if it'll work, but you're definitely seeing it. And it's also kind of hackerish, right? It's got a hacker ethos. Hey, Robin Hood, no fees. Oh, interesting. Hey, By a fraction of a share in this thing, I can keep buying with my stimulus check. I mentioned Hegel seeing Napoleon on the horse. Hegel also talked about the cunning of reason that you have The sort of Godse history in full, and if you believe in God, or we don't know the future, but there's always this sort of flying the ointment, this unintended consequence that confounds the best plans of the powers that be.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“They know how to squeeze a short, right? So the amazing thing is you have Robinhood app, which was, again, supposedly for the demos, for the people. And eliminated the fee through various kinds of straddles or some kind of spread operation that helped them eliminate the fee or eat the fee. And in fact, as a broker in these days, because it takes two days to settle, there's counterparty risk, as they found out. And so the Wall Street bets people, you know, the memes are like the Terminator robot with the $600 stimmy check. The hedge funds, the little girl hiding under the desk. There is a problem, which I talked about in the recent podcast, which I'm conscious of from the history of the web, and that is you could say it's monopoly, which antitrust wasn't enforced after USB Microsoft for a long time.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“I said, my own experience with dismal science, as with physics, led me to reject a lot of bad models. Economics was always compromised by politics, political economy. You could also argue that it used to be a branch of moral philosophy, so it was concerned with the good, and it became divorced and became sort of in this. Quasi-Newtonian way just about everything's just running by itself. Don't worry about it. This monopoly crushing your Netscape company, but that's just nature.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“It's more thematic, it's more of the people. It lets people in without requiring these credentials. I remember in the late 90s into the naughties, people were all getting Java credentials. And I knew people and friends knew people who became Java programmers and you knew they really should have been like nature guides or pilots. They hated programming, but they thought, I got to make money, I got to become a Java programmer.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Do use it and do interact with the standards body. The standards body is competing browser vendors mainly, but also now big companies that use JavaScript heavily, the PayPal's and other such companies, Salesforce. And they have to cater to web developers. They have to hire developers who know JavaScript. They have to keep their engines up to the latest standard. And this creates all this sort of social structure around JavaScript that is unusual. I mean, you get C++ buffs to follow the inner workings of, you know, C++, what is it now? 21 and something. I don't know. I've lost track. But it's a more rarefied group. It's more like the old language gray hairs. Whereas JavaScript is a younger and more vibrant and large crowd.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“It has to keep connecting. If JavaScript kind of went off in this, people sometimes complain about ES6. Oh, you put classes in JavaScript. I hate classes. You've ruined it. But it's not true. It's dynamic language. Small talk had classes. Python has classes. There are lots of list variants that had classy systems. Comment lisp. So, you know, people who don't reject it based on some sort of fashion judgment.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Bunch of people's jobs making JavaScript survive those early years when it was kind of touch and go, right? JavaScript was considered a Mickey Mouse language. It was for annoyances like the scrolling text at the bottom of the browser in the status bar. But I kept listening to developers, working with them, and trying to make it run in that single threaded event loop in a useful way. And I think that forged something that people have come to love. Now, you don't always love the best thing, right? I talked about Shakespeare sonnet about my mistress eyes or nothing like the sun or the scene from Josh Whedon's film Serenity at the end where the actual piece and the score by David Newman is called Love, where Captain Mal is teaching River Tam about how to pile the ship. And she's a super genius, super soldier. She knows how to do it already. And he's basically talking about how you have to love the ship. Because if you don't, it's going to kill you. And then the piece falls off.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“So, I think I did by doing first class functions and taking the good parts of the C operator hierarchy and just keeping things simple enough, maybe it could have been simpler, but had to make it look like Java and interoperate with Java, that there was inherent goodness, Aristotelian quality there. And people perceive that even through all the quirks and warts. And then over time working on it with the standards body, working on it not only as a core language, but in the context of HTML5 and making the browser better, listening to developers, thinking about this is something that Nick Thompson wrote nicely about on anachronism. I was very flattered. He said, Java was this thing where the experts were writing the code and it was compiled and you had to declare all your types. And Son didn't really give a damn about the average programmer who wanted to build real web apps dynamic things. And I was in there meanwhile doing, you know,”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Yeah, in 2006 lunch at Google's campus. And then I had another friend who was Devrell at Chrome and he said, yeah, we don't know what they're doing. This is getting 2007 to fall, getting toward 2008. We're trying to get Chrome out and we don't know what's going with the V8 team. They're often Aarhus, Denmark, you know, rewriting their engine four times, which is good. That's the right way to do this kind of development. They were learning JavaScript, including all its quirks, which they came to hate with the fire of a thousand suns, which is one of the reasons that Lars and Company did Dart their own language. But they also made the language fast. And meanwhile, we knew this was happening, so we got our act together with TraceMonkey, our Tracing Jit at Mozilla. And Apple, I think, was also aware. So they were doing their own jit. So the era of jitted fast JavaScript in 2008 had this prehistory going back to small talk itself and anamorphic. And again, the lineage is interesting because you had Lars and Anamorphic and then he ends up at Google.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“This sort of dynamic polymorphic caching there, too. And they did that. And Hotspot's amazing, amazing beast. I've met like 13 people who all claim they created it. I think one of them may deserve credit more than others. But I didn't get to do that in JavaScript. And when we knew that Google was going to do their own browser, which we knew at Mozilla around 2006, I also met the team that did V8. And it turns out it was Lars Bach, who was one of the young engineers from Anamorphic. And so Lars is like one of the world's expert on these kinds of virtual machines. And he picked my brains about JavaScript. And I could tell he didn't like it at the time, but he had to do it.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“And you start to form these ideas about what types are actually flowing through key operations, and you form little so-called polymorphic inline caches that are optimized machine code. The cache is the machine code that does a quick check to make sure the type is right. And if it's not right, it bails to the interpreter. And if it is right, you go pretty fast. And that short test is a predicted branch, so things are pretty quick. All that amazing stuff I knew about in the 90s. I didn't have time to do it. And anamorphic got bought by San, and they did hotspot. And you needed that even in Java because at scale, Java has some dynamic aspects due to invoke interface. You can have basically collections of Java code where you don't know at the time each module or package is compiled exactly what's being called, what subclass or what implementation of an interface is being called. And so you want to optimize.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Does, but I knew so the funny thing is computer science is this big karmic wheel, right? Wheel of fortuna. And in the 97, I was loaned by Netscape to do due diligence for Sun in their acquisition of anamorphic, which was David Unger and friends, people, Craig, I'm forgetting his name. He went to Microsoft. These Stanford language buffs who had taken small talk and then David Craig itself as a simpler sort of small talk language and made really fast just-in-time compiling VMs for them. And they were well ahead of Java hotspot or JavaScript V8 or any of these modern VMs figured out how to make dynamic code fast because Smalltalk is a dynamic language, right? It has classes, it has, I think, more lockdown declarative syntax than JavaScript, but it's fundamentally dynamic. You don't declare the types. But you could infer the types as the program runs.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“But when we did AsmJS and we showed Unreal Engine working, I think it was only a matter of time before Google threw in the towel. And in fact, everybody agreed in spring of 2015, we're going to take what was proven by AsmJS and make a new syntax, a binary syntax that's efficient, that loads into the same JavaScript VM. The JavaScript loads into. So there'll be two source languages, one VM, very important, one garbage collector, one memory manager, one set of compiler stages. And that's called WebAssembly. And that's the successor to AsmJS. And it's important that it have binary syntax because at the end of the day, especially on mobile, if you're downloading JavaScript, even if you're using LZ compression on the wire, that's cool. But you've got to blow it out into memory and then parse the silly eight-character function keyword that I picked.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Sort using some kind of virtualization technique. And maybe it can even be in process and still be memory safe. That would be awesome. But they ended up using process isolation too. And that kind of weakened it. And in the end, it was like portable native client. Okay, meet the new boss name as the old boss. This is the Google Flash, right? Yeah.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“And even before then, you had the fast JavaScript VMs in 2008 when Chrome came out just before it came out. Mozilla, my friend Andreas Gal and I and others hacked out TraceMonkey, our trace-based jit, the squirrel fish extreme team at Apple did their jit. And we were all competing on these crazy performance benchmarks. It was a little bit too much tuning to the benchmark. But JavaScript started getting fast and developers started noticing it. But it was still kind of its own high-level language with garbage collection. The ASMJS step helped us go further because until we really proved the concept, people were still saying, well, JavaScript's okay, it's getting faster. Thanks to V8. Everybody gave Google credit, especially Google. But we need something to kill Flash. Let's use the portable native client code that Google had acquired native client, which is a separate lineage for taking basically Code, compiling it into a software fault isolated container.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“OpenGL, ES came to OpenJL, which came from Silken Graphics Jail. They had to have web audio so they could map OpenAL, which was another audio library standard to web audio, which was kind of a Chrome idiosyncratic thing. But they could make it work. And they had to have ASM JST for fast C++ to JavaScript. And if you didn't have that fast compiler step, the JavaScript you'd write by hand trying to do an Unreal game would be too big and too slow. It would touch the garbage collector. It would not keep up with 30 frames a second on the hardware 2013 hardware. So we demoed that at, this must have been fall 2012 now, I think about it, because we demoed it at GDC, game developer conference 2013, and people were stunned. It's like Unreal Engine, Unreal Tournament running in my browser window, no plugin, no flash, no Java, no.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“It calls a bunch of functions that come from the C functions or C code that you're compiling. And you can make the epic Unreal engine go in 30 frames a second. And when we did this in 2013 in the fall, Tim Sweeney, I met didn't think it could be done quickly. I thought it would take years. And the team went to Raleigh, to Epic, and in four days they had Unreal Engine ported by pressing a compile button. But they had to have WebGL. Which came from”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Asim.js. And this is a strange thing to think about because it doesn't have new syntax. The types are casts that occur in dominator positions in the control flow graph. So it's like a hack on JavaScript and it's a subset. And it uses those bitwise operators that I talked about copying from Java to basically cast numeric types, which are double precision flowing point into integers. And so inside JavaScript, in the kernel semantics are integers. And if you use these operators, if a compiler emits them in the right places, you can then treat them as typed values, typed memory locations, and you can type check your program. You can not only type check it, you can compile it. This is all in sort of linear time, ON. You can compile it to have deterministic performance. It doesn't touch the garbage collector.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“We at Mozilla realized this, and we saw JavaScript was something that you could compile to. Adobe had somebody in the Adobe Labs doing this too. He had a project called Alchemy. We had somebody who's now Google and Zakai who did his own LLVM-based compiler that would take C or C++ and it would emit JavaScript. And you would think this is crazy. You're going from this sort of machine type low level controlled memory allocation language to this garbage collected, dynamically typed high-level, higher-level language. But alone sort of just phenomenologically carved nature of the joint and found the forms that were fast in JavaScript. And then with Dave Herman, who I'd recruited from North Eastern University, who was a type theorist, and Luke Wagner, who's still at Mozilla, who was the compiler guy and the jet guy, they figured out how to codify what Alona had done into a typed subset of JavaScript called”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Yes. I heard that too. I didn't use it, so I'm. Doing the grass is greener thing here The thing I liked about the animation model was that it was this immutable function of time, so you could time warp and you could, if you dodge these bugs or worked carefully, you could really make it sing in ways that I think is still a little challenging with web animation standards or just using raw canvas and WebGL. But there's so many tools now that maybe it doesn't matter. And yet we had to do video. We had to do WebGL and then evolve it. We had to do web audio. But once we did all these things that helped Flash die thanks to Steve Gubbs. We had something that people didn't realize. We had that vision that Mark Andreessen had this graphics capable. To the metal portable runtime.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Well, I'm not sure what trope you want to use. Flash was a zombie until just this year, right? Or last year. I think last year was the end of Flash in main browsers. But jobs really did the death blow. And yet, you're right. We had to make HTML5 competitive. I still don't think we got that beautiful timeline animation. Timeline thing.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Came in in the spirit of Ian Hickson to do HTML5 work, and they've carried on that effort. So it's a mix of pragmatism, de facto standards from the past being sort of combined or written down for the first time and then rethought in a way that has a simpler syntax like the fetch API instead of XML HTTP request.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“A little bit My old friend Hicksie did a great job. He was another renegade physics student. And he was basically a QA guy at Opera, but he obviously is a trained physics student and someone who could write a Britisher. He developed test suites and he started thinking about them more axiomatically. Now, this can be good because you can sort of systematize in a way that makes a better HTML, or you can get caught in the pragmatism of saying, well, we have to handle these edge cases so we're just going to have sort of a test matrix. And if the matrix is large, it will not be beautiful by many people's lights. Everyone likes to minimize along their preferred dimensions, the seven special forms in scheme or whatever. But reality is HTML needs to be big. It's kind of shambolic, accretive, multi-paradigm. And Hicksy did a good job, I would say, with a bunch of it.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Let's XML is not going to replace HTML. HTML4 is too old. Let's standardize HTML5 based on all this good stuff, including that DHML variant dynamic HTML.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“And that highlights also this division between the core language JavaScript, which can show up in other places like Node.js on the server side, and the browser specific APIs or the document object model APIs, which are even managed by the W3C, the standards body that was off in XMLAN when we were doing real JavaScript standards in ECMA. And you have this division of labor, division of responsibility, and division of style and sort of aesthetics. Also speed. So the document object model really stagnated after Microsoft kind of deinvested in the web. Microsoft did something in their haste in the spirit of Netscape, doing things quickly and getting on first called DHTML. And some of their innovations that were like an alternative document object model didn't really get standardized until HTML5, when we pragmatists sit OPFAR at the time Ian Hickson, who went to Google, Apple and Mozilla said, let's.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Find now with the modern standards that we were working on in the HTML5 sort of effort, that things became simpler. The fetch API and the query selector API, document.query selector, a lot of things can be done now in raw JavaScript that you would make more concise and terse in jQuery, but it's not bad. It's pretty good. Whereas in the old DOM of 15 years ago, it was just too verbose.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“I think that maybe they should. Now, jQuery was a very clever thing. John Resick made this library that was sort of query and do and blended sort of CSS selector syntax with JavaScript sort of object graph or DOM querying and made it very easy for people to do things almost like they were learning jQuery as its own language, domain-specific language. And that, I think, reflected in part the difficulty of using the document object model, these APIs that were originally designed in the 90s for Java as well as JavaScript. They're very object-oriented or even procedural. They were very kind of verbose. And it took like a constructor call in three different hokey-pokey dances to do something. Whereas in jQuery, it's just one line. That fed back finally into the standards. It didn't mean we standardize jQuery. It wasn't quite that concise.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“There's a hope that at some point, if they keep reconverging it and the standard doesn't break them and goes in a good direction, we will get at least the annotation syntax and some semantics around them. Because when you're talking about type annotations, they're generally on parameters and return values and variable declarations. They're cast operators. You want that syntax to be reserved and you want it to work the same in all engines. And this is where ideas like Gilad's pluggable type systems might be good, though then you could create the same problem you have with Lisp and Scheme where there's a bunch of macro libraries and they don't agree and you have conflicts between them. But pluggable type systems could be one way to standardize this.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Obligated with TypeScript either to carry their own version or to bring it back with incompatible changes toward the standard over time. And I think they've played generally fair there. There's some sentiment that why don't they standardize TypeScript? Well, they've been clear they don't want to. They have a proprietary investment. It's valuable. They have control of the ball. And in some ways, you can say the same thing to any of the other big companies in the standards body. Why isn't Google standardize its stuff?”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“It's beneficial now. It's technically a superset of JavaScript, so of course I love it. The shortest JavaScript program is still a TypeScript program, any JavaScript program is a TypeScript program, which is brilliant because then you can start incrementally adding type annotations, getting warnings, learning how to use them. Microsoft had to kind of look around corners at the standards body and guess how their version of modules or decorators should work. And the standards body then may change things a bit. So I think.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Microsoft did something smart too. Anderson, Luke Hoban, who's left Microsoft, also did TypeScript. And they realized something, I think, that Glad Brock has also popularized. And he was involved in Dart at Google. Don't worry about soundness in the type system. You don't try to enforce the type checks at runtime in particular. Just use it as sort of a warning system, a tool time type system. You can still have a lot of value for developers, especially in large projects. So TypeScript's been a roaring success for Microsoft.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source
“Yeah, it was done finalized in 2015. It took a little longer than we hoped, but because ES5 was 2009, and that was a smaller increment from ES3. We skipped four again. We mothballed him. And we had a split in the committee where some people said, you know, ES4 is too big. We're going to work on incremental improvements. No new syntax in particular, they promised. Not quite true. But they added a bunch of interesting APIs. Alan Ware Sprock, my co-author of the Hobble paper. And he was at Microsoft at the time. I ended up hiring Mozilla. He wanted to get to Mozilla and keep doing the sort of editing job of the JavaScript standard, ECMAScript. And when we got ES6 done, it was a little late, 2015, and we switched to year numbers. So people still call it ES6. I call it ES6. But if you remember, you know, off by nine plus 2,000.”
2021-02-12 · Lex Fridman Podcast · #160 – Brendan Eich: JavaScript, Firefox, Mozilla, and Brave · IDENTIFIED FROM THE TRANSCRIPT · source