• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Is learning Java EE still beneficial ?

 
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I've spent the last few weeks learning about Java SE and now I want to also start learning about Java EE so that I can build the online app that I learned Java for in the first place.
Problem is, there seems to be many stuffs that I don't know if they can be of any benefit (like servlets, jsp, jsf, jpa, rmi, cobra , java mail , java messaging ..etc ) since there are now some options like spring framework, play framework, and actually I'm going to learn Groovy to make developing easier ..
So, are these frameworks , like Spring , based on different Java EE technologies? Can learning Java EE help me do better with these frameworks?


Thank you
 
Marshal
Posts: 79153
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Moved as too difficult for the original forum. Not sure where to, since we don't have a plain simple JEE forum. Let's try jobs since you probably want to know about it for job purposes.
 
Java Cowboy
Posts: 16084
88
Android Scala IntelliJ IDE Spring Java
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
To answer the question: "Is learning Java EE still beneficial ?", yes, it absolutely is. Java EE is not in any way obsolete or on its way out and still very much relevant in enterprise software development.

Part of the things that you mention are actually part of Java EE: servlets, JSP, JSF, and JPA, messaging (JMS). (Forget about CORBA, it's an old technology from the 1990s which has been mostly replaced by web services).

Besides Java EE there are lots of other popular frameworks, such as the Spring Framework, the Play Framework and other languages that run on the JVM such as Groovy and Scala. These frameworks are not directly based on Java EE, but they do have features that are similar to what Java EE offers.

The Spring Framework is a big framework with a lot of features, from a framework for web apps (Spring Web MVC) to database access (Spring Data), batch processing (Spring Batch), security (Spring Security), messaging, etc. It's a competitor for Java EE.

The Play Framework is a web application framework.

Don't try to learn everything in detail, because there's simply too much. It would be like trying to read all the books available in the library - a lifetime of reading simply won't be enough.

You'll have to choose what you want to focus on.
 
Rancher
Posts: 2759
32
Eclipse IDE Spring Tomcat Server
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Servlets, JSF and JPA are very useful. ACtually, Spring is built on top of Servlets, and knowing Servlets makes learning Spring easier. Other web frameworks have similar concepts as Servlets

EJBs, MDBs are useful to understand the concepts, but you may never end up needing them
 
Khaled Za
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jesper de Jong wrote:To answer the question: "Is learning Java EE still beneficial ?", yes, it absolutely is. Java EE is not in any way obsolete or on its way out and still very much relevant in enterprise software development.

Part of the things that you mention are actually part of Java EE: servlets, JSP, JSF, and JPA, messaging (JMS). (Forget about CORBA, it's an old technology from the 1990s which has been mostly replaced by web services).

Besides Java EE there are lots of other popular frameworks, such as the Spring Framework, the Play Framework and other languages that run on the JVM such as Groovy and Scala. These frameworks are not directly based on Java EE, but they do have features that are similar to what Java EE offers.

The Spring Framework is a big framework with a lot of features, from a framework for web apps (Spring Web MVC) to database access (Spring Data), batch processing (Spring Batch), security (Spring Security), messaging, etc. It's a competitor for Java EE.

The Play Framework is a web application framework.

Don't try to learn everything in detail, because there's simply too much. It would be like trying to read all the books available in the library - a lifetime of reading simply won't be enough.

You'll have to choose what you want to focus on.



So, are web frameworks (Spring Web MVC , Struts , Play, ..etc) based on servlets and they also need a container to function? In other words, can there be a way to make web applications without depending on any feature of Java EE? do different kinds of frameworks complement Java EE or they can completely replace it?
 
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Khaled Za wrote:
So, are web frameworks (Spring Web MVC , Struts , Play, ..etc) based on servlets and they also need a container to function?



It depends. Frameworks like SpringMVC and Struts are servlets-based and need a container. The Play framework is not servlet-based and provides its own server. (With Play 1, you could also roll up an app for deploying on a servlet container, but I do not believe that is true for Play 2).

In other words, can there be a way to make web applications without depending on any feature of Java EE?


Yes. See Play framework above. And there are plenty of non-Java frameworks available that obviously have nothing to do with JEE.

do different kinds of frameworks complement Java EE or they can completely replace it?


Most Java-based frameworks are built on servlets. Play is one exception (and Play 2 is Scala, rather than Java, focused).
 
Jayesh A Lalwani
Rancher
Posts: 2759
32
Eclipse IDE Spring Tomcat Server
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Spring MVC and Struts are built on top of Servlets, and need a container to run. The newer versions of Spring allow you to embed a tomcat inside a Java application. So, for development purposes, you can run a Spring MVC application standalone without a container. However, internally, it is starting a JAVA EE container and Spring MVC is running on top of it. Normally, people run Spring MVC inside containers because usually you end up integrating with a service that is managed from the container (for example, security, encryption, etc)

Play doesn't need a container. It can run standalone. It can also be configured to run inside a container. However, I believe most people who use Play don't want the overhead of the container.
 
Jesper de Jong
Java Cowboy
Posts: 16084
88
Android Scala IntelliJ IDE Spring Java
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jayesh A Lalwani wrote:Spring is built on top of Servlets, ...


Only Spring Web MVC, which is only a small part of Spring. The Spring Framework has many different parts, it's a complete replacement for everything that exists in Java EE, but it's also partly based on Java EE APIs.

I agree that servlets are a fundamental part of many Java web application frameworks, and it's probably one of the first things you should learn if you want to learn Java EE.

Jayesh A Lalwani wrote:The newer versions of Spring allow you to embed a tomcat inside a Java application.


That's what you get when you use Spring Boot - you'll get a stand-alone JAR file with a Tomcat (or Jetty) server inside it. That makes it easy to deploy applications, you just put the JAR on a server somewhere and start it - no complex deployment necessary.

Jayesh A Lalwani wrote:Normally, people run Spring MVC inside containers because usually you end up integrating with a service that is managed from the container (for example, security, encryption, etc)


Spring itself also provides security, encryption and all the other services that an enterprise web application needs, so you don't absolutely need a Java EE container for this.
 
Saloon Keeper
Posts: 27752
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Just about anything web-related in Java is rooted in J2EE/JEE. So until you know J2EE, you won't really know whatever modern abstract Java web framework you are using actually does. I could extend that to a need to know HTTP as well, but let's stick to the Java side.

One reason why J2EE is so pervasive is that it's a fairly simple flexible architecture and it's easier to use it than to re-invent all that stuff from scratch. Especially since in a business environment, the more standard equipment you use, the wider the pool of potential hires that already know how to use it and the more resources (online, print books, JavaRanch etc.) that there will be for them to leverage off of.

A lot of the "hot" projects are not Java-based. Some are JVM-based, like the Groovy, Jython and Scala stuff and depending on overall architecture they may or may not be able to tap into J2EE. Then there's the stuff that's not even remotely Java like the JavaScript-based servers (node.js and friends), Ruby, and so forth.

However, the workhorse apps for big businesses are primarily going to be in Java or .Net. Partly because there's a bigger, more experienced labor pool, partly because a lot of tools and services have been created that work with J2EE. And occasionally because Java gives performance and/or security advantages.
 
Ranch Hand
Posts: 124
4
MySQL Database Clojure Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The answer is definitely YES! Programming fads and easy to learn programming languages come and go but Java has proven itself to be a solid choice when choosing a language and associated technology to build an application in. I have been trying to move from front end developer to back end developer at work and Java is all over the place. I inherited a ten year old java enterprise application to manage last spring, written in Java 5, and guess what - it still works. Java EE is a great choice when building applications that need staying power. We use Adobe's AEM to publish material to the web and AEM's back end is Java and JSP. I finally got my first real Java project at work - building an application that interacts with a database through a client portal in a web browser. I thought about how I wanted to build it, what would benefit the customer, what would benefit me the developer and the designer, and I chose Java EE simply based on the idea that the code I write should last 7 to 10 years and be easy to maintain.

A great way to learn is to dive in. Don't wait until you raise your hand and say "I can do that" and then try to meet someone else's deadline. (But a little pressure can be a good thing.) There are lots of good books but the best way I have found is to download NetBeans with JavaEE and GlassFish and start doing the EE tutorials that they have on line. Within one day you can get your dev environment set up, create an EE project, set up a database, create html pages that are interactive, and be well on your way and farther along then you would ever be by reading a book or following a long drawn out tutorial in a book. I'm not talking about the Oracle JavaEE Tutorial that can be found online. The helpful tutorials that got me up and running are all on the NetBeans site. NetBeans isn't always everyone's fave IDE, and I wasn't going to use it myself, but their tutorials have worked flawlessly and I feel like that was a big plus.

Don't wait, jump in the deep end. Down the road when some old Java EE application needs fixing you'll be way ahead of all the Pythonista's and Groovy people that keep avoiding Java.
 
Ranch Hand
Posts: 606
11
Android Python Open BSD VI Editor Slackware
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jesper de Jong wrote:To answer the question: "Is learning Java EE still beneficial ?", yes, it absolutely is. Java EE is not in any way obsolete or on its way out and still very much relevant in enterprise software development.
(mega cut)


HI Jesper,
I have a question for you, as I do not want to risk to be not opportune with a PM, I write you in this context, and I think afterall is quite pertinent with this post.
OK Java server side is probably considered less efficient and fast than scripting languages, but big companies love it because is ..Java, is easier to debug, exists since ages, and is good for scalability.

But my question is more specific, for an Android developer in the Netherlands(like you are, that is why I am asking specifically to you) where there is a hugepresence of big companies would you still consider Spring MVC/Java EE ?


Last Saturday I have been to the GDG event with DAUG in Amsterdam and I asked this question to all the developers, and surprisingly I found almost everyone in the mobile world was not busy with Java server side( but they were going to use node.js, php and even study not server like angular JS or JS.

I have only one priority, skipping in the java/android developer world, switching career (..after all this is a job discussion forum)
which of these three options you would recommend for my specific sit:
1) learning the fundaments of node.js and PHP ( are easy )
2) specializing even more on android, learning how to manage better JSON request but not learn server side if your objective is just to land on an android job, after all once you work you can easily learn whatever technology server side( this looks the more efficient solution to me)
3) Java EE and Spring MVC, for Android is a logical step.

Thank you very much and sorry for my proactivity.
 
Greenhorn
Posts: 21
Android Chrome Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Good post, thanks.

I am a java developer with oracle 803, and 804 working in progress.
If you have to choose, what will you study for your career?

Is spring framework a good choise?

Thanks.
 
Ranch Hand
Posts: 68
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

]If you have to choose, what will you study for your career?


I do : ), I studied spring/hibernate for my career and still learning a lot about this frameworks and others.

Is spring framework a good choise?


Yes, I advise to do so.
In my last project, I used spring for uploading files on server, it was great how mush spring do for us, save our time
 
Giovanni Montano
Ranch Hand
Posts: 606
11
Android Python Open BSD VI Editor Slackware
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
All in all I guess as profane this is a great post, because replies to all the fears we newbe have it and the sad truth, also if is fascinating/frustrating at the same time:
One cannot study everything.

So prioritizing becomes a worshipful attitude to land to a Job, BUT with a solid base of knowledge

I can be probably wrong, but this is what I think NOW could be a winning way to tackle this challenge.



1) Knowing Java core, delving into some particular (recurrent interview) concepts, like generics in particular. Head first java looks to me a good book, plus trying to write some code, playing a bit running through concepts as Singleton and MVC patterns.

2)One week Learning the concepts of JSP and Servlets, with some basic knowledge of concepts as taglib, filters, etc. Head FIrst JSP and servlets, first 7 chapters

3) One week seeing SQL and Junit.

3) Ready for Spring/Hibernate study

4) Take a junior Job, networking with friends would tremendously help.

5) then..... start to learn.. dedicating from 2 to 40 hours per week, having real fun, delving without hassle in the subtle twists and turns of this mysterious world because you know you are building on a solid stone.

6) getting crazy with OPEN GL, C++, Android, JS,PHP and whatever makes you salivate


If I were HR,
I would look at the first 3 points above (the basis)only partially, just in the measure that could be the job's applicant operative, basing my choice even more on how the junior applicant approach problems, which kind of books has read in her life and if really loves programming;

 
Ranch Hand
Posts: 52
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
It depends if you want to work for a small/medium company or a large company like a bank.

Small/medium companies usually use Spring because it's free and allows faster development but in most cases it is not the industry standard and some times it's not easy to integrate with.

You will need Java EE if you want to work in a bank or another large company since most of large companies prefer industry standards which is Java EE. And even though some projects in some large companies moved to Spring, you will need Java EE in order to support older projects or integrate with older projects.
 
reply
    Bookmark Topic Watch Topic
  • New Topic