SlideShare a Scribd company logo
The History and Evolution of Java
Lecture-1
Tamjid Rahman
Faculty
Stamford University
Java
• Java is first and foremost a programming language.
• Computer language innovation and development
occurs for two fundamental reasons:
– To adapt to changing environments and uses
– To implement refinements and improvements in the art
of programming
• The development of Java was driven by both
elements in nearly equal measure.
Java’s Lineage
• Java is related to C++, which is a direct descendant
of C.
• Much of the character of Java is inherited from
these two languages.
• From C, Java derives its syntax. Many of Java’s
object oriented features were influenced by C++.
In fact, several of Java’s defining characteristics
come from—or are responses to—its predecessors.
• Each innovation in language design was driven by
the need to solve a fundamental problem that the
preceding languages could not solve.
• Java is no exception.
The Creation of Java
• Java was conceived by James Gosling, Patrick
Naughton, Chris Warth, Ed Frank, and Mike Sheridan
at Sun Microsystems, Inc. in 1991.
• It took 18 months to develop the first working
version.
• This language was initially called “Oak,” but was
renamed “Java” in 1995.
• The original impetus for Java was not the Internet!
• Instead, the primary motivation was the need for a
platform-independent (that is, architecture-neutral)
language that could be used to create software to be
embedded in various consumer electronic devices,
such as microwave ovens and remote controls.
The Creation of Java (cont…)
• Many different types of CPUs are used as controllers. The
trouble with C and C++ (and most other languages) is that they
are designed to be compiled for a specific target.
• Although it is possible to compile a C++ program for just about
any type of CPU, to do so requires a full C++ compiler targeted
for that CPU.
• The problem is that compilers are expensive and time-
consuming to create.
• An easier—and more cost-efficient—solution was needed.
• In an attempt to find such a solution, Gosling and others began
work on a portable, platform-independent language that could
be used to produce code that would run on a variety of CPUs
under differing environments.
• This effort ultimately led to the creation of Java.
How Java Changed the Internet
• Java had a profound effect on the Internet.
• Besides applet, Java also addressed some of the
thorniest issues associated with the Internet:
portability and security.
• Let’s look more closely at each of these-
How Java Changed the Internet-Applets (cont…)
• An applet is a special kind of Java program that is designed
to be transmitted over the Internet and automatically executed
by a Java-compatible web browser.
• Furthermore, an applet is downloaded on demand, without
further interaction with the user.
• If the user clicks a link that contains an applet, the applet will
be automatically downloaded and run in the browser.
• Applets are intended to be small programs.
• They are typically used to display data provided by the
server, handle user input, or provide simple functions, such as
a loan calculator, that execute locally, rather than on the
server.
• In essence, the applet allows some functionality to be moved
from the server to the client.
How Java Changed the Internet-Applets (cont…)
• The creation of the applet changed Internet programming
because it expanded the universe of objects that can move
about freely in cyberspace.
• The applet is a dynamic, self-executing program. Such a
program is an active agent on the client computer, yet it is
initiated by the server.
• As desirable as dynamic, networked programs are, they also
present serious problems in the areas of security and
portability.
• Obviously, a program that downloads and executes
automatically on the client computer must be prevented from
doing harm.
• It must also be able to run in a variety of different
environments and under different operating systems.
• As you will see, Java solved these problems in an effective
and elegant way. Let’s look a bit more closely at each.
How Java Changed the Internet-Security
• Every time we download a “normal” program, we are taking
a risk, because the code we are downloading might contain a
virus, Trojan horse, or other harmful code.
• At the core of the problem is the fact that malicious code can
cause its damage because it has gained unauthorized access
to system resources.
• In order for Java to enable applets to be downloaded and
executed on the client computer safely, it was necessary to
prevent an applet from launching such an attack.
• Java achieved this protection by confining an applet to the
Java execution environment and not allowing it access to
other parts of the computer.
• The ability to download applets with confidence that no harm
will be done and that no security will be breached may have
been the single most innovative aspect of Java.
How Java Changed the Internet-Portability
• Portability is a major aspect of the Internet because
there are many different types of computers and
operating systems connected to it.
• If a Java program were to be run on virtually any
computer connected to the Internet, there needed to be
some way to enable that program to execute on
different systems.
• It is not practical to have different versions of the
applet for different computers.
• The same code must work on all computers.
• Therefore, some means of generating portable
executable code was needed.
• Java has the same mechanism that helps ensure
security also helps create portability.
Java’s Magic: The Bytecode
• The key that allows Java to solve both the security and the
portability problems is that the output of a Java compiler is
not executable code. Rather, it is bytecode.
• Bytecode is a highly optimized set of instructions designed
to be executed by the Java run-time system, which is called
the Java Virtual Machine (JVM).
• In essence, the original JVM was designed as an interpreter
for bytecode.
• Many modern languages are designed to be compiled into
executable code because of performance concerns.
• However, the fact that a Java program is executed by the
JVM helps solve the major problems associated with web-
based programs.
Java’s Magic: The Bytecode (cont…)
• Translating a Java program into bytecode makes it much
easier to run a program in a wide variety of environments
because only the JVM needs to be implemented for each
platform.
• The fact that a Java program is executed by the JVM also
helps to make it secure.
• Because the JVM is in control, it can contain the program
and prevent it from generating.
• Because bytecode has been highly optimized, the use of
bytecode enables the JVM to execute programs much faster
than you might expect.
• HotSpot technology provides a Just-In-Time (JIT) compiler
for bytecode.
Java’s Magic: The Bytecode (cont…)
• A JIT compiler compiles code as it is needed,
during execution.
• Furthermore, not all sequences of bytecode are
compiled—only those that will benefit from
compilation.
• The remaining code is simply interpreted.
• However, the just-in-time approach still yields a
significant performance boost.
• Even when dynamic compilation is applied to
bytecode, the portability and safety features still
apply, because the JVM is still in charge of the
execution environment.
The Java Buzzwords
• The key considerations were summed up by the
Java team in the following list of buzzwords:
– Simple. Java was designed to be easy for the
professional programmer to learn and use effectively.
Assuming that anyone has some programming
experience, (s)he will not find Java hard to master.
– Object-Oriented. Although influenced by its
predecessors, Java was not designed to be source-code
compatible with any other language. This allowed the
Java team the freedom to design with a blank slate. One
outcome of this was a clean, usable, pragmatic
approach to objects. The object model in Java is simple
and easy to extend.
The Java Buzzwords (cont…)
–Robust. The ability to create robust programs was given a
high priority in the design of Java. To gain reliability, Java
restricts us in a few key areas to force us to find our
mistakes early in program development. At the same time,
Java frees us from having to worry about many of the
most common causes of programming errors. Because
Java is a strictly typed language, it checks our code at
compile time. However, it also checks your code at run
time. To better understand how Java is robust, consider
two of the main reasons for program failure: memory
management mistakes and mishandled exceptional
conditions (that is, run-time errors). Memory management
can be a difficult, tedious task in traditional programming
environments.
The Java Buzzwords (cont…)
– For example, in C/C++, the programmer will often
manually allocate and free all dynamic memory. This
sometimes leads to problems, because programmers
will either forget to free memory that has been
previously allocated or, worse, try to free some memory
that another part of their code is still using. Java
virtually eliminates these problems by managing
memory allocation and deallocation for you. (In fact,
deallocation is completely automatic, because Java
provides garbage collection for unused objects.)
Exceptional conditions in traditional environments
often arise in situations such as division by zero or “file
not found,” and they must be managed with clumsy and
hard-to-read constructs. Java helps in this area by
providing object-oriented exception handling.
The Java Buzzwords (cont…)
– Multithreaded. Java was designed to meet the real-
world requirement of creating interactive, networked
programs. To accomplish this, Java supports
multithreaded programming, which allows you to write
programs that do many things simultaneously.
– Architecture-Neutral. A central issue for the Java
designers was that of code longevity and portability.
The Java designers made several hard decisions in the
Java language and the Java Virtual Machine in an
attempt to alter this situation. Their goal was “write
once; run anywhere, any time, forever.” To a great
extent, this goal was accomplished.
The Java Buzzwords (cont…)
– Interpreted and High Performance. Java enables the
creation of cross-platform programs by bytecode which
was carefully designed so that it would be easy to
translate directly into native machine code for very high
performance by using a just-in-time compiler. Java run-
time systems that provide this feature lose none of the
benefits of the platform-independent code.
– Distributed. Java is designed for the distributed
environment of the Internet because it handles TCP/IP
protocols.
– Dynamic. Java programs carry with them substantial
amounts of run-time type information that is used to
verify and resolve accesses to objects at run time. This
makes it possible to dynamically link code in a safe and
Lec 1-of-oop2

