Die Programmiersprache Ruby

Blog| Forum| Wiki  

C wurde in den 70ern von Ken Thompson und Dennis Ritchie entworfen um die erste Version von UNIX zu implementieren. C entstand aus den Sprachen BCPL und B. C erfreut sich sehr grosser Verbreitung, es exitiert für beinahe jede Plattform ein C-Compiler. C wird manchmal auch als Highlevel-Assembler bezeichnet, da es sehr nah an Assembler angelehnt ist (design-technisch und syntaktisch).

C vs. Ruby

  • C ist eine kompilierte Sprache, Ruby wird dynamisch interpretiert (siehe Scriptsprachen vs. kompilierende Sprachen für eine Diskussion der Vor- und Nachteile dieser Eigenschaften)
  • C ist rein prozedural, Ruby ist komplett objektorientiert (was auch Duck-Typing ermöglicht)
  • C ermöglicht hardwarenahe Programmierung, Ruby bietet dieses nur über C-Module
  • Ruby besitzt im Gegensatz zu C einen Garbage-Collector (Mark-and-Sweep Garbage Collector)
  • C erlaubt Zeigerarithmetik und direkte Manipulation des Hauptspeichers, mit Ruby kann man nicht direkt auf den Speicher zugreifen, hat also auch keine Zeiger. Beides hat Vor- und Nachteile und die Anwendung bestimmt, was sinnvoller ist. Direkter Speicherzugriff kann zu schwerwiegenden Programmfehlern führen, wovor man in Ruby geschützt ist. Jedoch bedeutet eine direkte Speichermanipulation mehr Freiraum und höhere Laufzeit-Effizienz.
  • C ist statisch aber schwach typisiert, Ruby ist dynamisch aber streng typisiert.
  • Ruby abstrahiert stärker als C.
  • C ist maschinennaher, man denkt oft aus der Sicht der Maschine, wenn man Programme schreibt. Bei Ruby steht das zu lösende Problem mehr im Mittelpunkt, maschinenspezifische Sachen werden verborgen.
  • Weil C naher an der Maschine ist und kompilierte wird, sind Programme oft wesentlich schneller ausgeführt.
  • Die Lesbarkeit von Ruby-Code ist i.d.R. wesentlich einfacher, der Lernaufwand geringer.