[gelöscht]
Hi,
ich hatte gerade über das Problem von CLI Programmen nachgedacht und würde gerne eure Meinung dazu hören.
Eine der grundsätzlichen Fragen die man sich stellt wenn man über CLI vs GUI nachdenkt ist, ob man lieber Maus oder Tastatur einsetzt. Ich persönlich denke, dass die Tastatur theoretisch das bessere Eingabegerät ist.
Nicht, weil man, wenn man die Maus benutzt, zwangsläufig die Augen vom Inhalt des Programms nehmen müsste. Bei guten Interfaces klickt man auf den Inhalt selber, während man ihn liest oder gerade gelesen/gesehen hat. (obwohl ich mir bei diesem Punkt nicht ganz sicher bin, vielleicht kann jemand anders das noch weiter ausführen)
Sondern, weil man mit der Tastatur für verschiedene Dinge *unterschiedliche* Bewegungen macht, während man mit der Maus immer das gleiche tut. Das Stichwort lautet hier "muscle memory". Das Gehirn speichert ab "diese Fingerbewegung bewirkt das und das". Bei der Maus muss man immer wieder neu hingucken.
Dass die Tastatur vielleicht deshalb so viele Leute ungern benutzen liegt vielleicht daran, dass QWERTZ/Y sehr unergonomisch zu tippen ist und die Schreibmaschinen-Tastenanordnung an sich ebenfalls unergonomisch ist, entgegen der Meinung vieler Unwissenden. Es gibt dafür zwar Lösungen (z.b. Neo-Layout oder Typematrix 2030), aber das ist ein anderes Thema.
Der Grund dafür, dass ich klassische CLI-Anwendungen für nicht optimal oder zukunftsfähig halte, ist, dass die Darstellungsmöglichkeiten durch den textbasierten Ansatz stark eingeschränkt sind. nCurses ist zwar ein Ansatz, aber immer noch wesentlich unflexibler als ein echtes grafisches Layout. Man kann auf einem A*B großen Terminal einfach nicht so viel Informationen darstellen wie auf einem gleich großen GUI. Trennlinien zum Beispiel nehmen den Augen Arbeit ab, verbrauchen aber im textbasierten Ansatz genau ein Zeichenfeld, im GUI dagegen nur wenige Pixel.
Nicht umsonst sagen viele Leute, dass Konsolenanwendungen (mir fällt spontan z.B. mutt ein) aussehen wie aus den 80ern, was ja auch stimmt. Ich rede hier nur von Desktopanwendungen! Es gibt sicher viele Fälle, in denen ein textbasierter Ansatz die einzige Möglichkeit ist.
Meine Idee deshalb wäre, zwar Programme zu entwickeln, die sich zu 100% per Tastatur bedienen lassen (Vim oder Emacs sind hier gute Vorbilder), diese aber auf GUI-Basis aufzubauen. Wenn man unnötige Schaltflächen für die Mausbenutzung weglässt, wären zwar die Inhalte grafisch und ansehnlich, aber das Interface dennoch höchst effizient zu bedienen.
Die einzigen Programme, bei denen ich sowas bisher gesehen habe, sind Windowmanager, die auf die Tastaturbenutzung ausgelegt sind. Bei denen ist genau das der Fall, was ich eben beschrieben habe. Wobei fast alle solche Windowmanager durch die Konsole konfiguriert werden, sie sind also quasi auf dem besten Weg dorthin, was ich als optimal ansehen würde.
Ich glaube, dass es nicht zu schwierig wäre, Konfigurationsdialoge etc. als GUI so darzustellen, dass sie mit der Tastatur perfekt bedienbar sind. Natürlich meine ich damit nicht, dass man sich durch alle Einstellungen durch-"Tab"ben kann, wie es schon jetzt bei vielen Programmen der Fall ist! Diese GUIs, durch die man sich durchtabben kann (oder per Pfeiltasten), sind eigentlich für die Mausbenutzung gedacht, in einem solchen Fall ist die Maus natürlich effizienter, weil man direkt dorthin kommt, wo man hinwill.
Man müsste grafische Interfaces haben, in denen man auch mit der Tastatur direkt dorthin kommt, wo man eine Eingabe machen will. Und im Moment bin ich recht optimistisch, dass dies technisch möglich ist.
So, wie bereits gesagt würde ich gerne eure Ideen dazu hören. Gibt es etwas ähnliches bereits? Wenn nein, warum nicht?
Viele Grüße,
frontline
Kinch
Das Thema erschöpft sich aber leider nicht nur an der Frage, ob Maus oder
Tastatur benutzt wird.
Prinzipiell halte Maus und Tastatur in vielen Settings für relativ
gleichwertige Eingabe-Geräte. Das Problem für mich ist eher der Mix aus Maus
und Tastatur. Eine Hand hat dadurch immer eine doppelte Belegung, d.h. eine
Hand muss sowohl Maus als auch Tastatur verwenden. Diese Konkurrenz stört mich
zumindest sehr bei der Nutzung von Programmen.
Wie auch immer: Der Hauptgrund für CLI-Programme ist eher, dass sie Text als
Eingabe und als Ausgabe haben. Dadurch hat man meistens eben eine Uniformität,
die such durch GUIs nicht erreichen lässt. Man kann also leicht Programme
schreiben, die CLI-Programme benutzen, bzw. CLI-Programme sich gegenseitig
benutzen lassen. Das ist eben nur dadurch möglich, weil es so eine Uniforme
Repräsentation von Ein- und Ausgabe gibt.
Solange GUI-Programme noch ausschließlich von Menschen genutzt werden können,
werden sie CLI-Programme nicht ersetzen können.
Was stimmt ist, dass die reine Text-Darstellung sehr limitierend ist. Ich
könnte mir da als Alternative eher eine Ausszeichungssprache vorstellen.
Also nehmen wir ein mal als Beispiel das Problem, dass ich einem Programm
mitteilen möchte, was es tun soll. Das Programm könnte nun seine eigene
Schnittstellen über ein definierte Auszeichnungssprache mitteilen. Wenn das
Programm interaktiv von einem Menschen benutzt wird, könnte diese Schnittstelle
dann in Form einer GUI repräsentiert werden; das gleiche Programm könnte dann
aber auch wiederum von anderen Programmen über RPC-Calls oder ähnliche
Mechanismen benutzt werden.
Die GUI wäre außerdem flexibel, es könnte eine HTML-GUI sein, eine klassiche
GUI oder auch wieder ein Text-Terminal.
Aber sowas ist schwer zu realisieren und es gibt auch fast keine Bestrebungen
neue GUIs oder ähnliches zu entwickeln. Zumindest zur Markreife kommt fast nix.
Es gibt Spielerreien mit Tablets und Siri und Co, aber eine echte Alternative
ist das Zeug nicht. Letztendlich ist das Mensch-Maschine- und
Maschine-Maschine-Interface seit mindestens 1973 gleich geblieben.
[gelöscht]
T.I.C. schriebDie Antwort von Kinch lässt mich an
LCARS als CLI/GUI - Alternative denken.
Wo wir gerade bei Touchscreens sind... die halte ich übrigens für eben so wenig optimal. Anzeigefläche ist begrenzt. Wenn du mit dem Finger was eingeben willst, müssen die Schaltflächen entsprechend groß sein, oder es ergeht dir wie bei einem Iphone (was, wie ich gehört habe, ja auch nur Übungssache sein soll). Außerdem siehst du ja nicht, wo dein Finger gerade drüber ist, was bedeutet dass vor allem die Präzision unter der ganzen Geschichte leidet.
Ist aber natürlich ein innovativer Ansatz, der auch vor dem aufkommenden Windows 8 nicht gerade an Aktualität einbüßt.
Asbestbrezel
Ich würde sagen, mit CLI kommt man meistens schneller zum ziel und das arbeiten damit ist auch angenehmer. Allerdings nur, wenn man sich auskennt und bereit ist die Befehle auswendig zu lernen. Mit der Maus arbeitet es sich einfach intuitiver, selbst wenn man ein Programm vorher noch nie benutzt hat, kann man anhand von icons und dem erforschen der menüs ne menge selber rausfinden, ohne irgendwas nachlesen zu müssen.