Java ücretsiz / açık kaynaklı mı değil mi?


33

13 Kasım 2006'da Sun, GNU Genel Kamu Lisansı (GPL) şartları altında, Java'nın özgür ve açık kaynak yazılımı (FOSS) olarak çoğunu piyasaya sürdü. Sun, 8 Mayıs 2007'de Sun'ın telif hakkına sahip olmadığı kodun küçük bir kısmının yanı sıra , Java'nın tüm temel kodunu ücretsiz yazılım / açık kaynak dağıtım koşulları altında kullanıma sunan, tamamladı .

OpenJDK (Open Java Development Kit), Java programlama dilinin ücretsiz ve açık kaynaklı bir uygulamasıdır. Bu, Sun Microsystems’ın 2006’da başladığı çabanın bir sonucudur. Uygulamaya, GNU Genel Kamu Lisansı (GNU GPL) altında bağlantı istisnası ile lisans verilmiştir.

  • Neden hala Java’nın açık kaynaklı veya ücretsiz konuşmada özgür olmadığını söyleyen insanlar var?
  • Bir şey mi kaçırıyorum?
  • Java hala özel mi?


Yalnızca Sun JVM uygulamasının veya teknolojinin (bytecode) ne zaman korunduğunu tam olarak bilmiyorum, ancak tüm çekirdek lib'ler (java.xy) ücretsizdir. Bu nedenle, herhangi biri farklı bir bytecode özelliği ve VM oluşturursa, mevcut kütüphaneleri ücretsiz kullanmalıdır. Hata! Google, Dalvik ile birlikte yaptı!
ern0

Yanıtlar:


37

Sorun şu ki, bir şeyi "Java" olarak adlandırmak için onu Java spesifikasyonuna uygun olarak sertifikalandırmanız gerekir.

Bu sertifikayı almanın ön koşullarından biri, JVM'yi bir test paketi - Java Teknoloji Uyumluluk Kiti (TCK) aracılığıyla çalıştırmaktır . Bu test paketi açık kaynaklı DEĞİLDİR.

Böylece Java gibi davranan bir JVM oluşturabilir ve tamamen açık kaynak olabilirsiniz, ancak bir "Java JVM" olarak adlandırmak istiyorsanız, sertifikasyon paketini açık kaynak olmayan bir lisans altında satın almanız gerekir. Birçok açık kaynak savunucusu için bu tam bir başlangıç ​​değildir.


7
Bu, Apache Harmony’in (oldukça eksiksiz ve bağımsız bir JVM uygulamasıydı) durdurulmasının nedenlerinden biri . Sun / Oracle'ın bu şekilde davranması (ve hala bu şekilde davranması) çok yazık. Google’ın yaptığı ("neredeyse kopya" Java’sı) muhtemelen bunun da doğrudan bir sonucudur.
Joachim Sauer

1
Ayrıca, test paketi Java Platformu TCK (Java ile ilgili teknolojilere diğer TCKs sıra vardır).
Joachim Sauer

4
Ayrıca, başarılı bir JVM inşa ederseniz, Oracle sizi telif hakkı ihlali ve patent ihlali nedeniyle dava edebilir . Android üzerinden Google'a dava açtıkları gibi.
MarkJ

2
Adlandırma yasası bir şeyi açık kaynak olarak adlandırmakla mı ilgili? Kendi tarayıcımı oluşturamam ve onu firefox olarak da adlandıramam. Sanırım ilk soru onu anlamak ... "Java" terimiyle ne demek istediğini, jvm uygulamasını ve kim olduğunu "açık olmayan" olarak nitelendiriyor ...
johannes

@johannes - Kaynakların ve nitpickerların kaynağını açmak için hoş geldiniz! Açık kaynak topluluğundaki birçok kişi için bu ayrım önemlidir. Harmony projesini terk ederken Apaches'in Şahitleri. Java Uygulamalı bir ortama sahip daha pratik bir bükülme olan diğerlerine göre, tüm Android cihazların kalbindeki Dalvik VM gibi "yeterince iyi" olur.
James Anderson

