Interview mit Philipp Tarasiewicz

"Mit AngularJS haben Entwickler das Gefühl, weniger falsch machen zu können."
Kommentare

AngularJS ist meist das erste JavaScript-Framework, an das man denkt, wenn man vor der Aufgabe steht, eine moderne Webanwendung zu entwickeln. Und das ist auch kein Wunder, bildet es schließlich mit seiner Architektur genau das ab, was man gemeinhin von einem zukunftsfähigen Framework erwartet – vor allem im Enterprise-Umfeld. Darüber hinaus bietet es einen leichten Einstieg für alle, die aus dem Java-Umfeld kommen. Wir haben uns mit Philipp Tarasiewicz, dem Program Chair der ersten  AngularJS Days 2015 über die Vor- und Nachteile des Frameworks unterhalten.

Ist AngularJS wirklich der Heilsbringer für den Enterprise-JavaScript-Bereich? Wir haben mit Philipp Tarasiewicz genau darüber gesprochen, und erhalten überraschende Einblicke von jemandem, der uns schon seit vielen Jahren erzählt, wie toll Angular doch ist.

AngularJS Days 2015

AngularJS hat einen enormen Aufschwung erlebt. Über 1.600 Anwendungen sollen bereits auf dem Framework basieren. Wo liegen aus deiner Sicht die Gründe für den Erfolg von AngularJS?

Philipp Tarasiewicz: Mit AngularJS wurde im Kontext clientseitiger Web-Apps ein Framework geschaffen, das erstmalig diverse in der Softwaretechnik etablierte Entwurfsmuster nun auch für Single Page Apps verfügbar macht. Dazu zähle ich insbesondere: MVVM, Two-Way Data Binding und Dependency Injection. Aufgrund der Dependency Injection erreichen wir in unseren Anwendungen üblicherweise eine bessere Testbarkeit, weil wir im Testfall eine Abhängigkeit bequem durch eine Mock-Implementierung austauschen können.

Darüber hinaus ist AngularJS sehr „opinionated“. D.h. dass das Framework eine klare Meinung darüber hat, wie gewisse Dinge implementiert werden müssen, und es gibt bestimmte Strukturen vor. Aufgrund dieser Tatsachen ist AngularJS ein Framework, das klassischen Software-Entwicklern endlich einen Zugang zu der „chaotischen“ Welt der Single Page Apps gibt. So wird die moderne Webentwicklung ja unter Entwicklern, die nicht aus der Web-Welt kommen, für gewöhnlich wahrgenommen. Sie haben mit AngularJS also das Gefühl, dass sie weniger falsch machen können, weil das Framework für sie bestimmte Aspekte bereits – scheinbar richtig – entschieden hat. Diese Entwickler müssen also jetzt Webanwendungen entwickeln, weil sich alles in Richtung Web bewegt, und noch viel wichtiger: Sie müssen liefern. Am besten vorgestern. Somit ist klar: Sie nehmen das Framework, das ihnen am vertrautesten erscheint und mit dem sie schnelle befriedigende Ergebnisse erzeugen können.

Was sicherlich nicht vernachlässigt werden darf, ist die Tatsache, dass AngularJS von Google gepusht wird. Marketingtechnisch wie auch durch die kontinuierliche Weiterentwicklung. So ein großer Player gibt einem Unternehmen, das darüber nachdenkt, das Framework einzusetzen, natürlich enorm viel Sicherheit. Auch wenn Google eine teilweise äußerst merkwürdige Roadmap fährt und keinen Enterprise-gerechten Support dafür anbietet.

Ich möchte an dieser Stelle noch einen Gedanken loswerden. AngularJS ist zwar ein ziemlich gehyptes Framework und das sicherlich auch nicht ganz zu unrecht. Jedoch weist das Framework an einigen Stellen im Kern erhebliche Schwächen auf. Gemeinsam mit meinen Firmenkollegen greife ich auf drei Jahre AngularJS-Vollzeit-Consulting zurück und kann über diverse Pain-Points berichten. Wer näher daran interessiert ist, der sollte unsere zukünftige Konferenz-Aktivität verfolgen. Es wird von unserer Seite aus eine ganze Reihe von Vorträgen geben, die den Einsatz von AngularJS auch einmal aus einem kritischen Blickwinkel beleuchten.

Philipp Tarasiewicz

Philipp Tarasiewicz ist im Web groß geworden und arbeitet als Technologieberater, Autor, Speaker und Coach. Er ist Mitgründer und Geschäftsführer der Symetics GmbH, einem Unternehmen, das sich auf den Bereich Enterprise JavaScript, insbesondere AngularJS, spezialisiert hat und Unternehmen bei der Aus- und Fortbildung ihrer Mitarbeiter wie auch beim Ramp-Up neuer Projekte unterstützt. Zusammen mit Robin Böhm hat Philipp das erste deutschsprachige Buch zum Thema AngularJS geschrieben (dpunkt.verlag). Weiterhin betreibt er gemeinsam mit Sascha Brink und Robin Böhm das deutsche Portal zu AngularJS.

Vor Kurzem hat das Angular-Team ja die Pläne für AngularJS 2.0 vorgestellt – und wie es scheint, sind die Arbeiten daran schon in vollem Gange.  Was genau soll denn in der 2.0 anders werden?

Tarasiewicz: AngularJS 2.0 wird von Grund auf ein anderes Framework sein. Das Team hat praktisch auf der grünen Wiese angefangen und kann nun dadurch eine neue Architektur verfolgen, die hoffentlich alle Pain-Points von AngularJS 1.x ausmerzen wird. Controller und AngularJS-Module fallen weg, stattdessen werden dann ES6-Module verwendet. Das Templating funktioniert nun anders. Es wird mehrere Arten von Direktiven geben. Diese werden mithilfe von ES6-Klassen umgesetzt, die dann über Annotationen (durch AtScript verfügbar) ins System eingebunden werden … Ich könnte jetzt noch weiter alle Einzelheiten aufzählen. Das würde jedoch den Rahmen dieses Interviews sprengen. Wer sich detailliert informieren möchte, dem empfehle ich den Blogpost All About Angular 2.0 von Rob Eisenberg oder den Talk „Angular 2.0 Core“ von Igor Minar und Tobias Bosch auf der ng-europe 2014.

Fakt ist: Der Schritt, alles zu verwerfen und noch einmal von vorne anzufangen, zeigt ganz klar, dass AngularJS 1.x erhebliche Schwächen aufweist. Es ist nicht unbedingt schlecht, aber der Hype übersteigt bei weitem die Qualität des Frameworks. Und das sage ich als ein AngularJS-Verfechter, der die vergangenen drei Jahre auf jeder Konferenz erzählt hat, wie toll AngularJS doch ist.

Viele sehen die Entwicklungen in AngularJS 2.0 ja kritisch – „Da entsteht im Prinzip ein ganz neues Framework, das wenig mit AngularJS 1.x zu tun hat“, lautete ein Kommentar auf JAXenter.com. Kannst du die Kritik nachvollziehen? Was ist deine persönliche Meinung zu AngularJS 2.0?

Tarasiewicz: Aus der technischen Perspektive betrachtet ist meine Meinung, dass dieser radikale Schritt in AngularJS 2.0 bitter nötig ist und dem Framework sehr gut tun wird. Wenn alle Pläne so umgesetzt werden und aufgehen, haben wir in ein bis zwei Jahren ein wirklich solides Framework zur Entwicklung von Single Page Apps. Ganz besonders gefällt mir, dass stark auf moderne Webstandards gesetzt wird und es die Verbesserungen einbezieht, die ES6 mitbringt. Alles andere würde das Framework erneut in eine falsche Richtung lenken.

Wenn ich mir diesen Schritt allerdings unter den strategischen Gesichtspunkten eines Unternehmens anschaue, dann ist er höchst bedenklich und ich kann die Kritik vollkommen nachvollziehen. Viele Unternehmen haben in den vergangenen zwei Jahren riesige Projekte mit AngularJS 1.x aufgezogen, Unmengen an eigenen Modulen bzw. Integrationen geschrieben und jetzt kommt die Ankündigung, dass sich alles ändern wird. Rückwärtskompatibilität Fehlanzeige. Das ist fast schon ein Schlag ins Gesicht, der ganz bittere Konsequenzen haben könnte. Ich denke da z.B. an den Fall Python 2 VS. Python 3. Die radikalen Änderungen in Python 3 haben dazu geführt, dass die Python-Community jetzt stark gespalten ist. Ich befürchte, dass so etwas bei AngularJS auch passieren wird. Die Softwareprojekte im Enterprise-Bereich haben oftmals Lebenszyklen von 10 und mehr Jahren. Da kann man die Arbeit von 2 Jahren nicht einfach so über Bord werfen und noch einmal von Vorne beginnen. Das kann durchaus ein Killer sein, weil dir die Konkurrenz dann davon rennt.

Was sicherlich auch klar ist, ist die Tatsache, dass alle Consulting-Firmen, die eine besondere Expertise im Bereich AngularJS besitzen, nun eine nette Chance haben, mit der Pflege und Wartung der AngularJS-1.x-Anwendungen zumindest einige Jahre lang ein gutes Geschäft zu machen.

Ein großer Teil der Aufregung ist, denke ich, aufgrund erster Bemerkungen von Angular-Core-Entwicklern entstanden, es werde kein Migrationspfad von 1.x auf die 2.0-Version geben. Nun hatte Rob Eisenberg, ehemaliges Mitglied des Core-Teams, das in seinem Blog Post immerhin ein wenig relativiert, indem er bemerkte:

There also haven’t been any plans made available regarding a migration story for those who wish to move their Angular 1.x apps over to 2.0 when it becomes available. I think we can and should do work in this area. If that’s important to you as well, please make your voice heard.“ Ist das genug – oder hätte man den Migrationspfad nicht von vorneherein mit berücksichtigen sollen? Wie wichtig findest du die Möglichkeit, migrieren zu können?

Tarasiewicz: Um diese Frage zu beantworten, muss man die Situation etwas differenzierter betrachten und sich auch etwas mit der Historie von AngularJS auseinandersetzen. Grundsätzlich ist es natürlich äußerst wichtig, einen Migrationspfad bereitzustellen, wenn man eine neue Version einer Bibliothek entwickelt. Die Erarbeitung eines Migrationspfades sollte immer Teil der Aufgaben sein, die im Zuge der Entwicklung einer neuen Version anfallen. Gleichermaßen sollte man auch dem Thema Rückwärtskompatibilität Beachtung schenken. Das steht außer Frage.

Aber manchmal sind die Mängel an einer Software eben so gravierend, dass man sie nicht einfach so beheben kann, ohne ein radikales Redesign zu fahren und dabei das Thema Rückwärtskompatibilität hinter sich zu lassen. AngularJS hat sich sehr schnell von einem Underdog zu dem relevantesten Framework für Single Page Apps entwickelt. Vielleicht sogar zu schnell. Es wurde initial von einem Google-Entwickler (Misko Hevery) in seiner Freizeit bzw. 20-%-Off-Zeit entwickelt. Es war also ein Hobby-Projekt. Es ist irgendwo klar, dass man während der Entwicklung eines Hobby-Projekts nicht alle gemeinen Use Cases der echten Welt vor Augen hat. Und es ist auch klar, dass man im Kontext eines Hobby-Projekts nicht jedes Mal das halbe Frameworks umwälzt, wenn man merkt, dass ein Konzept in einem Realweltszenario dann doch nicht aufgeht. Stattdessen sucht man pragmatische Lösung, die das Problem temporär umgehen und schreibt sich ins Backlog, dass „das“ unbedingt in der Zukunft besser gemacht werden muss. Problematisch wird es natürlich dann, wenn man merkt, dass das Framework von heute auf morgen durch die Decke geht, mir mein Arbeitgeber ein Team von mehreren Leuten dahinstellt und ich zusehen muss, dass ich die Art von Innovationen vorantreibe, die man von meinem Arbeitgeber erwartet. Das Backlog platzt dann schnell aus allen Nähten, und bevor ich mich versehe, bin ich in einer Bredouille, aus der ich nicht mehr so einfach herauskomme.

