====== Java's Language Downfalls ====== As free software activists, we all enjoy using the latest and greatest in free software, but we need to make sure that the software we are using **really does respect our freedom**. A lot of software relies and **depends on Java**, since it appears to be fully free software, nontheless we have many concerns with **implementation** and **decisions** made by authors of this language. ===== What are the issues? ===== Firstly the **OpenJDK** trademark policy is problematic. Their trademark license **imposes restrictions** for the **redistribution of modified versions** that making it inconvenient to exercise [[https://www.gnu.org/philosophy/free-sw.html|freedom 3]]. The [[https://openjdk.java.net/legal/openjdk-trademark-notice.html|OpenJDK Trademark]] says **"changes required", "so long as that work takes place in the context of an approved Project hosted in the OpenJDK Community"**. Therefore everything by Java project (OpenJDK and JVM) can't be **patched and/or modified** without **approval** by the "community". Secondly, on what comes to security, Java has been one of the most common **infection vectors** for UNIX-based systems. Poor **coding practices in JVM** have resulted in many popular [[https://www.cvedetails.com/cve/CVE-2011-3544/|cross-platform exploits]]. And lastly, current or previously used packaging-scripts are not very trustworthy, in the sense that they download various **pre-compiled and pre-packaged binaries**, which obviously goes against our ideals and our [[en:project:social_contract|social contract]]. These are a risk to our users. To properly build them requires several hundred additional PKGBUILDs and the time to rebuild Java from scratch. For further references, [[https://en.wikipedia.org/wiki/Criticism_of_Java|criticism to the language itself]] as well has [[https://en.wikipedia.org/wiki/Java_security|criticism to repeated security vunerabilities]]. ===== Solutions ===== There are no real further solutions as **Java is a clearly trademark-protected language**. It will always come towards a conflict with the persons / organizations owning the trademark and rights. And a so-called "clean room" implementation is not in reach besides Java itself has a field full with more complexity. Hyperbola has chosen to keep Java and OpenJDK complete outside of the system, with all affected dependencies and packages.