Difference Between Java SE and Java EE

Since the long time, Java developers have relied on both of these platforms to do the desired tasks through the language. Many newbie developers find it hard to understand the difference between Java SE and Java EE, and often end up considering them an entirely different programming languages… perhaps because they’ve learned a different language in the past which had no funny sounding distinctions within the language. If you’ve been reading my blog, then you know that I’ve been writing on Java, thus it makes sense to cover the commonly asked topic.

In this article, I will try to highlight the difference between Java SE and Java EE.

What is Java SE?

It is the name of the Java platform which provides the core tools.When Java was released, its first version was simply called “Java”, but when the 4th version was released in 1998, it was renamed as J2SE 1.2, wherein “J2” represents the Java 2, which then further replaced with Java SE as the previous name caused the confusion as to why J2SE had versions like 1.x, for instance, people assumed that J2SE 1.6 is an entirely different version. In Java SE, you are provided with the necessary tools to compile the Java programs with the help of different APIs, which is then run through the JVM (Java Virtual Machine). Apart from simple building tools, it also has GUI libraries / framework for building sophisticated GUI powered applications.

In the Java community, Java SE is also known as “Core Java” unofficially. According to the official site: “When most people think of the Java programming language, they think of the Java SE API. Java SE’s API provides the core functionality of the Java programming language. It defines everything from the basic types and objects of the Java programming language to high-level classes that are used for networking, security, database access, graphical user interface (GUI) development, and XML parsing.”. Its latest version is Java 8.

What is Java EE?

It is the super-set of Java SE, meaning it has all the features of Java EE. It is the Enterprise Edition, which basically means that it has all the features that are specifically added for the development of giant Enterprise applications. The cool thing about Java EE is that you do not need to compile your Java code to a stand-alone executable, as the platforms provide the built-in environment to compile / run the code without the need of a stand-alone executable. This results in extremely fast software development cycle. Java EE has a web framework based upon Servlets (i.e., a class used to extend the capabilities of servers). Apart from it, JSP (Java Server Pages) is provided which is a template language that compiles from JSP to a Java Servlets where it can be run by the container (the environment of Java EE). Other features include JPA, JDBC, etc.

Through Java EE, you can develop web server applications, although you need Java EE compatible servers like GlassFish, JBoss, WildFly, etc., so Java EE is more of a “platform” than simple tools. According to the official site: “The Java EE platform is built on top of the Java SE platform. The Java EE platform provides an API and runtime environment for developing and running large-scale, multi-tiered, scalable, reliable, and secure network applications.”

In Java SE, the applications that you write can run as stand-alone Java programs or as Applets. In Java EE, you can still run the program as stand-alone, but it provides the facility to run the program within the Java EE container.

…And what about Java ME and JavaFX?

Java ME was designed for applications which run on resource constrained devices (small scale devices) like cell phones, for example games.
JavaFX is a platform for building robust GUI applications. It is actually intended to replace Swing as the standard GUI library for Java SE, however, both will be included for the foreseeable future.

The 5 Best IDE for Java

When we learn a programming language, we are tempted to start wondering the tools (including the best IDE) we are going to use for writing the code. Some programmers download the text editors which provide enough satisfaction to them due to their simplicity plus often text editors are specifically designed for writing code, while the other newbie programmers download the IDE (Integrated Development Environment) which provides all the tools required for compiling the code for a single or many programming languages.

As Java is a language with huge libraries, it makes sense to write programs through an IDE. Several vendors in the past have provided many IDEs. Some of them became popular, others remain in the shadows. Following are the carefully selected IDEs that I think are one of the best, if not the best available for writing programs in Java:

1) Eclipse

Eclipse has been the part of the Java community for a very long-time, and it’s probably considered the most extensive IDE for Java. Thanks to its plugin system, you can easily integrate new functionalities with just a click. It also provides auto-update system, which notifies you when new updates are available. Though Eclipse, you can create applications for several platforms, including desktop, web, mobile and enterprise. Along with tools to compile / run Java code, it also supports various other features including the integration with Maven, a nice-looking XML editor, Git client, CVS client, and most importantly: Windows Builder.

Windows Builder supports designing the GUI through the different tools, which can help you in designing the powerful GUI for your software. It is essentially a SWT and Swing Designer. The cool thing about it is that you do not need to use it to compile the code, as the code that it generates can be compiled with normal Java libraries.

2) NetBeans

It is an open-source IDE for Java which is written in Java itself. It provides the development of Java SE, JavaFX, Java ME, web, EJB and mobile application out-of-the-box. Like Eclipse, it is modular in design and provide the plugins feature, you can extend the functionality easily through third-party plugins. Although, NetBeans was developed for building Java code, it now also supports C/C++, PHP, HTML, etc. natively, and any language can be added through plugin. Thus, this IDE is recommended for those Java developers who might want to learn other programming languages as well, so they won’t need to change the IDE (in case they love the IDE!).

3) IntelliJ IDEA Community Edition

This IDE was designed for Android app development, Scala, Groovy, Java SE and Java programming. It is extremely lightweight and provided only minimalist features, including JUnit testing, TestNG, debugging, code inspections, code completion, support for multiple refactoring. But, as it’s a Community edition, meaning you need to buy the full version to unlock the remaining features.

4) Enide Studio 2015

It is a tool suite which is available from the Eclipse plugin store and from the main website. It is a component of Nodeclipse which is a set of third-party developer solutions for Eclipse for programming in JavaScript, CoffeeScript with focus on Node.js. You can either install the plugin if you have Eclipse already installed, or you can download the Enide Studio directly from the website.

5) Android Studio

This is platform from Google which was originally designed to develop Android applications, however, it can be used for other programming languages as well. Before its arrival, Eclipse was considered a standard IDE for Android / Java development. With its arrival, it is now regarded as the best platform for Android / Java development due to the support from Google which updates its features regularly.

Conclusion

There is no such thing as the “best” IDE, as the choice depends on the needs of the user. For most, a simple text editor is enough, as they don’t need to code completion and other bloating features which slow down the development process.