Herbert, please introduce yourself
Hello, my name is Herbert Dowalil, and I am working as a Solution Architect for the UNIQA Insurance Group. I have been starting to develop software with the Basic Programming Language when I was 8 years old on my BBC Acorn Electron. Since that I am a passionate programmer and I like to design and write software. In my private life I am happily married and proud father of my sweet little daughter Valentina. I like to go mountaineering and scuba diving. When time allows I also work on my multiplayer online Racing Team Manager game
What are you building with Java EE?
Why have you chosen Java EE?
Mostly because it is an open standard, which safes the investments. No matter what happens to the vendor of your Java EE server or what kind of troubles you might have with it in the future, you can be sure to have plenty of opportunities to choose from to change the Java EE implementation. With Java EE it is easy to rely just on the API and you usually hardly ever need to do any specific things to get along
Which application servers, tools and IDEs are you using?
- SonarGraph by hello2morrow is a great tool to manage your inner Structure and dependencies. It has also plugins for Eclipse, IntelliJ and SonarQube. You can also measure how good people are in structuring their code, and my experience is that it is a good idea to recruit your Software Architects among the people who are doing a good job here. Software Architecture is nothing else than mostly managing structure and dependencies
- Jenkins as a CI Server is getting more and more important
- SonarQube is a great tool to manage your quality by simply making some metrics of all the artifacts you build visible
- SonarQube Portfolio Management (Views Plugin) is used to make one quality metric dashboard per team, as you can combine all the artifacts built by the same team in one SonarQube View here. We hope to create some competition among the development-teams by just making their quality visible to everyone and keep it so at a high standard
- JBoss EAP as the server implementation
How important is the Java EE standard to you? Is your code dependent on application server specific features?
Standards are very important for us, as we want to make an investment for our customer that is absolutely future proof. We hardly ever have to do anything vendor specific, and we try to avoid as much as possible. Using Java EE as a standard is actually the biggest difference to the Spring Framework. The Spring Framework might sometimes be a little faster when bringing out new features (like they have a Cache API now since quite a while where we are still waiting for it come along with Java EE 8) because it is simply easier if you do not have to go through a Java Specification Request. But on the other hand you lose the safety that you have when using the open standard. And actually I like the more convention-over-configuration style of Java EE more
Anyway, of course the Java EE standard is not always sufficient. You will never be able to write a decent web application when you just rely on the JSF standard, though I believe that a widget library is nothing that the Java EE standard should take care about. Or when you needed caching on the server a couple of years ago there was no standard available yet, but these are the points where Java EE keeps improving
Is Java EE productive? What is your opinion?
It is surprising how many people still believe the prejudice that Java EE is bloated and unproductive. Actually these people might have had a look at the platform once in the times of J2EE, EJB 2.x and the old Core J2EE Patterns. Here we see how important it is in our industry to keep learning throughout your entire life, as this is simply not true anymore. As good as all former J2EE Patterns are now outdated how most likely any follower of your blog will agree.
The other argument I keep hearing is that there is no decent Scaffolding tool for the Java EE platform which is also not true. I recommend having a look at JBoss Forge which is a great tool with lots of possibilities due to the many plugins available
Take a look at the Java EE 8 APIs. Which of the APIs are most interesting / important to you?
The whole development of the JEE Platform is positive, let me just mention my favourites
- JSR 107 JCache as it will give us a common API for Caching which is simply important when building a scalable Architecture
- JSR 371 MVC as it will bring some Userinterface logic back into the world of open Standards, and will make our Applications more modular
- JSR 352 Batch Applications is something we are anticipating a lot
Any links you would like to share with us?
If you like you can have a look at my technology blog
Herbert, thank you for the interview!