Im Rahmen von Angular 2.0 entsteht auch die neue JS-Sprachvariante AtScript, ein auf Traceur aufbauendes ECMAScript-6-Superset mit einer TypeScript-artigen Syntax. Brauchen wir wirklich noch eine weitere JavaScript-Variante? Wo liegt der Mehrwert gegenüber TypeScript?

Tarasiewicz: Klar hätte man die neue AngularJS-Version so konzipieren können, dass entsprechende Anwendungen mit nacktem ES6 oder mit TypeScript entwickelt werden können. Das hätte sicherlich ohne große Komplikationen funktioniert, wobei ich bezweifle, dass Google TypeScript jemals in Erwägung gezogen hat.

Aber wenn Du Google bist, dann stellst du dir natürlich die Frage, welche Aspekte nun darüber hinaus beachtet werden müssen, wenn du solch ein radikales Update fährst. Du willst ja nicht für Version 3 erneut so radikal vorgehen. Und du musst jetzt etwas kreieren, das von längerer Lebensdauer ist. Vielleicht auch vor dem strategischen Hintergrund, dass du deine eigenen Anwendungen auf AngularJS 2.0 portieren willst und somit im Interesse der eigenen Entwickler/innen handeln musst.

Und da bei Google nun mal ein Großteil der Webanwendungen noch immer Java-basiert sind, gibt es entsprechend viel Know-how in dem Bereich. Vor allem GWT ist immer noch eine zentrale Technologie in der Anwendungslandschaft von Google. Das hat auch seine Gründe: Java ist vielleicht nicht die tollteste Programmiersprache auf Erden, aber durch die stark restriktive Programmierumgebung fällt die Pflege von großen Applikationen in großen Teams leichter.

Nun musst du die Entwickler/innen mit ihrem bestehen Java-Know-how da abholen, wo sie von der steilen Lernkurve profitieren. Da im Java-Umfeld ziemlich viel über Annotationen geregelt wird, findest du dich schnell zurecht, wenn die neue Programmierumgebung ähnlich beschaffen ist. Wobei wir schließlich bei der Antwort auf die Frage wären, wo jetzt genau der Mehrwert von AtScript gegenüber TypeScript liegt: AtScript bietet uns Annotationen und erweitere Möglichkeiten zur Introspektion von Quellcode. Und wie bereits erwähnt wird AngularJS 2.0 diese Möglichkeiten nutzen, um dem Entwickler die APIs basierend darauf anzubieten.

Auf der anderen Seite stellt Google noch eine weitere Websprache bereit: Dart, das mit AngularDart auch über seine Version des Angular-Frameworks verfügt. Angular 2.0 soll nun AngularJS und AngularDart miteinander vereinen – was aus Sicht von Google ja durchaus Sinn ergibt, da man dann nicht zwei verschiedene Frameworks pflegen muss. Doch was hat die Community davon?

Tarasiewicz: Gibt es wirklich eine AngularDart-Community? Ich habe das Gefühl, dass das AngularDart-Projekt nie wirklich relevant war und lediglich ein gefloppter Versuch von Google ist, Dart etwas zu pushen. Also zumindest in der Industrie hat AngularDart keine bedeutende Rolle gespielt.

Als Vorteil für die Community sehe ich, dass das AngularDart-Team seine Erkenntnisse, die Problemstellung aus einem anderen Blickwinkel zu betrachten, einbringt und somit dafür sorgt, dass die neue Version von AngularJS um so stimmiger wird.

Du wirst AngularJS ja auf dem Java EE Summit vorstellen. In der Tat kann man sehen, dass AngularJS zunehmend auch in der Java-Szene ein Thema wird. Warum ist das so?

Tarasiewicz: Wie ich anfangs schon erwähnt hatte, macht AngularJS die Entwicklung von Single Page Apps vor allem für den klassischen Softwareentwickler erstmalig wirklich zugänglich. Außerdem verzeiht ihm das Framework, wenn er nicht die tiefen Web-Kenntnisse hat, die man benötigt, um eine ernsthafte Webanwendungen erstellen zu können. Somit finden sich beispielsweise Java-Entwickler schneller in AngularJS zurecht als in einem Framework, bei dem der Entwickler noch viel mehr Freiheiten hat oder sehr nah am DOM programmieren muss. Unsere Anwendungen verlagern sich immer weiter in Richtung Web und werden immer interaktiver. Mit den klassischen Java-Ansätzen (JSF, Wicket, Tapestry, etc.) kommt man da leider schnell an seine Grenzen. D.h. auch die Java-Welt muss umdenken. Es spricht ja nix dagegen, die Backends weiterhin in Java zu bauen. Aber wenn Du ein modernes, interaktives, Web-basiertes Frontend haben möchtest, solltest Du zu HTML5, CSS3 und JavaScript greifen. Und da bietet AngularJS als Framework scheinbar die angenehmste Zugänglichkeit für einen Java-Entwickler.

Auf den AngularJS Days wirst du Angular JS im Zusammenhang mit Test-driven Development behandeln. Worum genau wird es gehen?

Tarasiewicz: Bei uns in der Firma ist das Thema Test-driven Development von ganz zentraler Bedeutung. Und ich bin ganz froh darüber, dass wir es in unseren Consulting-Jobs immer öfter schaffen, den Kunden davon zu überzeugen, diese Art der Entwicklung zu adaptieren. AngularJS bietet dir alles, um konsequent testgetrieben entwickeln zu können. Und darum geht es im Kern in dem Workshop, den ich zusammen mit meinem Kollegen, Robin Böhm, durchführen werde. Was kann ich alles testen? Wie muss ich dabei vorgehen? Wie tausche ich im Testcase eine Implementierung gegen ein Mock-Objekt aus? Welche Mock-Objekte bringt AngularJS von Hause aus mit? All diese Fragen werden wir näher beleuchten und letztendlich auch beantworten. Die AngularJS Days widmen sich dem Thema „Testbarkeit“ einen ganzen Tag. Während wir uns mit Robin Vormittags lediglich auf das Unit-Testing beschränken, zeigen Mischa Dasberg und Remco Vlierman anschließend im Nachmittags-Workshop, welche Möglichkeiten es zum E2E-Testing gibt.

AngularJS Days 2015

Vom 4. bis 6. März 2015 präsentiert das Entwickler Magazin zusammen mit der Entwickler Akademie zum ersten Mal die AngularJS Days in München mit den führenden Köpfen der deutschen AngularJS-Community: Sascha Brink, Elmar Burke, Christian Weyer, Pascal Precht, Christoph Burgdorf, Philipp Tarasiewicz, Robin Böhm und Carmen Popoviciu. Zusammen mit den parallel stattfindenden JavaScript Days und HTML5 Days können Entwickler und Softwarearchitekten ihr persönliches Programm aus insgesamt 24 Power Workshops mit 21 der bekanntesten nationalen und internationalen JavaScript-Experten wählen. Alle Infos auf www.angularjs-days.de.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -