12 ms·
Time to look beyond Oracle's JDK
- georgewfraser 8y agoWhy would a company pay for "commercial support" of OpenJDK from IBM? I have used Java for 15 years and I don't know what "support" for a JDK would mean.
- phakding 8y agoIf you are stretching limits of java, then you would need support because that knowledge base isn't available easily. I worked for a company that had performance engineers from sun on site helping us with performance issues.
- MrMorden 8y agoOr because your company has a policy of not putting anything in production without a signed license and/or current support contract. (See e.g. SQLite which is public-domain but if you want a commercial license anyway they'll sell you one. They offer non-FOSS extensions now but they sold commercial licenses before that.)
- runlevel1 8y agoSome orgs insist on having someone to sue (or at least to blame) when things go wrong. Government and government-funded orgs practically insist on it.
- mey 8y agoSecurity updates after EoL. Oracle does/did this with Java 6. Support in diagnosing problems and getting fixes escalated. As others have said, a corporate requirement to have a throat to throttle
- exabrial 8y agoSome companies fire all their workers in hopes offshoring is a magical bullet or let their top knowledge owners leave the organization. As such, they hurl money at the problem to try and cover their incompetence. In these cases Oracle had elected to receive.
- pard68 8y agoThe decision makers are not programmers. The people making the choices on software in an enterprise are MBAs who know next to nothing about software and so they need some "insurance". Look at the tech founded enterprises, they do not go the tradition enterprise software route. Why? Their leadership came from a developer background and not an MBA one.
- marmaduke 8y agoI don’t think it’s that simple. As a dev or sysadmin, all it takes is to have resources invested in a legacy system that no one gave money to replace but are ok with maintenance contracts. This easily happens when people leave/get hired. I have a legacy storage system only accessible through exactly Java 6u31 32-bit on Windows 7, of course I want to replace that but instead it’s cheaper to keep and maintain than to replace. edit and I think this must be a conscious strategy on the part of any vendor: make maintenance just slightly cheaper than replacement
- hyperman1 8y agoThat's the theory. In practice, it is near-impossible to get any enterprise vendor to actually fix something. Either you're lucky and another customer had the problem. Then, after annoying them for about a week, you'll get a patch. If however you've found something new like a feature that's so buggy it is actually completely defect, you're in for an ordeal of a few months. Simply getting a dev to look at your bug takes a month. In that month, you'll answer every day questions like what OS you're on ('As I told your past 10 colleagues, We see it under red hat linux version X1 X2 X3, and under windows Y1 and Y2, and under HPUX Z. Yes, this is a pristine OS install with a pristine JVM. Yes, our support contract covers this. There is a test case in the bug report, run it on your computer and see yourself'). They'll call you in the middle of the night. Then call you again 12 hours later because you're not allowed to respond to their questions outside business hours so please tell us again and next time read your contract. If you survive this, and you provide a perfect example source code fragment of 100 lines, and you decompile their own code, point at the bug, and suggest a less insane way to write that code, you'll get a fix. This fix seems to work for up to a day, when you notice your performance is less than a sixt from what it was. Then you notice how they ignored your suggestion, did something even less sane than the original code, and managed to break something else you hadn't even noticed before. Call again, insist they do not start a new ticket unless you want to redo that original month. A few minutes later they call back and try to sell you six times the hardware you have as a workaround, and promise a 10% price reduction for the first year. Do not swear at any point, this will immediately end the phone call and you'll have to navigate their insane phone menu again and get a new lesson in Indian English from a guy who swears he is speaking your language perfectly right now (which is neither English or anything spoken in India, afaik). After a few rounds of this, they produce a working patch. You confirm it works and are promptly forbidden to use it ever again. They will provide you 'soon' with an official version of the patch, which has been vetted against their secure development lifecycle, legal team, and god knows what else. Actually applying the current patch so your users stop screaming will end your support contract. It takes in total a bit more than 3 months before the final patch is delivered. At that point: 1) management congratulates themselves for having bought support. 2) Your colleagues however are in awe about you've got actually managed to get an enterprise vendor th actually fix a bug. Turns out they have tons and tons of bugs and spend their days inventing horrible workarounds as they gave up getting them fixed long ago. 3) Contractors from the enterprise vendor, working on another project in your company will turn the feature off, as they know for sure it can't work. If you claim to have a patch and it is already running on their servers, they refuse to use it and turn the feature off once more. Not using the feature costs a small fortune in network overhead, BTW. If you enable it, the next coontractor entering the building will disable it instantly, even if your config file has this story documented. Anyway, thats my experience. YMMV.
- pjmlp 8y agoFixing a segfault in a JVM running in production.
- hannibalhorn 8y agoWhat really jumped out at me in the article is that the "free" builds from Oracle are only going to be available for 6 months, and production use of the Oracle JDK requires a paid license. So if you don't want to commit to upgrading your JVM every 6 months, it's time to look at the alternatives...
- super_mario 8y agoEvery once in a while you hit a JDK bug that you cannot work around. You post a bug to Oracle (Sun in the past) and find out it's a duplicate that has been sitting around for years unfixed. If you have paid support, a small team of engineers will dedicate their time to fix the bug for you and provide you with a patch, so you can move on. The patch can sometimes be specific for your platform and situation. This is particularly true if you are stuck with older JDK version and cannot move forward for various reasons.
- threeseed 8y agoWill be interesting once Graal is released. I've found it be at least 30% faster than the existing JDKs around for Scala development. Others have found similar results: https://medium.com/graalvm/compiling-scala-faster-with-graalvm-86c5c0857fa3 https://medium.com/graalvm/compiling-scala-faster-with-graal...
- kodablah 8y agoSurely it's no coincidence that, as Oracle removes differences between its JDK and OpenJDK, that they are throwing their weight behind this non-community project, with an enterprise version. Between sunsetting community owned Nashorn in favor of Graal solution to giving tools to OpenJDK presumably with fewer of their own maintainers, the resource shift is clear. Not that it's wrong or even nefarious, but devs need to realize who they're getting in to bed with when building a reliance on the tech.
- brabel 8y agoGraal is open-source and most projects under its umbrella are [GPL2-with-classpath-exception licensed](https://github.com/oracle/graal/#license https://github.com/oracle/graal/#license). The fact that they also have an Enterprise Edition does not make this a non-community project.
- kodablah 8y agoSorry, I meant non-community owned. Mentioned in sibling comment, I use plenty of non-community-owned software, but I avoid wholly Oracle owned software.
- greatquux 8y agoBut what about supporr for the JRE? Please help a sad IT admin understand what's gonna happen.
- phoschore 8y agoOh, just the usual near-monthly (if not daily) death march of ever-increasing version numbers, just like Chrome and Firefox. And Windows Update. And OS X, And iOS. And Ubuntu. And so on, and so on, and so on...
- djsumdog 8y agoIn general I'm glad we have rapidly increasing version numbers for Chrome, Firefox and even Edge. If you had lived through the IE6 days, this would be something to appreciate. I'm how sure how I feel about it with the JRE. I have old open source apps on Scala 2.11/SBT 0.13 that are already experience dependency rot. :-/ It's going to be more difficult too since deprecated stuff is finally getting removed from Java. I'm curious to see where we'll be a few years from now.
- pjmlp 8y agoJRE is on its way out. Thanks to Java modules, jlinker and packager tool, the idea is that you just distribute everything together.
- jasonparallel 8y agoHappen to have a good link to read about it?
- pjmlp 8y ago"jlink" https://docs.oracle.com/javase/10/tools/jlink.htm#JSWOR- https://docs.oracle.com/javase/10/tools/jlink.htm#JSWOR- GUID-CECAC52B-CFEE-46CB-8166-F17A8E9280E9 "Self-Contained Application Packaging" https://docs.oracle.com/javase/10/deploy/self-contained-application-packaging.htm#JSDPG583 https://docs.oracle.com/javase/10/deploy/self-contained-appl... "JLINK in Java-9" https://blog.knoldus.com/jlink-in-java-9/ https://blog.knoldus.com/jlink-in-java-9/ "Using Java 9 Modularization to Ship Zero-Dependency Native Apps" https://steveperkins.com/using-java-9-modularization-to-ship-zero-dependency-native-apps/ https://steveperkins.com/using-java-9-modularization-to-ship...
- jeswin 8y agoActually, time to look beyond the whole Java ecosystem. After the claims Oracle made during the Google trial (such as APIs and method signatures being patent-able), it is clear that one can't work on the Java platform without infringing Oracle's IP. If Oracle doesn't sue you now, it can sue you when it makes financial sense to do so. .Net looks like a much better alternative, with a patent pledge and ECMA standardization. Although to be fair, Microsoft is still a supporter of patent lobbies.
- chaostheory 8y agoTypeScript (https://www.typescriptlang.org/ https://www.typescriptlang.org/) is a good starting point. If you use nestjs (http://nestjs.com/ http://nestjs.com/), it has dependency injection as well. Pairs with Angular nicely.
- deleted 8y ago[deleted]
- narrator 8y agoI've worked some in Typescript and I like it. In fact, it looks like it's going to be the next great enterprise language that's not Java or .Net. Am I delusional?
- AlexCoventry 8y agoI like it compared to javascript, but I think it would be crazy to use it for backend work. I think making typescript happy probably saved me more time than it cost, but it's pretty janky, even compared to similar type systems like mypy. The ability to lie about types caused me quite a bit of confusion, with some libraries, especially immutable.js. Next time I want to develop a frontend system, I think I'll try reasonml.
- ttty 8y agoIt's pretty cool actually. I used node because I can do client side prediction and server side validation with the same code. Note having client and server side in TS, means that I get completion for API calls from client to server side.
- djsumdog 8y agoSo would the Docker OpenJDK containers be equivalent to your distros OpenJDK build? https://hub.docker.com/_/openjdk/ https://hub.docker.com/_/openjdk/ I assume so since they're maintained by the Docker community in the same way Debain or Ubuntu may maintain their package trees.
- kam 8y agoThese Docker images use the Debian or Alpine OpenJDK packages.
- samueldavid 8y agocan we fork OpenJDK?
- exabrial 8y agoYes.
- Bjartr 8y agoWithout getting sued by Oracle?
- exabrial 8y agoTo my knowledge that'd be the first [complete] test of GPL by the legal system, which is also a great outcome.
- J-Kuhn 8y agoThat's something nobody can be sure it won't happen. OpenJDK is open source (GPL2 + classpath exception). "Java" otoh is a trademark.
- repolfx 8y agoGoogle didn't fork OpenJDK. They now use it though, after the lawsuit!
- exabrial 8y agoThis is great! Competition breeds excellence; I'm glad we're going to have a lot of new distributions.
- ece 8y agoThere's really only one, possibly two saviors of Java. Redhat with JBoss/Icedtea, and OpenJDK, which has IBM, Redhat, Oracle and Doug Lea at the top level. I don't see any great examples of building successful open source communities from IBM, but open sourcing OpenJ9 earns them some good will. Short of OpenJDK being adopted by Apache/Mozilla/etc.. (Oracle will let this happen after hell freezes over..) Java really has only one savior. Redhat is skipping the minor Java versions, so it's Icedtea/OpenJDK build has Java 8, and the next version will have Java 11. This is what I'll be using on Linux.
- Sindisil 8y ago"I don't see any great examples of building successful open source communities from IBM, [...]" What about Eclipse? Love it or loathe it, it's certainly been successful.
- ece 8y agoSure, apart from their attempt to control the Java ecosystem being that old, it doesn't leave me with confidence that they are as committed to open source as Redhat. This sounds harsh, and I don't mean to be, but only time will tell how OpenJDK/Open J9 fares.
- csdreamer7 8y agoHow much of the entire Java api is under the GPL? I get mixed messages on OpenJFX on how much of JavaFX has been open sourced.
- kjeetgill 8y agoAll of it. I'm not familiar with OpenJFX but JavaFX has always been in the GPLd OpenJDK.
- hashrate 8y agoInteresting read. I think the whole idea of "We need to replace Java with [Insert Language]" is much more complicated topic than just saying "X is free , Java is owned by Oracle". Even is this is true , Java is by far one of the most performant programming language that exist on earth. People just don't realize the hundreds of millions of dollars that went into the JVM and the JDK. Even if they are great alternatives like Go or .NET , they either come with huge limitations in performance or their ecosystem. Per say , finding JVM developers isn't that hard, regardless of the geography. However , finding Go developers outside of the Bay Area ? Good luck with that. The issue with Patent on the JVM is well know and there is very little to nothing that we can do about it.
- acdha 8y agoJava is better than it used to be but you’re significantly overselling performance as a competitive advantage. Many other languages have no trouble producing code which is as fast or faster, and Java is still shaking the culture of excessive complexity which has squandered much of the hard work in the JIT. The ecosystem is a much better argument since it’s certainly massive, as is finding developers, although quality varies wildly in both cases.
- village-idiot 8y agoMore than that, speed is vastly overrated in a lot of cases.
- acdha 8y agoTrue, although that has a way of becoming important after awhile. That’s why I prefer to focus on complexity and clarity as it’s much harder to make convoluted code when it becomes important.
- village-idiot 8y agoIt’s nit picking, but I think a more correct statement would be “lots of small performance mistakes add up over time”. It’s very rare that I see a project needing a new language for performance reasons, but I see projects that need refactoring for performance all the time.
- jarofgreen 8y ago> Note also that certification is currently on a trust-basis - the results are not submitted to the JCP/Oracle for checking and cannot be made public. Not public? Why on earth not?
- mnd999 8y agoI tend to go with the Oracle VM because of the profiler (Java Mission Control). Does OpenJDK now have a credible alternative?
- chungy 8y agoOpenJDK and Oracle JDK are exactly the same code (as of 11). A different license is attached, but that's the full extent of the difference.
- the8472 8y agoThey have handed JMC over to OpenJDK and it is open source now. http://hg.openjdk.java.net/jmc/jmc/file/31576d187ec3/license/LICENSE.txt http://hg.openjdk.java.net/jmc/jmc/file/31576d187ec3/license...
- xyproto 8y agoOpenJDK is more "credible" than the Java JDK by Oracle, in my book.
- Jonnax 8y agoSo apart from Java and .NET what other high level languages are there that have gained traction to near the extent of these two? I must say that Oracle makes me hesitant to want to use Java in anything I'd make in my free time.
- ece 8y agoGoogle is pushing Swift with a Tensorflow port, and if they were even remotely interested in doing a Java port for training, it would've happened already. I will say, no Apple or MS for me thanks. I hope Scala with Scala native continues to thrive, and for any additional pet projects not in Scala, frankly Python sounds pretty appealing to me as someone who eschews dynamic typing. 3.6 seems to have added some type inference, and it's popularity is up there with Java/C++/JS... Rust might be an option too.
- afroboy 8y agoYou don't have to use Oracle JDK, Azul offer their implementation plus OpenJDK 11 has all the goodies from Oracle JDK.
- sheeshkebab 8y agoGo lang... although google is driving that one and it’s dependency management is a mess, so pick your poison.
- mmargerum 8y agoGo 1.11 added "modules" support. https://golang.org/doc/go1.11#modules https://golang.org/doc/go1.11#modules