MortenM
31/08/2011 - 14:46

Lørdag 27. august var det igjen tid for årets høydepunkt i sykkelsesongen (...

EclipseCon 2010

Jeg hadde gleden av å være til stede på EclipseCon i Santa Clara, California uken før påske. Vi var tre stykker fra SIMA-prosjektet (Eclipse plugin-basert prosjekt) på Marintek som tok reisen. Formålet med å dra på konferansen var å få oversikt over utviklingen av Eclipse-plattformen og hvilke implikasjoner det vil kunne ha på SIMA-prosjektet. Eclipse står foran et veiskille i disse tider. Neste hovedversjon av Eclipse - e4 - bryter med den eksisterende plattformen på mange områder. For at eksisterende prosjekter skal kunne gå over til e4 er det laget et kompatibilitetslag som skal ivareta disse. Vi hadde et helt klart inntrykk av at dette langt fra er ferdig nok til å kunne bli stabilt til sommerens lansering. Jeg vil derfor anbefale å vente med å gå over til e4 til tidligst sommeren 2011.

Hva er det så som skiller e4 fra den eksisterende Eclipse-plattformen (3.x)?
I e4 er det spesielt to faktorer som har betydning for prosjektet og som generelt skapte mest diskusjoner på konferansen: Den utstrakte bruken av Xtext for å lage nye domenespesifikke språk (DSL) og dependency injection i Java.

Om Xtext fra wiki.eclipse.org: «Xtext is a framework/tool for development of external textual DSLs. Just describe your very own DSL using Xtext's simple EBNF grammar language and the generator will create a parser, an AST-meta model (implemented in EMF) as well as a full-featured Eclipse Text Editor from that.» Dette er absolutt noe SIMA-prosjektet ser for seg kan være meget nyttig for eksempel for å slippe å editere XML direkte, men i stedet lage et enkelt domenespesifikt språk vha Xtext. Alle som har jobbet med XML vet at det hverken er spesielt enkelt å lese eller forstå slik kode.

Dependency injection i Java er innført for å avhjelpe «coupled dependency». Hentet fra wikipedia: «In object-oriented programming, the dependency inversion principle refers to a specific form of decoupling where conventional dependency relationships established from high-level, policy-setting modules to low-level, dependency modules are inverted (e.g. reversed) for the purpose of rendering high-level modules independent of the low-level module implementation details.». Det er gode intensjoner med å innføre dette i Eclipse, men slik mange ser det innfører dette potensielt store problemer med å kunne bruke java-verktøy som refaktorering for eksempel, siden Eclipse i stor grad benytter seg av tekstlige referanser (les denne linken for mer detaljer om dette: http://blog.rcp-company.com/2010/02/dependency-injection-in-e4-just-why-do.html). Dessuten, jo mer dekoplet koden er jo vanskeligere blir det å debugge den. Nå er det jo slik at man ofte er skeptisk til patterns og teknologier man ikke kjenner, men jeg tror det er sunt med en god dose skepsis før man introduserer dependency injection i Eclipse-prosjekter.

Itema as, Granåsveien 3 - N -7048 Trondheim - Telefon: +47 73 89 43 70 - email: firmapost@itema.no

""