Вполне резонно было ожидать, что после открытия исходных кодов ОС Solaris и Java софтверное направление компании Sun Microsystems будет переживать достаточно бурный и интересный период своего развития. Язык Java на ИТ-рынке уже превратился в отдельную экосистему, которая развивается по своим законам и продолжает оказывать существенное влияние на множество сегментов рынка. Уже во второй раз организованная в Санкт-Петербурге практическая конференция Sun Tech Days, посвященная технологии Java, на несколько дней стала своеобразной Меккой для Java-программистов не только из России, но и множества других стран СНГ.


Конференция собрала более 1500 участников со всего региона СНГ
Конференция собрала более 1500 участников со всего региона СНГ

Место проведения Sun Tech Days было выбрано не случайно — в Санкт-Петербурге расположен один из наиболее многочисленных и плодовитых R&D-центров Sun, именно здесь рождается большая часть кода новых версий JDK и сопутствующих проектов. Качественно меняется и состав участников Sun Tech Days, становясь более молодым: в конференции принимает участие все больше Java-разработчиков из числа студентов ВУЗов. Пристальное внимание конференции уделили не только разработчики, которых собралось более 1,5 тысяч, но и организаторы — событие посетило рекордное количество “евангелистов”, которые пропагандируют новейшие тенденции развития Sun Microsystems во всем мире.

Основными темами, которые обсуждались на Sun Tech Days, традиционно были операционная система Solaris, различные инкарнации технологии Java, а также ожидания и прогнозы разработчиков, связанные с доступностью этих двух разработок сообществу Open Source. Джефф Джексон (Jeff Jackson), вице-президент софтверного подразделения корпорации и один из старейших руководителей Sun, который отвечает за развитие Solaris, в докладе на пленарном заседании рассказал об ожиданиях компании, связанных с открытием исходного кода ОС в рамках проекта OpenSolaris. Джефф Джексон также осветил планы Sun Microsystems по развитию этого проекта — речь шла о поддержке PHP, использовании встроенных возможностей инструментария DTrace и о новом многообещающем скриптовом объектно-ориентированном языке под рабочим названием “F3”.

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

Для разработчиков организаторы предусмотрели возможность собственноручно опробовать новые продукты в рамках технических сессий и мастер-классов по каждому из трех направлений Java  — Enterprise, Standard и Mobile Edition. Отдельные сессии были проведены по веб-сервисам, SOA и AJAX, которым в развитии экосистемы Java уделяется особое внимание. Для популяризации среды разработки NetBeans, которая сегодня переживает период сложной “борьбы за разработчика” с альтернативным пакетом Eclipse (см. PCWeek/UE №7/2006, стр. 42), Sun Microsystems организовала NetBeans Day — своего рода конференцию в конференции. Также отдельным направлением была операционная система Open Solaris, которая с каждым днем привлекает все большее число пользователей, применяющих ОС как для разработки, так и в качестве корпоративной платформы.

КОММЕНТАРИИ ЭКСПЕРТА

Саймон Риттер (Simon Ritter), один из самых известных “технологических евангелистов” Sun Microsystems, рассказывает редактору PCWeek/UE о новых разработках, конкурентной среде и о взаимодействии компании с сообществом Open Source.

PCWeek/UE: Существует мнение, что главная проблема продвижения многопоточных вычислений лежит в области ПО. Разработчики привыкли писать однопоточный код, для них крайне тяжело изменить наработанным годами привычкам и методикам. Расскажите о подходах Sun Microsystems к вопросам создания многопоточного кода. Какие существуют инструменты, облегчающие работу разработчиков?


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

С точки зрения Sun, одна из проблем, с которой столкнулись традиционные конструкции микропроцессоров, — исчерпание экстенсивной модели развития. Индустрия всегда стремилась к тому, чтобы процессоры работали на более высокой тактовой частоте, чтобы на одной подложке разместить максимальное количество транзисторов. А затем мы столкнулись с физическим пределом, и оказалось, что увеличение тактовой частоты не всегда пропорционально увеличению производительности. Альтернативный путь, по которому Sun Microsystems идет с 2003 года, — многоядерность для увеличения производительности.

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

Сетевые приложения — одно из тех направлений, в которых мы видим значительный выигрыш за счет многоядерности и массовой параллелизации, но таких видов приложений — множество. В качестве среды разработки приложений компания Sun Microsystems активно пропагандирует Java. Использование виртуальной машины Java позволяет отделить приложения от той аппаратно-системной платформы, на которой оно работает, и выполнить множество различных операций, снимая нагрузку с приложения. Некоторые из этих приложений могут выполняться параллельно — например, управление оперативной памятью, сбор мусора (garbage collection), и в этом случае мы можем получить ощутимый выигрыш за счет многоядерности и параллелизации.

