Podcast

029 - 25 years of Java

May 19, 2020

In recognition of Java’s 25th birthday, Jeremy brings you a special episode taking you through the ups and downs of Java’s important history.


If you enjoy this episode, please consider leaving a review on Apple Podcasts or wherever you listen.

Please send any questions or comments to [email protected].

Transcript

00:00:06.7 Jeremy Morgan

Hello and welcome to All Hands on Tech, where today's leaders talk tomorrow's

technology. I'm Jeremy Morgan. In this podcast we're going to take a trip back in

time, 25 years to be exact, and look at the history of the programming language

that changed tech forever, Java.

00:00:25.5 Jeremy Morgan

Let's go back to December 1990. Now, earlier that year wrecking balls smashed

into the Berlin wall. And it was one of the most prolific symbols of the end of the

Cold War. The world was changing. Our culture was changing. The Hubble

Telescope sent back its first images from space. Personal computers were

beginning their invasion into our homes. Though, they weren't exactly

mainstream yet. But the writing was on the wall. The personal computer

revolution was in full swing. Microsoft had just released Windows 3.0 and became

the first company to make more than a billion dollars in sales. A British computer

scientist named Tim Berners-Lee had just finished up a rough proof of concept for

a system of sharing documents all over the world. He called it the World Wide

Web. Now, the world was on the verge of something big. It was during this time

that the language we know as Java was hatched.

00:01:14.3 Jeremy Morgan

Let's talk about Java and how it began. Now in December of 1990 a team was

formed for creating next generation smart appliances, such as set-top boxes for

televisions. The lead of the group had threatened to leave the company earlier

that year. He'd only stayed on the condition that the team could operate

autonomously; separate from the bureaucracy and policies of the company at

the time. The team was called the Stealth Group and they operated out of a

small office in Menlo Park, California. One of the members and eventual leaders

of the team was James Gosling, a developer who was already quite accomplished

at the time. A PhD from Carnegie Mellon University, he'd invented an early Unix

windowing system called "News", "Gosling Emacs" and built a multiprocessor

version of Unix. He was a brilliant programmer and already a heavy contributor

at Sun. Now, originally they began developing the project with C and C++.

Because these were small set-top appliances, they had to be frugal with memory

and CPU cycles. One of the biggest problems with C++ was that it required too

much memory. Another problem was the fact that C and C++ compiled binaries

for a specific processor. So, many different versions of the software would have

to be written.

00:02:27.2 Jeremy Morgan

Now, James Gosling had an idea and a vision that would solve their problems. It

would use a model that's still part of the essence of Java today. Now, while in

grad school, he'd created a virtual machine on Carnegie's VAX computer so it

could run Pascal programs that were built for another computer system. And, it

was more than a mere translator. It was emulating a machine within the VAX

system. His vision was an expansion on this. Rather than the C++ model of

writing code and compiling the instructions for a specific CPU, he would create a

virtual machine that runs on several CPUs. And, the language of the software

was written in would compile instructions for the virtual machine, instead of the

CPU architecture. It was ambitious, especially for the time, but they started

working on it. The Stealth Team became the Green Team and they began building

a language that they named "Oak", after the oak tree that sat outside James's

office window. By the summer of 1992 they had a working model of Oak. It ran

on the Green OS and, for a demo, they had built applications for a PDA device

named "Star7". It had a graphical interface and a smart agent named "Dupe".

Oak was more than a proof of concept at this point.

00:03:34.7 Jeremy Morgan

Later that year, the Green project was spun off into a subsidiary company of Sun

named "First Person". The team was expanded and relocated to Palo Alto. Now

the goal of First Person was to create software for interactive set-top devices.

Now, this is what they set out to do originally, but they focused their efforts on

winning a bid for a platform that Time Warner had designed. They ended up

losing the bid to SGI and it's rumored that the cable industry folks thought their

platform gave too much control to the user. After another set top box proposal

fell through, the company wasn't able to get any footing in the television industry

so the group was rolled back into Sun.

00:04:11.1 Jeremy Morgan

Then, the internet happened. In the summer of 1994, Gosling and his team had a

