1 a brief history of oop and java programming language ziya karakaya atılım university tel: (312)...

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

Upload: camron-anderson

Post on 25-Dec-2015

227 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 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

11

A BRIEF HISTORY OF OOP A BRIEF HISTORY OF OOP AND AND

JAVA PROGRAMMING JAVA PROGRAMMING LANGUAGELANGUAGE

A BRIEF HISTORY OF OOP A BRIEF HISTORY OF OOP AND AND

JAVA PROGRAMMING JAVA PROGRAMMING LANGUAGELANGUAGE

Ziya KarakayaZiya Karakaya

Atılım UniversityAtılım UniversityTel: (312) 4602020 / 5345 Faks: (312) 460 20 37 Tel: (312) 4602020 / 5345 Faks: (312) 460 20 37

E-posta: ziyaE-posta: [email protected]@atilim.edu.tr

Page 2: 1 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

22

History of Object-Oriented History of Object-Oriented Programming LanguagesProgramming Languages

History of Object-Oriented History of Object-Oriented Programming LanguagesProgramming Languages

Almost all major concepts of OOP, such Almost all major concepts of OOP, such as objects, classes, and inheritance as objects, classes, and inheritance hierarchies, were developed in the 1960shierarchies, were developed in the 1960s SimulaSimula language, by Norwegian language, by Norwegian

Computing CenterComputing Center In the 1970s, Alan Kay developed In the 1970s, Alan Kay developed

SmalltalkSmalltalk language at Xerox PARC (the language at Xerox PARC (the Palo Alto Research Center)Palo Alto Research Center) targeted to be understandable to people targeted to be understandable to people

with no prior training in computer usewith no prior training in computer use demonstrated by experiments conducted demonstrated by experiments conducted

using children as programmersusing children as programmers

Page 3: 1 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

33

History (cont’d)History (cont’d)History (cont’d)History (cont’d)

Bjarne Stroustrup at Bell Labs who had Bjarne Stroustrup at Bell Labs who had learned Simula during his Ph.D. studies learned Simula during his Ph.D. studies developed C++ as an extension of Cdeveloped C++ as an extension of C

Later many other OOP languages were Later many other OOP languages were developed: Eiffel, Objective-C, Actor, developed: Eiffel, Objective-C, Actor, Object Pascal, etc. Object Pascal, etc.

Since 1986 (first OOPSLA conference) Since 1986 (first OOPSLA conference) OOP is a mainstream player in the PL OOP is a mainstream player in the PL domain the rather than a revolutionary domain the rather than a revolutionary one.one.

Page 4: 1 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

44

Why Java ?Why Java ?Why Java ?Why Java ?

We wWe will explore the OOP in the context ill explore the OOP in the context of Java programming language.of Java programming language. OOP has been a hot topic for over a OOP has been a hot topic for over a

decadedecade Java has recently become the commonly Java has recently become the commonly

perceived embodiment of object-perceived embodiment of object-oriented ideasoriented ideas

Page 5: 1 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

55

Java Programming LanguageJava Programming LanguageJava Programming LanguageJava Programming Language

Java is a general purpose programming Java is a general purpose programming language that can be used to create language that can be used to create almost any type of computer program.almost any type of computer program.

Especially, it can be used to create Especially, it can be used to create programs intended for execution across programs intended for execution across the Internet.the Internet.

Page 6: 1 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

66

The History of JavaThe History of JavaThe History of JavaThe History of Java

It was named It was named OakOak in 1991 at Sun in 1991 at Sun Microsystems.Microsystems.

A computer scientist, James Gosling, A computer scientist, James Gosling, developed Oak for use in embedded consumer developed Oak for use in embedded consumer electronic applications, such as VCRs.electronic applications, such as VCRs. This development purpose has determined This development purpose has determined

many of the characteristics of the language.many of the characteristics of the language. SizeSize and and reliabilityreliability are key features. are key features.

The processors that run in embedded systems The processors that run in embedded systems are very small and has very little memory. A are very small and has very little memory. A program must be able to be translated into a program must be able to be translated into a very concise encoding.very concise encoding.

Embedded systems should almost never fail.Embedded systems should almost never fail.

Page 7: 1 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

77

Java has these features.Java has these features. Pointers and goto statement were Pointers and goto statement were

eliminated.eliminated. Exception-handling is enforced to handle Exception-handling is enforced to handle

the unexpected in a graceful fashionthe unexpected in a graceful fashion

