author:  Tina Deol title:  Group 3 Java paper ID:  12560522 submitted:  02-11-04 12:57 PM PST
similarity index:  
  (11% matching text)
version:   side-by-side version
       Sources:   
 link 
 match 
Internet
http://linuxaid.com.cn/articles/6/2/622023948.shtml
3%
Internet
http://www.javalobby.org/threadMode2.jsp?forum=61&thread=6353&start=0
1%
Internet
http://www.wave-report.com/2000%20Wave%20Issues/wave2011.html
1%
Internet
http://www.emea.cobalt.com/aboutsun/media/presskits/wkreview.html
1%
Internet
http://web2.java.sun.com/docs/books/tutorial/getStarted/intro/definition.html
1%
Internet
http://www.smhi.se/hfa_coord/nordklim/report07_2001.pdf
1%
Internet
http://medstat.med.utah.edu/medstat_ops/node182.html
1%
Internet
http://www.build-more-pages.com/link_directory/class_enclosing_java_not.html
0%
Internet
http://www2.comcol.nl/bestel/biedms_d.htb
0%
Internet
http://cephas.net/blog/archives/cat_j2ee.html
0%
Internet
http://flres.java.sun.com/features/2001/06/jcp.program.html
0%
Internet
http://georgehernandez.com/xProgramming/PERL/zLinks.htm
0%
Internet
http://quicken.com.com/2102-1001-225464.html
0%
      Report text:


MGT415H5


Group Assignment


Java


by


Group 3


Ajit Thagad



Anand Patel

Bill Maloney

Wan Heng (Alvin) Lee

Yvonne Lee

Kevin Pedra


Introduction 3

Companies/Organization Using Java 3

Industry and Commercial Bank of China (ICBC): 3

Office Depot 3

Kodak Polychrome Graphics 4

The American Red Cross 4

Business Enabler 4

How Java Works 5

Versions 7

Example of Java Code 8

Alternatives 9

Alternative 1: C# 9

Alternative 2: C++ 10

Alternative 3: Assembly 11

Alternative 4: PERL 12

Standards Bodies 13

Bibliography: 15

Websites: 15

Books: 16


1 Introduction

In recent years, Java has emerged as an industry-leader in the world of
computer programming. This high-level computer programming language has
become popular with businesses because of its compatibility, which
automatically configures it to each separate platform and operating system.
Several additional versions of Java have hit the market since its first
release by Sun Microsystems in 1996, with each version including more and
more packages and classes while becoming increasingly speedy and efficient.
These newer versions have allowed Java to continually adapt to the ever-
changing computing industry. More and more companies are relying on Java
because of its user-friendly applications and reliability.

2

3 Companies/Organization Using Java

3.1.1 Industry and Commercial Bank of China (ICBC):

ICBC, the largest state-owned commercial bank in China, used Java (a Sun
Microsystems technology) to cut costs and increase simplicity. ICBC took
advantage of Java's knowledge and efficiency to help with its consolidation
efforts.

3.1.2 Office Depot

One of the largest resellers of office products in the world, Office Depot
uses Java technology for increasing cost effectiveness and for
standardization purposes. Office Depot is also working on a global content
application roll out with the use of this technology.


3.1.3 Kodak Polychrome Graphics

Kodak, the leader in the conventional and digital graphic arts
industry, employs Java in its attempt to implement a SAP infrastructure.
The main purpose of the implementation of SAP is for the management of
Kodak's inventory and finance departments.

3.1.4 The American Red Cross

The American Red Cross uses Java to help design systems to control
its blood bank. Java has also helped the Red Crosses system become more
integrated all the way from back office operations to blood supply
management and employee training & assessments.


4 Business Enabler

In today's market, businesses are required to utilize the speed,
accessibility and opportunity that the internet has to offer. Businesses
must transact online to keep up with the trends of the global community,
and the selection of the right solution for your business will impact how
efficiently the benefits of the internet are harnessed.


Java is no longer an interest or "half-baked" solution to a problem that
did not pose a viable threat to a business. Rather, an increasing number
of large companies have found a home for Java on their servers. "It's just
an application, but it's huge," says Stephen Earl, senior Web analyst. "It
handles more than 160 functions. Is it mission-critical? We run our
business on it"[1]. Java technology "provide(s) a leading-edge foundation
for enabling e-business services. Some of the most innovative internet
start-up companies have their entire company based on Java backbones."[2]


