Сафонов Владимир Олегович, Сафонова Адель Наркисовна
УДК 004.422.6, 004.43
МЕЖДУНАРОДНАЯ КОНФЕРЕНЦИЯ ECLIPSECON 2011 EUROPE (Людвигсбург, Германия, 2-4 ноября 2011 г.)
Аннотация
В статье дан обзор конференции EclipseCon Europe 2011, проходившей в Германии (г. Людвигсбург, 2-4 ноября 2011 г.) и посвященной 10-летию широко известной ассоциации Eclipse Software Foundation разработчиков программного обеспечения с открытым кодом. Особое внимание уделено содержанию секции Java 7 Track этой конференции, на которой авторы статьи выступили с пленарным докладом о параметризованных типах данных (generics). Описаны также впечатления авторов о достопримечательностях, истории и традициях Людвигсбурга. Изложение иллюстрируется фотографиями.
Ключевые слова: технология программирования, инструментальные средства программирования, Eclipse, Java, Ludwigsburg.
ВВЕДЕНИЕ.
АССОЦИАЦИЯ ECLIPSE SOFTWARE
FOUNDATION И КОНФЕРЕНЦИЯ ECLIPSECON
Eclipse Software Foundation [1] - широко известная некоммерческая ассоциация разработчиков программного обеспечения с открытым кодом. У истоков создания Eclipse стоит крупнейшая ИТ-компания IBM. В 2011 г. ассоциации Eclipse исполнилось 10 лет. К числу наиболее известных программных продуктов семейства Eclipse относятся:
- интегрированная среда Eclipse Software Development Kit (SDK) с поддержкой программирования на языках Java, C, C++, Ruby, Python и др.,
- система управления версиями исходных кодов Git,
© Сафонов В.О., Сафонова А.Н., 2011
- система нового поколения Tycho для сборки программных проектов в среде Eclipse.
Многие отечественные разработчики программного обеспечения, в том числе -студенты нашего факультета, постоянно используют среду Eclipse как одну из наиболее удобных для программирования на Java. Среду Eclipse отличают простота инсталляции (путем распаковки архива, без каких-либо изменений в реестре ОС Windows), высокая скорость развертывания (запуска), в отличие, например, от другой широко известной среды NetBeans (http:// www.netbeans.org), подробная и наглядная контекстная справочная информация (help); удобные механизмы автоматизации набора исходного кода и внесения систематических изменений в него (refactoring).
Само слово eclipse (эклиптика) - плоскость орбиты Земли вокруг солнца. «Астро-
СафоновB.O., СафоноваA.H.
номический» стиль названий отличает и всю технологию Eclipse - например, одна из новых версий среды Eclipse называется Galileo (Галилей).
Проведение конференций EclipseCon ассоциацией Eclipse является многолетней традицией. Подобные конференции проводятся ежегодно, вот уже 10 лет, в Европе и Америке. Конференция в честь 10-летия Eclipse ожидалась с большим интересом, тем более, что корпорация Oracle организовала и спонсировала проведение на ней специальной секции (track) по новой версии Java-технологии Java 7, на которой выход новой версии Java был официально объявлен.
1. Обзор секций и докладов конференции EclipseCon 2011 Europe
В этом году конференция EclipseCon Europe [2] была проведена в Германии, в городе Людвигсбурге (Ludwigsburg). Председателем конференции был Ральф Мюллер (Ralf Muller) из ассоциации Eclipse Foundation. Конкурсный отбор докладов выполнялся международным программным комитетом. Конференция проходила по пяти секциям (трэкам):
• Построение промышленных программных решений (Building Industry Solutions).
• Сообщество и сотрудничество (Community and Collaboration).
• Технология Eclipse (Eclipse Technology).
• Саммит по Java 7 (Java 7 Summit) .
• Проччее (Other).
Рис. 1. Момент доклада по системе управления версиями Git
Полностью программа конференции и ее секций опубликована на сайте конференции [2]. На рис. 1 показан момент одного из учебных докладов (tutorial) в первый день конференции - доклада Матиаса Зона (Matthias Sohn) по системе управления версиями исходных кодов Git. Особенностью системы является децентрализация - отсутствие централизованного хранилища (в отличие от более известных систем CVS и Subversion), что может оказаться удобным для разработки большого проекта силами многочисленной географически распределенной команды программистов. Однако подобная же идея децентрализации используется в другой известной системе управления версиями - Mercurial, используемой в проекте NetBeans.
Отметим наиболее интересные доклады.
«How to Contribute to the Open JDK» (Как участвовать в разработке проектов openJDK) - доклад доктора Фолкера Симо-ниса (Dr. Volker Simonis) из компании SAP. OpenJDK - группа из 10 проектов с открытым исходным кодом, поддерживаемых корпорацией Oracle и ее партнерами (например SAP, IBM, Intel и др.), направленных на экспериментальную разработку новых версий Java-технологии (Java Development Kit -JDK). Весьма важно то, что результаты этих проектов впоследствии используются фирмой Oracle для выпуска новых официальных версий JDK. Java 1 - первая версия Java-технологии, выпущенная на основе результатов проекта openJDK. Этот факт должен, на наш взгляд, привлечь молодых программи-
Рис. 2. Профессор В.О. Сафонов и доктор Фолкер Симонис (SAP), автор доклада по проектам openJDK
стов к участию в проектах openJDK: они могут стать соавторами Java-технологии! Доклад Фолкера Симониса был посвящен участию фирмы SAP и лично автора доклада в разработке динамического компилятора (JIT compiler), используемого в виртуальной машине Java (JVM) при исполнении Java-программ для ускорения их работы. Привлекательной чертой доклада была его конкретность и компетентность: из него удалось почерпнуть всю необходимую информацию для нашего будущего участия в проектах openJDK.
«Model-Based Software Engineering in Industry: Revolution, Evolution, or Smoke?» (Инженерия программ на основе моделей в промышленности: Революция, эволюция или шумиха?) - доклад доктора Брана Селича (Bran Selic) - серба по национальности, ныне живущего и работающего в Канаде, имеющего большой опыт преподавания в различных странах в качестве посещающего профессора (visiting professor), основателя своей собственной консалтинговой ИТ-компании, имеющей родное для нас, русских, название Malina (Малина) - выбор названия, видимо, был вполне осознанным. Момент доклада Брана Селича в его характерной экспрессивной манере изображен на рис. 3.
Доклад очень понравился, благодаря несомненному большому лекторскому опыту автора и его эмоциональному стилю. Докладчик наглядно показал, как практически используется моделирование при разработке промышленных программ (в том числе -известный язык моделирования UML, Unified Modeling Language) и какой эффект оно дает (последнее было продемонстрировано на конкретных примерах разработок с указанием эффекта повышения производительности программистов в процентах). Интересно, что Бран Селич является членом ассоциации пользователей языка SIMULA -одного из первых языков моделирования, разработанного еще в 1960-х гг. норвежскими специалистами К. Нюгордом и О.-И. Да-лом (K. Nuugord and O.-J. Dahl) с участием сэра Тони Хоара (Tony Hoare) и ставшего фактически первыгм объектно-ориентиро-ванныт языгком. С Браном Селичем нам
было о чем поговорить в неформальной обстановке. Основное, в чем мы с ним полностью солидарны, - это необходимость преподавания, хорошего знания разработчиками ПО и практического использования ими формальных методов (спецификации, верификации, моделирования). К чести нашего факультета и университета (мат-меха СПбГУ) могу сказать, что воспроизведенный мной Брану Селичу по памяти список курсов, прослушанных мной на мат-мехе с 1970-х гг. и сданных на отлично (включая топологию, математическую логику, теорию вероятностей, функциональный анализ и др.), вызвал у моего собеседника восторг и уважение - видимо, он не ожидал, что специалисты по информатике и технологиям программирования получают у нас на факультете столь серьезную математическую подготовку.
2. Секция Java 7 Track и доклад авторов о параметризованных типах данных в Java
Секция по Java 7 ожидалась нами с особым интересом. Именно на нее был представлен и принят программным комитетом наш часовой доклад «Generics: Evolution in programming languages, Semantics and implementation, Proposed new features for Java» (Параметризованные типыы: Эволюция в языгках программирования, семантика и реализация, предложения по их расширению в языгке Java). На рис. 4 момент доклада.
Рис. 3. Момент доклада Брана Селича об использовании моделирования в промышленных разработках программных продуктов
Рис. 4. Момент доклада проф. В.О. Сафонова о параметризованных типах данных (generics)
Доклад был достаточно подробным и по стилю близким к лекции для студентов или аспирантов. Однако, что весьма важно, он содержал наши собственные результаты и новые идеи. Главное новое содержание доклада - наши предложения о реализации параметров-констант и формальных спецификаций как расширения параметризованных типов данных в Java. Фактически параметризованные типы данных - это концепция, близкая к абстрактным типам данных (понятию, предложенному классиком ИТ сэром Тони Хоаром: тип - это совокупность скрытого в его оболочке конкретного представления и набора абстрактных операций). Параметризованные типы удобны для представления коллекций - сложных типов (стеков, деревьев, графов, очередей и др.), состоящих из однотипных компонент. Алгоритмы обработки таких коллекций носят общий характер и не зависят (или зависят минимальным, точно специфицированным образом) от типов их элементов. Отсюда и идея параметризованного типа. Автор доклада был руководителем группы программистов, осуществивших в 1985 г. первую в СССР реализацию языка CLU с абстрактными типами данных для МВК «Эльбрус». Идеи языка CLU (в том числе введенные в нем параметризованные типы) весьма популярны ныне и используются в новых платформах разработки ПО - Java и .NET. В докладе было показано устройство параметризованных типов в Java «снаружи» (с точки зрения программистов) и «изнутри» (в тер-
минах Java-байткода и виртуальной Java-ма-шины). Суть предложений автора сводится к тому, чтобы расширить язык Java, во-первых, весьма удобными параметрами-константами (например, стек с параметром maxDepth - максимальная глубина стека), во-вторых, средствами формальных спецификаций в стиле design-by-contract (контрактного проектирования), аналогичными системе Spec# (расширение C# фирмой Microsoft Research). Спецификация и верификация повысят надежность Java-программ. Автор доклада в 2011 г. принят в члены Java Community Process (JCP) - международной некоммерческой организации, определяющей ход развития Java-технологии. В наших дальнейших планах - разработка спецификаций (Java Specification Requests, JSR) для предлагаемых расширений Java и их экспериментальная реализация (reference implementation). Полностью презентация доклада будет опубликована организаторами на сайте конференции [2].
Отметим также, что в октябре 2011 г. в Германии опубликована новая версия книги В.О. Сафонова «Введение в Java-техноло-гию» [3-5]. Книга включает информацию о новых возможностях только что выпущенной версии Java 7, а также о новых возможностях разрабатываемой в настоящее время версии Java 8, выпуск которой планируется фирмой Oracle на 2012 год.
Из других докладов на секции Java 7 Track еще раз отметим доклад Фолкера Си-мониса по проектам openJDK, а также подробные доклады штатных «евангелистов» (специалистов, обучающих фирменным технологиям ) Oracle «55 новых возможностей Java в версии Java 7» и «Проект jigsaw». В последнем докладе подробно и на примерах рассмотрены возможности нового механизма модулей, который будет введен в Java 8 в следующем году. Модуль - это группа взаимосвязанных классов или интерфейсов, которые могут быть совместно загружены в виртуальную машину JVM и совместно выгружены из нее. Последнее особенно важно, с точки зрения рационального использования памяти. В целом вводимый механизм модулей в Java по своим возможностям напо-
минает оверлейную структуру (overlay) -классический механизм экономии памяти во время выполнения, использовавшийся еще в мини- и микро-ЭВМ. Данная возможность в Java-технологии насущно необходима, ввиду необходимости экономии памяти для мобильных устройств - основном семействе платформ, где повсеместно используется Java.
В целом впечатления о конференции благоприятные. Особенно порадовало участие в ней молодежи (главным образом, программистов из европейских промышленных фирм), живо интересующейся новостями в сфере ИТ. Во время доклада, видя «горящие глаза» заинтересованных молодых программистов на первых столах, автор ощутил себя как будто в родном университете.
3. Немного о достопримечательностях, истории и традициях Людвигсбурга
Место проведения конференции настолько интересно, что невозможно не сказать о нем несколько слов в заключение. Город Людвигсбург (Ludwigsburg) - небольшой город (85 тысяч жителей), административно принадлежащий земле Баден-Вюртем-берг (Baden-Wurttemberg), уроженцем которой являются некоторые замечательные представительницы российской истории -прежде всего, Мария Федоровна, супруга императора Павла I (дармштадтская принцесса София-Доротея-Августа-Фредерика; город Дармштадт - ее родина - находится на расстоянии немногим более 100 км от Людвигсбурга). Интересно, что Людвигс-
Рис. 6. Парк Резиденции (Residenzpark)
Рис. 5. Рыночная площадь Людвигсбурга
бург основан в начале XVIII века, как и Санкт-Петербург.
Отметим некоторые достопримечательности Людвигсбурга. На рис. 5 - Рыночная площадь (Marktplatz) с собором и другими старинными зданиями. На рис. 6 - романтический вид людвигсбургского парка (Residenzpark) На рис. 7 - фрагмент дворца, который являлся резиденцией короля Людвига II (Residenzschloss - «замок-резиденция». В Германии принято дворцы называть замками). Необычен вид, изображенный на рис. 8 - это динозавр, сделанный из настоящих овощей. В парке к празднику появились интересные фигуры динозавров, сделанные из настоящих кабачков, патиссонов и тыкв. Дети были в восторге, как и их родители. Атмосфера в Людвигсбурге нам очень понравилась, особенно отношение к детям.
Очень многое в людвигсбургском парке - даже камни, из которых выложены арки
Рис. 7. Дворец (замок) -резиденция короля Людвига II
Мария Федоровна родом из Дармштадта. Так что во всем этом петербуржцы ощутят что-то близкое и родное. Но есть одно существенное отличие: это бережное отношение жителей Германии к своим достопримечательностям. В парке бережно сохраняется каждая фигурка, каждая скульптура, каждая башенка, каждый цветок. Ни одной надписи краской, ни одной отбитой детали у статуй. То, что мы видим там сейчас, вызывает искреннее желание, чтобы и у нас в России граждане столь же бережно относились бы к своей истории, культуре и друг к другу.
Авторы будут благодарны уважаемым коллегам за отзывы, замечания и предложения, которые можно присылать по электронной почте: [email protected].
Литература
1. Web-сайт Eclipse Software Foundation. http://www.eclipse.org . Проверено 18.11.2011.
2. Web-сайт конференции EclipseCon 2011 Europe. http://www.eclipsecon.org/europe2011/. Проверено 18.11.2011
3. Личный Web-сайт проф. В.О. Сафонова. http://www.vladimirsafonov.org. Проверено 18.11.2011
4. Сафонов В О. Введение в Java-технологию (новое, дополненное издание). Lambert Academic Publishing, Saarbrucken, Germany, 2011. 232 с.
5. Web-страница с информацией о книге [4]. http://www.vladimirsafonov.org/java tech intro . Проверено 18.11.2011
Abstract
The article overviews the EclipseCon Europe 2011 Conference held in Ludwigsburg, Germany (November 2-4, 2011) devoted to 10th anniversary of the widely known association of open software developers - Eclipse Software Foundation. . Special attention is paid to the Java 7 Track of that conference, with the plenary session by the authors on parametrized data types (generics). The article also covers the authors' impressions on sights, history and traditions of Ludwigsburg. Photo illustrations are provided.
Keywords: software engineering, software development tools, Eclipse, Java, Ludwigsburg.
Сафонов Владимир Олегович, доктор технических наук, профессор кафедры информатики математико-механического факультета СПбГУ, [email protected],
Сафонова Адель Наркисовна, младший научныый сотрудник лаборатории Java-технологии математико-механического факультета СПбГУ, программист, [email protected]
Рис. 8. Динозавр в парке
и мостики, даже загородки из сосновых стволов - удивительно напоминает Павловск. Это не удивительно, если иметь в виду, что
© Наши авторы, 2011. Our authors, 2011