Railways, 3D Rendering, Microservices--An Interview With A Java EE 7 Book Author
Marcus, please introduce yourself.
About two years ago I came to Taiwan to work as a Software Development Manager in the banking industry, before I was working as IT freelancer for 12 years in Germany. I am using Java till its first release in 1996 and wrote together with my old friend Martin the first German book on Java EE 7: Workshop Java EE 7. Together we also founded the platform www.turngeek.press where we are publishing easy to read books on Java.
Tell us about the most interesting Java EE application you were involved in your consulting work.
That’s a good one. Firstly I would distinguish between interesting from the functional point of view and the technical point of view. Technically the most interesting have been the applications I had to deal with while I was working for the German railway company. This is mostly due to the complexity of their system landscape - I probably never experienced so many interacting systems. From the functional view it is most likely my thesis which was about a distributed 3D renderer for landscapes. I guess the topics you are working on your own are usually the most interesting - aren’t they?
Now you made me curious: "Distributed 3D renderer for landscapes". What was the role of Java EE in your thesis?
Actually using Java EE wasn't that important for the thesis. I just like to play around with new technologies and JBoss was a new technology back then. As far as I remember the system was just using stateless session beans to transfer the pre-rendered 3D data from the server side to the rendering client. I could as well have used RMI instead, but you know, that wouldn't have been so cool.
How much time do you spend in Java EE projects? Is Java EE popular?
I honestly don’t know - maybe around 5-6 full years altogether. I first started to work with Java EE at the beginning of 2000 - back then in version 1.2. Over time Java EE had its ups and downs. Right now I have the feeling that the standard is missing a bit the microservices trend, but let’s see what’s coming.
Java EE 8 is in the making. What can be improved in the microservice space? What is completely lacking?
Unfortunately I haven't used microservices myself before in a project, but I can tell you the opinion I have. Microservices are not only about the development of the service. Of course you can easily build a REST service with Java EE and then package it in let's say Wildfly Swarm, but microservices are also about metrics and health checks. I see there exists something like Hawkular for that, but generally I am missing a standard for this.
Good news! The standard is coming: JSR 373: Java EE Management API 2.0. It exposes the server management API via REST and it is scheduled to be released with Java EE 8. Contributions are highly welcome!
Which application servers, tools and IDEs are you usually using?
A couple of years ago I did the switch from Eclipse to IntellliJ and I didn’t regret it. For builds I am still using Maven. It works and I don’t think build systems are such a fascinating topic. Which application server I am using depends very much on the company I am working with. If we’re talking about Java EE servers, I best know JBoss as I was working with it from the beginning.
How important is the Java EE standard to you? Is your code usually dependent on application server specific features (SPI)?
If possible I try to avoid any vendor specific features. Generally I would say it’s not worth using them. Usually a workaround can be found and keeping to the standard greatly simplifies migration - not only to other vendors but from my experience also to future versions of the standard.
Tell us more about your Java EE 7 book and your current endeavors.
Martin and I are in the process of translating our popular Java EE 7 book into English. It’s a book for beginners which covers each topic of Java EE in its own chapter. Besides just doing the translation we’re also greatly improving the book. Firstly, as you know Java EE is rather big, so we extracted each topic (JSF, CDI, JPA, EJB, etc.) in its own self-containing book. Therefore we now have a series of books: you’re able to study each of it in one day, hence the new names: JSF in Day, CDI in a Day, JPA in a Day (work in progress) and so on. Secondly, we also embed links throughout the book which start a Cloud IDE with pre-configured workspaces. Our readers have been mostly stuck with configuration issues, so we think this is a good way to let the reader jump start into each new topic.
Is Java EE productive? What is your opinion?
Except JavaServer Faces, which is from my point of view conceptually outdated, I would say Java EE is generally a productive platform. Especially the changes brought by Java EE 6 made a developer’s life easier.
Any links you would like to share with us?
Besides our website turngeek.press of course, I also recommend using Codenvy - Cloud IDE’s are not yet as good as their desktop counterparts, but they’re already a great tool to teach and collaborate.
Marcus, thank you for the interview!