Круглый стол Java, весна 2010

Движущие силы индустрии Java

В настоящее время Java™ – это стабильная платформа, за которой стоит активное сообщество разработчиков, но это, однако, не означает, что она достигла предела своего развития. Поглощение Sun Microsystems компанией Oracle – это лишь одно из серии событий, имеющих фундаментальное значение для развития Java-технологий. Не желая оставаться сторонним наблюдателем, Дженни Элой (главный редактор раздела Java на сайте developerWorks) собрала круглый стол из девяти ведущих специалистов по Java, предложив им высказаться на тему настоящего и будущего технологий, культуры и индустрии Java.

Дженни Элой, редактор раздела Java, IBM

Jenni AloiДженни Элой возглавляет редакторскую команду раздела Java на сайте developerWorks с ноября 2000 года. Несмотря на то, что она кажется вечно недовольной (причем практически по любому поводу), Дженни действительно нравилось все эти 9 лет выполнять свою любимую работу, хотя это почти то же самое, что "пасти котов".



Эфен О'Ши, независимый технический редактор и писатель, Независимый разработчик

Photo of Athen O'SheaЭфен О'Ши (Athen O'Shea) – редактор и автор, пишущий на темы, посвященные различным технологиям, бывший редактор сайта JavaWorld.com. В качестве независимого автора он сотрудничает с developerWorks с 2001 г.



09.11.2011

С тех пор, как в прошлом году Oracle впервые объявил о намерении приобрести Sun Microsystems, в сообществе Java-разработчиков шли горячие споры о том, к каким реальным переменам приведет смена владельца и как это отразится на будущем платформы Java.

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

Сейчас, когда Oracle завершил поглощение Sun, а выход седьмой версии Java намечен на конец года, самое время созвать круглый стол ведущих специалистов сообщества Java-разработчиков, архитекторов и аналитиков (как независимых, так и представляющих крупные компании) и выяснить их взгляды на настоящее и будущее технологий, культуры и индустрии Java.

Мы получили разные ответы, от очевидных до неожиданных, но все они были подкреплены недюжинным опытом работы с платформой Java. Мы искренне признательны всем экспертам, принявшим участие в дискуссии: Дэну Аллену (Dan Allen), Нилу Форду (Neal Ford), Эндрю Гловеру (Andrew Glover), Ричарду Хайтауэру (Richard Hightower), Мику Керстену (Mik Kersten), Кристоферу Дж. Маки (Christopher J. Mackie), Алексу Миллеру (Alex Miller), Теду Ньюворду (Ted Neward) и Дж. Стивену Перри (J. Steven Perry). Вы можете подробнее ознакомиться с их послужными списками, которые включают статьи, опубликованные (в том числе) на сайте developerWorks.

Замечание. Мнения и комментарии экспертов не являются официальной точкой зрения IBM. За более подробной информацией о деятельности IBM, касающейся платформы Java, обратитесь к статье Криса Бэйли (Chris Bailey) Технология Java. Стиль IBM: новая эра Java-технологий. В ней приводится введение в некоторые из основных возможностей, которые появятся в спецификации Java 7 от Oracle, а также дополнительная функциональность, разработанная в IBM. Кроме того, обратите внимание на информативную Web-трансляцию, в которой Трент Грей-Дональд (Trent Gray-Donald) – технический руководитель IBM SDK для Java 7 – своевременно рассказывает о грядущих изменениях.

Технологии Java в 2010 г.

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

"Сегодня для создания типичного Web-приложения на Java вам требуются различные инфраструктуры, общий размер которых составляет 15–20 МБ, причем еще до того, как вы написали первую строчку кода! – говорит Алекс Миллер. – Приступать к разработке подобных приложений становится утомительно, хотя у меня за плечами десять лет опыта программирования на Java".

C этой точкой зрения согласен Мик Керстен: "В отличие от объема человеческой памяти, размер программных систем, с которыми нам приходится иметь дело, постоянно возрастает".

В то же время Дэн Аллен заметил, что требования к выпуску приложений неуклонно ужесточаются. "В настоящее время разработчики не могут себе позволить тратить время на написание кода, который не имеет ничего общего с бизнес-логикой приложений, особенно если этот код представляет собой вновь изобретенный велосипед".

Большинство экспертов сошлись во мнении, что ключом к преодолению проблемы сложности (а также к успешному дальнейшему развитию Java вообще) являются инновационные решения, направленные на совершенствование инфраструктур, библиотек и языков для платформы Java.

Ваше мнение

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

"Чтобы Java оставалась популярной, ей необходимо выглядеть в глазах разработчиков как платформа, обеспечивающая быстрое создание готовых к эксплуатации приложений", – утверждает Эндрю Гловер. Он привел Grails в качестве примера упрощенного средства разработки корпоративных приложений, созданного на базе платформы Java.

"Используя инфраструктуры, аналогичные Grails, вы можете очень быстро создавать готовые к работе Web-приложения подобно тому, как это делается в Rails", – добавил Эндрю.

Другие технологии, которые, по мнению участников круглого стола, имеют большое значение для эволюции Java, включают Spring, Eclipse, Java-инфраструктуры для развертывания облачных приложений и виртуализации, базы данных типа "ключ/значение" и саму платформу Java EE 6.

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

"Многих программистов на Java привлекают сложные решения, – говорит Нил Форд. – Мы, как разработчики, должны с максимальной ответственностью подходить к решению проблем, избегая ненужных трудностей".

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

По словам Криса Маки, эволюцией как культуры, так и технологий Java во многом движет тенденция вывода процессов разработки за пределы крупных компаний. "Аутсорсинговые поставщики, постоянно создающие новые рабочие места – это новый тип компаний, имеющих другие требования к разработке и организационную культуру. Даже высококвалифицированные и опытные Java-разработчики могут испытывать определенные трудности при адаптации к новым условиям работы".


Oracle и технологии Java

После месяцев судебных разбирательств Oracle наконец оформил свой контроль над платформой Java. Экспертам был задан вопрос о том, какие аспекты смены владельца им представляются наиболее важными. Нас также интересовало, что, по их мнению, компании Oracle необходимо скорректировать в развитии Java, а что – оставить без изменений.

Большинство во главе с Риком Хайтауэром не ожидает революционных технологических изменений. "Вряд ли Oracle изменит своим правилам и решит усложнить жизнь разработчикам Java-приложений", – считает Рик.

Несколько экспертов выразили обеспокоенность судьбой JCP, а также надежду на то, что этот процесс продолжится и, по возможности, станет более зрелым и эффективным. "Мне бы очень хотелось, чтобы Oracle убрал ограничения на области использования, против которых Apache выступает уже много лет, а также разобрался с множеством документов JCP, которые задерживают JSR для Java 7", – говорит Алекс Миллер.

"Я надеюсь, что за обещаниями Oracle поддерживать JCP и увеличивать число участников процесса стоит нечто большее, чем обычный рекламный ход, – добавляет Стив Перри. – Пока не ясно, станет ли участие в JCP дороже для компаний. Кстати, как насчет индивидуального участия в JCP?"

Рассуждая на тему IDE, Мик Керстен назвал "проблематичным" выбор JDeveloper в качестве основной среды разработки, "принимая во внимание лидерство Eclipse в том, что касается функциональности, расширяемости и средств интеграции".

"Я надеюсь, что Oracle осознает важность Eclipse для общего успеха Java", – добавляет Мик.

"В более долгосрочной перспективе будет интересно наблюдать, решит ли Oracle сблизить Java с крупными корпорациями, либо "вытолкнет" ее в открытую, облачную среду, – рассуждает Крис Маки. – Мне кажется, что ставка на облачные технологии принесет больше пользы сообществу, но я не уверен, что это является приоритетом для Oracle".

"Поддержка облачных технологий несколько снижает важность разработки аппаратных решений. Это ставит Oracle в несколько двусмысленное положение, поскольку теперь компания занимается созданием и аппаратного обеспечения (с Solaris)", – говорит Эндрю Гловер.

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

"По моему мнению, процессы, происходящие с Java, определяются не столько поглощением со стороны Oracle, сколько сообществом Java в целом, в том числе его вкладом в разработку свободного программного обеспечения", – считает Гловер. Однако Дэн Аллен утверждает, что "многое зависит от того, имеет ли управляющая компания четкое представление о том, как следует развивать Java".

"Теперь во главе компании, управляющей Java, стоят люди, имеющие другие цели, и этот факт не может не отразиться на развитии Java и JCP (контроль над которой также принадлежит Oracle), – заявляет Алекс Миллер. – Я думаю, что Oracle будет стараться интегрировать Java-продукты, созданные Sun, и активнее извлекать из них коммерческую выгоду".

На данный момент не вызывает сомнений, что ориентированная на получение прибыли бизнес-модель Oracle окажет влияние на некоторые аспекты культуры Java.

"Немало Java-разработчиков в штыки воспримут коммерциализацию технологий, которыми они привыкли пользоваться бесплатно, – говорит Тед Ньюворд. – Но если честно, подобные изменения напрашивались достаточно давно".


Java 7: Замыкания и параллелизм

Работа над Java 7 продолжается уже более трех лет, и вот, наконец, ее выпуск намечен на конец 2010 г. Мы поинтересовались мнением экспертов о том, следует ли продолжать дебаты на тему замыканий, а также сможет ли функциональность Java 7 удовлетворить требования к поддержке параллелизма.

Некоторые эксперты усомнились в том, что Java 7 будет популярной при разработке приложений. "Мне по-прежнему приходится иметь дело с клиентами, которые все еще работают с Java 1.3 вследствие контрактов с поставщиками коммерческих серверов приложений, – говорит Эндрю Гловер. – Подобные реалии бизнеса не позволят определенной части сообщества Java перейти на новую платформу Java 7".

По мнению Стива Перри, "в Java 4 и 5 появилось множество замечательных новых возможностей, но в Java 7 это не совсем так". Тем не менее его, как консультанта, вполне устраивает работа со стабильными, проверенными технологиями.

Эндрю Гловер заметил, что некоторые весьма интересные решения, касающиеся параллелизма, создаются независимо от Java 7. В качестве примеров он привел свободную Java-инфраструктуру Kilim и функциональные языки, в частности Scala.

"JSR 203 – это прекрасное дополнение к NIO, а в JSR 166 предлагается немало полезных функций в плане параллелизма. Я также надеюсь, что разработчики успеют завершить работу над JSR 310 до окончательной ревизии", – говорит Алекс Миллер.

Он также отмечает некоторые важные усовершенствования в JVM, в том числе "байткод типа invokedynamic и новый, потенциально более мощный сборщик мусора G1".

Что касается замыканий, то Миллер считает, что "по ним следует продолжать обсуждения, и он рад, что они вернулись в список технологий-кандидатов".

Dan Miller's quote on the success of Groovy

Помимо других преимуществ, замыкания способны предоставить "общий стандарт байткода для взаимодействия между приложениями, написанными на разных языках для JVM, – утверждает Нил Форд. – В настоящее время внутреннее представление кода, используемое в Scala, отличается от JRuby, Clojure и Groovy, которые имеют собственные форматы. Общий формат позволит всем языкам для JVM использовать единое внутреннее представление кода".

"Успех Groovy недвусмысленно говорит о том, что разработчикам требуются замыкания в Java", – заявляет Дэн Аллен. Он также выразил разочарование из-за отсутствия свойств и прямых ссылок на поля и методы Java-классов, что, по его мнению, приводит к необходимости написания лишнего кода и нарушает безопасность типов.

"Немалая часть информации, указываемой разработчиком, теряется при компиляции, хотя она могла бы быть весьма полезной при создании инфраструктур, – говорит Аллен. – Примерами могут служить имена параметров методов, а также информация о типах-параметрах, которая отбрасывается при компиляции кода на Java в байткод.

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

По мнению Нила Форда, "разработчики языка Java должны, наконец, заморозить его развитие после выхода седьмой версии. Java должен превратиться в некоторое подобие ассемблера для JVM, т.е. в низкоуровневый язык, необходимый для сопровождения приложений и создания низкоуровневых библиотек".

Даже если говорить не только о языке, но и о платформе в целом, "Java находится не на том этапе своего развития, когда можно ожидать революционных изменений. Она просто представляет собой технологию, которая работает именно так, как от нее требуется, – считает Миллер. – И для корпоративных систем это является несомненным плюсом".


Проект Jigsaw

Аргументы о необходимости модульной структуры JDK появились еще в середине 1990-х, однако реальный интерес к модульности, а также надежды на ее реализацию существенно выросли за последние несколько лет. Усилия Sun по разбиению JDK в Java 7 на отдельные модули получил название проекта Jigsaw, являющегося частью OpenJDK.

Мы спросили участников круглого стола, что они думают о проекте Jigsaw применительно к OSGi, в частности о том, есть ли у него потенциал в качестве решения для модуляризации платформы и модели программирования Java.

"Я подозреваю, что не может быть единственно правильного решения для обеспечения модульности в Java, – заявил Крис Маки. – Несложно заметить, что существуют очень разные сценарии использования, каждый из которых может являться аргументом в пользу того или иного варианта разбиения на модули".

Говоря о различных JSR на тему модульности, Алекс Миллер заметил следующее: "Мне кажется, что весь процесс работы над JSR 294, 297, а также Jigsaw с самого начала был плохо организован. Над проектом работают одаренные специалисты с самыми лучшими намерениями, однако я сомневаюсь, что мне захочется использовать результаты их труда".

"Я считаю, что OSGi – это превосходная технология, но не думаю, что она является единственно возможным решением этой проблемы", – добавил он.

Нам необходимо "решение, обеспечивающее контроль версий, некоторую проверку зависимостей версий на этапах компиляции и выполнения, а также включающее систему для открытого описания метаданных компонентов", – говорит Тед Ньюворд. Вместо этого проект Jigsaw "превратился в еще один продукт творчества разгулявшихся инженеров, некий потомок OSGi и Maven".

"Это грустный вывод, поскольку мне кажется, что изначально Марк Рейнольд (Mark Reinhold) и Алекс Бакли (Alex Buckley) имели весьма убедительный взгляд на проблему модульности, – добавляет Алекс Миллер. – На основе решения для согласованной интеграции описания модулей, управления зависимостями и развертывания можно было бы построить систему, аналогичную CPAN, Ruby Gems или Groovy Grape, фактически представляющую собой новый, улучшенный подход к созданию и развертыванию Java-приложений".

Однако у модульности в Java по-прежнему хватает недостатков и критиков.

"Проект Jigsaw попросту не отвечает моим потребностям, – говорит Стив Перри. – Этот проект позволяет решать задачи, до которых мне нет практически никакого дела".

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

"При этом она может быть критически необходима на мобильных платформах", – добавляет он. – "Сложно представить, что Java может стать популярной платформой для смартфонов без поддержки модульности".

По мнению Дэна Аллена, мобильным приложениям "попросту не требуется то огромное количество пакетов, которое предоставляет JVM. Если бы Sun раньше начала работу по обеспечению модульности JDK, то такие платформы, как Android и Java ME могли бы и вовсе не потребоваться".


Java и виртуальные машины с поддержкой разных языков

Должен ли быть "единственный язык" для JVM?

Так же как и в сообществе Java целиком, среди экспертов есть расхождение во мнениях относительно необходимости базового языка для JVM, вокруг которого должны развиваться все остальные языки.

По мнению Нила Форда, "Java пришел конец. Точка. Однако будущее программирования на разных языках для JVM выглядит многообещающе". Если взять в качестве примера Swing, то "можно использовать DSL в JRuby (Swiby) или Groovy (SwingBuilder) для создания пользовательского интерфейса, писать критические, потокобезопасные части приложения на мощном функциональном языке, например Clojure, при этом продолжая применять множество Java-библиотек, которые накопились за годы работы с мэйнфреймами".

Однако Стив Перри считает, что подобный сценарий повышает нагрузку на разработчиков, не принося серьезных преимуществ для бизнеса. "Будучи консультантом, я стараюсь дистанцироваться от водоворота различных технологий и применять новое решение только в том случае, если оно действительно привлекает мое внимание".

В то же время Дэн Аллен называет JVM идеальной средой для экспериментирования. "Как только будет найден наиболее удачный язык, разработчики могут перейти на него, не отказываясь от своего предыдущего опыта". Он считает, что успех Groovy и Scala подтверждает правильность экспериментирования с языками для JVM. Однако ни один из этих языков не является идеальным, поэтому "следует продолжать искать компромиссы, убеждая нас, что перспективы создания такого языка еще не исчерпаны".

Итак, прошло ли время поиска единственно верного языка для JVM или процесс следует продолжать? Выскажите свое мнение!

На протяжении определенного периода времени среди экспертов сообщества Java (некоторые из них писали статьи для developerWorks) не утихают споры, следует ли считать Java "мертвым" языком, или же она "не более мертва", чем COBOL (см. раздел Ресурсы). При этом более тонким является вопрос о том, насколько сейчас вообще важно говорить о "жизни" или "смерти" Java, учитывая, какое количество языков поддерживается JVM.

По мнению Эндрю Гловера, мультиязычность JVM "приводит к тому, что тезис о "смерти" Java становится все менее интересным. Java – это платформа. Если в языке Java отсутствует требующаяся мне возможность (или возможность, которую я видел где-то еще), то всегда есть шансы, что я смогу найти ее в другом языке для JVM".

"Четкое разграничение между языком и виртуальной машиной – это одна из гениальных идей, лежащих в основе Java", – считает Нил Форд. Надежность и зрелость JVM позволяет разработчикам "сочетать использование разных языков, используя сильные стороны каждого из них".

По словам Алекса Миллера, поддержка множества языков для JVM продолжит открывать новые возможности для разработчиков на Java (одним из примеров является проект "Da Vinci Machine" в составе OpenJDK). Она способствует "продолжению работы над совместимостью языков, протоколами обмена метаинформацией и другими полезными возможностями".

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

"Java – это очень простой для понимания язык, хорошо подходящий для создания корпоративных приложений", – говорит Дэн Аллен. Однако ему необходимо активно эволюционировать. "Должны появляться новые возможности, заменяя ранее использовавшиеся, которые должны объявляться устаревшими. При этом важно постепенно избавляться от устаревших конструкций. Ни один разработчик, работающий с Java 5, не использует возможности, которые были объявлены устаревшими еще в Java 1.1".

Тед Ньюворд также призвал разработчиков языка Java "обратить внимание на другие языки в той же нише, для начала на C++, C# и Visual Basic, и определить набор основных возможностей, способных снова поднять интерес и повысить популярность Java".

"Java представляет собой отличную основу для объектно-ориентированных языков программирования, – утверждает Мик Керстен. – Это законченный, эффективный и эволюционно развивающийся язык. Однако сообщество Java должно прикладывать усилия для дальнейшего появления инновационных решений для JVM".


Каково будущее Spring?

У одной из наиболее функциональных и популярных платформ разработки приложений на Java в 2009 г. сменился владелец, когда компания VMWare купила SpringSource. Экспертам был задан вопрос о том, как они видят развитие Spring Portfolio под руководством VMWare.

В этом вопросе участники дискуссии сошлись во мнении, что VMWare будет развивать Spring в сторону облачных вычислений. По словам Теда Ньюворда, Spring "превратится в платформу создания облачных приложений, однако сохранит поддержку разработки корпоративных систем, характерную для настоящего времени".

С этим мнением согласен Мик Керстен: "CloudFoundry, созданная SpringSource – это платформа будущего, позволяющая разработчикам развертывать, отлаживать и управлять приложениями, которые выполняются в облаке, из интегрированной среды разработки".

С точки зрения создателя бизнес-приложений, Spring, возможно, "излишне амбициозна", – допускает Стив Перри. И действительно, Spring превращается в некого программного монстра. "У разработчиков не должно возникать необходимости обновлять реализацию Spring каждые три месяца", – добавляет он.

Рик Хайтауэр согласен с тем, что Spring Portfolio "стремительно разрастается во всех направлениях. Проекты Spring Roo и Spring STS – прекрасные примеры создания решений по принципам Spring".

Не исключено, что новые продукты Spring Portfolio постепенно возвращаются к основам Spring, в особенности к аспектно-ориентированному программированию. "Если вы еще этого не сделали, то самое время стряхнуть пыль с ваших книг по AspectJ".


OpenJDK и Apache Harmony

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

По словам Дэна Аллена, "альтернативные реализации повышают вероятность нахождения оптимального решения либо решения, оптимизированного для решения конкретной задачи. Например, одна JVM может отличаться скоростью запуска, а вторая – экономным потреблением памяти в течение долгого времени функционирования".

"В некотором смысле текущая ситуация оптимальна", – считает Крис Маки. Однако в долгосрочной перспективе обоснование существования конкурирующих проектов может стать проблемой, разумеется, не для их авторов, а для пользователей, которые вовсе не обязательно будут разделять увлечения и личную заинтересованность создателей обеих реализаций.

При этом все пользователи заинтересованы в "получении максимальной выгоды от инвестиций", – добавляет Крис.

Ted Neward's quote on OpenJDK and Apache Harmony

Для некоторых экспертов проекты Apache Harmony и OpenJDK являются олицетворением преимуществ и недостатков свободного программного обеспечения.

"Открытие исходного кода платформы Java – отличная идея, – говорит Тед Ньюворд, – и я полностью поддерживаю эту инициативу. Однако не стоит себя обманывать: те два процента разработчиков, для которых это имеет значение, не оказывают серьезного влияния на развитие открытых проектов на основе OpenJDK и Harmony".

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

По словам Рика Хайтауэра, в том, что касается технологий, "OpenJDK и Apache Harmony играют роль запасного парашюта: хорошо, что он есть, но лучше, чтобы им не пришлось воспользоваться. Я надеюсь, что Oracle будет умело управлять развитием платформы Java, чтобы разработчикам не пришлось прибегать к альтернативным реализациям".


Облачные вычисления

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

"Облачные технологии в 2010 г. находятся на том же этапе, на котором были средства виртуализации в 2008, распределенные вычисления – в 2007, а Web-сервисы – в 2005, – говорит Тед Ньюворд, – это непростая для понимания концепция, из которой, несмотря на внешне впечатляющие возможности, пока нельзя извлечь материальной выгоды".

"Облачные вычисления – это чересчур разрекламированный термин, – соглашается Алекс Миллер, – однако стоящие за ним технологии реальны и могут быть полезны. Практически все знакомые мне разработчики либо уже используют облачные сервисы, либо рассматривают возможность работы с публичными или закрытыми облачными инфраструктурами".

Alex Miller's quote on cloud computing

"Одним из очевидных примеров использования облачных платформ, например Amazon EC2, является тестирование, – считает Эндрю Гловер. – При этом нет необходимости заранее тратить средства на аппаратную инфраструктуру для тестирования, поскольку за использование таких сервисов можно платить по мере их применения".

С этим мнением согласен Алекс Миллер: "Знакомясь с преимуществами и недостатками облачных платформ, многие группы разработчиков делают первые шаги в сторону их использования для тестирования масштабируемости, производительности и развертывания внутренних приложений".

"Поддержка собственного сервера связана с серьезными накладными расходами, – утверждает Дэн Аллен. – Если удастся абстрагироваться от аппаратуры и контролировать все процессы из IDE, то разработчики смогут сконцентрироваться исключительно на реализации бизнес-логики".

Некоторые из участников выразили обеспокоенность тем, что разработчики и компании могут недооценивать затраты на перенос приложений на облачные платформы.

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

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

Это мнение разделяет Крис Маки: "Перенос большинства существующих корпоративных приложений на EC2 легче пообещать, чем сделать. Однако это означает, что на сообразительных облачных разработчиков в ближайшее время будет высокий спрос".


Новые области применения технологий Java

IBM и другие корпорации стараются всячески развивать идею того, что инновационные технологии являются ключом к улучшению жизни на нашей планете (эта концепция получила название "разумная планета" – smarter planet). Это простой тезис, однако большинство инициатив сопряжено с появлением новых трудностей (этот факт особенно хорошо известен разработчикам программного обеспечения). Экспертам был задан вопрос о том, насколько больших усилий потребует внедрение интеллектуальных технологий в новые области деятельности, а также какие отрасли получат наибольшие преимущества от инновационных программных решений.

"Первые две отрасли, которые хочется назвать сразу – это здравоохранение и финансы, особенно банковское дело, – считает Стив Перри. – Я уверен, что более строгое регулирование потребует новых, улучшенных программных систем в обеих областях".

На недостаточное использование технологических решений в здравоохранении также указал Дэн Аллен: "В то время как люди, находящиеся в разных уголках земного шара, могут обмениваться информацией о том, что они ели на завтрак (благодаря Twitter), в офисе клиники, обслуживающей мою жену, уже месяц не могут найти рентгеновские снимки из лаборатории. Ключом к решению подобных проблем являются легковесные Web-сервисы, например REST".

Дэн Аллен и Эндрю Гловер видят потенциал для дальнейшего развития в области мобильных технологий: "Мобильные вычисления – это перспективно, – считает Гловер, – в концепции "разумной планеты" большое внимание уделяется использованию мобильных устройств для эффективного обмена информацией".

По мнению Аллена "ключом к успеху для Java-разработчиков будет освоение и активное использование платформы Android. Однако это означает, что потребуются стандартизированные решения проблем работы с мультимедиа в Java".

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

Некоторые эксперты предостерегли от расширения Java в новые области до тех пор, пока, по словам Теда Ньюворда, "не будут устранены основные проблемы в существующих".

"Создание качественных приложений требует времени и повышенного внимания, что не поддерживается индустрией программного обеспечения, – утверждает Стив Перри. – Нам необходима высокая продуктивность, которая, по моему мнению, практически всегда сопряжена со сложностями сопровождения".

"Для того чтобы программное обеспечение приносило реальную пользу не только в корпоративных системах, необходимо совершенствование не только качества, но и удобства использования, – говорит Тед Ньюворд. – Большинство приложений сегодня требуют немалых начальных усилий, например сборки из исходного кода, предварительной установки всех требуемых библиотек, библиотек, которые требуются другим библиотекам, и так до бесконечности. Самое главное, что все это приходится делать еще до того, как приложение начнет окупаться".

"Умение создавать, изменять и развертывать технологические решения быстрее конкурентов имеет решающее значение", – утверждает Алекс Миллер. Это важно практически в любой области. Однако он также добавляет, что "управление сложностью программного обеспечения абсолютно критично для популярности Java."


Свободное программное обеспечение: где же финансовая составляющая?

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

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

По словам Мика Керстена, "IBM Rational® удалось превратить Eclipse в открытую платформу для создания программного обеспечения и продавать инновационные продукты на ее основе".

Открытым проектам по созданию программного обеспечения для успеха необходимо "постоянно поддерживать темпы развития", – считает Эндрю Гловер. Далеко не все открытые бизнес-модели успешны. "Продукт, лежащий в основе модели, должен иметь крупное и многообразное сообщество пользователей, на которое его коммерческий владелец может ориентировать услуги по поддержке", – добавляет Гловер.

Mik Kersten's quote on Rational and Eclipse

"Зрелость также имеет ключевое значение, – говорит Крис Маки. – Предлагаемые преимущества и вертикальные рынки свободного программного обеспечения столь весомы, что вероятность его исчезновения мизерна". При этом Маки отмечает, что изначально закрытые инновационные решения часто "уступают дорогу более долговечным открытым альтернативам".

По его словам, компании-производители коммерческого программного обеспечения способны более эффективно наращивать капитал. Однако свободное ПО позволяет использовать человеческие ресурсы "в масштабах, которые недоступны вертикальным рынкам закрытых программных продуктов".

"Если вы хотите зарабатывать на свободном программном обеспечении, то вам следует сначала определиться, как именно вы собираетесь зарабатывать, а уже потом думать о том, как вам в этом может помочь свободное ПО, – говорит Тед Ньюворд. – Обратный подход обречен на неудачу".

По его мнению, покупка Sun компанией Oracle – это подтверждение того, что "компании, которые медленно и постепенно обращали внимание на свободное ПО, в частности Microsoft и Oracle, сумели лучше определить, каким образом оно способно принести пользу, а не вред их бизнесу".

"IBM заработал миллиарды долларов на свободном ПО, вложив в него при этом немалые средства, – говорит Рик Хайтауэр. – Это прекрасный пример того, как следует зарабатывать деньги в этой отрасли, при этом внося свой вклад в развитие сообщества".

"Я надеюсь, что в будущем другие компании последуют примеру Oracle и VMWare в том, что касается управления развитием свободных технологий", – добавляет Стив Перри.


Заключение

Java появилась почти 20 лет назад, а в настоящее время находится на пороге нового периода в своем развитии. Безусловно, Oracle окажет серьезное влияние на будущее Java-технологий, но большое значение будет иметь воля и инициативность сообщества Java и разработчиков свободного программного обеспечения.

Одной из наиболее остро обсуждаемых тем является JCP (Java Community Process). Многие разработчики задаются вопросом, сдержит ли Oracle свое обещание поддерживать и развивать JCP и, если да, то как именно это будет происходить. Немало специалистов ожидает, что сегодняшняя модель, ориентированная на свободное и бесплатное программное обеспечение, изменится под влиянием Oracle. Эти изменения, которые могут быть как косметическими, так и кардинальными, наложат свой отпечаток на то, как разработчики используют и развивают технологии Java.

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

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

Главный итог круглого стола заключается в том, что будущее Java обещает быть увлекательным, но требовательным к разработчикам. Те из них, которые смогут эффективно работать в условиях, когда быстро развивающиеся технологии (например, мобильные и облачные вычисления) находят применение в конкретных отраслях (таких как здравоохранение и финансы), обязательно будут востребованы.

Ресурсы

  • Оригинал статьи: Java platform roundtable, Spring 2010 (Дженни Элой, Эфен О'Ши, developerWorks, апрель 2010 г.). (EN)
  • Обратите внимание на Трансляцию выступления Трента Грея-Дональда (developerWorks, апрель 2010 г.), в которой технический руководитель SDK для Java 7, созданного в IBM, рассказывает о Java 7 и возможностях, добавленных в данном SDK. (EN)
  • Посмотрите запись OTN Tech Cast LIVE: интервью Марка Рейнольда, взятое Джастином Кестелином (Editor's Daily Blog, Java.net, февраль 2010 г.), представляющее собой краткую версию полного технического интервью главного инженера Java SE 7, который рассказывает о новых возможностях Java 7. (EN)
  • Ознакомьтесь со статьей Oracle и будущее JCP (Митчелл Проншинске, Mitchell Pronschinske, Javalobby, февраль 2010 г.), в которой члены исполнительного комитета JCP рассказывают о своих взглядах на стремление Oracle расширить число участников JCP. (EN)
  • Прочитайте заметку Java 7 на сайте Pure Danger Tech, в которой Алекс Миллер приводит полный перечень возможностей, которые было предложено включить в Java 7, с информацией о каждой из них. (EN)
  • Прочитайте серию статей Вторая волна Java-разработки (Эндрю Гловер, developerWorks), в которой основное внимание уделяется технологиям, меняющим характерные черты разработки Java-приложений. К ним относятся облачные вычисления, программирование на разных языках, а также новые подходы к параллельной обработке данных, в частности Kilim. (EN)
  • В статье Язык, выразительность и проектирование. Часть 1 (Нил Форд, developerWorks, июль 2009 г.) Нил Форд формулирует классические шаблоны проектирования из книги "Design Patterns: Elements of Reusable Object-Oriented Software" для Groovy – динамического языка для JVM. Эта статья является частью серии Эволюционная архитектура и стихийное проектирование того же автора. (EN)
  • Ознакомьтесь со статьей Аргументы в пользу модульности в Java (Джефф Хансон, Jeff Hanson, JavaWorld.com, август 2008 г.), в которой объясняется, почему модульность является важным звеном в эволюции платформы Java. (EN)
  • Запросы на спецификации в Java (JSR): ознакомьтесь с полным перечнем JSR, в том числе тех, которые должны войти в состав Java 7. (EN)
  • Прочитайте об участниках круглого стола, посвященного платформе Java. Все приглашенные эксперты являются признанными лидерами сообщества Java и принимают активное участие в эволюции технологий, культуры и индустрии Java. (EN)
  • Обратитесь к магазину технической литературы, в котором представлены книги на эту и другие темы. (EN)
  • Сотни статей обо всех аспектах программирования на Java можно найти на сайте developerWorks, в разделе Java-технологий.
  • В разделе облачных вычислений на сайте developerWorks представлена коллекция материалов, затрагивающих все этапы создания приложений для облачных платформ, которые помогут вам обрести необходимые навыки и решать возникающие на практике проблемы. (EN)

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Технология Java
ArticleID=773023
ArticleTitle=Круглый стол Java, весна 2010
publish-date=11092011