One of the most important things to continue to do for Java EE/Jakarta EE is highlight successful adoption stories at a regular cadence. The community has been doing just that for a long time. A number of these stories are curated here. In this vein, Vladimir Herman graciously agreed to share his Java EE adoption story. Vladimir is a young developer in the Czech Republic working on medical applications. He has experience with both Spring and Java EE applications. Thanks very much Pavel Pscheidl for helping facilitate the sharing of this Java EE adoption story.
Can you kindly introduce yourself?
My name is Vladimir Herman and I am a Java developer in one of the largest Czech software companies. I started working with Java professionally in 2013, when I was still a student at the University of Hradec Kralove. I was employed as a junior Java developer in the internal IT department of an insurance company. That’s why I look at my career in two separate stages – during and after my studies. I have learned a lot from academic life as well as from practical work experience.
Can you describe the applications that use Java EE?
In my previous job, we developed web applications in Java that were based on the Spring framework. In my current job, we are extensively using Java EE 7. We develop medical applications for foreign and domestic customers, such as ministries, hospitals or polyclinics.
The applications are mainly used by trained employees of these institutions. That means they are demanding customers who precisely know the problems related to the application domain. This greatly increases demands on the services provided by our system.
Why did you choose Java EE?
The first contact with programming was completely different for me. At lower grades of my education I encountered procedural programming and languages such as assembler and C. I got familiar with the object-oriented paradigm through Java SE/Java EE at the university and I immediately thought it was the right choice for me.
One of the major benefits of Java EE is its comprehensive portfolio of technologies and APIs. Java EE is a mature technology, it has a diverse ecosystem as well as a very active community. It is also beneficial that you can extend the platform with various frameworks when needed.
The seamless integration of the individual parts of Java EE is invaluable. Integration is not always trivial and you have a very powerful tool in your hands once you grasp this concept.
We must not forget the benefits of the JVM itself. It is great to have a portable and platform independent runtime, considering the diversity of our customers.
How do the applications use Java EE?
During my relatively short professional career, I was able to experience the development of Spring framework as well as Java EE technology stack applications.
The applications on which I work mostly follow a layered MVC architecture. Java EE technologies are used in all layers of the application. The main technologies in use are JPA, CDI, EJB, JAX-WS and JSF, but of course there are more. The vast majority of our applications are designed to be monolithic robust units that are self-contained. Individual applications are able to communicate with their neighbors using SOAP when needed, but we also run applications that use JMS. The resulting system can be thought of as composed of multiple large modules, but they are certainly not microservices quite yet.
I started working on an application based on J2EE 1.4 about a year ago. It is a key application for a few important customers and it has been in maintenance mode for many years. Developers were hesitant to make larger changes that could endanger existing functionality or would not be backward compatible. A recent breakthrough occurred when the application was bought by another customer. The application now needs to be rejuvenated as a result. Some of the technologies have become obsolete enough to be replaced outright and others were upgraded to the current version. One of the major changes was switching to Java EE 7 and replacing JSP with Facelets/JSF. Another crucial step was the introduction of DI through CDI. All changes were made with an emphasis on easier maintenance in the future.
What was your general experience with Java EE? Would you choose it again?
I gain experience with Java EE every day. Java SE 9 was released not too long ago. Java EE 8 brings changes like asynchronous events for CDI, HTTP/2 support in Servlet 4 and so much more. I am just in the constant process of learning, reading documentation and testing my knowledge in the real world.
I think there is a bright future for Java EE and I would certainly use it again.
I have also noticed the arrival of Spring Boot. It adds another layer of abstraction for applications based on the Spring framework but it is still a step in a good direction in my opinion.
How can people contact you if they have questions?
The best way to contact me is by email at hermicz at gmail dot com.