Разработка системы автоматического поиска объектов на изображении. Eclipse - среда разработки модульных кроссплатформенных приложений Поддерживаемые архитектуры и системы

IT-технологии не стоят на месте, они развиваются с каждым днем. Создаются новые языки программирования, которые позволяют использовать все возможности, что дает нам компьютер. Одним из наиболее гибких, мощных и интересных языков является Java. Чтобы работать с Java необходимо иметь среду разработки ПО. Мы рассмотрим Eclipse.

Eclipse – это расширяемая интегрированная среда разработки, которая находится в свободном доступе. Именно Eclipse является основным соперником IntelliJ IDEA и вопрос: «Что лучше?» все еще остается открытым. Эклипс – мощнейшая IDE, которой пользуются многие Java и Android-разработчики для написания различных приложений на любую ОС.

Внимание!
Эклипс требует много дополнительных файлов, последние версии которых вы сможете скачать на официальном сайте Java. Без них Eclipse даже не начнет установку.

Конечно, Eclipse создан для написания программ. После создания проекта, в редакторе текста вы сможете ввести код программы. В случае возникновения ошибок, компилятор выдаст предупреждение, подсветит строку, в которой допущена ошибка, и объяснит ее причину. Но компилятор не сможет обнаружить логические ошибки, то есть ошибки условия (неправильные формулы, расчеты).

Настройка среды

Основное отличие Eclipse от IntelliJ IDEA в том, что вы можете подстроить среду полностью под себя. Вы можете устанавливать на Эклипс дополнительные плагины, изменять горячие клавиши, настраивать окно работы и многое другое. Существуют сайты, где собраны официальные и разработанные пользователями дополнения и где вы сможете все это бесплатно скачать. Это однозначно плюс.

Документация

Eclipse имеет очень полную и легкую в использовании систему помощи в режиме онлайн. Вы найдете множество туториалов, которыми сможете воспользоваться начиная работать в среде или же в случае, если у вас возникнут трудности. В справке вы найдете всю информацию о любом инструменте Эклипса и разнообразные пошаговые инструкции. Одно «но» — все это на английском.

Достоинства

1. Кроссплатформенность;
2. Возможность установки дополнений и настройки среды;
3. Скорость выполнения;
4. Удобный и понятный интерфейс.

Недостатки

1. Высокое потребление системных ресурсов;
2. Для установки требует много дополнительных файлов.

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

Eclipse - это платформа для создания программного обеспечения с Основана на Java и предоставляет возможность разрабатывать программы с плагинами. Содержит набор встраиваемых компонентов, среди которых - известный продукт Eclipse - среда разработки плагинов PDE. PDE позволяет расширить саму платформу, составленную из встроенных компонентов. Создатели инструментариев могут предложить собственные расширения и дать пользователям целостную среду разработки (IDE).

Помимо языка Java, на котором написан Eclipse, среда разработки применяется и для других языков программирования. Создано много плагинов, поддерживающих языки C++, Fortran, Perl, Prolog, Python, Ruby и др. Платформа может быть основой для другого ПО, которое не имеет отношения к написанию программ, например telnet и СУБД. Еще один пример кода, основанного на Eclipse, - среда разработки PDT с базовыми функциями для редактирования и отладки PHP-приложений.

Все права извращены

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

Поэтому есть опасения и сомнения, что открытые программы приведут к потере интеллектуальной собственности, так как copyleft распространится и на другие части ПО. Иначе говоря, лицензия потребует, чтобы все приложение, содержащее открытый исходный код, распространялось с такими же правами. Это справедливо для General Public License (GNU) - под ней распространяется Linux. Но есть разрешения, которые обеспечивают другое отношение общественных и коммерческих интересов.

OSI является некоммерческой организацией, которая чётко определяет, что такое открытый исходный код, и одобряет те лицензии, которые удовлетворяют её критериям. Платформа Eclipse распространяется по EPL, открытой лицензии, сертифицированной OSI и облегчающей ее коммерческое применение с сохранением лояльности авторов открытого ПО.

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

И хотя многие не станут пользоваться Eclipse для создания собственных разработок, доступность исходного кода платформы имеет большое значение не только благодаря отсутствию платы, но и потому, что оказывает содействие инновациям и стимулирует программистов вносить собственный продукт в качестве вклада в общее дело. Главная причина этого - чем больше в проект вкладывается труда, тем значимее он для всех. Если он приносит пользу, то число разработчиков увеличивается еще больше и вокруг проекта создается сообщество, похожее на те, которые возникли около Linux и Apache.

Некоммерческая организация

Eclipse - среда разработки, библиотеки и инструментарий для создания, развертывания и управления ПО, а также сообщество его создателей. Создана платформа компанией IBM в 2001 г. при поддержке поставщиков ПО.

Фонд Eclipse учрежден в 2004 г. Является некоммерческим объединением, поддерживающим проекты платформы и улучшающим общество разработчиков и систему взаимодополняющих программ и сервисов. Сегодня в экосистему Eclipse входят организации и частные лица индустрии ПО.

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

Eclipse: характеристики платформы

  • Создание различных инструментов разработки программ.
  • Неограниченное количество поставщиков инструментальных средств, в том числе независимых.
  • Поддержка инструментария для работы с различным контентом, например HTML, C, EJB, Java, JSP, GIF и XML.
  • Обеспечение полной интеграции внутри и между разным контентом.
  • Eclipse-среда разработки программ с или без него.
  • Работа в разных операционных системах, в том числе Linux, Windows, Solaris AIX, Mac OS X.
  • Использование Java, популярного языка написания инструментов.

Eclipse: руководство по началу работы

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

Рабочее пространство составлено из панелей-представлений. Совокупность представлений именуется перспективой. Перспектива «Ресурсы», например, включает представления для редактирования, управления и просмотра проектов.

Начинающие пользователи должны стартовать с «Основ инструментального пространства», где можно почерпнуть много информации, касающейся разных составляющих Eclipse и их взаимодействия.

Работа с JDT

Для знакомства с JDT можно открыть проект Eclipse Java. Для этого следует выбрать пункт меню "Файл" - "Новый" - "Проект Java", ввести имя проекта и нажать «Завершить».

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

Перспектива содержит представления, которые предназначены для разработки на языке Java. В левом углу, сверху, расположена иерархия с пакетами Eclipse Java, классами, JAR-архивами и разными файлами, которая называется «Обозреватель пакетов». Главное меню при этом пополнилось на 2 пункта: Source и Refactor.

Создание программы в JDT

Чтобы создать приложение Java, следует нажать правой кнопкой по созданному ранее проекту и выбрать пункт "Новый" - "Класс". Во всплывшем диалоговом окне следует ввести имя класса. Под вопросом: «Какие заготовки методов вы хотите создать?» - указать public static void main(String args) и нажать «Завершить».

В результате будет создана программа, содержащий введенный класс и пустой main(). Метод необходимо заполнить программным кодом (объявление j пропущено намеренно):

public class Hello {

public static void main (String args) {

for(j=0; j<=5;j++)

System.out.println(“Привет”);

Во время набора можно заметить возможности редактора:

  • автодополнение;
  • проверка синтаксиса;
  • автозакрытие открывающейся скобки или кавычек.

Автодополнение кода вызывается сочетанием клавиш Ctrl + пробел. При этом появится зависящий от контекста список опций, выбираемых клавиатурой или мышью, будь то перечень методов данного объекта или часть ключевого слова.

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

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

  • поле класса;
  • параметр метода;
  • локальную переменную.

Если выбрать мышью один из вариантов, то можно увидеть результирующий текст.

Двойной щелчок на необходимом варианте генерирует программный код.

Запуск приложения

При отсутствии ошибок компиляции приложение можно запустить через пункт меню «Пуск». Шага компиляции нет, так как она совершается во время сохранения кода. В появившемся диалоге «Конфигурация запуска», необходимые значения которого уже заданы, нужно щелкнуть мышью на кнопке Run справа, внизу. Внизу появится консоль с закладками и результатом работы приложения.

Программа может быть запущена в отладчике. Прежде всего устанавливается контрольная точка в System.out.println() двумя щелчками мыши на сером поле левее окна редактирования, рядом с вызовом метода. В результате появится точка синего цвета. Выбрать меню "Пуск" - "Отладка". Окно конфигурации запуска появится снова. После нажатия кнопки «Пуск» появится перспектива отладки с новыми представлениями.

В представлении «Отладка» слева, вверху, расположен стек вызовов и для управления ходом работы программы. Панель содержит кнопки остановки, продолжения и завершения работы приложения, выполнения и пропуска следующего оператора и возврата из метода. Справа вверху расположен ряд панелей с закладками: переменные, контрольные точки, выражения и экран. При выборе закладки переменных можно увидеть значение переменной j.

Подробные данные о каждом из представлений может дать контекстная подсказка. Нужно лишь щёлкнуть мышью на заголовке панели и нажать F1.

Дополнительные плагины

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

Система управления исходниками CVS позволяет проводить над ними. При этом вносимые изменения не смешиваются. Это важная и неотъемлемая часть Eclipse.

Среда разработки находится на сайте eclipse.org. Плагины расположены в каталоге Plug-in Central.

Архитектура

Основа платформы - насыщенные функционально клиенты RCP. Упрощенно их можно представить набором плагинов, используемых при разработке программ. Также есть дополнительные рекомендуемые составляющие и необязательные.

Основные компоненты следующие:

  • Среда выполнения определяет модель компонентов на основе спецификации OSGi, расширений и точек расширения. Также обеспечивает добавочными сервисами, такими как системный журнал и параллелизм.
  • SWT-пакет содержит виджеты функций Eclipse и интерфейса пользователя. Имеет надстройку с классами, облегчающими создание графических приложений.
  • Пространство инструментов включает перспективы, представления и окна редактирования.
  • Компонент «Помощь» обеспечивает поддержку пользователей в виде справочной системы или интерактивного списка задач.
  • Плагин «Обновление» позволяет получить новейшую версию ПО.
  • Компонент «Команда» предлагает инфраструктуру для подключения собственных

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

Не вдаваясь в обсуждение вопроса, что есть программирование - искусство или ремесло, признаем: в том и другом случае программисту не обойтись без инструментов создания программ. Вместе с эволюцией процесса программирования (от «колдовства» над машинными командами к использованию высокоуровневых языков) совершенствовались и возможности автоматизации нелегкого труда программистов. Первые среды разработки ограничивались последовательным запуском компиляторов, компоновщиков, загрузчиков и отладчиков с помощью интерфейса командной строки. В 80-е годы вместе с персональными компьютерами появился рынок программных продуктов нового класса - интегрированных сред разработки (integrated development environment, IDE) для алгоритмических (Паскаль и др.), а затем и объектно-ориентированных (Smalltalk, C++) языков программирования. Настоящего расцвета данная область достигла благодаря активной адаптации разработчиками языка Java; наиболее известные интегрированные среды для создания программ на этом языке - Borland JBuilder, Symantec Visual Cafe, Microsoft J++, IBM VisualAge и Oracle JDeveloper.

Основное назначение IDE - повысить продуктивность труда разработчика. Первые среды разработки, объединяющие функциональность редакторов текста программ, компиляторов и отладчиков, преимущественно освобождали потребителей от рутинных операций. Со временем набор функций IDE становился все богаче. В него вошли пошаговые компиляторы, браузеры для более логичного представления программ, средства автоматической генерации кода и визуальные редакторы для создания графических пользовательских интерфейсов. Следуя веяниям времени, среды разработки трансформировались из инструментов повышения производительности труда программиста в средства поддержки всех этапов коллективной работы над программным проектом. Последняя тенденция - превращение IDE в ALM (application lifecycle management), интегрированную систему управления жизненным циклом приложений - от определения требований и моделирования до управления конфигурациями и версиями программного обеспечения, развертывания и сопровождения готового решения.

Каждая новая ступень эволюции IDE усложняла среды разработки. Однако пользователи таких продуктов по-прежнему были вынуждены прибегать к помощи средств, не интегрированных в IDE, - хотя бы потому, что создание приложения не ограничивается написанием и отладкой программ на одном языке программирования. Необходимость использовать в прикладной системе, например, HTML-страницы, схемы реляционных баз данных или куски кода на других языках (наподобие Кобола или PL/1) заставляет разработчиков задействовать соответствующий инструментарий, изначально не включенный в IDE.

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

Платформа

Как поясняют инициаторы проекта Eclipse , его идеей было создание «Apache для средств разработки» - открытой платформы, обеспечивающей максимум базовых возможностей для сред разработки и предоставляющей механизмы интеграции различных инструментов. Первая версия этой платформы была разработана корпорацией IBM и выпущена в открытых кодах в конце 2001 года. Вскоре начали появляться коммерческие реализации на основе Eclipse, пионером среди которых стала среда WebSphere Studio Application Developer 4.0. Сейчас вокруг Eclipse сложилась целая экосистема разработки с открытым кодом, которая объединяет поставщиков и пользователей инструментальных средств, исследовательские организации и отдельных разработчиков.

В официальных документах Eclipse Foundation (www.eclipse.org ) Eclipse Platform определяется как независимая от поставщиков открытая платформа разработки, предоставляющая базовые (framework) и типовые (exemplary) возможности, а также расширяемые (extensible) инструментальные средства. Инструментарий в рамках Eclipse Platform является типовым в том смысле, что с его помощью проверяется применимость базовых возможностей платформы, иллюстрируются типовые ситуации их использования, поддерживаются разработка и сопровождение самой платформы Eclipse. Инструментарий является расширяемым, поскольку его функциональность доступна посредством документированных программных интерфейсов. Базовые принципы, которым руководствовались создатели Eclipse Platform и в соответствии с которыми она продолжает развиваться, таковы :

  • поддержка конструирования инструментов для разработки приложений;
  • поддержка неограниченного числа поставщиков инструментальных средств, в том числе независимых разработчиков программного обеспечения;
  • поддержка инструментов работы с произвольными типами контента, включая HTML, Java, C, JavaServer Pages, EJB, XML, GIF и др.;
  • обеспечение «бесшовной» интеграции инструментов работы с различными типами контента разных производителей;
  • поддержка сред разработки приложений с обычным и с графическим пользовательским интерфейсами;
  • обеспечение возможности выполнять среду разработки на базе разных операционных систем (сегодня инструментарий на базе Eclipse реализован для Linux, HP-UX, IBM AIX, Sun Solaris, QNX, Mac OS X, Windows);
  • учет в интересах развития платформы популярности языка Java при создании инструментария разработки.

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

Среда разработки Eclipse

Основой архитектуры Eclipse Platform является принцип использования подключаемых модулей (plug-in). Платформа реализует механизмы обнаружения, интеграции и выполнения таких модулей (см. рисунок). Разработчик, который хочет воспользоваться возможностями Eclipse Platform, пишет свой инструментарий на Java как отдельный подключаемый модуль. Этот модуль будет работать с файлами в рабочем пространстве, которое реализуется с помощью компонента workspace. А его пользовательский интерфейс базируется на средствах компонента workbench, задающего общую структуру интерфейса и возможности его расширения.

Как правило, с помощью одного подключаемого модуля реализуется простейшая функциональность IDE на базе Eclipse Platform, в то время как более сложные инструментальные средства компонуются из нескольких модулей. При этом почти вся встроенная функциональность Eclipse Platform также реализована с помощью таких модулей - за исключением небольшого ядра Platform Runtime. Для каждого подключаемого модуля есть свой манифестный файл (manifest), в котором описываются связи данного модуля с другими. При запуске среды разработки на базе Eclipse Platform компонент Platform Runtime определяет набор доступных подключаемых модулей, читает их манифестные файлы и строит реестр модулей. После запуска системы дополнительные модули уже не могут быть добавлены. В рамках проекта Eclipse реализована специальная среда для создания подключаемых модулей - Plug-In Development Environment (PDE).

С помощью специальных модулей реализованы компоненты рабочего пространства (workspace) и пользовательского интерфейса (workbench) платформы Eclipse. Рабочее пространство содержит файлы, которые создают пользователи инструментов, реализуемых подключаемыми модулями. Компонент workbench обеспечивает общую структуру и средства, позволяющие расширять возможности пользовательского интерфейса среды разработки на базе Eclipse Platform, включает в себя два компонента для реализации средств предоставления информации пользователю.

  • Standard Widget Toolkit (SWT) - набор интерфейсных элементов и графическая библиотека, которые имеют механизмы интеграции с оконной системой конкретной операционной платформы, но реализуют API, независимые от ОС. Это позволяет по единым принципам строить пользовательские интерфейсы среды разработки, которые соответствуют привычной для потребителя оконной среде, но предназначены для максимально возможного спектра операционных систем;
  • JFace - инструментарий для реализации ряда общих задач, связанных с программированием интерфейсов с использованием средств SWT.

На базе API, предоставляемых компонентами SWT и JFace, строится персонализированный пользовательский интерфейс, который определяет структуру взаимодействия потребителя с инструментарием разработки. Интерфейс Eclipse Platform организуется с помощью редакторов (editor), видов (view) и перспектив (perspective).

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

Организация

Ведение проектов в открытых кодах дает целый ряд преимуществ. Так, одной из задач подобной платформы является предоставление разработчикам инструментария из общей базы, инвариантной для разных сред разработки. Зачем каждому производителю писать заново то, что можно написать один раз? Но чтобы строить на такой платформе свои разработки, производитель должен полностью доверять тому, кто ее создал. А это возможно лишь в том случае, если он сумеет опробовать все то, что в ней заложено, то есть получить платформу в открытых кодах.

Разработка продукта в соответствии с принципами Open Source повышает качество кода, поскольку его совместно «отшлифовывают» множество заинтересованных разработчиков. Проще и качественнее становится отладка - благодаря доступу к исходным текстам программы и опять же привлечению к работе распределенного коллектива. Совместный труд позволяет разделить риски создания сложных технологий. А коллективный орган развития платформы обеспечивает ее поддержку независимо от перипетий, которые могут произойти с поставщиками конкретных сред разработки. Наконец, использование платформы разработки в открытых кодах с гибким механизмом подключаемых модулей для реализации дополнительной функциональности открывает неограниченные возможности ее совершенствования.

Архитектура Eclipse Platform

Однако реализовать преимущества модели разработки с открытым кодом, просто выпустив «в свободное плавание» техническую платформу, не удастся. Нужна организация процесса. С выходом первой версии Eclipse в 2001 году эту заботу взял на себя консорциум, организованный IBM вместе с рядом ведущих игроков рынка, а в феврале 2004 года совет директоров Eclipse решил преобразовать Eclipse Foundation в неприбыльную независимую корпорацию.

Консорциум Eclipse Foundation, объединяющий более 60 компаний, координирует работы по совершенствованию платформы Eclipse и другие проекты с открытым кодом.

Проект Eclipse полностью открыт, участвовать в нем может любой заинтересованный разработчик, который не обязан быть сотрудником какой-либо компании. В принципе, каждый может не только интересоваться деталями разработки и вносить свой вклад в выявление ошибок, но и принимать участие в написании кода и общем проектировании очередной версии платформы. Однако Eclipse следует принципу приоритета профессионализма. Разработчик с подтвержденной профессиональной репутацией может рассчитывать на дополнительную ответственность и возможность активно реализовать свою квалификацию в проектах Eclipse. Часть разработчиков определяются как «ответственные» (committer), поскольку на них возлагается ответственность за исходные коды, и только они имеют право создавать новые версии в открытом репозитарии исходных текстов. Как правило, такие разработчики являются сотрудниками компаний, которые оплачивают их работу в рамках проектов Eclipse.

Процесс разработки - итеративный, направленный на максимальное привлечение членов сообщества Eclipse к работе над проектом. Выпуску очередного релиза предшествуют несколько этапов фиксированной продолжительности (порядка нескольких недель), каждый из которых представляет собой законченный цикл, включающий в себя планирование, разработку, тестирование и промежуточный выпуск версии. Завершение очередного цикла сопровождается открытой публикацией описания новых возможностей системы, что стимулирует членов сообщества к их обсуждению, использованию и выдаче рекомендаций по совершенствованию. В результате на следующих этапах разработки появляется возможность учесть реакцию сообщества на промежуточный релиз. Таков открытый процесс постоянного совершенствования платформы Eclipse и развития других инициатив на ее базе.

Задачей технологического проекта Eclipse является координация усилий разработчиков, исследователей, членов научных и образовательных организаций по определению перспектив Eclipse Platform и других разработок с открытым кодом. Среди наиболее заметных исследовательских подпроектов в рамках этого направления можно отметить разработку аспектно-ориентированного программного обеспечения (AspectJ и AJDT), создание ядра, альтернативного Eclipse Runtime (Equinox), создание платформы совместной разработки (Koi), управление конфигурациями программного обеспечения (Stellation), инструментарий для XML-схем (XML Schema Definition) и для разработки на базе моделей (Generative Model Transformer).

Сообщество

Использование всех материалов, полученных при реализации проектов Eclipse, регулируется лицензионными правилами Common Public License (CPL), которые одобрены организацией Open Source Initiative. В соответствии с CPL каждый может бесплатно применять и распространять Eclipse в коммерческих и некоммерческих целях. В свободном доступе на сайте eclipse.org имеются:

  • текущие версии Eclipse Platform для непосредственного использования (в двоичной форме);
  • репозитарий исходных кодов, в котором любой может просмотреть содержимое и историю ревизий любого исходного файла, а также получить скрипты для рекомпиляции и сборки платформы Eclipse из исходных кодов;
  • открытые дискуссионные форумы для обсуждения Eclipse Platform;
  • база данных ошибок для отслеживания дефектов и проблем текущих версий платформы. С помощью этой базы пользователи могут выявлять известные дефекты в своих разработках на базе Eclipse и обнародовать новые обнаруженные ими проблемы;
  • планы разработки и контакты разработчиков, участвующих в проектах Eclipse.

Сегодня на eclipse.org в свободном доступе - более сотни подключаемых модулей в исходных кодах для платформы Eclipse. Открытые проекты Eclipse - это в совокупности более 2 млн. строк кода.

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

Так, на платформе Eclipse работают все продукты семейства IBM Rational. Компания Borland намерена перевести на Eclipse все свои средства поддержки жизненного цикла приложений. Существует версия для Eclipse средств разработки встроенных приложений компании QNX; аналогичный проект реализует и Wind River. В свою очередь, Hewlett-Packard предлагает на базе Eclipse среду разработки компонентов для своей системы Internet Usage Manager, целевой аудиторией которой являются операторы связи. Nokia анонсировала поддержку Eclipse как платформы разработки мобильных приложений. IBM реализовала на базе Eclipse специальный инструментарий Autonomic Computing Toolkit, предназначенный для поддержки в разрабатываемых приложениях технологий автономных вычислений. Изо всех ведущих мировых производителей программного обеспечения с Eclipse Foundation не сотрудничают лишь Sun Microsystems и Microsoft.

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

Перечисленные группы по-разному используют разработки Eclipse, но все они вносят свой вклад в их развитие. Тенденцией становится использование платформы Eclipse для построения приложений, отличных от IDE. Это возможно, поскольку в технологическом решении Eclipse Platform не так много специфичных для сред разработки элементов. В третьей версии Eclipse происходит эволюция от платформы для сред разработки к платформе реализации полнофункциональных клиентских рабочих мест (Rich Client Platform). Не случайно IBM реализует свою перспективную среду совместной работы Workplace именно на базе Eclipse.

Литература

  1. Marc R. Erickson, Angus McIntyre. , 2001, November.
  2. J. dea Rivieres, J. Wiegand. Eclipse. A platform for integrating development tools. IBM Systems Journal, 2004, No. 2.

Структура организации Eclipse

Координацию развития Eclipse и участия в проектах с открытым кодом различных организаций и индивидуальных разработчиков осуществляет некоммерческий независимый консорциум Eclipse Foundation

Совет директоров Eclipse Foundation формируется из четырех основных категорий участников:

  • стратегические разработчики (Strategic Developers) - компании Actuate, Borland, IBM, Computer Associates, Intel, QNX, Wind River, Sybase, Scapa Technologies, BEA Systems;
  • стратегические потребители (Strategic Consumers) - HP, Montavista Software, SAP, Serena Software;
  • включенные поставщики (Add-in Providers);
  • руководители проектов с открытым кодом (Open Source project leads).

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

Консорциум ведет несколько базовых проектов в открытых кодах, которые включают в себя то или иное количество подпроектов. Управление базовым проектом осуществляет комитет Project Management Committee (PMC). Для управления разработкой в целом создаются три основных с овета - по определению требований (Requirements Council), по архитектуре (Architecture Council) и по планированию (Planning Council).

Совет по определению требований анализирует и структурирует требования к проекту. Они объединяют требования, нацеленные на достижение общих целей Eclipse Foundation и частных целей проекта, на решение задач ключевых членов консорциума и развитие экосистемы Eclipse. На основе анализа формулируется список тем и приоритетов, которые определят ход разработки. Совет по архитектуре отвечает за разработку архитектуры Eclipse Platform, ее четкое описание, доведение соответствующих сведений до команд разработчиков и их защиту от неумышленных искажений. Совет по планированию создает скоординированный план релизов платформы.

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

) были выбраны спецификации сервисной платформы OSGi , как архитектура среды исполнения. С версии 3.0 Eclipse перестал быть монолитной IDE, поддерживающей расширения, а сам стал набором расширений. В основе лежат фреймворк OSGi и SWT /JFace , на основе которых разработан следующий слой - RCP (Rich Client Platform , платформа для разработки полноценных клиентских приложений). RCP служит основой не только для Eclipse, но и для других RCP-приложений, например, Azureus и File Arranger . Следующий слой - сам Eclipse, представляющий собой набор расширений RCP - редакторы, панели, перспективы, модуль CVS и модуль Java Development Tools (JDT) .

С 2006 года фонд Eclipse координирует ежегодный общий релиз (Simultaneous Release), который происходит в июне. Каждый выпуск включает в себя платформу Eclipse, а также ряд других проектов Eclipse.

Релиз Дата Версия платформы Проект
Neon 22 июня 2016 4.6
Mars 25 июня 2015 4.5
Luna 6 июня 2014 4.4
Kepler 26 июня 2013 4.3
Juno 27 июня 2012 3.8 и 4.2
Indigo 22 июня 2011 3.7
Helios 23 июня 2010 3.6
Galileo 24 июня 2009 3.5
Ganymede 25 июня 2008 3.4
Europa 29 июня 2007 3.3
Callisto 30 июня 2006 3.2
Eclipse 3.1 28 июня 2005 3.1
Eclipse 3.0 28 июня 2004 3.0

Преимущества

Eclipse служит в первую очередь платформой для разработки расширений, чем он и завоевал популярность: любой разработчик может расширить Eclipse своими модулями. Уже существуют Java Development Tools (JDT), C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с IBM, и средства для языков Ada (GNATbench, Hibachi), COBOL, FORTRAN, PHP, X10 (X10DT) и пр. от различных разработчиков. Множество расширений дополняет среду Eclipse диспетчерами для работы с базами данных, серверами приложений и др.

Eclipse JDT (Java Development Tools) - наиболее известный модуль, нацеленный на групповую разработку: среда интегрирована с системами управления версиями - CVS , GIT в основной поставке, для других систем (например, Subversion , ) существуют плагины. Также предлагает поддержку связи между IDE и системой управления задачами (ошибками). В основной поставке включена поддержка трекера ошибок Bugzilla , также имеется множество расширений для поддержки других трекеров (Trac , Jira и др.). В силу бесплатности и высокого качества, Eclipse во многих организациях является корпоративным стандартом для разработки приложений.

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

Архитектура

Основой Eclipse является платформа расширенного клиента (RCP - от англ. rich client platform ). Её составляют следующие компоненты:

