Interview mit Victor Rubezhny

„JavaScript-Entwicklung sollte mit Eclipse Mars deutlich angenehmer werden“

Hartmut Schlosser, Marc Teufel

(c) eclipse.org / Eclipse

Victor Rubezhny, Mitglied des JBoss-Tools-Teams, gibt im Interview einen Ausblick auf das Eclipse Mars Release. Im Vordergrund stehen die Arbeiten am JavaScript-Ökosystem für Eclipse, insbesondere das Projekt JavaScript Development Tools (JSDT), dem Victor als Projektleiter vorsteht.

JAXenter: Victor, was kannst du uns über den aktuellen Entwicklungsstand des JSDT-Projekts erzählen?

Victor Rubezhny: Die Leute bei IBM, die das JSDT-Projekt angestoßen und entwickelt haben, haben großartige Arbeit geleistet. Aber die Welt hat sich weitergedreht, während die JSDT-Entwicklung bei der Unterstützung von ECMA3-Skript stehengeblieben ist. Durch die Weiterentwicklung des JavaScript-Standards werden wir in JSDT mit mehr und mehr Inkompatiblilitäten zu modernen JavaScript-Bibliotheken und -Anwendungen konfrontiert. Vorrangiges Ziel ist deshalb, eine Unterstützung für aktuelle JavaScript-Standards bereitzustellen.

Ein anderes Problem geht darauf zurück, dass JSDT ursprünglich auf dem JDT-Projekt basierte und ähnliche Editierannehmlichkeiten bietet. Man kann also nicht einfach nur den Parser austauschen. Alle Editierhilfen wie Validierung, Content Assist, Typenhierarchie, Hyperlinking, Suchen, Outline und so weiter müssen entsprechend angepasst werden. Es gibt hier also jede Menge zu tun.

Für das Eclipse-Mars-Release konzentrieren wir uns auf die Reduzierung des Speicherverbrauchs und eine bessere Performance. Außerdem wollen wir sicherstellen, dass JSDT besser mit neueren JavaScript-Bibliotheken und -Projekten zusammenarbeitet. Im Rahmen der Maintenance-Releases für Mars hoffen wir, einen ersten Support für Technologien wie npm und Bower für das Management von Abhängigkeiten bereitstellen zu können. Über Mars hinaus streben wir danach, dass JSDT den Großteil des Content Assist und der Validierung an externe, JavaScript-basierte Tools wie Orion, Tern etc. delegiert. Dies würde es den JSDT erlauben, mit den neuesten JavaScript-Änderungen Schritt zu halten, ohne sie in Java noch einmal neu implementieren zu müssen.

JAXenter: Wie viele Leute arbeiten derzeit am JavaScript-Ökosystem in Eclipse?

Rubezhny: Nicht viele, wenn man es beispielsweise mit der Plattform-UI-Komponente von Eclipse vergleicht. Aber wir haben zumindest teilweise Unterstützung von den „alten“ Committern und Projekleitern, die indes alle hauptsächlich mit ihren neuen Projekten beschäftigt sind. Es ist Mickaels Arbeiten und den Committern des WTP-Releng-Teams zu verdanken, dass jeder sich mittlerweile leicht am JSDT-Projekt beteiligen kann.

Heute steuert eine Reihe von Beitragenden Fixes und Verbesserungen bei. Mein Dank geht an sie alle. Aber ja, im Hinblick auf die anstehenden Arbeiten sind wir auf der Suche nach weiteren Mitstreitern und hoffentlich auch regulären Committern für das JSDT-Projekt.

JAXenter: JSDT hat viele Mitbewerber im Bereich der JavaScript-Entwicklung, insbesondere in IntelliJ IDEA steht eine reichhaltige JavaScript-Unterstützung bereit. Kann Eclipse JSDT damit Schritt halten

Rubezhny: In der Vergangenheit stand es um die JSDT wirklich schlecht. Das Projekt verfolgte einfach den falschen Ansatz beim Umgang mit JavaScript-Projekten. Sieht man sich IntelliJ, NetBeans oder sogar TextMate an, stellt man fest, dass diese Tools nicht versuchen, das komplette JavaScript eines Projekts zu verstehen. Sie konzentrieren sich auf die eine Datei, an der man gerade arbeitet. In JSDT wird hingegen standardmäßig das komplette Projekt geparst, was zu schlechten Performancewerten führt. Zudem versucht JSDT, JavaScript zu parsen und zu validieren, was oft falsche Fehlermarkierungen nach sich zieht. Der User gewinnt dann das Gefühl, dass JSDT mehr Bürde als Hilfe ist. Und das ist wohl das Schlimmste, was einem Tool passieren kann.

In Mars wollen wir sicherstellen, dass JSDT dem Entwickler nicht in die Quere kommt und sich nicht beschwert, solange dafür kein guter Grund besteht. Und wir wollten nicht standardmäßig alles parsen. Das sollte die Arbeit mit Mars deutlich angenehmer machen. Jenseits von Mars beabsichtigen wir, uns Projekte wie Eclipse Orion und Tern für das Parsen von JavaScript zu Nutze zu machen. Das dürfte die JSDT deutlich schneller, korrekter und mit der Unterstützung neuester JavaScript-Standards auch zeitgemäßer machen.

JAXenter: Wird Mars JSDT bereits ECMAScript 5 unterstützen?

Rubezhny: Mars wird ECMAScript 5 noch nicht vollständig unterstützen. Es wird ihm gegenüber aber toleranter sein als noch in früheren Releases. Durch die Integration von Tern in die JBoss Tools erhält man zumindest ECMAScript 5 Content Assist. Es ist leider nicht mehr viel Zeit, bis Eclipse Mars den Code Freeze erreicht, aber wir tun, was wir können.

JAXenter: Warum ist die Integration von tern.java so ein wichtiger Teil?

Rubezhny: tern.java ist ein großartiges Projekt für diejenigen, die nicht warten wollen, bis JSDT den ECMAScript-5-Standard unterstützt. Außerdem bietet es Content-Assist- und Validierungssupport für viele der populärsten, von JavaScript-Entwicklern häufig genutzten JavaScripts. Die Kombination von JSDT und tern.java liefert das quasi out of the box, was es zu einem großartigen Projekt macht.

JAXenter: Wie sieht es mit Nashorn aus? Kann man JSDT verwenden, um JavaScript-Programme zu schreiben, die auf der neuen Java-8-JavaScript-Engine laufen?

Rubezhny: Im Sinne einer einfachen Quellcodeeditierung lassen sich in JSDT JavaScript-Programme für Nashorn entwickeln. Aber wir haben bislang keine volle Nashorn-Unterstützung. Unter Verwendung der Java-8-JavaScript-Engine kann man also noch keine Programme laufen lassen oder debuggen. Auf der WTP-Dev-Mailing-Liste läuft derzeit eine Diskussion, die sich um das Hinzufügen des Debug-Supports für Nashorn dreht. Ich hoffe, sie führt dazu, dass wir während der Mars-Entwicklung zumindest einen minimalen Support hinbekommen – allerdings nur als experimentelles Feature.

JAXenter: Wie einfach ist es eigentlich, externe Bibliotheken wie Tern, jQuery oder AngularJS in Eclipse JSDT zu integrieren?

Rubezhny: Nicht so leicht, wie es sein sollte. Aber Angelo hat mit Tern für Java einen tollen Job gemacht. Allerdings nutzt er JSDT nur als Gerüst für seine Anwendungen. Er nutzt Tern, das auf einem Node.js-Server läuft, und eine ganze Reihe von so genannten Tern-Modulen, die, nachdem sie einmal in Tern geladen wurden, Content-Assist- und Validierungssupport für jQuery, AngularJS und zahlreiche andere bekannte Skripte bieten. Tatsächlich bedeutet das, dass er JSDTs Parsing und Validierung nicht benötigt – idealerweise sollten sie für tern.java sogar ausgeschaltet werden. Er nutzt nur den JavaScript-Editor und andere Einstellungen von JSDT wie den Quellpfad des Projekts.

Es gibt noch andere Integrationen wie beispielsweise Philippe Marschalls jsdt-jquery-Projekt, das seine eigenen Typen/Objekte für jQuery in das Modell von JSDT einfügt. Sie sind im Gegensatz zu Angelos tern.java-Projekt vollständig in das JSDT-Modell integriert und vom JSDT-Standpunkt aus deshalb höchst interessant.

Es ist eine große Herausforderung, all diese unterschiedlichen Herangehensweisen zu unterstützen. Ideal wäre es sicherlich, wenn wir die verschiedenen Integrationen auch weiterhin möglich machen könnten. Aber wir werden eine gewisse Auswahl treffen müssen, um JSDT einfach und effizient zu halten.

JAXenter: Die meisten Eclipse-User konsultieren ja die „New and Noteworthy“-Seiten, um sich über Neuigkeiten zu informieren. In WTP scheint es so, als wäre es ziemlich schwer herauszufinden, was eigentlich die Neuigkeiten sind, Gleiches gilt für JSDT. Gibt es Pläne, wie man das transparenter machen könnte, um der Community zu zeigen, dass WTP/JSDT noch am Leben ist?

Rubezhny: Ja, für Mars werden wir sicherstellen, dass die „New and Noteworthy“-Seiten für JSDT up to date sein werden. Im Hinblick auf WPT – und Eclipse im Allgemeinen – sind ebenfalls Arbeiten im Gange, um für das Mars-Release eine größere Transparenz zu erreichen. Aber das hängt immer von den Committern der jeweiligen Projekte ab.
Die Hauptquelle für diejenigen, die Probleme bei der Nutzung von JSDT/WPT haben, ist Eclipse Bugzilla. Manchmal ist es nicht einfach, eine Antwort zu finden. Aber Bugzilla ist der direkte Weg, um Fragen zu stellen und Antworten zu erhalten.

Das Interview wurde in englischer Sprache geführt und ins Deutsche übersetzt.
Die Fragen stellten Hartmut Schlosser und Marc Teufel

 

Victor Rubezhny ist Projektleiter der Eclipse JavaScript Development Tools (JSDT) und arbeitet bei Exadel, Moskau an den Red-Hat-Projekten JBoss Tools und JBoss Developer Studio. In dieser Rolle leistet er regelmäßig Beiträge zu JSDT und zur Eclipse Web Tools Platform (WTP). Victor hat langjährige Erfahrung mit der Eclipse IDE als Mitentwickler von Exadel Studio, einer Eclipse-basierten Entwicklungsumgebung, die mittlerweile Teil der quelloffenen JBoss Tools ist.

Verwandte Themen:

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. #java #eclipse #devops #machinelearning #seo. Zum Lächeln bringen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Marc Teufel
Marc Teufel
Marc Teufel arbeitet als Projektleiter und Softwarearchitekt bei der hama GmbH & Co KG und ist dort für die Durchführung von Softwareprojekten im Bereich internationale Logistik zuständig. Er ist Autor zahlreicher Fachartikel im Web-Services- und Eclipse-Umfeld. Er hat drei Bücher zu Web Services veröffentlicht, sein aktuelles Buch „Eclipse 4 – Rich Clients mit dem Eclipse 4.2 SDK“ ist kürzlich bei entwickler.press erschienen.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: