Die Leserumfrage hat ein ziemlich deutliches Ergebnis ergeben: eine Artikelserie zum Thema Programmieren ist erwünscht. Das freut mich natürlich, da in diesem Bereich meine hauptsächlichen Kompetenzen liegen. In den nächsten Wochen (und vermutlich Monaten) möchte ich mich hier im Blog also mit dem Thema Programmieren beschäftigen und eine Einführung in selbiges geben.
Da es, wie einige Leser natürlich zu Recht angemerkt haben, bereits genügend Bücher und Leitfäden zum Programmieren an sich gibt, möchte ich mich in dieser Artikelserie nicht allein auf das reine Programmieren beschränken, sondern immer wieder Exkurse in damit verwandte Themen machen, die aber in einer reinen Programmier-Anleitung so meist nicht behandelt werden. Wie immer gilt: besondere Themen-Wünsche einfach in den Kommentaren äußern. Ein Lesen der Artikelserien “Wie Rechner rechnen” und “Programmierung” ist sicherlich hilfreich, aber hoffentlich nicht nötig, um diese Artikelserie zu verstehen.
In diesem ersten Artikel soll es hauptsächlich um das ganze “Drumherum” beim Programmieren gehen, vor allem: welche Programmiersprache soll verwendet werden und was muss gemacht werden, um damit wirklich etwas auf dem Bildschirm zu sehen. So richtig programmiert wird diesmal noch nicht – Vorbereitung muss aber leider sein. Aber keine Angst, der nächste Artikel folgt bald.
Fangen wir mit der Wahl der Programmiersprache an. In der Informatik-Welt existieren mittlerweile tausende von Programmiersprachen, die für die unterschiedlichsten Zwecke entworfen wurden. Die Programmiersprachen lassen sich dabei nach den unterschiedlichsten Kriterien in Kategorien einteilen. Eine sehr grobe Einteilung ist dabei die Einordnung einer Sprache als sogenannte General Purpose Language (GPL) oder als Domain Specific Language (DSL). GPLs sind Sprachen, die ohne einen speziellen Anwendungszweck entworfen wurden und daher für alle möglichen Zwecke einsetzbar sind; demgegenüber sind DSLs “domänengebunden”, das heißt für die Anwendung in einem ganz bestimmten Anwendungsgebiet gedacht und daher in ihrer Funktionalität in der Regel sehr eingeschränkt. Zum Lernen des Programmierens eignen sich GPLs in der Regel besser, da mit ihnen viel mehr Konzepte umgesetzt werden können – wir wollen uns in dieser Artikelserie daher auch vorrangig mit GPLs beschäftigen.
Über die konkrete Wahl der Programmiersprache könnte man stundenlang philosophieren, da es unzählige Argumente gibt, die für oder gegen eine bestimmte Sprache sprechen. In dieser Artikelserie werde ich vorrangig die Sprache C++ verwenden, und zwar aus den folgenden Gründen:
- C++ ist eine Multi-Paradigmen-Sprache, das heißt, sie unterstützt mehrere Programmierparadigmen (was das ist, erkläre ich in einem späteren Artikel), wodurch mehrere Sachen in einer Sprache gezeigt werden können.
- Sie ist relativ maschinennah, wodurch auch technischere Details erklärt werden können.
- Entgegen häufig gelesener Behauptungen ist C++ größtenteils maschinenunabhängig; jeder kann sie auf seinem System nutzen.
- Egal, welche Sprache gewählt wird: es wird immer jemanden geben, der mit der Wahl unzufrieden ist. Daher wähle ich die Sprache aus, in der ich mich am besten auskenne und potentiell am wenigsten Unsinn schreibe.
Da nun die zu nutzende Programmiersprache geklärt ist, noch ein paar einführende Worte zur Entwicklungsumgebung. Mit Entwicklungsumgebung wird typischerweise die Menge an Programmen bezeichnet, die zur Entwicklung mit einer bestimmten Programmiersprache verwendet wird. Üblicherweise umfasst das einen Editor zum Schreiben des Programmtextes und einen Compiler – das Programm, das den geschriebenen Programmtext in z.B. in ein ausführbares Programm übersetzt. Sind Texteditor und Compiler in einem einzelnen Programm zusammengefasst, das dann auch noch weitere Funktionalität zur Entwicklung mit der Sprache bereitstellt, spricht man von einer integrierten Entwicklungsumgebung, kurz IDE. Ohne Entwicklungsumgebung ist natürlich kein Programmieren möglich!
Die Auswahl für C++ ist hier auf Grund der weiten Verbreitung der Sprache naturgemäß ziemlich groß. Im folgenden möchte ich einige Möglichkeiten vorstellen und kurz erläutern, wie man damit aus einer Quelltextdatei ein ausführbares Programm erzeugt – wer die Inhalte der Artikelserie ausprobieren möchte und noch keinen Compiler installiert hat, sollte sich für eine der folgenden Lösungen entscheiden. Wenn in zukünftigen Artikeln von kompilieren die Rede ist, dann ist damit gemeint, die im Folgenden beschriebenen Schritte zum Erstellen einer ausführbaren Datei durchzuführen. Die folgenden Beschreibungen erfolgen für Linux und Windows; für Mac OS kann ich mangels eines entsprechenden Rechners leider keine Anleitung geben (vielleicht kann einer meiner Leser mir eine kurze Anleitung für XCode und Clang oder GCC unter Mac OS zukommen lassen?)
Kommentare (36)