Stabilität und Abhängigkeiten

gedacht
getan
Published

07.07.2009 02:03

Ein Kollege hat einmal gemeint, dass es für die Kurzlebigkeit der meisten Java-Anwendungen im Vergleich zu deutlich älterer Legacy-Software einen wichtigen Grund gibt: Java-Projekte bringen eine Unmenge an Abhängigkeiten zu Drittprojekten mit. Kommt eine entwickelte Software nun in die Phase der Wartung, dann wird man schnell feststellen, dass sich die Drittprojekte in der Zwischenzeit weiterentwickelt haben, ihre API vielleicht geändert haben und benötigte Bugfixes für die verwendeten, veralteten Versionen nicht verfügbar sind. Also steht man vor der schweren Entscheidung, die eigene Software auf eine aktuelle Version des Drittprojektes zu migrieren oder den Bug im eigenen Code zu umschiffen - in beiden Fällen kann so ein immenser Aufwand entstehen.

Ein ganz ähnliches Problem habe ich momentan mit meiner Ubuntu-Installation, die immer noch auf dem stabilen LTS 8.04 (Hardy Heron) basiert. Dafür gibt es ein Videoschnitttool namens Kdenlive in der total veralteten Version 0.5; für aktuellere Versionen von Ubuntu steht schon 0.7.5 bereit. Also habe ich versucht, auch Hardy das Update beizubringen, indem ich mir die benötigten Abhängigkeiten (u.a. ein neueres KDE) aus anderen Quellen und Repositories besorgt habe. Das lief so lange gut, bis ich an die Stelle kam, wo eine aktuellere QT-Quelle benötigt wird. Diese (4.4.3) verträgt sich nämlich ganz und gar nicht mit der Hardy-Version (4.3.x), so dass ich mein Unterfangen abbrechen musste.

Das Problem mit meinem LTS ist also, dass es aus Gründen der Stabilität einen relativ starren Unterbau hat. Wenn man nun so gravierende Updates wie des KDEs und dessen Grafikbibliothek vornehmen möchte, gerät das gesamte stabile Gerüst ins Wanken. Deshalb machen sich die Maintainer hinter Ubuntu (bzw dessen Grundlage Debian) auch die Mühe, wichtige Bugfixes der neuen Versionen auf die alten Systeme zu portieren, anstatt das gesamte Konstrukt auf den aktuelleren Stand zu migrieren und das Risiko einzugehen, dass bestimmte Anwendungen dann nicht mehr laufen, da sie nicht migrierbar sind.

Für mich bedeutet das nun, dass ich mir ein frischeres Ubuntu installieren muss (z.B. in einer VM) oder ein fertiges Image starte, wenn ich eine halbwegs aktuelle Kdenlive-Version benutzen möchte. Oder ich suche mir eine Software, die nicht zusammen mit dem KDE entwickelt wird. Denn je geringer die Anzahl der Abhängigkeiten ist, um so einfacher ist die Software auch auf älteren Systemen zu installieren. Eine weitere Alternative sind Komplett-Packages, die alle Abhängigkeiten bereits mit kompiliert haben, aber diese Mühe muss sich erst einmal jemand machen. Die Moral von der Geschichte ist also: Stabilität und Aktualität sind zusammen nicht (einfach) zu bekommen!