david91x schrieb:
Da habe ich andere Erfahrungen. Zum Beispiel wenn es um die Auslagerungsdatei geht. Ich weiß noch damals als ich mal damit experimentiert hatte. Nur ein einziges Programm hatte mit einer kleineren Datei ein Problem: Skype.
Das versteh ich jetzt nicht. Das Paging macht doch immer das OS?
Von vorne rein einfach Cross entwickeln. So kann ich meine Software auch für Linux und Mac raus bringen, ohne großartig irgendwas anpassen zu müssen. Von Kunden zu erwarten sich erst mal irgend .NET Packet zu installieren, würde ich sowieso nicht.
Das .NET Paket oder sonst irgendwas brauchst du aber, wenn die Software auf dem nackten Betriebssystem läuft muss sie auch spezifisch für dieses Betriebssystem entwickelt sein.
Nur weil ein Programm Cross-Platform ist heißt das noch lange nicht, dass es keine Funktionen benutzt, die betriebssystemspezifisch sind. Sondern man hat eine Laufzeitumgebung wie eben die JVM, .NET/Mono oder den Python Interpreter die dafür sorgen, dass der Programmierer darauf nicht achten muss. Das Programm ist dann gegen die Laufzeitumgebung entwickelt, nicht gegen das OS, die Laufzeitumgebung wird aber für jede Plattform spezifisch entwickelt.
Natürlich kann man auch in C++ oder so Cross-Platform entwickeln, mit Bibliotheken wie wxWidgets etwa, so ein Programm muss dann aber trotzdem für jede Plattform jeweils einmal kompiliert werden und braucht dafür quasi manuelle Fallunterscheidungen. Die wird man ja nichtmal in Bytecodesprachen 100% los.
Nebenbei bemerkt fänd ich es gerade bei Cross-Platform-Applikationen nicht gerade lustig wenn die an 1000 Stellen ihr eigenes Süppchen kochen würden, nur um die Dummheiten der Windows Platform zu mitigieren.
Das ist das eigentliche Problem und der Grund dahinter: Programmierer sind Faul.
Programmierer mögen keine Redundanzen. Stell dir mal vor jedes Programm würde seinen eigenen Dialog für das Öffnen und Speichern von Dateien implementieren anstatt den Standard des OS zu nutzen - es müsste jede Implementierung auch einmal in den Speicher geladen werden. Eigentlich versucht man ja Standardbibliotheken für alles zu verwenden gegen die dann dynamisch gelinkt wird.
Davon ab, das Rad neu erfinden brauch man auch nicht.
Ich spare mir Zeit und nutze Open-Source. So kann ich meine Software sogar schon fast umsonst raus bringen. Die Leute können unbezahlt mitwirken, Forks machen, das ganze System läuft von allein.
Gerade Open-Source Software ist doch sehr modular aufgebaut (weil sie meist aus der Unix-Welt kommt). Was ich sage gilt ja eigentlich gerade für Unix während man unter Windows oftmals irgendwelche hässlichen, viel zu statischen Binärblobs vorgeworfen bekommt.
Aber klar, wenn ich als Unternehmen nur auf das Geld aus bin, mit möglichst geringsten Aufwand, sich nur an die Windows Menschen zu richten, ist klar dass da ständig Fehler passieren. Einfach eine Sache der Philosophie: Was will ich? Eine vernünftige Software raus bringen oder den großen Reibach?
Ich verstehe ja den Gedanken aber in der Praxis läuft es doch eigentlich genau anders herum - irgendeine Firma hält sich für so schlau und wichtig, dass sie alles selbst entwickelt. Am Ende hast du dann einen Wust an Overengineering. Zumindest in Deutschland ist das meistens so. Deine Aussage klingt für mich doch eher nach Not-invented-here-Syndrom als nach einer geeigneten Strategie den Mist im Windows Ökosystem besser zu machen. Wenn eine Plattform so nervig ist, dass man alles am besten an ihr vorbei entwickelt sollte man vielleicht von vorn herein eine andere Platform nutzen.