История создания Java

История Java восходит к 1991 году, когда группа инженеров из компании Sun под руководством Патрика Нотона (Patrick Naughton) и члена Совета директоров (и разностороннего компьютерного волшебника) Джеймса Гослинга (James Gosling) занялась разработкой небольшого языка, который можно было бы использовать для программирования бытовых устройств, например, контроллеров для переключения каналов кабельного телевидения (cable TV switchboxes).

Поскольку такие устройства не потребляют много энергии и не имеют больших микросхем памяти, я должен был быть маленьким и генерировать очень компактные программы. Кроме того, поскольку разные производители могут выбирать разные центральные процессоры (Central Processor Unit— CPU), было важно не завязнуть в какой-то одной архитектуре компьютеров. Проект получил кодовое название «Green».

Стремясь изобрести небольшой, компактный и машинонезависимый код, разработчики возродили модель, использованную при реализации первых версий языка Pascal заре эры персональных компьютеров. Никлаус Вирт, создатель языка Pascal, в свое время разработал машинонезависимый язык, генерирующий промежуточный код для некоей гипотетической машины. Этот язык стал коммерческим продуктом под названием UCSD Pascal. (Такие гипотетические машины часто называются виртуальными — например, виртуальная машина языка Java, или JVM.)

Этот промежуточный код можно выполнять на любой машине, имеющей соответствующий интерпретатор. Инженеры, работавшие над проектом «Green», также использовали виртуальную машину, что решило их основную проблему.

Отцы-разработчики Java

Язык разработали инженеры компании Sun Microsystems, а именно:

  • Патрик Ноутон (Patrick Naughton) — руководитель группы инженеров
  • Джеймс Гослинг (James Gosling) — член Совета директоров и, как его еще иногда называют, разносторонний «компьютерный волшебник»

Причины появления нового языка

Патрик Ноутон, Джеймс Гослинг работали над проектом «Green», целью которого было разработать язык для программирования бытовых электронных устройств. Каких ещё бытовых устройств? Да самых разных. Например, контроллеров для переключения каналов кабельного телевидения (cable TV switchboxes).

Бытовые устройства:

  • мало потребляют энергии (отсюда и кодовое название проекта — «Green» )
  • а также бытовые электронные устройства имеют небольшие микросхемы памяти, а, соответственно, и программы, написанные под них, должны были быть небольшими.Помимо этого стояла задача, чтобы единожды написанный код читался на любой машине, а не писался под каждое устройство отдельно. Язык программирования C++ для данных целей их не очень устроил и они разработали новый язык программирования — Java.

Как появилось название «Java»

Стоит упомянуть, что не всегда этот язык имел привычное нам название — Java.

Изначально новому языку программирования было дано имя «Oak» (от английского — «Дуб»). Всё дело в том, что под окном офиса Джеймса Гослинга рос дуб, который ему очень нравился и в честь которого он и решил назвать новый язык.

Когда же компания Sun Microsystems увидела, что язык хорошо себя зарекомендовал и его можно сделать общедоступным, было принято решение поменять название «Oak», поскольку это название уже имел другой язык программирования, а также необходимо было более созвучное, одним словом более коммерческое имя. И было дано новое имя языку — Java.

Почему на логотипе Java — кофейная кружка

Версия № 1: Самая интересная. Программисты пьют много кофе. Пока создавался новый язык программирования, были выпиты гигалитры кофе, и поэтому решили назвать язык в честь сорта кофе Java.

Версия № 2: Название дано в честь марки кофе Java, который был назван в честь острова Ява (на англ. – Java). Эта версия перекликается с версией № 1.

Версия № 3: Поскольку новый язык разрабатывался для программирования бытовых электронных устройств, то иногда связывают это с аллюзией на кофе-машину как пример бытового устройства.

Кто владелец Java

В 2009 году язык Java сменил своего владельца – компания Sun Microsystems была куплена компанией Oracle. Так что сейчас владелец Java — компания Oracle.

Этапы развития языка Java

