don’t get my wrong, i like text based tools (in the sense that i can pipe text around). i just don’t get why some prefer “guis” in the console built with fancy vt100 stuff. maybe because they are easy to use with a remote connection. web applications seem to fill that empty space for more “clicky” guis, with browsers being ubiquitous clients (if you think about it, they are a bit like vnc clients on steroids..).
i hope that someday i’ll see some kind of system which uses more ideas from plan9 in regard to this. the idea that you can just use resources remotely with one standardized protocol is really neat. if you want to look at it from that direction, the web is used in this way, but never was designed for it, leading to the mess the web is now.
In some cases, I suspect it’s the constraints of the medium that make it better. Web browsing is probably the only thing that is truly awful in a console (except maybe documentation sites) but in a lot of cases, GUI tools succumb to the “too many bells and whistles” problem.
That’s my 10-second synopsis, anyway. There’s probably a whole thesis in there somewhere.
like i said, i like text based tooling, but i don’t get the point of having text based interfaces in ncurses, etc. which most of the time resemble their gui counterparts. i think with other paradigms guis could be really nice, but i agree that the default set of gui widgets that are used are somewhat limiting. if the strenghts of the terminal could be paired with the strenghts of guis in a sane way, that would be awesome :)
I’m currently involved with building one of these fancy text-mode “GUI” tools, using python & urwid.
Here’s why it seems like a good choice - It’s essentially an installer, so you’re running it once to set up a service on a remote system. If you wanted a nice featureful web GUI to do the same stuff, you’d need two steps - one step to install the gui and then another to run it and do the main thing. You’d also have to potentially deal with firewalls blocking http ports and other unpredictable end-user situations, so it’s starting to get messy, compared to “ssh over and run this command”.
I think that use case fits a text “GUI” pretty well. However, if it’s the kind of tool where you will use it over and over, so a little setup isn’t bad, the flexibility of a web GUI is often better.
For calculators, if you are an Emacs user you need to try C-x * * (aka M-x calc); the power of this Emacs package is out of this world and I use it practically every week when I need to add numbers, to do some binary/hexadecimal conversions, etc.
C-x * *
If you’re an Emacs user, you could replace most of the things on this list with some special mode. gnus for mail, elfeed for RSS feeds, evil to shake editing text up a bit, eww if you absolutely have to browse the web, Calendar/Diary for your calendar and diary, erc/rcirc for IRC, mpc for an MPD client or bongo to play music, dired for file management, and a good bit of games. tetris rings a bell.
Can’t disrespect calc either. Once you go RPN, you can’t go back.
bc isn’t simple! You can do really sophisticated calculations by writing functions for it. Check out some examples here!
git (a fast, powerful patchwork of scripts and commands)
mercurial (hg) (fast, powerful, predictable, and mostly written in Python)
bazaar (fast, powerful, predictable, and purely written in Python)
darcs (slower, and less popular)
Brutal! I remember once having the displeasure of scrolling through the hundreds of thousands of lines of bash in git. Do people complain a lot about darcs being too slow?
I was also interested to see bazaar called “fast”. Maybe it is according to some objective measure, but in my experience (working with Ubuntu and a couple other “academic-y” projects a few years back) it is not.