Membaca tentang kasus Google v Oracle, saya menemukan pertanyaan-pertanyaan ini (tampaknya dari Hakim ketua)
...
Apakah disetujui bahwa yang berikut ini benar, setidaknya pada tahun 1996?Berikut ini adalah inti Java Application Programming Interface: java.lang, java.util dan java.io.
Apakah bahasa pemrograman Java merujuk atau memerlukan metode, kelas atau paket di luar ketiga di atas?
...
sumber: Groklaw
Jelas ada banyak konsekuensi hukum, Google dan Oracle mungkin tidak setuju dalam beberapa hal, dan saya tidak peduli . Serahkan hukum kepada pengacara.
Namun, saya curiga ada sedikit sejarah yang menarik di sini.
Pertanyaan saya adalah (sebagai seseorang yang pertama kali melakukan setiap Java coding sekitar tahun 2001 di versi 1.3), di versi 1.0 dari Jawa apa pun yang diperlukan di luar java.lang
, java.util
dan java.io
untuk mengkompilasi program Java valid?
Sebagai contoh (menggunakan C # 5.0), await
kata kunci tergantung (antara lain). Kompiler tidak dapat berfungsi untuk spec tanpa kelas itu.Task<T>
GetAwaiter()
Setara, apakah ada fitur runtime inti (seperti ClassLoader *) yang tergantung pada paket lain?
Saya akui saya bertanya karena penasaran, persis apa yang diperlukan untuk Java yang layak minimum (bahasa, mengabaikan semua bit hukum di sekitarnya) menarik.
* Saya mengasumsikan bahwa ClassLoader bahkan adalah fitur di Java 1.0, itu bagian dari spesifikasi di 7.0 dan mungkin banyak versi sebelumnya.
await
kata kunci tidak tergantung Task<T>
. The Task
kelas hanya terjadi untuk memenuhi hal-hal yang await
kunci tidak tergantung pada (metode yang disebut GetAwaiter()
dll).
yield
dan IEnumerator atau sesuatu; sangat bersemangat untuk await
.