Der GNOME Weg

Do, 15. Juli 2021, Ralf Hersel

Tobias Bernard vom GNOME Team hat eine Blog-Serie zum Thema 'Community Power Part' geschrieben. In den ersten drei Teilen (Teil 1, Teil 2, Teil 3) hat er sich angesehen, wie die Aufgabenverteilung innerhalb von GNOME funktioniert und was das für das Erreichen von Zielen bedeutet. Ein Fazit war, dass man ein vertrauenswürdiges Mitglied der Gemeinschaft werden muss, was ein Verständnis des Ethos des Projekts erfordert, um Dinge zu erreichen.

Im vierten Teil geht Bernard auf dieses Ethos ein, sowohl in Bezug auf die übergeordneten Werte als auch darauf, was diese in praktischer Hinsicht bedeuten. Die Details könnt ihr in der Quelle nachlesen. Ich hebe hier nur die wesentlichen Punkte hervor.

Aussagen, die mir besonders interessant erschienen, habe ich fett hervorgehoben.

Warum

Als grundlegende Motivationen bestimmt Bernard diese Punkte:

  • Wir glauben an Software-Freiheit als ein inklusives, verantwortliches Modell für die Produktion von Technologie in der Allmende.
  • Unsere Software wird so entwickelt, dass sie von jedem genutzt werden kann. Wir legen grossen Wert auf Benutzerfreundlichkeit, Zugänglichkeit, Internationalisierung und Unterstützung für eine Vielzahl von Hardware.
  • Software sollte strukturell und ästhetisch elegant sein, sowohl in Bezug auf die zugrunde liegende Technologie als auch auf die Benutzeroberfläche.

Was

Welche Dinge erstrebenswert sind, und was man vermeiden sollte:

  • Anwendungen von Drittanbietern sind die beste Abstraktion, um das Kernsystem um zusätzliche Funktionen zu erweitern. Aus diesem Grund haben wir viel Arbeit in die Unterstützung von Entwicklern von Drittanbieter-Apps gesteckt, um mehr und bessere Apps zu entwickeln.
  • Jede Voreinstellung hat Kosten, und diese Kosten steigen exponentiell, wenn man mehr davon hinzufügt. Aus diesem Grund vermeiden wir Voreinstellungen so weit wie möglich und konzentrieren uns stattdessen auf die Behebung der zugrunde liegenden Probleme.
  • In ähnlicher Weise gibt es eine direkte Beziehung zwischen dem Grad der vertikalen Integration eines Produkts und dem Grad der Kohäsion, den man erreichen kann. Jede unnötige Variable, die man im gesamten Stack eliminiert, setzt Zeit und Energie frei und schafft Möglichkeiten für Funktionen, die man sonst nicht entwickeln könnte.
  • Die Aufmerksamkeit der Menschen ist kostbar. Wir sind stolz darauf, frei von Ablenkungen zu sein.

Wie

Nützliche Faustregeln, um Dinge zu entwickeln:

  • Wir machen keine Hacks. Anstatt ein Problem auf der falschen Abstraktionsebene zu umgehen, glauben wir daran, das Problem an der Wurzel zu packen und für alle zu beheben, auch wenn das bedeutet, in tiefere Schichten vorzudringen.
  • Wir sehen Design ganzheitlich und nicht als eine isolierte Sache, die das Designteam macht. Es geht nicht nur um Funktionalität und Ästhetik, sondern auch um die zugrunde liegende Technologie und darum, was überhaupt gebaut werden soll. Selbst wenn du nicht im Designteam mitarbeitest, wird die Entwicklung einer Affinität für Design dich zu einem effektiveren Mitwirkenden machen.
  • Es ist wichtig, sich relevante Kunst anzuschauen, aber einfach die Konkurrenz zu kopieren, führt in der Regel nicht zu grossartigen Ergebnissen. Wir haben eine stolze Geschichte der Erfindung neuer Paradigmen, die besser sind als der Status Quo.
  • Als allgemeine Regel gilt: Gehe von der gewünschten Benutzererfahrung aus und machen dich dann daran, die dafür notwendige Technologie zu entwickeln, nicht andersherum. Wie auch immer: Dies ist keine Entschuldigung für schlechte Technik oder das Verfolgen von Ideen, die konzeptionell unmöglich sind (z. B. Multiprotokoll-Chat-Clients).
  • Verlass dich auf den Experten. Jeder hat unterschiedliche Fachgebiete, wie z.B. Benutzererfahrung, Sicherheit, Zugänglichkeit, Leistung oder Lokalisierung. Höre auf die Leute, die am meisten Erfahrung in einem bestimmten Bereich haben.
  • Beim Design geht es immer um Kompromisse. Sei vorsichtig mit harten und schnellen Regeln, die nur einen Teil eines Problems betrachten (z. B. "Vertikaler Platz ist knapp, also..."), und versuche stattdessen, verschiedene Belange so auszubalancieren, dass es insgesamt gut funktioniert.

