|
|
Обзор
Рынок ИТ: итоги 2011Обзор подготовлен
Несмотря на то, что технология Java в последние годы понесла большие потери на PR-фронте, в технологическом и организационном плане состояние Java сейчас намного лучше, чем три-четыре года назад. Oracle удалось объединить вокруг собственной реализации Java OpenJDK ключевых игроков отрасли, и в ближайшем будущем мы будем наблюдать не только стабилизацию, но и ускорение развития платформы.
Последние пять-шесть лет были не лучшим временем в истории Java. Начнем с того, что в последние годы своего существования Sun по сути застопорила развитие технологии, и с 2006 г. до 2011 г. новые версии платформы не выпускались. Как показывают промежуточные результаты судебного разбирательства с Google по поводу Android, надеждам Oracle «раскрутить» Google на миллиардные выплаты, видимо, не суждено оправдаться, в то время как сомнительные действия и заявления Oracle в ходе этого процесса (чего только стоит признание Ларри Эллисона в том, что он не знает, является ли Java бесплатной) нанесли Java существенный имиджевый ущерб. Разговор о потерях Java на PR-фронте можно продолжать, но и в техническом плане дела у технологии как будто бы идут не лучшим образом: Java как язык программирования давно перестала быть новинкой, и сегодня молодые разработчики все больше внимания уделяют динамическим языкам программирования, таким как PHP, Python, Ruby, и JavaScript на стороне сервера. Итак, Java подошла к концу своего существования?
Текущее состояние Java
9 млн разработчиков
3 млрд Java-совместимых устройств
Второй по популярности язык после C
индекс популярности среди языков программирования – 16,6%
Среди участников разработки: Oracle, IBM, SAP, Apple и др.
Источник:Oracle,Tiobe,2012
Разумеется, нет, и Java будет существовать еще очень долго. Что же касается разговоров о конце Java, то все они основаны на ошибочном восприятии Java как языка программирования. На самом деле Java – это, прежде всего, комплексная платформа для создания приложений самого разного класса – корпоративных, настольных, мобильных, встраиваемых, – и у нее есть только один полноценный конкурент – аналогичная платформа .Net от Microsoft. В своем классе тандем Java и .Net практически не имеет альтернатив, и говорить о том, что Java в последние годы существенно уступила свои позиции в пользу технологии Microsoft, у нас нет оснований.
Итак, Java будет жить просто потому, что индустрия пока что не предложила никакой достойной замены. Но как будет проходить развитие Java на протяжении ближайших нескольких лет?
В прошлом 2011 году Oracle положила конец длительной паузе в развитии Java и выпустила платформу Java SE 7. Как сообщил CNews Джордж Сааб, вице-президент Oracle по разработке платформы Java, когда Oracle начала разбирать планы, накопленные Sun по развитию Java, то выяснилось, что их с лихвой хватит на пять лет работы – не говоря уже о новых идеях. «И тогда мы приняли решение обратиться к сообществу и спросить его представителей, что для них наиболее приоритетно», – говорит вице-президент Oracle. Поэтому в последнее время Oracle была занята не столько изобретением нового, сколько решением неотложных задач, которые накопились в неспокойные годы, предшествовавшие закату Sun Microsystems как самостоятельного рыночного игрока.
В Java 7 реализована часть этих планов, в частности, добавлена поддержка динамических языков программирования – таким образом, сегодня на платформе Java могут полноценно работать разработчики, предпочитающие языку Java языки JRuby, Jython и Clojure. Однако часть важных усовершенствований, которые ранее планировалось реализовать в Java 7, были отложены на более позднее время: речь идет в первую очередь о проектах Lambda и Jigsaw, которые обеспечат поддержку в Java замыканий и модульного программирования.
Новую Java 7 использует уже около пятой части разработчиков
Источник: Zeroturnaround, 2012
Однако, возможно, еще более важными, чем технические улучшения, были сдвиги на организационном фронте. Возможно, крупнейшее достижение Oracle, связанное с развитием Java, – это преодоление многолетних разногласий между Sun и IBM, с которыми в значительной мере связан тот факт, что развитие Java в период 2006-2011 гг. застопорилось. Можно только догадываться, какие уступки были сделаны при заключении этого соглашения, но IBM отказалась от многолетнего проекта по созданию альтернативной реализации Java и присоединилась к проекту OpenJDK. Кроме IBM, Oracle также удалось заручиться поддержчкой Apple, SAP, Red Hat и других компаний. Наконец, руководящие правила сообщества OpenJDK, которые при Sun всегда были «временными», были наконец заменены на постоянные.
Иными словами, Oracle удалось успешно преодолеть разброд и шатание в области создания реализаций Java, направив усилия всех заинтересованных участников рынка в одно русло – русло OpenJDK. (Правда, при этом пострадал проект Apache Harmony – конкурент OpenJDK, также с открытым кодом, который длительное время пользовался поддержкой IBM, но теперь был не самым красивым образом отправлен в самостоятельное плавание. Но это, как говорится, отдельная история.)
Итак, организационные вопросы решены, горящие задачи, которые возникли сразу после поглощения Sun, выполнены, и теперь развитие Java должно продолжаться более-менее стабильно. Чего же следует ожидать?
В версии JDK 8, выход которой ожидается летом 2013 г., помимо упомянутых проектов Jigsaw и Lambda, ожидается поддержка новых типов устройств (включая планшеты и мобильные телефоны, оснащенные камерами, акселерометрами и др.), платформа JavaFX 3.0 для разработки приложений с богатыми интерфейсными возможностями и другие улучшения. В будущем ожидается сделать платформу JVM изначально пригодной для использования с различными языками программирования, усовершенствовать возможности по использованию Java в многопользовательской облачной среде и др.
Однако усовершенствования будут осуществляться не только в области стандартной (SE) и корпоративной (EE) версий Java, но и в области мобильной версии (ME). В частности, планируется преодолеть разрыв между мобильной и стандартной версиями, синхронизировать их по времени выпуска и добиться возможности запускать любое приложение, написанное для мобильной версии, в среде стандартной.
Обращает на себя внимание тот факт, что во всех перечисленных улучшениях нет никаких революционных идей. Действительно, в то время как энтузиасты обсуждают новые динамические языки программирования и новые технологические парадигмы, вроде NoSQL, планы разработчиков Java выглядят достаточно консервативно.
Однако, как считает Джордж Сааб, именно такой консервативный подход и был свойствен Java с самого начала существования технологии: «Java не принесла так уж много новых идей, но она объединила множество перспективных идей из разных мест в одном удобном пакете, который было просто понять, – сообщил он CNews. – Привлекать сообщество к развитию всего этого важно и сейчас. Я думаю, что другими разработано очень много полезных идей, и одна из важных функций – смотреть вокруг и складывать это в один пакет».
Таким образом, сегодня Oracle лишь продолжает действовать по принципу «с миру по нитке», который был изначально присущ Java. Однако в заимствовании чужих идей Oracle действует выборочно и отбирает лишь проверенные. В качестве одного из примеров Джордж Сааб привел технологию Jigsaw: «Сама по себе модульная система – это ничто, их уже создано множество. Но что мы пытаемся сделать – это научиться на проверенных временем и хорошо зарекомендовавших себя идеях».
Егор Гребнев