029 - 25 years of Java | Pluralsight
source link: https://www.pluralsight.com/resource-center/podcasts/029-25-years-of-java
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
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.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK