Was bedeutet Jamie Zawinskis Gesetz?


Antworten:


39

Alle bisherigen Antworten (und Kommentare) scheinen sich ausschließlich auf die erste Hälfte der Aussage zu konzentrieren und machen sie zu einem Kommentar über "Aufblähen", wenn die wichtige Hälfte die zweite Hälfte ist: Die Programme, die nicht so erweitert werden können, werden durch solche ersetzt welches kann.

Hier geht es nicht um Software Bloat, sondern um die Realitäten des Marktes. Die Leute mögen sagen, sie wollen ein einfaches Produkt, aber wenn man sich die tatsächliche Verwendung ansieht, werden Dinge verwendet, die es den Benutzern ermöglichen, mehr zu tun, und sie ersetzen letztendlich weniger leistungsfähige Werkzeuge.

Ein Teil des Problems ist, dass "einfach" ein verwirrendes Wort ist. Wie "spalten" kann es zwei fast gegensätzliche Dinge bedeuten. Was die Menschen wollen, vereinfacht komplexe Aufgaben. Das ist "das Gute, das einfach ist", und es erfordert viel Komplexität, um es richtig zu machen. Einige Leute interpretieren es jedoch so, dass die Leute etwas Vereinfachtes oder Minimalistisches wollen. Dieses Konzept mag eine gewisse Nischenattraktivität haben, aber im Großen und Ganzen ist es die falsche Art von "Einfach", auf die man sich beim Entwerfen eines Produkts konzentriert. Egal wie gut Ihre Arbeit ist, die neuen Feature-Anfragen kommen immer wieder.

Zum Beispiel gibt es das Programm, an dem ich bei der Arbeit arbeite. Sie haben wahrscheinlich noch nie davon gehört, aber wir sind Marktführer in einer spezialisierten Branche: der Mediensteuerung. In unserem Programm läuft höchstwahrscheinlich Ihr Lieblingsfernseh- und / oder Radiosender. Die Kunden lieben es, sie sagen, es ist so viel besser als alles andere, mit dem sie gearbeitet haben.

Es ist auch enorm . Die EXE-Datei hat eine Größe von über 65 MB und umfasst rund 4 Millionen Codezeilen. Unterstützt wird sie von einer Datenbank mit über 150 Tabellen, die in mehr als einem Jahrzehnt Arbeit erstellt wurde. Und doch scheint es, als ob jedes Mal, wenn wir versuchen, es auf einer neuen Station oder in einem neuen Netzwerk zu installieren, ein oder zwei Dinge, die für den Arbeitsablauf von entscheidender Bedeutung sind, für die wir keine Unterstützung haben. Am Ende werden die neuen Funktionen hinzugefügt, da die Kunden sonst nicht von dem System wechseln möchten, an das sie bereits gewöhnt sind. Und lassen Sie mich wiederholen, die Kunden lieben es.


20
Und schließlich wird die aufgeblähte Software durch einen neuen Konkurrenten ersetzt, der "schlank und gemein" ist und der nacheinander die erforderlichen Funktionen hinzufügt, bis er alle Funktionen aufweist, die sein Vorgänger hatte ...
jhonkola

Hm, ich dachte, dieser Teil würde von Zawinskis Aussage abgedeckt: "Als nächstes entwarfen und implementierten Terry Weissman und ich die Netscape Mail- und News-Clients, Versionen 2.0 bis 3.0. Dies war unser Beitrag zum Beweis des Gesetzes über Software-Envelopment ", aber jetzt, wo ich es noch einmal gelesen habe, ist es nicht so klar.
Yannis

1
@jhonkola Wenn der Code das tut, was die Kunden brauchen und nicht viel mehr als das, ist er nicht aufgebläht.

1
@ ThorbjørnRavnAndersen Ich stimme zu, mein Punkt war eher, dass mit zunehmender Beliebtheit von Software (und damit auch Benutzern / Kunden) die Anzahl der von den Benutzern benötigten und eventuell implementierten Funktionen zunehmen wird.
Jhonkola

1
Wenn Ihre Interpretation korrekt ist, war Zawinskis Kommentar prahlerisch und nicht selbstironisch. Ich finde das schwer zu glauben.
CTN

12

