Die Benutzerschnittstellen von freier Software

Die Benutzerschnittstellen von freier Software
Copyright © 2012 Black Duck Software, Inc., All Rights Reserved. Ohloh ® and the Ohloh logo are registered trademarks of Black Duck Software, Inc. in the United States and/or other jurisdictions. All other trademarks are the property of their respective holders.
For original English text, go to: http://ometer.com
Translated by A.Romanova

(Der Aufsatz wurde im April, 2002 geschrieben)

Viele Menschen haben behauptet, dass kostenlose Software Schwierigkeiten hat, um eine gute Benutzerschnittstellen zu schaffen. Kürzlich hat Matthew Thomas ein nettes Beispiel dieses Arguments angeschlagen, das ich auf der Joel Website gefunden habe. Es war cool den Artikel von mpt zu finden, weil es nett artikuliert, was mit vielen Projekten schief gegangen ist- einschließlich voriger Versionen aller wichtigen Linux/UNIX Arbeitsflächen.

Beiseite von der Liste von Kugel-Punkten gibt es Paar-Probleme des großen Bildes, die ich als bedeutend über den GNOME 2 betrachte, aber erwarte nicht, dass die meisten Außenseiter noch bemerkt haben.

  • Zugänglichkeit. Der enorme Betrag der Arbeitssonne hat in den GNOME 2 Zugänglichkeit investiert, und behält uns im Laufen für den Regierungsgebrauch in den Vereinigten Staaten und um die Welt. Ohne diesen ziemlich wesentlichen Körper der Arbeit würde kostenlose Software aus allen Regierungsstellen geschlossen worden sein. (Um nicht zu erwähnen, was  diese Arbeit bedeutet, dass wir für arbeitsunfähige Benutzer zugänglich sind!) Wichtig werden Mozilla und OpenOffice in dieselbe Zugänglichkeitsarchitektur integriert. Die meisten Menschen verstehen nicht die Bedeutung der Zugänglichkeitsinitiative, selbst wenn sie darüber wissen.
  • Usability. GNOME 2 hat eine lange Weise zu gehen. Aber nach meiner Meinung hat es den Hang der Tendenz-Linie geändert, die Matthew Thomas (und andere vor ihm) beobachtet hat, und außerdem GNOME 2 ist (nach meiner Meinung) die erste Linux/UNIX Tischausgabe Freilassung, herum diese Ecke.

Ich möchte über diesen zweiten Punkt eine Zeit lang zu schreiben, und Web-Log von mpt hat mich wirklich angeregt, voranzugehen und so zu tun. Also sind hier einige zufällige Gedanken. Das ist nicht ein organisierter Aufsatz.

Was ist eine gute Benutzerschnittstellen?

So weit kann ich von Benutzerposten auf Adressenlisten und Magazine/webzine-Rezensionen zu Ihrem durchschnittlichen technisch-aufgelegten ortsansässigen Internet erzählen, ein guter UI bedeutet, dass Sie viele Eigenschaften oder wechselweise, dass Sie viel todschicke Grafik haben, oder wechselweise, dass Ihr UI gerade wie derjenige ist, dass den der Kommentator in der Vergangenheit verwendet hat.

Ich habe keine Genie-Definition über “guten UI(Benutzerschnittstellen)“; ich bin nicht ein UI Experte. Aber klar, bedeutet es nicht todschicke Grafik oder Featuritis. Schließlich, wenn ich guten UI denke, denke ich an Klassiker von MacOS: sauber, einfach, konsequent, produktiv. Sie konzentrieren sich auf Ihre Arbeit oder Spiel, und der GUI ist nicht auf dem besten Wege. OS X fügt die coole Grafik auch hinzu, aber diejenigen sind nicht der Teil, der es einen guten UI macht, gerade der Teil, der es Spaß macht.

Ein anderes Element von gutem UI ist Aufmerksamkeit auf alle kleinen Details: Gute Fehlerdialoge, Tastatur-Navigation aufstellend, sich mit Wiederlay-Out befassend, wenn ein Fenster, Zugänglichkeit, Internationalisierung in der Größe angepasst wird. Gewöhnlich wissen die Menschen nicht, wie man diese Aspekte eines UI bewertet soll, wenn sie UI Entwerfer oder GUI Programmierer sind.

Ich nehme an, dass ich eine Hinweisen-Annäherung von Cliff an guten UI habe, und die echten UI Entwerfer lachen werden, aber na ja gut. Es ist ein anständiger heuristischer.;-)

So irgendwie, wenn ich über einen guten UI spreche, ist es eine vage Definition, was ich vorhabe.

Warum kostenlose Software kann guten UI tun

Werfen Sie einen Blick auf die Liste von Gründen, warum mpt sagt, dass kostenlose Software UIs schlecht herauskommt:

  • Nicht genug UI Entwerfer.
  • Zu viele Köche.
  • Entwerfer können Codeflecke nicht vorlegen.
  • Einfaches Kopieren Apfel und Microsoft.
  • Freiwillige wollen nur cooles Zeug tun.
  • Freiwillige tun nicht langweilige Details.
  • Maintainers stürzen ein und fügen lahme Einstellungen hinzu aber nicht erleiden flamewars.
  • Leute wollen ihre eigenen fünfzehn Pixel von UI.
  • Workarounds werden während des Devel-Prozesses eingeführt und nie entfernt.

Ich denke nicht, dass die meisten dieser Kugel-Punkte erklären, warum Benutzerschnittstellen der kostenlosen Software traditionell sucky sind. Hier ist, wie ich es erkläre: konsequent das Produzieren von Qualitätsbenutzerschnittstellen ist hart.

Lassen Sie mich das ein bisschen mehr erklären.;-)

Nehmen Sie alle obengenannten Kugel-Punkte, und stecken Sie “gutes Softwaredesign” in den Platz der “guten UI” ein. Bemerken Sie, dass die meisten Kugel-Punkte noch Sinn haben, und tatsächlich Sie wahrscheinlich finden werden, dass Sie die Argumente vorher gehört haben. Hier sind diejenigen, die sich noch wenden:

  • Den Entwerfer gibt es nicht genug Software, um die geleistete Arbeit zu bekommen.
  • Zu viele Köche verderben die Architektur des Codes.
  • Kostenlose Software nimmt nicht vor, nur kopiert.
  • Freiwillige wollen nur cooles Zeug tun.
  • Freiwillige tun nicht langweilige Details.   
  • Maintainers stürzen ein und fügen fehlgeleitete Eigenschaften hinzu, oder codieren aber nicht erleiden flamewars.
  • Leute wollen, dass ihre eigenen Eigenschaften darauf hinweisen.
  • Workarounds werden während des Devel-Prozesses eingeführt und nie entfernt.

Leute haben behauptet, dass gute Softwareentwickler umsonst nicht arbeiten werden, dass zu viele Köche das Design schrauben konnten, wird nicht diese kostenlose Software innovative Eigenschaften haben, dass keiner den langweiligen bugfixes tun wird, dass lahmer workarounds für immer bleiben wird, usw. usw. (Hmm – ist es sogar möglich, dass Bill Gates etwas von diesem Zeug kürzlich gesagt hat….).

Raten Sie, was – viele erfolgreiche Projekte der kostenlosen Software jene Probleme auf der Softwarearchitektur-Seite überwunden haben. Die Werkzeuge, um sie zu überwinden, sind nicht irgendetwas Mysteriöses: Eine Kultur von starken Leitungsarchitekten, die sich gute Richtlinien fortpflanzen und Dinge darauf bestehen, dass sie richtig getan werden; guter Prozess und das Programmfehler-Verfolgen; die kommerzielle Gesellschaften helfen die langweiligen Probleme herauszuschlagen; die Entdeckung guter Mitwirkender und derjenigen verrückten und unfähigen zu ignorieren.

Schauen Sie auf den Kern von Linux, Apachen, XFree86 was auch immer – alle diese erfolgreichen Projekte haben sich mit diesen Arten von Problemen im Bereich des Codes befasst, und es kann auch im Bereich von UI getan werden.

Guter UI ist nicht von der guten Software verschieden, Sie erreichen Qualitätsergebnisse durch den Qualitätsprozess und die Qualitätsleute, im Zeitablauf arbeitend.

Nur ein der Kugel-Punkte im Artikel von mpt sind zu UI einzigartig:

  • Entwerfer können nicht Codeflecke vorlegen.

Obwohl es einen Einfluss hat, denke ich nicht, dass dieser Kugel-Punkt allein sehr bedeutend ist. Erstens einmal ist es nicht immer wahr. Mannschaft-Führer Seth Nickell des GNOME UI ist berühmt für Einstieg in CVS, und Dinge zu ändern.;-) Für einen anderen, der auf der Beobachtung von Adressenlisten und spam vom Programmfehler-Spurenleser gestützt ist, haben wir viele Entwickler, die bereit sind, den menschlichen Schnittstelle-Richtlinien zu folgen, UI Programmfehler zu befestigen, und die UI Mannschaft um Vorschläge zu bitten. Schließlich haben wir UI Entwerfer, die für Gesellschaften arbeiten, die Entwickler zum GNOME beitragen, und sie normalerweise in der Lage sind, die Anstrengungen der Entwickler ihrer Gesellschaft zu führen.

(Es ist wahr, dass UI Entwerfer mehr Zeit verbringen müssen, andere überzeugend, Sachen zu machen, als sie zu in einem Eigentums-haben könnten, weil ich so Situation gesagt habe; aber es trifft auf jeden zu, der an einem Projekt der kostenlosen Software beteiligt ist. Einige Menschen haben die Persönlichkeit dafür, andere tun nicht.)

Wenn alle diese Punkte für die Softwareentwicklung ebenso gelten und Projekte der kostenlosen Software scheinen, große Software zu erzeugen, warum haben sie normalerweise schlechte Benutzerschnittstellen erzeugt? Wieder ist konsequent das Produzieren von Qualitätsbenutzerschnittstellen hart. Spezifisch:

  • Benutzerschnittstellen sind hart zu erfahren, wie man gut tun soll, sind sie ein legitimes Gebiet des Gutachtens, und Menschen haben nicht sogar die Grundkenntnisse in diesem Gebiet.
  • Benutzerschnittstelle-Programmierung ist hart zu erfahren, wie man gut tun soll. Auf Fragen für neuen GTK + Entwickler zu antworten, habe ich gesehen, dass Hunderte Menschen von dieselben Stadium durchgehen; solcher als das unangebrachte “hmm vielleicht kann ich meinen GUI” Bühne autoerzeugen, oder “oh, ich schließlich verstehe, was ‘Ereignis-gesteuert’ bedeutet!” Bühne.
  • Benutzerschnittstellen sind eine Menge von Arbeit, sogar nachdem Sie wissen, wie sie gut machen sollen, und während Gesellschaften Hunderte von Millionen am Kern von Linux geworfen haben, um sie vom Spielzeug bis Unternehmensklasse zu bewegen, haben sie nur angefangen, sich für den GUI zu interessieren.
  • Benutzerschnittstellen, die mit Windows oder OS X konkurrenzfähig sind, verlangen einen bestimmten Betrag der technischen Infrastruktur, um sie zu entwickeln. Die Verfügbarkeit von modernen GUI Werkzeugen wie GTK + 2 und Qt 3 (aber nicht Xt oder Tk) ist ein großer Schritt vorwärts. Wir haben noch eine lange Weise, auf dem Systemniveau zu gehen dennoch.[1]

Kurz gesagt, unser UI hat aus demselben Grund Version 1.0 des gesaugten Kerns von Linux gesaugt; es ist noch nicht reif. Das Schaffen eines guten UI ist eine Sache der Versammlung und effektiv zu organisieren, eine genug große und koordinierte Gruppe von Mitwirkenden für eine genug lange Zeitdauer.

Im GNOME-Projekt besteht mein Gefühl darin, dass wir eine Traktion auf dem harten Problem bekommen, eine gute Schnittstelle zu schaffen. Hier sind einige der spezifischen Gründe warum:

  • Wir haben mehrere gute UI Entwerfer mit respektierten Führungsrollen. Ich würde das teilweise Sun und Ximian zuschreiben, diesen Entwerfern für ihre Zeit bezahlend, und auch teilweise zum Einfluss von Eazel.
  • Entwickler haben das grundlegende UI-Verstehen, und können intelligente Argumente über eine UI Frage auf Adressenlisten oder in bugzilla vorbringen.
  • Programmierer haben erfahren, wie man GUI-Code effektiv zu entwerfen und schreiben.
  • Unsere Kultur fördert guten UI und entmutigt “crackrock Eigenschaften.” Egal wie nett Ihr Code, GNOME-Entwickler werden nicht beeindruckt sein, wenn der UI Trödel ist.

UI Programmfehler werden als Programmfehler in bugzilla verfolgt, sie werden befestigt, und Leute, die ihren UI nicht befestigen werden, werden unfähig betrachtet. UI Programmfehler sind gerade wie jedes andere Problem mit der Software; sie sind etwas, um gerichtet zu werden.

Keine Rakete-Wissenschaft hier. Es ist gerade eine Sache, um eine kritische Masse von Leuten zu schaffen, die “bekommen” was das richtige Ding zu tun ist, und haben die Mittel voranzugehen und es zu tun.

Vielleicht das letzte Jahr, besonders die letzten 6 Monate, habe ich den Sinn bekommen, dass wir um die Ecke gegangen sind, und Ihnen wirklich schließlich erzählen konnten, was am Schaffen eines GUI konkurrenzfähigen mit OS X oder Windows XP beteiligt wird. Und genug Mittel gibt es in den Platz, dass wir erkennbare Fortschritte auf einigen der schwierigeren Aspekte des Tuns machen. Aber es gibt noch einen Berg der restlichen Arbeit.

[1] Der Kern und unterliegenden OS oft bietet nicht die Eigenschaften an, Sie würden einen UI konkurrenzfähigen mit OS X oder Windows XP machen müssen – und die meisten der niedrigeren Ebene OS Programmierer, sogar die berühmten, verstehen sie nicht, was ein guter UI ist, oder wie man ein GUI Programm schreiben soll, auch sind keine Hilfe im Befestigen der Situation. Natürlich bin ich auch keine Hilfe im Befestigen des Kerns, so habe ich nicht vor, zu kritisieren, nur darauf hinzuweisen, dass wir einige Menschen mit dem Doppelgutachten oder besserer Kommunikation zwischen Projekten brauchen.

Helfen kommerzielle Gesellschaften oder schmerzen?

mpt behauptet in einem kurzen Beiseitesprechen, dass Eazel und Ximian das GNOME-Projekt verletzt haben. Obwohl Eazel und Ximian die bemerkenswerten GNOME-SPEZIFISCHEN Gesellschaften sind, sind die OS Verkäufer (Red Hat, Sun, Hewlett Packard, Mandrake, usw.) auch Hauptspieler gewesen. Hier gibt es eine kurze Tangente auf meiner persönlichen Ansicht, obwohl Sie frei sind, mich als beeinflusst zu betrachten, da ich am Red Hat arbeite.

Jeder Zulauf von kommerziellen Entwicklern hat einige Kosten gehabt. Mehrere Male haben wir eine große Masse von neuen Vollzeitentwicklern gehabt, die sich unserer vorhandenen Entwicklungsmannschaft anschließen. Wie vorausgesagt, durch Fred Brooks ist das auf Verzögerungen hinausgelaufen. Mit jeder neuen Gruppe haben wir erhöhen, und unseren Prozess formalisieren um Sachen zu machen, und lernen müssen, das Projekt zu mehr Teilnehmern zu erklettern; und die neuen Entwickler haben eine Weile gebracht, um sich aufzurichten.

Außerdem können Sie sicher einen schlechten UI auf kommerziellen Faktoren verantwortlich machen; zum Beispiel denke ich, dass Nautilus mit der Arbeitsfläche mehr integriert worden sein würde, wenn es das Flaggschiff-Produkt von Eazel nicht gewesen wäre, und es unglücklich ist, dass die Gesellschaft vor dem Erreichen der Optimierungsphase des Projektes verschwunden ist. (GNOME 2 hat größtenteils die beiden Probleme befestigt, btw.) Zur gleichen Zeit hat Eazel die Kultur der Brauchbarkeit zu GNOME eingeführt, und die große Mehrheit des Codes von Nautilus ist großes Zeug. So war der Nettobeitrag positiv.

IMO die Gesellschaften, die beteiligt am GNOME geworden sind, sind für unseren Erfolg entscheidend gewesen.

  • Die Beschäftigung von ganztägigen Mitwirkenden ist ziemlich nett. Es nimmt große/harte Änderungen leichter vor und hilft die langweiligen Bit der geleisteten Arbeit zu bekommen.
  • Der Prozess und die Infrastruktur, die wir entwickelt haben, um die Vielzahl von Vollzeitentwicklern zu behandeln, die am GNOME arbeiten, haben Kurzzeitverzögerungen verursacht, aber erweisen sich unschätzbar.
  • Eine riesige Menge von üblen Programmfehler-Lagen ist aus den Betriebssystemverkäufern entstanden.
  • UI Entwerfer und Benutzer-Tester.
  • Das Verstehen der Probleme, auf die von “echten” Weltkunden gestoßen wird.

Während Sie sicher zu screwups hinweisen können, der von Menschen verursacht ist, die für Gesellschaften arbeiten, würde ich mysteriöse korporative Tagesordnungen nicht verantwortlich machen; die meisten von ihnen sind die Art von screwups gewesen, den Sie bekommen, wenn Sie ein Softwareprojekt von 5 Menschen zu 300 Menschen bewegen. Unsere größten screwups sind durch zwischenmenschliche/individuelle Probleme verursacht worden, nicht von Gesellschaften; und im Großen und Ganzen ist GNOME viel mehr harmonisch als die Linux-Kernel Adressenliste oder legendärer Perl flamefests.

Das GNOME-Fundament ist lebenswichtig gewesen, um kommerzielle Beiträge auszunutzen, ohne sie die Integrität des Projektes in Verlegenheit bringen zu lassen. Die Fundament-Statuten legen klar die ganze Kontrolle in die Hände von individuellen GNOME-Projektmitgliedern, und ich erwarte, dass die meisten Mitglieder Freiwillige ziemlich viel für immer sind.

