Java є мовою програмування з відкритим кодом?


78

Я знаю, що Python, Ruby, Perl - це все з відкритим кодом, але чи справді Java є мовою програмування з відкритим кодом?

Я також шукав у Google, але не знайшов належної відповіді.


2
Гарне питання. Чи є JVM відкритим вихідним кодом (гаряча точка) чи охолоджувачі, такі як компілятор javac, також є відкритим?
DC

1
OpenJDK охоплює інструменти, JVM, бібліотеки класів і, можливо, набагато більше.
Kevin Bourrillion

Кевін: Гарна думка. Моїм джерелом була Вікіпедія, але, схоже, ця інформація застаріла завдяки випуску JDK6. en.wikipedia.org/wiki/Java_(programming_language)#History
kusma

Голова-хончо OpenSource у Sun просто кинула. Зробіть з того, що хочете. theregister.co.uk/2010/03/09/simon_phipps_quits_sun_oracle
skaffman

FYI, альтернативною програмою Java з відкритим кодом є Apache Harmony. Однак розробку зупинено в 2011 р. Також див. En.wikipedia.org/wiki/Free_Java_implementations
ToolmakerSteve

Відповіді:


22

Так, або це врешті-решт буде (можливо, все-таки деякі речі, над якими вони працюють, замінюють, оскільки вони використовувались за ліцензією). Sun зобов'язується зробити його відкритим, і ви можете завантажити його з них. Перевірте OpenJDK .


9
Ця відповідь говорить про Розробник, питання задає мову.
Роб Оксспрінг

22
Ну, я не думаю, що насправді це має сенс, @Rob. Усі мови мають бути з відкритим кодом, оскільки вони вказані (джерелом є специфікації того, як все працює, наприклад, мова ISO C, є відкритим кодом через стандарт C99). Набагато більше сенсу говорити про вихідний код для реалізації мови, що є відкритим кодом. Якщо ви говорите про те, чи дозволяє мова введення спільноти щодо її еволюції, це може мати сенс, але, оскільки OP прийняв цю відповідь, я збираюся припустити, що моя інтерпретація була правильною :-)
paxdiablo

Випадок Oracle-Google з’ясовує, чи настільки відкриті API Java, що Google може скопіювати їх в Android.
Торбьорн Равн Андерсен

1
@RobOxspring: Для деяких мов "Набір для розробки" - це лише інструменти та доповнення, основна мова та її бібліотеки - це окрема сутність. Я думаю, це спочатку було справедливим і для Java. (Або, можливо, JDK включив його, але з обмежувальною ліцензією.) Втім, тепер, коли Sun зробив реліз із відкритим кодом, JDK ВКЛЮЧАЄ реалізацію бібліотек класу Java. Це можна побачити ПЕРЕГЛЯДОМ JDK. Наприклад, OpenJDK> jdk8 врешті переходить до src / share / classes / java / awt / Graphics2D.java, що є фактичним кодом Java для класу Graphics2D, у випуску 8.
ToolmakerSteve

83

Мова програмування не є власною програмою з відкритим кодом чи ні, але її реалізація може бути. Так, існують реалізації Java з відкритим кодом. Реалізація Java Sun (найпопулярніша) - одна з них.


1
Ну, поточний "JDK6" є "розкритим" джерелом (під JRL, JIUL та, мабуть, іншими). OpenJDK (6 відкритих та 7) є GPL (необов’язково за винятком CLASSPATH).
Том Хоутін - таклін

@Tom - Я думаю, ви втрачаєте суть - питання полягає в питанні про мову, а не про реалізацію чи реалізацію набору розробок.
Роб Оксспрінг

