Issue No.02 - Feb. (2012 vol.45)
Published by the IEEE Computer Society
Charles Severance , University of Michigan
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MC.2012.57
When Netscape hired Brendan Eich in April 1995, he was told that he had 10 days to create and produce a working prototype of a programming language that would run in Netscape's browser. Back then, the pace of Web innovation was furious, with Microsoft suddenly making the Internet the focus of its Windows 95 operating system release in response to Netscape's emerging browser and server products.
Netscape got so much attention from Microsoft at that time because Netscape considered the Web browser and server as a new form of a distributed OS rather than just a single application. Once Mosaic debuted in 1993, the Web became portable across Windows, Macintosh, and Unix and gave software developers the hope that they could develop applications for all of these environments.
But HTML wasn't sufficient by itself to define a new application development environment or OS. To cement the portable OS concept, the Web (and Netscape) needed portable programming languages.
Sun's Java language seemed to be the solution for portable heavyweight applications. A compiled language that produced byte code and ran in the Java virtual machine, Java supported rich object-oriented patterns adopted from C++ and seemed likely to be able to achieve performance similar to C++ and C. Java was the Web's answer to Microsoft's Visual C++.
Knowing that Java was a rich, complex, compiled language aimed at professional programmers, Netscape and others also wanted a lightweight interpreted language to complement Java. This language would need to appeal to nonprofessional programmers much like Microsoft's Visual Basic and interpretable for easy embedding in webpages. According to Eich,
Given all these requirements, constraints, and limitations, Eich needed to produce a working prototype on atight schedule that would meet both Sun's needs and the Netscape 2.0 Beta release schedule.
Although the schedule and constraints might have been impossible for most programmers, Eich had a long history of building new programming languages, starting from his experience as a student at the University of Illinois, where he built languages just to experiment in syntax. At Silicon Graphics, he created languages that could be used to build extensions for network monitoring tools.
Eich built a simplified object model that combined structs from the C language, patterns from SmallTalk, and the symmetry between data and code offered by LISP. The Hypercard event model inspired the pattern for adding events to the HTML document. Object-oriented patterns were possible but via runtime semantics with prototypes (as in Self) instead of compiler-supported class syntax (as in Java and C++.
An Overnight Success?
The Modern Era
To view my interview with Eich, visit / http://youtu.be/IPxQ9kEaF8c.
Charles Severance, editor of the Computing Conversations column and Computer's multimedia editor, is a clinical associate professor and teaches in the School of Information at the University of Michigan. Contact him at firstname.lastname@example.org.