Hallo und herzlich willkommen! Im letzten Beitrag habe ich gemeinsam mit dir begonnen, meine primäre Programmiersprache C++ Programmieren zu lernen. Ich weiß, du bist total heiß darauf, weiterzumachen, doch du musst dich nun erst einmal gedulden. Jetzt gibt es nämlich einen kleinen thematischen Einschub.

Bevor wir uns voll in den Lernprozess stürzen und anfangen zu coden, möchte ich dir ein sehr nützliches und wichtiges Werkzeug vorstellen:

Der Texteditor

Warum jetzt die Einführung?

Im letzten Beitrag hast du gesehen, welche Schritte alle nötig sind, um deine erste ausführbare Datei in C++ zu schreiben und zu erstellen. Dazu haben wir den vom Betriebssystem mitgelieferten Texteditor verwendet. Minimalistisch betrachtet brauchst du auch keine weiteren Tools als die vorgestellten. Doch lässt sich deine Arbeit mit Hilfe eines umfangreicheren Tools weniger umständlich und deutlich bequemer erledigen.

Grundsätzlich ist ein Texteditor ein Programm, mit dem du einfache Textdateien öffnen, anzeigen und bearbeiten kannst. Im Gegensatz zu Textverarbeitungsprogrammen fügen Texteditoren dem Text keine Formatierung hinzu, sondern konzentrieren sich auf Bearbeitungsfunktionen für reinen Text.

Texteditoren werden von einer Vielzahl von Menschen für unterschiedlichste Zwecke eingesetzt. Sie sind das ideale Werkzeug für jeden, der schnell und einfach schreiben, Quellcode lesen oder Textdateien erstellen möchte. Hauptsächlich werden sie von Software- und Webentwicklern für Programmier- und Markup-Sprachen verwendet. Die vielen Funktionen der Editoren helfen ihnen beim Arbeiten mit Code.

In der Programmierer-Community gibt es eine überwältigende Anzahl von Meinungen über Texteditoren, IDEs und andere verwandte Werkzeuge. Es gibt so viele Optionen und so viele Empfehlungen, dass es wirklich schwierig ist, das beste Werkzeug für dich zu finden.

Allerdings ist es äußerst wichtig, den richtigen Editor zu wählen!

Schließlich ist Text das Grundelement der Programmierung und die Wahl eines Werkzeugs zur Manipulation von Text eine der grundlegendsten Entscheidungen eines Entwicklers.

Was soll ein Texteditor können?

Es gibt Gemeinsamkeiten und Funktionen, die sich alle Editoren teilen. Diese machen erst einen Texteditor zu einem guten Texteditor. Hier sind ein paar davon:

  • Einfach zu bedienen und zu navigieren
  • Finden und Ersetzen. Mit diesen Funktionen kannst du ein einzelnes Wort in der gesamten Datei mit ein paar Klicks ändern.
  • Cut, Copy, Paste
  • Möglichkeit, UTF-8-kodierte Text zu verarbeiten 
  • Syntax Highlighting. Damit wird dir das Lesen von Code und das Auffinden von Fehlern deutlich erleichtert.
  • Anpassbare Oberfläche, z.B. Änderung von Schriftgröße, Farbschema
  • Erweiterbarkeit. Dir wird ein Plugin-Mechanismus oder die Möglichkeit, Skripte zu verwenden, bereitgestellt. So kannst du den Editor anpassen und mit zusätzlichen Funktionen ausstatten.

Nein, Word geht nicht!

Sicherlich benutzt du ausgiebig Textverarbeitungsprogramme wie Microsoft Word, LibreOffice Writer oder Google Docs für deine Textdokumente. Und damit setzt du sie genau für ihren angedachten Zweck ein. Sie unterstützen dich mit ihrer Textformatierung, der Rechtschreibüberprüfung oder der Funktion, andere Medien leicht einzubinden beim Schreiben von literarischen Texten.

Doch beim Programmieren helfen dir Textverarbeiter leider überhaupt nicht. Der Grund dafür ist der Empfänger des Textes. In unserem Fall ist dies eine Maschine, der Computer. Dieser kann mit Schriftarten, Einrückungen, Schriftdekoration und Co. nicht viel anfangen und interessiert sich nur für den reinen Text. Deshalb mache es euch beiden nicht zu umständlich und gib ihm deine Dateien als Plain Text.

Und was ist mit IDE?

Berechtigterweise kannst du mich an dieser Stelle nach einer IDE (Integrated Development Environment) fragen. Es stimmt, ein solches Tool wird dir sehr gute Dienste bei deiner Arbeit erweisen und dich sinnvoll unterstützen.

