СоНоты

Язык программирования Java

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

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

Среда конструировалась в расчете на потребителей, нормальных людей, а не компьютерных фанатов. Она должна была стать небольшой, простой и компактной, и работать на множестве различных устройств, включая и такие, о которых обычно не думают как о компьютерах. Таким образом уже самые ранние размышления Зеленой Команды над проектом Java определили несколько проблем. Среда должна быть простой настолько, чтобы даже люди, далекие от техники, могли бы быстро овладеть устройствами, на которых она выполняется. Она должна быть переносимой (portable), для того чтобы выполняться на разных запланированных для нее устройствах. И, как следствие, она должнв быть архитектурно-нейтрально, для того чтобы не ограничивать конструкцию устройств использованием определенной архитектуры. В своей работе Зеленая Команда пользовалась активной поддержкой и защитой со стороны Скотта Мак-Нили (Scott McNealy), одного из высших руководителей Sun.

Первой областью применения приложений, предусмотренной командой, была бытовая электроника. Сложность задач, таких как программирование домашнего термостата или координация работы видео-магнитофона и телевизора, рассматривалась в качестве примера того, каким не должно быть цифровое оборудование. Зеленая Команда предложила присоединять приборы бытового назначения к сети, управляемой простым контроллером. этот контроллер мог быть оснащен интуитивным пользовательским интерфейсом, применяющим анимацию для показа подключенных устройств и пользовательских возможностей. Весной 1991 года команда произвела на свет бумагу, которая называлась "За Зеленой Дверью" (Behind the Green Door) и содержала следующее ключевое предложение:

"Разработать и лицензировать операционную среду для бытовых приборов, которая давала бы услугам и информации возможность убедительного представления через возникающую цифровую инфраструктуру".

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

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

Гослинг стоял на пороге изобретения нового языка. Новый язык забрал бы управление паматью из рук прикладного программиста, полностью устранив указатели и адресную арифметику. Одно только это усовершенствование может значительно увеличить живучесть этой среды. Кроме того, новый язык разрешал бы ссылки между классами во время выполенния, а не во время конструирования. Суперклассы могли бы изменяться без нечаянного влияния на использующиее их программное обеспечение, это сделало бы новую среду действительно динамичной, поскольку в таком случае изменения нижележащих программ можно проводить по мере необходимости, не нуждаясь в повторной компиляции и повторной реализации.

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

С точки зрения программирования Гослинг мог реализовать взаимодействие мультипликационных образов, контроллера, сети и видео-магнитофона, разработав чисто объектно-ориентированный язык. Это означает, что единственными выразительными единицами в языке являются объекты (называвшиеся в Oak "классами"). Это классы, передававшиеся по домашней сети, и кажде устройство знало бы, как их интерпретировать, как создавать их и как посылать их обратно контроллеру. Например, мог бы существовать класс VCR (видео-магнитофон), в котором был бы метод, сообщающий VCR "Записывайте, пожалуйста, канал 3 в ближайшие 2 часа". И здесь C++ не мог служить целям Гослинга. C++ поддерживает объектно-ориентированное программирование, но не форсирует его.

Зеленая команда, теперь превращенная в FirstPerson, Inc., которой полностью владело дочернее подразделение Sun, провело практически весь 1993 год в поисках бизнес-приложения для своей новой технологии. Они вплотную подошли к лицензированию технологии в нескольких компаниях для столь разных приложений, как сотовый телефон, индустриальные автоматические системы, интерактивное телевидение, CD-ROM и коммерческие он-лайновые службы. Но каждый раз сделка срывалась. Удивительно, но они никогда не думали об Internet, даже тогда, когда Sun стала лидирующим поставщиком узлов Internet, основным источником её годового дохода.

В начале 1994 года Билл Джой (Bill Joy) и Эрик Шмидт (Eric Schmidt) подумали о том, что Oak и Internet могли бы составить отличную пару. Джой был старожилом Сети, разработавшим Беркли-версию операционной системы Unix, которая широко использовалась в Internet. Шмидт являлся главным технологом в Sun. Вместе они поощрили Гослинга к адаптации Oak для Internet. В этот раз Oak был переименован в Java. И вновь Гослинг работал над языком, дополняя его функциональностью Internet, а Нафтон разрабатывал пользовательский интерфейс. В конце года Нафтон представил Web-броузер со встроенным интерпретатором Java. Он назвал броузер HotJava (Горячий кофе).

В 1995 года Sun начала бесплатное распространение Java и HotJava в Internet. Компания намеревалась утвердить Java как язык программирования для Сети и надеялась получить прибыль после того, как Java утвердится. Новый язык поощрал разработчиков писать мелкие приложения, называвшиеся "апплетами" или микроприложениями (applets), которые могли бы включаться в собственные страницы разработчиков, но выполняться на машине любого посетителя страницы. При этом предполагалось, что визитер использует в качестве броузера HotJava. Java получил большой толчок, когда его утвердил Марк Андрисен (Marc Andreessen) из Netscape и еще больший толчок Java получил в августе 1995 года, когда Netscape включила интерпретатор Java в релиз 2.0 Netscape Navigator. Альянс с Netscape более всего продвинул притязания Sun сделать Java программным стандартом в Internet.

//С.Симкин, Н.Бартлетт, А.Лесли. Программирование на Java. Путеводитель.