Читая о деле Google v Oracle, я столкнулся с этими вопросами (по-видимому, от председательствующего судьи)
...
Согласны ли, что верно следующее, по крайней мере, с 1996 года?Ниже перечислены основные интерфейсы программирования приложений Java: java.lang, java.util и java.io.
Относится ли язык программирования Java к каким-либо методам, классам или пакетам, кроме указанных выше, или требует ли он их?
...
источник: Groklaw
Очевидно, есть много юридических последствий, Google и Oracle, вероятно, не согласны по некоторым вопросам, и мне все равно . Оставьте закон адвокатам.
Тем не менее, я подозреваю, что здесь есть интересная история.
Мой вопрос (как кто - то , кто первым сделал любой Java кодирования около 2001 в версии 1.3), в версии 1.0 Java было что - то требуется вне java.lang
, java.util
и java.io
составить действительную программу Java?
В качестве примера (с использованием C # 5.0) await
ключевое слово зависит (помимо прочего). Компилятор не может функционировать по спецификации без этого класса.Task<T>
GetAwaiter()
Эквивалентно, были ли какие-либо основные функции времени выполнения (например, ClassLoader *), которые зависели от других пакетов?
Я признаю, что спрашиваю из любопытства, что именно необходимо для минимально жизнеспособной Java (язык, игнорирующий все юридические аспекты), интересен.
* Я предполагаю, что ClassLoader был даже функцией в Java 1.0, он является частью спецификации в 7.0 и, вероятно, во многих более ранних версиях.
await
ключевое слово не зависит отTask<T>
.Task
Класс просто случается , чтобы удовлетворить то , чтоawait
ключевое слово это зависит от (метод называется иGetAwaiter()
т.д.).yield
IEnumerator или чем-то еще; просто так рад заawait
.Ответы:
Согласно Википедии , первая официально выпущенная версия Java была 1.0.2 23 января 1996 года.
Там в архив Java 1.0.2 и всей сопутствующей документации здесь :
Там появляется как загрузка из JDK 1.0.2 бит здесь
http://www.pascal-man.com/download/download-jdk.shtml
Это работает для меня на момент написания.
СМОТРЕТЬ СЫРЬ, НЕОГРАНИЧЕННУЮ СИЛУ JAVA 1.0.2
В спецификации языка упоминаются следующие классы (одиночное цитирование, а не исчерпывающее цитирование):
[I
и т. д. (раздел 10.8 )... в этот момент я перестал смотреть , потому что, технически ,
[I
ЕТ. и др. не вjava.lang
,java.util
илиjava.io
пакетах.Пример:
Выходы
Поведение соответствует между современным и 1.0.2
источник
В оригинальном JDK было меньше дюжины пакетов - это плюс апплет, awt, awt.peer. Это могло быть это! Вполне вероятно - на 99% уверен - что эти три пакета включали в себя все классы, которые были явно известны самой базовой JVM, и что не было классов вне этих пакетов, упомянутых в спецификации языка.
источник
java.net также был одним из первых доступных пакетов, и он был великолепен с самого начала, особенно с возможностью работы с потоками (теперь модель Thread выглядит устаревшей по сравнению с тем, что есть в более поздних языках, но тогда она была великолепна).
Я помню, как кодировал веб-браузер (очень неполный, даже по сравнению с тем, что существовал в то время), чтобы изучить недавно опубликованную версию 1.02 и сразу после этого полный сервер веб-приложений (все еще используемый в промышленности). Это было задолго до того, как сервлет api убедил всех, что для создания быстрых и надежных http-приложений в java нужно использовать тяжелые фреймворки.
С java.net (и с GC, и с потоками, и с исключениями, и с java.util) java должен был стать основной технологической стороной сервера (с другой стороны, java.applet был болезненным с первого дня ...)
источник
В Java 1.0 было ровно шесть пакетов верхнего уровня: java.applet, java.awt (с подпакетами java.awt.image и java.awt.peer), java.io, java.lang, java.net и java.util. Вот и все. Источник: Патрик Чан, Альманах Java разработчиков. 1998
источник