Von C(++) über Python zu D
Mein erster Eintrag auf meinem neuen Blog.
Während der erste vielmehr den Kampf gegen Formularspam gewidmet war, und eine viel Zahl an Captcha’s oder anderen Maßnahmen dagegen, wird es sich hier eher um Programmiersprachen, Tutorials und kleinen Hilfestellungen drehen, näheres dazu hier.
Zum eigentlichen Thema.
Wie vielleicht noch einige wissen, begann ich im Sommer 2009 mit C++, nachdem ich Jahrelang mit Webdesign und den dazugehörigen Sprachen wie HTML, CSS und PHP gearbeitet hatte.
C++ gefiel mir von Anfang an nicht wirklich, oder vielmehr: ich wurde damit einfach nicht warm.
Mein Hauptantrieb eine so Systemnahe Programmiersprache zu lernen, war, weg von der Konsolenprogrammierung und hin zur Fenster- und damit Spieleprogramierung zu kommen, und im wesentlichen ist C/C++ auch heute noch die “gefragteste” Sprache dafür.
Nach einer Vielzahl an GUI’s, von DirectX über Allegro hin zu SDL und SFML, wurd’ es mir wohl durch das anhaltende Trauma (
) von DirectX zu bunt und ich sah mich nach anderen Sprachen um.
So kam ich schließlich zu Python, welche mir von Anfang an sehr gut gefiel, und womit sich die Spieleprogrammierung mittels Pygame auch als verblüffend simpel herraustellte.
So gelang es mir relativ schnell einen einfachen Nachbau von Pokémon in Python zu programmieren, wenn auch Kämpfe und Einkäufe, wie man sie aus dem Spiel in seiner Kindheit vielleicht noch kennt, noch nicht fertig gestellt waren.
Allerdings gefiel mir nicht, dass in Python keine expliziten Type Hints existierten.
Zwar wurden intern die jeweiligen Variablen konvertiert und besaßen einen individuellen Typ, jedoch konnte man als Programmierer diesen nicht von vorn herein angeben, ein Manko welches mir desöfteren Kopfzerbrechen über ihre Vor- und Nachteile bereitet hatte.
Einerseits ist diese Art der Typkonvertierung sehr einfach und gut für den Programmmierer, der sich um nichts in der Richtung kümmern muss, andererseits kann man so weder Parameter oder Rückgabewerte eindeutig kennzeichnen/schützen und muss immer noch einmal zur strengeren Kontrolle überprüfen, ob es sich bei den Übergabewerten wirklich um z.B. einen Integer oder float Wert handelt.
In C(++) war eine derartig strenge Typüberprüfung von Anfang an vorgesehen, jedoch war mir C++ auch nach neuem Anlauf einfach zu Alt.
Standardisierungen dauerten zu lange; C++ war 10 Jahre alt und der C++0x Standard war inzwischen von 2009 über 2010 auf 2011 verschoben, zudem empfand ich die Sprache mit all ihren Konstrukten inzwischen ziemlich überladen.
Also begann ich mich weiter umzusehen, mir fielen alte Ratschläge ein, nach dennen ich mich an C#, Java oder C++/LI halten solle, aber .NET basierten Dingen gegenüber empfand ich schon recht lange eine tiefere Abneigung und Java war auch nie wirklich die Sprache die mir mein sechster Sinn empfohl
.
Also schaute ich mir an, was es in Richtung C++ noch gab, allerdings war der Standard nach wie vor in unerreichbarer Nähe für jemanden wie mich, den es an Geduld mangelt, wenn es um so etwas geht.
Doch dann fiel mir D in die Augen. D ist eine mögliche Weiterentwicklung von C++, moderner und wesentlich einfacher zu handhaben, nicht ganz so überladen wie C++ und besitzt dennoch strenge Typkontrollierung entgegen Python.
Mittlerweile beschäftige ich mich schon seit beinahe 2 Wochen mit D und kann, dank der überaus hilfreichen Tutorials von d.whosme nicht groß klagen, allerdings fällt die Neuheit dieser Sprache auf (Erscheinungsjahr 2007, Quelle) was sich auf die Kompatibilität zu den meisten GUI’s auswirkt, die, auf Grund der Verbreitung, fast immer für C(++) ausgelegt, und meistens auch noch in selbiger geschrieben sind.
Dennoch denke ich, dass ich durch Derelict eine Möglichkeit gefunden habe, dieses kleine Hindernis zu umgehen und somit auf derlei GUI’s und deren Bibliotheken zugreifen kann.
Zitat:
Derelict is a collection of D bindings to C shared (dynamic) libraries which are useful for multimedia applications, with a heavy bias toward game development-related libraries.
Nun kann ich mich wohl weiter dem Studium an der Sprache D widmen.
Mit etwas Glück werde ich im nächsten Artikel ein kleines Tutorial schreiben, in denen ich aufzeige, wie man mit D ein Tileset und ein dazugehöriges, kleines & simples Spiel schreibt.