More Related Content

What's hot

History of Java 1/2
History of Java 1/2History of Java 1/2
History of Java 1/2
Eberhard Wolff
 
Java fundamentals
Java fundamentalsJava fundamentals
Java fundamentals
Om Ganesh
 
Java1 in mumbai
Java1 in mumbaiJava1 in mumbai
Java1 in mumbai
vibrantuser
 
Java introduction
Java introductionJava introduction
Java introduction
Kuppusamy P
 
java Features
java Featuresjava Features
java Features
Jadavsejal
 
Java ms harsha
Java ms harshaJava ms harsha
Java ms harsha
Harsha Batra
 
Features of java unit 1
Features of java unit 1Features of java unit 1
Features of java unit 1
RubaNagarajan
 
Java training in bangalore
Java training in bangaloreJava training in bangalore
Java training in bangalore
zasi besant
 
Sadiq786
Sadiq786Sadiq786
Sadiq786
sadiqkhan786
 
HTML for beginners
HTML for beginnersHTML for beginners
HTML for beginners
Salahaddin University-Erbil
 
What's Inside a JVM?
What's Inside a JVM?What's Inside a JVM?
What's Inside a JVM?
Azul Systems Inc.
 
History of java
History of javaHistory of java
History of java
Mani Sarkar
 