История разработки языка Java, изложенная Патриком Нотоном, соавтором браузера HotJava и нынешним вице-президентом по технологии корпорации Starwave.

  • 5 декабря 1990 г. — Нотон отказывается от предложения перейти в компанию NeXT и начинает работу в компании Sun над проектом, получившим впоследствии название Green.
  • 15 января 1991 г. — Совещание типа мозгового штурма по проекту Stealth (названном так Скоттом Макнили) в Аспене, в котором участвовали Билл Джой, Энди Бехтолсхейм, Уэйн Розинг, Майк Шеридан, Джейм Гослинг и Патрик Нотон.
  • 1 февраля 1991 г. — Гослинг, Шеридан и Нотон всерьез берутся за работу. Нотон занимается графической системой Aspen, Гослинг — идеями языка программирования, Шеридан — бизнес-разработкой.
  • 8 апреля 1991 г. — Переезд по новому адресу и разрыв прямого соединения с локальной сетью (и большинством других средств связи) компании Sun; проект продолжается под названием Green.
  • 15 апреля 1991 г. — К проекту Green присоединяются Эд Фрэнк (архитектор системы SPARCstation 10), Крейг Форрест (дизайнер чипа SS10) и Крис Уорт (разработчик системы NeWS).
  • Май 1991 г. — Эд Фрэнк присваивает прототипу аппаратуры название *7 (или Star7; *7 — код, который было необходимо набрать в офисе Sand Hill, чтобы ответить на любой звонок с любого телефона).
  • Июнь 1991 г. — Гослинг начинает работу над интерпретатором Oak, который через несколько лет (при поисках торговой марки) переименован в Java.
  • 1 августа 1991 г. — Осуществлено объединение Oak и Aspen; заработала их первая реальная программа.
  • 19 августа 1991 г. — Коллектив разработчиков Green демонстрирует идеи базового пользовательского интерфейса и графическую систему сооснователям компании Sun Скотту Макнили и Биллу Джою.
  • 17 октября 1991 г. — Шеридан и Нотон присваивают конструкторской философии своего коллектива девиз «1st Person», который со временем становится названием компании.
  • 17 ноября 1991 г. — Офис проекта Green снова подключается к главной сети компании Sun линией на 56 Кбит/с
  • 1 марта 1992 г. — К проекту Green присоединяется Джонатан Пейн, который позднее участвует в написании HotJava.
  • Лето 1992 г. — Интенсивная деятельность по доработке Oak, Green OS, пользовательского интерфейса, аппаратуры Star7 и соответствующих компонентов.
  • 4 сентября 1992 г. — Завершена разработка устройства Star7; оно продемонстрировано Джою и Макнили.
  • 1 октября 1992 г. — Из компании SunLabs переходит Уэйн Розинг, принимающий на себя руководство коллективом.
  • 1 ноября 1992 г. — Организована корпорация FirstPerson.
  • 15 января 1993 г. — Коллектив переезжает в Пало Альто в здание, где раньше находилась лаборатория Western Research Lab компании DEC и была основана исходная группа Hamilton Group (она же OSF).
  • 15 марта 1993 г. — После ознакомления с результатами испытаний кабельного интерактивного телевидения, проведенных компанией Time Warner, корпорация FirstPerson сосредотачивается на этой тематике.
  • Апрель 1993 г. — Выпуск первого графического браузера для Internet — Mosaic 1.0, разработанного в центре NCSA.
  • 14 июня 1993 г. — Компания Time Warner продолжает проводить свои испытания интерактивного кабельного ТВ с компанией SGI, несмотря на признанное превосходство технологии компании Sun и уверения, что Sun выиграла эту сделку.
  • Лето 1993 г. — Нотон пролетает 300 тыс. миль, продавая Oak всем, занимающимся бытовой электроникой и интерактивным телевидением; тем временем темп, с которой люди получают доступ к Internet, головокружительно нарастает.
  • Август 1993 г. — Через несколько месяцев многообещающих переговоров с компанией 3DO относительно разработки ОС для приставок, президент 3DO Трип Хокинс предлагает купить технологию. Макнили отказывается, и сделка срывается.
  • Сентябрь 1993 г. — К коллективу присоединяется Артур Ван Хофф, поначалу — чтобы создать среду разработки приложений, предназначенных для интерактивного телевидения, а потом разрабатывающий, главным образом, сам язык.
  • 7 декабря 1993 г. — Экспертиза операций на высоком уровне в FirstPerson обнаруживает, что эта группа не имеет реальных партнеров или маркетинговой стратегии и неясно представляет себе дату выпуска.
  • 8 февраля 1994 г. — Отменено публичное заявление компании FirstPerson о выпуске, которое должно было состояться на конференции Technology, Entertainment and Design (TED).
  • 17 февраля 1994 г. — Исполнительным лицам компании Sun для разносторонней экспертизы представлен альтернативный бизнес-план корпорации FirstPerson по разработке мультимедийной платформы для CD-ROM и онлайновой работы.
  • 25 апреля 1994 г. — Создана компания Sun Interactive; в нее переходит половина сотрудников FirstPerson.
  • Июнь 1994 г. — Начат проект Liveoak, нацеленный Биллом Джоем на использование Oak в крупном проекте небольшой операционной системы.
  • Июль 1994 г. — Нотон ограничивает область применения проекта Liveoak, просто переориентировав Oak на Internet.
  • 16 сентября 1994 г. — Пейн и Нотон начинают писать WebRunner — браузер типа Mosaic, позднее переименованный в HotJava.
  • 29 сентября 1994 г. — Прототип HotJava впервые продемонстрирован исполнительным лицам компании Sun.
  • 11 октября 1994 г. — Нотон уходит в компанию Starwave.
  • Осень 1994 г. — Ван Хофф реализует компилятор Java на языке Java. (Ранее Гослинг реализовывал его на языке С).
  • 23 мая 1995 г. — Компания Sun официально представляет Java и HotJava на выставке SunWorld ’95.
  • 1996 г. — Реализация поддержки технологии Java в браузере Microsoft Internet Explorer 3.0
  • 1997 г. — Выход существенно обновленной версии – Java 2.

Выделение отдельных платформ: J2SE, J2EE, J2ME.

Платформа включает в себя:

  • язык программирования;
  • набор служебных программ (JVM, JRE, JDK и т.п.);
  • набор библиотек;

  • Java 2 Platform, Standard Edition (J2SE) — Предназначается для использования на рабочих станциях и персональных компьютерах. Является основой всех других Java-технологий.
  • Java 2 Platform, Micro Edition (J2ME) — Является усеченным вариантом J2SE, для того, чтобы соответствовать ограниченным аппаратным возможностям мобильных устройств, таких как, например, сотовые телефоны.
  • Java Virtual Machine (JVM) — Представляет собой программу, имитирующую работу некоторой гипотетической Java-машины.
  • Java Runtime Environment (JRE) — Представляет собой минимальный набор средств, необходимых для запуска Java-программ. Основу JRE составляют виртуальная машина Java и набор стандартных библиотек.
  • Java Software Development Kit (SDK)
  • Java Development Kit (JDK) — представляет собой набор средств, используемых в процессе разработки Java-программ: компилятор, отладчик, средства для автоматической генерации документации, комплект примеров и т.п. JDK работает с уже готовыми текстами программ и не содержит какого-либо редактора.

Интегрированные среды разработки (Eclipse, Netbeans, JBuilder и т.п.) для компиляции программ используют внешний JDK

Сферы применения Java-технологий

В настоящее время Java-технологии находят широкое применение в различных сферах. Это, в первую очередь, вызвано особенностями создания и запуска Java-приложений.

Разработка приложений (application)

Язык Java используется для разработки обычных прикладных программ, которые запускаются пользователем и имеют доступ ко всем ресурсам компьютера наравне с любыми другими программами.

Для запуска Java-приложений в операционной системе должна быть установлена среда исполнения Java (JRE).

Разработка мидлетов (midlet)

Язык Java используется для разработки специализированных программ, предназначенных для использования на мобильных устройствах. Структура и возможности мидлетов обусловлены техническими особенностями мобильных устройств.

Для запуска мидлетов мобильное устройство должно поддерживать соответствующую возможность.

Разработка апплетов (applet)

Язык Java используется для разработки специализированных программ, обычно небольшого размера, запускаемых браузером внутри web-документа для вывода динамического содержимого и/или интерактивного взаимодействия с пользователем.

Для запуска апплетов браузер должен содержать соответствующий модуль (plug-in).

Разработка JSP-страниц (Java Server Pages)

JSP-страницы представляют собой HTML-документы со вставками на языке Java, которые используются для анализа пользовательских запросов и динамического формирования web-документов на основе результатов обработки этих запросов.

Для обработки JSP-страниц Web-сервер должен содержать соответствующий модуль.

Разработка сервлетов (servlet)

На языке Java разрабатываются специализированные программы-сервлеты, функционирующие в рамках Web-сервера и имеющие доступ к его ресурсам: файлам, базам данных и т.п.

Для запуска сервлетов используется Web-сервер со специальным модулем (контейнером сервлетов) или специальный сервер приложений.

Достоинства и недостатки Java-технологий

Java-технологии имеют много особенностей, отличающие их от других технологий разработки программного обеспечения.

Переносимость

Программы, написанные на языке Java, после однократной трансляции в байт-код могут быть исполнены на любой платформе, для которой реализована виртуальная Java-машина. Наиболее эффективно возможности реального компьютера может использовать только программа, написанная с использованием «родного» машинного кода.

Безопасность

Функционирование программы полностью определяется (и ограничивается) виртуальной Java-машиной. Отсутствуют указатели и другие механизмы для непосредственной работы с физической памятью и прочим аппаратным обеспечением компьютера. Дополнительные ограничения снижают возможность написания эффективно работающих Java-программ.

Надежность

В языке Java отсутствуют механизмы, потенциально приводящие к ошибкам: арифметика указателей, неявное преобразование типов с потерей точности и т.п. Присутствует строгий контроль типов, обязательный контроль исключительных ситуаций. Многие логические ошибки обнаруживаются на этапе компиляции. Наличие дополнительных проверок снижает эффективность выполнения Java-программ.

Сборщик мусора

Освобождение памяти при работе программы осуществляется автоматически с помощью «сборщика мусора», поэтому программировать с использованием динамически распределяемой памяти проще и надежнее. При интенсивной работе с динамически распределяемой памятью возможны ошибки из-за того, что «сборщик мусора» не успел освободить неиспользуемые области памяти.

Стандартные библиотеки

Многие задачи, встречающиеся при разработке программного обеспечения, уже решены в рамках стандартных библиотек. Использование объектно-ориентированного подхода позволяет легко использовать готовые объекты в своих программах.

Для запуска приложения необходима установка JRE, содержащего полный набор библиотек, даже если все они не используются в приложении. Отсутствие библиотеки необходимой версии может воспрепятствовать запуску приложения.

Самодокументируемый код

Имеется механизм автоматического генерирования документации на основе комментариев, размещенных в тексте программ.

Многообразие типов приложений

На языке Java возможно реализовать абсолютно разные по способу функционированию и сфере использования программы.

«Java: The inside story» — перевод известной статьи

Текст ниже является сокращенным переводом известной статьи Майкла О’Коннелла «Java: The inside story», написанной им для журнала SunWorld Online в июле 1995 г. Статья интересна не только тем, что в ней история возникновения языка Java рассказывается его непосредственными создателями, но и тем, что с ее публикации фактически началась история самого журнала JavaWorld, а автор статьи стал главным редактором этого издания.

Читая статью, не забывайте, что она написана много лет назад, а за это время многие взгляды создателей Java на дальнейшее развитие этой технологии безнадежно устарели. Полный вариант статьи на английском языке можно найти по адресу http://www.sun.com/sunworldonline/swol-07-1995/swol-07-java.html.

Сегодня технология Java предоставляет средства для превращения статических Web-страниц в интерактивные динамические документы и для создания распределенных не зависящих от платформы приложений. Первоначально же язык Java корпорации Sun предназначался для устройств бытовой электроники, и в некоторых из них еще может использоваться его ранний вариант, известный под названием Oak. Однако настоящей стартовой площадкой для стремительного взлета Java стала сеть Internet.

Некоторые полагают, что для успеха любого дела прежде всего необходимо продумать и четко поставить задачу. Однако, совершенно очевидно, что в случае с языком программирования Java компании Sun Microsystems задача оказалась решенной до того, как ее сформулировали.

Создатель Java Джеймс Гослинг считает, что генезис этой технологии можно проследить с начала 1991 года, когда для изучения перспектив на рынке бытовой электроники в компании Sun была создана небольшая группа инженеров. В то время сеть World Wide Web существовала только в проектах.

Потребители против инженеров

«Группе была поставлена задача создать распределенную систему, которую можно было бы в качестве современной программной технологии продавать производителям бытовой электроники,» — вспоминает Гослинг.

Гослинг, которому сейчас 40 с небольшим лет, перешел в Sun в 1984 г. из исследовательского отдела IBM. Его первая работа — интересный технически, но не имевший коммерческого успеха оконный интерфейс NeWS. Он также написал GOSMACS — первую реализацию текстового редактора EMACS на языке С.

Эта деятельность в области бытовой электроники (которая потом стала называться проектом «Green») показала Гослингу и его коллегам, как важны для потребителя такие показатели, как надежность, стоимость, соответствие стандартам и простота. Если пользователи рабочих станций заинтересованы в большой мощности и терпимы к высоким ценам, необходимости длительного обучения и наличию различных ошибок, то рядовым потребителям нужны дешевые, относительно простые и надежные устройства.

Чтобы успешно конкурировать на рынке бытовой электроники, компании должны рассматривать процессоры как обычный товар, который в любой момент можно заменить более дешевым, а также обеспечивать обратную совместимость и соблюдать стандарты, установившиеся на устройства длительного пользования типа тостеров и телевизоров.

В начале был С++

Чтобы не связывать разработку с конкретной платформой, Гослинг начал с расширения компилятора С++. Со временем, однако, он понял, что один С++, как его ни расширяй, не сможет удовлетворить все потребности. Поэтому в середине 1991 года был задуман язык Oak. (Впоследствии при поиске торговой марки его название было заменено на Java). «В конце концов, язык — это средство, а не самоцель, — поясняет Гослинг. — Мы не собирались зацикливаться на С++, а хотели разработать систему, которая позволяла бы создавать большую распределенную разнородную сеть из бытовых электронных устройств, способных взаимодействовать между собой».

В конце 1992 года, предприняв, по выражению тогдашнего инженера проекта Патрика Нотона, «огромные усилия по доработке Oak и других компонентов», коллектив проекта «Green» выпустил «*7» — устройство типа PDA, названное Гослингом «ручным пультом дистанционного управления».

«За полтора года мы сделали столько же, сколько иные большие коллективы в Sun делали за три года, — с гордостью отмечает Нотон. — Операционную систему GreenOS, язык, инструментарий, пользовательский интерфейс, новую аппаратную платформу, три заказных микросхемы… и каждый этап был связан с риском, т.к. мы использовали совершенно новые технологии».

30-летний Нотон до прихода в команду Green возглавлял проект Sun по разработке пользовательской среды Open Window.

Малогабаритность устройства *7 выгодно подчеркивала компактность и эффективность кода, являвшегося ядром технологии. Этот продукт широко демонстрировался в Sun и произвел впечатление на таких важных персон, как Скотт Макнили и Билл Джой, однако его дальнейшая судьба оставалось неясной.

Конкурс на разработку