  • OSGi (стандартная среда поставки комплектов (англ. bundles ));
  • SWT (портируемый инструментарий виджетов);
  • JFace (файловые буферы, работа с текстом , текстовые редакторы);
  • Рабочая среда Eclipse (панели, редакторы, проекции, мастеры).
    • Aperi (от лат. открывать ) - open source система управления системами сетевого хранения данных .
    • BIRT (Business Intelligence and Reporting Tools) - Web- и PDF -отчёты.
    • DTP (Data Tools Platform) - разработка систем, управляемых данными (data-centric systems), в частности, данными в реляционных базах; управление программами с большим числом коннекторов .
    • GEF (Graphical Editing Framework) - фреймворк для построения встроенных графических редакторов.
    • Jazz - клиент-серверная платформа для взаимодействия разработчиков в процессе разработки проекта (включает чат, журнал событий и др.), строящаяся поверх Eclipse (входит в линейку продуктов IBM Rational).
    • Modeling .
    • Tools .
    • TPTP (Test & Performance Tools Platform) - разработка инструментов тестирования, - отладчики , профайлеры и т. п.
    • VE (Visual Editor Project) - разработка инструментов GUI .
    • WTP (Web Tools Platform Project) - инструменты разработки веб-приложений J2EE :
      • редакторы HTML , JavaScript , CSS , JSP , SQL , XML , DTD , XSD и WSDL ;
      • графические редакторы для XSD и WSDL;
      • мастеры и проводник веб-служб , инструменты тестирования WS-I ;
      • инструменты для доступа и построения запросов и моделей баз данных .
    • Коммуникационная среда Eclipse (ECF) нацелена на создание коммуникационных приложений на платформе Eclipse.
    • Проект разработки программного обеспечения для устройств (DSDP).
    • Платформа параллельных инструментов (PTP) обеспечивает портируемую, масштабируемую , основанную на стандартах платформу параллельных инструментов, которая позволит облегчить интеграцию инструментов, специфических для параллельных компьютерных архитектур.
    • Платформа встроенного расширенного клиента (eRCP) - предназначена для расширения RCP на встраиваемые устройства. В eRCP входит набор компонентов, которые являются подмножеством компонентов RCP. Она позволит перенести модель приложения, используемого на настольных компьютерах, на другие устройства.
    • DLTK (Dynamic Languages Toolkit) - интегрированная среда разработчика для динамических языков программирования .
    • Swordfish - платформа для построения распределённых корпоративных информационных систем.

