Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:lehre:programmierkonzepte:ss2020:04:index

04. Editoren / IDEs

Themen
Motivation: Warum ist die Wahl des Editors wichtig?
Mindestanforderungen an einen Editor
Editoren vs. Entwicklungsumgebungen (IDEs)
Folien
PDF
Glossar
PDF
Video
MP4


Webcast

Hinweis: Der Webcast wurde mit Tiny Webcasts for Lecture(r)s erstellt.

Zentrale Aspekte

  • Programmierung bedeutet (meist) das Erzeugen von reinem Text.
    Im Prinzip ist also jeder Texteditor geeignet.
  • Programmierer verbringen viel Zeit mit dem Editor.
    Die Wahl kann für die Produktivität entscheidend sein.
  • Moderne Editoren bringen Funktionalität mit,
    die die Programmierung erleichtert (und Fehlern vorbeugt).
  • IDEs integrieren viele Werkzeuge in einer Oberfläche.
    Die Komplexität bedingt eine steile initiale Lernkurve.
  • IDEs ersetzen nicht die solide Kenntnis des Umgangs
    mit den grundlegenden Programmierwerkzeugen.

Fragen zur Vertiefung und Wiederholung

Diese Fragen dienen der persönlichen Beschäftigung mit der Thematik, werden aber nicht separat in der Vorlesung besprochen.

  • Warum sollte ein Editor zum Programmieren mehr als die grundlegenden Textoperationen beherrschen?
  • Welche zusätzliche Funktionalität eines Editors (gegenüber den reinen Textoperationen) ist für die Programmierung wünschenswert bzw. wichtig?
  • Was spricht für, was gegen die Verwendung von IDEs?

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.

  • Hunt, Andrew; Thomas, David (1999): The Pragmatic Programmer, Addison-Wesley, Boston
  • McConnell, Steve (2004): Code Complete. A practical handbook of software construction, Microsoft Press, Redmond, Washington
  • Passig, Kathrin; Jander, Johannes (2013): Weniger schlecht programmieren, O'Reilly, Heidelberg
  • Raymond, Eric S. (2004): The Art of UNIX Programming, Addison Wesley, Boston
de/lehre/programmierkonzepte/ss2020/04/index.txt · Zuletzt geändert: 2020/09/30 21:35 von 127.0.0.1