Ein Loblied auf C


Zunächst mag es etwas befremdlich klingen wenn man Linus Torvalds applaudiert wenn er einen Rant gegen C++ veranstaltet, ist doch allgemein bekannt dass OOP die Zukunft ist, und C++ der bekannteste Vertreter. Wenn man jedoch etwas näher hinschaut wird man erkennen, dass Torvalds nicht nur Recht hat mit seinem Zorn sondern dass sich C auch für andere Dinge eignet als nur für den Kernel. Das beste Beispiel sind Computerspiele. Auf den ersten Blick ist es absurd ein Spiel in C programmieren zu wollen, schaut man jedoch etwas genauer hin, so sind nicht nur gängige Frameworks wie SDL in C programmiert sondern mit der Allegro-Gameengine gibt es sogar ein komplettes Spieletaugliches Framework. Es bleibt noch die Frage zu klären wie man ohne objektorientierte Sprachelemente sauberen Code schreiben will, auch das ist erstaunlich simpel zu beantworten. Und zwar kann man in C sogenannte „static global“ Variablen definieren. Damit sind Variablen gemeint die nur in einer C-Datei gelten dort aber von allen Funktionen verwendet werden. Das ist vergleichbar mit den Klassenvariablen die bei Java und C++ verwendet werden. Man kann also auch ohne ausufernde Parameterlisten Code schreiben.

Zugegeben, vom Komfert her ist C nicht mit Python zu vergleichen. Letzteres bleibt nunmal die Lieblingssrpache um Prototypen zu erstellen und bietet OOP Luxusfeatures wie Multilevel-Inheritance. Wer jedoch mal etwas neues probieren möchte ist mit C gut bedient. Hauptvorteil dürfte sein, dass es unglaublich schnell ist. C ist nach wie vor die schnellste Sprache überhaupt und wenn man bereits programmieren kann, lässt sich damit die Hardware maximal ausreizen. Gerade wenn man Bibliotheken schreibt wäre C eine Art von Geheimtipp. Geheim deshalb, weil offiziell die Welt Java, C++ und C# spricht; neuerdings zusätzlich auch Ruby.

Mal angenommen, eine Library wie Allegro sagt einem nicht zu. Selbst für solche Fälle gibt es Rat. Und zwar können C Programmierer auch eine Bibliothek wie SFML nutzen. Diese stammt ursprünglich aus der C++ Welt lässt sich aber auch aus C Programmen aufrufen. In der Hilfe steht ein wenig ironisch drin, dass man die Hilfe nutzen kann zu C++, wohl wissend, dass der Sourcecode 1:1 derselbe ist. Das heißt, egal ob man in C++ oder in C das Fenster initialisieren will nutzt man dafür die selben Kommandos. Im Fall von C muss man lediglich auf Klassen verzichten, also darf nur Funktionen deklarieren und sonst gar nichts. Jetzt kann man sich natürlich zurecht fragen: welchen Sinn das macht, wenn man einerseits einen Compiler nutzt, der OOP beherscht dann aber nur den Sprachumfang von C verwendet. Die Antwort lautet, dass man objektorientierte Programmierung an Scripting-Sprache kopppeln sollte, sie also als eine Software-Entwurfs-Methode versteht die im fertigen Sourcecode nichts verloren hat.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s