Was ist die schnellste Programmiersprache (für Windows Programme, kein 3D)?
Was ist die schnellste Programmiersprache (für Windows Programme, kein 3D)?
Schnell in welcher hinsicht?
- Schnell im allgemeinen erstellen einer Anwendung
- Schnell beim Compilieren von Code
- Schnellichkeit bei der ausführung des Programmes
?
--~>
Assembly müsste aufgrund seiner systemnaheit sehr schnell sein, c++ aber auch recht gut. VB beispielsweise ist in der Hinsicht relativ langsam, aufgrund der erst nachträglichen interpretierung.
--Signature.
Assembly ist die letzte Sprache vor der Maschienensprache. Also ziemlich, ziemlich Low-Level. Man kann eigentlich nichts anderes machen, als Rechnen und mit Pointern rumspielen. Ich kopier jetzt einfach mal Lukis Code aus dem "exe Größe" Thema:Und da das ganze einfach, low-level und systemnah ist, ist es auch verdammt schnell. Für immer wieder verwendete Algohrithmen z.B. wird oft ASM verwendet. Z.B. bei Shadern oder bei Verschlüsselungen/Komprimierungen.
--Abwesend.
Allgemein: Assembler-Dialekte zusammengefasst.
Gibt ja verschiedene Dialekte z.B. speziel für i386 usw.
--Signature.
Es gibt nicht DIE Sprache, sondern man muss sehen wofür man welche Sprache nimmt. Und schnell in Sachen Anwendungen, naja, da gibts wohl kaum große Unterschiede. Denn Anwendungen sind nicht Framebasiert (werden nicht jedes Frame neu gezeichnet) sondern sind Eventbasiert und somit meist sowieso nicht auf Geschwindigkeit bedacht, dass es nicht so viel Unterschied macht, ob man Visual Basic (oder PureBasic), C++ oder Delphi oder sowas nimmt. Ein Fenster mit ein paar Buttons darstellen wird wohl überall nicht viel Zeit beanspruchen und die Events bearbeiten sollte auch nicht das Problem sein.
Im Allgemeinen, wenn du C++ kannst, solltest du dabei bleiben und das vertiefen. Damit kann man wohl wenig falsch machen.
ABER, dann kommt es auch immer noch auf den Programmierstil an. Auch in C++ kann man Programme schreiben, welche langsamer laufen als in anderen Sprachen, wenn man es nicht anständig optimiert oder einfach nur Mist codet. Demnach muss man aber auch in anderen Sprachen optimieren oder einen schnellen Weg (z.B. lieber Pointer verwenden als lange im Speicher suchen) wählen um ein schnelles Programm zu erhalten.
Aber auch in Anwendungen können Algorythmen drin stecken die einen Unterschied ausmachen könntenZitat von Sunny
Im grunde genommen übersetzt jede Sprache gleich schnellen, Ausführbaren code... nur kommt es darauf an was man (oder der Compiler) alles zwischen packt... Um ein Pixel auf einem Pic zu manipulieren genugt ein bisschen ASM Code. Natürlich kann man das auch in C++ oder Delphi machen, aber Delphi beispielsweise packt dir da die TImage Komponente dazwischen was einfach Ziet frisst.
--~>
Ich würde sagen, es kommt absolut drauf an, was man braucht. Wenn man vorhat, aufwendige Berechnungen durchzuführen und auf ein GUI verzichten kann, sollte man mit C oder C++ zurechtkommen (vielleicht sogar mit C noch besser - bei C++ wird AFAIK mehr Zeug eingebunden und wenn man die gesamten zur Verfügung stehenden Ressourcen braucht könnten ein paar Kilobyte Extracode schon einen gewissen Unterschied machen).
Für absolute Geschwindigkeit kommst du an ASM nicht vorbei.
Für ein ressourcentechnisch vergleichsweise popliges Programm wie einen Maker-Klon braucht man hingegen kein echtzeitaktualisiertes UI und auch keine massiven Berechnungen und sollte sogar mit langsameren Sprachen wie Java zurechtkommen.
Wenn du nicht gerade vorhast, ein aufwendiges Spiel zu programmieren, dürfte bei der Wahl der Sprache die Geschwindigkeit wohl kaum eine größere Rolle spielen.
Ich glaub in unserem Bereich, der Hobbyprogrammierung, ist die Wahl der Programmiersprache eher sekundär wenn es um die Geschwindigkeit der Anwendung geht. Viel wichtiger ist da schon saubere Programmierung.
Davon abgesehen, macht es einen Unterschied ob ein Spiel mit 200 FPS oder 300 läuft? Wirkliche Gedanken um seine Programmierung sollte man sich erst machen, wenn die FPS stark in den Keller gehen, ansonsten ist das mMn ebenso wie die Benchmarks, eine Zahl, die ihre größte Wirkung auf das Ego des Spielers bzw Programmierers hat.
Die schnellste Programmiersprache, hmm.
C++ ist bestimmt schnell
Jedenfalls im Verhältnis zur langsamsten "programmier"-sprache der welt.
Die Möchtegernskriptsprache "mIRC-Script"(heisst die auch so?) ist nämlich ca. 10'000 mal langsamer als C++.
Hab da mal nen Algorithmus von mIRC in C++ übernommen und in etwa das festgestellt![]()
Wobei es nicht gerade fair ist, die interpretierte Skriptsprache eines zweitklassigen Chatprogramms mit einer professionellen Programmiersprache, für die seit 1980 Compiler (weiter)entwickelt werden, zu vergleichen.Zitat von Netbek
Und verglichen mit Maker-Assembly ist mIRC-Script immer noch unglaublich komfortabel und flink.
...Wer auch immer auf die Idee gekommen ist, eine interpretierte pseudo-Assemblersprache zu entwickeln, gehört bestraft.
Und was ist mit Java?Zitat von Jesus_666
Naja, wahrscheinlich geht die Java Virtual Machine "etwas" über die simple Stack-Maschine dieses Maker-ASM hinausZitat von Bluebird
![]()
Soweit ich weiß wird der Java-Zwischencode zur Laufzeit vom JustInTime-Compiler der Java-VM in den jeweiligen Maschinencode übersetzt, theoretisch ist Java damit also genauso schnell wie nativer Code.
Du siehst Java als eine interpretierte pseudo-Assembler Sprache?Zitat von Bluebird
Zu Maker - "Assembly" passt diese Aussage. Und zwar hauptsächlich wegen der umständlichen Rechenweise. Genau wie beim Assembler musst du beim Maker Rechenoperator und 2 Parameter angeben. Soweit ich mich zumindest erinnere.
Das bedeutet, dass du für die Rechnung a = (0.5 * b) / ( c * d ) sehr viele einzelne Rechenschritte durchführen musst.
Und zwar etwa so:
[FONT=Courier New]
b = b*0.5;
c = c *d;
b = b/c;
a = b;
[/FONT]
Maker Assembly triffts daher ziemlich gut. Wer sich das ausgedacht hat, gehört wirklich hinter Gitter, denn eine vernünftige Syntax fürs rechnen hätte den Zeitaufwand mit dem Maker erheblich verkürzt.
-------------------------------------
Übrigens würde mich interessieren, ob du Ahnung von Java und Assembler hast.
--Donnie: "Why do you wear that stupid bunny suit?"
Frank: "Why are you wearing that stupid man suit?"
Ich würde auch sagen, dass es für einfache Windows-Programme keine allzu große Rolle spielt, welche Sprache du verwendest. Wenn du bereits eine vernünftige Sprache beherrschst, brauchst du für die paar Millisekunden wohl kaum eine andere zu lernen. Wenn du allerdings überlegst, welche Sprache du lernen sollst, würde ich dir zu C++ raten. Damit wirst du gleichzeitig in der Lage sein, Java zu verwenden, weil die beiden Sprachen sich in der Syntax ja wirklich kaum voneinander unterscheiden (soweit ich das bisher beurteilen kann).Zitat von blue lord
Wer, ich? Ich lerne gerade von der Uni her Java; mit ASM hab' ich mich nicht wirklich beschäftigt - so einen niedrigen Level brauchte ich noch nicht.Zitat von Murphy
Abgesehen davon, daß bei Java alles in Klassen passiert (selbst Klassen, wie man in C++ benutzen würde, müssen mindestens in der Hauptklasse geschachtelt sein), daß char zwei Byte groß ist (Unicode) und du eigentlich ganz anders programmierst...Zitat von elite_benny
Es ist erstaunlich, wie sehr sich Java von C++ unterscheidet, obwohl die syntaktischen Grundlagen identisch sind.