Was eine IDE so nützlich macht, ist das I: integriert. Sie stellt fast alle Werkzeuge, die du für eine vollständige Entwicklungsumgebung benötigst, in einem Editor zusammen.

Zusätzlich werden dir noch Komfortfunktionen, wie z.B. einfache Navigationsfunktionen, automatische Codevervollständigung, Klassenexplorer oder Hierarchiediagramme, geboten. Zudem beinhaltet eine IDE Tools, die dir helfen, deine Entwicklung weitestgehend zu automatisieren. Darunter fallen z. B. Source Control, Testwerkzeuge usw.

Aber nicht alle IDEs enthalten alle diese Tools. Wenn dich der riesige Umfang überfordert, dann findest du auch welche mit weniger Funktionen. Die Qualität einer IDE liegt nicht in der Masse seiner Tools, sondern daran, wie sehr sie zu deinem Arbeitsverhalten passt.

Warum also keine IDE?

Jetzt fragst du dich sicherlich, wenn ich doch alles schön in einer IDE verpackt bekomme, warum ich dir einen simplen Texteditor vorstellen will. Die Antwort ist wie vieles im Leben eine Geschmacksfrage. Doch ich möchte dir ein paar Gründe für meine Entscheidung nennen.

Eine IDE versucht alle Einsatzbereiche auf einmal abzudecken, und das ist im Einzelfall nicht die optimalste Lösung. Oft wirst du sehen, dass viele langjährige und professionelle Programmierer keine IDE verwenden, wenn sie es vermeiden können.

Manchmal ist eine bestimmte Entwicklungsumgebung für ein Projekt schon vorgegeben. Sei es aus technologischen Gründen, als Vorgabe des Unternehmens oder dass du ein bestehendes Projekt übernimmst. Dann bist du natürlich daran gebunden. Hast du allerdings freie Wahl, solltest du dich nicht selbst einschränken und die richtigen unabhängigen Tools für den jeweiligen Job verwenden.

Daran siehst du schon, dass du dich als Softwareentwickler nicht auf einen einzigen Editor oder eine IDE als das richtige Werkzeug für alle Situationen verlassen kannst. Sicher, IDEs können leistungsstark und elegant sein, randvoll gefüllt mit nützlichen Hilfsmitteln.

Manchmal sind IDEs tatsächlich erforderlich, insbesondere wenn du mit proprietären Tools (z.B. Visual Studio) arbeiten sollst. Sie können aber auch Overkill sein und damit über das eigentliche Ziel hinausschießen. Das wirkt sich auf deine Arbeit aus und dir bleibt ggfs. eine ungute Programmiererfahrung.

Als größtes Manko fehlen IDEs nicht selten eine der Grundlagen der Programmierung: die effiziente Textbearbeitung.

Die leichtere Option stellen codezentrische Texteditoren dar. Diese Editoren bieten dir Syntaxhervorhebung, sind mit flexibleren Benutzeroberflächen ausgestattet, verfügen über leistungsstarke Such- und Navigationswerkzeuge und sind oft erweiterbar sowie leicht anzupassen.

Doch sie erfüllen eben nur einen Schritt des Entwicklungsprozesses. Du kannst mit ihnen nur Text bearbeiten. Um das Programm zu erstellen, benötigst du immer noch einen Compiler.

Deshalb finde einen guten Editor (z.B. vim, emacs, sublime, atom, vs code) und lerne ihn gut kennen. Arbeite mit ihm und entdecke die besten Werkzeuge. Es wird sich für dich auszahlen. Besonders, wenn du plötzlich in die Situation gerätst, eine neue Programmiersprache lernen zu müssen. So bleibst du flexibel und kannst dich auf die Sprache und deinen Code konzentrieren, anstatt dich mit Restriktionen einer IDE herumzuärgern.

Wenn dein aktuelles Projekt allerdings tief mit einer IDE verbunden ist, dann ist das eine andere Geschichte.

Über Geschmack lässt sich streiten

Als Programmierer ist die Wahl des Editors oder IDE eine wichtige Entscheidung und muss nicht endgültig sein. Bewerte ruhig deine Wahl immer wieder neu und ändere sie bei Bedarf. Das Schlimmste, was du tun kannst, ist, dich in den Rahmen eines Werkzeugs einzuzwängen oder einem bestimmten Werkzeug gegenüber zu loyal zu sein.

Denke immer daran, dass der beste Texteditor letztlich der ist, der dich am effizientesten macht.    Ich wünsche dir maximalen Erfolg!