Java introduction
Java introductionJava introduction
Java introduction
NAVEENA ESWARAN
 
Java history 01
Java history 01Java history 01
Java history 01
University of Potsdam
 
Features of java 02
Features of java 02Features of java 02
Features of java 02
University of Potsdam
 
Chapter 1 java
Chapter 1 java Chapter 1 java
Chapter 1 java
Ahmad sohail Kakar
 
Top 10 Dying Programming Languages in 2020 | Edureka
Top 10 Dying Programming Languages in 2020 | EdurekaTop 10 Dying Programming Languages in 2020 | Edureka
Top 10 Dying Programming Languages in 2020 | Edureka
Edureka!
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
Serdar Basegmez
 

What's hot (20)

History of Java 1/2
History of Java 1/2History of Java 1/2
History of Java 1/2
 
Java fundamentals
Java fundamentalsJava fundamentals
Java fundamentals
 
Java1 in mumbai
Java1 in mumbaiJava1 in mumbai
Java1 in mumbai
 
Lec 3 01_aug13
Lec 3 01_aug13Lec 3 01_aug13
Lec 3 01_aug13
 
Java introduction
Java introductionJava introduction
Java introduction
 
java Features
java Featuresjava Features
java Features
 
Java ms harsha
Java ms harshaJava ms harsha
Java ms harsha
 
Features of java unit 1
Features of java unit 1Features of java unit 1
Features of java unit 1
 
Ch2
Ch2Ch2
Ch2
 
Java training in bangalore
Java training in bangaloreJava training in bangalore
Java training in bangalore
 
Sadiq786
Sadiq786Sadiq786
Sadiq786
 
HTML for beginners
HTML for beginnersHTML for beginners
HTML for beginners
 
What's Inside a JVM?
What's Inside a JVM?What's Inside a JVM?
What's Inside a JVM?
 
History of java
History of javaHistory of java
History of java
 
Java introduction
Java introductionJava introduction
Java introduction
 
Java history 01
Java history 01Java history 01
Java history 01
 
Features of java 02
Features of java 02Features of java 02
Features of java 02
 
Chapter 1 java
Chapter 1 java Chapter 1 java
Chapter 1 java
 
Top 10 Dying Programming Languages in 2020 | Edureka
Top 10 Dying Programming Languages in 2020 | EdurekaTop 10 Dying Programming Languages in 2020 | Edureka
Top 10 Dying Programming Languages in 2020 | Edureka
 
BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
 

Viewers also liked

MGT 311 Final Exam 2015 version
MGT 311 Final Exam 2015 versionMGT 311 Final Exam 2015 version
MGT 311 Final Exam 2015 version
dsyhfshgfsjdjgjgfhdg
 
Presentation rp
Presentation rpPresentation rp
Presentation rp
Khanh Nguyen
 
Программа i-Camp. Языковой лагерь для молодежи
Программа i-Camp. Языковой лагерь для молодежиПрограмма i-Camp. Языковой лагерь для молодежи
Программа i-Camp. Языковой лагерь для молодежи
LanguageCentreSynergy
 
Итоговое сочинение по литературе. Направление 3: Любовь.
Итоговое сочинение по литературе. Направление 3: Любовь.Итоговое сочинение по литературе. Направление 3: Любовь.
Итоговое сочинение по литературе. Направление 3: Любовь.
Елена Павлова
 
Nikola tesla
Nikola teslaNikola tesla
Nikola tesla
Vida Dutina
 
Airport_TraficMgmt_DBtier_RO
Airport_TraficMgmt_DBtier_ROAirport_TraficMgmt_DBtier_RO
Airport_TraficMgmt_DBtier_ROIUSTIN ANTIMOIANU
 
Tugas bahasa indonesia
Tugas bahasa indonesiaTugas bahasa indonesia
Tugas bahasa indonesia
erinania
 
Xu hướng thiết kế lịch năm 2016
Xu hướng thiết kế lịch năm 2016Xu hướng thiết kế lịch năm 2016
Xu hướng thiết kế lịch năm 2016
Đinh Hòa
 
Project Charter Template
Project Charter TemplateProject Charter Template
Project Charter Templatewilliam hartin
 
Programa Joves Qualificats
Programa Joves QualificatsPrograma Joves Qualificats
Programa Joves Qualificats
ConselleriaTreballBalears
 

Viewers also liked (12)

MGT 311 Final Exam 2015 version
MGT 311 Final Exam 2015 versionMGT 311 Final Exam 2015 version
MGT 311 Final Exam 2015 version
 
Presentation rp
Presentation rpPresentation rp
Presentation rp
 
humanistilehti7
humanistilehti7humanistilehti7
humanistilehti7
 
Программа i-Camp. Языковой лагерь для молодежи
Программа i-Camp. Языковой лагерь для молодежиПрограмма i-Camp. Языковой лагерь для молодежи
Программа i-Camp. Языковой лагерь для молодежи
 
Итоговое сочинение по литературе. Направление 3: Любовь.
Итоговое сочинение по литературе. Направление 3: Любовь.Итоговое сочинение по литературе. Направление 3: Любовь.
Итоговое сочинение по литературе. Направление 3: Любовь.
 
Nikola tesla
Nikola teslaNikola tesla
Nikola tesla
 
Airport_TraficMgmt_DBtier_RO
Airport_TraficMgmt_DBtier_ROAirport_TraficMgmt_DBtier_RO
Airport_TraficMgmt_DBtier_RO
 
Telelvision Menu 2016
Telelvision Menu 2016Telelvision Menu 2016
Telelvision Menu 2016
 
Tugas bahasa indonesia
Tugas bahasa indonesiaTugas bahasa indonesia
Tugas bahasa indonesia
 
Xu hướng thiết kế lịch năm 2016
Xu hướng thiết kế lịch năm 2016Xu hướng thiết kế lịch năm 2016
Xu hướng thiết kế lịch năm 2016
 
Project Charter Template
Project Charter TemplateProject Charter Template
Project Charter Template
 
Programa Joves Qualificats
Programa Joves QualificatsPrograma Joves Qualificats
Programa Joves Qualificats
 

Similar to Lec 1-of-oop2

MODULE_1_The History and Evolution of Java.pptx
MODULE_1_The History and Evolution of Java.pptxMODULE_1_The History and Evolution of Java.pptx
MODULE_1_The History and Evolution of Java.pptx
VeerannaKotagi1
 
1 java intro
1 java intro1 java intro
2-Lec - History of OOP and Java (1) .ppt
2-Lec - History of OOP and Java  (1) .ppt2-Lec - History of OOP and Java  (1) .ppt
2-Lec - History of OOP and Java (1) .ppt
AqeelAbbas94
 
basic core java up to operator
basic core java up to operatorbasic core java up to operator
basic core java up to operator
kamal kotecha
 
Java Introduction
Java IntroductionJava Introduction
Java Introduction
sunmitraeducation
 
java completed units.docx
java completed units.docxjava completed units.docx
java completed units.docx
SATHYAKALAKSKPRCASBS
 