Мы очень хорошо понимаем, как устроен и как работает процессор, мы имеем возможность оптимизировать работу этой машины на базе той или иной архитектуры. Таким образом мы снимаем с разработчика необходимость следить за управлением ресурсами и оптимизацией работы приложений. Для приложений, которые естественным образом ориентированы на многопоточность и пишутся на С++, мы также предоставляем средства разработки — библиотеки, которые позволяют получить максимальный выигрыш от многоядерности. Например, Sun Studio, помимо прочих достоинств, обладает значительным инструментарием, который позволяет создавать приложения, ориентированные на многопоточность.

PCaWeek/UE: Не наблюдаете ли вы скрытой конкуренции среди разработчиков между Swing-ориентированными проектами и проектом Eclipse?

С. Р.:
Да, наблюдаем. Наше отношение к проекту Eclipse выражается словами “здоровая конкуренция”. Очень многим нравится Eclipse, но столь же многим нравится NetBeans.

PCWeek/UE: Какие преимущества разработчикам дает NetBeans по сравнению с Eclipse?

С. Р.:
Мы полагаем, что наши инструменты предоставят разработчикам возможности, которых они не найдут в Eclipse. На сегодняшний день мы вложили и продолжаем вкладывать большие ресурсы и усилия в разработку и расширение функционала системы. Мы стремимся к тому, чтобы Swing предоставлял максимальные возможности работы в “родном” режиме, но при этом не терял возможность работы с другими платформами.

В настоящий момент мы активно развиваем несколько смежных проектов. К примеру, Matisse значительно упрощает графический интерфейс пользователя. Это снимает с разработчика всю сложность вычисления расположения объектов на экране и управление графическим интерфейсом пользователя. Мы фактически представляем графический способ разработки приложений с технологией drag’n’drop. Вы просто берете холст и наносите на него элементы графического интерфейса в тех местах, где хотите. А код генерируется автоматически. В Eclipse таких возможностей нет.

Кроме того, для разработки приложений для мобильных устройств, которые пишутся под Java Mobile Edition, мы предлагаем дополнительный пакет для интероперабельности с NetBeans. Он в точно таком же режиме drag’n’drop позволяет создавать приложения для мобильных устройств. И теперь создание различного количества пользовательских экранов, объединение их компонентов в единую схему – быстровыполняемая задача.

С точки зрения конкуренции — это здоровое явление. Когда появляются какие-то идеи у разработчиков Eclipse, мы отвечаем своими и наоборот. В результате разработчик только выигрывает, потому что мы соревнуемся за то, чтобы предоставить ему больше возможностей.

PCWeek/UE: Сегодня в мире достаточно большая и влиятельная армия разработчиков работает только с .NET и в качестве основного языка использует только Visual Basic. Как вы относитесь к этому лагерю? Могут ли разработчики .NET воспользоваться разработками и технологиями из мира Java?

С. Р.:
Мы воспринимаем таких разработчиков как наших потенциальных пользователей. Например, один из инструментов, который мы разработали в связи с NetBeans, — продукт Visual Developer Pack, который раньше был известен под названием Project Creator. Его идея состоит в том, чтобы предоставить разработчику такой же режим работы, как дает Visual Basic. Инструментарий ориентирован на визуальный интерфейс, разработчик может создавать веб-приложения. Там используется технология Java Server Faces. Разработчик может просто сказать: “Хочу, чтобы здесь была кнопка, а здесь — таблица”, размещает эти элементы визуальным образом, а система автоматически генерирует код. На данный момент эти компоненты могут использовать даже AJAX с тем, чтобы точно таким же путем можно было использовать функционально богатые приложения и интегрировать их в веб-сервисе.

PCWeek/UE: Сотрудничает ли Sun Microsystems с проектом Mono?

С. Р.:
Нет. Этот Open Source-проект изначально задумывался для создания среды, похожей на ту, что реализована в .NET, но без привязки к Microsoft, к закрытой проприетарной политике этой компании и т.п.  Для инициаторов этого проекта одним из мотивирующих факторов было желание создать действительно  открытую среду для разработчиков. Но мы со своей стороны отдали в Open Source пакет Java Developer Kit. Собственно, сама Java уже является Open Source-средой. Поэтому с этой точки зрения потребность в проекте Mono сегодня гораздо меньше, чем была изначально.

PCWeek/UE: Существует мнение, что языки программирования эволюционируют путем вбирания в себя лучших черт из более ранних языков. Например, один из наиболее продвинутых на сегодняшний день и многообещающих языков “D” эволюционировал из Ruby в сочетании с лучшими чертами Perl, C++. Какова философия вашей компании в отношении новых языков, которые рождаются в наши дни?

С. Р.:
Всегда интересно наблюдать за тем, что приобретает большую популярность. Одно время велись активные дискуссии на тему того, что Ruby заменит Java. А еще раньше активно пропагандировалась гипотеза о том, что Java заменит C++. Но этого не произошло, хотя Java набрала очень большую популярность.

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