Viele andere Projekte wie der Linux kernel und Apache haben geschafft, aus enorm korporativen Beiträgen einen Nutzen zu ziehen, ohne technische Absichten zu opfern, und IMO das dasselbe geschieht für GNOME.

Die Frage von Einstellungen

Das meistenteils erwähnte Beispiel der schlechten kostenlosen Software UI ist “zu viele Vorzüge.” Das ist ziemlich viel mein Lieblingsärgernis; ich wurde angeregt, einer ganzen Fensterbetriebsleiter zu schreiben, auf die Voraussetzung, dass aktuelle Fensterbetriebsleiter unter der Vorzugüberlastung leiden.

Eine traditionelle Anwendung der kostenlosen Software ist konfigurierbar, so dass es die Vereinigung aller Eigenschaftenhat, dass jemanden jemals gesehen hat, in jeder gleichwertigen Anwendung auf jeder anderen historischen Plattform. Oder sogar konfigurierbar, um die Vereinigung aller Anwendungen zu sein, dass jemanden jemals auf jeder historischen Plattform gesehen hat (Emacs *cough *).

Tut es irgendetwas weh? Ja tut es. Es stellt sich heraus, dass Vorzüge Kosten haben. Natürlich haben einige Einstellungen auch wichtige Vorteile – und können entscheidende Schnittstelle-Eigenschaften sein. Aber jeder hat einen Preis, und Sie müssen an seinen Wert sorgfältig denken. Viele Benutzer und Entwickler verstehen das nicht, und enden mit vielen Kosten und wenig Wert für ihren Vorzugsdollar.

Zu viele Einstellungen bedeuten, dass Sie keinen von ihnen finden können. Während ich X-Chat jeden Tag verwende und dazu im Wesentlichen freundlich bin, muss ich mich dafür in diesem Paragrafen entscheiden und hoffen, dass der maintainer gutmütig ist. Es hat so viele Einstellungen, dass es ein ganzes Menü gibt, um gerade alle verschiedenen Vorzugsdialoge zu halten. Plus Sie kann Schrift es – in Ihrer Wahl von Sprachen. Wenn ich etwas über den X-Chat ändern will, brauche ich Äonen, um gerade den richtigen Knopf zu finden.

Einstellungen beschädigen wirklich wesentlich QA und der Prüfung. Als jemand, der Dutzende von Programmfehler-Berichten pro Tag liest, und gelegentlich ein Paar besticht, kann ich Ihnen sagen, dass es äußerst üblich ist, einen Programmfehler zu finden, der nur geschieht, wenn eine bestimmte Kombination von Optionen ermöglicht wird. Als ein Softwareentwickler kann ich Ihnen sagen, dass Einstellungen oft ziemlich wenig Codekompliziertheit ebenso hinzufügen; weiter können als andere, aber sogar einfache Einstellungen viel Kompliziertheit hinzufügen, wenn es 200 von ihnen gibt.

Ergebnis: Mehr Einstellungen bedeuten weniger echte Eigenschaften und mehr Programmfehler.

Einstellungen machen Integration und gut UI schwierig.

Eine der härtesten Lehren von GUI-Programmierung ist, dass hart codierendes Verhalten das Richtige Ding sein kann. Programmierer werden gelehrt, alles allgemein und ungeheuer flexibel zu machen. Das Problem besteht darin, dass je allgemeiner und ungeheuer flexibel Ihr UI ist, desto ähnlicher es in eine Programmiersprache ist. Lisp ist nicht eine gute Benutzerschnittstelle.

Der Punkt eines guten Programms soll etwas Spezifisches tun und es gut zu tun.

Das Ding besteht darin, dass jede UI Entscheidung von unzähligen anderen UI Entscheidungen abhängt. Ein wirklich einfaches Beispiel ist keybindings.  Auf UNIX/Linux ist es fast unmöglich, angemessene Verzug-Einbände für die globale Tischnavigation aufzupicken, weil sie alle Einbände kollidieren, den ein app verwendet. Auf Windows ist die Tischnavigation-Einbände fest eingebaut, und kein app verwendet sie, weil apps sicherlich wissen, welche Einbände zu vermeiden.

Wenn Ihr Programm keine Idee hat, was der Rest seiner Umgebung (oder sogar alle Teile von sich) ähnlich sein wird, dann kann es nicht angemessene Voreinstellung wirklich haben. Es kann gerade nicht “arbeiten”. Grundsätzlich an einem Punkt bedeutet die Existenz von Einstellungen, dass jeder ihre Arbeitsfläche konfigurieren muss; obwohl die idealen Einstellungen fakultativ sind und das Voreinstellung-Verhalten ohne Eingreifen angemessen ist. Hart-Codieren, was hart codiert werden kann, hat viel Wert.

