- [Man] This is the most discovery of the 21st century. - Yeah I did that. So to give you some historical background. At the National Center for Super Computing Applications at the University of Illinois, or (mumbles) there are a bunch of kids who are developing a (mumbles) for the internet. At that time there were a number of protocols that were being considered for the way that the internet was going to deliver information to people.
There ways ways, archi, gopher, FTP, finger, and a few others, and the world wide web, and these guys didn't know which of those was going to win. So they wrote a program that worked for all of them, and they called the program Mosaic, and because of the way that they implemented the viewer for the world wide web, the world wide web won, and the thing that they did was they came up with something called the image tag. Which allowed the web to display images.
Which is something that the other formats couldn't easily do. Because the web could display images, it could look like what you wanted it to be. Even if it wasn't what you wanted it to be, and that was sufficient, and that allowed the web to win and everything took off from there. A bunch of the people from that project were lured to California where they became part of a company called Netscape. Netscape made the first commercial web browser called Netscape Navigator, and it was a huge hit.
It kind of disrupted everything, and they were then planning what to do for Navigator two, and they added a bunch of new features including support for electronic commerce. They also wanted to make it easy for end-user programming. They remembered something that had been on the Macintosh called HyperCard. HyperCard was a simple application creation program based on a simple metaphor of stacks of cards and it was an event driven script thing, and it was remarkably easy to use, and they wanted something like that in the web browser.
So they gave that job to this guy. This was Brendan Ike. Very smart guy. He'd been a colonel hacker at Silicon Graphics. His idea was he would write a scheme interpreter to do this, and he was told, no don't do scheme. Do a language that people like. Make it look like Java or Visual Basic. Something popular. This is for the kids. So he was given 10 days to create a prototype of this new interactive browser, and in those 10 days he designed and implemented a new programming language.
Self took SmallTalk. Which was the first modern classical language. Object range of language, and made it better. Both better performance and more expressive. Easier to use by removing one feature from Small Talk. It's uncommon where someone makes a new language by removing things from other language. Usually it's adding more stuff. The thing they removed from Small Talk was classes. By removing classes, they could make it faster, and they could make it much better to program.
He took that idea and put it into his language and Netscape called it LiveScript. Now while that was going on, there was another language that was being developed by a guy at Sun named Jim Gosling. He started with something called Green Talk. He was then moved into a new company that was developing septa box applications. There his language became called Oak. That company failed so he was brought back into Sun. They tried to figure out what do we do with this language now.
The internet was becoming popular, the web had become popular, they wrote a web browser in this language. That browser called HotJava was wildly successful, at least for a short time, and the language that they wrote it in had its name changed to Java, and it became widely successful. So much so that Sun was making noise that the Java language was going to be the future of software.
That if you design all of your programs to target the Java virtual machine, instead of the operating system, we can be liberated from Microsoft. And that was a wildly successful message, and Java shoots up like that. It is the most successful launch of a new programming language in history. It's amazing. At Netscape, they're making similar claims. They're saying if you design your applications to target the web browser, it doesn't matter what operating system we're on, and again, we can be liberated from Microsoft.
Now these two companies realized if we're both going after Microsoft, we'd probably better work together, because if we don't, Microsoft will play us off against each other and we'll both lose. So they form an alliance, and the first thing they agree on is that Netscape adds Java to the web browser, and in exchange for that, Sun will drop their HotJava browser. Which wasn't very complete anyway. So check, that's easy to agree to.
Step number two. Sun says you have to kill LiveScript because that's an embarrassment. We're seeing that Java is the last programming language you'll ever need. You can't then also be introducing another new language. You're just making us look bad. So kill it. Netscape refused to kill it for two reasons. One is, they wanted a language for beginners, and Java aint that language. You need a lot of specific knowledge about Java just to write hello world. They wanted something with a much lower barrier to entry.
But there's also a practical problem. They wanted to launch the new browser right away. The way they put Java in was they had Java talk to LiveScript through an interface called LiveConnect. So LiveScript could talk to the browser, Java could talk to LiveScript through LiveConnect. If they took LiveScript out, Java wouldn't work. In order to get Java in there they'd have to delay the launching of the new browser and they didn't want to do that because they were on internet time, and they couldn't afford to wait that long.
And echos of that lie still reverberate pretty loudly through the internet. Meanwhile, Microsoft has noticed that there are these two companies in California that are getting ready to destroy Microsoft, and they weren't ready for that yet. So Microsoft had completely missed the web and the internet. They thought the future of telecommunications was going to be facts and cable TV. So they went out, they bought a browser company, was another spin off out of Illinois called Spyglass.
For example, when Bill Gates told them, I want a Macintosh, they built windows. He didn't ask for Windows, he asked for Macintosh. That's how it goes there, but on this case, they got it exactly right, and in fact, they were able to keep the right ones run everywhere promise that Java was failing to keep. In fact, had they not done that, we wouldn't be talking about this language today. We'll get to that later.
Another is good intentions. There were a number of features that were added to the language to make it easier. Which failed to make it easier. Things like width, semicolon insertion, type coercion, implied global variables were all intended to make the language easier for people, but they actually make it much harder, at least for professional programmers. And then haste. 10 days is just way to short a time to design and implement a programming language. Brendan did not intend for his proof of concept to be shipped as a product, but Netscape did that.
I think that was inexcusable, and he has suffered for that. It was an importunate thing. So for the most part, give you a comparison, maybe the best designed programming language in history was SmallTalk80. Xerox Park spent a decade designing, refining, testing, improving that language. They spent almost as many years as Netscape spent days in designing their language.
I think Xerox got it right. Even though the community did not agree. So for the most part the bad parts can be avoided, which is great. The problem with the bad parts isn't that they're useless, it's that they're dangerous.
This course was created by Frontend Masters. It was originally released on 6/20/2016. We're pleased to host this training in our library.
- Writing code for performance
- Script tags
- Nodes and events
- ES5 and ES6
- Principles of security
- Object capabilities
- Synchronous functions
- Asynchronous functions