Hacker News new | ask | show | jobs
How Oracle’s business as usual is threatening to kill Java (arstechnica.com)
119 points by gararapa 3641 days ago
13 comments

It seems like no sane people would choose Oracle for a new project. Is that a company milking its legacy contracts and buy new legacy product until they can't follow fast enough?

This kind of business model is a drag on the whole ecosystem, just like Microsoft as a monopoly stagnated the whole ecosystem until Linux broke out.

Probably no small company would, but Oracle doesn't make its money on small companies. Oracle does provide benefits for Fortune 500s and the banking industry, where projects are not going to be replaced for a very long time - there's a lot of configurability and their products can be made to do almost anything you could possibly want, now and in 30 years.
This. ^^^^

Oracle lives and dies from aggressive salespeople promising the world to large customers with long term contracts. The buyers get their needs met, and Oracle forces the developers (eventually) to build whatever was promised. The clients can configure what they want, and at some point after the initial buyer leaves, support gets cut to the minimum.

This is true for many large enterprise software companies.

This contrasts to the hands on attention from a startup. But you never know if the startup provider will be there in 3 years, or if they'll scale their engineering team.

This is why startups tend to sell to startups, and large companies tend to buy from other large companies. (Of course there are 100s of exceptions)

These big companies don't like uncertainty in their IT platform though. And this apparent lack of commitment to Java EE without any communication could scare them away.

We can only speculate what's going on at Oracle. Some options come to mind: 1) the JCP is moving too slowly to keep up with the changing IT landscape 2) Oracle no longer sees benefit in standard APIs with competing implementations and interoperability. Maybe it's eyeing enviously Salesforces cloud lockin...

Why don't we just use the Hanlon's razor?

> Oracle's overall revenue was down, largely because of its shrinking "on premises" software sales

> So how did Oracle increase profit on revenue that shrank overall by about 1 percent? The company slashed the operating cost of performing software updates, license support, developing and supporting new hardware, and services—in other words, through layoffs

http://arstechnica.com/information-technology/2016/06/oracle...

So top management is in "cut all the corners, don't care about the future, we need our bonuses now" mode, that's it.

> no sane people would choose Oracle for a new project

So what exactly would they choose instead for the role of high-quality relational DBMS (if DB2 for z/OS is not an option)?

PostgreSQL? I'm sure there are Oracle installations that would be difficult or impossible to replicate on PostgreSQL. But I'm also sure that the vast majority of databases would work fine under PostgreSQL. A "new project" in particular is unlikely to need anything that makes Oracle "special."
I've emphasized high-quality part for the reason.

I agree the majority of cases where Oracle is used in small business segment is pretty good fit for PostgreSQL, especially considering the fact many of consulting shops who specialize in Oracle are willing to provide commercial support for PostgreSQL as well.

I code all kinds of stuff in Java and never use Java EE; JDK8 SE is great and I like some what is planned for JDK 8, it always seemed to me that Java EE was a collection of second- or third- best technologies.
That is what I was thinking. Java EE is was already losing mindshare to Spring.

However I still find this troubling for the future of Java. If they kill EE this casually, why wouldn't they slowly abandon Java altogether . Java EE is the canary in the coal mine.

Not that I would be sad about Java's demise. Many companies see Java as they only real programming language. Maybe if Oracle keeps it up the enterprise will start to consider using other languages.

Oracle has always been big on Java since day one.

They tried to do Java based based terminals like Sun was promoting (remember NC?), their RDMS engine allows for stored procedures in Java and already in the early 2000's the database GUI tools were Java based.

What I imagine they doing is going full commercial with the language and withdraw OpenJDK from public access.

There are already quite a few features that are only available via commercial licences, including the AOT compiler that is being developed.

Is Java EE released under an open source license?

The article only makes sense if the license is not open source, but this important detail appears to have been left out entirely.

A few quick searches suggest Oracle is using some kind of free-as-in-beer license for Java EE.

edit: buried in the middle of the article is this passage:

> JCP concerns aside, rumblings over what's happening with Java EE have been much louder. Discontent began when Oracle shut down commercial support and internal development for GlassFish, the open source version of Java EE that served as the reference implementation for the platform. Even without commercial support, Open Glassfish was still being predominantly developed by Oracle employees. Java EE 7 and the GlassFish open implementation soon released on June 12, 2013.

So what's the problem here? Big company doesn't want to fund R&D for a product that generates no revenue?

Said product is open source, so community takes over.

> Said product is open source, so community takes over.

Hum, that would be true in general. But said product does exactly the same thing Google was found guilty of doing with Dalvik, to the exact same company. Nobody but Oracle can take over such product without drawing a huge target on themselves for Oracle to shoot on.

Pulling out of Java EE probably makes sense for them from a financial perspective. It's a huge codebase with god-awful complexity and a zillion legacy features. And, if it's not making any money, what do you tell your shareholders when they see the "maintain JEE" section of the quarterly budgets???

(the very size of this codebase might make it difficult for anybody to maintain)

That said, I suppose we shouldn't be shocked if Oracle gathers usage data, finds the 5% of the platform actually in common use, and creates a new (proprietary) server platform mostly compatible with the features that matter, for which you will pay dearly to have supported/patched.

Obviously, this move isn't good for anybody but Oracle, but they are not a charity, and can anyone say that JEE is not a bloated pile of mostly abandoned missteps with a few random nuggets of goodness?

I guess there's always "Sparkjava" (Sinatra/Express style) web platform for Java 8 :-) http://sparkjava.com/

> Is Java EE released under an open source license?

Irrelevant, as long as US judges find API copyrightable.

Java EE can die in a fire. Only thing that matters at this point is that the JVM stays relevant.
I hear you :-)

We have been doing an app rewrite at work to do a rich HTML/JS client, reducing the Java back-end to just REST services. As far as I'm concerned, there is still too much "Enterprise!" in the back end, but we have a legacy codebase to try to recycle.

I'm not ready to go pure Node.js, but I wouldn't mind coding the backend on Nashorn, skip the Object-{Relational/View}-Mapping make-work, and only drop into legacy Java as a last resort. However, I'm the only pro-dynamic language (as well as functional programming) fan at work, so that's a non-starter.

How likely is it that Oracle could sue a company using Java? Are you safe as long as you don't create something Dalvik-like?

I have a gut feeling that lawsuit has had a chilling effect on enterprise Java usage. It obviously didn't put Oracle in a good light.

No group I've talked with has any concern for being sued over implementing java applications. The actual concerns are mainly whether oracle will continue supporting the ecosystem - security and features.
Is there a specific implementation that people are worried about or the EE specification?

Was there ever a time people were happy with the J2EE/EE process? It moves slowly, the opensource and smaller implementations do lots of cool stuff that isn't part of the specification. The big money implementations generally seem and feel like they are years and years behind the times. Sun seemed to have issues actually listening to and working with the community too... And the regardless of any actual experiences, people just seem to love to bitch about Oracle.

Now that .NET Core runs on Linux, there is an alternative at least.
Theoretical alternative, while I'm deeply excited about .NET Core on Linux (mostly for when F# is fleshed out) it's not got the massive ecosystem Java has yet and might not have for a while since Java on Linux (and others) has been around quite a while.
If Microsoft would create a bridge that allowed use of Java libraries from .NET I think a lot of projects would consider moving to .NET. A while a go I did some text processing projects and the existence of frameworks like Lucene and Tika alone were a big argument for Java.
Microsoft could've built that bridge 10+ years ago and chose not to. I don't expect them to change their minds now.
On the other hand ASP.NET on windows server has been around for a really long time.
Java EE was the child of a relationship between SUN and IBM. The latter contributed hugely. IBM and SUN were able to work with each other. IBM and Oracle less so.

IBM WAS used to be a key selling point for IBMs consulting force. But JEE skills and tools are now commodity and WAS is less critical to IBM. It is curious that IBM is investing these days into Swift also targeting servers (https://developer.ibm.com/swift/).

It looks to me at times that both parents are neglecting and considering abandoning the child in the long run.

"It's a dangerous game they're playing,"

Not for Oracle it isn't.

It's more dangerous for Oracle than anyone else. You can only be a bully for so long before customers and potential customers become scared of you and go elsewhere. When you scare off customers, you die. I won't implement anything Oracle and my company for just that reason, they're unethical and a liability. Predatory licensing rules, lock in, stick it to the customer pricing, and the potential for litigation at the drop of a hat.
The inertia of large enterprises makes Oracle largely immune to perceived bullying or negative reputation. While the "boots on the ground" developers may be displeased with how Oracle increases friction, project managers and directors are happy to continue renewing their contracts in order to keep their systems "supported."

Oracle are shrugging their shoulders all the way to the bank.

> The inertia of large enterprises makes Oracle largely immune to perceived bullying or negative reputation.

The inertia of current large enterprises using Oracle sure, if the cost to move from Oracle is very large then they'll accept the risk if they even consider it.

Not so sure that applies to new customers though, they won't hemorrhage customers but they could see a slow gradual decline as the odd large enterprise folds, moves to something else etc.

I think if Microsoft continues down the path it appears to have really committed to the potential for .NET (Core) to go toe to toe on Java on none-microsoft platforms is there.

I certainly think that is the intention (along with making Azure a more attractive platform).

Millenials don't want to pay for software tools so Microsoft needs to take .NET to where they are, free OSes and compilers, so that they can earn them back in Azure with *BSD and GNU/Linux VMs.
I wouldn't invest (not even my time) in licenses and staff to work over a platform that won't be maintained in the next 5-10 years. Stability is better for business.
Exactly.

Long term stability, even if programmers/admins complain, is still the best option for a business.

Hobbyists can do whatever they want, a company isn't depending on what they do.

Oracle abandoned their database on z/OS in 2008. And stopped to provide support a couple of years later.
Although I don't use Java much anymore (favoring Ruby, Typescript, Haskell, Clojure, etc.) Java used to be my world, including enterprise Java.

Honest question: aren't there open source solutions for the best parts of Java Enterprise specs?

GlassFish as mentioned is open source. Other commenter also brought WildFly, but it does not implement everything. I think you'd need jboss EAP. And there's TomEE++.
JBoss seems to work well enough. Er, Wildfly???
WildFly is the project formerly known as JBoss Application Server.
I don't use Java EE since I know there is a thing called J2ee/Java EE – 10 years ago.

IMHO, Don't call self a Java SE if you just know how to configure some shity XML configuration files in Java EE stacks.

In the world of Spring & Play, just JDK alone isn't good enough? Does evolution of J2EE really matter?
So, then, best non-JVM alternate language for backend servers?

Go? D? Haskell?

Node (please, no)?

> So, then, best non-JVM alternate language for backend servers?

The vast, vast majority of 'backend servers' are written in C++. (Those that aren't are legacy that was written in C.)

P.S. Of course, for some people when they say 'backend' they really mean 'anything not Javascript'. In that case PHP is the world's most popular backend language, and that would be just silly.

P.P.S. The disconnect of the online discussion bubble with reality always shocks me. D? Go? Seriously?

I guess it is time to consider.NET. With Linux support and upcoming JetBrains IDE that will be the smoothest transition possible.
It depends on so many things. From Ur/Web to PostgREST.