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 tergantungTask<T>
. TheTask
kelas hanya terjadi untuk memenuhi hal-hal yangawait
kunci tidak tergantung pada (metode yang disebutGetAwaiter()
dll).yield
dan IEnumerator atau sesuatu; sangat bersemangat untukawait
.Jawaban:
Per Wikipedia , versi Java resmi pertama yang dirilis adalah 1.0.2, pada 23 Januari 1996.
Ada arsip Java 1.0.2 dan semua dokumentasi terkait di sini :
Ada tampaknya menjadi download JDK 1.0.2 bit disini
http://www.pascal-man.com/download/download-jdk.shtml
Ini bekerja untuk saya pada saat penulisan.
DILAKUKAN KEKUATAN BERSERIKAT DARI JAWA 1.0.2
Dalam spec bahasa, kelas-kelas berikut ini dirujuk (kutipan tunggal, bukan kutipan lengkap):
[I
,, dan sebagainya (bagian 10.8 )... di mana titik saya berhenti mencari karena, secara teknis ,
[I
, et. Al. tidak dalamjava.lang
,java.util
ataujava.io
paket.Contoh:
Keluaran
Perilaku konsisten antara modern dan 1.0.2
sumber
Ada kurang dari selusin paket di JDK asli - ini ditambah applet, awt, awt.peer. Itu mungkin saja! Sangat mungkin - 99% pasti - bahwa ketiga paket ini termasuk semua kelas yang secara eksplisit diketahui oleh JVM inti itu sendiri, dan bahwa tidak ada kelas di luar paket ini yang disebutkan dalam spesifikasi bahasa.
sumber
java.net juga di antara paket-paket pertama yang tersedia dan itu sangat bagus sejak awal, terutama dengan fasilitas threading (sekarang model Thread nampak ketinggalan zaman dibandingkan dengan apa yang Anda miliki dalam bahasa yang lebih baru tetapi sangat bagus kemudian).
Saya ingat pernah membuat kode browser web (sangat tidak lengkap, bahkan dibandingkan dengan apa yang ada pada saat itu) untuk mempelajari 1.02 yang baru diterbitkan dan, setelah itu, server aplikasi web lengkap (masih digunakan dalam industri). Itu jauh sebelum api servlet dan semua orang diyakinkan bahwa Anda harus menggunakan kerangka kerja yang berat untuk membuat aplikasi http yang cepat dan andal di java.
Dengan java.net (dan GC, dan Threads, dan pengecualian dan java.util) java terikat menjadi sisi server teknologi utama (di sisi yang berlawanan, java.applet terasa menyakitkan sejak hari pertama ...)
sumber
Java 1.0 memiliki tepat enam paket tingkat atas: java.applet, java.awt (dengan subpackages java.awt.image dan java.awt.peer), java.io, java.lang, java.net, dan java.util. Itu dia. Sumber: Patrick Chan, Java Developers Almanac 1998
sumber