| Eclipse (от англ. затмение) — свободный фреймворк для разработки
модульных кроссплатформенных приложений. Разрабатывается и
поддерживается Eclipse Foundation.
 
  Наиболее
известные приложения на основе Eclipse Platform — различные «Eclipse
IDE» для разработки ПО на множестве языков (например, наиболее
популярный «Java IDE», поддерживавшийся изначально, не полагается на
какие-либо закрытые расширения, использует стандартный открытый API для
доступа к Eclipse Platform).
 
 
 История
 Первоначально Eclipse разрабатывалась фирмой IBM как преемник среды
разработки IBM VisualAge. По сведениям IBM, проектирование и разработка
стоили 40 миллионов долларов. Исходный код был полностью открыт и
сделан доступным после того, как Eclipse был передан независимому от
IBM сообществу.
 
 В Eclipse 3.0 (2003 год) были выбраны спецификации сервисной платформы OSGi как архитектура времени выполнения.
 
 Последняя
стабильная версия программы — 3.5 (Galileo). Она, как и предшествующая
ей версия 3.4 (Ganymede), поддерживает новые возможности, появившиеся в
Java 6.0, содержит обновления ключевой OSGi-модели компонентов Equinox.
 
 Изначально
проект разрабатывался в IBM как корпоративный стандарт IDE для
разработки на разных языках под платформы IBM. Потом проект был
переименован в Eclipse и предоставлен для дальнейшего развития
сообществу.
 
 Eclipse — в первую очередь полноценная Java IDE,
нацеленная на групповую разработку, снабжённая средствами для работы с
системами контроля версий (поддержка CVS входит в поставку Eclipse,
активно развиваются несколько вариантов SVN модулей, существует
поддержка VSS и других). В силу бесплатности и высокого качества во
многих организациях Eclipse — корпоративный стандарт для разработки
приложений.
 
 Второе назначение Eclipse — служить платформой для
разработки новых расширений (чем и завоевал популярность — любой
разработчик может расширить Eclipse своими модулями). Таковыми стали
C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно
с IBM, COBOL, FORTRAN, PHP средства от различных разработчиков.
Множество расширений дополняет Eclipse менеджерами для работы с базами
данных, серверами приложений и др.
 
 С версии 3.0 Eclipse стал не
монолитной поддерживающей расширения IDE, а набором расширений. В
основе лежат фреймворк OSGi и SWT/JFace, на основе которых разработан
следующий слой — платформа для разработки полноценных клиентских
приложений RCP (Rich Client Platform). Платформа RCP служит основой для
RCP-приложений, таких как Azureus и File Arranger. Следующий слой —
платформа Eclipse, представляющая собой набор расширений RCP —
редакторы, панели, перспективы, модуль CVS и модуль Java Development
Tools (JDT).
 
 Eclipse написана на Java, потому является
платформо-независимым продуктом, за исключением библиотеки SWT, которая
разрабатывается для всех распространённых платформ (см. ниже).
Библиотека SWT используется вместо стандартной для Java библиотеки
Swing. Она полностью зависит от нижележащей платформы (операционной
системы), что обеспечивает быстроту и натуральный внешний вид
пользовательского интерфейса, но иногда вызывает проблемы совместимости
и устойчивости приложений на разных платформах.
 
 Архитектура
 
 Основой
Eclipse является платформа расширенного клиента (RCP — от англ. rich
client platform). Её составляют следующие компоненты:
 
 GUI
в Eclipse написан с использованием инструментария SWT. Последний, в
отличие от Swing (который самостоятельно эмулирует графические элементы
управления), использует графические компоненты данной операционной
системы. Пользовательский интерфейс Eclipse также зависит от
промежуточного слоя GUI, называемого JFace, который упрощает построение
пользовательского интерфейса, базирующегося на SWT. Ядро платформы (загрузка Eclipse, запуск модулей);OSGi (стандартная среда поставки комплектов);SWT (портируемый инструментарий виджетов);JFace (файловые буферы, работа с текстом, текстовые редакторы);Рабочая среда Eclipse (панели, редакторы, проекции, мастеры).
 
 Гибкость
Eclipse обеспечивается за счёт подключаемых модулей, благодаря чему
возможна разработка не только на Java, но и на других языках, таких как
C/C++, Perl, Groovy, Ruby, Python, PHP, Erlang и прочие.
 
 
 Проекты Eclipse
 ПлатформаEclipse Project — собственно проект Eclipse, включает в себя
Eclipse Platform — каркасPlug-in Development Environment — инструмент расширения Eclipse-платформы посредством Eclipse-плагиновJava Development Tools — инструмент разработки Java-программ и Eclipse-плагинов в частности
 Rich Client Platform — платформа расширенного клиента, минимальный набор плагинов для построения программы с графическим интерфейсом
 
 Примеры проектовКроме того в состав Eclipse входят следующие проекты (перечислены лишь некоторые): Aperi (от лат. открывать) — open source система управления системами сетевого хранения данныхBIRT — Web- и PDF-отчёты
 DTP —
разработка систем, управляемых данными (data-centric systems), в
частности данными в реляционных базах; управление программами с большим
числом коннекторовGEF — фреймворк для построения встроенных графических редакторовJazz — collaboration
 Modeling
EMF, Среда моделирования Eclipse — средство для создания моделей
и генерации кода для построения инструментов и других приложений,
базирующихся на структурированной модели данных, из спецификации
модели, прописанной в XMIUML2 — реализация метамодели UML 2.0 для поддержки разработки инструментов моделирования
 Tools
AspectJ — аспектно-ориентированное расширение языка JavaCDT — среда разработки на C/C++ (C/C++ IDE)
 Последние версииTPTP — разработка инструментов тестирования, — отладчики, профайлеры и т. п.VE — разработка инструментов GUIWTP — инструменты разработки веб-приложений J2EE
редакторы HTML, JavaScript, CSS, JSP, SQL, XML, DTD, XSD и WSDLграфические редакторы для XSD и WSDLмастеры и проводник веб-служб, инструменты тестирования WS-Iинструменты для доступа и построения запросов и моделей баз данных
Коммуникационная среда Eclipse нацелена на создание коммуникационных приложений на платформе Eclipse.Проект разработки программного обеспечения для устройствПлатформа параллельных инструментов обеспечивает портируемую, масштабируемую,
основанную на стандартах платформу параллельных инструментов, которая
позволит облегчить интеграцию инструментов, специфических для
параллельных компьютерных архитектур.Платформа встроенного расширенного клиента —
предназначена для расширения RCP на встраиваемые устройства. В eRCP
входит набор компонентов, которые являются подмножеством компонентов
RCP. Она позволит перенести модель приложения, используемого на
настольных компьютерах, на другие устройства.DLTK — интегрированная среда разработчика для динамических языков программирования.Swordfish — платформа для построения распределенных корпоративных информационных систем.
 
 Eclipse 3.3.2 (Europa Winter)
 
 Количество
новых подпроектов (как управляемых Eclipse Foundation, так и сторонних)
быстро увеличивается. Приходится координировать усилия огромного
количества разработчиков и предлагать общие правила — «Eclipse
Development Process».
 
 Последняя версия релиза включает в себя 21 подпроект.
 
 Eclipse 3.4 (Ganymede)Релиз Ganymede (06.2008) включает в себя 23 подпроекта: 
| Eclipse Project 3.4Equinox 3.4Eclipse Communication Framework Project 2.0.0Eclipse Model Framework TechnologyEclipse Modeling Framework 2.4.0Eclipse Packaging Project 1.0.0Eclipse Web Tools Platform Project 3.0.0Graphical Editor Framework 3.4.0Graphical Modeling Framework 2.1Model Development Tools. 1.1Data Tools Platform (DTP) 1.6Device Software Development Platform Project Device Debugging 1.0Device Software Development Platform Project Target Management 3.0
 | Buckminster Component Assembly 1.1BIRT 2.3.0C/C++ Development Tool (CDT) 5.0.0Dynamic Languages Toolkit 0.95Model to Text (M2T) 0.9.0Model-to-Model Transformation (M2M)Mylyn 3.0 (task-focused UI)Rich Ajax Platform (RAP) 1.1SOA Tools (STP) 1.0Subversive — SVN Team ProviderTarget Management 3.0Test and Performance Tools Platform Project 4.5.0
 |  
 Eclipse 3.5 (Galileo)Последний релиз Galileo, представленный публике 24 июня 2009 года, включает в себя 33 подпроекта: 
