IDE für den LHC

Eclipse beim CERN

Donat Csikos

Donat Csikos arbeitet seit zwei Jahren als Java-Entwickler am Europäischen Kernforschungszentrum CERN. In seinen Projekten ist Eclipse-Plug-in-Entwicklung sein täglich Brot. Zurzeit erstellt er eine spezielle Eclipse-Distribution, die bei der Entwicklung von Software für den LHC-Teilchenbeschleuniger zum Einsatz kommt. Seine Arbeit wird er Ende Oktober auf der EclipseCon Europe 2013 präsentieren. Wir haben ihm vorab einige Fragen zum Einsatz von Eclipse beim CERN gestellt. Und dabei unter anderem gelernt, dass beim CERN zehnmal so viele Ingenieure wie Physiker arbeiten…

JAXenter: Donat, dein Proposal für die EclipseCon Europe wurde gerade angenommen. Glückwunsch!

Donat Csikos: Danke!

JAXenter: Du möchtest in deinem Talk zeigen, wie Eclipse in den letzten zehn Jahren beim CERN zum Einsatz gekommen ist. Was sind deine Aufgaben dort?

Csikos: Ich arbeite seit zwei Jahren in der Accelerator-Controls-Gruppe in einem kleinen DevOps-Team. Wir programmieren Entwicklungswerkzeuge für die Ingenieure, Physiker und Techniker, die die Software für den Beschleuniger-Komplex schreiben, auch für den Large Hadron Collider (LHC). Dazu gehört, Support-Anwendungen zu schreiben, Build-Werkzeuge zu warten usw.

Ich selbst mache hauptsächlich Java-Entwicklung. Dazu verwende ich Eclipse-Technologien, z. B. EMF und Acceleo. Ich habe auch einige Plug-ins geschrieben, mit denen sich Eclipse nahtlos in unsere Buildwerkzeuge integrieren lässt. Auch sonst bin ich für Plug-in-Entwicklung und Tool-Unterstützung zuständig. Ich sorge für konsistente Eclipse-Packages, die CERN-spezifischen Konfigurationen und Plug-ins, die teilweise in-house entwickelt werden und die Entwickler out of the Box verwenden können.

JAXenter: Warst du schon immer Eclipse-Enthusiast oder erst, seit du beim CERN angefangen hast?

Csikos: 2005, als ich anfing zu studieren, habe ich Eclipse zum ersten Mal gesehen. In einer Vorlesung wurde gezeigt, wie man es für C++-Entwicklung verwenden kann. Ich fand es merkwürdig, dass sich Software, die für Java bestimmt war, auch mit einer anderen Sprache verwenden lässt – obwohl damals das übliche Tooling kleine Mängel hatte und das Potential von Eclipse offensichtlich war.

Im Laufe der Jahre bin ich auf Java-Entwicklung umgestiegen und habe mich in die IDE und die verwandten Technologien eingearbeitet: RCP [Rich Client Platform], EMF [Eclipse Modeling Framework], Velocity, um nur einige zu nennen. Da es mir Spaß machte, habe ich alle Kurse belegt, die der Betreuer meiner Master-Arbeit dazu angeboten hat. Eclipse war und ist eine besondere Stärke seines Instituts. Dort sind sogar einige Top-Level-Eclipse-Projekte beheimatet. Das bekannteste ist wohl EMF-IncQuery, eine sehr nette Query-Engine für EMF-Modelle, einer der Grundsteine meiner Master-Arbeit.

Als das CERN mir eine Stelle mit Eclipse anbot, dachte ich mir: ein Job an einem Arbeitsplatz, von dem ich immer geträumt habe, wo ich die Arbeit mache, die mir Spaß macht – es könnte nicht besser kommen.

JAXenter: Warum entschieden sich CERN-Ingenieure vor einigen Jahren, Eclipse zu verwenden?

Csikos: Zuerst muss ich eines klarstellen: CERN ist ein riesiges Institut mit Tausenden von Mitarbeitern. Weil es so groß ist, ist es in kleinere Institute aufgeteilt, die unabhängig voneinander ihre Arbeit erledigen. Was die Softwareentwicklung betrifft, trifft jedes Institut seine eigenen Vereinbarungen. Ich kann nur für uns sprechen. Aber ich bin fast sicher, dass das Folgende auch auf andere Institute zutrifft.

Viele der Software-Entwickler beim CERN kommen von Universitäten, Forschungseinrichtungen, Forschungs- und Entwicklungsfirmen usw. In diesem weitgehend akademischen Umfeld ist Eclipse sehr bekannt, dank seiner Offenheit und seiner Community. Die Entscheidung [für Eclipse] war also naheliegend: Man wollte die Leute das verwenden lassen, was sie schon kennen. Warum sollte man ihnen auch ein anderes Tool aufzwingen und Wochen oder Monate damit verbringen, sie einzuarbeiten?

JAXenter: Und warum ist Eclipse nach wie vor die erste Wahl?

Csikos: Der Knackpunkt ist die Integration. In den Control-Systemen gibt es eine riesige Anzahl an Software-Komponenten, die in C++ und Java geschrieben sind. Alle State-of-the-Art-Technologien sind in Eclipse integrierbar. Solange wir Eclipse verwenden, brauchen wir nur ein einziges Tool, um alle Aufgaben in der Softwareentwicklung zu erledigen. Wir müssen uns also nicht um eine Handvoll Anwendungen kümmern, um in verschiedenen Umgebungen das gleiche zu machen.

JAXenter: Welche Eclipse-Technologien sind beim CERN die gängigsten?

Csikos: Am Beams Department verwenden wir Eclipse mehr als IDE und weniger als Plattform. Unsere Anwendungen werden mit Java- und C++-Core-Technologien und Frameworks wie Spring entwickelt. Wir entwickeln hauptsächlich Qualitätssoftware für die Steuerungssysteme des Beschleunigers.

Das heißt aber keineswegs, dass wir dort keine Eclipse-Technologien benutzen. Einige Anwendungen verwenden SWT für den UI-Layer, in anderen kommt EMF zum Einsatz. Außerdem werden gerade Eclipse-basierte Werkzeuge zur Codegenerierung in Betracht gezogen.

JAXenter: Welche?

Csikos: Wir erwägen, Jet und Acceleo-Templates für unser Code-Generierungs-Framework FESA zu verwenden. Mit diesem mächtigen Framework werden Low-Level-Devices in die Accelerator-Steuerungssysteme integriert. Im Grunde generieren wir C++- und Java-Code, um die Integration zu vereinfachen.

JAXenter: Welche speziellen Plug-ins verwendest du?

Csikos: Es gehört zu meinem Job, eine saubere, konsistent konfigurierte Entwicklungsumgebung bereitzustellen, die für andere Entwickler leicht zu handhaben ist. Dazu gehört natürlich auch Plug-in-Entwicklung. Beispielsweise haben wir ein kleines Plug-in, das eine „Shell“ mit vorkonfigurierten Pfad-Variablen für Linux und Windows öffnet. Ein weiteres Beispiel ist das Tooling für unser internes Build-System, das momentan auf Ant basiert, aber in Kürze auf Gradle umgestellt wird. Das größte Plug-in, das ich jemals entwickelt habe, war ein Dependency-Analyzer-Plug-in. Dieses Tool hat eine Serverseite, die die Abhängigkeiten von allen 1000 JAR-Dateien entdeckt, die sich unserem Binary-Repository befinden. Die Client-Seite ist Eclipse selbst. Dort kann der Entwickler zum Beispiel eine Methode in seinem Code auswählen und schauen, welche anderen Entwickler diese Methode in den JAR-Dateien nutzen. Mithilfe dieses Tools können Entwickler problemlos Abhängigkeiten zwischen den Komponenten aufspüren und entscheiden, ob eine bestimmte Code-Veränderung, z. B. eine Änderung der Methodensignatur, den Code anderer Entwickler beeinträchtigt.

JAXenter: Bei Tausenden von Physikern, Ingenieuren und Technikern, darunter viele Diplomanden, Doktoranden etc. muss es doch eine hohe Fluktuation beim CERN geben. Wie leicht oder schwer ist es für jemanden, der nie Eclipse verwendet hat, in die Entwicklungsplattform, die ihr entwickelt habt, einzusteigen?

Csikos: Bevor ich die Frage beantworte, muss ich ein häufiges Missverständnis über das CERN ausräumen. Viele denken, die meisten Angestellten dort wären Physiker. Aber das Gegenteil ist der Fall: Der Anteil an Ingenieuren, die beim CERN angestellt sind, ist zehnmal so hoch wie der von Forschern aus der Fachrichtung Physik! Klar, man bekommt viele Physiker zu Gesicht, wenn man hier ist, aber die meisten nutzen die Forschungseinrichtungen wie z. B. den LHC experimentell, ohne für das CERN zu arbeiten. Sie kommen aus anderen Instituten.

Man arbeitet sich schnell in unsere Technologien ein, weil Eclipse ja ziemlich intuitiv und gut dokumentiert ist. Und die meisten Leute, die herkommen, haben schon etwas Erfahrung, man muss also nicht viel erklären. Dank der vorkonfigurierten Eclipse-Pakete müssen neue Nutzer keinen fehleranfälligen Einrichtungsprozess auf sich nehmen, um das Build-System, das Quellcode-Repository usw. zu konfigurieren. Sie können sich gleich auf die Entwicklung konzentrieren.

JAXenter: Stell dir vor, jemand von einer anderen Organisation, vielleicht einer, die nicht so groß ist wie das CERN, würde dich fragen, ob du Eclipse verwenden würdest. Was würdest du ihm oder ihr raten?

Csikos: Eclipse ist ein glänzendes Beispiel einer Open-Source-IDE. Es ist eine großartige Plattform mit vielen Plug-ins. Alle reifen Technologien der Java-Welt werden mit einem Eclipse-Plug-in ausgeliefert. Wenn ein Unternehmen also eine erweiterbare, individuell anpassbare, de facto integrierte Umgebung möchte, ist Eclipse die erste Wahl.


Donat Csikos hat seinen M. Sc. an der Technischen und Wirtschaftswissenschaftlichen Universität Budapest absolviert und arbeitet seit zwei Jahren als Java-Entwickler bei CERN im Bereich Accelerator Controls. Er kümmert sich um mehrere praktische und wissenschaftliche Projekte, für die er viele Eclipse-Plug-ins entwickelt. Zurzeit ist er dafür zuständig, eine maßgeschneiderte Eclipse-Distribution an alle Entwickler von Software für den LHC-Teilchenbeschleuniger auszuliefern und zu unterstützen.

Lesetipp: Das neue Eclipse Magazin ist ab morgen, 27. September, am Kiosk erhältlich. Titelthema  dieser Ausgabe ist die Browser-IDE Orion. Weitere Inhalte finden Sie auf der Magazinseite.

 

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.