Джеймс Гослинг, вице-президент Sun Microsystems, Sun Fellow, автор языка Java

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

Весь мир технологий Java состоит из четырех уровней разного масштаба. Первый — программирование смарт-карт. На мой взгляд, это уникальная программная среда, количество разработок в которой просто огромно. Моя первая работа в качестве программиста была связана с системой управления космическим спутником с наземной станции. Но сегодня в одной смарт-карте заложено больше вычислительных возможностей, чем в космических системах прошлых лет. Второй уровень Java-технологий — это Java MicroEdition, ПО для сотовых телефонов, игр, управления различными встроенными устройствами, автомобильными компьютерами. Кстати говоря, именно в этой области мы видим наибольшие перспективы развития Java-технологий в ближайшие несколько лет. Третий уровень — Java Standard Edition, стандартная версия Java, и четвертый — Java Enterprise Edition, версия Java, предназначенная для построения крупномасштабных корпоративных приложений в среде с большим объемом транзакций и интенсивным использованием критически важных приложений.

Объединяет все это язык Java. Хотя ему исполнилось уже 10 лет, мы только сейчас в полной мере осознаем масштабы его возможного применения. Java сегодня работает во многих переносных и интерактивных устройствах. Например, с Java-технологиями связан весь интерактивный контент DVD-дисков. Но интерактивность — это не только индустрия развлечений. Например, в самолетах (в частности, такие разработки ведет компания Boeing) совсем скоро будут внедрены мобильные Web-сервисы, которые позволят бортовой электронике, где используется Java, работать с удаленными устройствами в режиме реального времени. Это даст возможность создавать полноценные беспилотные аппараты, например для спасательных операций. Можно будет видеть, что происходит в районе такой операции, и к моменту прибытия спасателей координировать действия на месте событий.

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

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

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

Что касается наших отношений с Microsoft и главным конкурентом Java — технологией .NET, могу сказать, что мы стараемся двигаться в сторону большей совместимости. Мы идем навстречу нашим клиентам, которые хотят работать в гетерогенной среде. Однако .NET чаще всего используется в решениях для настольных ПК, кроме того, эта технология недостаточно эффективна в крупных системах, не является кросс-платформным решением, как Java. Решение на базе Java клиент может получить у разных поставщиков. Например, основанная на Java технология Application Server предлагается такими компаниями, как Oracle и IBM. Приложения на Java могут быть созданы и реализованы на базе любой платформы — и Windows, и Linux, и Solaris. Даже написав одну игру для мобильного телефона на Java, вы можете ее инсталлировать на сотнях других моделей. Мы активно работаем над обеспечением совместимости Java с разными платформами. Мне кажется, что такая открытость отвечает требованиям времени и тенденциям все большей интеграции различных систем. Однако о полной интеграции с .NET речь не идет — думаю, наши платформы в ближайшие 10 лет будут существовать параллельно.

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

Если сравнивать стоимость разработки на Java, например, со стоимостью аналогичной разработки на Си++, вторая обходится дороже. При этом как разработчик, я считаю, что любую задачу можно решить разными способами. Вопрос не в уникальности Java и не в том, что на других языках аналогичный функционал реализовать невозможно. Речь идет о том, что на других языках решение этих задач становится слишком сложным, так что лучше за них и не браться. На базе других языков сложно разрабатывать крупномасштабные системы для корпоративного сектора. А в Java можно найти решения, обрабатывающие несколько миллионов параллельных потоков, Java выигрывает, именно работая с большими объемами данных в сложных средах. Кроме того, как раз в Java в полной мере реализован сетевой функционал, без которого немыслимы современные информационные системы. Да, Java — обычный алгоритмический язык, но с рядом задач он справляется эффективнее других.

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

Версия для печати (без изображений)