blank
Reza Rahman - Professional Homepage
blank Home Home | Navigation Site Map blank Resume | Projects | Blog | Downloads | Links | Contact

My ramblings on Java EE, Java SE and the crazy World of technology in general.

Monday, February 13, 2017

DZone/Java EE Guardians Survey Results: Java SE 8 Alignment

As some of you are aware, the Java EE Guardians and DZone jointly conducted a community survey to help determine Java EE 8 features prior to JavaOne 2016. You may also be aware that we shared the results of that survey with Oracle before the details of the renewed Java EE 8 scope was announced. Now is a great time to start analyzing those results a bit more. I've already done a high level summary of the results. I've also done a deeper dive into the responses for HTTP/2 and Servlet 4 support in Java EE 8. In this entry I'll take a look at the responses for Java SE 8 alignment in Java EE 8.

Here is how the survey phrased the question:

"Java SE 8 brings a bounty of improvements - lambda expressions, the new date/time API, completable futures, streams and the fork/join common pool. Many of these features can be used with Java EE 7, but there remains many important missing pieces.

In particular Java EE APIs like JPA, JMS, JSF and JAX-RS need to be adapted to make full use of repeatable annotations, the date/time API and completable futures. In addition the fork/join common pool and streams currently cannot be safely used in Java EE environments.

How important is it to fully align Java EE with Java SE 8?".

The following graphic shows how the community responded. Clearly developers think aligning Java EE 8 with Java SE 8 is extremely important. 66% said it is very important while 25% said it is very important. A mere 2% said it is not important. If you want to learn a bit more about Java SE 8 and Java EE, please do feel free to check out my slide deck on the topic. The deck is focused on how Java SE 8 can already be utilized in Java EE but also highlights clear gaps that can only be addressed through changes in Java EE 8.
The fact that developers feel so strongly about Java SE 8 is no surprise at all. Every reliable survey shows strong support for Java SE 8, including DZone's. The most recent RebelLabs survey shows 62% adoption for Java SE 8 - far stronger and faster than any other recent prior version of Java.
Here are some representative comments from participants in the order that people filled in the survey: "Java SE 8 APIs are great", "I've always believed that keeping EE on track with the corresponding SE release should be a very important element of every version", "The changes in SE 8 are a huge improvement for the language. EE 8 users should also benefit from these improvements", "EE should always be aligned with SE", "Java SE 8 brought the next level of language features to Java and everyone must take advantage of it", "This is the most important thing EE 8 needs to do.".

The initial Java EE 8 charter clearly mentions Java SE 8 alignment as a major theme. Historically Java EE has always played a key part in bringing Java SE features into the enterprise. A particularly salient example was groundbreaking annotations support in Java EE 5 and EJB 3/JPA. Java EE 5 was the very first mainstream technology to clearly demonstrate how annotations can be used highly effectively as framework meta-data.

Somewhat surprisingly Oracle's own Java EE 8/9 survey did not directly include any questions on Java SE 8 alignment and they have not specifically addressed the issue either. In practice at least some of the most obvious Java SE 8 alignment work seems to be moving forward for Java EE platform level common annotations, CDI, Bean Validation, JPA, JAX-RS and JSF. I have already asked for a more coordinated plan and will follow-up soon. If this is an important issue for you, please chime into the linked thread - it's very easy to do.

Please do stay tuned as I further analyze specific topics in the survey. In addition to my analysis, I would encourage you to look at these survey results yourself and get involved in Java EE 8. You can certainly do so by becoming a part of the Java EE Guardians.

Monday, February 06, 2017

Morocco's First Open Source ERP Uses Java EE 7!

One of the most important things to do at this stage of the life-cycle of Java EE is highlight successful adoption stories at a regular cadence. The community has been doing just that for a long time including at JavaOne. A number of these stories are curated at Zeef (Zeef is also written with Java EE). Mohammed Bounaga recently agreed to share a very cool such adoption story on deftERP - Morocco's first open source ERP. Mohammed had a number of insightful things to say about Java EE worth paying attention to. I have highlighted specific passages that really stand out.

Can you kindly introduce yourself?
I'm Mohammed Bounaga and I'm from Ifrane, Morocco. I'm a software engineer and I have been working with Java EE for 3 years. I'm the creator and project lead of deftERP. This project is now powered by xHub, a Moroccan startup that supports and believes in open source projects, founded by Badr El Houari - Devoxx Morocco chair, Morocco JUG lead and Java Champion. We are now a small team of talented developers who are working in collaboration with the Java EE community to boost the development of this project and empower the open source ecosystem in Morocco and Africa.

Can you describe the product that uses Java EE?
After graduating from university, I decided to work full time at home on an interesting and challenging project while sharpening my software development skills. At that time, I had different project ideas including desktop and mobile applications; yet my final choice was to develop an ERP web application since I believe that enterprise applications require complex business processes and they are open for innovation and creativity and this is exactly what I was looking for. The first version of this product was a result of 18 months of hard work with ups and downs that required patience and self-motivation. DeftERP is an open source and smart ERP built with full Java EE 7 (JPA 2.1, EJB 3.2, JSF 2.2, CDI, Beans Validation, JAX-RS, JSON-P, WebSocket...). The product is currently dedicated to small businesses to help them embrace and take advantage of technology to automate their daily working process, reducing working time and energy, having a smart dashboard and some predictions to help them anticipate the future while of course increasing profit. The product currently includes 4 modules:  sales, purchases, inventory, and accounting and it's cloud ready!

Why did you choose Java EE?
I had fallen in love with Java during my university years and it has always been my first choice, which is the case with deftERP. The only issue I had when I decided to start this project was which Java web framework to adopt. I spent a couple of weeks doing some research reading blog reviews from the Java community comparing different Java web frameworks including JSF, Spring MVC, and Struts. I was really impressed by the idea behind component based frameworks and how JSF is appropriate for rapid development while still giving you flexibility and room for creativity. What is also awesome about JSF is the availability of third party libraries such as PrimeFaces and OmniFaces that empowers developers with a great set of UI components that every application needs, and finally let's not forget the fact that Java EE is not heavy anymore!

How does the product use Java EE?
The product is developed with Java EE 7. We are using JSF for the web layer with PrimeFaces as a components library. EJB for the business layer. JPA with the EclipseLink implementation for the persistence layer, WebSocket for real time notification, CDI is of course the glue that binds our application layers together with dependency injection, and we are using BeanValidation to validate our entities against predefined or custom rules (we have built a metadata programming model).
How was your general experience with Java EE? Would you use it again?
Of course yes, we were happy to know about the plans to move forward Java EE 8 during last JavaOne. We are even planning after releasing the new version to see how we can help in the Adopt-A-JSR program under the umbrella of Morocco JUG. We are also keeping an eye open on the MicroProfile initiative since we are looking forward to revamp and optimize the architecture of deftERP for a microservices architecture. At this stage we aim to include the voice of our community!

How can people contact you if they have questions?
Questions and contributions are always welcome!
If you have a similarly great Java EE adoption story to share with the community (particularly migration stories from other technologies), please do reach out.

Saturday, February 04, 2017

RebelLabs Survey Shows Java EE Still Dominant, Solid Java EE 7 Adoption

The RebelLabs Developer Productivity survey is one of the most important ones in the Java ecosystem. It is widely circulated and generally tends to have the most data points. The survey has always asked about Java EE as well as Java SE adoption. The results in the 2016 survey look encouraging for Java EE generally and Java EE 7 specifically, particularly given the seemingly perpetual nay-saying around Java and Java EE in predicable corners of our ever "colorful" industry.

The RebelLabs survey is a bit different from the similar DZone survey in that it asks participants to make mutually exclusive adoption choices. You can either be a Java EE user or a Java SE user. You are only allowed to choose one specific version of Java EE. While this may not be entirely reflective of more complex scenarios in real life, it does make the results a bit more interesting from an analytical perspective. The 2016 results for Java EE adoption are shown in the graphic below. A clear majority of developers - 58% - identified themselves as Java EE users. This is truly remarkable for a mature open standard like Java EE with a number of non-standard product vendors aggressively positioning themselves as competitors to Java EE for many years now. Even more encouragingly developers seem to be solidly behind Java EE 7 - far more so than previous versions including Java EE 6. It is especially good to see the number of J2EE users at a low percentage.

It's remarkable how similar these results are to other surveys from reliable, neutral sources (the DZone survey results are in the graphic below). There has been another survey from the Vaadin team that also shows Java EE ahead of other alternatives amongst Java developers. I'll highlight those results as well soon.
While all of this is good news, the Java EE community can ill afford to rest on it's laurels even for a moment. A number of us in the Java EE Guardian community were very worried what the RebelLabs survey was going to show in 2016. This is because the survey was taken when Oracle's commitment behind Java EE 8 still remained very uncertain. In fact RebelLabs correctly noted this may be a reason for lower participant support for Java EE compared to other years and the Java EE community has hard work ahead of it.
This is wise advice for the Java EE community and a reason to continue to try our best to advance Java EE. All that being said, it is important to remember that none of these are scientific surveys in any real sense so it is always a good idea to only make high level observations around them. Scientific surveys are truly random, have representative sample sets and clearly identify participants. Most of the surveys we have are unfortunately always self-selection based and at least partially anonymous/online.

On behalf of the Java EE Guardian community it is only correct to thank everyone that indicate their support for Java EE and Java EE 7 in such surveys. Our volunteer driven work is intended to benefit you first and foremost - it is good to see that intent does not get lost in the muddle.
Home   |   Site Map   |   Resume   |   Projects   |   Blog   |   Downloads   |   Links   |   Contact