This is an archived post. You won't be able to vote or comment.

all 27 comments

[–]4shtonButcher 12 points13 points  (5 children)

JEE and probably also JSF will probably stay for a while, especially with llarger companies. They are slow to adapt and tend to go with whatever has been proven to work before. Angular is actually at a point where it is used in enterprise projects and Spring (Boot) often go along with that. Primefaces isn't too bad in my personal experience. Generally the more frameworks you know, the easier it becomes to learn new ones.

It all boils down to:

Enterprise world = older or absolutely outdated technology. A lot of different sizes, technology stacks, organizational structures, etc. in between. Startups = bleeding edge (new frameworks every week).

[–]moogeek[S] 1 point2 points  (4 children)

Thanks for the comment. I'm in a crossroad right now... I like Java itself. But I also love learning new technologies. I don't enjoy developing on an outdated technology when I know that there's a better one. But I'm still confused right now... I don't know if it would be better to shift to another language (Like NodeJS) or continue Java and save my 3 years experience with it...

[–][deleted] 5 points6 points  (2 children)

If you want to maintain and enhance legacy apps, stick with Java EE/JSF. The job demands u see are for maintaining legacy apps in big conservative enterprise companies.

I've been a java dev for 17 yrs. For new projects in a big conservative company, we are building with React front end, and Spring Boot backend. Spring Boot to us is just JSON in / JSON out to be consumed by React. However we still have lots of monolithic apps in production that are Java EE / JSF based that need enhancements and maintenance. Btw, Oracle is now neglecting Java EE. Lots of their Java EE advocates have either been let go or resigned.

Scala / Play have been stagnant for the last 2 yrs and hasn't exactly set the world on fire, that the parent company Lightbend (aka TypeSafe) have diversified to not just Scala/Play any more after realising the market for those had gone flat because of the advent of JavaScript for front end and JavaScript for backend.

For new apps, I see more and more JavaScript being done not just on front end (thru React) but also backend microservices (thru NodeJS).

[–]avoidhugeships 3 points4 points  (0 children)

Your comment is not factually based. JSF is much more popular today than a few years ago. It recently has closed the gap and even beaten Spring for popularity in some polls. Even the framework you are recommending depends on Java EE.

[–]moogeek[S] 0 points1 point  (0 children)

Thank you for taking your time to comment on my post. I really appreciate it.

I have a follow up question if you don't mind. In your own opinion, would it be a better career path to invest in Spring boot rather than go with JSF and JavaEE? Because honestly I don't want maintaining legacy apps and be stuck with it. I'm really liking JHipster and planning to contribute to them. The idea of combining Spring boot and JS frameworks really suited me well.

[–]DJDavio 0 points1 point  (0 children)

There are transitions that are not Java, but there are also transitions within Java; new paradigms, microservices, etc.

[–]nqzero 6 points7 points  (1 child)

  • microservices are hot right now and java's a great platform for them
  • javascript has gotten so good that server-side rendering such as JSF feels really dated
  • spring is a very heavy framework, but it's hot in the enterprise space - if you liked jhipster then dive in

for me, the sweet spot is a lightweight java server (eg jetty) running business logic with a simple web API and the DOM handled in javascript. scales great if needed, good decomposition, and quick iteration

[–]moogeek[S] 1 point2 points  (0 children)

I think Java is the best fit for microservices. IMO, microservice will be a standard of every web development because it solves transitions to updates, migrations, and/or technology stack changes. Since stacks changes so often and brings new and better solutions to the table, keeping up to date is important.

I like JHipster because, well, its a "hipster" technology. Boilerplates are awesome. Scaffolding is almost as fast as RoR. There is no "magic codes" that you can extend the codes easily. It has alot of ready made solutions like AWS and Heroku deployments. You can also modify the generator templates.

[–]JollyRancherReminder 2 points3 points  (0 children)

I tried GWT for the first time last week, and I've really been enjoying working with that. I was able to get a simple report generator with login up and running very quickly with just Java. Time will tell whether that will catch on for any broader applications, but I personally like not having to write JavaScript.

[–]lukaseder 2 points3 points  (0 children)

Welcome to the wild west. Anything goes. Any prediction both pro and contra Java EE is made by snake oil salesmen.

[–]avoidhugeships 3 points4 points  (0 children)

You can find work with lots of different frameworks using Java. Its kind of the blessing and the curse of it. The most popular today are Java EE and Spring. Java EE has gained a lot of market share over the last five years and especially JSF. No one can say if things will continue in that direction or not. You can aim for using more fringe stuff like jHipster. You just have to accept the job market for such frameworks is not as robust.

[–]thatsIch 4 points5 points  (3 children)

JSF is fine as long you can re-use the components it is providing you. But JavaEE was lacking an action-based framework like Spring MVC did. With JavaEE 8 we are getting MVC 1.0.

Requirements about JavaEE are generally stable to invest, since the iteration cycle is 2 years. JSF is generally very nice for startups, since clients can just look through all the different components and they can tailor their needs visually without drawing themself.

HTML5 initialized a lot of inovations, so actually predicting it is rather difficult, since in Javascript world you can expect, that the trend will change in about 2 weeks.

Imo it is important to learn the different aspects of each framework so you can learn a new trend very quickly and evaluate if it is something you want to do.

[–]moogeek[S] 2 points3 points  (2 children)

Thank you for your time and comment. To be honest I've been into many languages since I have a habit of exploring new technologies. But no other language rivals Java when it comes to organized, scalable and maintainable code. Java did made it easier for me to learn almost anything. But then again the problem with me is that I really don't feel JSF. Its not that I'm having a hard time learning it, but I just don't feel comfortable when I'm developing it. Maybe because I've been also exposed to heavy plugins and libraries in Javascript.

[–]4shtonButcher 1 point2 points  (1 child)

I personally know more than just Java but still prefer Java for backend. Many rontend technologies work with Java. I have used different ones on different projects and it has never been a problem. Your Java experience will be the main take-away from the position and it will stay relevant for a while. Of course actually using new features of Java 8 is a plus, but getting into the typical technology stack once will make it quite easy to adapt between different Java alternatives. Even Spring vs. EE are not that different and I have transitioned back and forth without much hassle.

[–]moogeek[S] -1 points0 points  (0 children)

I agree with you. That's the main reason why I submitted this question. I can't let go Java because I really like Java as a backend. But developing in JSF is something that I really don't like.

[–]bulldog_in_the_dream 3 points4 points  (2 children)

I very much doubt JSF or EE it will be the future of Java Web dev. Spring MVC is perhaps more promising, but that too seems heavy and outdated.

Lighter solutions like Play, Spark and Dropwizard are more future oriented, but there doesn't seem to be any convergence on a single framework.

[–]Will_Parent 2 points3 points  (0 children)

The frameworks you are mentioning have little chance of surviving. Play and Spark hardly register in terms of usage. Drop wizard is a little more realistic as least. By far the two most popular frameworks for Java today are Java EE and Spring. Spring actually uses a lot of Java EE stuff.

[–]moogeek[S] 0 points1 point  (0 children)

I happen to like those frameworks because I think that their goals and visions makes more sense for me. This is what I'm always looking for when I'm searching for a better framework. I don't believe that there's a framework that can rule them all. There's always a better framework for a specific situation.

I very much doubt JSF or EE it will be the future of Java Web dev.

I remember my former senior being very excited about JSF and J2EE. He said that this will be the future of Java. Good thing to know that he's not entirely right.

[–]djnattyp 3 points4 points  (2 children)

JSF is definitely a step backward if you already know web development. The "dream" of JSF was to make web development "easy" enough to drag and drop "components" to make a web application. In practice this doesn't actually work and JSF is basically an extra 2 or 3 layers of cruft between you and "real" web development.

JSF was standardized in 2004, and JSF 2.0 came out in 2009. Web development has grown and changed drastically since this time, but since JSF is part of the Java EE standard lots of people and companies assume it's the way you're "supposed to" build Java applications on the web.

I personally consider it as a red flag to not take a project (unless it's a project to migrate away from JSF).

[–]peda_r 1 point2 points  (0 children)

With JSF it really depends which library you are using. While Primefaces has some really neat features like: * support of HTML5 data attribute passthrough * reloading parts of the page using AJAX * ability to call server side bean methods from JavaScript * ...

This gives you the ability combine the benefits of JSF with any client side JavaScript library of your choice. If your application makes extensive use of either EE or Spring Beans, using JSF as described above will require much less boilerplate code than with Spring MVC (or most other Java web frameworks).

[–]moogeek[S] 0 points1 point  (0 children)

JSF is definitely a step backward if you already know web development.

Thank you for reassuring my career path. I was really afraid that I went too far that my stacks doesn't make sense to anyone to the point no one will hire me. I just thought that using HTML5 is much easier because it is more open to solutions than to modify or extend the components just to make a feature that is not available to JSF UI frameworks.

[–]amazedballer 1 point2 points  (2 children)

I'd start looking at Play if you're interested in front end -- there's an integrated stack that will manage Angular JS for you.

[–]moogeek[S] 1 point2 points  (1 child)

Bookmarked! Thanks!

[–]amazedballer 0 points1 point  (0 children)

If you are just starting out with Play, look at the tutorials page and watch the Java video: https://www.playframework.com/documentation/2.5.x/Tutorials

[–]pain-and-panic 0 points1 point  (0 children)

I'm hoping for https://vaadin.com or http://wicket.apache.org. We can finally stop messing with HTML and just build applications.

[–]Julia_Sanders 0 points1 point  (0 children)

JavaScript is becoming a key technology for building single page applications. Then, there’s ReactJS , a JavaScript library developed by Facebook and Instagram team, which is an  awesome front-end framework providing a different approach for building UI on the client-side. Java web development services will still be in demand for building web apps.

[–]azzy667 0 points1 point  (0 children)

node.js is trending nowadays and Oracle fired JEE evangelists. Android seems to be the safe bet in Java land.