[Semi OT] The programming language wars

Paulo Pinto via Digitalmars-d digitalmars-d at puremagic.com
Fri Mar 20 11:31:06 PDT 2015

On Friday, 20 March 2015 at 17:25:54 UTC, H. S. Teoh wrote:
> 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
> did.
> 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
> point-and-grunt.
> T

When I use GUIs, my knowledge of keyboard shortcuts coupled with 
the mouse actions is no different than top gamer playing a 
FPS/RTS game.

Sure, GUIs might not beat CLIs in terms of scriptability, but 
GUIs coupled with REPLs sure do the job pretty well.

When I am on Mac OS X and Windows, reaching out for the CLI means 
using developer tools only available via the console or 
automating administration tasks.

On the other hand when at any other UNIX flavours besides Mac OS 
X, it seems the CLI is unavoidable.

As for CLIs regaining their central place in the world of 
computing, in a world going towards speech recognition and touch 
interfaces, I very much doubt CLI use will increase.


More information about the Digitalmars-d mailing list