Solus plant den Wechsel von GTK zu EFL

Quelle: joshuastrobl.com

Solus ist eine von Grund auf gebaute Distribution mit Budgie als hauseigenem Desktop. Es wird ähnlich Manjaro als leicht verzögertes Rolling Release herausgegeben, das jeden Freitag aktuelle Updates erhält. Budgie nutzt bisher GTK 3 und viele Bestandteile von GNOME als Basis.

Bereits Solus-Gründer Ikey Doherty wollte vor einigen Jahren von GTK zu Qt wechseln. Nach seinem Weggang und der folgenden Zeit der Neuorientierung zielt der neue Projektleiter Joshua Strobl nun in die gleiche Richtung, zumindest, was die Abkehr von GTK angeht. Bei der jetzigen Neubewertung waren auch Qt und iced in der engeren Wahl, aber sowohl die vorwiegende Verwendung von C++ sowie die aus Sicht der Entwickler unsichere Lizenzsituation ließen sie von Qt für Budgie Abstand nehmen. Iced erschien zwar vielversprechend, schied aber aus, weil es noch am Anfang der Entwicklung steht und etwa die Implementierung von eigenen Widgets derzeit noch zu kompliziert umzusetzen ist.

Umstieg auf EFL

Wie Strobl auf seinem Blog schreibt, plant das Team den Umstieg auf die Enlightenment Foundation Libraries (EFL), die die Grundlage des Enlightenment Desktops bilden. Da Solus auf Desktop-PCs und Notebooks ausgerichtet ist, findet er die sich derzeit abzeichnende Vision von GNOME vom klassischen Desktop hin zu einem stärkeren Fokus auf die Skalierbarkeit von Anwendungen für mobile Endgeräte und einer eher touch-orientierten Benutzererfahrung als nicht mehr passend zu Solus.

Theming für Dritt-Anwendungen erschwert

Schwerer wiegen die Probleme, die das Theming für Anwendungen außerhalb des GNOME-Universums betreffen und die laut Strobl mit der Einführung von libadwaita im Rahmen der neuen Human Interface Guidelines (HIG) eher noch verschärft werden. Weitere Funktionen werden durch GTK 4 für Drittanbieter unmöglich gemacht. So fällt etwa die Möglichkeit weg, verschiedene GTK-Widgets, wie z.B. die GTKHeaderBar als Unterklasse zu definieren. Das sogenannte Sub-Classing erlaubt es, ein eigenes Widget oder eine eigene Logik mehr oder weniger auf einem bestehenden Widget zu implementieren und dessen Eigenschaften und Signale zu nutzen, um die eigene Widget- oder Anwendungslogik zu vereinfachen.

Zu viele Nachteile

Auch X11 wird zugunsten von Wayland laut Strobl benachteiligt, indem viele X11-APIs bei GTK 4 einfach entfernt wurden. Die Liste der Kritikpunkte geht aber noch viel weiter und GTK 4 sowie die Ideen zu GTK 5 entsprechen nicht mehr den Erwartungen der Solus-Entwickler. Bleibt also, entweder ein eigenes Toolkit zu schreiben oder EFL zu adaptieren. Letzteres ist eine sehr interessante Option, wie ich finde, denn EFL und Enlightenment können sicher mehr Entwicklung und Öffentlichkeit gebrauchen. Diese Entscheidung bedeutet laut Strobl auch, dass es mit der nächsten Veröffentlichung keine an Solus angepasste GNOME-Version mehr geben wird, sondern lediglich eine Standard-GNOME-Shell ausgeliefert wird. In der Folge könnte die GNOME-Edition nach Budgie 11 auch komplett entfallen.

Solus betont mit seiner mutigen Entscheidung, EFL für seine Zwecke zu adaptieren, seine Eigenständigkeit. Neben Solus verwendet Bodhi Linux ebenfalls einen EFL-basierten Desktop namens Moksha.

Kommentare

10 Antworten zu „Solus plant den Wechsel von GTK zu EFL“

  1. Avatar von died0r
    died0r

    Sehr schön, ein Schritt weg von GTK ist grundsätzlich ein Schritt in die richtige Richtung.

    Es wird Zeit, Solus mal wieder anzusehen. 🙂

  2. Avatar von Der Andi
    Der Andi

    Vielen Dank für den tollen Bericht. Ich finde die Entscheidung super, das gibt dann noch eine echte Alternative. Ich bin zwar wahnsinnig in KDE verliebt, aber das würde ich ausprobieren. Ich mag solche Sondergurken lieber als die wasweißichwievielte Gtk-Umsetzung. Viele Grüße, der Andi.

  3. Avatar von Dodobird
    Dodobird

    Hat sich bei EFL hinsichtlich der Codequalität etwas getan, oder will Joshua Strobl einfach mal ein paar Jahre damit herumbasteln, bis die Parität von Budgie-EFL zu Budgie mit GTK3 wieder hersgestellt ist? EFL hat inhärente Probleme und schwere Designfehler, etwa  Runtime Type Checking, die C ad absurdum führen und aus irgendeinem Bastelkeller der späten 80er Jahre stammen.
    Siehe dazu auch: https://what.thedailywtf.com/topic/15001/enlightened
    Interessant wird es, wenn sich Casten Haitzler himself einschaltet. Triggerwarnung: Extremes Fremdschämen.

    1. Avatar von juchtel
      juchtel

      Schämen muß sich erstens, wer so etwas wagt zu veröffentlichen, und zweitens, wer soetwas wagt zu zitieren!
      Wer so die Contenance verliert und und von „Scheisssoftware“ schreibt, sollte lieber die Klappe halten resp. die Fingers von der Tastatur lassen.
      Der Typ kommt mir ein wenig vor wie jemand, der die ELF-Bibliotheken mit aller Gewalt schlecht machen will, und weil ihn nichts vernünftiges einfällt, nimmt er die Fäkalsprache zur Hilfe.
      Armseliger Mensch!

    2. Avatar von perko
      perko

      Hervorragend fundierte Analyse des Codes. Sehr sachlich und vor allem aktuell. Pullizerpreis verdächtig.

      1. Avatar von juchtel
        juchtel

        Dodobird ist bestimmt ein Alter Ego vom Mustermann, der kann ja auch ganz vorzüglich olle Kamellen aus der Hose zaubern…

    3. Avatar von Christian Becker
      Christian Becker

      Naja, offenbar ist EFL aber dann immernoch besser als GTK – oder die Leute von Solus sind dämlich/Masochisten/beides.

  4. Avatar von Klaus Behringer
    Klaus Behringer

    Moksha ist ein Fork von Enlightenment, der nötig war, weil die Entwickler des Enlightenment DEs weder auf Verbesserungen, noch auf Patches von Außen reagierten.
    Und die Entwicklung nur schleppend vorantrieben.

    1. Avatar von Atalanttore
      Atalanttore

      Die Entwickler von Solus scheinen die Hoffnung zu haben, dass dies bei EFL, den Enlightenment Foundation Libraries, anders ist.

  5. Avatar von Atalanttore
    Atalanttore

    Warum haben die Solus-Entwickler wxWidgets nicht mal evaluiert?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert