Eclipse — это интегрированная среда разработки (IDE), используемая в компьютерном программировании . [5] Он содержит базовую рабочую область и расширяемую систему плагинов для настройки среды. Это вторая по популярности IDE для разработки на Java , и до 2016 года она была самой популярной. [6] Eclipse написан в основном на Java, и его основное использование — для разработки приложений Java, [7] но его также можно использовать для разработки приложений на других языках программирования с помощью плагинов, включая Ada , ABAP , C , C++ , C#. , Clojure , COBOL , D , Erlang , Fortran , Groovy , Haskell , JavaScript , Julia , [8] Lasso , Lua , NATURAL , Perl , PHP , Prolog , Python , R , Ruby (включая фреймворк Ruby on Rails ) , Rust , Scala и Схема . Его также можно использовать для разработки документов с помощью LaTeX (через плагин TeXlipse) и пакетов для программного обеспечения Mathematica . Среды разработки включают, среди прочего, инструменты разработки Eclipse Java (JDT) для Java и Scala, Eclipse CDT для C/C++ и Eclipse PDT для PHP. [9]
Первоначальная база кода возникла из IBM VisualAge . [10] Комплект разработки программного обеспечения Eclipse (SDK), включающий инструменты разработки Java, предназначен для разработчиков Java. Пользователи могут расширить его возможности, установив плагины, написанные для платформы Eclipse, например наборы инструментов разработки для других языков программирования, а также могут писать и предлагать свои собственные плагины. Начиная с Eclipse 3.0 (выпущенного в 2004 году), плагины устанавливаются и управляются как «пакеты» с использованием Equinox , реализации OSGi . [11]
Eclipse SDK — это бесплатное программное обеспечение с открытым исходным кодом , выпущенное на условиях общественной лицензии Eclipse , хотя оно несовместимо с лицензией GNU General Public License . [12] Это была одна из первых IDE, работавших под управлением GNU Classpath , и она без проблем работает под IcedTea .
Eclipse был вдохновлен семейством продуктов интегрированной среды разработки (IDE) VisualAge на базе Smalltalk . [10] Хотя продукты VisualAge были довольно успешными, основным недостатком продуктов VisualAge было то, что разработанный код не использовался в модели разработки программного обеспечения на основе компонентов . Вместо этого весь код проекта хранился в сжатой базе данных с использованием технологий SCID (что-то вроде zip-файла, но в формате .dat). Доступ к отдельным классам был затруднен, особенно вне инструмента. Команда лаборатории IBM в Кэри, Северная Каролина, разработала новый продукт в качестве замены на основе Java. [13] [ не удалось проверить ] В ноябре 2001 года был сформирован консорциум с управляющим советом для дальнейшего развития Eclipse как программного обеспечения с открытым исходным кодом . По оценкам, к тому времени IBM уже инвестировала около 40 миллионов долларов. [14] Первоначальными членами были Borland , IBM , Merant , QNX Software Systems , Rational Software , Red Hat , SuSE , TogetherSoft и WebGain . [15] К концу 2003 года число стюардов увеличилось до более чем 80. В январе 2004 года был создан Фонд Eclipse . [16]
Eclipse 3.0 (выпущенный 21 июня 2004 г.) выбрал спецификации сервисной платформы OSGi в качестве архитектуры среды выполнения. [17]
26 апреля 2012 года Ассоциация вычислительной техники наградила Eclipse премией ACM Software System Award 2011. [18]
Публичная лицензия Eclipse ( EPL) — это основная лицензия, под которой выпускаются проекты Eclipse. [19] Некоторые проекты требуют двойного лицензирования, для чего доступна лицензия на распространение Eclipse (EDL), хотя на использование этой лицензии необходимо подать заявку и рассматривается в каждом конкретном случае.
Первоначально Eclipse был выпущен под лицензией Common Public License , но позже был повторно лицензирован под лицензией Eclipse Public License. Фонд свободного программного обеспечения заявил, что обе лицензии являются лицензиями на свободное программное обеспечение , но несовместимы со Стандартной общественной лицензией GNU (GPL). [20]
По словам Ли Накмана, главного технического директора подразделения IBM Rational (основанного в 2003 году), в то время название «Eclipse» (датируемое как минимум 2001 годом) не было игрой слов в компании Sun Microsystems , как основного конкурента продукта на момент выпуска. имя было Microsoft Visual Studio , которое Eclipse должен был затмить. [21]
Разным версиям Eclipse были присвоены разные научные названия. За версиями, названными в честь Каллисто , Европы и Ганимеда , которые являются спутниками Юпитера , последовала версия, названная в честь Галилея , первооткрывателя этих спутников. За ними последовали два имени на тему солнца: Гелиос из греческой мифологии и Индиго , один из семи цветов радуги (который создается солнцем). Последующая версия, Юнона, имеет тройное значение: римская мифологическая фигура , астероид и космический корабль к Юпитеру . [22] Кеплер , Луна и Марс продолжили тему астрономии, а затем Неон и Кислород составили тему химических элементов . Photon олицетворял возвращение к именам на солнечную тему.
С 2018 года [обновлять]от алфавитной схемы отказались, чтобы лучше соответствовать новой стратегии одновременного выпуска. [23] Релизы именуются в формате ГГГГ-ММ, что отражает ежеквартальные выпуски, начиная с версии 4.9 под названием 2018-09. [24]
С 2006 года Фонд координирует ежегодный одновременный выпуск . [25] Каждый выпуск включает платформу Eclipse и несколько других проектов Eclipse.
С 2008 по 2018 год каждый одновременный выпуск происходил в 4-ю среду июня. В 2018 году проект перешел на ежеквартальные (13-недельные) выпуски ГГГГ-ММ без промежуточных сервисных выпусков. [26]
Eclipse использует плагины для обеспечения всех функций внутри и поверх системы времени выполнения. Его система времени выполнения основана на Equinox , реализации базовой спецификации OSGi . [80]
Помимо возможности расширения платформы Eclipse с использованием других языков программирования , таких как C и Python , платформа плагинов позволяет платформе Eclipse работать с языками набора текста, такими как LaTeX [81], и сетевыми приложениями, такими как telnet и системами управления базами данных. . Архитектура плагинов поддерживает запись в среду любого желаемого расширения, например, для управления конфигурацией . Поддержка Java и CVS обеспечивается в Eclipse SDK , а поддержка других систем контроля версий обеспечивается сторонними плагинами .
За исключением небольшого ядра времени выполнения, все в Eclipse является плагином. Таким образом, каждый разработанный плагин интегрируется с Eclipse так же, как и другие плагины; в этом отношении все функции «созданы равными». [82] Eclipse предоставляет плагины для широкого спектра функций, некоторые из которых созданы сторонними организациями, использующими как бесплатные, так и коммерческие модели. Примеры подключаемых модулей включают в себя унифицированный язык моделирования (UML), последовательность и другие диаграммы UML, подключаемый модуль для DB Explorer и многие другие.
Eclipse SDK включает в себя инструменты разработки Eclipse Java (JDT), предлагающие интегрированную среду разработки со встроенным инкрементным компилятором Java и полную модель исходных файлов Java. Это позволяет использовать расширенные методы рефакторинга и анализа кода. IDE также использует рабочую область , в данном случае набор метаданных в плоском файловом пространстве, позволяющий вносить внешние изменения в файлы при условии, что соответствующий ресурс рабочей области впоследствии обновляется.
Eclipse реализует элементы графического управления из набора инструментов Java, называемого Standard Widget Toolkit (SWT), тогда как большинство приложений Java используют стандартный Java- инструментарий Abstract Window Toolkit (AWT), Swing или JavaFX . Пользовательский интерфейс Eclipse также использует промежуточный уровень графического пользовательского интерфейса, называемый JFace , который упрощает создание приложений на основе SWT. Eclipse был создан для работы на Wayland во время проекта Google Summer of Code (GSoC) в 2014 году. [83]
По состоянию на 2017 год [обновлять]языковые пакеты, разрабатываемые Babel Project , обеспечивают переводы на более чем 40 естественных языков . [4]
Eclipse предоставляет богатую клиентскую платформу (RCP) для разработки приложений общего назначения.
Следующие компоненты составляют богатую клиентскую платформу:
Примеры многофункциональных клиентских приложений на базе Eclipse:
Eclipse поддерживает разработку для Tomcat , GlassFish и многих других серверов и часто способен установить необходимый сервер (для разработки) непосредственно из IDE. Он поддерживает удаленную отладку, позволяя пользователю наблюдать за переменными и пошагово выполнять код приложения, работающего на подключенном сервере.
Проект Eclipse Web Tools Platform (WTP) — это расширение платформы Eclipse с инструментами для разработки веб-приложений и приложений Java EE. Он включает в себя редакторы исходного кода и графические редакторы для различных языков, мастера и встроенные приложения для упрощения разработки, а также инструменты и API для поддержки развертывания, запуска и тестирования приложений. [85]
Проект «Моделирование» содержит все официальные проекты Eclipse Foundation, посвященные технологиям разработки на основе моделей. Все они совместимы с Eclipse Modeling Framework, созданным IBM. Эти проекты разделены на несколько категорий: «Преобразование моделей», «Инструменты разработки моделей», «Разработка конкретного синтаксиса», «Разработка абстрактного синтаксиса», «Технологии и исследования» и «Амальгама».
Проекты преобразования моделей используют модели на основе Eclipse Modeling Framework (EMF) в качестве входных данных и создают либо модель, либо текст в качестве выходных данных. Проекты преобразования модели в модель включают в себя язык преобразования ATLAS (ATL), язык преобразования с открытым исходным кодом и набор инструментов, используемый для преобразования заданной модели или создания новой модели на основе заданной модели EMF. Проекты преобразования модели в текст содержат Acceleo , реализацию MOFM2T , стандартного языка модели в текст от Object Management Group (OMG). Генератор кода Acceleo может генерировать любой текстовый язык (Java, PHP, Python и т. д.) из моделей на основе EMF, определенных с помощью любой метамодели ( унифицированный язык моделирования (UML), язык системного моделирования (SysML) и т. д.). Это открытый исходный код.
Проекты инструментов разработки моделей представляют собой реализации различных стандартов моделирования, используемых в отрасли, и их наборов инструментов. Среди этих проектов можно найти реализации нескольких стандартов:
Проект «Разработка конкретного синтаксиса» содержит платформу графического моделирования, основанную на Eclipse структуру, предназначенную для графического представления моделей на основе EMF. [ нужна цитата ]
В проекте «Разработка абстрактного синтаксиса» размещается платформа моделирования Eclipse, ядро большей части проектов моделирования Eclipse Foundation, а также платформа, доступная для EMF, например связанных объектов данных (CDO), запросов EMF или проверки EMF.
Технологические и исследовательские проекты являются прототипами проектов моделирования; этот проект используется для размещения всех проектов моделирования Eclipse Foundation на этапе их инкубации. [ нужна цитата ]
Amalgam обеспечивает упаковку и интеграцию между всеми доступными инструментами моделирования для пакета Eclipse, предназначенного для инструментов моделирования. [86]
Для управления жизненным циклом приложений (ALM) и управления задачами в Eclipse необходим дополнительный компонент под названием Mylyn ( / ˈ m aɪ l ɪ n / ), реализация интерфейса, ориентированного на задачи, с открытым исходным кодом . Он предоставляет API для инструментов, встраивающих интерфейс, ориентированный на задачи. Разработчикам программного обеспечения это помогает эффективно работать над множеством различных задач (таких как ошибки, отчеты о проблемах или новые функции). Задачи интегрированы в Mylyn. Для всех интегрированных задач Mylyn отслеживает активность пользователей и пытается идентифицировать информацию, относящуюся к выполняемой задаче. Он использует этот контекст задачи, чтобы сосредоточить пользовательский интерфейс Eclipse на связанной информации. Mylyn может интегрироваться с такими репозиториями, как Bugzilla , Trac , Redmine , Mantis , [87] JIRA , Unfuddle, [88] и GitHub . [89] Он направлен на повышение производительности за счет сокращения поиска, прокрутки и навигации. Делая явным контекст задачи, Mylyn также призван облегчить многозадачность, планирование, повторное использование прошлых усилий и обмен опытом.
Название проекта происходит от миелина — электроизолирующего слоя, окружающего аксоны нейронов. [90] Первоначальное название этого проекта, «Майлар», повторяло торговую марку кинокомпании boPET , поэтому Eclipse Foundation изменил название проекта. [91]
Возможности Eclipse IDE включают текстовый редактор с раскраской синтаксиса, помощь в написании кода, завершение кода , рефакторинг кода , анализ кода с предложениями «быстрого исправления», а также отладку кода . [92]
Наряду с встроенной поддержкой OSGi, начиная с Java 9, была добавлена поддержка JPMS. [92]
Eclipse поддерживает широкий выбор расширений, включая поддержку Python через PyDev , разработку Android через Google ADT (заменён Android Studio с 2015 года), JavaFX через e(fx)clipse, JavaScript , jQuery и многие другие на Eclipse Marketplace. Valable — это плагин Vala для Eclipse. [93]
Помимо встроенных предупреждений компилятора Java, для проверки доступны дополнительные плагины для улучшения качества и согласованности кода, такие как SpotBugs и Sonar. [94] [95]
Поддержка таких инструментов сборки, как Ant , Maven , Make и CMake , включает возможность замены собственного формата файла проекта Eclipse на Maven pom.xml напрямую. [96]
В проекте Eclipse существует несколько альтернативных дистрибутивов.
Проект инструментов разработки гипертекстового препроцессора PHP (PHP) предоставляет основу для платформы Eclipse. Проект охватывает все компоненты разработки, включая завершение кода, разработку PHP и обеспечение расширяемости. Он использует существующую платформу веб-инструментов Eclipse (WTP) и набор инструментов динамических языков (DLTK). [97]
Инструменты разработки Android (ADT) были заменены в 2015 году собственным плагином фонда Eclipse под названием Andmore : Development Tools for Android [98] после того, как Google прекратил разработку своего плагина для Eclipse IDE, предназначенного для обеспечения интегрированной среды. для создания приложений для Android. ADT/Andmore расширяет возможности Eclipse, позволяя разработчикам создавать новые проекты Android, создавать пользовательский интерфейс приложения, добавлять пакеты на основе Android Framework API, отлаживать свои приложения с помощью инструментов Android SDK и экспортировать подписанные (или неподписанные) файлы .apk. для распространения своих приложений. Он доступен для бесплатного скачивания. ADT от Google была официальной IDE для Android до 2015 года, но была заменена Andmore от Eclipse и официальной Android Studio . [99] [100]
Проект Eclipse Web Tools Platform (WTP) расширяет платформу Eclipse инструментами для разработки веб-приложений и приложений Java EE.
Он включает в себя исходные и графические редакторы для различных языков, мастера и встроенные приложения для упрощения разработки, инструменты для поддержки развертывания, запуска и тестирования приложений, а также API-интерфейсы для расширения его функциональности.
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка )