staging.inyokaproject.org

ncurses basierte Programme?

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Sascha Team-Icon

Avatar von Sascha

Anmeldungsdatum:
15. Oktober 2004

Beiträge: 3651

Hallo Zusammen,

ich wollte fragen warum es eigentlich so wenige ncurses basierte Programme gibt.

Liegt es daran das ncurses obwohl es zum GNU-Projekt gehört unter eine eigene Lizenz fällt? Ich denke das so manches komplexere Programm für die Konsole das viel Benutzerinteraktion benötigt mit ncurses eine ansprechendere Oberfläche bekommen könnte und deshalb wundert es mich das es so wenig zum Einsatz kommt.

Was denkt Ihr warum so wenig ncurses Programme gibt?

Grüße
Sascha

boom1992

Anmeldungsdatum:
16. Dezember 2006

Beiträge: 538

Vielleicht weil man sich lieber ne richtige GUI baut, sonst gar keine ;/

Sonst kp ☹

Sascha Team-Icon

(Themenstarter)
Avatar von Sascha

Anmeldungsdatum:
15. Oktober 2004

Beiträge: 3651

Ich bin auf die Frage gekommen als ich auf heise.de von Alpine, dem Nachfolger von Pine gelesen habe. Über ncurses könnte man eben viele Konsolenprogramme imho angenehmer gestalten.

Zumindest vermittelt sich für mich der Eindruck das bei vielen Programmen für die Konsole ncurses interessant wäre.

Grüße
Sascha

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

Sascha hat geschrieben:

Liegt es daran das ncurses obwohl es zum GNU-Projekt gehört unter eine eigene Lizenz fällt? Ich denke das so manches komplexere Programm für die Konsole das viel Benutzerinteraktion benötigt mit ncurses eine ansprechendere Oberfläche bekommen könnte und deshalb wundert es mich das es so wenig zum Einsatz kommt.

Die Lizenz spielt wohl weniger ein Rolle. ncurses unterliegt der MIT Lizenz, die mit die liberalste aller Softwarelizenzen ist (abgesehen vielleicht von der WTFPL). Außer Namensnennung verlangt sie eigentlich nichts.

Sascha hat geschrieben:

Was denkt Ihr warum so wenig ncurses Programme gibt?

Aus Sicht der Programmierer:

  • Reine CLI Programme sind wesentlich einfach zu programmieren als curses-Programme. Kommandozeilenargumente sind in allen Sprachen mit den verfügbaren Bilbiotheken schnell geparst (getopt für C, optparse für Python, etc.), curses dagegen ist relativ aufwändig-

  • UIs mit curses zu gestalten, ist im Vergleich zu modernen GUI-Toolkits wie Qt oder Gtk extrem aufwändig. Es gibt z.B. keine Oberflächendesigner und nur wenig Automatismen für gebräuchliche UI-Elemente wie Toolbars oder Menüs.

  • Aus diesen beiden Punkten folgt, dass sich Programmierer oft lieber normale CLI-Programme schreiben, und bei Notwendigkeit einer graphischen Präsentation bzw. wenn das CLI überfordert ist, lieber gleich auf modernen GUI Frameworks zurückgreifen, da diese im Gegensatz zu ncurses die Programmierung von UIs ähnlich einfach gestalten wie das Programmieren von CLIs. Man darf nicht vergessen, dass die Programmierung der UIs zu den langweiligen Aufgaben eines Programmierers gehört (die meisten kümmern sich lieber um die Logik, das ist interessanter), und Programmierer meistens faul sind. Deswegen mögen sie Bibliotheken und Tools, die bei der Programmierung der UIs möglichst viel Arbeit abnehmen.

  • Programmierer von Konsolenprogrammen haben vielleicht eher wenig Erfahrung mit der Programmierung eventgesteuerter Oberflächen

Aus der Sicht der User

  • Man kann curses Programme nicht automatisieren.

  • Bei der Wahl zwischen TUI und GUI Programmen entscheiden sich Nutzer meist für letztere, und ziehen auf der Kommandozeile reine CLI-Programme vor. Als Beispiel meine Situation: Mit du lassen sich schnell mal Dateigrößen ermitteln, wenn ich allerdings eine gute Übersicht der Größenverhältnisse in einem Verzeichnis gewinnen will, ziehe ich Konqueror's Dateigrößenansicht ncdu vor. Hier sind GUI Programme meistens einfach mächtiger, da curses eben doch recht limitiert ist.

My 2 cents zu dieser Frage
lunar

Antworten |