Является ли Java свободным /открытым исходным кодом или нет?
13 ноября 2006 года Sun выпустила большую часть Java в качестве бесплатного программного обеспечения с открытым исходным кодом (FOSS) в соответствии с GNU General Public License (GPL). 8 мая 2007 года Sun завершила процесс, сделав весь базовый код Java доступным по свободному программному обеспечению /с открытым исходным кодом , за исключением небольшой части кода, на которую Sun не обладала авторскими правами .
OpenJDK (Open Java Development Kit) представляет собой бесплатную реализацию языка программирования Java с открытым исходным кодом. Это результат усилий Sun Microsystems, которые начались в 2006 году. Реализация лицензируется в соответствии с GNU General Public License (GNU GPL) со ссылкой на исключение.
- Почему все еще есть люди, которые говорят, что Java не является открытым исходным кодом или свободным, как в свободной речи?
- Я что-то упустил?
- Является ли Java еще собственностью?
3 ответа
Проблема в том, что для того, чтобы называть что-то «Java», вам нужно получить сертификат, соответствующий спецификации Java.
Одним из предварительных условий получения этого сертификата является запуск JVM через набор тестов - Java Набор совместимости технологий (TCK ) . Этот набор тестов НЕ открыт.
Итак, вы можете создать JVM, который ведет себя очень похожим на Java, и быть полностью открытым исходным кодом, но если вы хотите называть его «Java JVM», вам нужно купить комплект сертификации по лицензии с открытым исходным кодом. Для многих сторонников с открытым исходным кодом это полный не стартер.
Вам следует прочитать этот ответ , прежде чем он будет удален, о том, какой из них использовать. В главном ответе говорилось:
О Java 7 обратите внимание, что JDK7 и OpenJDK7 будут иметь ( почти ) идентичную базу кода.
Обратите внимание на выделенную почти .
Из статьи, связанной с этим ответом:
[...], но есть код, в котором есть замены с открытым исходным кодом, где мы по-прежнему используем старый закрытый исходный код. Это прежде всего в растеризации шрифтов и графики. Старый код растеризатора с закрытым исходным кодом, будучи обремененным, имел более 10 лет исправления ошибок и точной настройки и т. Д., И для любой замены с открытым исходным кодом, чтобы сместить этот код в продуктовых сборках JDK, он должен быть достаточно быстрым и стабильным и хорошее качество, как существующий закрытый код.
Кроме того, из ЧаВо Java
Java Development Kit (JDK) доступен для загрузки и использования для коммерческого программирования, но не для повторного распространения .
Итак, не с открытым исходным кодом . Почти.
Кроме того, даже если он был полностью открытым исходным кодом, модель разработки и управление не будут. Однако это не проблема лицензирования.
В 1997 году Sun Microsystems обратилась к ECMA с просьбой оформить Java, но вскоре отказалась от этого процесса. Стандарт Java фактически контролируется через процесс сообщества Java .
Хотя в 2006 году большая часть Java была выпущена Sun Microsystems в соответствии с условиями GPL, но текущая официальная реализация принадлежит Oracle.
Поскольку Java не имеет никакой официальной стандартизации, признанной ECMA, ISO /IEC, ANSI или другой сторонней организацией по стандартизации, реализация Oracle является стандартом defacto. Однако существуют альтернативные реализации, такие как GNU Compiler for Java, GNU Classpath, IcedTea-Web и т. Д.