News for hackers. Stuff that matters.
Re:Fig: Visual Apps and Shortcuts for Your Terminal by oezi on Wednesday July 08, 2020 @02:40AM (#23767494)
I worked on this idea in 2003 [1] and we envisioned it to help a lot with discoverability and consequently learning curve. Our idea was more interactive in that editing in the UI would immediately be reflected in the terminal and vice versa. A power user would just type the whole command from memory but still have the ability to click a checkbox to add that rare/elusive switch. Beginners could do everything in the UI but quickly learn from seeing the command line string being built.

We worked towards automatically generate the UI from man pages (prioritized from examples found online) rather than manually developing each tool. As a student project we did not get very far.

[1] http://www.mi.fu-berlin.de/wiki/pub/SE/ThesisCommandLine/Ski...

Re:Fig: Visual Apps and Shortcuts for Your Terminal by mschrage on Wednesday July 08, 2020 @05:40AM (#23768359)
This is really interesting! I think that the scalable approach like you proposed in your thesis makes a lot of sense, but comes at some cost to the user experience.

Rather than being 'smart' and automating everything, we want to make developing apps really easy and familiar.

I'm curious what the biggest challenges were for you with the project? Maybe we could build on your research.

Re:Fig: Visual Apps and Shortcuts for Your Terminal by oezi on Wednesday July 08, 2020 @09:52AM (#23769864)
It has been a long time, but I think we struggled most with:

- What is the best architecture to enable this? I think we struggled a lot with wanting to hook on the shell level where the commands are managed, the UI client where the user interface would have to be shown and terminal emulation where it is all key strokes and cursors.

Today I believe that this would really need something like the Language Server Protocol being implemented in bash itself. Today we have bash completion scripts, but still not something as comprehensive as needed.

- How to separate everything into reusable blocks? For instance extracting parameters from man pages, storing as generic config files, whether to offer a DSL for designing the UIs, etc. We did not want to be stuck with one particular terminal, such as KDE's Konsole (for which a student did another prototype [1] in German).

[1] https://www.inf.fu-berlin.de/inst/ag-se/theses/QuintelaGarci...