Praxis

Einige der oben genannten Prinzipien sind recht abstrakt, was bedeuten sie also für die tägliche Arbeit bei der Erstellung von Software? Hier sind einige Beispiele, wie sie auf reale Fragen angewendet werden:

  • App-Entwickler sollten ihr eigenes Packaging machen. Das ist der einzige Weg, es nachhaltig und in grossem Umfang zu tun.
  • Flatpak ist die Zukunft der App-Distribution.
  • Der "traditionelle Desktop" ist tot, und er wird nicht wiederkommen. Anstatt zu versuchen, alte Konzepte wie Menüleisten oder Statussymbole zurückzubringen, erfindet etwas Besseres aus den ersten Prinzipien.
  • Systemweites Theming ist eine kaputte Idee. Wenn Sie nicht mögen, wie Anwendungen aussehen, tragen Sie direkt zu ihnen bei (oder zum Stil der Plattform).
  • Shell-Erweiterungen werden immer eine Nischensache sein. Wenn du einen wirklichen Einfluss haben möchtest, ist deine Zeit besser investiert, wenn du an Anwendungen oder der GNOME-Shell selbst arbeitest.
  • "Den verfügbaren Platz zu füllen" ist selten ein gutes Ziel an sich und ein einfacher Weg, sich selbst in eine Ecke zu stellen.

Quelle: https://blogs.gnome.org/tbernard/2021/07/13/community-power-4/

Ulf
Geschrieben von Ulf am 15. Juli 2021

Irgendwie hat der Original Autor und wohl auch ein Großteil seiner Kollegen noch nie etwas von SW Ergonomie gehört oder zumindest dort die Forschungsergebnisse nicht richtig interpretiert. Er ist damit zwar in guter Gemeinschaft mit großen unternehmen, wird aber sehr viele Benutzer, die einfach nur ihr gewohntes System verwenden wollen vor dem Kopf stoßen. Zwar versuchen auch andere Desktops diesen Weg (wie leider auch KDE/Plassma) bieten aber zumindest den Weg zurück an. Eines der wesentlichen Gesetze wurde uns die Konstanz und Konsistenz gelehrt. Außerdem müssen die Prozesse/Programme/Arbeitsabläufe an die Anforderungen des Benutzers anpassbar sein und dürfen sich nicht wieder verändern. Siehe auch diese Einführung die dieses Thema recht ausführlich beleuchtet: https://userpages.uni-koblenz.de/~oppi/SE-EinfuehrungGesamt.pdf

Charon
Geschrieben von Charon am 15. Juli 2021

Gnome ist das uninovativste was ich gesehen habe! KDE oder Cinnamon sind weitaus besser und finden mehr Anhänger. Aber ist auch subjektiv!

Ralf Admin
Geschrieben von Ralf am 15. Juli 2021

Das ist tatsächlich eine subjektive Einschätzung. Ich finde GNOME sehr innovativ, auch wenn es manche anders sehen. Das KDE und Cinnamon mehr Anhänger finden, stimmt nicht. GNOME ist immer noch die populärste Desktop-Umgebung.

Arno
Geschrieben von Arno am 15. Juli 2021

Der Vollständigkeit halber möchte ich noch auf den Blogartikel eines GNOME Entwicklers verweisen, der nicht mit allen Punkten aus Bernards Artikel einverstanden ist https://feaneron.com/2021/07/13/on-building-bridges/

Ralf Admin
Geschrieben von Ralf am 15. Juli 2021

Guter Hinweis, danke. Ich kann mir gut vorstellen, dass es in der GNOME-Community noch viele andere Meinungen gibt.