Pergunta

I'm starting to develop a new program. It's basically a database interface, run a few queries, show the data in a nice way and be able to easy input new data (like this website).

Thinking about which programs I use daily I realise that only my web-browser is a GUI program, the rest is TUI (in this case TUI is Text User Interface, as in ncurses). So I plan to write this in ncurses with a vim/mutt-like interface. This program will only be used by experienced users and speed is much wanted.

I've found one study about this: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2655855/

All other studies I've found has only looked at novice users and for them GUI is better. For an experienced user that will work daily with the program what is best?

This is sligthly similar but the difference is that this question was about a non-interactive program:
Is the development of CLI apps considered "backward"?

Foi útil?

Solução

I'm not convinced a Text-UI is any different than a tab-oriented GUI, you've simply changing the display technology from pretty pictures to ugly pictures (YMMV :-) )

However, a text-based interface that can have a GUI slapped on top is an excellent idea. Think of all the text-based linux config files, then think of Webmin that allows you to view them as web pages. You can still edit the files by hand if you prefer or if its easier/quicker, but you also get the benefit of the easy-access web view.

So I'd say develop a CLI by all means, but a TUI.. no, no point in it at all. You'd be better off with a web UI first, a touch-app UI second, or a thick-client GUI third.

Outras dicas

I don't think it's at all crazy. It all depends on who your target audience is. If you write an app and expect an average user to use it, you are probably better off with a GUI.

If your app is a for developers, especially those that are used to CLI. Or if your app is targeting a sys admin who sits at his workstation and SSH's into 30+ other machines on a daily basis, your tool might just hit the sweet spot for them.

In all my jobs, I always had some kind of "console utilities" module that would make it super easy to query on a command line for different data types from the user and had some kind of menu driver. I'd write that thing in 2 days and then make gradual improvements over time. I've found such utilities to be extremely useful if for nothing else then for quickly spinning up developer tools. Whenever I'd show a new guy how to use them, I'd get a chuckle at non-GUI approach but the bottom line is that those tools accomplished exactly what I needed them to do and non-GUI approach was so lightweight that I could actually introduce and maintain these tools.

Licenciado em: CC-BY-SA com atribuição
scroll top