| Eclipse Platform 3.5Eclipse Project 3.5.0Eclipse Modeling Framework (EMF) 2.5.0Eclipse Packaging Project 1.1.0Eclipse Web Tools Platform Project WTP 3.1.0 (Galileo)EclipseLink Project 1.1.2Accessibility Tools Framework 0.7.0Business Intelligence and Reporting Tools (BIRT)C/C++ Development Tooling (CDT) 6.0Dali Java Persistence Tools 2.2Data Tools Platform 1.7 (Galileo)Dynamic Languages Toolkit 1.0Equinox 3.5GEF — Graphical Editor Framework 3.5.0Graphical Modeling Framework 2.2.0Java Workflow Tooling JWT 0.6JDT — Java development toolsM2T JET (Java Emitter Templates) — aka JET2 M2T JET 1.0.0 (Galileo)Memory Analyzer 0.8.0
 | Mobile Tools for JavaModel To Text (M2T) 1.0.0Model-to-Model Transformation (M2M) Galileo Simultaneous ReleaseMonitoring Tools 4.6Mylyn 3.2PHP Development Tools 2.1.0Rich Ajax Platform 1.2Riena Platform Project 1.1.0.SCA Tools 2.0.0SOA Tools 2.0Source Editing 3.1.0 (Galileo)Swordfish 0.9.0Target Management 3.1Test and Performance Tools Platform Project 4.5.3Testing Tools TPTP v4.6Textual Modeling Framework org.eclipse.xtextTools for mobile Linux 0.3TPTP Platform TPTP v4.6Tracing & Profiling Tools TPTP v4.6
 |  Локализация
 Начиная
с версии 3.1.1, выпущен языковой пак для русификации Eclipse.
Переведены на русский язык как графический интерфейс, так и
документация.
 
 Модули
 
 Для
среды Eclipse существует целый ряд свободных и коммерческих модулей.
Первоначально среда была разработана для языка Java, но в настоящее
время существуют многочисленные расширения для поддержки и других
языков:
 
 | Язык | Модуль | 
|---|
 
| C/С++ | CDT |  
| Perl | EPIC |  
| PHP | PDT |  
| JavaScript | JSEclipse |  
| Python | PyDev (Eclipse) |  
| Ruby | RDT | 
 
 Aptana — дистрибутив
Eclipse и плагин, поддерживающий разработку с использованием JavaScript
(все основные JS Ajax библиотеки включены в состав дистрибутива), HTML,
CSS, PHP, Ruby on rails, Adobe AIR и т. д.
 Модуля для
поддержки Pascal на данный момент нет. Вернее, есть заброшенный плагин
PasClipse, который можно возродить при желании. Ещё есть поддержка
подсветки синтаксиса паскаля плагином EclipseColorer, но это не может
считаться полноценной поддержкой языка.
 
 Существуют также модули для создания графических интерфейсов.
 
 Для разработки и получения отчётов и разработки аналитических BI-приложений в Eclipse имеется BIRT Project.
 
 В Eclipse встроена функция установки и обновления модулей через Интернет.
 
 Популярные приложения на базе SWT и RCP
 
 IBM Rational Application DeveloperIBM Lotus Notes/Domino — клиентская часть, начиная версии 8.0AzureusRSSOwlJcommanderFile Arranger — файловый менеджерSubclipse — SubversionBioclipse — система визуализации химической и биологической информацииEclipse Trader — система биржевой торговлиZipTie — фреймворк для мониторинга сетевых устройствSchoolclipse — управление школойElexis — система ведения медицинской документации
 Поддерживаемые архитектуры и системы
| AIX (PPC/Motif)FreeBSD (x86/GTK 2)HP-UX (HP9000/Motif)GNU/Linux (x86/GTK 2)GNU/Linux (x86-64/GTK 2)GNU/Linux (PPC/GTK 2)GNU/Linux (IA-64/GTK 2)
 | GNU/Linux (x86/Motif)Mac OS X (Mac/Carbon)QNX (x86/Photon)Solaris 8 (SPARC/GTK 2)Solaris 8 (SPARC/Motif)Microsoft Windows (Win32, Win64)
 |  
 
 |