Am heutigen Tage ist die neue Ubuntu-Version 11.04 “Natty Narwhal” erschienen. Dies ist ein wichtiges Release für Ubuntu, weil es nicht mehr wie seit dem ersten Release 4.10 auf GNOME mit dem klassischen Panel als Standard-Desktop setzt, sondern auf eine Eigenentwicklung namens Unity. Über Unity wurde seit der Bekanntmachung und während der Beta-Phase viel diskutiert und geredet, einige haben konstruktive Kritik angebracht, andere haben sich beschwert, dass Unity nicht genauso ist wie ihr alter Desktop und dass sie jetzt (mal wieder) zu Debian oder dessen Derivaten wechseln.
Jedoch ist Unity auch nicht ausgelegt auf Leute, die in Erwägung ziehen, Debian zu benutzen. Zwar ist Debian eine super Distribution ohne die Ubuntu nicht existieren würde und die auf Servern eine sehr gute Figur macht, und auch auf Desktops, deren Anwender Zeit haben, ihr System ihren Wünschen entsprechend zu konfigurieren, und es mag sicherlich eine Schnittmenge der Ubuntu- und Debian-Zielgruppen geben, aber Ubuntu will auf die Desktop der Massen. Der normale Desktop-Anwender konfiguriert nicht tausende von Stellschrauben, er macht sich nicht einmal die Mühe, die Einträge im Windows-Startmenü vernünftig zu ordnen, stattdessen fliegt alles irgendwo rum.
Eine Revolution des Desktop ist nötig
Mal ehrlich: Das Bedienkonzept, das klassische Desktopoberflächen mitbringen, hat versagt. Wer schon einmal Leute beim Arbeiten beobachtet hat, die von Computern wenig verstehen, dem wird auffallen, dass sie ihre Arbeit viel effizienter und schneller erledigen könnten, sie aber die entsprechenden Funktionen gar nicht kennen und viele Dinge total umständlich bewältigen. Der Anwender versucht, die Unzulänglichkeiten der GUI zu kompensieren, obwohl die GUI eigentlich den Anwender unterstützen sollte!
Man könnte meinen, dass Windows dies noch besser hinkriegt als Linux und es deswegen auch weiter verbreitet ist. Der Grund, warum noch so viele Leute Windows benutzen, ist jedoch nicht, dass die Oberfläche so toll ist. Die große Stärke von Windows ist und bleibt die Kompatibilität, durch seine hohe Verbreitung gibt es fast nichts, was damit nicht funktioniert, und Microsoft kommt auch nicht auf die Idee, alle paar Releases komplette Subsysteme durch neue zu ersetzen, wodurch Entwickler eine höhere Sicherheit haben. Linux kann und wird Windows niemals im Bereich Kompatibilität überholen, weil es dafür einen höheren Marktanteil haben müsste, für den es aber mehr Kompatibilität braucht. Also muss Linux auf anderen Gebieten punkten, und zwar auf dem Gebiet der Usability.
Genau dieser Mission hat sich offenbar Canonical mit Ubuntu verschrieben. Keine Distribution, keine Desktop-Umgebung, ob GNOME oder KDE, hat es bisher geschafft, Linux auf die Desktops der Massen zu bringen. KDE nicht, was wohl der leistungsfähigste Desktop sein wird, von dem der Laie durch seine vielen Konfigurationsoptionen und durch die ganzen Features und die verschiedenen Möglichkeiten, eine Sache zu machen, jedoch total überfordert ist. Das altbackene GNOME 2 lockt heute auch niemanden hinterm Ofen vor. Einzig Compiz hat dafür gesorgt, dass es noch zeitgemäß blieb.
Also müssen neue Konzepte erarbeitet werden, der klassische Desktop muss umgekrempelt werden hin zu neuen Paradigmen, die von normalen Menschen besser verstanden werden können. Apple setzt die Messlatte hier hoch an, mit dem iPad hat das Unternehmen einen neuen Formfaktor salonfähig gemacht, und mit Mac OS X 10.7 alias “Lion” wird es ebenfalls mit “Launchpad” und “Mission Control” einige Umwälzungen geben. KDE ist mit Plasma und KWin schon etwas in diese Richtung gegangen, wesentlich weiter geht hier überraschenderweise GNOME (verkehrte Welt, irgendwie) mit der GNOME Shell, welche ein völlig neues Bedienkonzept einführt. Es gibt keine Applets und kein Anwendungsmenü mehr, stattdessen läuft das Starten und das Wechseln zwischen Anwendungen und der ganze Rest über den Aktivitäten-Bildschirm ab. Das kürzlich erschienene GNOME 3.0 macht alles anders wie sein Vorgänger, alte Konzepte werden komplett über Bord geworfen und durch neue ersetzt. Die ganzen Neuerungen kann man sehr schön im Standard nachlesen.
Jetzt wird man sich natürlich fragen, warum Ubuntu nicht einfach GNOME 3 mit ausliefert, schließlich decken sich doch die Ziele der beiden: nämlich einen Desktop zu entwickeln, welcher von jedem gut bedient werden kann und diesen Desktop dann auch an den Mann zu bringen.
Probleme von GNOME 3
Das Problem ist, dass GNOME dieses Ziel zwar anpeilt, es aber übertreibt und deswegen verfehlt. Während KDE alle Macht dem Nutzer geben will, damit dieser sich seinen Desktop selber gestallten kann, glaubt GNOME, alles besser zu wissen und nimmt dem Nutzer so gut wie alle Konfigurationsmöglichkeiten. Ein Desktop, welcher es dem Nutzer nicht einmal erlaubt, den Computer auszuschalten, kann nicht dazu beitragen, die Verbreitung des Linux-Desktop zu fördern. Und der Hinweis, man könnte die Option über Konfigurationseditoren oder das Terminal wieder aktivieren, führt genau zu dem Ruf, den Linux heute hat, nämlich dass man selbst für alltägliche Aufgaben das Terminal braucht oder man in der Dokumentation nachlesen muss (da steht nämlich, dass durch Drücken der ALT-Taste der Eintrag “Ausschalten” wieder angezeigt wird).
Weiterhin benötigt GNOME 3.0 zwingend 3D, weil der Fenstermanager Mutter mit Clutter arbeitet, was nunmal OpenGL erfordert. User ohne funktionierende 3D-Unterstützung landen in einem Fallback-Modus, welche GNOME 2 nachgeahmt ist, aber nur einen Brucheil der Funktionen bietet und daher eher eine Notlösung ist. Dies betrifft alle User, die eine aktuelle AMD- oder Nvidia-Grafikkarte im Rechner haben und ein Linux-System über die Live-CD ausprobieren. Aus lizenzrechtlichen Gründen kann man die nötigen proprietären Treiber nicht mitliefern.
Ein weiterer Nachteil der GNOME Shell ist, dass sie auf Netbooks keine gute Figur macht. War Linux doch das Standard-System auf dem ersten Netbook, dem eee PC 701, so sollte genau dort der Fokus liegen. Die GNOME Shell erfordert allerdings viel Mausbedienung, was ja gerade mit einem Touchpad eher hinderlich ist. Unter GNOME 2 konnte man mit Compiz über entsprechende Tastenkombinationen viel effizienter navigieren. GNOME 3 benötigt hier auch massig Platz, die Fenster sind klobig und das Panel zu dick, hinzu kommt noch das Menü und die Titelleiste – gerade auf kleinen Displays auf denen jeder Pixel zählt ein Ärgernis.
Vorteile von Unity
Hier kommt Unity ins Spiel, denn es setzt auf das bewährte, stabile und leistungsfähige Compiz. Dies ist ein Riesenvorteil. Compiz war eine der Anwendungen, die mich letztendlich zum Wechsel auf Linux und damit Ubuntu bewegt haben. Die schönen Effekte waren zwar ganz nett, aber mit Compiz und den entsprechenden Plugins ist das Arbeiten viel effizienter. Unter der GNOME Shell müsste ich auf all das verzichten. Warum war es nötig, Compiz über Bord zu werfen und einen neuen Fenstermanager namens Mutter zu entwickeln, der im Endeffekt das gleiche machen soll?
Weiterhin funktioniert Unity auch ohne 3D-Beschleunigung. Zwar ist Unity eigentlich ein Plugin für den 3D-Fenstermanager Compiz, doch die Ubuntu-Entwickler haben einfach Unity2D aus der Taufe gehoben, welche letzendlich genauso funktionieren soll wie das normale Unity, welches aber mit dem traditionellen 2D-Fenstermanager Metacity zusammenarbeitet.
Unity setzt auch viel mehr auf Tastenbedienung. Programme startet man am besten, indem man die Super-Taste drückt und anfängt, den Programmnamen zu tippen. Sobald das gewünschte Programm in den Suchergebnissen erscheint, drückt man Enter. Also genauso, wie es bereits Launcher wie GNOME Do gemacht haben. Hier kommt mir Unity sehr entgegen, weil ich das bereits so gewohnt bin.
Auch Docks habe ich bisher immer genutzt. Das Dock von Unity ist auch sehr schön umgesetzt, es arbeitet wie alle Docks programmorientiert, nicht fensterorientiert. Hat ein Programm mehrere Fenster, wird beim Klicken auf das Icon das Scale-Plugin von Compiz aktiviert, wodurch die Fenster des Programms in einer Übersicht dargestellt werden. Hält man die Super-Taste gedrückt, werden einem die Shortcuts angezeigt, mit denen man die Programme leichter starten kann. Die von Windows 7 abgeschauten Qucklists sind auch ziemlich praktisch, auch wenn man hier bei mehr Programmen Unterstützung einbauen sollte, was man aber auch selber machen kann, siehe das Beispiel links.
Das Arbeiten mit Workspaces funktioniert nun endlich benutzerfreundlich. Gerade Anfänger kamen mit der bisherigen Funktion in GNOME 2 nicht zurecht und haben sich gewundert, wo ihre Fenster jetzt sind und und haben gar nicht verstanden, was Workspaces eigentlich sind. Die grafische Unity-Umsetzung macht das einiges besser, auch wenn ich mir die Möglichkeit wünschen würde, zusätzliche Workspaces hinzufügen oder entfernen zu können, wie es etwa die GNOME Shell bietet.
Das Panel von Unity ist ebenfalls ein willkommene Verbesserung. Durch das globale Menü, genannt AppMenu, wird die Menüleiste in das Panel verlegt, d.h die Fenster haben nun kein eigenes Menü mehr, stattdessen wird das Menü des aktiven Fensters im Panel angezeigt (vgl. das Globalmenu-Project, welches ähnliches unter GNOME 2 realisiert). Wird das Fenster aktiviert, werden auch die Fensterknöpfe und der Fenstertitel ins Panel verlagert (jetzt weiß man auch, warum Mark die Fensterknöpfe unbedingt links haben wollte). Das Menü ist dann ein Overlay, welches beim darauffahren erscheint. Dies ist ein echter Platzgewinn auf kleinen Displays. Unity hält sich immer dezent zurück und schiebt sich nicht ständig in den Vordergrund, um Platz zu verschwenden oder den Nutzer zu nerven, es ist recht minimalistisch und damit für Netbooks erst recht geeignet.
Auch merzt das Panel einige Bugs aus, die mich beim alten GNOME Panel genervt haben. Oftmals bekam ich die Meldung, dass irgendein Applet nicht geladen werden konnte. Ein beherztes killall gnome-panel half dann meistens. Manchmal wurde auch die Reihenfolge der Applets vertauscht, die man dann mühevoll wieder richtig sortieren musste. Der Benachrichtigungsbereich war auch ziemlich durcheinander, die Icons hatten unterschiedliche Größen und Abstände, das Klickverhalten machte auch jeder anders, Die neuen Indikatoren in Unity sehen aus wie aus einem Guss, sie haben alle den gleichen monochromen Stil und den gleichen Abstand, öffnen tunt sie sich per Linksklick. Leider lassen sich die Indikatoren nicht konfigurieren. Ich würde mir noch wünschen, dass man die z.B per gedrückter mittlerer Maustaste umsortieren kann.
Beide kochen nur mit Wasser
Generell lässt die Konfigurierbarkeit von Unity sehr zu wünschen übrig. Defaultmäßig gibt es folgendes Konfigurationsmenü:
Zwar lässt sich durch die Installation des CompizConfig Setting Managers wesentlich mehr konfiguerieren, auch über den dconf-editor lässt sich einiges einstellen. Jedoch bringt uns das wieder zu GNOME 3, wo auch immer argumentiert wird, dass man ja über entsprechende Tools alles konfigurieren könnte. Dies ist jedoch nicht benutzerfreundlich, Der Desktop muss sinnvolle Voreinstellungen bieten sowie ein Werkzeug, in dem man einige Einstellungen tätigen kann, die jeder User versteht, und dann zusätzlich noch die Möglichkeit mehr zu konfigurieren für erfahrene Anwender – wegen mir auch über die Kommandozeile oder den dconf-edior.
Ein weiterer negativer Punkt an Unity ist die Zahl der Bugs und Implementierungsfehler. Da wären diese neuen Overlay-Scrollbars, wie man sie etwa vom iPhone kennt. Diese funktionieren in einigen vorinstallierten Anwendungen wie Firefox oder LibreOffice, aber auch in nativen GTK+-Anwendungen wie Geany nicht. Offensichtlich müssen die Anwendungen gepatcht werden, und bei Nicht-GTK+-Anwendungen funktionieren die Scrollbars sowieso nicht. Die Fensterschatten sind nicht mehr änderbar (was aber gewollt ist, siehe Bug #708963), am meisten Probleme bereitet jedoch das AppMenu: So funktioniert das Accel-Changing bei GTK+-Anwendungen nicht, bei SWT-Anwendungen wird erst gar kein Menü angezeigt, es gibt Fehler in Menüs, die eigene Icons verwenden und wenn man die automatische Fensterselektion aktiviert hat ist es nahezu unmöglich, das Menü zu erreichen.
Ein Problem, welches zwar nicht direkt die Anwender, wohl aber die Entwickler betrifft ist, dass die 3D-Version und die 2D-Version von Unity völlig unterschiedliche Codebasen besitzen. Unity2D ist in C++ geschrieben, was für etwas so wichtiges wie eine Desktop-Shell ja sinnvoll ist, und es verwendet das Framework Qt, welches bereits in KDE und vielen anderen freien wie unfreien Projekten zum Einsatz kommt. Unity3D jedoch ist in der relativ unbekannten Sprache Vala geschrieben und in dem noch unbekannteren Toolkit Nux, dass sonst keiner benutzt. Mir wäre es lieber gewesen, die Entwickler hätten eine Unity-Version erstellt, welche dann mit einem optionalen Compiz-Plugin etwa via D-Bus kommuniziert und so die Effekte zeichnet, wenn es Hardware und Treiber erlauben (allerdings ist D-Bus in Compiz gerade kaputt). KWin bekommt es ja auch hin, unabhängig von vorhandener 3D-Unterstützung zu funktionieren und bietet sogar noch mit XRender, OpenGL und OpenGL ES verschiedene Backends an.
Dies alles sind aber Dinge, die Unity und GNOME Shell gleichermaßen betreffen und bei jungen Projekten immer zu erwarten sind. Die Bugs werden früher oder später gefixt werden, und vielleicht haben die GNOMEler doch ein Einsehen, überdenken ihr Konzept und lassen dem User etwas mehr Freiheiten. Unity hingegen sollte sich etwas mehr Konzept überlegen, eine Shell im Laufe der Entwicklung ständig auf verschiedene Toolkits zu portieren (GTK+, Clutter, Qt, Nux) erzeugt nur Aufwand und frisst Zeit, die nötig ist, das Programm weiterzuentwickeln.
Abwarten und Tee trinken
Zwar halte ich Unity für das bessere Konzept, weil es nicht ganz so radikal ist wie GNOME 3 und einige alte Konzepte beibehält, etwa einen ständig sichtbaren Programmwechsler, das Beibehalten von Desktop-Icons und das Setzen auf das bewährte Compiz. Jedoch bricht die Konkurrenz zwischen Unity und GNOME Shell den Monolithismus, der unter den Desktop-Umgebungen früher vorherrschte. Man musste sich zwischen GNOME und KDE entscheiden, und damit auch zwischen GNOME- und KDE-Anwendungen. Es ist besser, sie auf die eigentliche Shell zu konzentrieren, die Anwendungen vom Desktop unabhängiger zu machen und auf gemeinsame Standards (hörst du, Canonical?) zu setzen. KDE hat sich auch deswegen in KDE SC (Software Compilation) umbenannt, um darauf hinzuweisen, dass der KDE-Desktop eben nur eine mögliche Zusammenstellung aus Komponenten ist, und man auch einzelne Komponenten anders verwenden kann. Nun hat der Nutzer die Wahl zwischen Unity, GNOME Shell und Plasma sowie zahlreichen weiteren Shells, die Basis-Komponenten sollten jedoch die gleichen sein. Es ist eine totale Usability-Bremse, wenn der Nutzer eine Anwendung installiert und diese plötzlich ein anderes Schlüsselbund-System verwendet.
Letztendlich wird die Zeit zeigen, welches Konzept den Nutzern besser gefällt. Wird Unity ein Flop, kann man immer noch zu einer anderen Distribution wechseln und man hat nichts verloren. Und wenn niemand GNOME Shell verwenden will, kommt das nur Ubuntu zu gute (darauf spekuliert Canonical wohl). Und wenn alle Stricke reißen bleibt noch XFCE und KDE übrig. Hier sieht man einen großen Vorteil des Linux-Desktop: Das man sich bei Design-Revolutionen, die einem nicht gefallen, nicht nur die Möglichkeit hat, auf der alten Version zu bleiben, sondern man aus zahlreichen Alternativen wählen kann. Darum ist Unity gut für den freien Desktop: Alle Projekte strengen sich an, dem Nutzer das beste Erlebnis zu bieten, und am Ende überlebt das beste Konzept.