Leo said:
I am so confused by the recent Java terms since I have left Java
programming field for 3 years. Besides J2EE, there is J2SE. What is it?
Why Sun have these different products?
Sun made a lot of changes to the Java platform library and VM between
versions 1.1 and 1.2, enough so that they decided to call the result
"Java 2" instead of plain Java, but without actually changing the
version numbers. Thus "Java 2" starts at version 1.2. This is a
confusing Sun-ism; they have done similar things with their operating
system products. Anyway, not too long after, Sun started packaging a
collection of additional Java components targeted at "enterprise
computing" -- servlets, messaging, "Enterprise JavaBeans," etc. -- as
"Java 2 Enterprise Edition", or J2EE for short. In order to distinguish
the original, base Java 2 package, it was rebranded to "Java 2 Standard
Edition," or J2SE. (This all happened rather more than three years ago,
by the way.) "Java 2 Enterprise Edition" is a bit of a misnomer, as it
suggests that J2EE is an alternative to J2SE. This is not the case.
Rather, J2EE is a collection of /extensions/ to J2SE.
With the release of version 1.5 of the Java platform library and
developer kit, Sun has done it again, announcing that the changes are so
major that the result is now to be known as "Java 5". In conjunction
with that change, they are also moving to call the core package simply
"Java Standard Edition," and to call the enterprise package simply "Java
Enterprise Edition."
Also, though you didn't ask, "J2ME" is "Java 2 Micro Edition," a Java
library and runtime environment for small devices such as cell phones.
J2ME is more deserving of a designation as a different "edition" of Java
than is J2EE. I'll leave it at that.