Marc Andreessen is a developer who in 1993 had helped the National Center for Supercomputing Applications which is located at the University of Illinois to launch a user-friendly, graphical web browser by the name Mosaic. It was during that time that the internet was evolving from a text-based realm of hobbyists and into a more multimedia universe for computer users.
Subsequently, Andreessen founded the private Mosaic Communications Corporation and had published a commercial browser known as Mosaic Navigator in the year 1994. Later, the name had to be changed to Netscape due to a lawsuit. Netscape had a stellar IPO that set new records and Netscape Navigator was suddenly a hit.
In reply to this, Microsoft launched Internet Explorer. Andreessen knew that Netscape would need to get new features in order to maintain its dominance. Web browsers had to move beyond just display of static documents and to be able to truly run interactive software.
Then, in the year 1995, Netscape had brokered a deal with Sun Microsystems, another Microsoft competitor that was launching a major programming language known as Java. Syntax from C / C++ was borrowed by Java but compiled using Java byte code as it was portable. It ran on a different operating system. Users could execute Java programs as applets if they had both Navigator and the Java Virtual Machine.
Due to the fenced-off nature of Java, it meant that there would still be a need for a scripting language in order to enhance the web pages, validate form entries, animate drop-down menus, etc. As Sun had been positioning Java as the professional choice for embedded programs that were complex, the language was envisioned as a rather small approachable solution for page authors and designers. It could be directly written inside of HTML document and could be interpreted by the Navigator browser.
It was during the early 1995 that Brendan Eich had famously gotten contracted by Netscape so as to design a language on such an extreme deadline. The strict requirements that had been provided to Eich and his efforts at fulfilling them is what had led to the monumental effect on the nature of the web.
Designing a language is one of the hardest things to, but it is also an opportunity. The thing about programming languages is that they express old idea through new ways and help popularize these alternative approaches.
Structure and Interpretation of Computer Programs had been read by Eich, it is a landmark MIT textbook that features the language Scheme which combines a set of surprising power and flexibility with minimalist features. It does a lot with less.
Procedures can work on Scheme and generate ordinary data such as text, numbers, and work on other procedures, or even generate others, which is a defining characteristic for functional programming.
Eich had been recruited by Netscape in order to implement Scheme for the browser and have him a somewhat contradictory stipulation in which whatever he would come up with would mostly likely look like Java. This is why Eich created a quick proof of concept with the help of Java-based syntax for expressing Scheme-based capabilities. A unique style of object-oriented programming was then incorporated to this already unlikely combination.
A Unique Language
In object-oriented programming, procedures and data are encapsulated together into objects which would be defined with a hierarchy of abstract classes. When it comes to Java, it is considered to be one of the most object-oriented languages, with concepts of classes woven throughout it. Eich eschewed an all-encompassing and rigid flavor to OOP in Java. A unique style of OOBP was chosen by hum to create a relaxed prototypal inheritance and dynamic system that was inspired by the language Self. This allowed for objects to be created at will and to be linked to other objects, known as prototypes.
Comparatively, little syntax is added to a language with this prototypal inheritance, yet it is capable of simulating alternative or classical inheritance patterns. The following things were combined with this new language.
- Features that were minimalist yet were flexible.
- Object-oriented and core functional behavior from self and Scheme.
- Control structures and superficialities from Java.
Latest Blog Posts
- 15 September 2019What’s in a logo?
- 04 September 2019Your guide to new design trends for web and mobile design
- 29 August 20193 Reasons why your website should have a blog
- 02 August 2019The 7 Best Sources of PHP Scripts