A BRIEF HISTORY OF OOP AND JAVA PROGRAMMING LANGUAGE

Slides:



Advertisements
Similar presentations
What is a Computer Program? For a computer to be able to do anything (multiply, play a song, run a word processor), it must be given the instructions.
Advertisements

1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
In Review JAVA C++ GUIs - Windows Webopedia.com.
Object Orientated Programming
IC211 Object Oriented Programming Overview of Java.
Java: History and Introduction (Lecture # 1). History… Java – Based on C and C++ – Developed in 1991 for intelligent consumer electronic devices – Green.
Introduction to Java Kiyeol Ryu Java Programming Language.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
Programming Languages Structure
For more Lectures and Notes Visit
CS884 (Prasad)Java Goals1 “Perfect Quote” You know you've achieved perfection in design, Not when you have nothing more to add, But when you have nothing.
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
Lecture 1: Overview of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
BASIC JAVA PROGRAMMING TUTORIAL. History  James Gosling and Sun Microsystems  Oak  Java, May 20, 1995, Sun World  Hot Java –The first Java-enabled.
INTRODUCTION TO WEB DATABASE PROGRAMMING
CSC 142 A 1 CSC 142 Introduction to Java [Reading: chapter 0]
Chapter 1 Coding Introduction.
Introduction to Java CSIS 3701: Advanced Object Oriented Programming.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Programming Languages Machine.
111 © 2002, Cisco Systems, Inc. All rights reserved.
Java Introduction Lecture 1. Java Powerful, object-oriented language Free SDK and many resources at
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
University of Houston-Clear Lake Proprietary© 1997 Evolution of Programming Languages Basic cycle of improvement –Experience software difficulties –Theory.
Module Overview n Module Title: OO Programming n Module Code: MIT3446 n Module Value: 3.0 n Duration: 15 weeks n Class-Contact Hours: Lecture15 hrs n Lab/Tutor30hrs.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
CPRG 215 Introduction to Object-Oriented Programming with Java Module 1-Introduction to Java Topic 1.1 Basics of Java Produced by Harvey Peters, 2008 Copyright.
Lead Black Slide. © 2001 Business & Information Systems 2/e2 Chapter 5 Information System Software.
What Is Java? According to Sun in a white paper: Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-neutral, portable,
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
Chapter 2: A Brief History Object- Oriented Programming Presentation slides for Object-Oriented Programming by Yahya Garout KFUPM Information & Computer.
Computer Programming 2 Why do we study Java….. Java is Simple It has none of the following: operator overloading, header files, pre- processor, pointer.
We will talking about story of JAVA language. By Kristsada Songpartom.
10/8: Software What is software? –Types of software System software: Operating systems Applications Creating software –Evolution of software development.
CT1513 Introduction To java © A.AlOsaimi.
Copyright © Mohamed Nuzrath Java Programming :: Syllabus & Chapters :: Prepared & Presented By :: Mohamed Nuzrath [ Major In Programming ] NCC Programme.
1. An Introduction A Programming Language A Technology Java Development Kit Java API One Language: Three Editions Standard Edition Enterprise Edition.
Java: An Overview John R Durrett Texas Tech University.
Introduction Mehdi Einali Advanced Programming in Java 1.
Java – in context Main Features From Sun Microsystems ‘White Paper’
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Introduction to Programming 1 1 2Introduction to Java.
Introduction to JAVA Programming
JAVA PROGRAMMING Buzzwords. Simple: Less complex syntax than C++ Not as easy to design as Visual Basic Small size of interpreter.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Fundamental of Java Programming (630002) Unit – 1 Introduction to Java.
Chapter 1 Coding Introduction.
Applications Active Web Documents Active Web Documents.
Object Oriented Programming in
Java™ 2 Platform Getting Started.
Done By: Ashlee Lizarraga Ricky Usher Jacinto Roches Eli Gomez
Chapter 1 Introduction to Computers, Programs, and Java
Lecture 1: Introduction to JAVA
Introduction Enosis Learning.
Chapter 1 FOUNDATIONS OF JAVA
PROGRAMMING IN JAVA. INTRODUCTION TO JAVA  Java is a general purpose computer programming language that is concurrent, class-based, object- oriented.
Introduction Enosis Learning.
Ada – 1983 History’s largest design effort
(Computer fundamental Lab)
Java History, Editions, Version Features
Chap 1. Getting Started Objectives
Outcome of the Lecture Upon completion of this lecture you will be able to understand Fundamentals and Characteristics of Java Language Basic Terminology.
Presentation transcript:

A BRIEF HISTORY OF OOP AND JAVA PROGRAMMING LANGUAGE Ziya Karakaya Atılım University Tel: (312) 4602020 / 5345 Faks: (312) 460 20 37 E-posta: ziya@atilim.edu.tr

History of Object-Oriented Programming Languages Almost all major concepts of OOP, such as objects, classes, and inheritance hierarchies, were developed in the 1960s Simula language, by Norwegian Computing Center In the 1970s, Alan Kay developed Smalltalk language at Xerox PARC (the Palo Alto Research Center) targeted to be understandable to people with no prior training in computer use demonstrated by experiments conducted using children as programmers

History (cont’d) Bjarne Stroustrup at Bell Labs who had learned Simula during his Ph.D. studies developed C++ as an extension of C Later many other OOP languages were developed: Eiffel, Objective-C, Actor, Object Pascal, etc. Since 1986 (first OOPSLA conference) OOP is a mainstream player in the PL domain the rather than a revolutionary one.

Why Java ? We will explore the OOP in the context of Java programming language. OOP has been a hot topic for over a decade Java has recently become the commonly perceived embodiment of object-oriented ideas

Java Programming Language Java is a general purpose programming language that can be used to create almost any type of computer program. Especially, it can be used to create programs intended for execution across the Internet.

The History of Java It was named Oak in 1991 at Sun Microsystems. A computer scientist, James Gosling, developed Oak for use in embedded consumer electronic applications, such as VCRs. This development purpose has determined many of the characteristics of the language. Size and reliability are key features. The processors that run in embedded systems are very small and has very little memory. A program must be able to be translated into a very concise encoding. Embedded systems should almost never fail.

Java has these features. Pointers and goto statement were eliminated. Exception-handling is enforced to handle the unexpected in a graceful fashion Unfortunately, Java (or Oak) as a language for embedded consumer electronics did not materialize at that time!

Evolution of World Wide Web World Wide Web was developed in the early 1990s by a small group of scientists at a research lab in Switzerland. As a mean of quickly communicating research results to a physically far-flung set of colleagues. To understand how Java fits into the WWW, one must understand about the concepts of clients and servers and the difference between server-side computing and client-side computing.

Client-Side Computing The Internet is a classic example of a client/server system. A person using the Internet works at his or her own computer, which runs an Internet-aware application, such as a Web browser. This is called the client system. The client application communicates over the Internet with another computer. For example, a Web browser might request the information on a Web page stored on a distant computer. This computer is the server computer. The client computer then determines how to display this information to the user.

Client-Side Computing In the past these programs are executed on the server computer. The client transmitted a request, and the server responded by executing a program and transmitting the result. Several performance problems occur There exists a delay between the moment when the client asks that a program be executed and the time the results are returned. Server programs often deal with many clients at once, reducing performance.

Client-Side Computing In client-side computing, rather than executing the program on the server side and transmitting the result, the server will transmit the program to the client. The client will execute the program locally. Advantages: Program run on a less heavily loaded system Only delay is the time to transmit the program – user interactions take place locally.

Bytecode Interpreter and Just In Time Compilers Client many not know what type of machine the server is using. The traditional concept of computer programs being translated into machine code for a specific machine will not work. Java is translated into a device-independent bytecode. This Bytecode is like a machine language for an imaginary machine, a Java-specific machine, or Java Virtual Machine (JVM) Each computer that runs Java programs then processes these bytecodes into a form that works correctly on the current system.

Interpreters vs. JIT Compilers The easiest scheme is to have an interpreter that reads and executes bytecodes one by one. A better performance can be obtained by using a just-in-time (JIT) compiler. This system takes the Java bytecodes and translates them into the machine code native to the client system. These programs then run as fast as any compiled program created specifically for the client computer.

Security Issues A program running on the client side could have full access to the client computer resources. There is potential for such a program to do significant damage, such as erasing files from a hard drive. Java programs use a security manager provided by the client. It limits the actions that can be performed by the Java program provided by the server. For example, no access to the file system or access to other machines across the Internet.

Specialization of Interfaces The sequences of commands needed to perform graphical operations varies greatly from one machine to another. The solution to this problem requires a careful coordination between the client and server computers. Portions of a Java program originating on one machine, and other parts coming from the second. The server program is structured in terms of generic classes, such as Window and Button.

When executed, these components create a peer component. Generic classes are the same regardless of the type of system on which the Java program is run. When executed, these components create a peer component. The peer component originates on the client system and is not part of the server program. Thus, a button running on a PC will create a PC-Button peer, while the same program running on a Macintoch will create a Mac-Button peer.

The White Paper Description Java is a simple, object-oriented, network-savvy, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, dynamic language. “A buzzyword heavy description”

Java is Simple Simpler than C++: No preprocessor. Far fewer special cases. No confusing features such as overloaded operators, independent functions, global variables, goto statement, structures, or pointers. Augmented with a larger library of high-level development tools.

A Remark on Pointers In many languages, there is a distinction between a value vs. a pointer to a value: Values are static, fixed-size entities Pointers are dynamic quantities filled at run-time. There are important reasons why object-oriented language should make heavy use of pointers. Java does so, but implicitly. Everything is internally a pointer. Elimination of this construct removes common errors, making it easier to construct reliable and correct programs.

Java is Object-Oriented Java has no functions and no variables that can exist outside of class boundaries. Thus, all Java programs must be built out of objects. C++ and Object Pascal (Delphi) combine OO features on top of an existing, non-object-oriented language. Programmers can continue working in old, non-object-oriented fashion. By forcing all programs into an object-oriented structure, benefits of OO are realized. (encapsulation, reusability)

Java is Network Savvy The language provides a rich set of tools for programming across a network. The Java standard library provides classes for describing universal resource locators (URLs) and for execution in controlled environments such as a World Wide Web browser.

Java is Interpreted Java was designed for a multicomputer execution environment. Any type of computer could be used as a Java virtual machine. Java programs were compiled into bytecodes , could be stored on any type of machine. An interpreter would read the bytecodes and execute them. Interpreters are much slower in execution. A just-in-time (JIT) compiler is a system that read machine-independent bytecode and translates them into actual machine instructions.

Java is Robust The Java language and associated libraries are designed to be graceful in the presence of hardware and software errors. The use of exception handling. Programmers are forced into thinking about potential source of errors. Java has an automatic memory management, garbage collection. It detects and recovers memory that is no longer being used by the current running program.

Java is Secure Multi-level Security System First Level: Second Level: Eliminating pointers remove the most common errors. The Java language insists that array index values are cheked before the are referenced. All variables must be assigned values before being used. Second Level: Bytecodes are checked for common errors. Such as they do not access classes incorrectly, overflow or underflow the operand stack, or use illegal data conversions Java programs are restricted in the type of operations they can perform. When they execute a program brought over the network, their local computers are safe from tampering.

Java is Architecture Neutral Java bytecodes work with all machines. A Java program is the same whether it runs on a PC. a Macintosh, or a Unix system. C++ libraries differ from one platform to another. Thus, it is difficult to move programs designed for the PC onto a Macintosh. Java hides these application-specific details under a layer of abstraction in the standard Java library.

Java is Portable Java programs are portable because the Java library hides architecture-specific concepts and bytecodes are the same for all machines. The exact same program can be compiled on one system, then executed on many different types of systems.

Java is High-performance Just-in-time compilers allow platform-dependent Java programs to be executed with nearly the same run-time performance as conventional compiled languages.

Java is Multithreaded Java is one of the first languages to be designed for multiple threads of execution running in one program. It is easy to set up multitasking. The coordination of these parallel processes is also relatively simple.

Java is Dynamic Because Java programs move across the Internet and execute on the user’s local computer, they permit a degree of dynamic behaviors impossible in older style systems.