Und schon wieder nicht vernüntig. Also ich hoffe wirklich das du nicht so proggst und nicht testest. Das wäre nämlich nicht so doll.
Jetzt weiß ich wenigstens, was du meinst. Na gut, lass ich die Originalposter eben weg, wenn die Forensoftware zu blöd dazu ist ... ich mach es eigentlich überall so und bin halt davon ausgegangen, dass es funktioniert. Tut mir Leid.
Na ja, du sagst wieso Assembler benutzen. Aber unten beschwärst du dich über die heutige Art der meisten Progger. Ich gebe dir unten recht, und damit beantwortest du gleichzeitig die Frage, warum ASM.
Assembler macht die Nachteile von C noch schlimmer (kompliziert/komplex, schwierig, fehleranfällig, langsam). Damit sage ich nicht, dass man mit Assembler bessere Ergebnisse erzielt - denn das glaube ich nicht - noch, dass der Code übersichtlicher und damit gut wartbar ist.
Und ich stimme taljeth vollkommen zu; der kann sich besser ausdrücken als ich.
Übrigens: Es ist nachgewiesen, dass jemand, der noch die vorm PC gesessen hat, mit OS/2 bedeutend besser klarkam, als mit Windows (sowohl 3.1 als auch 95) und diejenigen, die mit OS/2 begonnen haben, nach wie vor die WPS (Workplace Shell) allem anderen vorziehen. Aber OS/2 ist so gut wie tot. Das mal ohne Kommentar.
ich frage mich immer wieder wie sich das denn äußert, also die instabilität oder die unsicherheit
Das liegt teilweise in der Architektur begraben - einerseits, wie ein Treiber oder Anwendungsprogramm, welches nicht zum System selbst gehört, fremde Prozesse beeinflussen kann, andererseits, inwiefern Programme Amok laufen dürfen. Je nachdem, wie dies in unvorhergesehener Weise möglich ist, ist das eine Stabilitätsfrage.
Beispiel: Windows 3.1 im Standard-Modus schaltet für DOS-Anwendungen in den Real-Mode des Prozessors zurück (80286) und somit den Speicherschutz effektiv aus. Dieses DOS-Programm kann sämtliche Windows-Daten seinerseits zerstören, ohne, dass Windows da etwas gegen tun kann. Das geht im V86-Modus natürlich nicht mehr.
Unsicherheit liegt in der Implementation begraben, denn durch schlampige Programmierung kann man auf Innereien eines Programmes zugreifen, die eigentlich verborgen bleiben sollten. Damit kann man Programme entweder zum Absturz bringen (die Grenze Instabilität/Unsicherheit ist also fließend) oder zu unvorhergesehenen Aktionen treiben (a.k.a. Daten klauen, Rechte kriegen, Daten bewusst zerstören).
(Nahezu) fehlerfreie Software läuft meist stabil und ist sicher, sofern der Unterbau (Bibliotheken, OS) entsprechend ausgerüstet ist. Windows 2000 ist in der Hinsicht schon ganz gut dabei. Allerdings gibt es auch da noch Probleme. Wenn ich einen TV-Kartentreiber installiere, friert mir gelegentlich das System ein - auch unter Windows 2000.
Die WinAPI ist eine binäre Programmierschnittstelle (also eher ein ABI) zu den Systemfunktionen und damit eine Architekturschwäche (bzw. je nach Auslegung auch eine Stärke): Einerseits weiß man, dass das Interface stabil bleibt und man es damit auch benutzen kann, ohne Gewissensbisse zu haben, andererseits ist es nicht erweiterungsfähig, ohne die Kompatiblität zu gefährden. Aus diesem Grund ist die Winapi auch so furchtbar komplex - und sei es nur, um Win16api-Programme auszuführen. Somit ist jede damalige Funktion vorhanden und die neue auch. Dann gibt es immer verschiedene Versionen für ANSI (1-Bit-Strings), DBCS (2-Bit-Strings unter Win16) und Unicode (2-Bit-Strings unter Win32). Dazu kommen dann noch die API-Funktionen für Win64, was an und für sich zu einer enormen Masse an Funktionen geführt hat, die man unterstützen muss.
Praktisch ist sie dagegen schon - man weiß, wie man sie aufruft und weiß damit alles, was man wissen muss. Wie sie funktioniert, bleibt verborgen. Ob das nun gut oder schlecht ist, muss jeder für sich entscheiden.
Ich schweife ab, aber wir sind ja hier im OT... :p
Gruß,
Svenska