On Wednesday, 30 September 2015 at 01:59:38 UTC, Jonathan M Davis
wrote:
On Wednesday, 30 September 2015 at 00:20:46 UTC, H. S. Teoh
wrote:
On Tue, Sep 29, 2015 at 04:50:37PM -0700, Walter Bright via
Digitalmars-d wrote:
Really, what's the case for not supporting this? Am I really
a unique snowflake?
Nope, you're just too smart to use a GUI. ;-)
Issues like these were part of what convinced me that the
so-called desktop metaphor was bunk and that the current
infatuation with GUIs is a case of emperor's clothes, and
drove me to embrace the *nix shell.
GUIs work quite well for certain types of applications -
especially those that are very visual (e.g. Photoshop). And in
general, if they're done correctly, they allow you to do a
certain set of operations efficiently and easily, but by their
very nature, they don't tend to be very flexible, and when you
do try and make them flexible, they tend to get very
complicated, very fast.
Contrast that with Unix utilities, which are usually designed
to do one job and do it well and then interoperate with other
such utilities cleanly. Because each one is simple, they work
well, and because they're composable, you have a _lot_ more
flexibility than you get with a GUI. So, in general, the unix
philosophy just ends up working better. But it _does_ require a
certain kind of thinking from the user that tends to go well
with programmers but not so well with the average joe, and even
with that in mind, there _are_ applications that work better as
GUIs.
Excellent unfolding of this point, and one I have been pondering
for my own use case. I would like to be able to explore data
interactively using various building blocks written in D that I
can strap together quickly. User interfaces matter so much for
things you do everyday, yet often people are more concerned with
making it shiny for the marketing guys than productive for
serious users - especially so for relative monopolies.
It's interesting to see how different applications tackle this
problem. It doesn't necessarily need to be either GUI or command
line. For example, the Bloomberg terminal is kind of a
combination (more old-school GUI than not, and the GUI bit is the
one I like least). The ipython/Jupyter notebook is another kind
- that's great for writing intermediate size chunks of code but
not so much for use as a shell. So another possibility is the
qtconsole style. (Maybe R and Julia, but I am less familiar with
those). I think in both Jupyter and qtconsole you can have
graphical widgets (certainly in Jupyter).
Adam Ruppe's terminal is quite an interesting approach. as you
can display images inline within the terminal window, and not
hard to make them interactive. Possibly a shell with graphics
and some kind of light scripting language like Lua can be the
best of both worlds, in particular in relation to the
composability aspect.
In Bloomberg if I want to see which bonds are deliverable for the
front month gilt future, I can type "G A[F9]DLV[ENTER]" and see
an editable analysis window pop up - not quite a commandline, but
shortcuts on steroids. It's easy to replicate this kind of
shortcut in a terminal (including prompts/helptext etc) whilst
still having the ability to do more powerful things using the
commandline without context switching.
for example findticker --macro --confidence/consumer GBP | less
(not something that will go quickly in Bloomberg because GUI).
or findticker -- macro --confidence/consumer OECD | chart -s 2009
-f monthly
(find all OECD consumer confidence numbers and plot them since
2009)
Laeeth.