Als ich über den Fall Google v Oracle las, stieß ich auf diese Fragen (anscheinend vom Vorsitzenden Richter)
...
Ist man sich einig, dass zumindest ab 1996 Folgendes zutrifft?Die folgenden waren die Hauptschnittstelle für die Java-Anwendungsprogrammierung: java.lang, java.util und java.io.
Bezieht sich die Java-Programmiersprache auf eine Methode, Klasse oder ein Paket außerhalb der drei oben genannten?
...
Quelle: Groklaw
Es gibt offensichtlich viele rechtliche Konsequenzen, Google und Oracle sind sich in einigen Punkten wahrscheinlich nicht einig, und es ist mir egal . Überlassen Sie das Gesetz den Anwälten.
Ich vermute jedoch, dass es hier ein interessantes Stück Geschichte gibt.
Meine Frage ist (als jemand, der zum ersten Mal eine Java-Codierung um 2001 in Version 1.3 durchgeführt hat), ob in Version 1.0 von Java irgendetwas außerhalb von erforderlich java.lang
war java.util
, und java.io
um ein gültiges Java-Programm zu kompilieren?
Als Beispiel (unter Verwendung von C # 5.0) ist das await
Schlüsselwort (unter anderem) abhängig von . Der Compiler könnte ohne diese Klasse nicht funktionieren.Task<T>
GetAwaiter()
Gab es auch Kernfunktionen zur Laufzeit (wie ClassLoader *), die von anderen Paketen abhängig waren?
Ich gebe zu, ich frage aus Neugier, was genau für ein Minimum an Java (die Sprache, die alle rechtlichen Aspekte ignoriert) von Interesse ist.
* Ich gehe davon aus, dass ClassLoader sogar ein Feature in Java 1.0 war, es ist Teil der Spezifikation in 7.0 und vermutlich in vielen früheren Versionen.
await
Schlüsselwort hängt nicht davon abTask<T>
. DieTask
Klasse passiert einfach , die Dinge zu überzeugen , dass dasawait
Schlüsselwort nicht davon ab , (eine Methode namensGetAwaiter()
usw.).yield
und IEnumerator oder so gegangen sein ; einfach so aufgeregtawait
.Antworten:
Per Wikipedia war die erste offiziell veröffentlichte Version von Java 1.0.2 am 23. Januar 1996.
Es gibt ein Archiv von Java 1.0.2 und alle zugehörigen Dokumentationen hier :
Hier scheint es einen Download der JDK 1.0.2-Bits zu geben
http://www.pascal-man.com/download/download-jdk.shtml
Es funktioniert bei mir zum Zeitpunkt des Schreibens.
BEACHTEN SIE DIE ROHE UNBEFEHLTE KRAFT VON JAVA 1.0.2
In der Sprachspezifikation wird auf die folgenden Klassen verwiesen (Einzelzitate, keine erschöpfenden Zitate):
[I
usw. (Abschnitt 10.8 )... an welcher Stelle ich aufgehört suchen , weil, technisch ,
[I
et. al. ist nicht in denjava.lang
,java.util
oderjava.io
Paketen.Beispiel:
Ausgänge
Das Verhalten ist konsistent zwischen modern und 1.0.2
quelle
Es gab weniger als ein Dutzend Pakete im ursprünglichen JDK - diese plus Applet, awt, awt.peer. Das könnte es gewesen sein! Es ist absolut wahrscheinlich - zu 99% sicher -, dass diese drei Pakete alle Klassen enthielten, die der zentralen JVM selbst explizit bekannt waren, und dass es keine Klassen außerhalb dieser Pakete gab, die in der Sprachspezifikation erwähnt wurden.
quelle
java.net gehörte auch zu den ersten verfügbaren Paketen und war von Anfang an großartig, insbesondere mit der Threading-Funktion (jetzt scheint das Thread-Modell veraltet zu sein, verglichen mit dem, was Sie in neueren Sprachen haben, aber es war großartig).
Ich erinnere mich, dass ich einen Webbrowser codiert hatte (sehr unvollständig, selbst im Vergleich zu dem, was zu der Zeit existierte), um den frisch veröffentlichten 1.02 und kurz darauf einen kompletten Webanwendungsserver (der noch in der Industrie verwendet wird) zu erlernen. Das war lange bevor die Servlet-API und alle davon überzeugt waren, dass Sie schwere Frameworks verwenden müssen, um schnelle und zuverlässige http-Anwendungen in Java zu erstellen.
Mit java.net (und dem GC und Threads und Exceptions und java.util) war Java zwangsläufig eine wichtige Technologieserverseite (auf der anderen Seite war java.applet seit dem ersten Tag schmerzhaft ...).
quelle
Java 1.0 hatte genau sechs Pakete der obersten Ebene: java.applet, java.awt (mit den Unterpaketen java.awt.image und java.awt.peer), java.io, java.lang, java.net und java.util. Das ist es. Quelle: Patrick Chan, Java-Entwickler-Almanach 1998
quelle