    Последние версии

    Eclipse 3.3.2 (Europa Winter)

    Количество новых подпроектов (как управляемых Eclipse Foundation , так и сторонних) быстро увеличивается. Приходится координировать усилия огромного количества разработчиков и предлагать общие правила - «Eclipse Development Process ».

    Последняя версия релиза включает в себя 21 подпроект.

    Eclipse 3.4 (Ganymede)

    Релиз Ganymede (06.2008) включает в себя 23 подпроекта:

    • Eclipse Project 3.4
    • Equinox 3.4
    • Eclipse Communication Framework Project 2.0.0
    • Eclipse Model Framework Technology
    • Eclipse Modeling Framework 2.4.0
    • Eclipse Packaging Project 1.0.0
    • Eclipse Web Tools Platform Project 3.0.0
    • Graphical Editor Framework 3.4.0
    • Graphical Modeling Framework 2.1
    • Model Development Tools. 1.1
    • Data Tools Platform (DTP) 1.6
    • Device Software Development Platform Project Device Debugging 1.0
    • Device Software Development Platform Project Target Management 3.0
    • Buckminster Component Assembly 1.1
    • BIRT 2.3.0
    • C/C++ Development Tool (CDT) 5.0.0
    • Dynamic Languages Toolkit 0.95
    • Model to Text (M2T) 0.9.0
    • Model-to-Model Transformation (M2M)
    • Mylyn 3.0 (task-focused UI)
    • Rich Ajax Platform (RAP) 1.1
    • SOA Tools (STP) 1.0
    • Subversive - SVN Team Provider
    • Target Management 3.0
    • Test and Performance Tools Platform Project 4.5.0

    Eclipse 3.5 (Galileo)

    Последний релиз Galileo, представленный публике 24 июня 2009 года , включает в себя 33 подпроекта:

    • Eclipse Platform 3.5
    • Eclipse Project 3.5.0
    • Eclipse Modeling Framework (EMF) 2.5.0
    • Eclipse Packaging Project 1.1.0
    • Eclipse Web Tools Platform Project WTP 3.1.0 (Galileo)
    • EclipseLink Project 1.1.2
    • Accessibility Tools Framework 0.7.0
    • Business Intelligence and Reporting Tools (BIRT)
    • C/C++ Development Tooling (CDT) 6.0
    • Dali Java Persistence Tools 2.2
    • Data Tools Platform 1.7 (Galileo)
    • Dynamic Languages Toolkit 1.0
    • Equinox 3.5
    • GEF - Graphical Editor Framework 3.5.0
    • Graphical Modeling Framework 2.2.0
    • Java Workflow Tooling JWT 0.6
    • JDT - Java development tools
    • M2T JET (Java Emitter Templates) - aka JET2 M2T JET 1.0.0 (Galileo)
    • Memory Analyzer 0.8.0
    • Mobile Tools for Java
    • Model To Text (M2T) 1.0.0
    • Model-to-Model Transformation (M2M) Galileo Simultaneous Release
    • Monitoring Tools 4.6
    • Mylyn 3.2
    • PHP Development Tools 2.1.0
    • Rich Ajax Platform 1.2
    • Riena Platform Project 1.1.0.
    • SCA Tools 2.0.0
    • SOA Tools 2.0
    • Source Editing 3.1.0 (Galileo)
    • Swordfish 0.9.0
    • Target Management 3.1
    • Test and Performance Tools Platform Project 4.5.3
    • Testing Tools TPTP v4.6
    • Textual Modeling Framework org.eclipse.xtext
    • Tools for mobile Linux 0.3
    • TPTP Platform TPTP v4.6
    • Tracing & Profiling Tools TPTP v4.6

    Локализация

    Начиная с версии 3.1.1, выпущен языковой пакет для русификации Eclipse. Переведены на русский язык как графический интерфейс, так и документация.

    Модули

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

    Язык Модуль
    /С++ CDT
    Fortran Photran
    Perl EPIC
    PHP PDT
    JavaScript JSEclipse
    Python PyDev (Eclipse) (англ. )
    Ruby RDT
    1C V8 1C:Enterprise DT

    Для разработки и получения отчётов и разработки аналитических BI-приложений в Eclipse имеется BIRT Project (англ. ).

    В Eclipse встроена функция установки и обновления модулей через Интернет .

    Популярные приложения на базе SWT и RCP

    Поддерживаемые архитектуры и системы

    • HP-UX (HP9000 /Motif)
    • Linux (x86, x86-64 , PPC, IA-64 /GTK 2)
    • Linux (x86/Motif)
    • Solaris 8 (SPARC /GTK 2, Motif)
    • QNX (x86/Photon)
    • Microsoft Windows (Win32 , Win64)
    • Android (ARM)

    Напишите отзыв о статье "Eclipse (среда разработки)"

    Примечания

    1. Darryl K. Taft. (англ.) . ??? (20 мая 2005). Проверено 3 сентября 2009. .
    2. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    3. (англ.) . Проверено 3 сентября 2009. .
    4. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    5. (англ.) . Eclipse documentation . Официальный сайт. Проверено 3 сентября 2009. .
    6. (англ.) . Eclipse documentation . Официальный сайт. Проверено 3 сентября 2009. .
    7. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    8. Сергей Голубев. . ??? (15 ноября 2005). Проверено 3 сентября 2009. .
    9. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    10. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    11. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    12. (англ.) . Проверено 3 сентября 2009. .
    13. Владимир Парамонов. . Компьюлента (31 января 2007). Проверено 3 сентября 2009.
    14. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    15. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    16. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    17. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    18. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    19. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    20. . Официальный сайт. .
    21. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    22. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    23. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    24. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    25. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    26. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    27. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    28. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    29. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    30. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    31. (англ.) . Официальный сайт (июнь 2007). Проверено 3 сентября 2009. .
    32. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    33. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    34. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    35. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    36. (англ.) . Официальный сайт. Проверено 24 марта 2011. .
    37. (англ.) . . Проверено 3 сентября 2009. .
    38. (англ.) . Официальный сайт. Проверено 3 сентября 2009. .
    39. (англ.) . ???. Проверено 3 сентября 2009. .
    40. Джош Фет. (рус.) . ??? (июнь 2008). - Установка PyDev в Eclipse. Проверено 3 сентября 2009. .
    41. (англ.) . ???. Проверено 3 сентября 2009. .
    42. (10.04.2015).
    43. (рус.) . ???. Проверено 3 сентября 2009. .
    44. (англ.) . . Проверено 3 сентября 2009. .
    45. (англ.) . . Проверено 3 сентября 2009. .
    46. (англ.) . ???. Проверено 3 сентября 2009. .
    47. (англ.) . ???. Проверено 3 сентября 2009. .
    48. (англ.) (недоступная ссылка - история ) . ???. Проверено 3 сентября 2009. .
    49. (англ.) . ???. Проверено 3 сентября 2009.

    Ссылки

    • (англ.)
    • (англ.)
    • (англ.) - Документация для Eclipse SDK
    • (англ.)
    • (англ.)
    • (англ.) - Платформа расширенного клиента
    • (англ.)
    • (англ.) IBM
    • IBM (рус.)
    • (рус.) IBM
    • (рус.)
    • (англ.) - варианты дистрибутивов Eclipse «под ключ» для разных направлений разработки (Expert Java, Desktop Java, Server Java, Mobile Java и т. д.)
    • (рус.) Студия Артемия Лебедева

    Отрывок, характеризующий Eclipse (среда разработки)

    На другой день Ростов проводил княжну Марью в Ярославль и через несколько дней сам уехал в полк.