1.Intro--Why Java.pptx
1.Intro--Why Java.pptx1.Intro--Why Java.pptx
1.Intro--Why Java.pptx
YounasKhan542109
 
Introduction to Java Part-2
Introduction to Java Part-2Introduction to Java Part-2
Introduction to Java Part-2
RatnaJava
 
java full 1 (Recovered).docx
java full 1 (Recovered).docxjava full 1 (Recovered).docx
java full 1 (Recovered).docx
SATHYAKALAKSKPRCASBS
 
Presentation on java
Presentation on javaPresentation on java
Presentation on java
william john
 
Introduction to Java
Introduction to Java Introduction to Java
Introduction to Java
Hitesh-Java
 
1. JAVA_Module_1-edited - AJIN ABRAHAM.pptx.pdf
1. JAVA_Module_1-edited - AJIN ABRAHAM.pptx.pdf1. JAVA_Module_1-edited - AJIN ABRAHAM.pptx.pdf
1. JAVA_Module_1-edited - AJIN ABRAHAM.pptx.pdf
10322210023
 
JAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptxJAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptx
SuganthiDPSGRKCW
 
TechSearchWeb Tutorials.pdf
TechSearchWeb Tutorials.pdfTechSearchWeb Tutorials.pdf
TechSearchWeb Tutorials.pdf
TechSearchWeb
 
Minor
MinorMinor
Minor
rkorishabh
 
Features of Java.pptx
Features of Java.pptxFeatures of Java.pptx
Features of Java.pptx
Peter Jose
 
Java the reason behind its never ending demand
Java the reason behind its never ending demandJava the reason behind its never ending demand
Java the reason behind its never ending demand
Deepika Chaudhary
 

Similar to Lec 1-of-oop2 (20)

MODULE_1_The History and Evolution of Java.pptx
MODULE_1_The History and Evolution of Java.pptxMODULE_1_The History and Evolution of Java.pptx
MODULE_1_The History and Evolution of Java.pptx
 
1 java intro
1 java intro1 java intro
1 java intro
 
2-Lec - History of OOP and Java (1) .ppt
2-Lec - History of OOP and Java  (1) .ppt2-Lec - History of OOP and Java  (1) .ppt
2-Lec - History of OOP and Java (1) .ppt
 
basic core java up to operator
basic core java up to operatorbasic core java up to operator
basic core java up to operator
 
Java Introduction
Java IntroductionJava Introduction
Java Introduction
 
java full 1.docx
java full 1.docxjava full 1.docx
java full 1.docx
 
java full.docx
java full.docxjava full.docx
java full.docx
 
java completed units.docx
java completed units.docxjava completed units.docx
java completed units.docx
 
1.Intro--Why Java.pptx
1.Intro--Why Java.pptx1.Intro--Why Java.pptx
1.Intro--Why Java.pptx
 
Introduction to Java Part-2
Introduction to Java Part-2Introduction to Java Part-2
Introduction to Java Part-2
 
java full 1 (Recovered).docx
java full 1 (Recovered).docxjava full 1 (Recovered).docx
java full 1 (Recovered).docx
 
Presentation on java
Presentation on javaPresentation on java
Presentation on java
 
Introduction to Java
Introduction to Java Introduction to Java
Introduction to Java
 
1. JAVA_Module_1-edited - AJIN ABRAHAM.pptx.pdf
1. JAVA_Module_1-edited - AJIN ABRAHAM.pptx.pdf1. JAVA_Module_1-edited - AJIN ABRAHAM.pptx.pdf
1. JAVA_Module_1-edited - AJIN ABRAHAM.pptx.pdf
 
Java virtual machine
Java virtual machineJava virtual machine
Java virtual machine
 
JAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptxJAVA PROGRAMMING-Unit I - Final PPT.pptx
JAVA PROGRAMMING-Unit I - Final PPT.pptx
 
TechSearchWeb Tutorials.pdf
TechSearchWeb Tutorials.pdfTechSearchWeb Tutorials.pdf
TechSearchWeb Tutorials.pdf
 
Minor
MinorMinor
Minor
 
Features of Java.pptx
Features of Java.pptxFeatures of Java.pptx
Features of Java.pptx
 
Java the reason behind its never ending demand
Java the reason behind its never ending demandJava the reason behind its never ending demand
Java the reason behind its never ending demand
 

