Instead, developers want to abandon the JVM platform. They actively seek new platforms and create them.
The damage is done.
Instead, developers want to abandon the JVM platform. They actively seek new platforms and create them.
The damage is done.
Brian goes about how important compatibility is for the language, the concept not throwing customers code under the bus by bringing breaking incompatibilities. (ie Python 2 --> 3)
Java has its warts and isn't "cool" but I respect their design decisions.
Went there and found a single, totally obvious button labeled "Free Java Download" that detects your browser and Operating System and makes sure you download the proper version of the JVM.
How much easier could it be?
You cannot redistribute the installer or the installed files. Except other things it means, you cannot make a docker image with java app and redistribute it. Everyone has to download their own java installer and build images themselves.
Java (openJDK) is GPL licenced.
Plenty of software comes with Java embedded - ie. IntelliJ Idea. Last time I installed Java was on a digital ocean remote box and I did it through apt-get.
Java may have some licensing that cause some open source system distributions not to include it but that is really their game.
most applications put "oracle jre" in their dependencies though.
===============
Even if you are Day One brand-new to Java, page #1 in any book will tell you to download a Java Development Kit (JDK). Any Google search would take you straight to the download page for Oracle's implementation, which is fine.
The Oracle JDK does not include any "toolbar" malware. That's only an issue for the Oracle JRE download (i.e. the runtime without any compiler)... which page #1 in book will tell you not to bother downloading ever.
The JDK is open-source, based on the "OpenJDK" codebase (much like the difference between Chrome and Chromium). Oracle's binary build has some restrictions on redistribution (see below), but there are numerous other OpenJDK builds. Every Linux distribution has one, as does homebrew for OS X, and there are at least two for Windows:
http://www.azul.com/downloads/zulu/
http://developers.redhat.com/products/openjdk/overview/
In the past, there were enough differences between the base OpenJDK and Oracle's build that people were wary of using OpenJDK. As of Java 7, and especially now with Java 8, those differences are nearly zero.
REDISTRIBUTION
==============
You absolutely CAN redistribute Java. OpenJDK builds have no restrictions whatsoever. Oracle's proprietary runtime binaries are also redistributable, with the only real restriction being that you can't exclude certain files (i.e. they don't want crippled Oracle runtimes floating around that can't run core Java):
http://www.oracle.com/technetwork/java/javase/jdk-8-readme-2...
Not only are you allowed to redistribute even Oracle's binaries, but the latest JDK includes a "javapackager" utility. It bundles up your code, along with a stripped-down embedded runtime, with an executable wrapper so that you can distribute your app as a zero-dependency standalone (on Windows, OS X, or Linux). Interestingly, I've found that creating an installer for a JavaFX GUI application, with the runtime included, is slightly smaller than the installer for a similar GitHub Electron based app.
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/j...
OpenJDK is in Debian main, and does not require user interaction.
This is only true for Oracle Java, which is basically OpenJDK and some dev tools. OpenJDK is basically all you need and you can redistribute it or docker images with it. See http://zulu.org/
This has not been my experience at all. Java's ecosystem and vast libraries of battle tested software is unmatched on any platform.
2. What .NET open source community? I'm not aware of single significant open-source community project in that ecosystem that isn't a lagging imitation of something from the Java community (e.g. Akka.NET, MassTransit, etc). There's a lot of excitement around VS Code, and the possibilities of future stuff on .NET Core, but chatter on HN and Reddit isn't the same as actual shipped code.
3. If by "ecosystem" you mean web forums filled with college students chatting about it, then fine. But I think for most people, "ecosystem" refers to the availability of production-grade libraries and infrastructure components. Try naming one server-side niche in which Maven Centrals lags behind any other language in existence.
That being said IBM is working on open-sourcing their core JVM technology to act as platform, not just for Java but other runtimes as well. [1]
There is hope still...
[1]http://www.infoworld.com/article/3014128/open-source-tools/i...