    Письмо Сони к Николаю, бывшее осуществлением его молитвы, было написано из Троицы. Вот чем оно было вызвано. Мысль о женитьбе Николая на богатой невесте все больше и больше занимала старую графиню. Она знала, что Соня была главным препятствием для этого. И жизнь Сони последнее время, в особенности после письма Николая, описывавшего свою встречу в Богучарове с княжной Марьей, становилась тяжелее и тяжелее в доме графини. Графиня не пропускала ни одного случая для оскорбительного или жестокого намека Соне.
    Но несколько дней перед выездом из Москвы, растроганная и взволнованная всем тем, что происходило, графиня, призвав к себе Соню, вместо упреков и требований, со слезами обратилась к ней с мольбой о том, чтобы она, пожертвовав собою, отплатила бы за все, что было для нее сделано, тем, чтобы разорвала свои связи с Николаем.
    – Я не буду покойна до тех пор, пока ты мне не дашь этого обещания.
    Соня разрыдалась истерически, отвечала сквозь рыдания, что она сделает все, что она на все готова, но не дала прямого обещания и в душе своей не могла решиться на то, чего от нее требовали. Надо было жертвовать собой для счастья семьи, которая вскормила и воспитала ее. Жертвовать собой для счастья других было привычкой Сони. Ее положение в доме было таково, что только на пути жертвованья она могла выказывать свои достоинства, и она привыкла и любила жертвовать собой. Но прежде во всех действиях самопожертвованья она с радостью сознавала, что она, жертвуя собой, этим самым возвышает себе цену в глазах себя и других и становится более достойною Nicolas, которого она любила больше всего в жизни; но теперь жертва ее должна была состоять в том, чтобы отказаться от того, что для нее составляло всю награду жертвы, весь смысл жизни. И в первый раз в жизни она почувствовала горечь к тем людям, которые облагодетельствовали ее для того, чтобы больнее замучить; почувствовала зависть к Наташе, никогда не испытывавшей ничего подобного, никогда не нуждавшейся в жертвах и заставлявшей других жертвовать себе и все таки всеми любимой. И в первый раз Соня почувствовала, как из ее тихой, чистой любви к Nicolas вдруг начинало вырастать страстное чувство, которое стояло выше и правил, и добродетели, и религии; и под влиянием этого чувства Соня невольно, выученная своею зависимою жизнью скрытности, в общих неопределенных словах ответив графине, избегала с ней разговоров и решилась ждать свидания с Николаем с тем, чтобы в этом свидании не освободить, но, напротив, навсегда связать себя с ним.
    Хлопоты и ужас последних дней пребывания Ростовых в Москве заглушили в Соне тяготившие ее мрачные мысли. Она рада была находить спасение от них в практической деятельности. Но когда она узнала о присутствии в их доме князя Андрея, несмотря на всю искреннюю жалость, которую она испытала к нему и к Наташе, радостное и суеверное чувство того, что бог не хочет того, чтобы она была разлучена с Nicolas, охватило ее. Она знала, что Наташа любила одного князя Андрея и не переставала любить его. Она знала, что теперь, сведенные вместе в таких страшных условиях, они снова полюбят друг друга и что тогда Николаю вследствие родства, которое будет между ними, нельзя будет жениться на княжне Марье. Несмотря на весь ужас всего происходившего в последние дни и во время первых дней путешествия, это чувство, это сознание вмешательства провидения в ее личные дела радовало Соню.
    В Троицкой лавре Ростовы сделали первую дневку в своем путешествии.
    В гостинице лавры Ростовым были отведены три большие комнаты, из которых одну занимал князь Андрей. Раненому было в этот день гораздо лучше. Наташа сидела с ним. В соседней комнате сидели граф и графиня, почтительно беседуя с настоятелем, посетившим своих давнишних знакомых и вкладчиков. Соня сидела тут же, и ее мучило любопытство о том, о чем говорили князь Андрей с Наташей. Она из за двери слушала звуки их голосов. Дверь комнаты князя Андрея отворилась. Наташа с взволнованным лицом вышла оттуда и, не замечая приподнявшегося ей навстречу и взявшегося за широкий рукав правой руки монаха, подошла к Соне и взяла ее за руку.
    – Наташа, что ты? Поди сюда, – сказала графиня.
    Наташа подошла под благословенье, и настоятель посоветовал обратиться за помощью к богу и его угоднику.
    Тотчас после ухода настоятеля Нашата взяла за руку свою подругу и пошла с ней в пустую комнату.
    – Соня, да? он будет жив? – сказала она. – Соня, как я счастлива и как я несчастна! Соня, голубчик, – все по старому. Только бы он был жив. Он не может… потому что, потому… что… – И Наташа расплакалась.
    – Так! Я знала это! Слава богу, – проговорила Соня. – Он будет жив!
    Соня была взволнована не меньше своей подруги – и ее страхом и горем, и своими личными, никому не высказанными мыслями. Она, рыдая, целовала, утешала Наташу. «Только бы он был жив!» – думала она. Поплакав, поговорив и отерев слезы, обе подруги подошли к двери князя Андрея. Наташа, осторожно отворив двери, заглянула в комнату. Соня рядом с ней стояла у полуотворенной двери.
    Князь Андрей лежал высоко на трех подушках. Бледное лицо его было покойно, глаза закрыты, и видно было, как он ровно дышал.
    – Ах, Наташа! – вдруг почти вскрикнула Соня, хватаясь за руку своей кузины и отступая от двери.
    – Что? что? – спросила Наташа.
    – Это то, то, вот… – сказала Соня с бледным лицом и дрожащими губами.
    Наташа тихо затворила дверь и отошла с Соней к окну, не понимая еще того, что ей говорили.
    – Помнишь ты, – с испуганным и торжественным лицом говорила Соня, – помнишь, когда я за тебя в зеркало смотрела… В Отрадном, на святках… Помнишь, что я видела?..
    – Да, да! – широко раскрывая глаза, сказала Наташа, смутно вспоминая, что тогда Соня сказала что то о князе Андрее, которого она видела лежащим.
    – Помнишь? – продолжала Соня. – Я видела тогда и сказала всем, и тебе, и Дуняше. Я видела, что он лежит на постели, – говорила она, при каждой подробности делая жест рукою с поднятым пальцем, – и что он закрыл глаза, и что он покрыт именно розовым одеялом, и что он сложил руки, – говорила Соня, убеждаясь, по мере того как она описывала виденные ею сейчас подробности, что эти самые подробности она видела тогда. Тогда она ничего не видела, но рассказала, что видела то, что ей пришло в голову; но то, что она придумала тогда, представлялось ей столь же действительным, как и всякое другое воспоминание. То, что она тогда сказала, что он оглянулся на нее и улыбнулся и был покрыт чем то красным, она не только помнила, но твердо была убеждена, что еще тогда она сказала и видела, что он был покрыт розовым, именно розовым одеялом, и что глаза его были закрыты.
    – Да, да, именно розовым, – сказала Наташа, которая тоже теперь, казалось, помнила, что было сказано розовым, и в этом самом видела главную необычайность и таинственность предсказания.
    – Но что же это значит? – задумчиво сказала Наташа.
    – Ах, я не знаю, как все это необычайно! – сказала Соня, хватаясь за голову.
    Через несколько минут князь Андрей позвонил, и Наташа вошла к нему; а Соня, испытывая редко испытанное ею волнение и умиление, осталась у окна, обдумывая всю необычайность случившегося.
    В этот день был случай отправить письма в армию, и графиня писала письмо сыну.
    – Соня, – сказала графиня, поднимая голову от письма, когда племянница проходила мимо нее. – Соня, ты не напишешь Николеньке? – сказала графиня тихим, дрогнувшим голосом, и во взгляде ее усталых, смотревших через очки глаз Соня прочла все, что разумела графиня этими словами. В этом взгляде выражались и мольба, и страх отказа, и стыд за то, что надо было просить, и готовность на непримиримую ненависть в случае отказа.
    Соня подошла к графине и, став на колени, поцеловала ее руку.
    – Я напишу, maman, – сказала она.
    Соня была размягчена, взволнована и умилена всем тем, что происходило в этот день, в особенности тем таинственным совершением гаданья, которое она сейчас видела. Теперь, когда она знала, что по случаю возобновления отношений Наташи с князем Андреем Николай не мог жениться на княжне Марье, она с радостью почувствовала возвращение того настроения самопожертвования, в котором она любила и привыкла жить. И со слезами на глазах и с радостью сознания совершения великодушного поступка она, несколько раз прерываясь от слез, которые отуманивали ее бархатные черные глаза, написала то трогательное письмо, получение которого так поразило Николая.

