Eclipse

Eclipse
Eclipse 3.3 в Ubuntu Linux
Тип інтегроване середовище розробки
Автор Object Technology Internationald[1]
Розробник Eclipse Foundation
Стабільний випуск 4.8 «Photon» (27 липня 2018; 5 років тому (2018-07-27))
Платформа Java SE, XML Widget Toolkit
Операційна система Linux, Mac OS X, Solaris, Windows
GNU фреймворк Standard Widget Toolkit
Мова програмування Java
Доступні мови багатомовна
Ліцензія Eclipse Public License
Онлайн-документація eclipse.org/contribute/
help.eclipse.org
Репозиторій git.eclipse.org/c/
Вебсайт www.eclipse.org

Eclipse (вимовляється «іклі́пс», від англійського «затемнення») — вільне модульне інтегроване середовище розробки програмного забезпечення. Розробляється і підтримується Eclipse Foundation і включає проєкти, такі як платформа Eclipse, набір інструментів для програмістів на мові Java, системи контролю версій, конструктори GUI тощо. Написаний в основному на Java, може бути використаний для розробки застосунків на Java і, за допомогою різних плагінів, на інших мовах програмування, включаючи Ada, C, C++, C#, COBOL, Fortran, Groovy, Haskell, JavaScript, Julia,[2] Lua, Perl, PHP, Python, R, Ruby (включно з каркасом Ruby on Rails), Scala, Clojure та Scheme. Середовища розробки зокрема включають Eclipse ADT (Ada Development Toolkit) для Ada, Eclipse CDT для C/C++, Eclipse JDT для Java, Eclipse PDT для PHP.

Початок коду йде від IBM VisualAge[3], він був розрахований на розробників Java, складаючи Java Development Tools (JDT). Але користувачі могли розширяти можливості, встановлюючи написані для програмного каркаса Eclipse плагіни, такі як інструменти розробки під інші мови програмування, і могли писати і вносити свої власні плагіни і модулі.

Випущена на умовах Eclipse Public License, Eclipse є вільним програмним забезпеченням. Він став одним з перших IDE під GNU Classpath і без проблем працює під IcedTea.

Загальний огляд

Eclipse це фреймворк для розробки модульних платформонезалежних застосунків із низкою особливостей:

Спочатку проєкт розроблявся в IBM як корпоративний стандарт IDE для розробки на багатьох мовах під платформи IBM. Потім проєкт було перейменовано на Eclipse і надано для подальшого розвитку спільноті.

Eclipse насамперед повноцінна Java IDE, націлена на групову розробку, має засоби роботи з системами контролю версій (підтримка CVS входить у поставку Eclipse, активно розвиваються кілька варіантів SVN модулів, існує підтримка VSS та інших). З огляду на безкоштовність, у багатьох організаціях Eclipse — корпоративний стандарт для розробки ПЗ на Java.

Друге призначення Eclipse — служити платформою для нових розширень. Такими стали C/C++ Development Tools (CDT), розроблювані інженерами QNX разом із IBM, засоби для підтримки інших мов різних розробників. Безліч розширень доповнює Eclipse менеджерами для роботи з базами даних, серверами застосунків та інших.

З версії 3.0 Eclipse став не монолітною IDE, яка підтримує розширення, а набором розширень. У основі лежать фреймворки OSGi, і SWT/JFace, на основі яких розроблений наступний шар — платформа і засоби розробки повноцінних клієнтських застосунків RCP (Rich Client Platform). Платформа RCP є базою для розробки різних RCP програм як торент-клієнт Azareus чи File Arranger. Наступний шар — платформа Eclipse, що є набором розширень RCP — редактори, панелі, перспективи, модуль CVS і модуль Java Development Tools (JDT).

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

Відповідно до IDC, із Eclipse працюють 2,3 мільйона розробників.

Архітектура

Основою Eclipse є платформа розширеного клієнта (RCP — від англ. rich client platform). Її складають такі компоненти:

  • Ядро платформи (завантаження Eclipse, запуск модулів);
  • OSGi (стандартне середовище постачання комплектів);
  • SWT (стандартний інструментарій віджетів);
  • JFace (файлові буфери, робота з текстом, текстові редактори);
  • Робоче середовище Eclipse (панелі, редактори, проєкції, майстри).

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

Гнучкість Eclipse забезпечується за рахунок модулів, що підключаються, завдяки чому можлива розробка не тільки на Java, але і на інших мовах, таких як C/C++, Perl, Groovy, Ruby, Python, PHP, ErLang та інших.

Проєкти Eclipse

Платформа

Докладніше: Eclipse Platform
  • Eclipse Project (Eclipse.org [Архівовано 19 липня 2008 у Wayback Machine.]) (англ.) — власне, проєкт Eclipse, включає в себе
    • Platform (Eclipse Platform, Platform [Архівовано 17 липня 2008 у Wayback Machine.]) — каркас
    • PDE (Plug-in Development Environment, PDE [Архівовано 25 серпня 2011 у WebCite]) — інструмент розширення Eclipse-платформи за допомогою Eclipse-плагінів
    • JDT (Java Development Tools, JDT [Архівовано 25 серпня 2011 у WebCite]) — інструмент розробки Java-програм та Eclipse-плагінів зокрема
  • RCP (Rich Client Platform, RCP [Архівовано 25 серпня 2011 у WebCite]) — платформа розширеного клієнта, мінімальний набір плагінів (org.eclipse.core.runtime [Архівовано 25 серпня 2011 у WebCite], org.eclipse.ui [Архівовано 25 серпня 2011 у WebCite]) для побудови програми з графічним інтерфейсом

Приклади проєктів

Крім того, у склад Eclipse входять такі проєкти (перелічені лише кілька [1] [Архівовано 25 серпня 2011 у WebCite]):

  • Aperi (від латинського «відкривати») — open source система управління системами мережного зберігання даних
  • BIRT (Business Intelligence and Reporting Tools [Архівовано 25 серпня 2011 у WebCite]) (англ.) — Web- і PDF-звіти
  • DTP (Data Tools Platform [Архівовано 25 серпня 2011 у WebCite]) (англ.) — розробка систем, що управляються даними (data-centric systems), зокрема даними в реляційних базах; управління програмами з великою кількістю конекторів
  • GEF (Graphical Editor Framework [Архівовано 25 серпня 2011 у WebCite]) (англ.)фреймворк для побудови вбудованих графічних редакторів
  • Jazz (Jazz.net [Архівовано 25 серпня 2011 у WebCite](англ.) [2](рос.)) — інструмент для співпраці
  • Modeling (eclipse.org/modeling/ [Архівовано 25 серпня 2011 у WebCite])
    • EMF (eclipse.org/modeling/emf/ [Архівовано 25 серпня 2011 у WebCite]) Середовище моделювання Eclipse — засіб для створення моделей і генерації коду для побудови інструментів та інших застосунків, що базуються на структурованій моделі даних, зі специфікації моделі, прописаної в XMI
    • UML2 ([3] [Архівовано 25 серпня 2011 у WebCite]) — реалізація метамоделі UML 2.0 для підтримки розробки інструментів моделювання
  • TPTP (Test & Performance Tools Platform [Архівовано 25 серпня 2011 у WebCite]) (англ.) — розробка інструментів тестування, — зневаджувачі, профайлери тощо
  • VE (Visual Editor Project) (англ.) — розробка інструментів GUI
  • WTP (Web Tools Platform Project [Архівовано 25 серпня 2011 у WebCite]) (англ.) — інструменти розробки вебзастосунків J2EE
    • редактори HTML, JavaScript, CSS, JSP, SQL, XML, DTD, XSD і WSDL
    • графічні редактори для XSD і WSDL
    • майстри і провідник вебслужб, інструменти тестування WS-I
    • інструменти для доступу і побудови запитів і моделей баз даних
  • Комунікаційне середовище Eclipse (ECF) націлене на створення комунікаційних застосунків на платформі Eclipse.
  • Проєкт розробки програмного забезпечення для приладів (DSDP [Архівовано 25 серпня 2011 у WebCite])
  • Pulsar — інструментальна платформа для уніфікованої розробки застосунків для смартфонів
  • Платформа паралельних інструментів (PTP [Архівовано 25 серпня 2011 у WebCite]) забезпечує портовану, масштабовану, засновану на стандартах платформу паралельних інструментів, яка дозволить полегшити інтеграцію інструментів, специфічних для паралельної комп'ютерної архітектури.
  • Платформа вбудованого розширеного клієнта (eRCP [Архівовано 25 серпня 2011 у WebCite]) — призначена для розширення RCP на вбудовані пристрої. У eRCP входить набір компонентів, які є підмножиною компонентів RCP. Вона дозволить перенести модель застосунку, використовного на настільних комп'ютерах, на інші пристрої.
  • DLTK (DLTK [Архівовано 25 серпня 2011 у WebCite]) — інтегроване середовище розробника для динамічних мов програмування.
  • Jetty
  • Eclipse Orion — інтегроване середовище розробки, що працює у веббраузері

Координація

Кількість нових підпроєктів (як керованих Eclipse Foundation, так і сторонніх) швидко збільшується. Доводиться координувати зусилля величезної кількості розробників і пропонувати загальні правила — «Eclipse Development Process» (Project Lifecycle [Архівовано 25 серпня 2011 у WebCite]).

Модулі

Для середовища Eclipse існує цілий ряд вільних і комерційних модулів. Спочатку середовище було розроблене для мови Java, але в нині існують численні розширення для підтримки інших мов, як наприклад

  • C/С++ — CDT Eclipse’s C/C++ Development Tooling [Архівовано 25 серпня 2011 у WebCite](англ.)
  • Perl — модуль EPIC, Eclipse Perl Integration [Архівовано 25 серпня 2011 у WebCite](англ.)
  • PHP — PDT PHP Development Tools [Архівовано 25 серпня 2011 у WebCite](англ.)
  • JavaScript — JSEclipse Javascript plugin for the Eclipse environment [Архівовано 25 серпня 2011 у WebCite](англ.)
  • Python — Pydev, Python Development Environment [Архівовано 27 січня 2012 у Wayback Machine.](англ.)
  • Ruby — RDT, Ruby Development Tools(англ.)
  • тощо

Існують також модулі для створення графічних інтерфейсів.

Для розробки і отримання звітів і розробки аналітичних BI-застосунків в Eclipse існуєBIRT_Project[en].

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

Aptana (aptana.com [Архівовано 23 лютого 2011 у Wayback Machine.]) — дистрибутив Eclipse і плагін, що підтримує розробку з використанням JavaScript (всі основні JS Ajax бібліотеки включені до складу дистрибутиву), HTML, CSS, Ruby on rails, Adobe AIR.

Історія

  • Листопад 1998, IBM Software Group почали створення платформи інструментів розробки. Спочатку було створено Java IDE на базі ресурсів Object Technology International (OTI) lab.
  • 2001
    • 7 листопада — Eclipse стає проєктом з відкритим кодом, викладено версію 1.0 [Архівовано 11 грудня 2007 у Wayback Machine.] і розроблювану 2.0. Підтримується Windows і Linux (інтерфейс Motif)
    • 29 листопада — створено Eclipse.org Consortium
    • 1 грудня — опубліковано план розробки версії 2.0
    • 12 грудня — оголошено і викладено додаток для розробки C/C++
  • 2002
    • 27 червня — версія 2.0. Нові платформи — Linux з інтерфейсом GTK, Solaris, QNX, AIX, HP-UX
    • 23 вересня — офіційно викладена версія для Mac OS.
  • 2003
    • 27 березня — версія 2.1
    • 9 червня — засновано проєкт Web Tools Platform

Одночасні релізи

Від 2006 року Eclipse Foundation скоординовано випускає одночасні релізи. Кожен реліз включає поруч з Eclipse Platform також різні інші проєкти Eclipse. Мета цього — забезпечити представлення програмного забезпечення Eclipse зі сталим набором можливостей і версій. Нібито, це спрощує застосування і підтримку для корпоративних систем, і решта споживачів може відчути зручність в такій системі. Відтак, кожен одночасний реліз називається ім'ям одного з супутників Юпітера, і це відбувається в останні дні червня.

Реліз Дата Версія платформи Проєкт
Eclipse 3.0 28 червня 2004 3.0
Eclipse 3.1 28 червня 2005 3.1
Callisto 30 червня 2006 3.2 проєкти Callisto [Архівовано 25 червня 2008 у Wayback Machine.]
Europa 29 червня 2007 3.3 проєкти Europa [Архівовано 16 травня 2008 у Wayback Machine.]
Ganymede 25 червня 2008 3.4 проєкти Ganymede [Архівовано 5 липня 2008 у Wayback Machine.]
Galileo 24 червня 2009 3.5 проєкти Galileo [Архівовано 14 квітня 2010 у Wayback Machine.]
Helios 23 червня 2010 3.6 проєкти Helios [Архівовано 28 вересня 2011 у Wayback Machine.]
Juno 27 червня 2012 4.2 проєкти Juno [Архівовано 6 грудня 2016 у Wayback Machine.]
Kepler 26 червня 2013 4.3 проєкти Kepler [Архівовано 14 червня 2016 у Wayback Machine.]
Luna 25 червня 2014 4.4 проєкти Luna [Архівовано 29 липня 2016 у Wayback Machine.]
Mars 24 червня 2015 4.5 проєкти Mars [Архівовано 7 квітня 2014 у Wayback Machine.]
Neon 22 червня 2016 4.6 проєкти Neon [Архівовано 23 серпня 2016 у Wayback Machine.]
  • Архів новин
  • Архів версій [Архівовано 8 грудня 2007 у Wayback Machine.]

Популярність

Опитування BZ Research — Java use and awareness study[4]
IDE 2002 2003 2004 2005 2006
Eclipse 35% 56% 65% 70%


Опитування QA Systems, 2003 рік [5]
IDE частка
Eclipse 45%

Виноски

  1. https://wiki.eclipse.org/FAQ_Where_did_Eclipse_come_from%3F
  2. GitHub - JuliaComputing/JuliaDT: Julia Development Toolkit for Eclipse. github.com. 10 жовтня 2018. Процитовано 28 грудня 2018 — через GitHub.
  3. Where did Eclipse come from?. Eclipse Wiki. Архів оригіналу за 25 червня 2013. Процитовано 16 березня 2008.
  4. BZ Research — Java use and awareness study 2002-2005 — Які IDE використовує ваша компанія, чи компанія, яку ви консультуєте?. Архів оригіналу за 3 жовтня 2013. Процитовано 7 грудня 2007.
  5. Опитування QA Systems, 2003 рік. Архів оригіналу за 24 січня 2008. Процитовано 7 грудня 2007.

Посилання

  • Офіційний сайт проєкту Eclipse [Архівовано 1 серпня 2008 у Wayback Machine.] — Є списки поштових розсилок, групи новин, модулі й багато іншого
  • Eclipse API [Архівовано 10 травня 2008 у Wayback Machine.]
  • Документація Eclipse — Документація для Eclipse SDK (1.0 to 3.1.0)
  • Модулі Eclipse [Архівовано 4 червня 2019 у Wayback Machine.] — Один з найпопулярніших каталогів модулів для Eclipse
  • EclipseWiki [Архівовано 7 квітня 2022 у Wayback Machine.]

Література

Видано близько 50 книг про Eclipse [5], в тому числі 12 книг серії The Eclipse Series [Архівовано 6 березня 2016 у Wayback Machine.] від Addison-Wesley.

Дивись також

  • п
  • о
  • р
Загальне
Історія
ОС на базі ВПЗ
BSD · Apple Darwin · FreeDOS · FreeBSD · OpenBSD · FreeNAS · GNU · Haiku · Hurd · Inferno · Linux · Mach · MINIX · OpenSolaris · Plan 9 · ReactOS
Розробка ВПЗ[en]
Eclipse · FreeBASIC · Free Pascal · GCC · Java · libJIT[ru] · LLVM · Lua · Open64 · Perl · PHP · Python · ROSE[en] · Ruby · Tcl
Менеджери
вікон XWS
Blackbox Compiz EDE Enlightenment Fluxbox GNOME JWM IceWM KDE Openbox ROX[en] Window Maker[en] Xfce
Організації
Фонд вільного ПЗ (FSF) (європейський[en] індійський[en] латиноамериканський[en]) • Apache Software Foundation · Blender Foundation[en] · Eclipse Foundation · freedesktop.org · GNOME Foundation · Проєкт GNU · Google Code · Linux Foundation · Mozilla Foundation · Open Source Initiative · SourceForge · The Document Foundation · Xiph.Org · XMPP Standards Foundation[en] · X.Org Foundation
Ліцензії
Проблеми
Двійковий блоб · Технічні засоби захисту авторських прав · Вільні та відкриті графічні драйвери[en] · Ліцензійна проліферація · Iceweasel · Безпека відкритого ПЗ[en] · Власницьке програмне забезпечення · Конфлікт SCO—Linux · Програмні патенти · Тивоїзація · Trusted Computing · Апаратне обмеження[es] · Вірусна ліцензія
Інше
Визначення вільного ПЗ · Визначення Open Source · Альтернативні назви[en] · Рух · Вільне та відкрите ПЗ Microsoft Open Specification Promise[en] · Порівняння відкритих та закритих кодів[en] · Revolution OS · Собор і базар
  • п
  • о
  • р