Einstellungen halten Menschen davon ab, echte Programmfehler zu bestechen. Eine der mehr amüsanten Funktionen im GNU Emacs ist “Menübar, ermögliche-Zwischenablage”. Jetzt, dass KDE befestigt wird, ist Emacs grundsätzlich das letzte restliche X Anwendung, die auf Schneiden und Kleben besteht, dass nicht richtig arbeitet. So haben sie diese Funktion “Menübar, ermöglichen Zwischenablage”, die grundsätzlich bedeutet, “machen Sie bitte meine Kürzung und kleben Sie Arbeit richtig auf.” Warum ist das eine Auswahl? Ich nenne diese Art der Vorliebe die “Unbrechen meine Anwendung bitte” Knopf. Befestigen Sie gerade den app und werden Sie damit getan.

Einstellungen können viele Benutzer verwirren. Nehmen Sie das berühmte zu viel Uhr-Beispiel. Eine bedeutende Anzahl von Testthemen war so überrascht, 5 Wahlen der Uhr zu haben, die sie nicht ausrechnen konnten, wie man eine Uhr zu ihrer Tafel hinzufügt. Diese Kosten von Einstellungen werden von uns technische Typen unveränderlich unterschätzt.

Das einfachste Problem: Der Vorzugsdialog ist in der Größe begrenzt. Sie können viele große apps sehen, damit kämpfen, wohin man die Dinge stellt. Mozilla hat einen zillion prefs, die nicht sogar im Dialog sind.

So, wie entscheiden Sie sich welche Einstellungen zu haben?

Hörend, dass Einstellungen ein Preis haben, werden einige Menschen verärgert, dass wir dabei sind, jede Vorliebe zu entfernen, oder dass ihr bevorzugter weg ist, oder so etwas.

Treten für eine Minute zurück und denken an das Vorzugsproblem.

Für jedes Programm gibt es wörtlich eine unendliche Zahl von möglichen Einstellungen. Jeder hat einen Preis. Ein Programm mit unendlichen Einstellungen ist deshalb ungeheuer schlecht. Aber klar sind einige Einstellungen echt nützlich und wichtig. So ist der Job des UI Entwicklers, die nützliche Teilmenge von möglichen Einstellungen zu wählen.

Ein Argument, dass “Einstellungen gut sind” oder “Einstellungen schlecht sind”, ist klar unproduktiv. Nur ein Argument, das eine Linie dazwischen zieht, wenn eine Vorliebe bestehen sollte, und wenn es nicht sollte, ist ein bedeutungsvolles Argument, dass die wirkliche Entwickler-Entscheidungen presst.

Die traditionelle De-Facto-kostenlosen Software Linie zwischen wenn eine Vorliebe bestehen sollte, und wenn es nicht, ist “eine Vorliebe sollte bestehen, wenn jemanden es durchführt oder darum bittet.” Keiner ist dabei, diesen ernstlich zu verteidigen dennoch. Mindestens bittet keiner, der eine Anwendung aufrechterhalten und die bloße Zahl der nichtüberlappenden Eigenschaft/Vorliebe gesehen hat, dass Sie normalerweise erhalten, kann diesen ernst nehmen.

Gerade wie Linus die meisten Kernflecke an diesen Tagen zurückweist – aber wahrscheinlich hat mehr von ihnen in Linux 0.1 Zeitalter zurückgenommen – weil kostenlose Software reift, werden mehr Einstellungen zurückgewiesen.

So, wie wird die Entscheidung getroffen? Es ist ein Urteil-Anruf. Ich versuche einige Fragen wie diese durchzugehen:

  • Stellen Sie Fragen um herauszufinden, was wirklich jemanden verwanzt, der um eine Vorliebe bittet. Was ist die Verärgerung oder die Wirkungslosigkeit, die sie veranlassen zu fragen?
  • Kann die vorige Verärgerung gemacht werden, für alle Benutzer wegzugehen, ohne eine Vorliebe zu verlangen? Wenn so, tun Sie gerade das. Sie können an das große Bild des UI denken müssen, um sich zu belaufen, wie man es Gerade Arbeit macht.
  • Sind die Verärgerung oder die Wirkungslosigkeit wirklich bedeutend, oder kostete es sie das 1 zweite Tun von etwas, was Benutzer einmal pro Woche durchschnittlich tun? Wenn es gerade ein triviales Ding ist, dann kosten die Extraeigenschaft oder Vorliebe wahrscheinlich mehr, als es wert ist, selbst wenn Sie können nicht Dinge Gerade Arbeit machen.
  • Hat ein anderer OS diese Eigenschaft oder Vorliebe? Ich bin für Innovation, aber wenn keiner anderer etwas tut, sollten Sie sie zweimal zu Ende denken, um sicher zu sein, dass es nicht einen Grund gibt, werden sie nicht es tun. Wenn Sie passend bescheiden sind, werden Sie wahrscheinlich finden, dass viel Gedanke und Benutzer-Tester, in die zurzeit populären Plattformen eingetreten ist.
  • Der Hauptsache ist Grenzen festzulegen. Vorstellen Sie sich, dass Sie einige festgelegte Zahl von Ablagefächern für Einstellungen haben; ist die Vorliebe in der Frage, die sich es lohnt, eines von denen Ablagefächer “auszugeben”? Einmal ausgegeben, ist es hart ein Ablagefach wieder zu befreien. Merken Sie sich, dass Einstellungen einen Preis haben, und fordern, dass jede Vorliebe einen echten Wert hat.

Dem Benutzerdruck standhaltend

Als der Verfechter eines Pakets der kostenlosen Software, ist es wirklich hart, der dauernden Talsperre von Eigenschaft-Bitten standhalten, viele von denen sind “Bitten um Einstellungen,” häufig begleitet von Flecke.

Dutzende von GNOME und der Red-Hat-Programmfehler pro Tag lesend, finde ich, dass Benutzer um eine Vorliebe standardmäßig bitten. Wenn ein Benutzer meinen app FooBar verwendet und sie zu etwas kommen, was sie denken dumm ist – sagt app, dass ihre ganze E-Mail löscht – ist es sehr üblich, dass sie einen Programmfehler ablegen werden, der sagt, dass “es ein Auswahl geben sollte, um das Essen meiner ganzen E-Mail deaktivieren” statt eines Ausspruchs “Ihres craptastic Trödel-Haufens eines app unbrauchbar zu machen, hat meine E-Mail gegessen.” Leute nehmen gerade an, dass FooBar entworfen wurde, um Ihre E-Mail zu essen, und niedrig zu fragen, dass Sie sie diese Eigenschaft abdrehen lassen, die sie nicht mögen.

Kämpfen Sie sich mit der Versuchung! Lassen Sie die Wahrheit Ihre Benutzer zu – Sie sind ein Verlierer, FooBar saugt gerade und hat ihre E-Mail gegessen.;-) Diese Eigenschaft sollte befestigt, fakultativ nicht gemacht werden.

Ich habe einen Fleck gerade heute bekommen, weil der Fenster-Schattierungszeichentrickfilm Metacity ziemlich lahm aussehend ist, und außerdem den X Server ergreift, der auf das Abhalten des ganzen apps davon hinausläuft, während des Zeichentrickfilms neu zu malen. So hat der Fleck den Zeichentrickfilm fakultativ gemacht. Aber ist es nicht wahrscheinlich die richtige üble Lage. So weit ich zurzeit weiß, besteht das Problem darin, dass der Zeichentrickfilm lutscht. Gestützt auf diesem Info würde die Vorliebe ein Heftpflaster sein.

Linus hatte ein gutes Zitat darauf, in LWN in dieser Woche gefunden wurde. Das Argument auf der Linux-Kernliste war anscheinend darüber, ob einige schlecht durchgeführte IDE-Eigenschaft vor dem Schaffen einer neuen, besseren Ersatzdurchführung entfernt worden sein sollten. Linus sagt:

Die Tatsache ist, viele Dinge sind danach leichter zu befestigen. Besonders weil es die einzige Zeit ist, werden Sie genug motivierte Menschen finden, um sich darum zu sorgen. Wenn Sie eventuell alles Bevor-Tatsache befestigen müssten, würde nichts Grundsätzliches jemals einfach befestigt, weil die Menschen, die ein Ding befestigen können, sind nicht gewöhnlich dieselben Menschen, die einen anderen befestigen können.

Das ärgerliche Problem besteht hier darin, dass Sie manchmal eine vorübergehende Regression verursachen müssen, um Dinge befestigen zu lassen. Für den GNOME 2 zum Beispiel haben wir die Fensterliste (Aufgabe-Bar) applet befestigen wollen; unter dem GNOME 1.4 muss es über Einstellungen manuell nach Größen geordnet werden. Wir haben gewollt, dass es Gerade Gearbeitet hat. Aber es hat eine Weile genommen, um es Gerade Arbeit zu machen, und wir wurden regelmäßig während seiner Periode von Zerrissenheit geleuchtet, weil wir es völlig richtig nicht bekommen haben. Die meisten jener Flammen haben das Wiederhinzufügen aller manuellen nach Größen ordnenden Einstellungen gefordert. Aber das wäre falsch gewesen. (Jetzt was der applet größtenteils arbeitend ist, kann es sogar Sinn haben, eine “maximale Größe” Vorliebe als eine nützliche Eigenschaft hinzuzufügen.)