brainstorming session with John Gage, the director of science for Sun, and Eric

Schmidt, who we know later would become the CEO of Google. They held a multi-

day session to figure out what they could do with Oak. They had what was

shaping up to be an amazing product, but the set-top box idea wasn't panning

out. So, they decided to retarget their platform for the World Wide Web. Now,

1994 was a turning point for the web. That small project for sharing documents

that Tim Berners-Lee was working on at CERN? It was being used all over the

world now. Some of the key principles behind sharing and openness that Berners-

Lee had championed early on helped propel the idea to the mainstream in just a

few short years. Now, the brainstorm group decided that graphical web browsers,

like Mosaic, would help turn the internet into the interactive medium that they

were striving for with TV. They wrote a small web browser named "WebRunner",

named after the movie "Blade Runner". But, they had a small problem. It was

around this time that the team found out that a company down the street, Oak

Technology, was already using the name "Oak". Now, if you were in computing in

the 90s, you might remember Oak made sound cards and CD-ROM drives.

"oakcdrom.sys" was the CD-ROM driver of choice for early DOS and Windows

systems. So, Sun's lawyer said they can't use the name "Oak". In January of 1995

the team had a brainstorming session, and they came back with Java, DNA, and

Silk. Now, Kim Polizzi was the Oak product manager and she says "I spent a lot of

time and energy naming Java because I wanted to get precisely the right name. I

wanted something that reflected the essence of the technology. Dynamic,

revolutionary, lively, fun. Because this programming language was so unique, I

was determined to avoid nerdy names. I also didn't want anything with net or

web in it because I found those names to be very forgettable. I wanted

something that was cool, unique, easy to spell and fun to say."

00:06:06.9 Jeremy Morgan

And so, Java was born. They had a new name, a clear mission and a product

nearly ready for release. On May 23rd 1995, at the Sun World Conference, John

Gage announced the first public beta release of the Java Development Kit, or JDK.

The original release came with the Java Runtime, which was a virtual machine

and a set of class libraries. It also contained development tools like the Java

compiler so you can write Java and build applications with it. It ran on Windows,

macOS, Linux and Solaris. Now, at that same Sun World Conference, Marc

Andreessen, Executive VP of Netscape Communications, unexpectedly

announced that Netscape browsers would include Java support. Java had arrived.

00:06:49.2 Jeremy Morgan

In January, Sun Microsystems formed the JavaSoft Group to further develop Java

technology. Now, saying that Java made a huge splash is an understatement. It

was the hottest thing in tech. James Gosling's vision of writing applications

without worrying about hardware abstractions had become a reality. It became

extremely popular overnight. Now, why was Java so popular? Well, it made the

promise of write once, run anywhere. You could develop Java applications and,

using that same code, deploy it to Windows, Mac or Linux and it was free. Now

the code was similar to C++, so it was intuitive for programmers to pick up. The

principles for building Java programs added to the allure. The principles are:

simple, robust, portable, platform independent, secure, high performance, multi-

threaded, architecture neutral, object-oriented, interpreted, dynamic and

distributed. Some of the goals of the project were: it could be simple and take

good features from earlier languages, have a simple set of APIs with basic and

advanced features, get rid of things like direct manipulation of hardware and

memory management, and it could be platform and architecture independent, be

able to manipulate network programming, and be embeddable in web browsers

through applets. This seems like a tall order for a single language, but they

pulled it off. The pain points expressed years ago were solved with this new

language.

00:08:14.4 Jeremy Morgan

Programmers swarmed to this new product. Magazines and tech journalists

started talking about it constantly. And, as websites began popping up all over

the internet, Java was being put into use. Now, initially the JDK, or Java Developer

Kit, was the only way to have Java on your machine. Sun soon released the Java

Runtime Environment, which was software that you can install on your computer

to run Java programs that programmers had written. And, the rest of the 90s had

become a time of rapid expansion for Java. In 1998, Java 2 was released which

contained the JDK 1.2, and it was a fairly big revision. They rewrote much of the

event handling and made changes to thread synchronizations. They also

introduced the JIT, or Just-in-Time, compiler. Now, the cool thing about a just-in-

time compiler, is it takes certain chunks of code and only compiles it when it's

needed. Once it's compiled, it caches that static binary. It was a "use it if you

need it" model that greatly increased performance in applications. Throughout

the remainder of the 90s, hobbyists and enterprises alike adopted Java

worldwide. Enterprise tools emerged and Java exploded with the growth of the

internet at the time. As the 2000s emerged, Java was firmly established in

business software. New features in Java centered around the programmer and

their needs. The HotSpot JVM, or Java Virtual Machine, was released which was a

high performance environment for desktops and servers. It had more just-in-time

compilation and adaptive optimization. Now, HotSpot was interesting because it

was very innovative for its time. Sun originally started development on the self

virtual machine, which was an interpreter that would replace the first compiler.

00:09:51.8 Jeremy Morgan

That project was canceled and two engineers left Sun to start a company to build

a similar product. And, a couple years later, Sun purchased that company to use

the compiler and that became HotSpot. The term "hotspot" comes from how it

works. It would analyze the Java bytecode and look for hotspots that are

executed frequently. It would then target these hotspots and optimize them. This

led to increased performance with lower overhead. And, it became the default

JVM for Java in version 1.3. In 2006, Sun open sourced it with the the JDK under

the GNU General Public License. Throughout the 2000s, Java ruled the enterprise.

Major enhancements were developed for testing, logging and debugging. Other

features included SSL support, XML processing, regular expressions and much

more. The JVM underwent tons of improvements including mapping into memory

as a single image instead of multiple class files. Web service applications

became very popular and Java was front and center with XML web service

applications. APIs for desktops were developed and refined as well as additional

monitoring and management tools.

00:10:56.7 Jeremy Morgan

As databases became more popular, Sun put a ton of work into developing great

APIs for databases. But, as the 2000s went on, Java was no longer the hottest

thing in tech. Folks had moved on, as they do, and focused on web development

technologies that emerged, like PHP and JavaScript libraries. It was no longer the

hot new item like it was a decade earlier, but it was by no means dead. Java was

slipping away into the shadows of tech, for the most part. It had already gained

somewhat of a reputation for being a boring enterprise tool. Naturally,

throughout the 2000s, there were groups of people saying "Java is dead" and

"This will be the year Java goes away". But of course, none of that happened.

Java just kept progressing along and infiltrating millions of devices and

computers all over the world. Everything from large-scale server applications to

toasters had some Java in them somewhere. And, it seemed for a while that Java

would quietly slip away in the shadows and just keep the enterprises running but

then the next big thing happened.

00:11:55.1 Jeremy Morgan

In the late 2000s, smartphones invaded the world. While cell phones themselves

were ramping up in use throughout the early part of the century, for years,

behind the scenes, companies were developing something bigger. All the way

back in 2003, a small company in Palo Alto named "Android Inc" was working on

some special software. It was, to quote, "Make smarter mobile devices that are

more aware of its owner location and preferences". Microsoft was working on

Windows Mobile and actually got some products out there before the big ones

that we know today. And, as you know, Apple was working on developing smarter

phones as well. For a few years there, there were many top secret projects going

on developing smarter, better phones. Andy Rubin, one of the founders of

Android Inc, was struggling to find investors and it got to the point where the

company was going to get evicted from their office space. Steve Perlman, a

friend of Rubin's, brought him $10,000 in cash in an envelope to keep him afloat.

And, Steve is quoted as saying "I didn't want a stake in the company. I just did it

because I believed in the thing and I wanted to help Andy".

00:12:59.5 Jeremy Morgan

Well, in July of 2005, Google acquired Android Inc for 50 million dollars. Their

mission was to build a smartphone to rival Blackberry, which was a dominant

maker at the time. June 29th 2007 Apple released the iPhone. It sent shock

waves throughout the tech community and society at large. It was a phone that

would take photos, play music, browse the web, send text messages and more.

There was a new feature called "Apps" where developers could develop

applications and sell them to iPhone users. The applications had to be written in

Objective-C, which was the language developed specifically for the iOS platform.

Now, Google had been working on a similar project, but they were lagging