Unfortunately, Java (or Oak) as a Unfortunately, Java (or Oak) as a language for embedded consumer language for embedded consumer electronics electronics did not materializedid not materialize at that at that time!time!

Page 8: 1 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

88

Evolution of World Wide WebEvolution of World Wide WebEvolution of World Wide WebEvolution of World Wide Web

World Wide Web was developed in the World Wide Web was developed in the early 1990s by a small group of scientists early 1990s by a small group of scientists at a research lab in Switzerland.at a research lab in Switzerland. As a mean of quickly communicating As a mean of quickly communicating

research results to a physically far-flung research results to a physically far-flung set of colleagues.set of colleagues.

To understand how Java fits into the To understand how Java fits into the WWW, one must understand about the WWW, one must understand about the concepts of clients and servers and the concepts of clients and servers and the difference between difference between server-side server-side computingcomputing and and client-side computingclient-side computing..

Page 9: 1 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

99

Client-Side ComputingClient-Side ComputingClient-Side ComputingClient-Side Computing The Internet is a classic example of a The Internet is a classic example of a

client/serverclient/server system. system. A person using the Internet works at his or her A person using the Internet works at his or her

own computer, which runs an Internet-aware own computer, which runs an Internet-aware application, such as a application, such as a Web browserWeb browser. This is . This is called the called the clientclient system system..

The client application communicates over the The client application communicates over the Internet with another computer. For example, Internet with another computer. For example, a Web browser might request the information a Web browser might request the information on a Web page stored on a distant computer.on a Web page stored on a distant computer. This computer is the This computer is the serverserver computer computer..

The client computer then determines how to The client computer then determines how to display this information to the user.display this information to the user.

Page 10: 1 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

1010

Client-Side ComputingClient-Side ComputingClient-Side ComputingClient-Side Computing In the past these programs are executed on In the past these programs are executed on

the server computer. The client transmitted a the server computer. The client transmitted a request, and the server responded by request, and the server responded by executing a program and transmitting the executing a program and transmitting the result.result.

Several performance problems occur Several performance problems occur There exists a delay between the moment when There exists a delay between the moment when

the client asks that a program be executed and the client asks that a program be executed and the time the results are returned. the time the results are returned.

Server programs often deal with many clients at Server programs often deal with many clients at once, reducing performance.once, reducing performance.

Page 11: 1 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

1111

Client-Side ComputingClient-Side ComputingClient-Side ComputingClient-Side Computing In client-side computing, rather than In client-side computing, rather than

executing the program on the server side executing the program on the server side and transmitting the result, the server will and transmitting the result, the server will transmit the transmit the programprogram to the client. to the client.

The client will execute the program locally.The client will execute the program locally. Advantages:Advantages:

Program run on a less heavily loaded systemProgram run on a less heavily loaded system Only delay is the time to transmit the Only delay is the time to transmit the

program – user interactions take place program – user interactions take place locally.locally.

Page 12: 1 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

1212

Bytecode Interpreter and Just Bytecode Interpreter and Just In Time CompilersIn Time Compilers

Bytecode Interpreter and Just Bytecode Interpreter and Just In Time CompilersIn Time Compilers

Client many not know what type of machine Client many not know what type of machine the server is using. the server is using. The traditional concept of computer programs The traditional concept of computer programs

being translated into machine code for a specific being translated into machine code for a specific machine will not work.machine will not work.

Java is translated into a device-independent Java is translated into a device-independent bytecodebytecode.. This Bytecode is like a machine language for an This Bytecode is like a machine language for an

imaginary machine, a Java-specific machine, or imaginary machine, a Java-specific machine, or Java Virtual Machine (JVM)Java Virtual Machine (JVM)

Each computer that runs Java programs then Each computer that runs Java programs then processes these bytecodes into a form that processes these bytecodes into a form that works correctly on the current system.works correctly on the current system.

Page 13: 1 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

1313

Interpreters vs. JIT CompilersInterpreters vs. JIT CompilersInterpreters vs. JIT CompilersInterpreters vs. JIT Compilers

The easiest scheme is to have an The easiest scheme is to have an interpreterinterpreter that reads and executes that reads and executes bytecodes one by one.bytecodes one by one.

A better performance can be obtained A better performance can be obtained by using a by using a just-in-timejust-in-time ( (JITJIT) compiler) compiler. . This system takes the Java bytecodes This system takes the Java bytecodes

and translates them into the machine and translates them into the machine code native to the client system. code native to the client system.

These programs then run as fast as any These programs then run as fast as any compiled program created specifically compiled program created specifically for the client computer.for the client computer.

