10 ms·
Working in the JVM world I'm always surprised to hear that its dying, the JVM and Java moves faster forward than ever, Graal is about to go 1.0, a bunch of very
by walkingolof 7y ago
Working in the JVM world I'm always surprised to hear that its dying, the JVM and Java moves faster forward than ever, Graal is about to go 1.0, a bunch of very interesting (very) low latency GCs are in the pipe (for example ZGC and Shenandoah) and lots of other interesting projects like Valhalla promise to keep the JVM relevant for the next 20 years. Oracle have made some moves to monetize on parts of its investment, but the situation is largely misrepresented.
Ref:
- https://openjdk.java.net/projects/valhalla/ https://openjdk.java.net/projects/valhalla/
- https://www.graalvm.org https://www.graalvm.org
- https://wiki.openjdk.java.net/display/zgc/Main https://wiki.openjdk.java.net/display/zgc/Main
- https://wiki.openjdk.java.net/display/shenandoah/Main https://wiki.openjdk.java.net/display/shenandoah/Main
- acqq 7y ago> Working in the JVM world I'm always surprised to hear that its dying So how is this "JVM world" escaping the grip of Oracle? E.g. graalvm is directly Oracle's, or am I missing something? Specifically, what is preventing any of the Java-related things people use now (including those that you mention) to end like the OP is describing? Asking as somebody outside of that world, but interested "how much it's worth considering" under the given circumstances (Oracle being Oracle, demanding a lot of money for everything Oracle's that some company could use, and owning a lot of that "world"). Where are the boundaries? What is safe and outside of reach of Oracle? E.g. what is safe for a small company to use?
- walkingolof 7y agoGraal Community Edition is licensed under GPL, there is a Enterprise Edition that has additional features that is licensed differently. OpenJDK does not need commercial licensing, but Oracle JDK which is built from OpenJDK needs. Then there are plenty of other vendors to chose from if you absolutely does not want to interact with Oracle. IBM and now Eclipse foundation OpenJ9 is a very interesting TCK compliant JVM, then you have Azul Systems that innovates a lot with Zulu/Zing.
- acqq 7y agoGPL is not usable for any small company which doesn't want to publish its own sources. What can be used only using BSD, MIT, Apache licenses? And what from the GPL-licensed products is safe to use to produce and sell own closed source products (e.g. where the exception to GPL exists for just linking the libraries or similar)? Edit1: Long term dangers/costs of depending on the technologies that need commercial licenses like Oracle’s are also important. Edit2: And additionally, just as an old example, once I’ve considered using Berkeley DB in the closed source product (before some of the current alternatives were available), and my interaction with Oracle proved that only a bigger corporation could fund that. For a library which was already open source, but owned by Oracle. It's not that I'm in the "I don't want to pay for anything" camp -- I'm simply having a perspective of a small player. And about small players Oracle couldn't care less. However, the significant changes very often come at that level of cheapness and overhead, most of technologies would be still not widely accepted otherwise.
- walkingolof 7y agoYou probably use Linux today, that fact does not require you to publish the source for your program running on Linux.
- mateuszf 7y ago> GPL is not usable for any small company which doesn't want to publish its own sources. Maybe I'm missing something, but AFAIU you have to publish any changes to that library, not your sources.
- acqq 7y agoThere are different levels of what’s allowed for different GPL based licenses. To use a library as a library with another license a GPL library exception has to exist for the library etc. If you step on only one of such mines your whole product has to be GPL-ed. It the context of my questions here, and as an example, my guess is that I can't use graalvm to produce a binary which I can sell without either open sourcing everything I've made or paying too much to Oracle. But I don't know for sure and for each of the mentioned technologies, that's why I'm asking very specific questions.
- threeseed 7y agoOpenJDK is an open distribution and preinstalled on all major operating systems and is now the standard JVM for most developers. We even have open distributions of it e.g. Amazon Coretto. GraalVM isn't even at version 1.0 so nothing at all to worry about.
- ivan_gammel 7y agoSince when OpenJDK is preinstalled on Windows?
- votepaunchy 7y ago... and iOS? And I’ve only done upgrades, but I don’t believe any JVM is preinstalled on MacOS.
- pjmlp 7y agoApple used to have its own JVM implementation. As for iOS, RoboVM, Codename ONE, GluonVM are three possible AOT compilers to native code.
- duskwuff 7y agoApple's JVM was MRJ, the Macintosh Runtime for Java. It became obsolete around 2004, during the transition to Mac OS X.
- cmiles74 7y agoLast time I used MacOS, it prompted me to install Java and then it did the install. I was in the Terminal, I am not sure what the interaction would look like if I had double-clicked a JAR file. I believe Apple donated their customizations (Swing L&F, launcher code, etc.) to OpenJDK.
- dwaite 7y agoThis is Apple's old build of Java 6, and is currently downloaded as needed for backward compatibility. Anything newer than that the third party is expected to bundle into their application.
- pjmlp 7y agoYes, Graal is the evolution of Maxime, started by Sun Research Labs, which Oracle kept alive. All good alternatives to the JVM are commercial. The free ones are generally just repackaging Oracle's work on the OpenJDK, with zero contribution to Java's research and respective improvements. Hence why it is always ironic to see the crys to use OpenJDK and forget about Oracle.
- altfredd 7y ago> So how is this "JVM world" escaping the grip of Oracle? Why would you? What is the point of "escaping"? It is like asking, "how would Go world escape the grip of Google?" — no one cares to, because nobody asks Oracle for permission to make software for JVM. Java EE has been in maintenance mode for a long time, but Spring and Dropwizard are alive and well despite that. Incidentally, Nginx Unit has recently implemented Servlet spec — a cornerstone of JEE! — but they are stuck at it's initial version, without asynchronous Servlet support. Maybe Oracle should give Nginx a couple of decades to catch up before drafting next JEE version...
- gmueckl 7y agoOracle seems hell-bent on undoing the openness around Java that SUN was allowing. What I'm reading between the lines of this report from the Oracle-Eclipse negotiations is that Oracle wants to roll back the world to a "thou shall not have a JVM besides mine" state with a hefty price tag on commercial usage of their VM.
- Sindisil 7y agoI'm sorry, but as bad as Oracle's sales and legal behavior has been, I don't see how the evidence supports your claims. Oracle has open sourced (or deprecated and removed) the remaining commercial elements in the JDK -- OpenJDK now is truly the complete open reference implementation of the JDK, JRE, and JVM.
- bborud 7y agoReality is subjective and local. At any given time most developers will neither have much real choice when it comes to technology nor have a longer term perspective. Hence most developers will stick to what they know and what organizational inertia seems the path of least resistance. The comparison to COBOL is good for several reasons.
- heelix 7y agoMy first bit of production Java code was an applet that used cobra to talk with COBOL in the Java 1.0 days. When I'm bridging new languages to Java codebases, I always wonder if this is the 'new hotness' I'll be driving next.
- dtech 7y agoToo little too late, and I highly doubt that (5-year-old) Valhalla will deliver even one of the promised features (value types) in the next 3 years. Remember that the original plan was to have all Valhalla features in Java 10. Java/JVM was in the ideal position to dominate the software world for the whole 21th century 15 years ago. Instead they did an IE6 and stagnated for so long that their competitors became plain better. I'd say Java/JVM is now where IE was in 2008. Still massive majority market share, but in decline because people are switching to competitors. LLVM and webassembly are eating JVM's cake, and a multitude of languages like Kotlin, C#, Go, Rust and even Javascript and Python are chipping away at Java's market share.
- walkingolof 7y agoKotlin is a JVM language, sold as a better Java, and the JVM is really the thing that is the echo system gathers around, not necessarily the language Java. Other interesting languages you have on the JVM is Scala (multi-paradigm), Clojure (Lisp), EtaLang (Haskell) - https://eta-lang.org https://eta-lang.org - https://www.scala-lang.org https://www.scala-lang.org - https://kotlinlang.org https://kotlinlang.org - https://clojure.org https://clojure.org
- dtech 7y agoNotice how I separately addressed JVM and Java. Java is already losing market share to JVM competitor languages. JVM is in a stronger position than Java, but imagine a world were 15-10 years ago native compilation for JVM bytecode became available instead of 1 year ago. LLVM wouldn't have stood a chance. Kotlin and Scala (I'm not too familiar with Clojure and others) are hedging their bets and making JS/Webassembly and LLVM versions.
- pjmlp 7y agoJVM native compilation exists since 2000 for anyone willing to pay for it.
- aphexairlines 7y ago
- djvu9 7y agoJava the language is slightly different than JVM but nevertheless the future is not very bright IMO. So far there are a few areas Java/JVM still holds a strong position but if you take a look at GitHub trending there is little or now new blood coming in. - Android. No serious competitor to Java yet (JVM is irrelevant). But the Google lawsuit could have some complication. - Spring stuff. I won't be surprised if they will be replaced by golang and nodejs (along with react/angular/vue etc). Same path for RoR. - Data processing: Spark stuff, PrestoDB, Flink, Kafka, Hive, HBase, Lucene/Elastic etc. Java/JVM is still dominant but golang could be a future contender. A few new application databases/KV stores are implemented in golang. The problem for Java is that the last category is mostly services (instead of libraries/frameworks) so you can potentially use any language to work with them, and the industry probably won't create many jobs for building generic services especially in the cloud era. So having the dominance doesn't provide a lot of protection.
- bubblewrap 7y agoI've hated Java for years, but recently I think it has become usable again. I've looked at GoLang and Node, but I've kind of given up on them, too. GoLang I would consider for specific use cases. NodeJS just seems to insecure and "wild". Was hoping that Kotlin+Spring could be a good alternative to GoLang for realtime apps, but haven't tried it yet.
- stickfigure 7y agoGolang, at least in its current incarnation, has no chance of replacing Java in its core use case - business processing. Golang is replacing infrastructure that used to be written in C, which makes sense considering that's what it was designed for. It's weird that you put Spring and react/angular/vue in the same sentence, because there is no overlap in these problem domains.
- djvu9 7y agoJust take a look around to check out new enterprise MIS projects being implemented with a simple golang backend + reactjs etc frontend. The adoption of intereactive/responsive and single page web UI, and the more iterative development practices are certainly driving to a different direction compared to Spring (and RoR etc). I think the main force is from the frontend tech here and that is why you see them in the same sentence.