Wenn man natürlich keie Ahnung hat und nach jedem Befehl ein mov rcx,0FFFFh loop $ schreibt (übertreib) dann schon. Aber ansonsten ist der ASM wirklich bei weitem besser.
Erstens programmier nichtmal ich so blöd und zweitens will ich auch schnell zu Ergebnissen kommen. Programmierer in der heutigen Zeit stehen nunmal unter enormem Zeitdruck - und da ist es schon praktisch, wenn man "Klick, Klick, Klick" und die einzelnen grafischen Elemente sind fertig. Dazu auch das Verhalten in bestimmten Situationen (wie war das mit dem Rad?) und fehlerfrei sollte das dann auch sein. Dann kann ich auch anfangen zu programmieren und brauch mich um den "Urschleim" nicht mehr kümmern.
Was interessiert heute noch Geschwindigkeit? Optimierung? Dann nimmt man eben 200 MHz mehr und die Sache ist erledigt. Wozu Gehirnschmalz investieren?
ASM ist besser, da stimme ich dir zu - aber es ist nicht praktikabel.
Mit Assembler würde ich keine Windows-Programme schreiben wollen (in C auch nicht, aber das kann ich ohnehin nicht) - in Delphi kein maschinennahen Code. Der Zweck ist alles.
Pascal ist für maschinennahen Code genauso geeignet wie C. Nur nicht so verbreitet.
Meinetwegen, Delphi ist dafür jedoch total ungeeignet. Unter Linux ist es inzwischen durch Kylix wenigstens meistens Quelltext-kompatibel.
Im Ernst..in Assembler zu programmieren ist nicht nur ineffizient, fehleranfaellig, unproduktiv, nicht nachhaltig, etc., sondern auch ausserordentlich gut fuer die Portierbarkeit. Wirklich gut. Vor allem, wenn man verschiedene Microprozessoren hat und die gleiche Applikation drauf laufen lassen will.
C ist keinen Deut besser, was Portierbarkeit angeht, nur dort hat man ein paar Krücken eingebaut, um den gleichen Quelltext (natürlich je nach Architektur mehrfach in der gleichen Datei vorhanden; #define & #ifdef) unter verschiedenen Architekturen unterschiedlich zu kompilieren. C ist nichtmal in der Lage, unter jedem C-Compiler vernünftig kompiliert zu werden. Ein Beispiel habe ich unten erwähnt.
Ich will in keiner Firma die in C Programmiert weil sie ASM nicht beherrscht.
Das kannst du nicht vermeiden, wenn du mal einen Job brauchst.
Dann liegt es aber nur an den programmieren alleine. Wenn sie zu schlecht für ASM sind, na bitte. Portierbar? Seit dem Apple auf Intel umgestiegen ist, ist das kein Thema mehr für mich. Und wenn ihr jetzt mit anderen sachen wie Mobile-Phones kommt: Wenn mein OS gut genug ist sorg ich dafür das Intel/AMD was mit mir in der Richtung machen bzw. die sorgen für mich.
Für ein einfaches "Anwendungs-Porgrammieren" ist Assembler die ungeeignetste Sprache überhaupt.
Denk mal nach, bevor du intelligente Sprüche abgibst - wie lange hat Linux gebraucht, um von Microsoft bemerkt zu werden? Wieviele Jahre?
Glaubst du wirklich, dein OS wird so toll, dass man -deswegen- Handys mit 64-Bit-AMD ausstattet? Du weißt schon, warum es verschiedene Prozessorarchitekturen gibt, oder? Stromverbrauch und Aufwand/Nutzen sind nur ein Beispiel.
Z.Z. gibt es kein vernünftiges großes OS. Linux/Unix Architektur ist der größte Rummel und Windows ist wie ein löchriger Käse (und Mac OS ist zu instabil). Bis ich mit meinem OS komme!!! Ja das ist mein Ernst und ich bin davon überzeugt.
Ich stimme dir im ersten Teil zu, aber glaubst du ernsthaft, du könntest
(a) Windows, Linux und Unix Konkurrenz machen?
(b) Hardwarehersteller dazu überreden, Hardwaretreiber für dein OS zu schreiben? Viele haben noch nichtmal mit Linux was am Hut.
(c) alle Anwendungsprogramme in allerbester Qualität und für jeden Geschmack selbst schreiben - oder große Firmen zu überreden, ihre Programme für dein OS zu schreiben/zu portieren?
(d) verlangen, dass Firmen in Assembler programmieren?
(e) besser sein, als Generationen von Programmierern vor dir? Ohne Studium? (Ironie)
Vergiss es. Überleg erstmal vorher.
Und wie taljeth schreibt, scheinen deine Gedanken auch nicht zwingend die allerbesten gewesen zu sein. Andere können soetwas nämlich auch, musst du wissen.
Ich finde diesen Krieg C/ASM/sonstwas so sinnlos ... C ist in sich Schrott, aber genauso verbreitet wie Windows - da kommt man nicht gegen an. Zudem ist jedes erwähnenswerte Betriebssystem (d.h. es läuft auf mehr als nur nem Dutzend PCs regelmäßig zur wirklichen Nutzung) in C geschrieben - auch darum kriegt man es nicht tot. Assembler macht die Situation ebenfalls nicht besser, sondern ist im Gegenteil dazu noch schwieriger/komplizierter.
Würde man eine vernünftige Programmiersprache benutzen, wäre ich gern bereit, 5% der Geschwindigkeit jedes Programms abzugeben, um Buffer-Overflows und andere derartige konzeptuelle Sicherheitsprobleme von vornherein zu vermeiden. Die Rechenleistung ist hoch genug, was man auch daran merkt, dass nicht mehr "sauber", sondern "schnell" programmiert wird. Windows ist ein Ergebnis davon, genauso wie viele andere Software (z.B. bei mir gerade Pinnacle Studio, was auf langsameren PCs nicht threadfest ist) nicht mehr ausreichend getestet werden kann.
Es wundert mich, dass man mit 4,77 MHz flüssig Videos und Musik abspielen kann (8088_Corruption) oder mit einem 286er grafisch ins Internet kommt (Arachne), aber Windows inzwischen mehrere hundert MHz voraussetzt, nur um überhaupt laufen zu können. Dass gewisse Software eine Rechentechnik voraussetzt, obwohl frühere Software mit gleichem / ähnlichem Funktionsumfang einen Bruchteil dessen benutzte.
Ein gutes Beispiel - und ich denke, da stimmen mir hier viele zu - sind Spiele. Waren es früher oft genügsame, schöne (fesselnde, interessante, tlws. lehrreiche) Spiele (z.B. Adventures), so sind es heute fordernde Spiele mit oftmals ähnlichem Inhalt (z.B. Baller-/Kriegsspiele) und wenig Story.
Gruß,
Svenska