    На гауптвахте, куда был отведен Пьер, офицер и солдаты, взявшие его, обращались с ним враждебно, но вместе с тем и уважительно. Еще чувствовалось в их отношении к нему и сомнение о том, кто он такой (не очень ли важный человек), и враждебность вследствие еще свежей их личной борьбы с ним.
    Но когда, в утро другого дня, пришла смена, то Пьер почувствовал, что для нового караула – для офицеров и солдат – он уже не имел того смысла, который имел для тех, которые его взяли. И действительно, в этом большом, толстом человеке в мужицком кафтане караульные другого дня уже не видели того живого человека, который так отчаянно дрался с мародером и с конвойными солдатами и сказал торжественную фразу о спасении ребенка, а видели только семнадцатого из содержащихся зачем то, по приказанию высшего начальства, взятых русских. Ежели и было что нибудь особенное в Пьере, то только его неробкий, сосредоточенно задумчивый вид и французский язык, на котором он, удивительно для французов, хорошо изъяснялся. Несмотря на то, в тот же день Пьера соединили с другими взятыми подозрительными, так как отдельная комната, которую он занимал, понадобилась офицеру.
    Все русские, содержавшиеся с Пьером, были люди самого низкого звания. И все они, узнав в Пьере барина, чуждались его, тем более что он говорил по французски. Пьер с грустью слышал над собою насмешки.
    На другой день вечером Пьер узнал, что все эти содержащиеся (и, вероятно, он в том же числе) должны были быть судимы за поджигательство. На третий день Пьера водили с другими в какой то дом, где сидели французский генерал с белыми усами, два полковника и другие французы с шарфами на руках. Пьеру, наравне с другими, делали с той, мнимо превышающею человеческие слабости, точностью и определительностью, с которой обыкновенно обращаются с подсудимыми, вопросы о том, кто он? где он был? с какою целью? и т. п.
    Вопросы эти, оставляя в стороне сущность жизненного дела и исключая возможность раскрытия этой сущности, как и все вопросы, делаемые на судах, имели целью только подставление того желобка, по которому судящие желали, чтобы потекли ответы подсудимого и привели его к желаемой цели, то есть к обвинению. Как только он начинал говорить что нибудь такое, что не удовлетворяло цели обвинения, так принимали желобок, и вода могла течь куда ей угодно. Кроме того, Пьер испытал то же, что во всех судах испытывает подсудимый: недоумение, для чего делали ему все эти вопросы. Ему чувствовалось, что только из снисходительности или как бы из учтивости употреблялась эта уловка подставляемого желобка. Он знал, что находился во власти этих людей, что только власть привела его сюда, что только власть давала им право требовать ответы на вопросы, что единственная цель этого собрания состояла в том, чтоб обвинить его. И поэтому, так как была власть и было желание обвинить, то не нужно было и уловки вопросов и суда. Очевидно было, что все ответы должны были привести к виновности. На вопрос, что он делал, когда его взяли, Пьер отвечал с некоторою трагичностью, что он нес к родителям ребенка, qu"il avait sauve des flammes [которого он спас из пламени]. – Для чего он дрался с мародером? Пьер отвечал, что он защищал женщину, что защита оскорбляемой женщины есть обязанность каждого человека, что… Его остановили: это не шло к делу. Для чего он был на дворе загоревшегося дома, на котором его видели свидетели? Он отвечал, что шел посмотреть, что делалось в Москве. Его опять остановили: у него не спрашивали, куда он шел, а для чего он находился подле пожара? Кто он? повторили ему первый вопрос, на который он сказал, что не хочет отвечать. Опять он отвечал, что не может сказать этого.
    – Запишите, это нехорошо. Очень нехорошо, – строго сказал ему генерал с белыми усами и красным, румяным лицом.
    На четвертый день пожары начались на Зубовском валу.
    Пьера с тринадцатью другими отвели на Крымский Брод, в каретный сарай купеческого дома. Проходя по улицам, Пьер задыхался от дыма, который, казалось, стоял над всем городом. С разных сторон виднелись пожары. Пьер тогда еще не понимал значения сожженной Москвы и с ужасом смотрел на эти пожары.
    В каретном сарае одного дома у Крымского Брода Пьер пробыл еще четыре дня и во время этих дней из разговора французских солдат узнал, что все содержащиеся здесь ожидали с каждым днем решения маршала. Какого маршала, Пьер не мог узнать от солдат. Для солдата, очевидно, маршал представлялся высшим и несколько таинственным звеном власти.
    Эти первые дни, до 8 го сентября, – дня, в который пленных повели на вторичный допрос, были самые тяжелые для Пьера.

    Х
    8 го сентября в сарай к пленным вошел очень важный офицер, судя по почтительности, с которой с ним обращались караульные. Офицер этот, вероятно, штабный, с списком в руках, сделал перекличку всем русским, назвав Пьера: celui qui n"avoue pas son nom [тот, который не говорит своего имени]. И, равнодушно и лениво оглядев всех пленных, он приказал караульному офицеру прилично одеть и прибрать их, прежде чем вести к маршалу. Через час прибыла рота солдат, и Пьера с другими тринадцатью повели на Девичье поле. День был ясный, солнечный после дождя, и воздух был необыкновенно чист. Дым не стлался низом, как в тот день, когда Пьера вывели из гауптвахты Зубовского вала; дым поднимался столбами в чистом воздухе. Огня пожаров нигде не было видно, но со всех сторон поднимались столбы дыма, и вся Москва, все, что только мог видеть Пьер, было одно пожарище. Со всех сторон виднелись пустыри с печами и трубами и изредка обгорелые стены каменных домов. Пьер приглядывался к пожарищам и не узнавал знакомых кварталов города. Кое где виднелись уцелевшие церкви. Кремль, неразрушенный, белел издалека с своими башнями и Иваном Великим. Вблизи весело блестел купол Ново Девичьего монастыря, и особенно звонко слышался оттуда благовест. Благовест этот напомнил Пьеру, что было воскресенье и праздник рождества богородицы. Но казалось, некому было праздновать этот праздник: везде было разоренье пожарища, и из русского народа встречались только изредка оборванные, испуганные люди, которые прятались при виде французов.
    Очевидно, русское гнездо было разорено и уничтожено; но за уничтожением этого русского порядка жизни Пьер бессознательно чувствовал, что над этим разоренным гнездом установился свой, совсем другой, но твердый французский порядок. Он чувствовал это по виду тех, бодро и весело, правильными рядами шедших солдат, которые конвоировали его с другими преступниками; он чувствовал это по виду какого то важного французского чиновника в парной коляске, управляемой солдатом, проехавшего ему навстречу. Он это чувствовал по веселым звукам полковой музыки, доносившимся с левой стороны поля, и в особенности он чувствовал и понимал это по тому списку, который, перекликая пленных, прочел нынче утром приезжавший французский офицер. Пьер был взят одними солдатами, отведен в одно, в другое место с десятками других людей; казалось, они могли бы забыть про него, смешать его с другими. Но нет: ответы его, данные на допросе, вернулись к нему в форме наименования его: celui qui n"avoue pas son nom. И под этим названием, которое страшно было Пьеру, его теперь вели куда то, с несомненной уверенностью, написанною на их лицах, что все остальные пленные и он были те самые, которых нужно, и что их ведут туда, куда нужно. Пьер чувствовал себя ничтожной щепкой, попавшей в колеса неизвестной ему, но правильно действующей машины.
    Пьера с другими преступниками привели на правую сторону Девичьего поля, недалеко от монастыря, к большому белому дому с огромным садом. Это был дом князя Щербатова, в котором Пьер часто прежде бывал у хозяина и в котором теперь, как он узнал из разговора солдат, стоял маршал, герцог Экмюльский.
    Их подвели к крыльцу и по одному стали вводить в дом. Пьера ввели шестым. Через стеклянную галерею, сени, переднюю, знакомые Пьеру, его ввели в длинный низкий кабинет, у дверей которого стоял адъютант.
    Даву сидел на конце комнаты над столом, с очками на носу. Пьер близко подошел к нему. Даву, не поднимая глаз, видимо справлялся с какой то бумагой, лежавшей перед ним. Не поднимая же глаз, он тихо спросил:
    – Qui etes vous? [Кто вы такой?]
    Пьер молчал оттого, что не в силах был выговорить слова. Даву для Пьера не был просто французский генерал; для Пьера Даву был известный своей жестокостью человек. Глядя на холодное лицо Даву, который, как строгий учитель, соглашался до времени иметь терпение и ждать ответа, Пьер чувствовал, что всякая секунда промедления могла стоить ему жизни; но он не знал, что сказать. Сказать то же, что он говорил на первом допросе, он не решался; открыть свое звание и положение было и опасно и стыдно. Пьер молчал. Но прежде чем Пьер успел на что нибудь решиться, Даву приподнял голову, приподнял очки на лоб, прищурил глаза и пристально посмотрел на Пьера.
    – Я знаю этого человека, – мерным, холодным голосом, очевидно рассчитанным для того, чтобы испугать Пьера, сказал он. Холод, пробежавший прежде по спине Пьера, охватил его голову, как тисками.
    – Mon general, vous ne pouvez pas me connaitre, je ne vous ai jamais vu… [Вы не могли меня знать, генерал, я никогда не видал вас.]
    – C"est un espion russe, [Это русский шпион,] – перебил его Даву, обращаясь к другому генералу, бывшему в комнате и которого не заметил Пьер. И Даву отвернулся. С неожиданным раскатом в голосе Пьер вдруг быстро заговорил.
    – Non, Monseigneur, – сказал он, неожиданно вспомнив, что Даву был герцог. – Non, Monseigneur, vous n"avez pas pu me connaitre. Je suis un officier militionnaire et je n"ai pas quitte Moscou. [Нет, ваше высочество… Нет, ваше высочество, вы не могли меня знать. Я офицер милиции, и я не выезжал из Москвы.]
    – Votre nom? [Ваше имя?] – повторил Даву.
    – Besouhof. [Безухов.]
    – Qu"est ce qui me prouvera que vous ne mentez pas? [Кто мне докажет, что вы не лжете?]
    – Monseigneur! [Ваше высочество!] – вскрикнул Пьер не обиженным, но умоляющим голосом.
    Даву поднял глаза и пристально посмотрел на Пьера. Несколько секунд они смотрели друг на друга, и этот взгляд спас Пьера. В этом взгляде, помимо всех условий войны и суда, между этими двумя людьми установились человеческие отношения. Оба они в эту одну минуту смутно перечувствовали бесчисленное количество вещей и поняли, что они оба дети человечества, что они братья.
    В первом взгляде для Даву, приподнявшего только голову от своего списка, где людские дела и жизнь назывались нумерами, Пьер был только обстоятельство; и, не взяв на совесть дурного поступка, Даву застрелил бы его; но теперь уже он видел в нем человека. Он задумался на мгновение.
    – Comment me prouverez vous la verite de ce que vous me dites? [Чем вы докажете мне справедливость ваших слов?] – сказал Даву холодно.
    Пьер вспомнил Рамбаля и назвал его полк, и фамилию, и улицу, на которой был дом.
    – Vous n"etes pas ce que vous dites, [Вы не то, что вы говорите.] – опять сказал Даву.
    Пьер дрожащим, прерывающимся голосом стал приводить доказательства справедливости своего показания.
    Но в это время вошел адъютант и что то доложил Даву.
    Даву вдруг просиял при известии, сообщенном адъютантом, и стал застегиваться. Он, видимо, совсем забыл о Пьере.
    Когда адъютант напомнил ему о пленном, он, нахмурившись, кивнул в сторону Пьера и сказал, чтобы его вели. Но куда должны были его вести – Пьер не знал: назад в балаган или на приготовленное место казни, которое, проходя по Девичьему полю, ему показывали товарищи.
    Он обернул голову и видел, что адъютант переспрашивал что то.
    – Oui, sans doute! [Да, разумеется!] – сказал Даву, но что «да», Пьер не знал.
    Пьер не помнил, как, долго ли он шел и куда. Он, в состоянии совершенного бессмыслия и отупления, ничего не видя вокруг себя, передвигал ногами вместе с другими до тех пор, пока все остановились, и он остановился. Одна мысль за все это время была в голове Пьера. Это была мысль о том: кто, кто же, наконец, приговорил его к казни. Это были не те люди, которые допрашивали его в комиссии: из них ни один не хотел и, очевидно, не мог этого сделать. Это был не Даву, который так человечески посмотрел на него. Еще бы одна минута, и Даву понял бы, что они делают дурно, но этой минуте помешал адъютант, который вошел. И адъютант этот, очевидно, не хотел ничего худого, но он мог бы не войти. Кто же это, наконец, казнил, убивал, лишал жизни его – Пьера со всеми его воспоминаниями, стремлениями, надеждами, мыслями? Кто делал это? И Пьер чувствовал, что это был никто.

    Среда разработки Eclipse

    Первоначально Eclipse разрабатывалась фирмой IBM как преемник среды разработки IBM VisualAge, в качестве корпоративного стандарта IDE для разработки на разных языках под платформы IBM. По сведениям IBM, проектирование и разработка стоили 40 миллионов долларов. Исходный код был полностью открыт и сделан доступным после того, как Eclipse был передан для дальнейшего развития независимому от IBM сообществу.

    В Eclipse 3.0 (2003 год) были выбраны спецификации сервисной платформы OSGi, как архитектура времени выполнения. С версии 3.0 Eclipse перестал быть монолитной IDE, поддерживающей расширения, а сам стал набором расширений. В основе лежат фреймворк OSGi и SWT/JFace, на основе которых разработан следующий слой -- RCP (Rich Client Platform, платформа для разработки полноценных клиентских приложений). RCP служит основой не только для Eclipse, но и для других RCP-приложений, например Azureus и File Arranger. Следующий слой -- сам Eclipse, представляющий собой набор расширений RCP -- редакторы, панели, перспективы, модуль CVS и модуль Java Development Tools (JDT).

    С 2006 года фонд Eclipse координирует ежегодный общий релиз (Simultaneous Release), который происходит в июне. Каждый выпуск включает в себя платформу Eclipse, а также ряд других проектов Eclipse.

    Eclipse служит в первую очередь платформой для разработки расширений, чем он и завоевал популярность: любой разработчик может расширить Eclipse своими модулями. Уже существуют Java Development Tools (JDT), C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с IBM, и средства для языков Ada (GNATbench, Hibachi), COBOL, FORTRAN, PHP и пр. от различных разработчиков. Множество расширений дополняет среду Eclipse менеджерами для работы с базами данных, серверами приложений и др.

    Eclipse JDT (Java Development Tools) -- наиболее известный модуль, нацеленный на групповую разработку: среда интегрирована с системами управления версиями -- CVS,GIT в основной поставке, для других систем (например, Subversion, MS SourceSafe) существуют плагины. Также предлагает поддержку связи между IDE и системой управления задачами (ошибками). В основной поставке включена поддержка трекера ошибок Bugzilla, также имеется множество расширений для поддержки других трекеров (Trac, Jira и др.). В силу бесплатности и высокого качества, Eclipse во многих организациях является корпоративным стандартом для разработки приложений.

    Eclipse написана на Java, потому является платформо-независимым продуктом, за исключением библиотеки SWT, которая разрабатывается для всех распространённых платформ (см. ниже). Библиотека SWT используется вместо стандартной для Java библиотеки Swing. Она полностью опирается на нижележащую платформу (операционную систему), что обеспечивает быстроту и натуральный внешний вид пользовательского интерфейса, но иногда вызывает на разных платформах проблемы совместимости и устойчивости приложений. Основой Eclipse является платформа расширенного клиента (RCP -- от англ. rich client platform). Её составляют следующие компоненты:

    OSGi (стандартная среда поставки комплектов (англ. bundles));

    SWT (портируемый инструментарий виджетов);

    JFace (файловые буферы, работа с текстом, текстовые редакторы);

    Рабочая среда Eclipse (панели, редакторы, проекции, мастеры).

    GUI в Eclipse, написан с использованием инструментария SWT. Последний, в отличие от Swing (который самостоятельно эмулирует графические элементы управления), использует графические компоненты данной операционной системы. Пользовательский интерфейс Eclipse также зависит от промежуточного слоя GUI, называемого JFace, который упрощает построение пользовательского интерфейса, базирующегося на SWT.

    Гибкость Eclipse обеспечивается за счёт подключаемых модулей, благодаря чему возможна разработка не только на Java, но и на других языках, таких как C/C++, Perl, Groovy, Ruby, Python, PHP, Erlang, Компонентного Паскаля, Zonnon и прочих.



    Понравилась статья? Поделиться с друзьями: