Monday, July 18, 2022

Java editions

The Java developer platform comes in a number of editions. As a JVM languages developer (I created a JVM language) first and foremost I make it my business to have a basic knowledge of the different kinds of Java development, and the different editions of Java.

Java editions
When Java was first created it was basically just Java, but by the time Swing was introduced it was quite a large platform, so around the same time Sun microsystems split it into editions.
  • Java SE: the Java standard edition contains all the base libraries, integration libraries, and the Swing library for creating desktop applications. It used to include JavaFX as well at one point, but it was later moved out of the standard library.
  • Java ME: the Java micro edition is the subset of Java SE that is suitable for mobile and embedded devices, as well as a small set of new specialized functionality for them.
  • Java EE: the Java enterprise edition contains the message service, servlets, enterprise beans, java server pages, web services, and JSON and XML support.
The difference between Java SE and ME is necessitated by the very real differences between hardware devices that I have discussed previously. Mobile and embedded devices necessitate a different type of programming, and Java ME is designed to address that.

Changes to the different editions of Java
The division of the Java platform into editions was created by Sun microsystems in the early days of Java, when the platform first came into its own. Since that time one or two small changes happened to the computing industry, that are worth considering.
  • The rise of Android in the mobile market.
  • The transference of Java EE to the Eclipse foundation.
The first thing is that mobile and embedded devices actually took off like crazy since the early days of Java. While Java has always been based upon the write once run anywhere motto, which meant it could be run on mobile devices, desktops, or any other platform, at first the idea of mobile devices was rather niche. This changed with the explosive growth in mobile devices.

It was Android and not Java ME that took off with this explosive growth in mobile. Android is now the biggest operating system in the world by the number of devices that run it, and most importantly it is based upon a Java API that is not Java ME. Android has basically taken over the role that would've been played by Java ME, so if you want to write for a mobile or embedded device you are probably going to want to use it instead. Java ME probably still has some use somewhere though.

The second thing that happened is that Oracle gave Java EE to the Eclipse foundation, so that it is now called Jakarta EE. Even there, you are probably going to want to use other Java enterprise frameworks like Spring and other technologies for most things, but Jakarta EE is still used underneath by a lot of libraries. We still have Java SE, whose role hasn't changed much from what it was before.

Previously
Java SE overview

No comments:

Post a Comment