История языка программирования Java

История языка программирования JavaВ этой статье кратко изложена история развития языка Java. В основу этого ма­териала положены различные опубликованные первоисточники (в частности, интер­вью с создателями языка Java в июльском выпуске электронного журнала SunWorld за 1995 г.).

История Java восходит к 1991 году, когда группа инженеров из компании Sun Microsystems под руководством Патрика Нотона (Patrick Naughton) и члена совета директоров (и разностороннего специалиста) Джеймса Гослинга (James Gosling) заня­лась разработкой языка, который можно было бы использовать для программирова­ния бытовых устройств, например, контроллеров для переключения каналов кабель­ного телевидения. Подобные устройства не обладают большими вычислительными мощностями и объемом оперативной памяти, и поэтому новый язык должен был быть простым и способным генерировать очень компактный код. Кроме того, разные производители могут выбирать разные процессоры для контроллеров, и поэтому было очень важно не привязываться к конкретной их архитектуре. Проект создания нового языка получил кодовое название "Green".

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

Большинство сотрудников компании Sun Microsystems имели опыт работы с опе­рационной системой Unix, поэтому в основу разрабатываемого ими языка был по­ложен язык C++, а не Pascal. В частности, они сделали язык объектно-, а не проце­дурно-ориентированным. Как сказал Гослинг в своем интервью: "Язык — это всегда средство, а не цель". Сначала Гослинг решил назвать его Oak (Дуб). (Возможно пото­му, что он любил смотреть на дуб, росший прямо под окнами его рабочего кабинета в компании Sim Microsystems.) Затем сотрудники компании узнали, что слово "Oak" уже используется в качестве имени ранее созданного языка программирования, и из­менили название на Java. Этот выбор был сделан по наитию.

В 1992 г. в рамках проекта "Green" была выпущена первая продукция под на­званием "*7". Это было устройство интеллектуального дистанционного управления. (Умещаясь в корпусе 6x4x4 дюйма, оно имело мощность рабочей станции SPARC.) К сожалению, ни одна из компаний-производителей электронной техники не заин­тересовалась этой разработкой. Затем группа стала заниматься созданием устройства для кабельного телевидения, которое могло бы осуществлять новые виды услуг, на­пример, включать видеосистему по требованию. И снова они не получили ни одного контракта. Примечательно, что одной из компаний, согласившихся все-таки с ними сотрудничать, руководил Джим Кларк (Jim Clark) — основатель компании Netscape, впоследствии сделавшей очень много для развития языка Java.

Весь 1993 год и половину 1994 года продолжались безрезультатные поиски поку­пателей продукции, разработанной в рамках проекта "Green", получившего новое на­звание — "First Person, Inc.". Патрик Нотой, один из основателей группы, в основном занимавшийся маркетингом, налетал в общей сложности более 300 тысяч миль, пы­таясь продать разработанную технологию. Работа над проектом "First Person, Inc." была прекращена в 1994 г.

Тем временем в рамках Интернета начала развиваться система под названием World Wide Web (Всемирная паутина). Ключевым элементом этой системы явля­ется браузер, превращающий гипертекстовые данные в изображение на экране. В 1994 году большинство пользователей применяли некоммерческий веб-браузер Mosaic, разработанный в суперкомпьютерном центре университета штата Иллинойс в 1993 г. Частично этот браузер был написан Марком Андреессеном (Mark Andreessen), подрядившимся работать за 6,85 доллара в час. В то время Марк заканчивал универ­ситет, и браузер был его дипломной работой. (Затем он достиг известности и успеха как один из основателей и ведущих специалистов компании Netscape.)

В своем интервью журналу Sun World Гослинг сказал, что в середине 1994 г. раз­работчики нового языка поняли: "Нам нужно создать высококачественный браузер. Такой браузер должен представлять собой приложение, соответствующее технологии "клиент-сервер", в которой жизненно важным является именно то, что мы сделали: архитектурная независимость, выполнение в реальном времени, надежность, безопас­ность — вопросы, которые были не так уж важны для рабочих станций. И мы созда­ли такой браузер".

Сам браузер был разработан Патриком Йотоном и Джонатаном Пэйном (Johnatan Payne). Позднее он был доработан и получил имя Hotjava. Чтобы продемонстрировать все возможности Java, браузер был написан на этом языке. Но разработчики не забы­вали о таких средствах, которые теперь называются аплетами, наделив свой продукт способностью выполнять код на веб-страницах. Программный продукт, подтверждав­ший действенность новой технологии, был представлен 23 мая 1995 года на выставке SunWorld '95 и вызвал всеобщий интерес к Java, сохраняющийся и по сей день.

Компания Sun Microsystems выпустила первую версию Java в начале 1996 г. Пользователи быстро поняли, что версия Java 1.0 не подходит для разработки серьез­ных приложений. Конечно, эту версию можно применять для реализации визуаль­ных эффектов на веб-страницах, например, написать аплет, выводящий на страницу случайно "прыгающий" текст, но версия Java 1.0 была еще сырой. В ней даже отсут­ствовали средства вывода на печать. Грубо говоря, версия Java 1.0 еще не была готова. В следующей версии, Java 1.1, были устранены наиболее очевидные недостатки, улуч­шены средства рефлексии и реализована новая модель событий для программирова­ния ГПИ. Но несмотря на это, ее возможности были все еще ограничены.

История Java и обзор версий

Выпуск версии Java 1.2 стал основной новостью на конференции JavaOne в 1998 г. В новой версии слабые средства для создания графического пользовательского ин­терфейса и графических приложений были заменены мощным инструментарием. Это был шаг вперед, к реализации лозунга "Write Once, Run Anywhere" ("Однажды написано — везде выполняется"), выдвинутого при разработке предыдущих вер­сий. В декабре 1998 года через три дня (!) после выхода в свет название новой версии было изменено на громоздкое Java 2 Standard Edition Software Development Kit Version 1.2 (Стандартная редакция набора инструментальных средств для разработки программ­ного обеспечения на Java 2, версия 1.2).

Кроме Standard Edition, были предложены еще два варианта: Micro Edition ("микроредакция") для портативных устройств, например для мобильных телефо­нов, и Enterprise Edition (редакция для корпоративных приложений).

Версии 1.3 и 1.4 набора инструментальных средств Standard Edition являются ре­зультатами поэтапного усовершенствования первоначально выпущенной версии Java 2. Они обладают новыми возможностями, повышенной производительностью и, разумеется, содержат много меньше ошибок. В процессе развития Java многие взгля­ды на аплеты и клиентские приложения были пересмотрены. В частности, оказалось, что на Java удобно разрабатывать высококачественные серверные приложения.

В версии 5.0 язык Java подвергся наиболее существенной модификации с момента выпуска версии 1.1. (Первоначально версия 5.0 имела номер 1.5, но на конференции JavaOne в 2004 г. была принята новая нумерация версий.) После многолетних иссле­дований были добавлены обобщенные типы (которые приблизительно соответствуют шаблонам C++), хотя при этом не были выдвинуты требования модификации вир­туальной машины. Ряд других языковых элементов, например, циклы в стиле for each, автоупаковка и метаданные, были явно "навеяны" языком С#.

Версия 6 (без суффикса .0) была выпущена в конце 2006 г. Опять же сам язык не претерпел существенных изменений, но были внесены усовершенствования, связан­ные с производительностью, а также произведены расширения библиотек.

По мере того как в центрах обработки данных все чаще стали применяться аппа­ратные средства широкого потребления вместо специализированных серверов, для компании Sun Microsystems наступили тяжелые времена, и в конечном итоге она была приобретена компанией Oracle в 2009 г. Разработка последующих версий Java приостановилась на долгое время. И только в 2011 году компания Oracle выпустила новую версию Java 7 с простыми усовершенствованиями. А более серьезные измене­ния было решено отложить до версии Java 8, выпуск которой ожидается в 2013 г.

В табл. 1 сведены данные об этапах развития языка и библиотек Java. Как видите, размеры прикладного программного интерфейса API значительно увеличились.

Таблица 1. Этапы развития языка Java

Версия

Год выпуска

Новые языковые средства

Количество классов и интерфейсов

1.0

1996

Выпуск самого языка

211

1.1

1997

Внутренние классы

477

1.2

1998

Отсутствуют

1524

1.3

2000

Отсутствуют

1840

1.4

2002

Утверждения

2723

5.0

2004

Обобщенные классы, цикл в стиле for each, автоупаковка, аргументы переменной длины, метаданные, перечисления, статический импорт

3279

6

2006

Отсутствуют

3793

7

2011

Оператор switch со строковыми метками ветвей, ромбовидный оператор, двоичные литералы, усовершенствованная обработка исключений

4024

8

2014

Лямбда-выражения, библиотеки потоков и даты/времени, интерфейсы с методами по умолчанию

4240

9

2017

Литералы в коллекциях, оператор Элвиса, Class Optional, Streams, IO, Regrexp, обработка процессов ProcessHandle

более 4500

В 2018 году коренным образом изменилась парадигма разработки и выпуска релизов Java. Об этом можно почитать в этой новости нашего портала.

 

Вас заинтересует / Intresting for you:

Распространенные заблуждения о...
Распространенные заблуждения о... 2481 просмотров Ирина Светлова Thu, 21 Jun 2018, 18:35:12
Использование потоков в Java
Использование потоков в Java 1445 просмотров Antoni Wed, 12 May 2021, 09:51:36
Выбор среды для разработки код...
Выбор среды для разработки код... 2531 просмотров Stas Belkov Sun, 10 Jun 2018, 14:21:35
Аплеты Java и Интернет
Аплеты Java и Интернет 2614 просмотров Ирина Светлова Sat, 09 Jun 2018, 10:17:34
Войдите чтобы комментировать

apv аватар
apv ответил в теме #9473 4 года 5 мес. назад
Хорошая ретроспектива. Хорошо бы и про Java 10 инфу в табличку добавить.
Doc аватар
Doc ответил в теме #9085 5 года 9 мес. назад
Эх, что же нас ждет в Java 10? Люблю Джаву, не могу ниче с собой поделать...)))