Wahl eines geeignete Editors
Ein Texteditor ist ein Computerprogramm, in dem Sie Textdateien erstellen können – und zwar reine Textdateien (sog. plain text) ohne Formatierungen wie Fettdruck oder Unterstreichungen. Der Texteditor ist das wichtigste Werkzeug für Programmierer:innen (und Server-Admins), weshalb Sie sich mit den Funktionalitäten Ihres Editors vertraut machen sollten, um schnell Quellcode eingeben und verändern zu können.
Zu den typischen Funktionen eines guten Texteditors gehören:
- Syntax-Highlighting (automatische Hervorhebung von Schlüsselwörtern wie
static
undclass
in Programmcode) - Wort-/Schlüsselwort-Vervollständigung
- Tastenkürzel zum Kopieren, Verschieben und Löschen von Zeilen
- Tastenkürzel, um markierten Text in einen Kommentar umzuwandeln
- (halb-)automatisches Einrücken
- einrücken markierter Codezeilen
- Suchen & Ersetzen von Text
- Code-Folding (einklappen von zusammengehörigen Code-Abschnitten)
- Split-View (mehrere Dateien nebeneinander anzeigen)
- Terminal-Integration
- Umbenennen geöffneter Dateien
- Block-Auswahl (quadratische Auswahl von Text über mehrere Zeilen hinweg)
- Textenkürzel, um die aktuelle Text-Auswahl logisch zu vergrößeren (z. B. wenn eine Variable ausgewählt ist die nächst größere Expression auswählen)
- änderbare Tastenkürzel & Symbolleiste
Beispiele für gute, kostenlose Texteditoren sind (alphabetische Reihenfolge):
Es gibt auch Texteditoren, die im Terminal laufen – für den Einstieg sind diese erstmal weniger empfehlenswert, aber es ist gut zu wissen, dass es so was gibt:
- emacs (sehr mächtig, nicht sehr einstiegsfreundlich)
- nano (auf vielen Systemen standardmäßig installiert)
- vim (sehr mächtig, nicht sehr einstiegsfreundlich)
Welchen Editor Sie verwenden, können Sie selbst entscheiden. Wichtig ist, dass Sie sich mit der Bedienung Ihres Editors vertraut machen und z. B. wissen, welche Tastenkürzel es gibt oder ob ein Terminal integriert werden kann.
Im folgenden Video zeigen wir Ihnen exemplarisch am Editor Kate einige der oben aufgelisteten Funktionalitäten.
Ändern Sie gerne die Wiedergabegeschwindigkeit, wenn Ihnen das Video zu schnell oder langsam ist.
Wir empfehlen im ersten Semester bewusst nicht, mit einer IDE (z. B. Eclipse oder IntelliJ) zu arbeiten (siehe unten).
Häufige Fragen
Wie gebe ich geschweifte Klammern ( {
, }
), eckige Klammern ([
, ]
) und das Semikolon (;
) ein?
{
: Alt Gr + 7 (gleichzeitiges Drücken der Taste Alt Gr (rechts neben der Leertaste) und der 7 (über Z und U))}
: Alt Gr + 0[
: Alt Gr + 8]
: Alt Gr + 9;
: Umschalttaste + , (die Umschalttasten sind links vom Y und rechts vom -)
Die deutschen Tastaturen von Apple-Computern folgen nicht der DIN und bilden die Klammern verwirrenderweise auch nicht auf den Tasten ab. Mit der deutschen Apple-Tastaturbelegung geben Sie die Zeichen wie folgt ein:
{
: Alt + 8}
: Alt + 9[
: Alt + 5]
: Alt + 6;
: Umschalttaste + ,
Sie merken vielleicht selbst: Das Tippen dieser Zeichen ist etwas unbequem. Warum werden Sie dann verwendet? Einerseits sind einfacher zu erreichende Zeichen schon mit anderen Bedeutungen belegt. Andererseits sind sie aber auf englischen Tastaturen wesentlich bequemer zu erreichen, weshalb viele Programmier:innen (auch bei deutschen Tastaturbeschriftungen) mit englischem Tastaturlayout arbeiten. Als Anfänger:in sollten Sie sich aber ersteinmal auf das Programmieren konzentrieren und nicht noch Ihre Tasten umsortieren.
Warum verwenden wir keine IDE wie Eclipse oder IntelliJ?
- IDEs sind „schwergewichtiger“ als Editoren und verlangem gerade älteren Computern einiges an Leistung ab. IDEs starten langsamer als einfache Texteditoren und verbrauchen durch ihre zusätzlichen Funktionen, die wir noch nicht brauchen, unnötige Ressourcen.
- IDEs haben viele Funktionen, die vom Wesentlichen (dem Programmcode) zunächst nur ablenken und schnell falsch verwendet werden können.
- Viel von dem, was IDEs einem Abnehmen können, sollten wir ersteinmal grundlegend selbst verstehen und erklären können. Es hat z. B. auch keinen Sinn, einem Erstklässer eine automatische Rechtschreibprüfung mit an die Hand zu geben, wenn er noch nicht die Kompetenz hat nachzuvollziehen, wann die Rechtschreibprüfung richtige und wann falsche Vorschläge macht.
- IDEs verstecken, was „unter der Haube“ passiert und was wir eigentlich verstehen wollen. Beispielsweise nehmen Sie uns die Arbeit ab, unser Programm manuell mit javac compilieren zu müssen und übernehmen auch den java-Aufruf für uns. Dadurch wird aber z. B. das Übergeben von Kommandozeilenargumenten an Java-Programme (machen wir in der 2. Vorlesung) oder das Setzen der Standardeingabe (später in der Vorlesung) verkompliziert.
- Es gibt manchmal Situationen, in denen Sie auch später ohne IDE zurecht kommen müssen, beispielsweise falls Code auf einem Server temporär geändert werden muss. Für manche Programmiersprachen (vor allem jüngere und weniger populäre) gibt es außerdem oft keine (vollwertigen) IDEs.
- IDEs geben viele richtige Hinweise zu „schlechtem“ Programmierstil, die aber nicht nützlich sind, wenn man das, was vorgeschlagen wird, noch gar nicht versteht. Im folgenden Bildschirmfoto schlägt z. B. IntelliJ bei einem Hello-World-Programm die Nutzung eines Packages und eines Loggers vor. – Vor Januar werden wir aber gar nicht verstehen, was das bedeutet, und werden jetzt nur von diesen Meldungen abgelenkt.
Wenn Sie sich schon gut mit Begrifflichkeiten wie Argumente, Standardeingabe, Packages und Classpath auskennen, verbieten wir Ihnen nicht, eine IDE zu benutzen. Falls Sie aber dadurch Probleme haben, den von uns zur Verfügung gestellten Code zu benutzen oder Lösungen korrekt abzugeben, bekommen Sie von unserer Seite keine Unterstützung. Im Studium wird ab dem Programmierpraktikum I, in dem Sie größere Programmierprojekte bearbeiten, mit einer IDE gearbeitet.
Warum sollte ich „BlueJ“ oder „Java Editor“ nicht verwenden?
Falls Sie trotzdem BlueJ oder Java Editor verwenden wollen, verbieten wir es Ihnen nicht. Falls Sie aber dadurch Probleme haben, den von uns zur Verfügung gestellten Code zu benutzen oder Lösungen korrekt abzugeben, bekommen Sie von unserer Seite keine Unterstützung.