Why I Left Oracle – A Confession
blog.rahmannet.net
blog.rahmannet.net
What Rhaman is saying is: the wide Java portfolio is dying because people are not making enough waves around the JCP to keep Oracle on the straight and narrow. Nothing to do with opensource, the JCP is a very different project from traditional opensource development.
The JRE has never been a "real" open source project, but rather a proprietary system that opened up enough to develop a caring community. The problem is that, at the moment, the interests of Java's owner are not aligned with the interests of such community, and not enough people seem to care.
This has nothing to do with Java being "open source" or not; in fact, a real OSS project would happily fork at this point (as it happened with OpenOffice), but the Java community cannot really do it. It seems pointless to debate the merits of OSS in a situation where there is no OSS; it's like saying "We supported Windows out of self-interest; but let's talk about the pros and cons of opensource...".
What does that mean? Compare Java to other open source projects of similar magnitude (and there aren't many; maybe only Linux, which is actually bigger). Linux is even more exclusive than OpenJDK, and just like Linux, companies with appropriate resources often make changes to the software even if those changes aren't contributed back (or contributed but not merged).
> and not enough people seem to care
People will care once many start to actually feel it. Oracle's interests are probably not aligned with mine, and may or may not be a cause for concern for me, but so far Oracle's actions wrt OpenJDK don't harm me at all. The investment in the platform feels to have only grown in the past few years.
> but the Java community cannot really do it
Why not? I think it most certainly can, but at this point there's not enough motivation to do it.
The current situation (OpenJDK open but not a realistic choice in most production deployments; Oracle JDK/JRE remaining as de-facto gold standard; a process that forces strict compatibility tests on any competitor) can be fine from a certain point of view, but in practice it means that Java is not a traditional community-led OSS program. Rather, it's a program where the OSS community helps a company improve their software. RedHat is not the only Linux build with significant marketshare, and I won't get sued if I write a different POSIX system.
> at this point there's not enough motivation to do it.
No there isn't, that's what Rhaman is saying. But what he's also implying is that the direction of travel has changed inside Oracle, and people outside do not seem to realize it. IMHO it's fairly obvious where things are going (you'll stop "installing Java", and only develop and deploy in the Oracle cloud or similar Oracle-sanctioned environments).
That is one interpretation; I can think of others.
> Do you think they wouldn't do the same against any Java fork with a realistic chance of supplanting their implementation?
I think they wouldn't sue anyone complying with their very clear, very standard OpenJDK license. Google, apparently, thinks the same, and has now decided to comply with the OpenJDK license, too.
> OpenJDK open but not a realistic choice in most production deployments
What? AFAIK, Google, Twitter and plenty other companies run their servers on OpenJDK. It is absolutely realistic for most production environments. In fact, Oracle's JDK differs from OpenJDK only in a few monitoring features.
> Oracle JDK/JRE remaining as de-facto gold standard; a process that forces strict compatibility tests on any competitor
That's just not true. The Java standard is the standard, OpenJDK is the reference implementation and one of the most widely deployed implementations.
> RedHat is not the only Linux build with significant marketshare,
Neither is Oracle's JDK. OpenJDK, IBM's JDK and Azul's Zulu all have good market shares.
> and I won't get sued if I write a different POSIX system.
Probably not, but you wouldn't get sued (or, at least no one ever has been sued) if you comply with OpenJDK's open source license. You may well get sued if you don't comply with Linux's open source license, too (which happens to be the same as OpenJDK's).
> and people outside do not seem to realize it
Perhaps, but what's the difference? If they start doing a bad job with Java (so far they seem to be doing fine work), the community will fork OpenJDK.
This is news to me. I'm aware there are differences, but "not a realistic choice"? Can you elaborate?
Lol, like that was a choice Google made freely, rather than something they were forced to do.
OpenJDK might be OK in many circumstances (as I said, requirements vary) but you might want to avoid that particular case study.
I asked for evidence for this bold claim, since many production environments I know are using OpenJDK successfully, under heavy loads and without crashing. So... evidence of your claim?
Hell, way back in the early 00s I remember having to use the JRocket JDK instead of the Sun one due to some weird corner case- so I am fully aware there are cases you can run in to that would necessitate one implementation over another. But calling OpenJDK unfit for production at this point in it's life is either FUD or straight lack of knowledge.
What are you running that OpenJDK seems to be so incompatible with? I've literally never had an issue with OpenJDK 7 or 8 and I've deployed applications that serve millions of requests per day in many flavors of OS.
When doubts started to appear 20 years ago, companies slowly moved their new projects to other stacks.
They are still around and have been updated to more recent versions, but it hardly matters to most devs.
Oracle being careless with mobile OSes support and bringing out stupid enterprise frameworks like Oracle Mobile Application Framework, has made people even go back to C++ for writing portable code for mobile OSes.
There's two ways to not care:
1. I don't care if it goes away, since who uses that stuff anyway? 2. I don't want to invest anything to further the project, but I really like using it and it's crucial for my business!
At this point I think the latter is the problem.
It is real open source. Its not a community-driven bazaar-model development effort, but that doesn't define "real open source" (its just something enabled by, but not required for, open source.)
phrased another way, which bits are missing that prevent an individual from compiling and running Java programs on the JVM using open source software.
* Oracle JDK has a different font rasteriser, maybe some other bits like sound are different as well
* Oracle JDK has Flight Recorder support (that's a commercial feature)
* Oracle JDK supports both C1 and C2 JITs on ARM64, AFAIK an open source implementation of this is coming to OpenJDK 9, likely Oracle JDK will keep the existing implementation
* Oracle JDK has additional commercial features like resource management [2] and application class data sharing
OpenJDK vanilla is AFAIK not TCK-certified. However there are TCK-certified OpenJDK distributions [3].
TL;DR: OpenJDK is fully open source
[1] https://docs.oracle.com/javacomponents/
[2] https://www.youtube.com/watch?v=0WZpmylHbFM&index=8&list=PLX...
- ARM compilers are different
- The Swing font engine used to be different
- Tooling that many devs depend on, like the Mission Control
- The AOT native compilers and tooling for embedded Java
Not an exhaustive list.
Except Oracle getting rich on say, Linux, doesn't hurt me if I am running Ubuntu, Debian or Gentoo. In fact, if their patches are any good, due to the GPL, it helps me.
Now, if I develop open source software, I might or might not be able to extract as much of the value generated as if I was making it a proprietary product. On the other hand, the total reach and value of the project might be magnified just because other people (and also for-profit-corporations) can take it and extend it and use it. I might see less of that value myself but:
a) It might not be my primary goal to capture as much value as possible, just to get enough money out of it so that I can continue working on that project.
b) The "size of the pie" that the same project is worth as open-source, specially for developer tools, is much much larger than if I kept it proprietary. So, in some cases, I might be able to capture more absolute value that way, even if I am helping some huge megacorp get filthy rich too (which is what would happen if I got a 'normal' software job, anyways).
Making your software free to me is not quite an ethical imperative in most cases, but it is a personal decision that can make a lot of sense, even if the entity that will profit the most from your software in monetary terms might not be yourself. The flip side is that, all things being equal, a great open-source software is likely to have a higher impact (and bring you more fame), than a great proprietary program. Specially for infrastructure, libraries and the like vs user-facing software.
If Tim Berners-Lee had been paid for the world-wide web what his contribution ended up being worth to the world, he would be the world's first trillionaire. On the other hand, if he had insisted that he get paid for all uses of the web, the web might have never come be to (or might have lost to a much more "corporate" system, under the control of one or a few companies).
It does if they manage to get in a position where they "own" enough of what you're using so that they can force their choices on you.
Red Hat has been in such a position for a long time now, and their world domination agenda has been steadily hurting non-enterprise Linux users in a higher and higher proportion.
How come? I'm a non-enterprise Linux user and I don't recall ever being hurt by anything RedHat did?
But since most of them folded and adopted Linux, and especially after Oracle upped and forked RHEL6 to make Oracle Linux, the actions from RHHQ has taken on a more controlling nature.
So we worked with IBM, who was also feeling the pressure from Microsoft, and IBM effectively "took over" Red Hat by providing investments, providing executives, and assigning hundreds of engineers to work on Red Hat Linux. That is what propelled Red Hat to become dominant. Since some of the changes to the kernel were just for servers - running things like Oracle, and not useful to the typical Linux user, that became Enterprise Linux.
And the idea that Open Source is always positive is equally absurd. I've been working in open source for decades now, and the big winners are often the same rich companies which are extracting the wealth of our society - as they get software for free while the engineers provide work without getting the true "fruits of their labor". Does it make sense for multi-billionaires to get this software for free? Really, the Open Source idea is very messed up in an economy with distinct winners and losers.
If you only use permissive licenses, free software can result in large corporate monopolies. Copyleft licenses help counter this. Linux, GNU, VLC, FFmpeg, etc are all good examples of this.
Oracle's clients pay less for a solution than they would otherwise, Oracle can compete on this area, some engineers get paid by Oracle to improve a commons, and everybody else gets a more functional system for free.
Ok, maybe somebody worked there against their best interest, but that somebody wasn't coordinated by any big corporation, and should look onto fixing himself only. The ecosystem as a whole is healthy.
Not something you read every day!
Let the others eat cake.
Well, except for those using Java.
Because Oracle screwed it up.
I am quite involved in the Java community and I don't see it. How did Oracle screw it up?
http://www.infoworld.com/article/2987529/java/insider-oracle...
https://jaxenter.com/oracle-and-javas-planned-obsolescence-1...
http://fortune.com/2015/09/07/oracle-cuts-java-execs/
http://www.zdnet.com/article/a-close-look-at-how-oracle-inst...
http://www.infoq.com/news/2015/09/oracle-purges-java-evangel...
http://www.computerworld.com/article/2469593/open-source-too...
http://arstechnica.com/information-technology/2010/11/apache...
https://dzone.com/articles/oracle-announces-jigsaw-delays-pu...
https://jaxenter.com/even-if-oracle-is-losing-interest-in-ja...
http://alvinalexander.com/java/doug-lea-leaving-java-communi...
But that is NOT what TFA is about. That is about Java EE, which Oracle suddenly stopped dedicating resources to, but in a completely silent way.
Java SE may be next. We don't know that yet. There are some signs, but they don't matter at the moment. What matters at the moment is Java EE.
You could have had JIT/AOT for Windows Phone and AOT compiler for iOS, but they never cared.
Now C++ and C# reign as the languages to go for portable mobile native apps.
How is it being addressed?
You mean the communication to leave to the community the porting of OpenJDK to mobile platforms? Or having the RoboVM guys at JavaONE, but giving them zero support other than publicity?
I am not confident that Google will move away from their fork, most likely they will adopt something else, specially with ChromeOS and Android merging.
What I said is Oracle screwed Java up.
By alienating the community, By not caring for security (except after all the huge negative press each time), By not innovating at a decent pace, By falling back on promises, By killing off the evangelists, By ignoring the mobile space, and in several other ways.
Not to mention the bloody Java "API" lawsuit...
Except some got wealthier than others.
Free & Open Source software benefits everyone, which sadly includes bad actors and companies you (and maybe I!) don't like. But don't forget about the "everyone" part, which is the most important one!
But in my opinion, any software being FOSS is benefitial, even if you cannot deploy it yourself for your toy projects. If anything, you get to play with it or learn from its source. Maybe parts of it are useful to you for your own project. You cannot do this easily (if at all) with closed proprietary software.
Good software benefits everyone.
Whether it's open source or not is irrelevant.
It is definitely not irrelevant whether software is FOSS or not. It's the whole point of the GNU project, the FSF and of the Free and Open Source software movements. I'm not going to write a manifesto about the reasons here, but surely you must be aware a lot has been written about this in the last few decades that cannot be dismissed with a flippant "it's irrelevant".
What's the better alternative to billionaires getting their software for free?
It's unlikely that companies will contribute manpower to software if they then have to pay for it too. If you have a better strategy I'd like to hear it.
Billionaires paying for their software?
Not precisely a winning strategy
It reminds me a story about evolution.
It says that the wheat (or the corn) is a successful specie because it is grown by man at a wide scale.
Those Oracle engineers are like bees collecting pollen from the Linux flowers :-)
It's a two-way link.
When was "back then". Are you talking about the 1990s or the 2000s?
You are not talking about RedHat Linux fork "Oracle Linux", right? https://en.wikipedia.org/wiki/Oracle_Linux
I'm not inside nor advanced enough to have a... really well-informed, well-grounded opinion, perhaps. But, I've seen enough of corporate behavior, across multiple substantial corporations over extended periods of time, to speak to that.
Even their "charitable giving." Even if is starts with or has components of genuine good will, by the time the suits, PR folks, and bureaucrats get done with it, it's pretty damned self-serving.
It's not that different than celebrities endorsing a charity for "free", they give up some time which gets positive PR and the charity gets the benefit of raising against their events.
Those charities who cannot generate lots if positive press can't help fund important research. Ironically sometimes research that crosses into another field and benefits another bug if research bring done.
You could (and people do) run a company absolutely ruthlessly applying only the metric of "What is the absolutely best way to make money".
Capitalism isn't nice it's just relatively efficient compared to other systems.
re: charitable giving. If they're giving, they're giving. Doesn't matter what the motive is. "huh, they're only funding a cure for cancer/starving kids/etc because it looks good". So fucking what? What are you doing to help those charities? Typing is easy, huh!
I'm not defending Oracle's activities ethically, but it seems a bit naive to expect corporations to show anything less than the most despicable, profit-seeking behavior allowed by law.
That may be true, but if you're not generating revenue for Oracle, you will be fired and replaced with a lawyer who can at least look for a new IP angle to sue over, or a new way to nickel-and-dime existing customers to extract more license fees. (Coming to Java 10: Garbage Collector Licensing. Beginning with Java 10, Oracle will assess a fixed fee for each byte of memory reclaimed by the Oracle JRE garbage collector. Contact your Oracle sales representative for pricing details.)
Two examples: Reza is a famous spring hater and much of his writing can be summarised as "Java EE rocks, Spring sucks". Which is fine if you're hired to sell Java EE. Which is fine, just don't claim otherwise.
Cameron's view on TCK licensing was also very one sided and uncompromising. In every JCP meeting the topic of TCK licensing pops up. Everybody except Oracle agrees on the subject. Everybody has the same position Oracle had before the Sun acquisition. I was at a JCP meeting when the whole panel (all JCP members) agreed on TCK licensing and Cameron from the audience simply said "no". Then he said something like "if you open source a TCK that makes the TCK worthless because anybody can change anything". Totally ignoring the fact that the best TCK out there (the CDI TCK) is open source. Even if that was an issue there would be fixes for this like trade marking the TCK like Mozilla does with Firefox.
Again if you're hired to wield the power of the TCK against Apache Harmony for whatever political reason that's fine. Just don't claim you're not a corporate drone.
He was very active in BEA Weblogic Forums/usergroups. He would answer most questions with helpful answers. When he started building Coherence (which was sold to Oracle and hence ended up at Oracle) he added Coherence link to his signature while answering questions or trouble shootings other users problems. Pretty soon most JavaEE developers became aware of Coherence with that single trick.
After all, a well-articulated concern that resonates with others will become popular. Likewise, a poorly thought out or unnecessarily vengeful post will be ignored all the same.
I, for one, believe that shining a light on wrongdoing, instead of fearfully pretending it doesn't exist, is one of the privileges of our society. Yes, doing so has several drawbacks, and yes, people are inclined to whine, but it is one of the few recourses the weak have against the strong.
More power to you!
I work in a different Oracle niche and the message is the same: nothing matters but cloud. If a product can be moved to the cloud, good; if it can't, it will be killed. On-premise versions are pretty much all in legacy-mode, getting patches that pay lip-service to the idea of hybrid setups, but 90% of development resources are busy on cloud-related stuff.
Somehow, the current Oracle leadership believes they should become "AWS for the enterprise", and in traditional Oracle style, they will pull all stops (and cut all corners) to get there. If you don't like it, that's the door. "Java everywhere" advocates are now surplus to requirements.
There has been a lot of teeth gritting over how locked into AWS certain parts of a customers company has become, using their API's, their services, and with no real way to move away if anything ever happened.
AWS has already perfected vendor lock-in, so I doubt Oracle can make it much worse, beyond their normal trick of de-certifying their products on competing platforms.
Doesn't matter, its the outsourcing of this decade. Every board wants to be in the cloud, because it gives the (stock) market the impression the company is going places.
And everyone from Oracle to MS, and Google as well, wants to be the one to rent them that cloud, Hotel California style.
Thats why MS has changed their tune regarding Linux, as long as it is running in a VM on top of their Azure service...
I can imagine his job being hard, still officially having to evangelise Java EE, while simultaneously knowing all his work is for nothing.
The problem is that it has been brewing for some time that Oracle is severely neglecting Java (EE). See
* http://www.infoworld.com/article/2987529/java/insider-oracle... * https://jaxenter.com/oracle-and-javas-planned-obsolescence-1...
A little while earlier the Java SE evangelists had been let go:
* http://fortune.com/2015/09/07/oracle-cuts-java-execs * http://www.infoworld.com/article/2980686/java/sources-oracle...
But, the infoworld articles mentioned unnamed former Oracle employees. And people brushed them off as being FUD spread by Pivotal (the Spring company, Java EE's major competitor).
But now we have for the first time I belief an actual name of an actual Oracle employee, and also not just any employee. He may not be as direct about it as we all wish, but IMHO it gives much credibility to the previous reports.
If you're interested in the topic, look at the various Java EE mailing lists, and look in the repositories for the implementation code. You'll see there's plenty of evidence of Oracle suddenly doing very little for Java EE:
* https://github.com/spericas/ozark/graphs/contributors * https://github.com/javaserverfaces/mojarra/graphs/contributo... * https://twitter.com/jms_spec/status/689762921988132864 * https://jcp.org/aboutJava/communityprocess/ec-public/materia...
And then look at the GlassFish 5 (Java EE 8 RI) builds, an automated zombie process with not a single Java EE 8 commit yet, and frankly almost none commits at all (see changes file for every build):
* http://download.oracle.com/glassfish/5.0/nightly/index.html
The story is the same for no matter what Java EE list or repo you look at, with the exception of CDI which is lead by Red Hat.
A possible fallout of Oracle focussing on core Java and cutting down on JavaEE monstrosity is that all those pattern laden enterprise architect/astronauts/evangelists seems less in demand at least at Oracle. I may not be biggest fan of Oracle but I think in case of evangelist types leaving Oracle is good thing.
So, what of Oracle? I'm drawing a blank, but that's probably because I don't frequently interact with Oracle or with its products.
Anyone?
But IMO Oracle's reputation is a portfolio of overarchitected overpriced enterprise products that encourage lock-in.
> He helped pioneer one of the most successful pieces of enterprise infrastructure that has stood the test of time. Yet he is humble enough to still code
I mean, doesn't coding being perceived as a "humble" job he's lowering himself to really say it all? It's rarely explicitly said, but coding is considered a low status activity in those spheres. That's why I avoid Java work. Other languages have cultures that respect the craft, rather than viewing it as something you grow out of.
I think he's mainly saying that coding in front of an audience exposes you to errors which shows that you are human.
(an example of why you have to be careful about how much liberty you take in your quoting)
Not really, in many countries there is the expectation that when you are over 40 you either are a solution architect (those that never code) or a team manager.
It is very hard to fight against this society bias, regardless of the programming language.
I'm not basing my opinion off that statement, but rather my previous jobs doing Java. I just found the quoted chunk summarized what frustrated me about that community.
You're painting this like sticking up for your profession is only for glory boys that want attention. People generally treat you like you expect to be treated, and when programmers pretend like our status doesn't matter we make things worse for all of us, collectively. To quote the Simpsons, "this is why we can't have nice things".
> As long as I get paid at the end of the month it's all good!
Sure, but your pay is largely based on the status of your profession.
I'm not asking for glory, but my personal opinion is that programming is a high skill activity with a large amount of business value that takes a long time to master. People are free to disagree, but it's not in my interests to participate in a community (the Java EE community, in this instance) that doesn't share that perspective.
I think you have an odd view of business if you think that the pay you'd get is dependent on its status. For one thing, how do you determine its status? Some comment on a blog doesn't really cut it (who cares?). (Likewise, I'm not sure what form "sticking up for your profession" takes. Writing a comment in response to the blog?). I understand all manner of illegal activities - drug dealing, for example - manage to make the perpetrators a lot of money. Perhaps they're counteracting the disdain many people feel for them by posting on blogs?
Pay comes from a reward for doing work for people who will then use your work to make them more money. I've recently done work for banks and newspapers and they've never specified which language to use and wouldn't pay any less if they discovered what language I used. If you told people that there are a zillion shitty android apps written by newbie java developers who'd never programmed before and were written in a few days of their spare time i doubt many people would be surprised and it's clearly had no impact on the pay you'll receive as a competent java developer who keeps up with all the exciting frameworks.
The computing industry is directly responsible for 1/3 of global GDP in 2016.
Its time that this is reflected in our paycheck.
If you think a junior developer fresh out of college knowing a bit of javascript is in any way comparable in terms of the value they deliver then you're wrong. Simple as that.
If you think programmers doing actual work in all sorts of businesses bring less value than bureaucrats hiding in quangos, I don't think we'll ever be on the same page.
But these arnt particularly good jobs. Programmers often have the grades to go into professional services and finance. Those jobs start at 32k.
Very few programmers start at that level.
There's certainly a point to be made about code being channelled in good directions by excellent management. Unfortunately the median for tech management is nowhere close to excellence.
It's telling there's a lot of industry sweat expended on how to avoid hiring 1X or 0.1X developers. But you'll hardly ever see an SV blog post explaining how to avoid hiring/promoting a 0.1x CEO or VP - even though they certainly exist, and their ability to destroy value is so much greater than that of a single inept developer.
As for Java - Oracle isn't a very interesting company. It seems to have made most of its money running a collection of corporate patterns that work well to create profit - until they don't.
It's possible the OP's post is another sign the "don't" phase is getting closer.
After recently reading of a whole company's IT staff being forced to train their H1B replacements under the threat of not receiving severance pay, and then fired as soon as the training was completed, the thought of unions does cross my mind.
You think unions would fix this? Has it stopped auto jobs from leaving the US? It sounds like we need to fix H1B laws, and giving tax breaks to companies moving overseas. Throwing in a union sounds good in theory, but I don't think it would actually work.
We do have unions for IT.
I have seen what a union environment is like. Your pay is fixed based on the number of years you worked at a company, nothing else matters. It is a race to the bottom.
And have the opportunity to spend valuable time with family and friends?
I do.