behind. And, a year later, on September 23rd, 2008, Google released the HTC

Dream Android phone. You could also run apps on this phone and Google was

quick to set up tools for developers to build applications. What language would

they be written in? Java. The difference in the approach may be one reason that

Google's found took so long to release. Apple manufactured one phone and the

hardware and software were all under the control of Apple. This is still true today.

Developers had to register with Apple and develop their applications using Apple

tools and Apple computers and publish them through the Apple App Store.

Android, on the other hand, is completely opposite. Android runs on tons of

platforms and devices. In fact, Google created a consortium of companies called

the "Open Handset Alliance".

00:14:29.3 Jeremy Morgan

They wanted to create an open, shared platform for mobile phones. While you

needed special tools and an Apple computer to develop iPhone apps, Android

was a free-for-all. Any computer that could run Eclipse and a Java compiler was

fair game. This coordination was not easy and it means you have one piece of

software that must run on hundreds of different devices. Does this sound

familiar? It's no wonder they picked Java as the language of choice to develop

these applications. It was born for this. Now, suddenly, overnight, Java is hot

again. Developers scrambled to build applications for smartphones and tablets

running Android. They could build games, productivity apps, music, whatever. For

some it was an easier transition to mobile development, If they already knew

Java. The ecosystem exploded. So, by this time Java was entrenched in

enterprise software. It's installed on over 850 million PCs. You can find Java

applications on desktops, on servers, small memory devices, appliances. The list

goes on and on. And then mobile devices exploded and many of them were

running Java.

00:15:35.2 Jeremy Morgan

Then another big change came along. On January 27th, 2010, Sun Microsystems

was acquired by Oracle for 5.6 billion dollars. It was a bold move. Sun and Oracle

were competitors for years. Although Java originated with Sun, and it was large

part of their ecosystem, Sun Microsystems was a hardware company which

raised some concerns about antitrust regulations. Oracle was now a software and

hardware company. Now this caused a big shake-up. Sun CEO Jonathan Schwartz

resigned. The DBMS team collectively resigned and move to Rackspace. The

JRuby team also collectively resigned and moved to Engine Yard. And, in April

2010, James Gosling, the creator of Java, resigned from the company. He cited

many reasons including reductions in pay, status and decision-making ability. It

was a new era. While the choice to use Java on the Android platform certainly

brought Java back into the limelight again, it wasn't all peaches and roses. Oracle

filed a patent-infringement lawsuit against Google over its use of Java and

Android platform. By design, Android apps run in the Dalvik Java Virtual Machine.

The apps are written in Java, but they compile to a different format to run in the

Dalvik machine. This means these apps cannot be run in the Java Runtime. This

allowed Google to avoid licensing fees from J2ME, which was the mobile version

of Java. In the first trial, Google was found liable for some code copying but the

court ruled that they did not infringe on Oracle patents. There was a lot of back

and forth and, in 2016, a jury found that Google had violated copyright laws

when they used Java on the Android platform.

00:17:21.8 Jeremy Morgan

Today, Java is extremely popular. It's enjoyed a big resurgence thanks to the new

ways that it's being used. Now, while it's firmly seated in areas like servers,

desktops, mobile applications and micro devices, it's now being used in scientific

applications including natural language processing. It's being used for big data to

handle high performance data processing. And, Java is finding a home in AI and

ML applications as well. The Spring Framework for Java is an application

framework that's taken off in the last few years. Modern applications, like web

APIs and microservices, are a breeze with Spring. The Spring community is

growing faster every day and full of smart helpful engineers building really cool

things. It's estimated there are nine million Java developers out there. And, Java

has come a long way since being developed by 13 engineers on Sand Hill Road in

Menlo Park. Java was created to bring interactivity to TV set-top boxes that never

materialized but, because it was designed to eliminate these pain points for

developers and it came together so well, they decided to pivot and use it

elsewhere. And, it changed the world.

00:18:30.2 Jeremy Morgan

So thank you for coming along with me on this journey. All Hands on Tech is a

podcast for today's leaders talk about tomorrow's technology. You can find

transcripts, info and more at pluralsight.com/podcast.