Технология, сделавшая свой первый шаг в начале 90-х годов в качестве эксперимента в области потребительской электроники, отметила свою 20-ю годовщину в роли одного из основных средств построения корпоративных вычислительных систем. С годами она превратилась в доминирующую платформу, позволяющую запускать программы везде, где имеется виртуальная машина Java, и продолжает развиваться, несмотря на рост популярности конкурирующих языков и возникшие в последнее время вопросы к ней в области безопасности.
На пути к доминирующему положению Java пришлось преодолеть множество препятствий. В 1995 году язык дебютировал в качестве инструмента для объектно-ориентированного программирования. До этого над ним в течение пяти лет работала группа Green Team компании Sun Microsystems, в состав которой наряду с другими специалистами входили Джеймс Гослинг и Майк Шеридан. Команда искала способы объединения информации и программных средств, для того чтобы сделать веб-страницы более динамичными и добиться конвергенции клиентской части цифровых потребительских устройств и компьютеров.
Джеймса Гослинга считают создателем Java |
«Таким образом, технология Java, которая первоначально называлась Oak, впервые получила известность в качестве средства создания и исполнения клиентских апплетов, – вспоминает аналитик Forrester Research Джеффри Хаммонд. – Впоследствии благодаря поддержке Sun, IBM и Oracle она начала развиваться и на серверной стороне. Постепенно выяснилось, что в силу большого разнообразия клиентских устройств реализовать на практике девиз “написанное однажды работает везде” слишком сложно. Зато для сегментированной и менее хаотичной серверной архитектуры свои решения предложили сразу несколько поставщиков. Для большинства устройств создание виртуальной машины оказалось более простой задачей, чем написание кода Си и перенос его с одной аппаратной платформы на другую».
Java сегодня
Сейчас платформу Java загружают около миллиарда раз в год. По оценкам Oracle, в настоящее время 97% корпоративных настольных компьютеров имеют ее в своем арсенале. Написанием и поддержкой программного обеспечения Java занимаются 9 млн разработчиков. В рейтингах Tiobe, PyPL и RedMonk, характеризующих популярность языков программирования, Java занимает верхние строчки, а открытые вакансии, в которых требуются специалисты по Java, постоянно присутствуют на сайте Dice.com.
«Java наряду с Си и C++ относится к языкам программирования, которые сумели выжить, пройдя проверку временем, хотя, конечно, у всех них были свои взлеты и падения, – отметил Арун Гупта, разрабатывавший в Sun программы на Java с 1999 года и занимающий сегодня должность руководителя направления поддержки связующего программного обеспечения в Red Hat. – Во всех ведущих отраслях при разработке наиболее важных технологий в той или иной мере используется Java. И лишиться своих позиций в будущем эта платформа может только в случае какого-то технического апокалипсиса».
Сегодня технологии Java находятся под патронажем Oracle, которая в 2010 году купила Sun. В 2006 году исходный код платформы был открыт, хотя далеко не все одобрили план действий, предложенный Sun. В корпорации IBM, например, предлагали, чтобы фонд Apache Software Foundation взимал за Java деньги.
За прошедшие годы технология Java пережила нашествие множества языков, начиная от JavaScript и заканчивая PHP, Ruby, F# и Google Go. В их числе присутствовали и языки, которые позволяли создавать программы, выполнявшиеся на виртуальной машине Java. Именно появление виртуальной машины JVM стало ключевым условием столь долгого процветания Java.
«В наибольшей степени развитию платформы Java способствовала именно JVM, – подчеркнул Гупта. – Она работает очень устойчиво и поддерживает множество популярных языков: Java, Groovy, Ruby, Scala, Clojure, Python и ряд других. Исходные тексты программ компилируются в байт-код и выполняются на виртуальной машине Java».
И сегодня Java не стоит на месте, а продолжает развиваться. В версии Java 8, выпущенной в прошлом году, появились элементы функционального программирования, а в версии Java 9, выход которой запланирован на 2016 год, будет реализован принцип модульности.
«Появление версии Java 9 и поддержка модульности станут серьезным техническим достижением, которого уже долгое время ждет вся экосистема, – отметил Майк Милинкович, исполнительный директор организации Eclipse Foundation, поддерживавшей усилия IBM по продвижению инструментов Java. – Кроме того, повышается роль Java как платформы для создания облачной инфраструктуры и Интернета вещей».
При поддержке Java
За прошедшие годы на основе Java было построено множество важных технологий и решений. На первое место здесь следует поставить, наверное, мобильную платформу Google Android, которая поддерживает Java с помощью виртуальной машины Dalvik. Это привело даже к тому, что корпорация Oracle подала судебный иск, в котором Google обвиняется в нарушении патентов и авторских прав. Android предоставляет разработчикам, имеющим опыт проектирования программного обеспечения на Java, широкое поле деятельности для создания мобильных приложений. «Java имеет критически важное значение для сообщества Eclipse, – указал Милинкович. – Из 270 наших проектов подавляющее большинство реализовано на Java. Сюда относятся инструментальные средства, исполняемые среды и технологии Интернета вещей».
Среди других технологий, созданных на Java, следует отметить серверы приложений BEA Systems и JBoss (приобретенные Oracle и Red Hat соответственно) и интегрированную среду разработки JetBrains IntelliJ Idea.
«Интегрированная среда разработки IntelliJ (а точнее, Renamer) стала ответом на личные потребности в поддержке при написании программного кода на Java, – отметил ведущий разработчик JetBrains Хади Харири. – И здесь ведущую роль, естественно, сыграла сама платформа Java».
На волне успеха Java сумела подняться и технология с открытым кодом Spring Framework, конкурирующая сегодня с Java Enterprise Edition.
Трудности и испытания
На пути к успеху Java пришлось преодолеть множество серьезных препятствий. В последние годы выявилась масса проблем в области безопасности, которые привели к тому, что Java стали помещать в карантин. Все громче заговорили о том, что клиентская часть Java, в отличие от серверной, давно устарела и является лучшим другом хакера. Однако в Oracle не опустили руки, взяли вопросы безопасности под свой контроль и прилагают все усилия к тому, чтобы ситуация в этой области улучшилась.
Не все довольны и тем, что в последние пять лет дальнейшим развитием Java занимается Oracle. Компанию критикуют за ошибки в управлении, стагнацию и включение ненужных программных компонентов в инсталлятор Java. Джеймс Гослинг, которого считают создателем Java, покинул Oracle вскоре после приобретения ею компании Sun и не раз неоднозначно отзывался о нынешней стратегии управления технологиями Java.
Разработчики технологии и приложений Java упустили из сферы своего влияния весьма популярные сегодня в мире устройства iOS, и это стало еще одной их неудачей. Впрочем, благодаря изобретательности сообщества Java, независимые поставщики инструментальных средств продвинулись значительно дальше в этом направлении и нашли способы, позволяющие разработчикам программ на Java использовать свои навыки при создании приложений для iPad и iPhone.
Позицию, занятую разработчиками Java в отношении мобильных устройств, многие не одобряют, даже несмотря на то, что Android поддерживает Java, а технология Java Micro Edition на протяжении многих лет способствовала продвижению Java на встроенных устройствах.
«В свое время разработчики Java не заметили мобильной революции, и сегодня на этом рынке доминируют iOS/Swift и Android/Dalvik, – подчеркнул Гупта. – Технология Java вполне могла бы занять достойное место на этих устройствах, но популярность в масштабах Web ничего не значит, если она не поддерживается производителями конкретных устройств».
Самым же серьезным барьером на пути дальнейшего развития Java на протяжении многих лет остается широкое распространение JavaScript.
Создатель JavaScript Брендан Эйх заметил недавно, что в JavaScript можно реализовать все то, на что претендовала сама технология Java: виртуальную машину в том или ином виде, распространение на всех платформах, позиционирование кода и поддержку множества языков.
После появления Node.js состоялось вторжение JavaScript и на основную, серверную территорию Java. Компании PayPal и Netflix уже сделали ставку на Node.js, отдав этому решению предпочтение перед Java.
По-прежнему в силе
Невзирая на все препоны, Java прочат долгую жизнь.
«На ближайшие пять-десять лет Java останется важной частью общей инфраструктуры, сохраняя свое присутствие во всех основных системах, но на клиентских устройствах уровень проникновения этой технологии будет снижаться, – полагает Хаммонд. – Этому будут способствовать и последние изменения, внесенные Microsoft и Google в свои браузеры, и дальнейшее распространение мобильных устройств».
В ближайшие годы Java придется доказывать свою состоятельность на растущем рынке микросервисов и масштабируемых архитектур.
«С Java 9 мне хотелось бы познакомиться поближе и посмотреть, как в этой версии реализована модульность библиотек Java, – признался Хаммонд. – Мы видим, как устройства, использующие компактные исполняемые среды наподобие Node, закладывают основы для создания новых архитектур на базе микросервисов и движения в сторону масштабируемых архитектур. Java и .Net придется доказывать, насколько хорошо они справляются со своими задачами в этом мире. Несмотря на зрелость Java, дополнения виртуальных машин в виде лямбда-выражений и поддержки других языков помогают поддерживать платформу в свежем и актуальном состоянии».
«Думаю, что с точки зрения технологических перспектив Java движется в правильном направлении, а новые проекты, включая Groovy, помогают принимать правильные решения, в том числе и о добавлении лямбда-выражений», – заметил руководитель проекта Groovy Гийом Ляфорж, занимающийся лямбда-выражениями с 2003 года.
По мнению Милинковича, Java уготована долгая жизнь – технология будет существовать еще по крайней мере лет 50.
«Язык и платформа Java сформировали целое поколение корпоративного программного обеспечения, и эти системы будут работать еще очень долго, – указал он. – Миллионы разработчиков используют Java в качестве основного языка, а полученные навыки будут служить им на протяжении многих лет. Нельзя не отметить также, что Java сегодня в долгу перед сообществом сторонников программного обеспечения с открытым кодом. Во многом своим успехом эта технология обязана инновациям и поддержке, которые она получала от Apache и Eclipse. Профессиональная и совершенно бесплатная интегрированная среда разработки Eclipse во многом способствовала широкому распространению Java в мире. А вклад Apache в Tomcat, Commons, OpenJPA и другие проекты помог проникновению Java в корпоративную среду».
«За прошедшие годы вокруг Java успело сформироваться мощное сообщество», – добавил Гупта.
По-видимому, этот фактор – неустанная работа сообщества – и станет ключевым в обеспечении дальнейшего развития и долголетия Java.
– Paul Krill. Java at 20: The programming juggernaut rolls on. InfoWorld (US). 05/18/2015