Bleiben Sie bei Ihren Pistolen und bringen Sie es in Ordnung.

Wie steht’s mit fortgeschrittenen Benutzern?

Als Joel darauf hinweist, dass fortgeschrittene Benutzer eine Million nutzlose Einstellungen nicht wollen, wenn Dinge gerade selbstständig arbeiten sollten. Der Punkt ruft wahr in meiner Erfahrung.

Wie steht’s mit fortgeschrittenen Benutzern?

Da Joel darauf hinweist, dass fortgeschrittene Benutzer eine Million nutzlose Einstellungen nicht wollen, wenn Dinge gerade selbstständig arbeiten sollten. Der Punkt ruft wahr in meiner Erfahrung.

Manchmal kann es einen guten Grund für eine Registerkarte Advanced oder das ähnliche geben, aber etwas so wohl weiter arbeite wie Nautilus 1 “Niveau-Benutzer” Konzept aus, wird nicht IMO und Registerkarten Advanced bevollmächtigt, muss nicht als Heftpflaster oder Entschuldigungen für dumme Designs verwendet werden.

(Das Menü Arbeitsfläche Einstellungen->; Advanced im aktuellen GNOME 2 Betas sind genau solch ein Heftpflaster, weil die neuen Bedienungsfelder die Funktionalität der alten nicht völlig ersetzt haben; dieses Menü muss sterben.)

Warum diese ganze Obsession mit Einstellungen irgendwie?

Ich finde dass, wenn Sie harter Kern sind, der darüber diszipliniert ist, guten Verzug zu haben, die Gerade Arbeit anstatt Einstellungen träge hinzuzufügen, der natürlich den gesamten UI in der richtigen Richtung führt. Probleme kommen über bugzilla oder Adressenlisten oder Benutzer herauf, der prüft, und Sie befestigen sie irgendwie anders als das Hinzufügen einer Einstellung, und das bedeutet, dass Sie an den richtigen UI und die richtige Weise denken müssen, Probleme zu befestigen.

Grundsätzlich, die Einstellungen wie ein Pflaster zu verwenden, ist die Wurzel von UI Übel. Es ist ein großes Geschäft und eine große Änderung in der Richtung für die kostenlose Software, dass GNOME dieses ausgerechnet hat.

Aber wie können Sie behaupten, dass GNOME 2 gut ist, fehlt es <fügen meine Lieblingseigenschaft hier ein>

Sicher, es braucht wahrscheinlich diese Eigenschaft.;-) Legen Sie einen Programmfehler-Bericht ab, fügen Sie das Usability-Schlüsselwort hinzu.

Ich würde ein Idiot sein, um zu behaupten, dass GNOME 2 vollkommen ist. Aber ich denke wirklich, dass in vielen Plätzen es eine klare Abfahrt von den traditionellen Hunderten von Einstellungen, so viele Knöpfe ist, wie, so viele Menüsachen passen wird, wie Vereinigung der ganzen möglichen kostenlosen Eigenschaft-Software UIs passen wird.[2]

Und wenn Sie diesen Programmfehler-Bericht ablegen, denken, dass der Verzug zu bitten, bestochen zu werden, anstatt um eine Vorliebe zu bitten.

[2]Einige Beispiele: Wir sind von einer tief verschachtelten Hierarchie gegangen, die 31 Bedienungsfelder zu vielleicht 10 oder 11 enthält (plus ein unglücklicher “Fortgeschrittener” Abladeplatz, aber es ist auf der Abschussliste). Schauen Sie auf die Einstellungen für den Schreibtisch-Führer in 1.4 gegen den neuen Arbeitsraum-Schalter. Überall im GNOME, überprüfen Sie die Tastatur-Navigation; die Tafel hat es, Dialoge werden mit der Gedächtniskunst geladen, Nautilus verwendet jetzt schlüsselschiffbare Standardprodukte, wo anwendbar sind. Eine kleine Tafel zwickt, um zu bemerken: Das Wort “applets” erscheint nicht im UI. Und so weiter. Es gibt Tausende von kleinen Kniffen, die warten, um bemerkt zu werden – sammeln sie alle. Wenn Sie besonders abenteuerlich sind, könnten Sie GNOME 2 mit Metacity als der Fensterbetriebsleiter aburteilen. Übrigens, wenn Sie anfangen, alle kleinen UI Details zu stoßen, und Probleme finden, melden sie.