Home    |    Instructor-led Training    |    Online Training     
         
 
Courses
ADA
Adobe
Agile
AJAX
Android
Apache
AutoCAD
Big Data
BlockChain
Business Analysis
Business Intelligence
Business Objects
Business Skills
C/C++/Go programming
Cisco
Citrix
Cloud Computing
COBOL
Cognos
ColdFusion
COM/COM+
CompTIA
CORBA
CRM
Crystal Reports
Data Science
Datawarehousing
DB2
Desktop Application Software
DevOps
DNS
Embedded Systems
Google Web Toolkit (GWT)
IPhone
ITIL
Java
JBoss
LDAP
Leadership Development
Lotus
Machine learning/AI
Macintosh
Mainframe programming
Mobile
MultiMedia and design
.NET
NetApp
Networking
New Manager Development
Object oriented analysis and design
OpenVMS
Oracle
Oracle VM
Perl
PHP
PostgreSQL
PowerBuilder
Professional Soft Skills Workshops
Project Management
Rational
Ruby
Sales Performance
SAP
SAS
Security
SharePoint
SOA
Software quality and tools
SQL Server
Sybase
Symantec
Telecommunications
Teradata
Tivoli
Tomcat
Unix/Linux/Solaris/AIX/
HP-UX
Unisys Mainframe
Visual Basic
Visual Foxpro
VMware
Web Development
WebLogic
WebSphere
Websphere MQ (MQSeries)
Windows programming
XML
XML Web Services
Other
Java Versions and Terminology Demystified
Overview

Though Sun Microsystems and the other Java Community Process participants have built a marvelous platform for software development, they have not done such a fabulous job managing their buzzwords. There are not only many overlapping terms to understand -- Java, J2SE, J2EE, SDK, JDK, JRE, etc. -- there are multiple versions and, in fact, multiple version numbering systems in play.

This document aims first to clarify the  terms  and the  version numbers , and then offers some tips on which Java version(s) are most likely to be appropriate in training situations.
The Frequently asked question

The most common version question that occurs when considering Java training is simply, "Do I want Java 1.4 or Java 5?" The shortest answer we can manage to that question is here, though you may want to dig into other sections for details.

After many revisions which only added new functionality to the Java standard APIs, the Java 5 release introduced a number of powerful new features to the Java language and runtime, especially improving ease of use and type safety. Since then there has been one more major release, which is Java 6; this is back in the mode of enhancing functionality without changing any basics of the language itself. Java 5/6 is clearly a superior tool, but because classes compiled with Java 5 won't work in older runtimes, there is a significant barrier to migration, and many companies will hold off on moving to Java 5 for months or even years.

This means there is no simple, single answer to the question! The very best thing to do is to ask the client or the trainees themselves what version of J2SE they are or will soon be using, and train for that version. For a brief decision framework, see Which version do I want?

What do the Terms mean?

First a quick explanation of terminology, in glossary form:

  • Java -- 1. The programming language itself. 2. The complete platform of tools making it possible to use and to develop software using the Java language: this includes the JRE for users and the SDK or JDK for developers.

  • JRE -- The Java Runtime Environment: this is the package of software that must be installed on a machine in order to run Java applications. It does not include development tools.
  • SDK and JDK -- The Software Developers Kit and Java Developers Kit: these include a JRE and also development tools such as compilers and debuggers. Sun deftly moved from the term JDK to SDK a few years ago, and now with the latest release of Java they are just as deftly returning to JDK.
  • J2SE, Java SE -- The Java Platform, Standard Edition: this is one of three editions of the Java platform; it is indeed the "standard" one, and it is the one most people mean when they talk about plain old Java software. For years this has been known as "J2SE" and is now properly called "Java SE."
  • J2EE, Java EE -- The Java Platform, Enterprise Edition: another of the Java platforms, Java EE includes Java SE and is dedicated to enterprise software development. For years this has been known as "J2EE" and is now properly called "Java EE" or "Java Enterprise." Java EE systems typically include Web servers, application servers, messaging software, and increasingly Web-services engines. Java EE is an umbrella specification that includes many popular technologies: Servlets, JSP, EJB, JMS, and the Java Web-services APIs (SAAJ, JAX-RPC, JAX-WS) are all part of Java EE.
Which Version is which?

Within the J2SE -- again, this is the platform most people are referring to when they talk about Java software, unless they specifically mention J2EE -- there are a few things to know about version numbers. First, the Java language and the J2SE platform share a version number, so to say "Java 1.3" is to say "J2SE 1.3." Technically, one is the language and one is the platform, but they move in synchronization.

The "2" in "J2SE" looked like a version number of sorts, but it mostly confused the issue of what "version of Java" one was working with or wanted. The primary version numbering has historically run from Java 1.0 (released in 1996) up through 1.1, 1.2, 1.3, and 1.4; there have been minor upgrades to each platform along the way and so, for instance, many companies are currently using Java 1.4.2. As of Java 1.2, Sun defined the three-platform architecture and developed the "Java 2" platform as a brand of sorts. Thus -- sadly -- "Java 2" overlaps "Java 1.2," All versions since Java 1.2 have been versions of the "Java 2 Platform."

Then, Java 1.5 was released, and the version-numbering scheme was also revised, with the aim of making the first digit in the number more meaningful: we'll start talking about version X, not version 1.X. So Java 1.5 is also Java 5! Fantastic; and 1.6 also equals 6. Either number is valid, but Sun generally favors 6 for the current version (and so does Wintrac). Future revisions will just be labeled 7, 8, etc., with minor updates appearing as "update N."

So these three overlapping schemes lay out like this:

Platform Old New
  1.0  
  1.1  
Java 2 1.2  
Java 2 1.3  
Java 2 1.4  
  1.5 5.0
  1.6 6.0


Which Version do I want?

J2SE releases are backward-compatible, for the most part. However there is less forward compatibility. By "backward-compatible," we mean that old code will run on a new version of the platform; and by "forward-compatible," that code written on a new version of the platform will run on an old version of the platform. Especially with the new release of Java 5.0, there is no such forward-compatibility: this version uses a new format for its binary files (class files), which cannot be understood by an old (1.4 or earlier) runtime.

Wintrac offers multiple versions of many of its Java courses, but which version should you choose for training? It can be critical to get this right, as the language changed significantly between 1.4 and 5.0. If you are not sure, the first, best option is to contact someone in your company or at your client's site who knows. Typically there is either a Java infrastructure in place, or one is forming, or there is a specific product with specific requirements including a Java version.

If you have a mixed classroom (perhaps a public offering) or simply don't know what the participants will want, here are a few guidelines and tips:
  • Java 5 is right now the dominant version.
  • Some early adopters are using Java 6.
  • Plenty of shops are still on 1.4 or even 1.3.
  • Remember that we're talking about Java or Java SE versions! Many companies have investments in Java EE, and although some Java EE 1.4 products do support the 5.0 Java SE runtime, the Java EE 1.4 standard does not require Java SE 5.0. This is probably the major brake on adoption of Java SE 5.0: no one wants to be stuck writing one version of the language for some applications and an older version for Java EE components.
So there's a tradeoff in training situations. 1.4 coding techniques are valid for both 1.4 and 5.0 environments, and 1.4 is the most popular version of the platform today. 5.0 introduces some exciting new features that may give trainees a more valuable learning experience; but they may also learn skills that they can't apply if they are or will be working in a 1.4 context.


Please contact your training representative for more details on having this course delivered onsite or online

Training Outlines - the one stop shopping center for IT training.
© Training Outlines All rights reserved