© 2019 Tim Buchalka
  • Tim Buchalka

Java vs Java EE: What's The Differences?

Updated: Aug 2, 2019

So Java and Java EE, what's the difference between these two terms? Let's find that out today.



We're talking about Java and JEE: what are the difference between these two terms?


Firstly, Java is a general term we use for the Java programming language itself. No surprises there. JEE or Java EE, also known as J2EE, all meaning the same thing, are all known or stand for Java Enterprise Edition. J2EE, by the way, was the old original term that's no longer used because it related to an older version of Java. So Java Enterprise Edition is built on top of the Java platform itself and it provides an API and a runtime environment for developing and running large, scalable and secure network applications.


Note that Java EE itself, Java Enterprise Edition, that's a specification only. So the specification to find certain APIs and their interactions. So providers (providers are companies who create Java Enterprise Edition products) will then need to meet certain conformance requirements in order to declare that their product is JEE compliance. In other words, they need to support those APIs and conform to them and provide those interactions. By doing that, they can then meet that criteria to be a Java Enterprise Edition compliant product. As a developer, what you can do is use these provider's products, these Java Enterprise Edition products, to write Java Enterprise Edition applications.


Now, Java Enterprise Edition's target market is enterprise so we're talking large scale businesses. Think companies such as banks would be an example. Fortune 500, or just very largish top companies, and also e-commerce, large e-commerce platforms will be another example. Because of Java Enterprise Edition's complexity to be able to scale and to meet those requirements and also the market that we're talking about (these larger companies), one advantage for you as a Java Enterprise Edition developer is you tend to get paid extremely well, a lot more than what an every Java developer would get.


But in general, if you're a Java Enterprise Edition developer, and you're good at what you're doing, you'd expect to get paid a lot more than just "average Java developer" who's not in the Java Enterprise Edition space. So in general, though, to support Java Enterprise Edition, to be able to actually write applications in that, you really do need to have a good solid level of Java skills. That's really important. You really can't just pick up a Java Enterprise Edition product and use it, if you don't know Java. So before actually trying to get into Java Enterprise Edition, into that space, in some way, shape or form, I certainly suggest that you learn Java well first.


One of the reasons why people have asked me before, "Why do you need to have that level of skill as a Java developer to be able to write in Java Enterprise Edition? To write apps in that space?" Well, a lot of the actual products are written in Java themselves but they use many intermediate to advanced features of Java because they're complex products, they're big products, they support these types of applications, they use some of the advanced features of Java. So if you don't know Java really well, you struggle to become a good Java Enterprise Edition's developer. And so basically, the bottom line here is I'm saying is having good Java skills is really vital for you to get into that space, if that's what you wanna do.


Now look, you might wanna check out to our academy, my Learn Programming Academy's Java Enterprise Edition course, we've got one available. So check that out at lpa.dev/YouTubeJEE. It's a great course and will teach you the fundamentals of Java Enterprise Edition. Again, make sure that you've got some basic Java skills before you move into that.


Now before we end, I wanna talk about a competing technology that really competes with the same market, but as a different product. The product I'm talking about is the Spring Framework. This is a similar product in the sense that it targets the same platform, the same group of users, the enterprise level customers, and basically competes with the Java Enterprise Edition product.


Now, interestingly enough, Spring Framework was initially created by a single developer, who was frustrated by the slowness of the Java Enterprise Edition products, in that space in general because at the time, it was a really, really quite a slow product. In the sort of early 2000's the Java Enterprise Edition was a very versatile product, but was a very slow one. So this person created a competing product, the Spring Framework, which targets the same market, same audience, it's also an enterprise level product.


The good thing about the Spring Framework is that it's also versatile enough to handle small scale applications as well. It brings with it a lot of really fantastic functionality and it's also very well supported in the industry. In other words, there's lots of jobs available for basically for both there. That's basically a great set of tools.


This is the Spring Framework, and I would also recommend you have a solid Java skills though, before attempting to get up to speed with this. You can also check out the Learning Programming Academy's Spring course. It's a course that is put together at lpa.dev/YouTubeSpring, and you can find out more information about that product as well.


Now learning either technology, getting into Java Enterprise Edition, or into the Spring Framework, would definitely, most definitely expose you to more career opportunities because just by the nature of the market we're dealing with here, enterprise level customers, large scale customers, now banks, et cetera, they generally pay more. Because these products are often mission critical products, they just have to work. They're really trying and getting the best developers they can and bottom line for you is you'll earn more money if you learn these technologies.


All right, so I hope that helped. If you've got any questions, feel free to leave a comment, and I'll get back to you.