I was hired at Netscape in April 1995 Netscape had already launched it's 1.0 Mosaic killer. If you remember, Mosaic was the big, I think Mosaic was the big browser until Netscape took over. So when I came to Netscape they'd been going for about a year. I actually had an option to go in at the beginning, I passed it up. But I went in, in time to do what I was tempted to do, which is a programming language for HTML for web designers and programmers to use, embedded directly in the webpage. Not something that was, like, coming along at the time called Java, which was more of a professional's language, where you would write real code with type declarations and you'd have to write that code in a way that compiled. I was writing something, JavaScript that could be used by people who didn't know what a compiler was. They were just gonna load it, it was like basic. And that was really the pitch that we would make, two languages, not one in August the Microsoft's visual basic for C++, so JavaScript for java. Bill Joy of Sun actually liked that idea and agreed with and he was the guy that signed the trademark license by which what I had created became JavaScript. The name is a total lie. It's not really related to Java, so much as to its common ancestors C in Syntax. And to the extent that we made it easy to use, and something you could copy paste program, or start small from scripts, and grow to programs. Javascript has succeeded massively. It was also an incredible rush job, so there were mistakes in it and something that I think is important about it, is that I knew there would be mistakes, and there would be gaps. So I made it very malleable as a language. And that has enabled developers make it be what they want it to be, to project their own style of not just API, but almost language pattern on it. And create their own innovation networks to Eric Von Hippel's phrase, or innovation tool kits on top of it. So, it's not a language that tries to restrict you to one paradigm, it's a, a multi-paradigm language. ≫> I mean there's all these things where our language comes out and immediately trips and falls and you have to sort of, it's okay. ≫> Mm. Hm. ≫> the second time. But there wasn't really a trip and fall in Javascript. Why? ≫> So, you could say that it hasn't been a version two and that's true, cause I've tried to work on what might be a big version two, that was called the fourth edition, and that failed. There has been evolution. The web is all about evolution. People don't quite see this while you're in the midst of it because it's micro evolution. But web pages from the'90's don't all render properly these days. They don't all work right and a lot of them are lost and only available through webarchive.org. Javascript had enough at the beginning, enough good parts to use Crawford's phrase or enough genetic material from other languages. You know, first class functions prototypical inheritance from self. The inheritance of first class functions from scheme is really kind of a fraud because scheme is different in many ways and I couldn't make those, differences manifest. I, I couldn't do the scheme thing in Javascript. I was under these marching orders to make it look like Java. I had ten days to prototype it. So scheme was more of a spiritual than an actual influence. But first class functions are very powerful, and they, fit with an event handling, sort of, programming model. I was inspired by Atkinson's Hypercard. So that's why you see on click in JavaScript. Hypercard had this pattern for event handlers called on, you know, on page, down or whatever. So. Javascript had enough good at the beginning to survive. Now, if you think back though to the mid 90's, Javascript was cursed, because it was mainly used for annoyances like little scrolling messages and the status bar at the bottom of your browser or flashing images or things that popped up windows massively. We could have put in controls for those and we should have. Eventually browsers Fi refox kind of championed this, lead this automatic suppression of annoyances that made it all much better. And with Moore's Law compounding and with Javascript getting some evolutionary improvements in the standards process, it became really quite fast enough and good enough in 2004 and five to get the Web 2.0 revolution that was, I think, tied in with Firefox's retaking market share from IE, and developers realizing that there was a client side to the programming stack that could be expressive and powerful, and could be fast enough thanks to faster computers, mainly. ≫> You must've had some training, some kind of. ≫ Oh, I've done a lot of. ≫> Set of experiences. ≫> Yeah. ≫> Thank kind of got to the point where you could pull from scheme, and.>> Mm. Hm. I've implemented a, I was sort of a language buff when I first entered computer science. I was a math-physics major originally, and it ended up math-computer science when I finally got my undergraduate degree. So, I was programming formal language theory applied to recognizing languages, [inaudible] analysis, Parsers, automatically constructed parsers from grammar. I love that stuff because it was all very pretty and clean theoretically and it's still is, it hasn't changed a lot. There's been only one or two innovations since my time in the university in the early 80's. So what, what that gave me was the ability to quickly knock out, you know sort of a language interpreter. I could do the, the parser and the scanner, I could generate bytecode because Netscape wanted to do a server side embedding in JavaScript, even though it could have been three walker or something that interpreted parts for you. I mad a bytecode, for it and it was an internal bytecode, not the Java bytecode that's become a handicap for Java, I think. And I knocked all that out really quickly because I had done it before. I done it at Silicon Graphics, the field of network monitoring tools to capture packets based on expressions over fields of the various pr otocol headers. I've done it for fun, just to make my own languages. And finally, I got to do it really quickly. The, the speed was an issue for me. It was partly, we were all feeling like Microsoft was gonna come after Netscape because they had tried to buy Netscape in late '94 for too little money. I, I'd heard about this, in this before my time at Netscape. But we also were in a weird game period with respect to Java. Because, even at Netscape, some people thought, well, if we have Java, do we really need a second language? They didn't see the benefit of the Visual Basic companion language for a much larger cohort of programmers or amateurs, designers, beginners. To, to write Java is to write C++ for the Microsoft platform, that they took a lot of education and greater pay. It was a higher priced proposition to get people gluing components together and designing pages and filling gaps using JavaScript as they did in Basic, in Visual Basic and Microsoft Windows was cheaper and wider-spread. It also enabled this, user innovation tool kit approach, to use Von Hibbel's phrase again, because Javascript was malleable, because there were so many web designers, he would see different schools of thought on how to use it emerge and this has become quite clear over the last ten years with the various Javascript libraries. And I think that's actually an advantage, as I said earlier, to Javascript, that we're not telling you, here's the one way to write it, here's the one true object oriented paradigm, here's the only way you should ever make a usable extraction. It's not umixed, right? It's hard for beginners. People reinvent certain wheels, and make mistakes doing it, or don't have, like having to acquire a library. But you see jQuery, probably why, because it gives people this very, sweet, query and do paradigm. And, and again it's not mandatory with Javascript, but a lot of people learn that, and they think that is Javascript. They think jQuery is a language, or they think, you know, jQuery is the tail that wagged the dog. Jquery is great and John Resig used to work with us at Mozilla, and, but there are so many good libraries out there now. And they're shrinking and becoming more compositional, which is a good trend. So, Javascript by being maleable, and sort of fostering user innovation, I think has, played a unique role. If I had done something more rigid, I think it, are greater when it failed. ≫> I, I just can't imagine how you would have escaped from the [inaudible] pattern of C++. ≫> Partly I had to because if I'd done classes in Javascript back in those ten days in May in 1995. I think I would have been told, this is too much like Java, you're competing with Java, you know, somebody at Sun would have yelled at Bill Joy more than they did, and they might have killed the deal. So, I was definitely not only under time constraint but under marketing orders. Make it look like Java, but don't make it to big for its bridges. It's just this sort of silly little brother language, right? The sidekick to Java. ≫> But then you put in it's primitives. ≫> I snuck some stuff in, yeah. ≫> You put some primitives, you know, like closures and all those other things that. ≫> huh. ≫> That is like, you can build what you want. . ≫> Yes, and that. Kind of went under the radar for a lot of people. It wasn't all even always there in a good working order in the first release. But over the next few years it became not only well known, I would say more standardized than well known. Over the next ten years it became evangelized like Crawford's [inaudible] of the closure pattern and good uses you can make with closures. So people find the malleability and the expressionist and the power compelling enough that some people actually resist any version two. They say, I don't want you to add cliches or common special forms for patterns that I'm more happy writing myself or acquiring at the library myself. ≫> You, you've created an abstraction that implement ers can do crazy things. ≫> Mm-hm. ≫> Where people can rethink what the interrupters are supposed to do. ≫> They can. ≫> And they can just say, okay, here comes V8 and it's [inaudible], a lot of things differently right? ≫> Optimizations that haven't been tried. I would, I knew about these optimizations because I had studied small talked in self. But nobody gotten the time and money. Google was maybe first. There were other efforts going in parallel and Apple and Mozilla have kept up as best they can, but V8 deserves a lot of credit for pushing this forward. It wasn't quite as first on the scene as they claim because they all came together in 2008. But it has been very helpful and it has shown people what can be done. What's interesting to me is that you then go and put different, more intensive workloads on the language and you see there's a new VA that should come out of somewhere. It may not come out of Google because they may have tired of launching JavaScript. In fact, I believe DART is a response to that, by the principals who did VA. They want to do a language where they don't have to worry about all this crazy compatibility. It may not succeed and it also doesn't give Java script the next level of performance but I. I believe that level is there, and it's still improving in performance much more dramatically than a language like Java, where the gains are percents or fractions of percent on the center of benchmarks. But a lot of HTML5 development now, "HTML5" Javascript, CSS, Web ADI's beyond what's in HTML5, is taking off, you're seeing like, Zynga doing HTML5 only games. It's really coming faster than some thought, and I talked to Venture Capitalist Fred Wilson of Union Square in New York, he said yes, it's here. He thought it would take years, it's, we've turned that corner. And so you call it HTML5, what it really means is it's the web stack, it's the same stack you use to right web pages and post to web apps you can write apps that run in your device. Apps that are m aybe hosted, maybe offline. Maybe the line is blurred so that you can associate them with a URL, but can also take them on the plane without any fear that you're going to lose anything by disconnecting from the internet.