In der Informatik bezieht sich Minimalismus auf die Anwendung minimalistischer Philosophien und Prinzipien beim Entwurf und Einsatz von Hard- und Software. Minimalismus bedeutet in diesem Sinne, Systeme zu entwerfen, die möglichst wenig Hardware- und Software-Ressourcen nutzen.
Geschichte [ edit ]
In den späten 1970er und frühen 1980er Jahren arbeiteten Programmierer im Rahmen relativ kostspieliger und begrenzter Ressourcen. 8 oder 16 Kilobyte RAM waren üblich; 64 Kilobyte wurden als große Menge betrachtet und waren der gesamte Adressraum, auf den die 8-Bit-CPUs während der ersten Generation von Personalcomputern vorherrschten. Das gebräuchlichste Speichermedium war die 5,25-Zoll-Diskette, die zwischen 88 und 170 KB hielt. Festplatten mit Kapazitäten von 5 bis 10 Megabyte kosten Tausende von Dollar.
Im Laufe der Zeit erweiterten die Speicherkapazitäten von Personalcomputern um Größenordnungen und Mainstream-Programmierer nutzten den zusätzlichen Speicher, um die Fähigkeiten ihrer Software zu erhöhen und die Entwicklung durch Verwendung höherer Sprachen zu erleichtern. Im Gegensatz dazu blieben die Systemanforderungen für Legacy-Software unverändert. Daher erscheinen selbst die aufwändigsten, funktionsreichen Programme vergangener Jahre im Vergleich zu aktueller Software minimalistisch. Viele dieser Programme werden heute als aufgegebenes Programm betrachtet.
Ein Beispiel für ein Programm, dessen Systemanforderungen ihm einst einen schweren Ruf verliehen haben, ist der Texteditor von GNU Emacs, der in einer Zeit, in der 8 MB viel RAM waren, das Backronym "Acht Megabytes und ständiges Austauschen" erhielt, [1] Heute verwendet sein hauptsächlich textuelles Buffer-basiertes Paradigma weit weniger Ressourcen als Desktop-Metapher-GUI-IDEs mit vergleichbaren Funktionen wie Eclipse oder Netbeans. [2] In einer Rede auf der Internationalen Lisp-Konferenz von 2002 wies Richard Stallman darauf hin, dass der Minimalismus in seiner Entwicklung Besorgnis erregte von GNU und Emacs, basierend auf seinen damaligen Erfahrungen mit Lisp und den Systemspezifikationen von Low-End-Minicomputern. [3]
Da die Fähigkeiten und Systemanforderungen gewöhnlicher Desktopsoftware und Betriebssysteme ständig zunahmen In den 1980er und 1990er Jahren, und als die Softwareentwicklung von Teams dominiert wurde, die sich für widersprüchliche, umständliche Softwareentwicklungsmethoden einsetzen, haben einige Entwickler den Minimalismus als Philosophie angenommen Hy und beschlossen, ihre Programme auf eine vorbestimmte Größe oder einen bestimmten Umfang zu beschränken. [4] Ein Fokus auf Software-Optimierung kann zu minimalistischer Software führen, da Programmierer die Anzahl der Operationen reduzieren, die ihr Programm ausführt, um die Ausführung zu beschleunigen. [5]
Im frühen 21. Jahrhundert haben neue Entwicklungen bei Computergeräten den Minimalismus in den Vordergrund gerückt. In der sogenannten Post-PC-Ära ist es nicht mehr notwendig, einen High-End-PC zu kaufen, der lediglich allgemeine Computeraufgaben übernimmt. [6] Mobile Computergeräte, wie Smartphones, Tablet-Computer, Netbooks und Plug-Computer, oft Sie verfügen über kleinere Speicherkapazitäten, weniger leistungsfähige Grafik-Subsysteme und langsamere Prozessoren im Vergleich zu den PCs, die sie ersetzen sollen. Darüber hinaus führt die starke Nutzung von Grafikeffekten wie Alpha-Blending dazu, dass der Akku bei diesen Geräten schneller entladen wird als bei einem "flachen Ui". [7] Die wachsende Beliebtheit dieser abgespeckten Geräte hat den Minimalismus zu einem wichtigen Designproblem gemacht. Googles Chrome-Browser und Chrome OS werden häufig als Beispiele für minimalistisches Design angeführt. [8][9] In Windows 8 hat Microsoft beschlossen, die grafikintensive Aero-Benutzeroberfläche zugunsten des "einfachen, eckigen" Metro-Erscheinungsbildes zu streichen, was erforderlich ist weniger Systemressourcen. Diese Änderung wurde zum Teil aufgrund des Aufstiegs kleinerer batteriebetriebener Geräte und der Notwendigkeit, Energie zu sparen, vorgenommen. [10][11][12] Version 7 von Apples iOS nimmt aus Gründen der Benutzererfahrung ähnliche Änderungen vor. [13]
Entwickler können erstellte Benutzeroberflächen erstellen Seien Sie so einfach wie möglich, indem Sie Schaltflächen und Dialogfelder entfernen, die den Benutzer möglicherweise verwirren können. Minimalismus wird manchmal in seiner bildenden Kunstbedeutung verwendet, insbesondere im industriellen Design des Hardwaregeräts oder des Softwarethemas.
Einige Entwickler haben versucht, Programme zu erstellen, um eine bestimmte Funktion in den wenigsten Codezeilen oder der kleinsten kompilierten ausführbaren Größe auf einer bestimmten Plattform auszuführen. [14][15] Einige Linux-Distributionen erwähnen Minimalismus als Ziel. Beispiele hierfür sind Alpine Linux, Arch Linux, Welpen-Linux, Bodhi-Linux, CrunchBang-Linux, Dynebolic [16] und Damn Small Linux. Die frühe Entwicklung des Unix-Systems fand auf Hardware mit geringer Leistung statt, und Dennis Ritchie und Ken Thompson waren der Meinung, dass diese Einschränkung zur "Eleganz des Systems" des Systems beitrug. [17]
Programming Sprachdesigner können minimale Programmiersprachen erstellen, indem sie auf syntaktischen Zucker und umfangreiche Bibliotheksfunktionen verzichten. Solche Sprachen können Turing-Tarpits sein, weil sie keine Standardunterstützung für allgemeine Programmieraufgaben bieten. Das Erstellen eines minimalen Lisp-Interpreters ist eine häufige Lernaufgabe für Informatik-Studenten. [18] Der von Alonzo Church entwickelte Lambda-Kalkül ist eine minimale Programmiersprache, die nur Funktionsdefinitionen und Funktionsanwendungen verwendet. [19][20] Schema, [21][22] Forth , [23] und Go [24][25] werden als Beispiele für praktische Minimalprogrammiersprachen angeführt.
Das Programmier-Hobby von Code Golf führt zu minimalistischer Software, [26] . Dies sind jedoch normalerweise Übungen oder Codedichtung, nicht verwendbare Anwendungssoftware.
John Millar Carroll wies in seinem Buch Minimalism Beyond the Nürnberg Funnel darauf hin, dass der Einsatz von Minimalismus zu "sofort verwendbaren" Geräten wie Videospielen, Geldautomaten, Wahlautomaten und Mall-Kiosks mit führt wenig oder keine Lernkurve, bei der der Benutzer keine Handbücher lesen muss. [27] Forscher der Benutzerschnittstelle haben Experimente durchgeführt, in denen vorgeschlagen wurde, dass Minimalismus, der durch die Konstruktionsprinzipien von Sparsamkeit und Transparenz veranschaulicht wird, Effizienz und Lernfähigkeit unterstützt. [28]
Minimalismus ist implizit in den Unix-Philosophien "Alles ist ein Textstrom" und "Eine Sache machen und gut machen", obwohl moderne Unix / Linux-Distributionen sich nicht so streng an diese Philosophie halten. [29]
Siehe auch [ edit ]
Referenzen [ edit ]
- ^ Ubuntu-Linux-Bibel: Mit Ubuntu 10.04 LTS .
- . Fünf Gründe, warum Emacs immer besser sein wird. "
- ^ [19659038] "Meine Lisp-Erfahrungen und die Entwicklung von GNU Emacs".
... Ich wollte die absolut minimale Lisp-Implementierung ermöglichen. Die Größe der Programme war ein großes Problem. Es gab damals Leute, 1985, die Maschinen mit einem Megabyte ohne virtuellen Speicher hatten. Sie wollten GNU Emacs nutzen können. Das bedeutete, ich musste das Programm so klein wie möglich halten. Zum Beispiel war das einzige Schleifenkonstrukt damals und was extrem einfach war. Es gab keine Möglichkeit, die "while" -Anweisung zu durchbrechen. Sie mussten lediglich einen catch und einen throw ausführen oder eine Variable testen, die die Schleife ausführte. Das zeigt, wie weit ich mich bemüht habe, die Dinge klein zu halten. Wir hatten nicht "caar" und "cadr" und so weiter. "Ausdrücken alles Mögliche" war der Geist von GNU Emacs, dem Geist von Emacs Lisp, von Anfang an.
- "dwm - dynamischer Fenstermanager".
- wurde ne mit geschrieben sparsame Ressourcennutzung als grundlegendes Ziel.
Es wurden alle möglichen Anstrengungen unternommen, um die CPU-Zeit zu reduzieren
Speicher, die Anzahl der Systemaufrufe und die Anzahl der ausgegebenen Zeichen
zum Terminal. - ne Infoseite - ^ Strickland, Jonathan. "HowStuffWorks" Was ist der Unterschied zwischen Notebooks, Netbooks und Ultra-Mobi "". Computer.howstuffworks.com . 2013-07-08 .
- ^ "5 Möglichkeiten zur Verbesserung der Akkulaufzeit in Ihrer App".
- ^ "Google Chrome Cr-48, Paragon von minimalistischem Design ". PC Magazine . 2010-12-13.
- ^ Pilcher, Pat (2009-07-13). "Kampf der Browser - Welcher ist der Meister des Webs?" 19459040 The Independent . London
- ^ Chang, Alexandra (2012-05-21). "Microsoft Drops Aero Glass 'Benutzeroberfläche in Windows 8 | Gadget Lab". Wired.com . 2013-07-08 .
- ^ McCracken, Harry (2012-05-22). "Windows Aero: Warum bin ich froh, dass es tot ist | TIME.com". Techland.time.com . Abgerufen 2013-07-08 .
- ^ Im Jahr 2009 waren Desktops 44% des Weltmarktes und Laptops 56%. Nur drei Jahre später sind über 61% der verkauften PCs Laptops, und der Trend beschleunigt sich - weltweit werden alle verkauften Windows-PCs gemessen. Unter den Verbrauchern in den USA, die in diesem Jahr einen PC kaufen, werden mehr als 76% Laptops kaufen - die absolute Anzahl aller verkauften US-Desktops wird unter der Anzahl der Tablets im Jahr 2012 liegen!
- ^ Tötet Skeuomorphismus in iOS 7 ".
- ^ " Crafting a Tiny Mach-O Executable ".
- ^ " Minimalist Cocoa Programming ".
- ^ " Umweltfreundlich ".
Dieses Betriebssystem ist für Pentium2-Prozessoren mit 256 MB RAM ausgelegt. Es ist nicht einmal eine Festplatte erforderlich. Entfesseln Sie das volle Potenzial von Computern auch mit einem gebrauchten PC.
- ^ "The Art of Unix Programming".
Ein 1974 in Communications in der ACM veröffentlichter Artikel brachte Unix zum ersten Mal in die Öffentlichkeit. In diesem Artikel beschrieben die Autoren das beispiellos einfache Design von Unix, das über 600 Unix-Installationen berichtet wurde. Alle befanden sich auf Maschinen, die sogar nach den Maßstäben dieses Tages unter Strom standen, aber (wie Ritchie und Thompson schrieb) "erzwang nicht nur die Wirtschaftlichkeit, sondern auch eine gewisse Eleganz des Designs."
- ^ "Build Your Own Lisp." ".
- ^ " Understanding Computation ".
- ^ " 7 Zeilen Code, 3 Minuten: Implementieren einer Programmiersprache von Grund auf ".
- ^ " The Evolution of Lisp " (PDF) .
Der erste Bericht über Schema [Sussman, 1975b] beschreibt eine sehr freie Sprache mit einem Minimum an primitiven Konstrukten, eines pro Konzept. (Warum zwei nehmen, wenn einer das tun wird?)
- ^ http://community.schemewiki.org/?scheme-faq-general.
Schema ist ein Dialekt von Lisp, der die konzeptuelle Eleganz und Einfachheit hervorhebt.
- ^ "Vordenker der Programmierung: Gespräche mit den Schöpfern der wichtigsten Programmiersprachen".
Forth ist eine Computersprache mit minimaler Syntax.
- ^ "Go".
Go ist eine Open-Source-Programmiersprache, mit der einfache, zuverlässige und effiziente Software einfach erstellt werden kann.
- ^ "Interview mit Ken Thompson".
... Wir begannen mit der Idee, dass wir uns alle drei in die einzelnen Funktionen der Sprache einreden müssten, sodass aus irgendeinem Grund kein überflüssiger Müll in die Sprache gelegt wurde.
- " Wik Wiki Ein Wiki mit 1287 Zeichen von PHP ".
- ^ John Millar Carroll (1998). Minimalismus jenseits des Nürnberger Trichters . Cambridge, Mass .: MIT Press. ISBN 0-262-03249-X . 2007-11-21 .
- ^ Wren, C .; Reynolds, C. (2004). "Minimalismus in Ubiquitous Interface Design" (PDF) . Personal and Ubiquitous Computing . Springer 8 (5): 370–373. doi: 10.1007 / s00779-004-0299-2 . 2008-07-29 .
- ^ "Uzbl - Webinterface-Tools, die sich an die Unix-Philosophie halten".
Die allgemeine Idee ist, dass Uzbl standardmäßig sehr nackte Knochen ist.
No comments:
Post a Comment