On Mon, Jan 11, 2021 at 3:54 PM Som Lima <somplastic...@gmail.com> wrote:
> > Nevertheless why is there a popularity tilt towards spring.io ? > Because it's popular. Popularity breeds popularity. JEE being standards based has always been hindered by the standards process. You can't do anything "quickly" by committee, especially committees with commitments by very large organizations. So, JEE, despite it's innovations, has always been "behind" things like Hibernate and Spring. JEE borrows and is inspired by developments in those, among others, projects as well. Spring is a single company, and original just a single vision, so was able to move much more quickly. It was also "second adopter" effect in that it was able to respond to early JEE which was very formal, and relied upon a lot of governance in things like XML and such. JEE is REALLY powerful, and has always been quite powerful, but many applications don't quite need that power. So the flexibility of JEE can get in the way and make doing things more laborious. Of course, that has changed much over the years, but Spring was able to hold on by doing the job, having some "outsider" street cred, and, plus, early on, it was "free". JBoss was the only real competitor in the EJB space for a free server early on. Spring just needed Tomcat. Modern JEE, with tools like Wildfly and Payara, is in a great place. Even with the upheaval of Oracle clinging to the javax namespace and the whole "renaming" nonsense that stalled JEE for 1-2 years, it's till in a good place because it started in a good place. It's super stable. It's honestly a feature that stuff that has worked for 15-20 years is still working in modern, maintained systems. But other advances, such as the micro profile, is keeping JEE current for the more simplified use cases of just being a JSON RPC host deployed to a container in the cloud. Mind, I'm a JEE guy. I've always been a JEE guy. I was giddy when Sun came out and gave away Sun Enterprise Server v8, which was the prequel to Glassfish. (GF was a rewrite.) I liked the idea of teams being able to use the Sun Server for departmental applications in house without have to cough up 100's of thousands of dollars for licenses. Make no mistake, JEE is, and was, powerful kit. Companies used to build vast applications around Transaction Servers, and Transaction Servers were niche and expensive. JEE gave Transaction Servers to everyone. I never warmed to JBoss back in the day. I never warmed to Hibernate. I never warmed to Spring. Can't say why. Complexity, documentation, who knows. I saw Spring as mostly equivalent to JEE, but JEE was running on JBoss, Weblogic, WebSphere, Glassfish, and a host of other implementations where Spring was just Spring. JEE is easy to use and robust. JAX-RS with CDI and Transactional Session Beans backed disparate databases with pooled connections are a perfect storm of modern productivity. NetBeans has always been a great JEE citizen, I can not speak to IntelliJ. NB has had great support, has wizards to do much of the bit twiddling lifting that needed to be done in JEE (less so today), and has always worked well with the servers, especially Glassfish and Payara. I can heartily recommend them both together. When we see all this talk about containers, kubernetes, dockers, etc. etc. All of this infrastructure and "devops" that people use today, appreciate that the App Server was there first. The AppServer running on the JVM was the container. (We've always called Glassfish et al "the container"). You set up the app server, you deploy to it, magic happens. With a dependency on a the JVM, AppServer can be easy to deploy (they still need to be tuned, different problem). But the modern containers have APIs to handle things like deploys from the command line, and it's easy to use without a zillion lines of YAML or whatever or an entire staff to maintain the infrastructure. The modern containers and such have their place to be sure, but aren't absolutely required to deploy a WAR or an EAR. Stand up the app server, add a JDBC jar, configure some DB connection pools, and you're off and running for a vast range of applications. Bit of a fan, even after 20 years with this stuff, I still love JEE and its potential. Regards, Will Hartung