Recently uploaded

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 

Recently uploaded (20)

Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 

Lec 1-of-oop2

  • 1. The History and Evolution of Java Lecture-1 Tamjid Rahman Faculty Stamford University
  • 2. Java • Java is first and foremost a programming language. • Computer language innovation and development occurs for two fundamental reasons: – To adapt to changing environments and uses – To implement refinements and improvements in the art of programming • The development of Java was driven by both elements in nearly equal measure.
  • 3. Java’s Lineage • Java is related to C++, which is a direct descendant of C. • Much of the character of Java is inherited from these two languages. • From C, Java derives its syntax. Many of Java’s object oriented features were influenced by C++. In fact, several of Java’s defining characteristics come from—or are responses to—its predecessors. • Each innovation in language design was driven by the need to solve a fundamental problem that the preceding languages could not solve. • Java is no exception.
  • 4. The Creation of Java • Java was conceived by James Gosling, Patrick Naughton, Chris Warth, Ed Frank, and Mike Sheridan at Sun Microsystems, Inc. in 1991. • It took 18 months to develop the first working version. • This language was initially called “Oak,” but was renamed “Java” in 1995. • The original impetus for Java was not the Internet! • Instead, the primary motivation was the need for a platform-independent (that is, architecture-neutral) language that could be used to create software to be embedded in various consumer electronic devices, such as microwave ovens and remote controls.
  • 5. The Creation of Java (cont…) • Many different types of CPUs are used as controllers. The trouble with C and C++ (and most other languages) is that they are designed to be compiled for a specific target. • Although it is possible to compile a C++ program for just about any type of CPU, to do so requires a full C++ compiler targeted for that CPU. • The problem is that compilers are expensive and time- consuming to create. • An easier—and more cost-efficient—solution was needed. • In an attempt to find such a solution, Gosling and others began work on a portable, platform-independent language that could be used to produce code that would run on a variety of CPUs under differing environments. • This effort ultimately led to the creation of Java.
  • 6. How Java Changed the Internet • Java had a profound effect on the Internet. • Besides applet, Java also addressed some of the thorniest issues associated with the Internet: portability and security. • Let’s look more closely at each of these-
  • 7. How Java Changed the Internet-Applets (cont…) • An applet is a special kind of Java program that is designed to be transmitted over the Internet and automatically executed by a Java-compatible web browser. • Furthermore, an applet is downloaded on demand, without further interaction with the user. • If the user clicks a link that contains an applet, the applet will be automatically downloaded and run in the browser. • Applets are intended to be small programs. • They are typically used to display data provided by the server, handle user input, or provide simple functions, such as a loan calculator, that execute locally, rather than on the server. • In essence, the applet allows some functionality to be moved from the server to the client.
  • 8. How Java Changed the Internet-Applets (cont…) • The creation of the applet changed Internet programming because it expanded the universe of objects that can move about freely in cyberspace. • The applet is a dynamic, self-executing program. Such a program is an active agent on the client computer, yet it is initiated by the server. • As desirable as dynamic, networked programs are, they also present serious problems in the areas of security and portability. • Obviously, a program that downloads and executes automatically on the client computer must be prevented from doing harm. • It must also be able to run in a variety of different environments and under different operating systems. • As you will see, Java solved these problems in an effective and elegant way. Let’s look a bit more closely at each.
  • 9. How Java Changed the Internet-Security • Every time we download a “normal” program, we are taking a risk, because the code we are downloading might contain a virus, Trojan horse, or other harmful code. • At the core of the problem is the fact that malicious code can cause its damage because it has gained unauthorized access to system resources. • In order for Java to enable applets to be downloaded and executed on the client computer safely, it was necessary to prevent an applet from launching such an attack. • Java achieved this protection by confining an applet to the Java execution environment and not allowing it access to other parts of the computer. • The ability to download applets with confidence that no harm will be done and that no security will be breached may have been the single most innovative aspect of Java.
  • 10. How Java Changed the Internet-Portability • Portability is a major aspect of the Internet because there are many different types of computers and operating systems connected to it. • If a Java program were to be run on virtually any computer connected to the Internet, there needed to be some way to enable that program to execute on different systems. • It is not practical to have different versions of the applet for different computers. • The same code must work on all computers. • Therefore, some means of generating portable executable code was needed. • Java has the same mechanism that helps ensure security also helps create portability.
  • 11. Java’s Magic: The Bytecode • The key that allows Java to solve both the security and the portability problems is that the output of a Java compiler is not executable code. Rather, it is bytecode. • Bytecode is a highly optimized set of instructions designed to be executed by the Java run-time system, which is called the Java Virtual Machine (JVM). • In essence, the original JVM was designed as an interpreter for bytecode. • Many modern languages are designed to be compiled into executable code because of performance concerns. • However, the fact that a Java program is executed by the JVM helps solve the major problems associated with web- based programs.
  • 12. Java’s Magic: The Bytecode (cont…) • Translating a Java program into bytecode makes it much easier to run a program in a wide variety of environments because only the JVM needs to be implemented for each platform. • The fact that a Java program is executed by the JVM also helps to make it secure. • Because the JVM is in control, it can contain the program and prevent it from generating. • Because bytecode has been highly optimized, the use of bytecode enables the JVM to execute programs much faster than you might expect. • HotSpot technology provides a Just-In-Time (JIT) compiler for bytecode.
  • 13. Java’s Magic: The Bytecode (cont…) • A JIT compiler compiles code as it is needed, during execution. • Furthermore, not all sequences of bytecode are compiled—only those that will benefit from compilation. • The remaining code is simply interpreted. • However, the just-in-time approach still yields a significant performance boost. • Even when dynamic compilation is applied to bytecode, the portability and safety features still apply, because the JVM is still in charge of the execution environment.
  • 14. The Java Buzzwords • The key considerations were summed up by the Java team in the following list of buzzwords: – Simple. Java was designed to be easy for the professional programmer to learn and use effectively. Assuming that anyone has some programming experience, (s)he will not find Java hard to master. – Object-Oriented. Although influenced by its predecessors, Java was not designed to be source-code compatible with any other language. This allowed the Java team the freedom to design with a blank slate. One outcome of this was a clean, usable, pragmatic approach to objects. The object model in Java is simple and easy to extend.
  • 15. The Java Buzzwords (cont…) –Robust. The ability to create robust programs was given a high priority in the design of Java. To gain reliability, Java restricts us in a few key areas to force us to find our mistakes early in program development. At the same time, Java frees us from having to worry about many of the most common causes of programming errors. Because Java is a strictly typed language, it checks our code at compile time. However, it also checks your code at run time. To better understand how Java is robust, consider two of the main reasons for program failure: memory management mistakes and mishandled exceptional conditions (that is, run-time errors). Memory management can be a difficult, tedious task in traditional programming environments.
  • 16. The Java Buzzwords (cont…) – For example, in C/C++, the programmer will often manually allocate and free all dynamic memory. This sometimes leads to problems, because programmers will either forget to free memory that has been previously allocated or, worse, try to free some memory that another part of their code is still using. Java virtually eliminates these problems by managing memory allocation and deallocation for you. (In fact, deallocation is completely automatic, because Java provides garbage collection for unused objects.) Exceptional conditions in traditional environments often arise in situations such as division by zero or “file not found,” and they must be managed with clumsy and hard-to-read constructs. Java helps in this area by providing object-oriented exception handling.
  • 17. The Java Buzzwords (cont…) – Multithreaded. Java was designed to meet the real- world requirement of creating interactive, networked programs. To accomplish this, Java supports multithreaded programming, which allows you to write programs that do many things simultaneously. – Architecture-Neutral. A central issue for the Java designers was that of code longevity and portability. The Java designers made several hard decisions in the Java language and the Java Virtual Machine in an attempt to alter this situation. Their goal was “write once; run anywhere, any time, forever.” To a great extent, this goal was accomplished.
  • 18. The Java Buzzwords (cont…) – Interpreted and High Performance. Java enables the creation of cross-platform programs by bytecode which was carefully designed so that it would be easy to translate directly into native machine code for very high performance by using a just-in-time compiler. Java run- time systems that provide this feature lose none of the benefits of the platform-independent code. – Distributed. Java is designed for the distributed environment of the Internet because it handles TCP/IP protocols. – Dynamic. Java programs carry with them substantial amounts of run-time type information that is used to verify and resolve accesses to objects at run time. This makes it possible to dynamically link code in a safe and