Пока коллектив работал над Oak и *7, два его члена — специалист по оборудованию и технологии Эд Фрэнк и специалист по планированию бизнеса Майк Шеридан — подготовили примерную деловую и технологическую программу, которой могла бы воспользоваться какая-либо сторонняя компания типа Dolby Labs, чтобы создать и лицензировать технологию, и поместила бы логотип Sun на бытовую электронику вместе со своим. Ко времени появления демонстрационной модели *7 были готовы несколько версий этой программы. Однако в начале 1993 года, когда в Sun анализировались возможности применения Java, коллектив проекта Green, преобразованный к этому моменту в компанию FirstPerson, узнал об объявленном компанией Time-Warner конкурсе на разработку операционной системы для телевизионных приставок и технологии «видео по запросу». «Это было то, что надо», — вспоминает Гослинг.

FirstPerson быстро переориентировалась на рынок ОС для телеприставок и сделала Time-Warner предложение. Однако оно было отвергнуто, по мнению Гослинга и Нотона, чисто по политическим соображениям, хотя ее технология была признана лучшей.

FirstPerson продолжала работать над телеприставками до начала 1994 года, когда ее коллектив пришел к выводу о бесперспективности этого рынка. «Было много совершенно необоснованной рекламы», — поясняет Гослинг. Ряд недавних событий показал, что и сейчас рынок интерактивного ТВ еще не сформировался.

Тогда Нотон сумел доказать необходимость сворачивания работ над телеприставками и концентрации усилий в области онлайновых служб, CD-ROM и платформ для настольных систем. FirstPerson была распущена, и около половины ее сотрудников ушло в компанию Sun Interactive, где они стали заниматься разработкой серверов цифровых видеоданных. Но некоторые из них по-прежнему пытались найти пути применения технологии Java в объединенных в сеть настольных системах.

Обращение к Web

К середине 1994 года сеть World Wide Web выглядела уже вполне солидно. «Мы поняли, что сможем создать действительно первоклассный браузер, — говорит Гослинг. — Это один из немногих компонентов архитектуры клиент-сервер, который мы могли бы наделить такими необходимыми ему качествами, как независимость от архитектуры, работа в реальном времени, надежность, безопасность, не имеющие такого значения для рабочих станций. Поэтому мы и разработали браузер».

К осени Нотон и его коллега по Sun Джонатан Пэйн закончили писать WebRunner — Web-браузер, написанный на языке Java. Эта первая реализация HotJava проявила Java-технологию в новом свете, и эта демонстрация произвела впечатление на директора подразделения SunLabs Берта Сазерленда и главного технолога Sun Эрика Шмидта.

Что все это значит

Гослинг считает браузер таким компонентом, который «создает рынок» для инструментальных средств, серверов и сред разработки. И во всех этих средствах язык Java играет ключевую роль. «До появления Java страница WWW фактически представляла собой листок бумаги. В появлением Java браузер задает структуру и резко расширяет возможности провайдеров содержания».

Гослинг полагает, что технология Java заставит людей переосмыслить роль вычислений клиент-сервер. «В стандартной модели вы имеете определенные базы данных, пишете пакеты клиентского ПО, взаимодействующего с ними, и создаете какой-то интерфейс». В рамках этой модели трудно создавать распределенные системы и осуществлять их модернизацию, особенно если их части имеют разное происхождение, указывает Гослинг.

Имея же такие инструментальные средства как Java и Web, вы получаете исходно организованную систему, подчеркивает он. «Если вы создаете на языке Java клиентскую часть приложения, то его запуск сводится просто к переходу на соответствующую страницу. Инсталляция тривиальна — просто поместите необходимое ПО на Web-сервер. И никаких проблем с переносом, поскольку имеется только одна версия приложения». Многие компании, по словам Гослинга, уже организуют базы данных в виде Web-страниц с использованием интерфейса Common Gateway Interface (CGI) — специфического стандарта для работы внешних программ на сервере HTTP.

Для подготовки этой статьи были использованны материалы с сайтов: https://vertex-academy.com/tutorials/ru/istoriya-sozdaniya-java-2, http://www.javaportal.ru/articles/historyJava.html, http://java-study.ru/3-java-history.html

Поделиться с друзьями: