Eclipse

Eclipse kode irekiko software plataforma bat da, batez ere garapen-ingurune integratu (IDE) gisa erabiltzen dena. Hasiera batean IBM enpresa multinazionalak garatu zuen bere VisualAge  tresna-familiaren ordezko gisa, baina gaur egun Eclipse Fundazioa irabazi-asmorik gabeko erakunde independenteak garatzen eta kudeatzen du. Fundazio horrek komunitate ireki bat sustatzen du, eta hainbat produktu, zerbitzu eta gaitasun osagarri biltzen ditu.

Eclipsek workspace bat eta plugin sistema hedakor bat dauzka, erabiltzaileek ingurunea moldatzeko aukera emanez. Hasiera batean Java aplikazioak garatzeko sortu zen, eta horretarako Java Development Toolkit (JDT) eta Eclipse Compiler for Java (ECJ) erabiltzen dira. Bi tresna horiek Eclipserekin sortuak izan dira, eta Eclipseren parte izateaz gain, plataforma bera garatzeko ere erabiltzen dira.

Pluginen bidez, hainbat programazio-lengoaiarekin lan egin daiteke: C, C++, Python, PHP, Ruby, Rust, Scala, JavaScript edo R, besteak beste. Gainera, garapen espezializaturako paketeak eskaintzen dira, hala nola Eclipse JDT (Java eta Scala-rako), Eclipse CDT (C/C++-rako) eta Eclipse PDT (PHP-rako). LaTeX dokumentuak edo Mathematica-rentzako paketeak garatzeko ere erabili daiteke.

2000ko hamarkadan, Eclipse Java IDE erabilienetakoa izan zen, nahiz eta IntelliJ IDEA-k 2016an gainditu zuen arte.

Software hau doakoa eta kode irekikoa da, Eclipse Public License lizentziapean argitaratua, baina ez da bateragarria GNU General Public License-rekin .

 Historia 

Eclipse Kanadako IBMren proiektu gisa hasi zen. OTIk (Object Technology International) garatu zuen, VisualAge ordezkatzeko asmoz. 2001eko azaroan, partzuergo bat sortu zen, kode irekiko garapenerako. 2003an Eclipse Fundazioa sortu zen, IBM atzean utzita.

Bertsioen laburpena:
 Bertsioa Kaleratze data Plataforma bertsioa Proiektuak Eclipse 1.0 2001eko azaroaren 29 1.0 Eclipse 2.0 2002ko irailaren 18 2.0 Eclipse 2.1 2003ko apirilaren 15 21 2.1 Eclipse 3.0 2004ko ekainaren 21 3.0 Eclipse 3.1 2005eko ekainaren 28 3.1 Callisto 2006ko ekainaren 30 3.2 Callisto projects Europa 2007ko ekainaren 29 3.3 Europa projects Ganymede 2008ko ekainaren 25 3.4 Ganymede projects Galileo 2009ko ekainaren 4 3.5 Galileo projects Helios 2010eko ekainaren 23 3.6 Helios projects Indigo 2011ko ekainaren 22 3.7 Indigo projects Juno 2012ko ekainaren 27 4.2 Juno projects Kepler 2013ko ekainaren 26 4.3 Kepler projects Luna 2014ko ekainaren 25 4.4 Luna projects Mars 2015eko ekainaren 24 4.5 Mars projects Neon 2016ko ekainaren 22 4.6 Neon projects Oxygen 2017ko ekainaren 28 4.7 Oxygen projects Photon 2018ko ekainaren 27 4.8 Photon projects 2018-09 2018ko irailaren 19 4.9 2018-09 projects 2018-12 2018ko abenduaren 19 4.10 2018-12 projects 2019-03 2019ko martxoaren 20 4.11 2019-03 projects 2019-06 2019ko ekainaren 19 4.12 2019-06 projects 2019-09 2019ko irailaren 18 4.13 2019-09 projects 2019-12 2019 abenduaren 18 4.14 2019-12 projects 2020-03 2020ko martxoaren 18 4.15 2020-03 projects 2020-06 2020ko ekainaren 17 4.16 2020-06 projects 2020-09 2020ko irailaren 16 4.17 2020-09 projects 2020-12 2020ko abenduaren 16 4.18 2020-12 projects 2021-03 2021eko martxoaren 17 4.19 2021-03 projects 2021-06 2021eko ekainaren 16 4.20 2021-06 projects 2021-09 2021eko irailaren 15 4.21 2021-09 projects 2021-12 2021eko abenduaren 8 4.22 2021-12 projects 2022-03 2022ko martxoaren 16 4.23 2022-03 projects 2022-06 2022ko ekainaren 15 4.24 2022-06 projects 2022-09 2022ko irailaren 14 4.25 2022-09 projects 2022-12 2022ko abenduaren 7 4.26 2022-12 projects 2023-03 2023ko martxoaren 15 4.27 2023-03 projects 2023-06 2023ko ekainaren 14 4.28 2023-06 projects 2023-09 2023ko irailaren 13 4.29 2023-09 projects 2023-12 2023ko abenduaren 6 4.30 2023-12 projects 2024-03 2024ko martxoaren 13 4.31 2024-03 projects 2024-06 2024ko ekainaren 12 4.32 2024-06 projects 2024-09 2024ko irailaren 11 4.33 2024-09 projects 2024-12 2024ko abenduaren 4 4.34 2024-12 projects 2025-03 2025ko martxoaren 12 4.35 2025-03 projects 2025-06 2025ko ekainaren 11 4.36 2025-06 projects 2025-09 2025ko irailaren 10 4.37 2025-09 projects 2025-12 2025ko abenduaren 10 4.38 2025-12 projects 2026-03 2026ko martxoaren 11 4.39 2026-03 projects

 Arkitektura 

Eclipseren oinarria Bezero Aberastuaren Plataforma da (ingelesez, Rich Client Platform edo RCP). Plataforma honek aplikazio aberastuak garatzeko beharrezkoak diren osagai nagusiak eskaintzen ditu, Eclipseren kasuan:

 Plataforma nagusia: Eclipse abiarazteko eta pluginen exekuzioa gauzatzeko.
 OSGi: Software-moduluak paketatzeko plataforma estandar bat, Eclipsek Equinox inplementazioaren bidez erabiltzen duena.
 Standard Widget Toolkit (SWT): Java-rako widget multzo bat.
 JFace: Erabiltzaile interfazea sinplifikatzeko geruza, testu-editoreak, fitxategi-kudeaketa eta abar eskaintzen dituena.
 Eclipse Workbench: Itxura, editoreak, perspektibak eta asistentziak (wizards).

Eclipsek bere widget grafikoak Standard Widget Toolkit bidez inplementatzen ditu. Horretan desberdintzen da Java aplikazio gehienetatik, hauek normalean Abstract Window Toolkit (AWT), Swing edo JavaFX erabiltzen baitituzte. Eclipseko erabiltzaile interfazeak, ordea, SWT geruza bat erabiltzen du, JFace, aplikazio grafikoen garapena errazteko.


Eclipseren garapen-ingurune integratua (IDE) plugin-arkitekturan dago oinarrituta: funtzionalitate guztiak pluginen bidez eskaintzen dira, exekuzio-sistemaren gainean. Oinarrizko nukleo txiki bat izan ezik, Eclipseko osagai guztiak pluginak dira; horren ondorioz, modu berean integratzen dira eta funtzionalitate guztiak maila berekoak dira. 

Plugin-sistemari esker, Eclipse hainbat programazio-lengoaiarekin heda daiteke, hala nola C, C++, Python edo JavaScript. Halaber, LaTeX bezalako testu-prozesaketarako lengoaiekin lan egiteko aukera ematen du, baita sareko aplikazioekin (telnet) edo datu-baseak kudeatzeko sistemekin ere. Arkitektura horrek edozein luzapen mota garatzea ahalbidetzen du, adibidez konfigurazio-kudeaketarako tresnak. Eclipse SDKk Java eta CVS-rako euskarria eskaintzen du, eta beste bertsio-kontrol sistema batzuk hirugarrenen pluginen bidez erabil daitezke.