5 How Java Works

Java is a high level programming language. Its main selling points to
businesses are the ease of use compared to other languages such as C++, and
its "Write once, run anywhere" format[3]. Most programming languages either
compile or interpret a program, enabling you to use it on your computer;
however, Java can perform both functions[4].

The first step in creating Java programs is the use of the compiler to
translate a program into an intermediate language called Java bytecodes.
Java bytecodes are the equivalent of instructions that are then interpreted
by the Java Virtual Machine (Java VM). Each Java interpreter is a Java VM.
These are platform independent codes that are interpreted by the
interpreter on the Java platform. The interpreter
separates and runs each
Java bytecode on the computer. The compilation process occurs once while
the interpretation process happens each time the program is executed.

The program can be written on any platform that has a Java compiler and can
be run on any form of Java VM, which can be anything from a Windows
operating system, to a Mac OS[5].

[pic]


Source:
http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html,
The Java Tutorial, "About the Java Technology"

This compatibility is what makes Java so attractive to businesses.
Programs do not have to be reconfigured to fit within different platform
and operating systems. Whereas most platforms are combined of hardware and
software, the Java platform consists only of software. It consists of the
Java Virtual Machine, and the Java Application Programming Interface (Java
API). The Java API is a combination of software modules that offer a
variety of functions, such as graphical user interfaces.

Businesses use Java to create and run high level applications, such as web
servers, proxy servers and mail servers. Another type of application that
businesses create with Java is servlets, which are applets that run on the
server side of the system and are used for the creation of interactive web
applications.

By using Java, businesses are not concerned regarding the platform which
the end user is working on. They can simply create one program that will
run on any platform. This saves the company time and money, and allows
them to focus on more important things than compatibility issues

6 Versions

Sun released the first edition of Java in 1996, calling it Java 1.0. The
initial release offered 8 packages and 212 classes. Java 1.0 was soon
updated to Java 1.1 in 1997. This version added 15 more packages for a
total of 23 packages and had 504 classes. Also, Java 1.1 now included
inner classes and boasted improved event handling[6]. These versions of
Java remained "current" until the release of Java 1.2, also known as 'Java
2', in 1999. This latest version was initially set out to be called Java
1.2 but some felt that the significant changes called for the label Java
2[7]. With 59 packages and 1520 classes, Java 1.2 now offered foundation
classes which allowed for an improved graphical user interface[8]. Also,
Java 1.2 would now offer new features such as drag and drop and added
security features[9].In 2002, Java 1.3 was released. This version, also
considered to be part of the 'Java 2' Platform, increased the number of
packages to 76 and the number of classes to 1842. The newer version, not a
drastic change from 1.2, increased speed and added features that were
previously available as separate packages. The biggest addition was the
'Hotspot Virtual Machine', which increased the startup speed. 2002
introduced Java 1.4 with 135 packages and 2991 classes. This latest
version offers increased speed and more support, however, will be updated
in 2004 to include Generics and other features[10].


7 Example of Java Code


/**

* The HelloWorldApp class implements an application that

* simply displays "Hello World!" to the standard output.

*/

class HelloWorldApp {

public static void main(String[] args) {

System.out.println("Hello World!"); //Display the string
.

}

}


Possibly the most famous example of java, this piece of code displays
the phrase 'hello world' when applied. There are three methods for
inserting comments in the code. Comments made according to these methods
are ignored by the compiler and are strictly for the use of the
programmer/readers. The three methods are (1) /** ending with */ (2) /*
ending with */ and (3) the compiler will ignore everything from // until
the end of the line
(http://java.sun.com/docs/books/tutorial/getStarted/application/comments.htm
l, 2004Feb06, The Java Tutorial, "Comments In Java Code"). All java coding
begins with the selection of a class. Here in our example this is denoted
[class HelloWorldApp {]. A class is used to categorize the code. These
categories group together codes that appear to be identical
(http://java.sun.com/docs/books/tutorial/getStarted/application/classdef.htm
l, 2004Feb06, The Java Tutorial, "Defining a Class"). The information in
classes is stored as variables
(http://java.sun.com/docs/books/tutorial/getStarted/application/classdef.htm
l, 2004Feb06, The Java Tutorial, "Defining a Class"). With the release of
Java 1.1, inner classes were introduced. Inner classes allow the
programmer to be more specific regarding the type of class by enabling the
programmer to input more than one class (http://tns-
www.lcs.mit.edu/manuals/java-api-
1.1beta2/guide/innerclasses
/html/innerclasses.doc.html , 2004Feb06,
Telemedia, Network and Systems Group, MIT, "Inner Classes in Java 1.1").

The next line of code is referred to as the main method. Similar to
the main method used in C and C++, the definition of a main method is
necessary for the code to run applications. The main method in our code
appears as [ public static void main(String[] args) { ]. The class
selection from the first line of code calls upon the main method which in
turn calls upon all other methods required to run the application (
http://java.sun.com/docs/books/tutorial/getStarted/application/main.html,
2004Feb06, The Java Tutorial, "The Main Method").

The final line, [System.out.println("Hello World!"); //Display the
string
.],

is where the variable in our code is located. The name of the variable in
this case is System.out. Periods are used to join methods and variables as
well as instance variables
(http://java.sun.com/docs/books/tutorial/getStarted/application/objects.html
, 2004Feb06, The Java Tutorial, "Using Classes and Objects). An instance
in this piece of code is the print stream. In the second part of the last
line, the code initiates the print function, prompting the computer to
print "Hello World."


8 Alternatives

8.1.1 Alternative 1: C#

C# was created by Microsoft in June of 2000 to support the .NET framework.
This fairly new programming language is object-oriented and is aimed at
enabling programmers to build a wide range of applications for the
Microsoft .NET platform
[11]. C# enables the programmer to shorten
development time by freeing the developer from worries such as memory
management and type safety issues[12]. This programming language is simple
and modern being derived from C++ and Java. C# aims to combine high
productivity of Visual Basic and the basics of C++. C# supports garbage
collection as well as automatic memory management[13].

A disadvantage of C# programming includes the large download of the .NET
framework (131MB) or a very expensive Visual Studio .Net. Since C# is a
Microsoft product, it is considered an easy target by hackers and viruses.
Lastly, running a C# program requires a speedy machine or it will run
slow[14].

8.1.2 Alternative 2: C++

C++ was developed by Bjarne Stroutrup at Bell Labs during the early 1980's.
It was designed to support the features of C[15]. In addition to C, C++
includes features such as classes with inheritance and virtual functions.
C++ is a higher end version of C with full support for object-oriented
programming[16]. C++, like C is very fast and versatile. Both are
considered universal languages. This high-level programming language is
portable or machine independent as well as programmer friendly. C++ is
backwards compatible with C, meaning that C++ compliers can understand C
programs.


C and C++ applications are applied on one operating system platform that
are usually very much intertwined with native windowing system and OS
specific networking capabilities. Also, C++ is less portable in comparison
to Java. This is because each implementations decides the precision and
storage requirement for basic data types (short, int, float , double, etc).
Unlike Java, C++ is considered less reliable because of certain features
such pointers and automatic type conversion. Also, because it is not a low-
level machine language (like Assembly), its language needs to be translated
for the machine. C++ requires the programmer to allocate memory and to
collect garbage[17]. As well, those who are not familiar with the
structured programming style in C may find it a challenge if they decide to
use languages that are closer to the machine such as Assembly.

8.1.3 Alternative 3: Assembly

Assembly is a low-level programming language (machine language). An
assembly language program is a sequence of commands or operations that the
computer "reads" and then performs. One advantage of using assembly
language is that it is self-managed, since it is the programmer who also
creates the tools. Assembly is fast and efficient. Since assembly language
is a machine language (is it machine oriented) no translation is
required[18].

Assembly programming is not commonly used among most programmers; this
specialization can be good or bad. Since the language is difficult to read
and code, assembly is deemed not programmer friendly. A negative aspect of
creating the tools is that it is harder and at times, very frustrating. The
programmer as well, must manage and allocate memory, which can be very time
consuming. Programming languages such as Java and C++ avoids this problem
because they have intrinsic memory management. As well, unlike Java and
C++, assembly programming is not portable[19].

8.1.4 Alternative 4: PERL

An alternative to Java is Perl, which stands for "Practical Extraction and
Report Language" though some have coined the acronym as "Pathologically
Eclectic Rubbish Lister." Perl is created by Larry Wall who continues to
develop and maintain the language. This programming language can be used in
virtually every platform, providing a useful tool for portable code. Other
advantages of Perl include the many built-in functions for character string
manipulation
. If mastered, these functions make it possible to write string
code quickly and concisely
.

A disadvantage of Perl is that its code is rather complex. If the
documented code is poorly written, understanding it can be difficult. Perl
programs require an interpreter whereas Java does not. Since Perl requires
an interpreter, Perl programs starts slowly, especially if the user program
uses dynamically loaded libraries
. Perl also attempts to continue execution
in spite of 'minor' programming errors. This can make it difficult to find
the start of a chain of
errors[20]. Perl is also a scripting language,
meaning that to run the program, you must install Perl (Perl does not have
a complier).


9 Standards Bodies

On May 23 1995, Sun Microsystems announced that Java technology was going
to be incorporated into Netscape Navigator[21]. Since then, there had been
pressure on Sun Microsystems to standardize Java through an official
standard body. Sun was willing to standardize Java into a 'write once, run
anywhere' technology, but did not want to lose any control of the
product[22]. In 1997, the International Standards Organization (ISO)
accepted Sun's offer to standardize Java, but Sun never submitted Java to
the Organization. Sun cited that they were 'unhappy with the degree of
control the [ISO] would have over the Java specification'[23]. Two years
later, Sun attempted to standardize Java through the European Computer
Manufacturers Association (ECMA). Again, Sun eventually refused to
standardize Java through this process. This time Sun's VP George Paolini
claimed that '[ECMA] does not provide the necessary assurances and
safeguards that are needed to protect the interests of Sun, the Java
community, and ECMA
."[24]

After these failed attempts, Sun abandoned the idea of standardizing Java
through an international standard body. Instead, they developed the Java
Community Process 2.0 (JCP) program to use as an 'open source'
standardization process[25]. The JCP is a program that allows the
development of Java in an open and cooperative manner, without the direct
involvement of Sun. Users of Java can propose Java Specification Requests
(JSRs) - documents requesting major changes to Java or development of new
specifications-to the JCP in order to make a change or add a new component
to Java. The JCP, which now has over 350 members, looks over the JSRs and
decides if the changes are acceptable.

Recently (Jan 2004), JCP added another layer to the 'open-standardization'
process called the Java Tools Community (JTC)[26]. According to the Java
website, the goal of JTC is to 'to promote the creation, adoption, and
advancement of JCP standards for "toolability" and interoperability in the
design-time area
.'[27] The JTC was founded by the following 10 companies;
BEA Systems, Compuware, Embarcadero Technologies, Iopsis Software,
JetBrains, Oracle Corp., Quest Software, SAP AG, SAS and Sun
Microsystems
[28]. The JTC will provide an online society where tool
vendors, customers and developers can work together to further develop
Java.

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27


28
Bibliography:


28.1.1 Websites:

http://www.prnewswire.com/cgibin/stories.pl?ACCT=SVBIZINK6.story&STORY=/www/
story/01-20-2004/0002092144&EDATE=TUE+Jan+20+2004,+09:03+AM, 2004Feb02,
PR Newswire, "News and Information"


http://www-306.ibm.com/software/info/synergy/L1.pdf, 2004Feb07, IBM, "Lotus
Domino and WebSphere Application Server Software Solutions to Support Your
Business Objectives"


http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html,
2004Feb06, The Java Tutorial, "About the Java Technology"


http://www.particle.kth.se/~lindsey/JavaCourse/Book/Java/Chapter01/versions.
html, 2004Feb10, Java, "Java Tech"


http://www.os2ezine.com/20000816/java1-2-13.html, 2004Feb06, OS2EZINE,
"Java What's The Difference?"


http://thetyro.co.uk/javaversion.html, 2004Feb05, The Tyro Productions
Ltd., "Java Versions"


http://java.sun.com/features/1998/05/birthday.html, 2004Feb03, The source
for Java Developers, "Java Technology: The Early Years"


http://java.sun.com/features/1998/01/wora.html, 2004Feb01, The source for
Java Developers, "Write Once, Run Anywhere: Why It Matters"


http://news.com.com/2100-1001-225197.html, 2004Jan30, CNET News, "Sun
revising plan for Java recognition"


http://techrepublic.com.com/5100-6329-5033149.html, 2004Feb04,
TechRepublic, "Sun refuses to relinquish control over Java"


http://java.sun.com/features/2001/06/jcp.program.html, 2004Feb03, The
Source for Java Developers, "Java Community Process program"


http://www.jcp.org/en/home/index, 2004Feb03, Java Community Process, "News
from JCP"


http://www.javatools.org, 2004Feb04, Java Tools Community, "Overview"


http://xml.coverpages.org/JTC-Announce.html, 2004Feb04, Cover Pages, "Java
Tools Community"

http://sern.ucalgary.ca/courses/CPSC/547/W2002/slides/11, 2004Jan30, CPSC
547, "Advanced Information Systems"

http://www.c-sharpcorner.com/Language/CSfeaturesGAG.asp, 2004Jan31, C#
Corner, "C# and its Features"

http://www.ecom.arizona.edu/mis507a/quicktalk/c_sharp.html, 2004Jan30, C#,
"C#"


http://www.25hoursaday.com/CsharpVsJava.html, 2004Jan30, C# From a
Developer's Perspective, "A Comparison of Microsoft's C# Programming
Language to Sun
's Microsystems' Java Programming Language."


http://arizonacommunity.com/articles/java_32001.shtml, 2004Jan27,
Arizonacommunity.com, "Java Advantages & Disadvantages"


http://www.ccse.kfupm.edu.sa/~saliu/ICS102/fall031/lecture/L02_OverviewOfPro
grammingParadigms.ppt, 2004Jan27, ICS102, "Overview of Programming
Paradigms"


http://cplus.about.com/library/weekly/aa010702a.htm, 2004Jan27, All you
need to know About, "Introduction to C and C++"


http://cs.smith.edu/~thiebaut/ArtOfAssembly/fwd/fwd.html#61, 2004Jan29, The
Art of Assembly Language, "What's Wrong with Assembly Language?"


http://medlib.med.utah.edu/medstat_ops/node182.html, 2004Jan28, Learning
PERL, "PERL Advantages and Disadvantages"


http://archive.ncsa.uiuc.edu/General/Training/PERLIntro/whatIs.html,
2004Jan28, Overview of Programming Paradigm, "Programming Languages"


28.1.2 Books:


C++ Interactive Course, Robert Lafore, 1-57169-063-8, "Chapter 1: Session
2: Features of Object-Oriented Languages" pg14.


-----------------------
[1] http://www.internetwk.com/trends/trends022299.htm

[2] http://www-306.ibm.com/software/info/synergy/L1.pdf

[3]
http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html

[4]
http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html

[5]
http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html

[6]
http://www.particle.kth.se/~lindsey/JavaCourse/Book/Java/Chapter01/versions.
html

[7] http://www.os2ezine.com/20000816/java1-2-13.html

[8]
http://www.particle.kth.se/~lindsey/JavaCourse/Book/Java/Chapter01/versions.
html

[9] http://www.os2ezine.com/20000816/java1-2-13.html

[10]
http://www.particle.kth.se/~lindsey/JavaCourse/Book/Java/Chapter01/versions.
html

[11] http://www.c-sharpcorner.com/Language/CSfeaturesGAG.asp

[12] http://www.25hoursaday.com/CsharpVsJava.html

[13] http://sern.ucalgary.ca/courses/CPSC/547/W2002/slides/11

[14] http://www.ecom.arizona.edu/mis507a/quicktalk/c_sharp.html

[15] C++ Interactive Course, Robert Lafore, 1-57169-063-8, "Chapter 1:
Session 2: Features of Object-Oriented Languages" pg14.

[16] http://cplus.about.com/library/weekly/aa010702a.htm

[17] http://arizonacommunity.com/articles/java_32001.shtml

[18] http://archive.ncsa.uiuc.edu/General/Training/PERLIntro/whatIs.html

[19] http://cs.smith.edu/~thiebaut/ArtOfAssembly/fwd/fwd.html#61

[20] http://medlib.med.utah.edu/medstat_ops/node182.html

[21] http://java.sun.com/features/1998/05/birthday.html

[22] http://java.sun.com/features/1998/01/wora.html

[23] http://news.com.com/2100-1001-225197.html

[24] http://techrepublic.com.com/5100-6329-5033149.html

[25] http://java.sun.com/features/2001/06/jcp.program.html

[26] http://www.jcp.org/en/home/index

[27] http://www.javatools.org/

[28] http://xml.coverpages.org/JTC-Announce.html