Inhaltsverzeichnis

04. Editoren / IDEs

Themen
Motivation: Warum ist die Wahl des Editors wichtig?
Mindestanforderungen an einen Editor
Editoren vs. Entwicklungsumgebungen (IDEs)
Glossar
PDF
Kapitel bei Springer
https://link.springer.com/chapter/10.1007/978-3-662-71607-6_4


Zentrale Aspekte

Zusammenfassung

Code wird viel häufiger gelesen als geschrieben. Das Werkzeug, mit dem jeder Programmierer und jede Softwareentwicklerin am meisten Zeit zubringt, ist ein Editor bzw. eine integrierte Entwicklungsumgebung (IDE). Deshalb sollte die Wahl des Werkzeugs gut überlegt und durchdacht sein.

Anhand von Beispielen werden grundlegende Eigenschaften guter Editoren vorgestellt und diskutiert. Anschließend wir der Unterschied zwischen Editoren und IDEs aufgezeigt und die Vor- und Nachteile von IDEs gegenüber Editoren diskutiert.

Die richtige Wahl eines guten Editors oder einer guten IDE hat massive Auswirkungen sowohl auf die Geschwindigkeit und Zufriedenheit der Softwareentwicklerinnen und Programmierer als auch auf die Qualität der entstehenden Software. Trotzdem ist es wichtig, gerade am Anfang den Umgang mit den zugrundeliegenden Konzepten und Werkzeugen zu erlernen. Ein häufiger Anfängerfehler: eine mächtige IDE verwenden, die viel kann, aber auch sehr viel vor dem Nutzer versteckt.

Fragen zur Vertiefung und Wiederholung

Diese Fragen dienen der persönlichen Beschäftigung mit der Thematik, es werden aber keine Antworten zur Verfügung gestellt.

Beispiele für Syntax-Hervorhebung

Die Bedeutung von Syntaxhervorhebung in Quellcode lässt sich am Besten mit einem Beispiel verdeutlichen. Es handelt sich bei den nachfolgenden Codeausschnitten um realen Code aus der Feder des Autors.

Beispiel ohne Syntaxhervorhebung

def redo(self):
    """Reapply previously undone processing step.

    Raises
    ------
    RedoAlreadyAtLatestChangeError
        Raised when trying to redo with empty history
    """
    if self._history_pointer == len(self.history) - 1:
        raise RedoAlreadyAtLatestChangeError
    processing_step_record = \
        self.history[self._history_pointer + 1].processing
    processing_step = \
    	processing_step_record.create_processing_step()
    processing_step.process(self)
    self._increment_history_pointer()

Beispiel mit Syntax-Hervorhebung

def redo(self):
    """Reapply previously undone processing step.
 
    Raises
    ------
    RedoAlreadyAtLatestChangeError
        Raised when trying to redo with empty history
    """
    if self._history_pointer == len(self.history) - 1:
        raise RedoAlreadyAtLatestChangeError
    processing_step_record = \
        self.history[self._history_pointer + 1].processing
    processing_step = \
    	processing_step_record.create_processing_step()
    processing_step.process(self)
    self._increment_history_pointer()

Der Quellcode mit Syntax-Hervorhebung ist eindeutig besser lesbar, und ein guter Editor bzw. eine IDE wird meist noch weitere Elemente hervorheben, als das hier aufgrund der eingeschränkten Unterstützung möglich ist.

Weiterführende Literatur

Eine kommentierte und handverlesene Liste mit weiterführender Literatur zum Thema. Die Auswahl ist zwangsläufig subjektiv.

Die Metapher aus dem Handwerk mit den gut gewählten grundlegenden Werkzeugen und ihrer entsprechenden Beherrschung stammt aus [Hunt, 1999Hunt, Andrew; Thomas, David (1999): The Pragmatic Programmer, Addison-Wesley, Boston]. Weitere hilfreiche Hinweise zu Werkzeugen allgemein und zu Editoren und IDEs im Speziellen finden sich in Kapitel 20 von [Passig, 2013Passig, Kathrin; Jander, Johannes (2013): Weniger schlecht programmieren, O'Reilly, Heidelberg]. Eine lange Liste von Eigenschaften guter IDEs über die grundlegenden Textverarbeitungsfunktionen hinaus findet sich in [McConnell, 2004McConnell, Steve (2004): Code Complete. A practical handbook of software construction, Microsoft Press, Redmond, Washington], S. 710f. Allerdings sei hier dazugesagt, dass viele dieser Eigenschaften auch in besseren Editoren vorhanden und wenige spezifisch für IDEs im eigentlichen Sinn sind.

Ein sehr UNIX-zentrierter Ansatz findet sich in den Abschnitten 13.2 und 15.2 von [Raymond, 2004Raymond, Eric S. (2004): The Art of UNIX Programming, Addison Wesley, Boston]. Auch wenn viele Entwickler heute nicht mehr unbedingt auf die Idee kommen, mit vi oder Emacs programmieren zu wollen, lohnt es allemal, sich die dort festgehaltenen Ideen anzuschauen.