Eclipsek aplikazio bezeroak garatzeko framework aberastuak erabiltzen ditu, aplikazio grafikoak, software-ereduen definizioa eta manipulazioa, edota web-aplikazioak sortzeko. Horren adibide da GEF (Graphic Editing Framework) plugina, editore bisualak garatzeko erabilia, testu-prozesadore wysiwyg motako testu-prozesadoreak, UML diagra-editoreak eta erabiltzaile interfaze grafikoak (GUI), besteak beste. GEF bidez sortutako editoreak Eclipse barruan integratzen dira, eta haren interfaze pertsonalizagarria eta beste plugin batzuekin bateragarritasuna aprobetxatzen dute.

Eclipse SDKk barne hartzen ditu Java garapenerako tresnak (JDT), Java konpiladore inkremental integratu batekin eta iturburu-kodearen eredu oso batekin. Horrek refactorizazio teknika aurreratuak eta kodearen analisia egitea ahalbidetzen du. IDEak workspace edo lan-eremu bat erabiltzen du, kasu honetan fitxategi-sistema lau baten gaineko metadatu multzo bat; horri esker, kanpotik egindako fitxategi-aldaketak onartzen dira, dagokion baliabidea freskatu ondoren.

Eclipse, halaber, Wayland-en exekutatzeko egokitu zen 2014ko Google Summer of Code (GSoC) proiektuan. 

 Datuak 
Jarraian ematen diren zifrak Eclipse 3.2.1 bertsioari dagozkio, eta SLOCCount tresnaren bidez lortutako datuetan oinarritzen dira.

SLOCCount-ek iturburu-kodeko lerro kopurua (source lines of code, SLOC) aztertzen du, eta datu horiek baliatuta garapen-esfortzua estimatzeko eredu estandar batzuk aplika daitezke. Kasu honetan, COCOMO eredua erabili da, zehazki honako formula sinplifikatua:

 2,4 × (KSLOC1,05)

non KSLOC milaka kode-lerro adierazten dituen. Eredu horren arabera, Eclipse 3.2.1 bezalako software-proiektu bat garatzeko 604 pertsona-urte inguruko esfortzua beharko litzateke.

Garapen-kostuen estimazioa egiteko Estatu Batuetako programatzaileen batez besteko soldata erabili da, urteko $56.286. Kopuru hori 2,40 faktorearekin biderkatu da, soldatez bestelako gastuak kontuan hartzeko (azpiegitura, argindarra, komunikazioak, administrazioa eta abar).

 Eclipse 3.2.1en egoera kuantitatiboa 

+ Eclipse 3.2.1en egoera Adierazlea Balioa Iturburu-kodeko lerro kopurua  2.063.083 Garapenean estimatutako esfortzua (pertsona-urte / pertsona-hilabete)  604,33 / 7.251,93 Estimatutako denbora (urte-hilabete)  6,11 / 73,27 Garatzaile kopuruaren estimazioa (Aldi berean)  98,98 Kostuaren estimazioa  $81.636.459

Datu horiek orientagarriak dira, eta ez dute zertan islatzen benetako garapen-prozesuaren antolaketa zehatza; hala ere, Eclipse bezalako eskala handiko software-proiektu baten dimentsioa agerian uzten dute.

 Erabilitako programazio-lengoaiak 

Beste datu esanguratsu bat Eclipseren garapenean erabilitako programazio-lengoaien aniztasuna da. SLOCCount-en arabera, Java da gehien erabilitako lengoaia, baina beste batzuk ere ageri dira, bereziki plataformaren osagai baxuagoetan.

+ Eclipse 3.2.1en erabilitako programazio-lengoaiak Lengoaia Lerro kopurua % Java    1.911.693  %92,66 ANSI C    133.263   %6,46 C++        10.082   %0,49 JSP         3.613   %0,18 sh          2.066  %0,10 Perl        1.468  %0,07 PHP           896  %0,04 sed             2  %0,00

 Eclipse ekosistema 

Eclipse ez da soilik garapen-ingurune integratu (IDE) bat, Eclipse Fundazioak koordinatutako software-proiektu ugariren multzo zabala baizik. Multzo horri Eclipse ekosistema deritzo, eta software librean oinarritutako tresnak, plataformak eta frameworkak biltzen ditu, batez ere softwarearen diseinuari, garapenari, probari eta mantentzeari lotutakoak.

Ekosistemaren ezaugarri nagusia arkitektura modularra da: Eclipsek plugin edo hedapenetan oinarritutako eredua erabiltzen du, OSGi estandarra jarraituz. Horri esker, Eclipse ingurunea behar espezifikoetara egokitu daiteke, lengoaia, plataforma edo erabilera-esparru desberdinetarako.

 Proiektu-mailak eta antolaketa 
Eclipse ekosistema hainbat mailatan antolatzen da, garapenaren eskalagarritasuna eta komunitateen autonomia errazteko helburuarekin. Antolaketa horren oinarria proiektu hierarkikoen sistema da, non maila bakoitzak erantzukizun eta irismen desberdinak dituen.

Eclipse ekosistema hainbat mailatan antolatzen da. Maila gorenean top-level project edo goi-mailako proiektuak daude; horietako bakoitzak azpi-proiektu ugari har ditzake bere baitan. Antolaketa horrek garapenaren eskalagarritasuna eta komunitateen autonomia errazten ditu.

 Goi-mailako proiektuak (Top-level projects) 

Eclipse ekosistema egituratzeko, Eclipse Fundazioak goi-mailako proiektuak (top-level projects) definitzen ditu. Proiektu horiek arlo funtzional edo teknologikoen arabera antolatzen dira, eta bakoitzak azpi-proiektu ugari har ditzake bere baitan. 2011 inguruan, Eclipse ekosistema hamaika goi-mailako proiektutan egituratzen zen, nahiz eta antolaketa hori denboran zehar egokitzen joan den.

Eclipse ekosistemako goi-mailako proiektuak eta haien azpi-proiektu nagusiak (2011 inguruko antolaketa).

Garai hartan, honako hauek ziren goi-mailako proiektu nagusietako batzuk:

 Eclipse Project: Proiektu sortzailea, Eclipse Platform eta JDT barne hartzen ditu.
 Business Intelligence and Reporting Tools (BIRT): Txostenak eta adimen analitikorako tresnak.
 Data Tools Platform (DTP): Datu-base erlazionalen bistaratze eta kudeaketarako tresnak.
 Eclipse Modeling Project: Softwarearen modelizaziorako frameworkak (UML, EMF).
 Tools Project: Programazio-lengoaietarako garapen-tresnak.
 Eclipse Web Tools Platform (WTP): Web-teknologietarako garapena.
 Mylyn: Zereginen eta lanaren testuinguruaren kudeaketa, 2006an gehitua.

 Eclipse Platform 

Eclipse Platform da ekosistemaren nukleoa. Java lengoaian idatzita dago nagusiki, eta SWT eta JFace liburutegi grafikoetan oinarritzen da. Plataforma honek oinarrizko azpiegitura eskaintzen du pluginak exekutatzeko eta elkarreragiteko.

Eclipse Platform honako osagai nagusiek osatzen dute:

 Platform Runtime: Pluginen kudeaketa eta exekuzioa.
 SWT: Interfaze grafikoaren oinarrizko liburutegia.
 JFace: SWTren gaineko maila altuagoko API grafikoa.
 Workbench: Erabiltzaile-interfazearen antolaketa (ikuspegiak, editoreak, perspektibak).

Osagai horiek IDE baten barruan erabil daitezke, baina baita aplikazio autonomoak sortzeko ere.

 Eclipse RCP (Rich Client Platform) 

Eclipse RCP Eclipse Platform-etik eratorritako framework bat da, bezero aberastuko (rich client) aplikazioak garatzeko. RCPk Eclipseren interfazea eta arkitektura erabiltzen ditu, baina IDE baten funtzionalitate espezifikoak baztertuta (kodearen exekuzioa, esaterako).

Eclipse RCP bidez sortutako aplikazioek:

 Eclipse estiloko interfazea dute (ikuspegiak eta perspektibak).
 Aplikazio autonomoak dira (standalone)
 Soilik JRE bat behar dute exekutatzeko.

 Garapen-tresnak eta lengoaiak 

Eclipse ekosistemak programazio-lengoaia ugari onartzen ditu, gehienetan pluginen bidez. Ohikoenetako batzuk hauek dira:

 Java (JDT bidez).
 C eta C++ (CDT bidez).
 Python (PyDev).
 PHP.
 JavaScript.
 COBOL.
 Ada.
 SQL eta XML.

Gainera, Eclipsek domeinu espezifikoko lengoaiak sortzeko tresnak ere eskaintzen ditu, hala nola Xtext.

 Hedapenak eta Marketplace 

Eclipseren funtzionalitatea hedatzeko, erabiltzaileek plugin katalogo handi bat dute eskuragarri Eclipse Marketplace plataforman. Hedapen horiek erraz instala daitezke IDEtik bertatik, eta lengoaia berriak, frameworkak edo integrazio espezifikoak eskaintzen dituzte.

 Android Development Tools eta ondorengoak 


Historikoki, Android Development Tools (ADT) Eclipserako plugin-multzo bat izan zen, Android aplikazioak garatzeko erabilia. ADTk Android SDKarekin integrazioa eskaintzen zuen, baina geroago Android Studiok ordezkatu zuen, IntelliJ IDEA-n oinarritutako IDE gisa.

Hala ere, Eclipse ekosisteman beste proiektu batzuk sortu dira Androiden inguruan, hala nola Andmore, ADTren komunitateak mantendutako jarraipena.

 Ekosistemaren garrantzia 

Eclipse ekosistema software librearen historian funtsezko erreferentzia bihurtu da. Enpresa handiek, ikerketa-zentroek eta garatzaile independenteek erabiltzen dute, bai tresna gisa, bai oinarri teknologiko gisa. Bere izaera irekiak, modularrak eta komunitatean oinarrituak Eclipse software-garapenaren estandar nagusietako bat bihurtu du.

 Aplikazioen bizi-zikloaren kudeaketa 

Eclipsen, Application lifecycle management (ALM) eta task management egiteko, Mylyn aukerazko osagaia erabil daiteke. Mylyn kode irekiko proiektua da, task-focused interface delakoaren inplementazioa eskaintzen duena, eta tresna desberdinek interfazea txertatzeko API bat ematen duena.

Garatzaileentzat, Mylynek zeregin anitzekin modu eraginkorragoan lan egitea ahalbidetzen du, hala nola akatsekin, arazo-txostenekin edo funtzionalitate berriekin. Zereginak Mylyn barruan integratzen dira, eta horietako bakoitzerako erabiltzailearen jarduera aztertzen du, uneko zereginarekin lotutako informazioa identifikatzeko. Horrela, Eclipseren erabiltzaile-interfazea dagokion informazioan zentratzen da, bilaketa, desplazamendu eta nabigazio beharra murriztuz.

Mylyn hainbat biltegi-sistemarekin integra daiteke, besteak beste Bugzilla, Trac, Redmine, Mantis , JIRA, Unfuddle  eta GitHubekin . Helburua produktibitatea handitzea da, zereginaren testuingurua esplizitu bihurtuz, eta horrela, zeregin anitzeko lana, plangintza, aurreko lanen berrerabilpena eta ezagutzaren partekatzea erraztuz.

Proiektuaren izena mielinatik dator  . Hasieran, proiektuak Mylar izena zuen, baina marka komertzial batekin gatazka sortu zenez, Eclipse Fundazioak Mylyn izenera aldatu zuen .

 Hedapenak 

Eclipsek hedapen edo plugin ugari onartzen ditu, eta horien bidez hainbat teknologia eta programazio-lengoaietarako euskarri ditu eskuragarri. Besteak beste, Python garatzeko PyDev erabil daiteke; Android aplikazioak garatzeko, berriz, lehenago Googlek garatutako ADT erabili zen (2015ean Android Studio hasi zen erabiltzen); JavaFX-rako e(fx)clipse dago; eta baita JavaScript eta jQuery bezalako teknologietarako hedapenak ere, guztiak Eclipse Marketplace bidez eskuragarri.

Java konpiladoreak dakartzan ohartarazpenez gain, kodearen kalitatea eta koherentzia hobetzeko linting tresnak eskaintzen dituzten pluginak ere badaude, hala nola SpotBugs eta SonarLint.

Eraikuntza-tresnetarako euskarria ere badu Eclipsek, besteak beste Ant, Maven, Make eta CMake tresnetarako. Hedapen horiei esker, posible da Eclipseko proiektu-formatu natiboa ordezkatzea zuzenean Mavenen pom.xml fitxategiarekin.

 Banaketa alternatiboak 

Eclipse proiektuaren barruan hainbat banaketa eta tresna espezializatu garatu dira, plataforma oinarri bera erabiliz baina programazio-ingurune edo teknologia jakin batzuetara bideratuta.

 PHP Development Tools 

PHP Development Tools (PDT) proiektuak PHP (PHP Hypertext Preprocessor) garatzeko marko oso bat eskaintzen du Eclipse plataformarako. Proiektuak garapenerako osagai guztiak biltzen ditu, hala nola kode-osaketa automatikoa (code completion), PHP aplikazioen garapena eta plataformaren hedagarritasunerako tresnak. PDTk Eclipseren Web Tools Platform (WTP) eta Dynamic Languages Toolkit (DLTK) proiektuetan oinarritzen da, eta haien azpiegitura aprobetxatzen du .

 Android Development Tools 

Android Development Tools (ADT) Googlek garatutako Eclipserako plugin ofiziala izan zen, Android aplikazioak garatzeko ingurune integratua eskaintzen zuena. 2015ean, Googlek plugin horren garapena bertan behera utzi zuen, eta horren ondoren Eclipse Fundazioak Andmore: Development Tools for Android izeneko ordezko proiektua sortu zuen .

ADTk eta Andmorek Eclipse hedatzen dute Android proiektuak sortzeko, aplikazioen interfazea diseinatzeko, Android Framework APIan oinarritutako osagaiak erabiltzeko, aplikazioak arazteko eta .apk fitxategiak esportatzeko. ADT izan zen Android garapenerako IDE ofiziala 2015era arte, baina ondoren Android Studiok hartu zuen rol hori. 2024tik aurrera, Andmore proiektua ia geldirik dago, 2017az geroztik jarduerarik izan ez duelako .

 Hizkuntzak 
2008ko uztailean, honako lengoaiak zeuden Eclipse 3.2 bertsioarentzat: alemana, arabiera, txekiera, txinera sinplifikatua, txinera tradizionala, koreera, espainiera, frantsesa, hungariera, ingelesa, italiera, japoniera, poloniera, brasildar portugesa y errusiera .

Hizkuntzak gehitzen joan dira Eclipse Babel  paketearen bidez, horien artean euskara, azken eguneraketa 2023ko martxoan izanik. Gaur egun, 46 hizkuntza daude eskuragarri, baita pseudoitzulpen pack bat ere. Hizkuntzen zerrenda honakoa da: albaniera, alemana, arabiera, bulgariera, daniera, errumaniera, errusiera, eslovakiera, esloveniera, espainiera, estoniera, euskara, finlandiera, frantsesa, greziera, hebreera, hindiera, hungariera, indonesiera, ingeles australiarra, ingeles kanadarra, ingeles estatubatuarra, italiera, japoniera, katalana, klingon hizkuntza, koreera, kurduera, lituaniera, malaysiera, mongoliera, nederlandera, norvegiera, pertsiera, poloniera, portuges brasildarra, portuges europarra, serbiera, suediera, thailandiera, turkiera, txekiera, txinera sinplifikatua, txinera tradizionala, ukraniera eta vietnamiera.

 Erreferentziak 

 Kanpo estekak 

  Eclipse.org home

Kategoria:Aplikazio informatikoak
Kategoria:Javarekin programatutako software librea
Kategoria:Java plataforma