Title: Advanced Issues In Programming
1Advanced Issues In Programming
- Java Programming Language (JSE 5)
Tang Kiah Siang WGA040005
2History
- Java history
- originally called Oak programming language1
- In 1991, using Oak underlying technology Java
programming language was born
- Oak programming language
- Oak main objective
- -designed for handheld devices and set-top
boxes2 - Oak downfall
- -failed due to the TV set-top box and
video-on-demand - industries still in infancy age during 1991
Java programming language Java main objective
-enable rich multimedia features in the
Internet3 Rising Java -with blossoming
Internet era, Sun Microsystems took this
opportunity to concentrate to Internet.
3History
- Who design it?
- James Gosling
4Where is it in use today (actual projects if
possible)?
5Where is it in use today (actual projects if
possible)?
6What programming paradigm(s) does it readily
support?
- Java support multiple programming paradigm, some
of the important paradigms are- - Object-oriented programming
- object-oriented programming make possible
essential features (such as class, object,
inheritance, encapsulation, abstraction,
polymorphism, etc) to be implemented in
application. - Generic programming
- Generic programming is implemented and supported
in Java language (JDK 5.0)14. - Event-driven programming
- Just like Microsoft Visual Studio .net, Java
IDE(Java Studio Enterprise, Netbeans, JBuilder,
and etc.) support event-driven programming too.
7What application areas is it most suited for?
- Referring the list below, from sport to aerospace
application areas, all these colossal
organizations or business enterprises have chosen
and fully implemented Java programming language
for their software. This demonstrate that Java
programming language have big potential to exceed
in most of areas.
8What are the features of Java?
- Platform Independence
- Java Virtual Machine or better known as JVM
(bundle inside Java Runtime Environment, JRE) is
the key ingredient that allow Java application
(java machine code called byte code) to run in
any platform. - Object Orientation
- Object-oriented programming provides
indispensable features such as class, object,
inheritance, encapsulation, abstraction,
polymorphism, and etc, to be implemented in java
application. By correctly implement object
oriented techniques in software will improves the
maintenance, reusability, and modifiability of
software. - Rich Standard Library
- One of Javas most eye-catching features is its
standard library. In the JDK 5.0, alone consists
of hundreds of classes and methods (not to
mention, other Java technologies like Java Micro
Edition (JME), Java Enterprise Edition 5 (JEE 5),
and others java technologies. - Applet Interface
- In addition to being able to create stand-alone
applications, Java developers can create programs
that can be downloaded from a web page and run on
a client browser. - Garbage Collection
- Java does not need programmers to explicitly
free dynamically allocated memory. That is why
there is no pointer feature in Java. This makes
Java programs easier to write and less prone to
memory errors.
9(No Transcript)
10What are the claims made of its security,
portability, efficiency, extensibility, and
maintainability?
- What Sun Microsystems claims-
- Security
- Fundamental the Java SE Platform is a dynamic,
extensible security architecture, standards-based
and interoperable18. - Portability
- Write Once Run Anywhere is the Sun
Microsystems motto for portability19. Sun
Microsystems claim Java program could write one
and run anywhere platform(Solaris, Windows,
Linux, and Other15) as long there is JVM
installed in that machine. - Efficiency
- Sun Microsystems never claim efficiency as part
of Java language attribute. This can be fairly
easily understood with the existence of JVM
layer. However, there is a sign Sun Microsystems
keep on improving the java programming language
especially on the JVM. A benchmark has been made
by Sun Microsystems to illustrate the increase
performance between J2SE 5.0 and J2SE 1.4.2 (for
more information, please visit 20) -
11What are the claims made of its security,
portability, efficiency, extensibility, and
maintainability?
- Sun Microsystems claims-
- Extensibility
- Extensibility within the program
- Object oriented provide extensibility21
- Extensibility beyond the program
- The portability and extensibility of both XML
and Java make them the ideal choice for
information that is exchanged between different
classes of clients and different servers that run
on varied system platforms22. - Maintainability
- Applications that are based on standardized
packages are easier to maintain23.
12Describe the compilation/interpretation/execution
model it uses.
- The Java compiler translates Java source code
into a special representation called bytecode - Java bytecode is not the machine language for
any traditional CPU - Another software tool, called an interpreter,
translates bytecode into machine language and - executes it
- Therefore the Java compiler is not tied to any
particular machine - Java is considered to be architecture-neutral
Figure 1.1 Java Translation 24 (Book Java
Software Solution "Foundations of program
design", Authors John Lewis William Loftus.
Publisher Pearson, Addison Wesley)
13Description of Language
- Scalar data objects
- Scalar data object is considered as elementary
data objects since these objects only have a
single attribute25. There are some type that
can be categorized as scalar data types such as
numeric data type, booleans, characters, and
enumerations.
14Description of Language
- Scalar data objects
- Numeric data types
15Description of Language
- Scalar data objects
- Numeric data types
16Description of Language
- Scalar data objects
- Boolean data type
17Description of Language
- Scalar data objects
- Character data type
- Enumeration
18Description of Language
- Composite objects
- Composite data types are those that are built up
from other (generally scalar) data types.
Composite data types can be built from elementary
types and from other composite types. For
example, string data type was composed from
series of character.
19Description of Language
- Composite objects
- Composite data types are those that are built up
from other (generally scalar) data types.
Composite data types can be built from elementary
types and from other composite types. For
example, string data type was composed from
series of character. - String
- Pointer
20Description of Language
- Structure objects
- A data object that is constructed as an
aggregate of other data objects is termed a
structured data object. A structured data type is
a type in which each value is a collection of
component items. - Array
21Description of Language
22Description of Language
23Description of Language
- Abstract data types
- A mathematical model which may be used to
capture the essentials of a problem domain in
order to translate it into a computer program
examples include queues, lists, stacks, trees,
graphs, and sets29.
24Description of Language
- Active Objects
- The Active Object design pattern decouples
method execution from method invocation that
resides in their own thread of control. The goal
of an active object is to introduce concurrency,
by using asynchronous method invocation and a
scheduler for handling requests30. In Java,
there is already a concept of an active object,
which contains a distinguished method, named run
that can be started on a thread31.
25Description of Language
- Active Objects
- Multithreading
26Final Evaluation
What I think?
- Do you have any basis to agree or disagree with
any claims made of its security, - portability, efficiency, extensibility/maintainabi
lity? - Security
- Not agree. I did experience security flaw from
using Java applet once. I think this happen when
I went to visit a website and I signed an applet
without knowing it could harm my pc, as a result
my Internet Explorer browser had been corrupted
with spams bombardment. After some researches I
found that Java still need quite a way to go for
their security, some of concerns I found are- - Final Project for Computer and Network Security
(Dougless R.Dechow)33 - Found Java security weakness in Denial of Service
(DOS), Antagonistic, System Modification and
Invasion of Privacy that mainly uses Java applets
to launch attack. - Portability
- Agree as I have never encounter any portability
issue for Java application. There is a experiment
by InfoWorld(publishing company), Eric Hammond
did a test on Java program on different
platform(windows, unix and solaris operating
system) and found no problem at all34.
27Final Evaluation
What I think?
- Do you have any basis to agree or disagree with
any claims made of its - security, portability, efficiency,
extensibility/maintainability? - Efficiency
- I do think that a machine need to meet certain
requirement to run a java program efficiently as
existence of JVM layer play a part as
intermediate between operation system and java
application. InfoWorld(publishing company), Eric
Hammond also did efficiency test on the Java
application on different old platform(generally
Pentium Pro 180 processors and 128 RAM) and the
Java program run in acceptable time and
efficiently35. - In addition, there is a sign Sun Microsystems
keep on improving the java programming language
especially on the JVM. A benchmark has been made
by Sun Microsystems to illustrate the increase
performance between J2SE 5.0 and J2SE 1.4.2 (for
more information, please visit 20). - Extensibility
- Extensibility within the program
- Agree. From I learned and experience, object
oriented concept definitely determine the
extensibility of a certain program. - Extensibility beyond the program
- Agree. From my experience, Java and XML is
prefect partner for IT integration, especially
for enterprise legacy system and normal
application to exchange information. One of
successful project is how Java Technology and XML
are improving healthcare in Brazil36.
28Final Evaluation
What I think?
- Do you have any basis to agree or disagree with
any claims made of its security, - portability, efficiency, extensibility/maintainabi
lity? - Maintainability
- I agree that applications that are based on
standardized packages are easier to maintain. In
addition, one of the critical strengths of object
oriented programming has been that the code is
easier to maintain. Object-oriented code has
enabled the creation of larger, more
highly-functional and extensible applications yet
easy to maintain.
What aspect of this language did you find most
difficult to learn/understand? Multithreading as
I found that to develop a multithreading program
for distributed system could be complicate and
consume time especially when I need to control
the flow of information with a large number of
users at the same time.
29Final Evaluation
What I think?
- How would you rate the programming environment?
compiler/interpreter messages? - Personally, I will give-
- Would you use this language again and if so what
for? if not, what would you choose to use instead
and why? - Yes, I will use Java language-
- Java EE for web services
- Java SE for stand alone application
- Java ME for mobile application
- Design mistakes (in your opinion or the opinion
of others)? Have they been corrected in other
languages that were a follow-on. What if anything
is missing in your opinion? - No, so far I am happy with all the Java language
design provides.
30References
- 1 Patrick Naughton. URL http//ils.unc.edu/blaz
e/java/javahist.html - 2 Sun Microsystems. URL http//java.sun.com/fea
tures/1998/05/birthday.html - 3 Sun Microsystems. San Jose Mercury News
- URL http//java.sun.com/features/1998/05/images/m
erc_large.gif - 4 Oreilly. Open Source and NASA's Mars Rover
(2004) - URL http//www.onlamp.com/pub/a/onlamp/2004/08/02
/oss_mars_rover.html - 5 CNN. Internet language runs
remote-controlled Mars rover (17 January 2004) - URL http//www.cnn.com/2004/TECH/space/01/16/spac
e.mars.java.reut/index.html - 6 Sun Developer Network. How Nike iD Hurdled
the Java Technology and Flash Barrier (2006) - URL http//developers.sun.com/learning/javaoneonl
ine/2006/coolstuff/TS-9123.pdf - 7 Sun Developer Network. The Future ARM
Architecture for Execution Environments (2005) - URL http//developers.sun.com/learning/javaoneonl
ine/2005/mobility/TS-7178.pdf - 8 ARM. ARM Jazelle Technology
- URL http//www.arm.com/products/esd/jazelle_home.
html - 9 Sun Developer Network, Steve Meloan.
Futurama Using Java Technology to Build Robots
That Can See, Hear Speak, and Move (July 2003) - URL http//java.sun.com/developer/technicalArticl
es/Programming/robotics/ - 10 Lejos. Frequently Asked Questions
- URL http//lejos.sourceforge.net/faq.html
- 11 F1 Nutter. McLaren and Java programming
31References
- 19 Sun Microsystems Press. Independent tests
demonstrate write one run anywhere capabilities
of Java (18 September 1997) - URL http//www.sun.com/smi/Press/sunflash/1997-09
/sunflash.970918.2.xml - 20 Sun Developer Network. J2SE 5.0
Performance White Paper - URL http//java.sun.com/performance/reference/whi
tepapers/5.0_performance.html2 - 21 Sun Developer Network. Java(TM) Advanced
Imaging API README - URL http//java.sun.com/products/java-media/jai/R
EADME-1_1_2.html - 22 Sun Developer Network. Java Technology and
XML FAQs - URL http//java.sun.com/xml/faq.htmlrelationship
- 23 Sun Developer Network. Concurrent
Programming with J2SE 5.0 - URL http//java.sun.com/developer/technicalArticl
es/J2SE/concurrency/ - 24 Book Java Software Solution "Foundations of
program design", Authors John Lewis William
Loftus. Publisher Pearson, Addison Wesley - 25 Bharat Kinariwala and Tep Dobry. Scalar
Data Types - URL http//www-ee.eng.hawaii.edu/tep/EE160/Book/
chap5/section2.1.3.html - 26 Prentice Hall. Fundamental Programming
Structures in Java - URL http//www.phptr.com/articles/article.asp?p1
01766seqNum3rl1 - 27 CPlusPlus.com. Variables. Data Types
- URL http//www.cplusplus.com/doc/tutorial/variabl
es.html - 28 Comparing VB.Net to VB6
- URL http//www.thescarms.com/vbasic/VB6vsVBNet.as
p
32Questions
33Thank you.
Goodbye!