Ich habe sowohl in Unix- als auch in Windows-Umgebungen programmiert. Meist habe ich in Unix gearbeitet, wo ich die Unix-Philosophie gelernt habe , die sich wie folgt zusammenfassen lässt
- Schreiben Sie Programme, die eines können und es gut machen.
- Schreiben Sie Programme, um zusammenzuarbeiten.
- Schreiben Sie Programme, um Textströme zu verarbeiten, da dies eine universelle Schnittstelle ist.
Es scheint einen deutlichen Unterschied in der Programmierkultur zwischen Unix- und Windows-Welten zu geben, zum Beispiel:
- GUI vs CLI
- Registry vs Konfigurationsdateien
- Viele Werkzeuge, die sich auf einen bestimmten Bedarf spezialisieren, im Vergleich zu einer Gruppe allgemeiner orthogonaler Werkzeuge, die kombiniert werden können
Gibt es eine Entsprechung zur "Unix-Philosophie" in der Windows-Welt? Was Unix-Programmierer von Windows lernen können oder sollten, wenn Sie auf die Programmierung in Windows umsteigen, beachten?
Ich möchte, dass sich die Antworten auf die Best Practices der Windows-Programmierung konzentrieren (und nicht auf einen Kampf zwischen Windows und Unix).
windows
philosophy
unix
Maglob
quelle
quelle
Antworten:
Es gibt eigentlich so etwas wie "Windows-Philosophie". Meist geht es um das Kompositionskonzept und die Teilentwurfsprogramme der Benutzeroberfläche für Benutzer, nicht für andere Programmierer.
Das bedeutet:
Hier ist eine gute Lektüre:
Bikulturalismus
Mit der Verbreitung von Windows wurde der Hacker-Ansatz für die Codierung immer ungünstiger. Zuerst wurden C / C ++ - Programme auf die komplexeste und verschleierte Weise geschrieben, so dass nur die härtesten Köpfe sie als eine Art Übergangsritus verstehen konnten. Unter Windows begannen sich die Dinge zu ändern und dieser "Codestil" ist nun sehr ungünstig. Ich bin mir nicht sicher, ob der direkte Einfluss von Windows bzw. das neue Verständnis der Codequalität darauf zurückzuführen ist, aber zumindest zeitnah stimmen sie überein.
quelle
Ich denke, die Unterschiede, die Sie in Ihrer Frage erkennen, betreffen eher die Benutzer dieser Systeme als die Programmierstile ihrer Entwickler. * Nix war lange Zeit das Gebiet des Programmierers oder des Computerenthusiasten. Es gab sehr wenig in der Art der "Gelegenheitsnutzung". Wobei Windows [home] Benutzerzahlen hat, die um Größenordnungen größer sind.
Gelegenheitsbenutzer möchten sich nicht ein Dutzend verschiedener Befehlszeilenflags merken, um ein Programm auszuführen. Sie wollen auf eine Schaltfläche klicken.
Gelegenheitsbenutzer möchten sich keine Gedanken über die Konfigurationsdateien ihres Systems machen oder darüber, wie sich Fluffy Kitties an ihre Lieblingskatzenrasse erinnert.
Gelegenheitsbenutzer verwenden in der Regel etwas, solange es das tut, was sie wollen, auch wenn es "bessere" Produkte gibt.
Ich denke, mein wichtigster Punkt hier ist ... Bei Windows geht es eher um das Erstellen für den Benutzer als um den Ersteller . Gehen Sie nicht gegen die langjährigen Paradigmen der Windows-Entwicklung vor. Verschmutzen Sie die Benutzer "Eigene Dateien" nicht mit Mist, und fügen Sie sich nicht ohne Grund in deren Startup ein.
Vielleicht von ähnlicher Bedeutung: Schreiben Sie eine Benutzerdokumentation.
quelle
Raymond Chens Blog The Old New Thing und sein gleichnamiges Buch bieten einen großartigen Einblick in die Philosophie, die Geschichte und die bewährten Methoden der nativen Windows-Programmierung.
quelle
Kompromisse eingehen und anpassen
Es ist überhaupt nicht das Beste, aber wenn Sie bereit sind, Zeit zu investieren und an manchen Orten unangenehme Entscheidungen zu treffen, gibt es wenig, was Sie nicht tun können. Wenn Ihnen das, was es gerade tut, nicht gefällt, können Sie es wahrscheinlich ändern. Es gibt nur wenige Orte, an denen es nur einen oder sogar den besten Weg gibt.
Gut genug für den Benutzer zu starten
Sehr wenige Dinge sind phänomenal, aber die meisten Dinge sind brauchbar. Unix tendiert dazu, in die Richtung zu gehen, in die nichts funktioniert, bis Sie es konfigurieren und Apple alles hübsch poliert, aber auf Kosten einiger Konfigurierbarkeit / Flexibilität.
Erwarten Sie einen Protokollunterstützungsschwanz
Windows-Benutzer aktualisieren nicht, nur weil es eine neuere Version gibt. Sie aktualisieren aufgrund einer Sicherheitsanfälligkeit oder eines Bugfixes nicht immer. Windows-Benutzer müssen häufig zu einem Upgrade gezwungen werden. Wenn Sie sie jedoch zu einem schnellen Upgrade zwingen, suchen sie nach alternativen Produkten
Benutzer haben eine breite Palette von Qualifikationsstufen
Unix hat aus Sicht eines gelegentlichen Heimanwenders eine hohe wahrgenommene Eintrittsbarriere auf technischer Ebene. Apple hatte ein sehr geringes erachtetes erforderliches Fähigkeitsniveau, ermutigt den Gelegenheitsbenutzer jedoch nicht, viel in der Art und Weise zu tun, wie sein Betriebssystem angepasst wird. Windows ist dazwischen. Der Einstieg in die Verwendung von Apple-Produkten ist nur geringfügig schwieriger als bei Apple-Produkten. Es stehen jedoch viele einfache Informationen zur Verfügung, die manchmal direkt bei der Installation zur Verfügung stehen, um eine gründliche Systemkonfiguration zu ändern. Dies führt zu einer eher zufälligen Fähigkeitsstufe in der Mittelschicht der Benutzer, denn wenn sie sicher genug sind, etwas auszuprobieren, besteht eine gute Chance, dass sie herausfinden, wie dies zu tun ist. Es lässt auch die schüchterneren Benutzer ohne Erfahrung in einigen Fällen, weil sie der Warnung, dass Dinge schief gehen, vorsichtig sind.
quelle
Windows wurde mit expliziter Unterstützung für den Common User Access (CUA) -Standard von IBM entwickelt , um die Anwendungsentwicklung zu steuern.
Dies war natürlich ein Versuch, dem Benutzer eine Mac-ähnliche Erfahrung zu bieten.
quelle
UNIX war vor langer Zeit für Programmierer und solche Leute gedacht, und Windows war immer für Benutzer, die nicht wissen, wie man Bash-Skripte schreibt. Daher sollten Sie sich in Windows um Benutzer kümmern, dh ein Tool für alle Aufgaben erstellen, bei denen sich der Benutzer nicht darum kümmern muss, wer wenige Programme für die Zusammenarbeit konfiguriert.
quelle
Ich bin nicht sicher, ob es eine Philosophie ist, aber meiner Meinung nach gibt es eine Art Denkdichte, die mit der Windows-Programmierung zusammenhängt. Es ist auch ein Gefühl der Überraschung, wie die Dinge manchmal funktionieren.
Ich würde Geduld empfehlen, wenn Sie sich für die Windows-Entwicklung interessieren und etwas mehr auf Ihre Annahmen achten.
quelle