[Semi OT] The programming language wars

H. S. Teoh via Digitalmars-d digitalmars-d at puremagic.com
Fri Mar 20 10:23:27 PDT 2015

On Fri, Mar 20, 2015 at 05:04:20PM +0000, ketmar via Digitalmars-d wrote:
> On Fri, 20 Mar 2015 13:28:45 +0000, Paulo  Pinto wrote:
> > Given that I have been an IDE fan since the Amiga days, I fully
> > agree.
> > 
> > Every time I am on UNIX I feel like a time travel to the days of
> > yore.
> being on non-nix system is a torture. there aren't even gcc, let alone
> emacs/vim.

Yeah, I've become so accustomed to the speed of keyboard-based controls
that every time I use my wife's Windows laptop, I feel so frustrated at
the rodent dependence and its slowness that I want to throw the thing
out the window.

But at another level, it's not even about keyboard vs. rodent... it's
about *scriptability*. It's about abstraction. Typing commands at the
CLI, while on the surface looks so tedious, actually has a powerful
advantage: you can abstract it. You can encapsulate it into a script.
Most well-designed CLI programs are scriptable, which means complex
operations can be encapsulated and then used as new primitives with
greater expressiveness.

Sure you can have keyboard shortcuts in GUI programs, but you can't
abstract a series of mouse clicks and drags or a series of keyboard
shortcuts into a single action. They will forever remain in the realm of
micromanagement -- click this menu, move mouse to item 6, open submenu,
click that, etc.. I have yet to see a successful attempt at
encapsulation a series of actions as a single meta-action (I've seen
attempts at it, but none that were compelling enough to be useful.) You
can't build meta-meta-actions from meta-actions. Everything is bound to
what-you-see-is-all-you-get. You can't parametrize a series of mouse
interactions the same way you can take a bash script and parametrize it
to do something far beyond what the original sequence of typed commands

Ultimately, I think rodent-based UIs will go the way of the dinosaur.
It's a regression from the expressiveness of an actual language with
grammar and semantics back to caveman-style point-and-grunt. It may take
decades, maybe even centuries, before the current GUI trendiness fades
away, but eventually it will become obvious that there is no future in a
non-abstractible UI. Either CLIs will be proven by the test of time, or
something else altogether will come along to replace the rodent dead-end
with something more powerful. Something abstractible with the
expressiveness of language and semantics, not regressive


Indifference will certainly be the downfall of mankind, but who cares? -- Miquel van Smoorenburg

More information about the Digitalmars-d mailing list