Універсальні
Anjuta IntelliJ IDEA Visual Studio NetBeans Eclipse • KDevelop Xcode Geany MonoDevelop Aptana • Open Watcom • Komodo Kylix
C/C++
Borland C++ • C++ Builder Code::Blocks • CodeLite Dev-C++ wxDev-C++ Pelles C • Oracle Solaris Studio Qt Creator Ultimate++ • Microsoft QuickC
BASIC
Gambas PowerBASIC • Turbo Basic • Visual Basic QBasic • QuickBASIC PureBasic
Java
MyEclipse • Oracle WebLogic Workshop • IBM WebSphere Studio • BlueJ • DrJava • Greenfoot • JCreator • JDeveloper JBuilder • JGRASP
Pascal
Delphi Lazarus MSE • PascalABC.NET MIDletPascal • PocketStudio • Morfik • Turbo Pascal QuickPascal • Visible Pascal
PHP
Aptana Studio with PHP plugin • Delphi for PHP (RadPHP) Eclipse PDT • Zend Studio NuSphere PhpED • PHP Expert Editor • phpStorm Adobe Dreamweaver
Python
Eric • PyCharm PyDev • PyScripter Wing IDE
ActionScript
Adobe Flash Adobe Flash Builder • FlashDevelop • CodeDrive • IntelliJ IDEA Eclipse FDT • Realaxy ActionScript Editor
Інші
  • п
  • о
  • р
Стільничні середовища,
віконні менеджери тощо
KDEGNOMEXfceLXDEXPdeJDSCDEX11MetacityEnlightenmentSawfishXMonadOpenboxAfterStepAwesomeFVWMFluxboxBlackbox • Window Maker
Прикладні програми,
пакети, утиліти тощо
OpenOfficeLibreOfficeKOfficeCalligra SuiteGnome Office • Siag Office • AbiwordGnuCashKMyMoneyInkscapeSodipodiGnumericPlannerEmacsVimKateTellicoGIMP • Kivio • GwenView • KView • Evince • Cedega • WineAmarokMPlayerXP • Listen • LinDVD • KinoTotemKaffeineRhythmboxK3b • KPDF • Scribus • Dolphin • KonquerorKrusader • Nautilus • Thunar • Epiphany • Galeon • OperaFirefox • Arora • IceCatThunderbirdEvolutionKMailSkypeKopeteEkigaAkregatorKGetArkJabberMPlayerXineAlacarteStarDictDigiKamKexiRKWardOkularBeagleYaSTKdepim • Kdetoys • Konsole • KCHMViewer
Розробка ПЗ
Eclipse • NetBeansKDevelop • QTDesigner • Code::Blocks • MonoDevelopCylixLazarus
Технології та бібліотеки
OpenGLCairoPlasma • Akonadi • Decibel • Flake • Kross • Oxygen • Phonon • Quasar • Solid • Sonnet[en] • Soprano[pl] • Strigi • ThreadWeaver • JavaMono
  • п
  • о
  • р
Розробка ПЗ
Інструменти для
програмування
Офіційні
Інші
Інтегроване середовище
розробки (ІСР)
Мови, бази даних
Віртуальна реальність (ВР)
Події, спільноти
  • Google I/O
  • Developer Challenge
  • Developer Lab
  • Android Open Source Project (AOSP)
Версії Android
Лінійки Android
Пристрої
Pixel
Nexus
Play edition
Внутрішні
процеси
  • Процес увімкнення
  • Режим recovery
    • TWRP
    • ClockworkMod
  • Fastboot
API
Користувацькі
інтерфейси
Списки
Див. також