This post was written by Elana Kopelevich, Galvanize Web Development Resident
When you’re first getting started with programming, your ears start to perk up at new words. You start catching familiar terms in a sea of foreign phrases. When you come across words that you’ve heard before, you may start making associations: object and object-oriented, function and functional, variable and constant, etc.
Java Came First
The Java project – originally intended to be a solution for interactive television – was initially developed under the title Oak, named after an oak tree that stood outside a core developer’s office. Later, the project went by the name Green and finally, perhaps influenced by a caffeine fueled sprint, it was renamed to Java, as in coffee. In retrospect, this seems like a pretty obvious naming decision for developers.
Sun Microsystems released the first implementation of Java in 1995. With the promise of its tagline, “Write Once, Run Anywhere”, meaning the same code base could be compiled for a variety of different platforms, as well as a familiar C-style syntax and its ability to run in browsers (with special mini-programs called applets), Java’s popularity grew quickly.
In the same year that Java 1.0 was unleashed on the world, a Netscape employee named Brendan Eich wrote an entirely new kind of language. Eich’s employer tasked him with creating a language that runs natively in the browser (unlike Java, which required encapsulated Java programs to be loaded) as well appeal to nonprofessional programmers.
As Java was gaining popularity, Eich’s managers wanted something that “looked like Java.” Eich complied to some extent, but strayed in significant ways, largely because he was writing for an entirely different purpose. He was writing a client-side, multi-paradigm scripting language for non-professional developers – all the things that Java was not.
They are Different in Significant Ways