... IT-Consulting, Aikido, Strategie und alles was mir sonst noch einfällt und nicht in mein englisches Blog passt...

Mittwoch, 23. Oktober 2013

Die Angst des Software-Entwicklers vor der Kommandozeile... ?

Haben Software-Entwickler denn Angst vor der Kommandozeile?

„Angst“ ist natürlich ein starkes Wort, aber es fällt mir schwer eine andere Interpretation für das Verhalten zu finden, wenn Entwickler für die Versionsverwaltung lieber Subversion als git verwendeten, weil es für git keine gut funktionierende Explorer-Integration (wie z. B. TortoiseSVN) gab1 und sie deshalb mit der Kommandozeile arbeiten müssten. Oder, dass eher Excel eingesetzt wird als SQLite um Tabellen auszuwerten, weil man für SQLite ja „immer die Kommandozeile braucht“. Oder, dass zwar die IDE-Funktion zum Erzeugen des auslieferbaren Produktes genutzt wird, aber nicht der Aufruf von make, rake, ant, maven, gradle etc. von der Kommandozeile.

Die Beispiele ließen sich lange weiterführen, aber die grundlegende Frage bleibt: Warum schrecken so viele Entwickler vor der Nutzung der Kommandozeile zurück?

Ist das Werkzeug des Software-Entwicklers nicht „Text“?

Tagein, tagaus schreiben Software-Entwickler Programmcode1. Zwar bei weitem nicht so viel, wie viele Nicht-Programmierer denken – nach verschiedenen Studien liegt das Verhältnis von Lesen zu Schreiben bei 7 zu 1 oder noch höher –, aber dennoch gehört das Schreiben von Worten in einer Sprache, die ein Programm interpretieren und bearbeiten kann, zum Alltag eines jeden Softwareentwicklers. Und nicht nur das, die meisten Entwickler beherrschen darüber hinaus noch eine ganze Reihe von solchen Sprachen, die sie benötigen um ihr Tagewerk zu vollbringen.

Woher also kommt der Widerstand gegenüber der Kommandozeile? Ist es die schlechte Benutzbarkeit der jeweiligen Kommandozeilen der Betriebssysteme? Die schlechte Dokumentation? Die Tatsache, dass die jeweilige Domäne schon komplex genug ist, und die Vereinfachung durch eine grafische Oberfläche dringend benötigt wird?

Ich habe leider wirklich keine Antwort und würde mich über Hinweise auf Erklärungsansätze – z. B. in den Kommentaren, aber auch gerne per Mail oder Twitter freuen.

Bis demnächst
  Michael Mahlberg


Fußnote

1 Ob es gut ist, dass es mittlerweile mit TortoiseGit ein Tool gibt, dass es ermöglicht, mit git nahezu genau so zu arbeiten, wie früher mit Subversion ist eine andere Frage

Quasi-Fußnote

2 Strenggenommmen manipulieren Softwareentwickler abstrakte Syntax-Bäume (AST), indem sie deren textuelle Repräsentation gestalten. Die heute noch übliche Weise, die textuellen Repräsentationen zu manipulieren, ist das Erfassen des Textes über die üblichen Methoden der Texteingabe (Tastatur, Sprache etc.). Hierbei wird die textuelle Darstellung jedes mal neu erzeugt, wobei heute kontext-erkennende Entwicklungsumgebungen bereits viele Vorschläge für die Vervollständigung der einzelnen Worte machen. Bereits 2003 allerdings stellte James Gosling eine Alternative zu dieser Herangehensweise vor: Eine Entwicklungsumgebung, die direkt den AST manipuliert und die textuelle Repräsentation nur noch für den menschlichen Benutzer generiert. Leider war „Jackpot“, so der Name dieses Projekts, kein großer Erfolg beschieden und heutzutage ist es schwer überhaupt noch Information über dieses Projekt zu finden.

Ein anderes System, das erfolgreich viele Jahre auf Texteingaben zur Softwareentwicklung – außer für Werte – verzichtete, war das von James Martin Associates (später von Texas Instruments gekauft) entwickelte Information Enginering Facility (IEF), aus dem heute das Tool CA Gen geworden ist, welches sich mittlerweise ebenfalls vom Gedanken der reinen Modellierung der Syntaxbäume entfernt hat.

Insgesamt scheint also die unsichtbare Hand des Marktes doch ein großes Interesse daran zu haben, dass Entwickler weiterhin in aktiv Text schreiben um Programme zu erstellen und maximal durch Werkzeuge wie die automatische Vervollständigung von Schlüsselworten unterstützt werden.