Live data from Hacker News

Oracle and the fall of Java EE

techsticles.blogspot.com

131–140 of 185 posts

Re: Oracle and the fall of Java EE

#131
post #122
post #42

Java EE is described by some as old, heavy, over engineered technology as opposed to Java SE + simple servlet containers with some Spring or other 'lightweight' frameworks. However in my opinion there is something about Java/Java designers at Sun/Oracle/IBM that lead to over designed APIs and code. Looking at just Java servlet api, it is described in most elaborate manner. It is not about supporting Http Listeners en…

About eight years ... nine years ago, I was between jobs and thought I might use the large amounts of free time I had at my hands to learn something that might improve my chances of finding a new job. Lots of companies use Java EE, right? So I downloaded the JDK, Glassfish and a PDF of a book called "The Java EE tutorial" from Sun. I found it slightly disturbing that Glassfish (or was it JBoss? It was so long ago...)…

I have seen those massive J2EE tutorials and blueprints. They came directly from Sun and used to be(still are?) taken very seriously.

Java/EE slogan is 'RAM is so cheap nowadays!' for anyone questioning why applications seems so bloated. If you had temerity to probe further they would drown you in blizzard of serious sounding technical/business buzzwords.

Re: Oracle and the fall of Java EE

#132

What are the current best bets for writing web apps in Java? Play! is convenient, but how does it compare to Spring Boot?

Just completed evaluating the two above. Been using Play for a year and a half and Spring Boot for a few months.

Play is incredibly convenient and has some very sane, intuitive defaults which makes getting something going very, very simple. Play Authenticate and Deadbolt for instance are excellent and give near out the box authentication and security for your Play app.

Persistence in Play is very easy to get going, automatic database evolutions are super cool, routes are easy to setup and all reside in one place. On top of that its got some useful asset management processes for integrating Javascript, CSS and image assets.

Where Play fell down for me was:

1. Dependency management. SBT felt so damn impenetrable. On top of that any Scala or Java libraries were coupled to the binary version of Scala which meant updating and checking every dependency anytime I upgraded to a Play version which used a newer version of Scala.

2. Play breaks a lot of things between versions. Considering it came out in 2007 it's kinda concerning that so much changes between versions and can be a real pain point.

3. In Play Scala is a first class citizen and Java a second class citizen. I started out using Play Java, but it felt like every time I needed to do anything with it I had to consult both Play's Java and Scala docs.

Spring Boot is a real breath of fresh air for a Java dev. Sane defaults, no need to use XML configs, cool stuff like CrudRepository to make persistence an absolute piece of cake to setup.

I do miss database evolutions and the ease of Play Authenticate/Deadbolt and the great asset management utilities which Play provided but Spring Boot can do all that with a little bit of tweaking and then some - Spring Security, DropWizard Metrics, support for Jersey and just lots and lots more make SB super powerful.

Spring Boot also has a lot more tutorials and quality paid for courses so getting skilled up is more straightforward.

Finally from a project manager point of view finding competent Spring Boot developers is a LOT easier than finding competent Play/Scala devs.

Regarding the other Java web frameworks, Dropwizard's dev community seemed liked it had less momentum than SB or Vert.X. It also seemed less up to date.

Vert.X was the most compelling alternative to SB for me and I spent a fortnight messing around with it - lots of fun. It provides an excellent asynchronous event engine and if you like Lambda expressions you'll love coding in it. Very enjoyable to use and the community is fantastic. It has a lot of momentum and you can also integrate it with SB to give you the best of both worlds.

Re: Oracle and the fall of Java EE

#133
post #77
post #23

Earlier quoted context omitted.

I've worked on the Microsoft stack for most of my career, and I'm curious what Java has/does that the .NET stack doesn't. Or is that more about the .NET core stuff for running on Linux-based systems?

Java was the original .NET. Read history of Sun vs Microsoft. C# was a result of a merger of Java + Delphi, visual .NET components are based on Borland's VCL design. Many Java developers were extremely allergic to MS and the vibe at that time was "freedom", especially from nasty companies. Java also got its foothold in finance institutions due to easier design of distributed and transactional systems than the prevail…

There were also several large business sectors that ran almost exclusively Sun hardware. Like the wireless industry 10 years ago. The first project I worked on at scale had to run on Solaris or they wouldn't talk to you.

And our log files had to be localized, which while Java is not perfect, few if any string interpolation libraries match it for being able to deal with written languages that have a different sentence structure than English. It was hard work and one of my coworkers had to invent a new linter to detect unlocalized text in our code, but I couldn't imagine fulfilling those requirements in another language.

Re: Oracle and the fall of Java EE

#134

Amen. Be it Hacker News, or the /r/java subreddit, or wherever, it feels like the bulk of Java chatter revolves around... 1. Security vulnerabilities 2. The Ask.com toolbar 3. Oracle abandoning Java EE ... which is extremely frustrating because... 1. Virtually all of the "security vulnerabilities" deal with the browser plugin for using applets, which hasn't been widely used in 15 years 2. The toolbar malware, while s…

And now imagine where Java could be if the ecosystem wasn't completely fucked up by oracle. Imagine a Java with a sane, user friendly installer, an open source community supported by a big corporation, actual development, no completely insane lawsuits. Instead, developers want to abandon the JVM platform. They actively seek new platforms and create them. The damage is done.

Oracle pays very senior engineers and innovators to create a stable and still evolving ecosystem. Java is slow and steady. The JVM enables other innovators to explore and create languages radically different than Java. I am very thankful for Oracle's stewardship of Java and the JVM.

Re: Oracle and the fall of Java EE

#135
I think that as with many things, you need to follow the money:

Someone has to pay for the talented and expensive people needed to develop, maintain and extend a language/ecosystem ("community" does not == free of cost).

It isn't obvious to me what the underlying motivation would be to drive the investment required. For Swift/C#/Golang it seems to be roughly "Platform Entrenchment" or perhaps "if not this then we're owned by $otherbigco". Oracle doesn't really have a platform to entrench these days.

Re: Oracle and the fall of Java EE

#136
post #74

What are the current best bets for writing web apps in Java? Play! is convenient, but how does it compare to Spring Boot?

If you simply want to serve a web ui, Play and Spring Boot are good. Play is a bit more self-contained. It provides a lot but doing something a bit out of the ordinary can be challenging. Spring Boot is more agnostic in that respect but relies (obviously) on Spring for dependency handling. As well as those 2, Dropwizard is excellent if you're writing REST apis and provides many enterprise-friendly features out of the…

http://gwizard.org/

Re: Oracle and the fall of Java EE

#138
post #84

Earlier quoted context omitted.

I wonder how difficult it would be to port C# to the jvm. It really is a better language. There are some parts of the standard library that are better in java, but overall I'd say C# is better there too.

Care to list what the C## language has that the Java Language doesn't? I guess, you don't miss what you don't know.

Just one example, the type system just does more, IMO very useful, stuff.

Richer generics. Dynamic typing is there if you want it. Type inference is great, and then coupled with anonymous types allows for some nifty tool-supported functional-style pipelined programming. (RX and Linq). Upcoming language support for tuples looks pretty sweet too.

Re: Oracle and the fall of Java EE

#139
post #131
post #122

Earlier quoted context omitted.

About eight years ... nine years ago, I was between jobs and thought I might use the large amounts of free time I had at my hands to learn something that might improve my chances of finding a new job. Lots of companies use Java EE, right? So I downloaded the JDK, Glassfish and a PDF of a book called "The Java EE tutorial" from Sun. I found it slightly disturbing that Glassfish (or was it JBoss? It was so long ago...)…

I have seen those massive J2EE tutorials and blueprints. They came directly from Sun and used to be(still are?) taken very seriously. Java/EE slogan is 'RAM is so cheap nowadays!' for anyone questioning why applications seems so bloated. If you had temerity to probe further they would drown you in blizzard of serious sounding technical/business buzzwords.

I got a away with the impression that some of those large, enterprise-ey applications are so large and convoluted in the way they are specified that the bloat Java EE adds appears negligible.

After I had the honor of writing a few simple-minded Perl-CGI-script to give my boss an overview of projects our company is working on and their respective profit margins, I begun to understand why. If somebody tells me computers are complicated, I tell them that computers are trivial compared to accounting. Or my brain is just wired that way... Listening to our accountants always makes me feel like me IQ just dropped by fifty percent (or more). So if somebody writes a piece of software that is somehow involved with accounting, it is bound to be very complex with lots of special cases and exceptions.

I have nothing but the utmost respect for our accountants who manage to deal with this insanity without sacrificing a goat to Cthulhu or something.

TL;DR - once one reaches that level of complexity, the complexity JavaEE puts into the mix is probably fairly tame and one has bigger fish to fry or escape from.

Re: Oracle and the fall of Java EE

#140

Amen. Be it Hacker News, or the /r/java subreddit, or wherever, it feels like the bulk of Java chatter revolves around... 1. Security vulnerabilities 2. The Ask.com toolbar 3. Oracle abandoning Java EE ... which is extremely frustrating because... 1. Virtually all of the "security vulnerabilities" deal with the browser plugin for using applets, which hasn't been widely used in 15 years 2. The toolbar malware, while s…

And now imagine where Java could be if the ecosystem wasn't completely fucked up by oracle. Imagine a Java with a sane, user friendly installer, an open source community supported by a big corporation, actual development, no completely insane lawsuits. Instead, developers want to abandon the JVM platform. They actively seek new platforms and create them. The damage is done.

We'd be in a much better world if IBM or Redhat had taken over Java.

That being said IBM is working on open-sourcing their core JVM technology to act as platform, not just for Java but other runtimes as well. [1]

There is hope still...

[1]http://www.infoworld.com/article/3014128/open-source-tools/i...

Post reply on HN