Hi Toastbrot,
ich halte die Geschwindigkeitsvergleiche für eher unseriös. Programmabläufe können nicht auf einfache weise verglichen werden.
1.
Programme in Maschienensprache sind - wie C bzw. dessen Ableger - sog. Compiler. Das bedeutet, der menschliche Programmierer bzw. die menschlichen Programmierer schreiben Code mit der vorgegebenen Syntax. Menschen können diesen Code lesen.
Soll das Programm eingesetzt werden, wird es "compiliert". Der Compiler setzt den Code, sofern dieser fehlerfrei ist, in den Binären Steuer- oder Maschienenode um. Hierbei werden z.B. auch alle Anmerkungen, die dem Programmierer helfen, gelöscht.
Als Ergebnis spricht eine kleinere Binärdatei die Hardware direkt an undsetzt die logischen Befehle um, die entsprechend durch die logischen Bausteine in den Prozessoren umgesetzt werden.
2.
Geschwindigkeitsbestimmend ist die Laufzeitumgebung, d.h., welche Einbindungen in Hard- und Software bestehen.
3.
Dabei ist v.a.auch der Speicher bzw. die entspr. Adressierung geschwindigkeitsbestimmend, die solange rasch abläuft, wie das schnelle RAM genutzt werden kann. Auch die Speichergröße der CPUs ist entscheidend.
4.
Welche Möglichkeiten bietet eine Programmiersprache. C bzw. C++ wurden und werden permanent weiterentwickelt und um neue Befehlssätze, beispielsweise bei der Grafischen Ausgabe, erweitert. Diese Befehlsbibliotheken werden in jedem C++ 0rogramm im Programmheader mit "include" eingebunden. Das stellt aber auch sicher, dass immer nur der bzw. die benötigten Befehlssätze in den Speicher geladen werden. Somit kann hier bei eleganter Programmierung ebenfalls ein Geschwindigkeitsvorteil erreicht werden.
5.
C++ ist sehr portabel: Sämtliche Windowversionen, DOS-Versionen, BIOS-Steuerprogramme, alle Linuxvarianten sowie auch die Mac-OS laufen auf Grundlage von C++ (Mac Betriebssysteme sind eigentlich geschickt auf die Hardware zugeschnittene Linux-Derivate).
6.
Assembler ist eine wenig weiterentwickelte Programmiersprache. Folglich sind die Möglichkeiten auch geringer. Wenn diese zur Lösung eines Problems ausreichen sind, mag durchaus ein rascher Programmablauf gewähleistet sein. Allerdings würde heute ein Assemblerprogramm wohl in der Umgebung eines der oben genannten Betriebssysteme emuliert werden, was auch zeigt, wie leistungsfähig die C-Umgebungen anpassbar sind.
7.
Mit der Änderung der Hardware, v.a. der Entwicklung von Mehrkernprozessoren und Bit-Architektur könnenn lediglich entsprechend weiterentwickelte Programme diese Möglichkeite ausschöpfen.
8.
Je portabler eine Programmiersprache ist, desto weniger Geschwindigkeitsoptimiert dürfte diese ablaufen, aber wer möchte heute noch für jede neue Hardware lediglich mit einem einzigen, vorgegebenen Programm arbeiten(?).
javaScript von Oracle ist sehr eng an C++ angelehnt, stellt jedoch Programme nicht nur für PCs, sondern auch für Handies, Flatscreens oder die KFZ-Elektronik bereit.
9.
Am schnellsten ist hardwarebezogene Programmierung. Theoretisch lässt sich ein Betriebssystem komplett und fest auf Chips programmieren. Das würde sehr schnell ablaufen, sich jedoch nur bedingt oder gar nicht mehr anpassen oder aktualisieren lassen. Ein einfaches Beispiel hierfür ist ein Taschenrechner - schaue einmal auf wikipedia unter "Halbaddierer" oder "Volladdierer" oder "logische Bausteine". Der Aufwand hierfür wäre jedoch immens und teuer und wird zumeist nur in Bereichen wie z.B. der Erstellung von speziellen Programmen in der Avionik, der Raumfahrt oder Steuerung komplexer Waffensysteme eingesetzt; teilweise erfolgt die aber auch bei Komponenten wie Grafikkarten oder Steuerungschips auf Motherboards - die CPUs oder GPUs sind hingegen programmierbar.