15

Bu cevabı hangisinin kullanılacağına ilişkin bir açıklama çıkarılmadan önce okumalısınız . Belirtilen ana cevap:

Java 7 hakkında, JDK7 ve OpenJDK7'nin ( neredeyse ) aynı kod tabanına sahip olacağını unutmayın .

Uyarı neredeyse ben vurguladı.

Bu cevapla bağlantılı yazıdan:

[…] Ancak eski kapalı kaynak kodunu kullandığımız açık kaynak değişimlerinin olduğu bazı kodlar var. Bu öncelikle yazı tipi ve grafik rasterleştirmesindedir. Eski kapalı kaynak rasterleştirme kodu, gizlenirken, 10 yıldan fazla bir süredir hata düzeltme ve ince ayar işlemlerine sahipti ve bu kodun, üretilen JDK içindeki kodun yerini alacak herhangi bir açık kaynak değişiminin, hızlı ve kararlı olması gerekirdi. mevcut kapalı kod olarak kaliteli.

Ayrıca, Java SSS’sinden :

Java Development Kit'i (JDK) indirmek ve ticari programlama için kullanmak ücretsizdir , ancak yeniden dağıtmaz .

Yani, açık kaynak değil . Neredeyse

Ayrıca, tamamen açık bir kaynak olsa bile, kalkınma modeli ve yönetişim olmazdı. Ancak bu bir lisans kaygısı değildir.


1
"indirmek ve kullanmak ücretsizdir ancak yeniden dağıtılmaz", yazılımın "özgür olmayan yazılım" olduğu anlamına gelir, ancak yine de "açık kaynak" olabilir. Açık kaynak, sadece kaynak koduna erişiminiz olduğunu gösterir. Özgür yazılım (FSF ve diğerleri tarafından tanımlandığı gibi) da yeniden dağıtım hakkını gerektirir.
12'de CVn 9

6
@ MichaelKjörling OSI tanımı kesinlikle yeniden dağıtım haklarını gerektirir.
luiscubal

1

1997'de Sun Microsystems, ECMA'ya Java'yı resmileştirmek için yaklaştı ancak kısa sürede süreçten çekildi. Java standardı aslında Java Topluluk Süreci ile kontrol edilir .

2006’da Java’nın çoğu Sun Microsystems tarafından GPL’nin şartları altında yayınlandı, ancak mevcut resmi uygulama Oracle’a aitti.

Java, ECMA, ISO / IEC, ANSI veya diğer üçüncü taraf standartlar organizasyonu tarafından tanınan resmi bir standardizasyondan yoksun olduğundan, Oracle uygulaması varsayılan olmayan standarttır. Ancak, Java için GNU Derleyici, GNU Classpath, IcedTea-Web, vb. Gibi alternatif uygulamalar vardır.


7
-1: Java 7'den bu yana, resmi referans uygulaması GPL'nin OpenJDK'sidir.
Michael Borgwardt,

2
Yukarıda belirtildiği gibi Java hakkında konuşun, alacağınız -1 :( OpenJDK Java.com üzerinde açık kaynak ama uygulamasıdır BCL vardır burada . Birincisi, Apache Harmony vs politikamız hiçbir değişiklik yoktur. OCTLA ücretsiz sağlayan bir programdır GPL kapsamında lisanslı ve OpenJDK kaynaklı uygulamalar için TCK'ya erişim ve yalnızca bu amaç için amaçlanmıştır İkinci olarak, Oracle uygulaması (java.com veya java.oracle.com adresinde bulduklarınız) yalnızca BCL lisansı altında kalacaktır. Tamamen açık olmak gerekirse, OpenJDK kaynak kodu GPL altında kalmaya devam ediyor
Sajad Deyargaroo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.