Sie müssen verstehen, dass dies vor langer Zeit geschah und dass es zu diesem Zeitpunkt noch kein Mainstream war, dass Computer für einen bestimmten Benutzer mehr als ein Programm gleichzeitig ausführen konnten. DOS für Personal Computer (und möglicherweise Windows 3 oben) und zeichenbasierte Terminals für Unix-Benutzer (nur wenige hatten X11).

Dies bedeutet , dass , um zu überprüfen , ob Sie eine E - Mail bekommen hatten man mußte verlassen , was Sie gerade taten, starten Sie das Mail - Programm, E - Mail lesen, beendet das E - Mail - Programm und starten Sie Ihr altes Programm. Ich denke, Sie können sehen, dass Sie all das vermeiden könnten, wenn Sie Ihre E-Mails mit Ihrem aktuellen Programm lesen könnten.

Wenn Ihr aktuelles Programm Ihre E-Mail nicht lesen konnte, waren Sie dazu geneigt, dies zu tun (denken Sie daran, dass dies MIT-Studenten waren) oder zu einem anderen Programm zu wechseln, das dies könnte.

Heutzutage ist das schwer vorstellbar, aber Sie können sich ein Bild davon machen, indem Sie sich auf ein einziges Browserfenster beschränken - keine Tabs, keine zusätzlichen Fenster - und vielleicht sogar keine Lesezeichen verwenden.


9

Wie alle anderen bereits erwähnt haben, handelt es sich bei dem "Gesetz" um eine humorvolle Beobachtung von Software-Bloat und Score-Creep , die der zehnten Regel von Greenspun sehr ähnlich ist :

Jedes ausreichend komplizierte C- oder Fortran-Programm enthält eine ad-hoc, informell spezifizierte, fehlerbehaftete, langsame Implementierung der Hälfte von Common Lisp.

Das Gesetz spiegelt Zawinskis Arbeit mit dem Netscape-Browser und später mit Netscape Mail & News wider, wie hier von ihm selbst beschrieben:

Als Nächstes entwarf ich die Netscape Mail- und News-Clients, Versionen 2.0 bis 3.0, und Terry Weissman und ich implementierten sie. Dies war unser Beitrag zum Beweis des Gesetzes über die Softwareentwicklung :

"Jedes Programm versucht zu erweitern, bis es E-Mails lesen kann. Die Programme, die nicht so erweitert werden können, werden durch solche ersetzt, die dies können."

Der Netscape-Browser, zu der Zeit der beliebteste Browser, wurde oft als mit zu vielen Funktionen für sich selbst kritisiert. Wenn ich mich nicht schrecklich irre, war er der letzte (beliebte) Browser, der zwei Rendering-Engines, Gecko und Trident, unterstützte. Zum Beispiel nennt Ben Goodger Netscape's Bloat als einen der (vielen) Gründe, die zur Erstellung von Firefox 1 geführt haben :

Mozillas UI-Dysfunktion

Da der größte Teil des Benutzeroberflächendesigns für die Netscape-Produkte von Mitarbeitern von Netscape ausgeführt wurde, die an die Netcenter-Anforderungen angepasst waren, litt die Mozilla-Benutzeroberfläche darunter. Anstatt ein sauberer Kern zu sein, auf dem Netscape ein Produkt aufbauen kann, das seinen Bedürfnissen entspricht, hat sich die Mozilla-Suite nie richtig angefühlt. Es gab viele umständliche UI-Konstrukte, die nur von Overlays im privaten Quell-Repository von Netscape ausgefüllt wurden - dem "kommerziellen Baum".

Zu dem Zeitpunkt, als das Projekt von über hundert Ingenieuren in verschiedenen, manchmal schlecht vernetzten Abteilungen der CPD entwickelt wurde, wurde diese Funktionsstörung noch verstärkt. Netscape war in den vergangenen Jahren rasant gewachsen, und aufgrund der uneinheitlichen Einstellung von Stabingenieuren mit Fähigkeiten, die darauf hindeuten würden, dass sie mehr Unterstützung von anderen benötigten, verfügte das Feature-Design und die Implementierung über eine viel zu große Autonomie. Die Unterstützung für die Benutzererfahrung war spärlich und infolgedessen blähte sich die Anwendung schnell auf.

1 Aus einer archivierten Version von Ben Goodgers inzwischen eingestelltem Blog.


5
Ahh ... Das erklärt Emacs :-)
Mittwoch,

9
@ Jwernerny nichts erklärt Emacs ...
Yannis

4
@MichaelKohne - Aus dem gleichen Grund dachte ich, Emacs sei eine frühe nicht-grafische Implementierung der Matrix.
Martin Beckett

2
Außerdem habe ich festgestellt, dass Greenspuns zehnte Regel eine Beobachtung ist, die Sie im Wesentlichen in ausreichend komplexen Programmen finden, die Sie zur Laufzeit in der Lage sein müssen, Code bereitzustellen.

2
@jwernerny Ich glaube, es gibt eine ganze Seite, die darüber spricht: jwz.org/doc/lemacs.html
Michael

4

Es ist kein wirkliches Gesetz, es ist ein satirischer Kommentar darüber, wie Softwareprojekte (wenn sie nicht richtig verwaltet werden) so umfangreich und kompliziert werden können, dass sie irgendwann einen E-Mail-Reader enthalten (auch wenn dies nichts mit dem ursprünglichen Zweck des Projekts zu tun hat ). . Ein Manager, den ich einmal hatte, mochte einen ähnlichen Satz: "Jedes ausreichend komplizierte System enthält eine halbherzige LISP-Implementierung."


2
aka "Greenspuns zehnte Regel."
Jerry Coffin

1
@ JerryCoffin: Danke, ich wusste den Namen nicht! en.wikipedia.org/wiki/Greenspun%27s_tenth_rule
FrustratedWithFormsDesigner

3

Es handelt sich um einen Kommentar dazu, wie einige Softwareprojekte immer weiter expandieren und immer mehr Funktionen hinzufügen.

Viele Projekte scheinen nicht in der Lage zu sein, Features hinzuzufügen, egal ob sie benötigt werden oder nicht.

Eine logische Schlussfolgerung ist, dass jede Software am Ende Mail verschickt.

Siehe auch Scope Creep .


Mail-Kommunikation ist / die / Möglichkeit, von Software an einigen Stellen Benachrichtigungen an Menschen zu senden.
Paul Nathan

Das Senden von E-Mails ist sinnvoller als das Lesen. Mein Router kann mir von Zeit zu Zeit seine Protokolle senden, aber er hat keinen Grund, E-Mails anzunehmen. Ebenso senden viele Android-Programme Bilder und ähnliches per E-Mail zum Teilen.
Jeanne Pindar

-1

Ich sehe mindestens drei Möglichkeiten, um es anzuzeigen.

Eine besteht darin, das Lesen von E-Mails per se zu ignorieren und es als Aussage zu betrachten, dass Menschen Produkte mit der Flexibilität zu mögen scheinen, sich fast jeder Aufgabe zuzuwenden, unabhängig davon, wie wenig dies mit der ursprünglichen Absicht des Tools zu tun haben mag. Wenn wir es so aussehen, wie Photoshop ein Produkt , das nicht unterstützt Mail - Lesen ist keine Anomalie , weil seine Plug-in - Architektur ist flexibel genug , dass es könnte Mail Lesung unterstützen, obwohl (soweit ich weiß) nicht ein solches Plug-in existiert. Dieser Standpunkt könnte klarer, aber weniger ursprünglich zusammengefasst werden, da "Flexibilität die Spezialisierung übertrifft".

Die zweite Sichtweise wäre, dass Jamie Zawinski einen so engen Fokus hat, dass er die Produkte wie Photoshop, PowerPoint, die meisten Spiele usw., die es schon seit Jahren gibt, einfach ignoriert, das Lesen von E-Mails nicht unterstützt und nicht mehr weiterarbeitet. Es scheint durch irgendetwas anderes ersetzt zu werden, das es auch tut.

Der dritte Punkt wäre ein Kontrapunkt zum zweiten, da er besagt, dass die Integration zwischen den Produkten im Wesentlichen so weit fortgeschritten ist, dass das effektive Lesen von E-Mails in alles integriert ist, da die meisten Leute jetzt alle einen E-Mail-Reader im Hintergrund haben Die Zeit und die Möglichkeit, schnell / einfach genug darauf umzuschalten, auszuschneiden und mit irgendetwas anderem einzufügen, dass das kleine Detail, dass der Mail-Reader als separate Anwendung verpackt ist, irrelevant geworden ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.