3
Для того, щоб бути технічно правильно, Sun випустила на реалізацію Java з відкритим вихідним кодом, як частина JDK. Існував також внутрішній Sun-код та інструменти, які ніколи не були відкритими. Тепер, коли Oracle володіє патентами та кодом Sun, ситуація стає більш темною: Oracle подала позов проти Google лише за використання API в Java. en.wikipedia.org/wiki/Oracle_v._Google Також розгляньте www.cnet.com/news/apache-foundation-quits-proprietary-java-process/ "Заявивши, що платформа повністю знаходиться під контролем Oracle, Apache Software Foundation звільняється з Виконавчий комітет процесу спільноти Java ". 10 грудня 2010 р.
Виробник інструментів,

виправлення: як частина "OpenJDK". Це відрізняється від оригінального Sun "JDK", який мав більш обмежувальне ліцензування. Дивіться openjdk.java.net для поточної версії та новин.
ToolmakerSteve

14

"Офіційна" реалізація мови SUN самою не є, але існує процес, керований спільнотою (не впевнений, наскільки добре він працює) для пропозицій щодо вдосконалення мови - Java Community Process . Існують також відкриті реалізації засобів розробки Java та середовища виконання, такі як OpenJDK .


Можливо, ви захочете пояснити, що ви маєте на увазі під чиновником. Sun саме рухає зусиллями OpenJDK, хоча, чи продовжуватиметься це під Oracle, я не знаю.
paxdiablo

8

Поки що це не так , але незабаром вона скоро почне працювати з відкритим кодом.

джерело:


Цитування з https://blogs.oracle.com/java-platform-group/faster-and-easier-use-and-redistribution-of-java-se :

  • Oracle пропонує збільшити частоту випуску Java SE до кожних шести місяців
  • Oracle спростить, як розробники, клієнти та споживачі використовують Java SE
  • Починаючи з JDK 9 GA, Oracle планує поставляти збірки OpenJDK під GPL
  • Oracle запропонувала модель випуску, керовану часом, для Java SE замість історичної моделі, керованої функціями
  • Oracle JDK внесе в OpenJDK комерційні функції, такі як Java Flight Recorder
  • Oracle співпрацюватиме з іншими учасниками OpenJDK, щоб зробити інфраструктуру спільноти повноцінною, сучасною та доступною
  • Oracle JDK продовжуватиме працювати як комерційна довгострокова підтримка
  • Oracle JDK в першу чергу буде призначений для комерційних та підтримуючих клієнтів, як тільки бінарні файли OpenJDK стануть взаємозамінними з Oracle JDK (цільовий кінець 2018 року). Oracle продовжить вдосконалювати упаковку та розповсюдження готових до запуску програм

Ми перемістили Java EE на: http://openjdk.java.net/projects/jdk9/spec/

Далі читається:

  1. https://blogs.oracle.com/theaquarium/opening-up-ee-update
  2. https://blogs.oracle.com/java-platform-group/java-se-offerings
  3. https://blogs.oracle.com/java/java-9-release-now-available
  4. https://blogs.oracle.com/java-platform-group/convergence-of-oracle-java-se-embedded-with-oracle-jdk

5

Фраза "Мова програмування Java" стосується специфікації, наданої Sun (тепер оракул). Sun забезпечує довідкову реалізацію Java Virtual Machine та Java Compiler. Обидва вони не є відкритими (принаймні, не повністю, як, наприклад, Python).

Однак OpenJDK, наприклад, є повною реалізацією мови програмування JAVA з відкритим кодом. Може бути і більше.

Більшість програмістів розглядають Java як мову програмування, що надається Sun. Я думаю, що Sun забезпечує лише те, що реалізацію специфікації мови може виконувати будь-хто на будь-якій ліцензії.


3

Від Oracle America Inc проти Google LLC № 3: 10-cv-03561-WHA:

"... У цьому зверненні йдеться про 37 пакетів API з Java SE версії 1.4 та версії 5.0. Ми вже дійшли висновку, що код декларування та єдиний запит щодо 37 Java Java-пакетів, про які йде мова, мають право на захист авторських прав. Oracle, 750 F.3d на 1348. Сама мова програмування Java є безкоштовною і доступна для використання без дозволу. На цьому етапі безперечно, щоб писати мовою програмування Java, „62 класи (та деякі їх методи), розподілені по повинні бути використані три пакети в бібліотеці Java API. Інакше мова не вдасться. " Замовлення заборони JMOL, 2016 WL 3181206, на * 5. Також беззаперечно, що кожен, хто використовує мову програмування Java, може написати власну бібліотеку попередньо написаних програм для виконання різних функцій. Хоча Oracle робить платформу Java вільно доступною для програмістів, що створюють додатки ("програми"), вона розробила схему ліцензування для залучення програмістів, одночасно комерціалізуючи платформу. У відповідній частині Oracle стягує плату за ліцензування з тих, хто хоче використовувати API на конкуруючій платформі або вбудувати їх в електронний пристрій. Щоб зберегти філософію "один раз пиши, будь-де", Oracle встановлює жорсткі вимоги щодо сумісності для ліцензіатів. Oracle, 750 F.3d, 1350. Oracle також безкоштовно надав версію Java під назвою “OpenJDK” за ліцензією з відкритим кодом. Замовлення заборони JMOL, 2016 WL 3181206, на * 10. Однак Oracle стверджує, що OpenJDK поставив важливий злочин: будь-яка компанія, яка вдосконалила пакети в OpenJDK, повинна була "безкоштовно віддавати ці зміни" спільноті Java. ”Апелянт Бр. 53. Докази показують, що Oracle ліцензувала Java до 700 мільйонів ПК до 2005 року. Хоча Oracle ніколи успішно не розробляла власну платформу для смартфонів з використанням Java, вона ліцензувала Java SE для мобільних пристроїв. За словами Oracle, „ринок мобільних пристроїв був особливо прибутковим”, і ORACLE AMERICA, INC. Проти GOOGLE LLC 10 „Java швидко стала провідною платформою для розробки та запуску додатків на мобільних телефонах”. Апелянт Бр. 9. ... " GOOGLE LLC 10 «Java швидко стала провідною платформою для розробки та запуску програм на мобільних телефонах». Апелянт Бр. 9. ... " GOOGLE LLC 10 «Java швидко стала провідною платформою для розробки та запуску програм на мобільних телефонах». Апелянт Бр. 9. ... "

Частини мови підлягають сплаті ліцензійних платежів, тому ці розділи не видаються "відкритими" ...


1

Більшість "Java" є відкритим кодом, є кілька невеликих частин, які Sun не має права відкривати ... для отримання додаткової інформації відвідайте сайт OpenJDK


1

OpenJDK після того, як ви завантажите його в папку src, у вас є windows, solaris, share, linux у спільній папці, ви можете знайти класи. Там ви можете побачити вихідний код усіх класів (наприклад, JButton).


1

13 листопада 2006 року компанія Sun випустила більшу частину Java як вільне програмне забезпечення з відкритим кодом (FOSS) на умовах Загальної публічної ліцензії GNU (GPL). 8 травня 2007 року Sun завершив процес, зробивши весь основний код Java доступним за умовами вільного програмного забезпечення / розповсюдження з відкритим кодом, окрім невеликої частини коду, на яку Sun не мав авторських прав.

OpenJDK (Open Java Development Kit) - це безкоштовна реалізація мови програмування Java з відкритим кодом. Це результат зусиль Sun Microsystems, розпочатих у 2006 році. Реалізація ліцензована під загальною публічною ліцензією GNU (GNU GPL) за винятком посилання.

Чому досі існують люди, які кажуть, що Java не є відкритим або вільним, як у вільному слові?


3
Тому що зараз це належить Oracle.
Kshitiz Sharma

1
Оскільки ви отримуєте позов від Oracle під час його використання, як тільки ви починаєте заробляти багато грошей. З іншими "явно вільними" мовами не так.
b264

1

Мова Java з відкритим вихідним кодом, є кілька сегментів, які Sun не має права відкривати ... перевірте наявність OpenJDK


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.