Gradle in der Kritik

Alle lieben Gradle… oder?

Moritz Hoffmann

(c) Shutterstock / file404

Spätestens mit der Veröffentlichung der zweiten Hauptversion im Sommer letzten Jahres hat sich Gradle als populäres Build-System bei eine Vielzahl von Java-Entwicklern durchgesetzt. Für Eclipse werden entsprechende Plug-ins angeboten und auch in der Android Studio IDE kommt Gradle zum Einsatz. Alles läuft also wie geschmiert für Gradle, das seit Version 1.0 mit dem Anspruch auftritt, die Vorzüge seiner beiden Vorgänger Ant und Maven zu vereinen. Aber wie so oft, kann man es selten allen Recht machen und so hat sich zuletzt ein IT-Blogger mit deutlicher Kritik an Gradel zu Wort gemeldet.

Unwahrscheinlich langsam, voller Fehler und versehen mit einer für Builds völlig ungeeigneten Sprache: So ließen sich die Hauptkritikpunkte von Paul Gros, der Gradle in seiner Funktion als Lead Developer bei BraintreePayments verwendet hat, zusammenfassen. Schon nach kurzer Zeit gab er auf und migrierte die projektrelevanten Java-Anwendungen und -Bibliotheken zum Build-System Bazel. In einem aktuellen Blogbeitrag erläutert er, warum.

Gradle ist langsam

Entgegen Gradles Ruf, eine hohe Build-Performance zu bieten, versucht Gross, Gradles Schwerfälligkeit im Vergleich zu Googles Build-System Bazel vorzuführen. So würde, selbst wenn keine Dateien geändert wurden, Gradle deutlich mehr Zeit als Bazel in Anspruch nehmen. Für den Durchlauf aller Tests musste mit Gradle fast doppelt so viel Zeit eingerechnet werden, wie das nach der Migration zu Bazel der Fall gewesen sei und noch deutlicher fiel die Diskrepanz nach nur einer Datei-Änderung in der Re-kompilierung und dem erneuten Run im abhängigen Test aus. Gross fasst zusammen:

Gradle is just slow to figure out what has changed and what needs to be run. It’s probably due to the number of subprojects (modules) we have inside this monorepo (about 20).

Solange der Support für parallele Ausführungen in Gradle noch auf sich warten lässt, rät er klar zu anderen Alternativen.

Groovy eine denkbar schlechte Build-Sprache

Einem Team, das Groovy nicht kennt, sei die in Gradle genutzte dynamisch typisierte Programmiersprache eigentlich nicht zuzumuten. Zu allem Überfluss habe Groovy eben auch noch seine ganz eigenen Tücken, die nicht unbedingt für den Einsatz in einem Build-System qualifizieren. Meist sei man mit Build-Sprachen in der Host-Sprache (wie etwa Rake oder Ruby), bzw. mit gängigen Script-Sprachen (wie Bash oder Python), vertraut. Mit deren Einsatz könne das Team nach der Migration nun flexibel auf spezifische Anforderungen reagieren, anstatt nach dem Motto „Gradle for everything“ zu agieren.

Gradle voller Fehler ?

Die Arbeit mit Gradle hielt für Paul Gross jede Menge böser Überraschungen bereit. Keine Fehlerwarnungen, ein fehlerträchtiges IntelliJ IDEA-Plug-in und Konflikte beim Pull verschiedener Bibliotheken waren schließlich der Grund für eine Migration zu Bazel, wo man sich trotz einiger Startschwierigkeiten doch zumindest auf die Basisfunktionen verlassen könne:

In the Bazel world, every dependency is explicitly stated. In our case, we just left out the conflicting library and only included the good one. It was much simpler.

Wie beliebt ist Gradle wirklich?

Googles Build-Tool Bazel habe mit dem Docker-Support, einer starken Abfragesprache und der Möglichkeit, Tests durch Tags zeitlich zu begrenzen, letztlich mehr Dynamik anzubieten. Nach der Migration aller Prozesse, Tools, READMEs und vieler nervenaufreibender Herausforderungen mehr, so Gross, sei sein Team mit Bazel endlich wieder zufrieden.

Was für ein Team die richtige Lösung war, muss noch lange keine allgemeine Tendenz ausdrücken. Die anfängliche, allgemeine Begeisterung für Gradle aber dürfte auch noch in Zukunft für einige Ernüchterungen sorgen. Alternative Build-Systeme wie Bazel stehen jedenfalls schon in den Startlöchern.

Welches Building-Tool nutzen Sie?
Was sind Ihre Erfahrungen mit Gradle?
Teilen Sie Ihre Meinung in unserem Kommentarbereich …

Aufmacherbild: Screaming Retro Poster von Shutterstock / Urheberrecht: file404

Verwandte Themen:

Geschrieben von
Moritz Hoffmann
Moritz Hoffmann
Moritz Hoffmann hat an der Goethe Universität Soziologie sowie Buch- und Medienpraxis studiert. Er lebt seit acht Jahren in Frankfurt am Main und arbeitet in der Redaktion von Software und Support Media.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: