5 ms·
If you follow Java & ecosystem at least a bit you needed to read one or two blog posts from reputable community members to figure out what the situation is and
by frant-hartm 5y ago
If you follow Java & ecosystem at least a bit you needed to read one or two blog posts from reputable community members to figure out what the situation is and what to use.
To compare I find a licensing situation on mid-size (50+ direct dependencies) or larger project much harder to comprehend - you need to figure out what licenses are used, if they can be used at all due to the requirements and company's policy, if they are compatible with each other and what's required for distribution.
- tyingq 5y agoIt is confusing from the outside though, trying to decide if you should use Java from your distro, from Oracle, Azul, Amazon Corretto, AdoptOpenJDK, Eclipse Temurin, or Red Hat OpenJDK. Which ones have might have builds for your various platforms, what support they might offer, how closely they track OpenJDK, etc. One good example is what is meant by "LTS". You get different answers to that question depending on which JDK it is.[1] I don't remember another language where it was ever this confusing. [1] More detail: https://www.javacodegeeks.com/2019/07/long-term-support-mean-openjdk.html https://www.javacodegeeks.com/2019/07/long-term-support-mean...
- listenallyall 5y agoI mean, just picking the best Linux distro for you or your company's particular use case is more confusing than this.
- tyingq 5y agoLinux was like that almost from day one, so it's expected. It's much less expected for a language.
- listenallyall 5y agoThe JVM isn't a language. Kotlin, Scala, Clojure, and Java are languages. I'm quite pleased there are an abundance of options when picking a runtime. Yes, Oracle has not been a good steward, so having numerous open and free alternatives is a positive thing.
- tyingq 5y agoThat's true, but a little pedantic. If you look at it from the lens of "I've picked a language (java), now I need to build and run/deploy things", it's a confusing ecosystem. There's good arguments for why things are the way they are. But there's not really a good argument that it's straightforward and simple.
- listenallyall 5y agoYou are not making a coherent argument. Once you have decided you're building your server app in Java, it is MORE difficult to evaluate and decide Ubuntu, Debian, Red Hat, CentOS, etc. than it is to pick a runtime. Whether it has been like that "from day one" to use your term, is irrelevant. Secondly, having choice is GOOD. Yes it adds a bit of confusion but I'd rather have options than not. If you want some overriding authority to make all the decisions for you, go build on iOS.
- tyingq 5y agoWhy is the comparison to operating systems and not other development languages?
- listenallyall 5y agoLol, you just can't leave this alone. Choosing a JVM is about 99% less confusing than the last 20 years of .NET Framework/Core/Mono mess and all its sub-projects (ASP.NET, Silverlight, WinFX, etc). At least in Java if you target v.11 you know to install JDK 11 (or higher). Meanwhile if you write C# v8 you need .NET Framework 4.8 to run it. Or maybe .NET Core 3 - which is now called .NET 5. Then over in Python land you've got IronPython, Jython, Pypy, plus the need to keep v2 as "python" on most Linux'es and "python3" for running/building new stuff. Don't forget virtual environments so you can pip install one version of a certain package while keeping it separate from a different installed version of that same package elsewhere. Java is super simple by comparison. https://stackoverflow.com/a/38506668 https://stackoverflow.com/a/38506668 https://docs.microsoft.com/en-us/dotnet/core/dotnet-five https://docs.microsoft.com/en-us/dotnet/core/dotnet-five
- didibus 5y agoMost other languages don't offer long term support. You can't run an old version of Python and continue to get security and performance backported fixes. Same thing with GO or Ruby or Swift. I can't remember what Microsoft does for .Net, but I suspect you also need to always be on the newest CLR to get updates. I think this is one of the major differences with the JVM, in a way, it has more options and vendors which should be a good thing, but it seems to mostly confuse people.
- davey48016 5y agohttps://dotnet.microsoft.com/platform/support/policy/dotnet-core https://dotnet.microsoft.com/platform/support/policy/dotnet-... Dotnet LTS versions have three years of support. LTS versions come out every two years, so there is a year of overlap. The non-LTS (which they call Current) have 18 months of support.