Page 14: 1 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

1414

Security IssuesSecurity IssuesSecurity IssuesSecurity Issues A program running on the client side A program running on the client side

could have full access to the client could have full access to the client computer resources. computer resources. There is potential for such a program to do There is potential for such a program to do

significant damage, such as erasing files significant damage, such as erasing files from a hard drive.from a hard drive.

Java programs use a Java programs use a security managersecurity manager provided by the client. provided by the client. It limits the actions that can be performed by the It limits the actions that can be performed by the

Java program provided by the server. Java program provided by the server. For example, no access to the file system or For example, no access to the file system or

access to other machines across the Internet.access to other machines across the Internet.

Page 15: 1 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

1515

Specialization of InterfacesSpecialization of InterfacesSpecialization of InterfacesSpecialization of Interfaces The sequences of commands needed to The sequences of commands needed to

perform graphical operations varies perform graphical operations varies greatly from one machine to another.greatly from one machine to another.

The solution to this problem requires a The solution to this problem requires a careful coordination between the client careful coordination between the client and server computers.and server computers. Portions of a Java program originating on Portions of a Java program originating on

one machine, and other parts coming one machine, and other parts coming from the second.from the second.

The server program is structured in The server program is structured in terms of generic classes, such as terms of generic classes, such as Window and Button.Window and Button.

Page 16: 1 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

1616

Generic classesGeneric classes are the same regardless are the same regardless of the type of system on which the Java of the type of system on which the Java program is run. program is run.

When executed, these components When executed, these components create a create a peerpeer component component.. The peer component originates on the The peer component originates on the

client system and is not part of the client system and is not part of the server program. server program.

Thus, a button running on a PC will Thus, a button running on a PC will create a create a PC-Button peerPC-Button peer, while the same , while the same program running on a Macintoch will program running on a Macintoch will create a create a Mac-Button peerMac-Button peer..

Page 17: 1 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

1717

Page 18: 1 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

1818

The White Paper DescriptionThe White Paper DescriptionThe White Paper DescriptionThe White Paper Description

Java is a simple, Java is a simple, object-orientedobject-oriented, , network-savvy, network-savvy, interpretedinterpreted, robust, , robust, securesecure, architecture neutral, , architecture neutral, portableportable, , high-performance, high-performance, multithreadedmultithreaded, , dynamic language.dynamic language.

“ “A buzzyword heavy description”A buzzyword heavy description”

Page 19: 1 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

1919

Java is SimpleJava is SimpleJava is SimpleJava is Simple

Simpler than C++:Simpler than C++: No preprocessor.No preprocessor. Far fewer special cases.Far fewer special cases. No confusing features such as overloaded No confusing features such as overloaded

operators, independent functions, global operators, independent functions, global variables, goto statement, structures, or variables, goto statement, structures, or pointerspointers..

Augmented with a larger library of Augmented with a larger library of high-level development tools.high-level development tools.

Page 20: 1 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

2020

A Remark on PointersA Remark on Pointers A Remark on PointersA Remark on Pointers

In many languages, there is a distinction In many languages, there is a distinction between a between a valuevalue vs. a vs. a pointer to a valuepointer to a value:: Values are static, fixed-size entitiesValues are static, fixed-size entities Pointers are dynamic quantities filled at run-time.Pointers are dynamic quantities filled at run-time.

There are important reasons why object-oriented There are important reasons why object-oriented language should make heavy use of pointers.language should make heavy use of pointers. Java does so, but implicitly. Everything is internally Java does so, but implicitly. Everything is internally

a pointer. a pointer. Elimination of this construct removes common Elimination of this construct removes common

errors, making it easier to construct reliable and errors, making it easier to construct reliable and correct programs.correct programs.

Page 21: 1 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

2121

JavaJava is Object-Orientedis Object-OrientedJavaJava is Object-Orientedis Object-Oriented

Java has no functions and no variables Java has no functions and no variables that can exist outside of class that can exist outside of class boundaries. boundaries. Thus, all Java programs must be built out Thus, all Java programs must be built out

of objects.of objects. C++ and Object Pascal (Delphi) combine C++ and Object Pascal (Delphi) combine

OO features on top of an existing, non-OO features on top of an existing, non-object-oriented language. object-oriented language. Programmers can continue working in old, Programmers can continue working in old,

non-object-oriented fashion.non-object-oriented fashion. By forcing all programs into an object-By forcing all programs into an object-

oriented structure, benefits of OO are oriented structure, benefits of OO are realized. (encapsulation, reusability)realized. (encapsulation, reusability)

Page 22: 1 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

2222

Java is Network SavvyJava is Network SavvyJava is Network SavvyJava is Network Savvy

The language provides a rich set of The language provides a rich set of tools for programming across a tools for programming across a network.network.

The Java standard library provides The Java standard library provides classes for describing universal resource classes for describing universal resource locators (URLs) and for execution in locators (URLs) and for execution in controlled environments such as a controlled environments such as a World Wide Web browser.World Wide Web browser.

Page 23: 1 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

2323

Java is InterpretedJava is InterpretedJava is InterpretedJava is Interpreted

Java was designed for a multicomputer Java was designed for a multicomputer execution environment.execution environment.

Any type of computer could be used as a Java Any type of computer could be used as a Java virtual machine.virtual machine.

Java programs were compiled into bytecodes , Java programs were compiled into bytecodes , could be stored on any type of machine. An could be stored on any type of machine. An interpreter would read the bytecodes and interpreter would read the bytecodes and execute them.execute them. Interpreters are much slower in execution.Interpreters are much slower in execution.

A A just-in-timejust-in-time ( (JITJIT) compiler is a system that ) compiler is a system that read machine-independent bytecode and read machine-independent bytecode and translates them into actual machine translates them into actual machine instructions.instructions.

Page 24: 1 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

2424

Java is RobustJava is RobustJava is RobustJava is Robust

The Java language and associated libraries The Java language and associated libraries are designed to be are designed to be gracefulgraceful in the in the presence of hardware and software errors. presence of hardware and software errors. The use of The use of exception handlingexception handling.. Programmers are forced into thinking Programmers are forced into thinking

about potential source of errors.about potential source of errors. Java has an Java has an automatic memory automatic memory

managementmanagement, , garbage collectiongarbage collection. . It detects and recovers memory that is no It detects and recovers memory that is no

longer being used by the current running longer being used by the current running program.program.

Page 25: 1 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

2525

Java is SecureJava is SecureJava is SecureJava is Secure Multi-level Security SystemMulti-level Security System First Level:First Level:

Eliminating pointers remove the most common errors.Eliminating pointers remove the most common errors. The Java language insists that array index values are The Java language insists that array index values are

cheked before the are referenced.cheked before the are referenced. All variables must be assigned values before being All variables must be assigned values before being

used.used. Second Level:Second Level:

Bytecodes are checked for common errors. Bytecodes are checked for common errors. Such as they do not access classes incorrectly, overflow Such as they do not access classes incorrectly, overflow

or underflow the operand stack, or use illegal data or underflow the operand stack, or use illegal data conversionsconversions

Java programs are restricted in the type of operations Java programs are restricted in the type of operations they can perform. they can perform.

When they execute a program brought over the When they execute a program brought over the network, their local computers are safe from tampering.network, their local computers are safe from tampering.

Page 26: 1 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

2626

Java is Architecture NeutralJava is Architecture NeutralJava is Architecture NeutralJava is Architecture Neutral

Java bytecodes work with all machines.Java bytecodes work with all machines. A Java program is the same whether it A Java program is the same whether it

runs on a PC. a Macintosh, or a Unix runs on a PC. a Macintosh, or a Unix system.system.

C++ libraries differ from one platform C++ libraries differ from one platform to another. to another. Thus, it is difficult to move programs Thus, it is difficult to move programs

designed for the PC onto a Macintosh.designed for the PC onto a Macintosh. Java hides these application-specific Java hides these application-specific

details under a layer of abstraction in details under a layer of abstraction in the standard Java library.the standard Java library.

Page 27: 1 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

2727

Java is PortableJava is PortableJava is PortableJava is Portable

Java programs are portable because the Java programs are portable because the Java library hides architecture-specific Java library hides architecture-specific concepts and bytecodes are the same concepts and bytecodes are the same for all machines.for all machines.

The exact same program can be The exact same program can be compiled on one system, then executed compiled on one system, then executed on many different types of systems.on many different types of systems.

Page 28: 1 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

2828

Java is High-performanceJava is High-performanceJava is High-performanceJava is High-performance

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

Page 29: 1 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

2929

Java is MultithreadedJava is MultithreadedJava is MultithreadedJava is Multithreaded

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

processes is also relatively simple.processes is also relatively simple.

Page 30: 1 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

3030

Java is DynamicJava is DynamicJava is DynamicJava is Dynamic

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