C oder Assembler was ist besser?

Das Ergebnis basiert auf 5 Abstimmungen

Assembler 60%
C 40%

6 Antworten

C

Assembler hat einen einzigen Vorteil: Es ist schneller als jede andere Programmiersprache. Zumindest, wenn der ASM-Programmierer wenigstens ein bisschen Assembler-Erfahrung gesammelt hat - dann kann er als Mensch damit jeden Compiler schlagen, was die Performance betrifft.

Der Vorteil ist aber nicht besonders groß. Du wirst den Vorteil spüren, wenn du beispielsweise hochkomplexe mathematische Berechnungen durchführen willst - dann kommt es auf jeden zusätzlichen Leistungsschub an, den du kriegen kannst. Du wirst den Vorteil aber nicht spüren, wenn du Tetris programmierst. Und auch nicht bei fast jedem anderen Programm, das du einmal schreiben willst.

Assembler ist sehr gut geeignet, wenn du

  • performancekritische Software programmierst (also Programme, die unbedingt und um jeden Preis so schnell wie möglich ablaufen müssen)
  • im Reverse-Engineering-Bereich tätig bist
  • Betriebssysteme programmierst

Für jeden anderen Verwendungszweck empfehle ich dir C. C ist nach Assembler die zweitschnellste Programmiersprache und die schnellste Hochsprache. Der Komfort-Vorteil, den du mit C hast, sticht die minimalen Geschwindigkeitsnachteile locker aus, weil du mindestens doppelt so lange brauchst, um ein Programm in Assembler zu programmieren, als das gleiche in C zu erledigen.

Übrigens: Nicht mal Spieleentwickler verwenden Assembler - trotz der hohen Ansprüche an die Geschwindigkeit. Nicht mal deren Ansprüche sind hoch genug, um Assembler zu verwenden - sie setzen meist C++ ein, was geringfügig langsamer ist als C.

Was ist besser: ein 20er oder ein 24er Schraubenschlüssel?

Vielleicht weiß es jemand...

C

Nunja schwere Frage, mit Assembler ist man halt näher an der Hardware z.B. einen Mikroprozzesor. Aber ich finde diese Sprache total beschissen. Naja das man sich z.B. den stack wie ein Brett mit Blättern vorstellen muss und man immer ein Blatt vom Brett nähmen muss, um an einen Wert zu kommen welcher abgspeichert wurde. Also meine Subjektive meinung ist : Nimm C, Assembler ist einfach viel komplizierter und mit C kann man alle Programme 1. Schneller schreiben und 2. ich finde man kann sie durch den übersichtlicheren Code besser umsetzen, vorallem die Fehler suche bei Assembler, eckelhaft!! Btw falls du hacken willst Assembler^^

MfG MrButterkeks

El4zer 
Fragesteller
 11.05.2013, 19:51

Ne damit möchte ich nichts zu tun haben, aber ich lerne trotzdem beide da ich Assembler brauche^^

0
ceevee  11.05.2013, 19:53
@El4zer

Nein, für Reverse Engineering braucht man nicht zwingend Assembler. ;)

0
MrButterkeks  11.05.2013, 19:54
@El4zer

Ja, ich musste leider auch beide Lernen. Aber falls ich die möglichkeit hätte zwischen beiden zu entscheiden würde ich definitiev C nehmen. Ich empfand immer Assembler als total umständlich und veraltet. Natürlich bauen alle Sprachen auf Assembler auf, aber ich muss es nicht haben. Nichts dest trotz kann ich nun Assembler und nunja wirklich bereichert hat mich das nicht ^^

0

Definier mal "besser"... Assembler nimmt man eigentlich heutzutage nur noch, wenn man wirklich muss, also wenn man extrem hardwareabhängig und systemnah programmiert. C ist ein Stückchen besser (im Gegensatz zu Assembler läuft C wenigstens immer auf allen Prozessoren), aber zum Schreiben von Anwendungen aufm Computer gibts auch etliche bessere Alternativen, GUIs mit C machen beispielsweise nicht wirklich Spass.

Assembler

Für meine Hobbys hauptsächlich ASM!

Woher ich das weiß:Hobby