[clug] Why do we do what we do in Linux? [was Re: Text editor]

Scott Ferguson scott.ferguson.clug at gmail.com
Mon Oct 27 20:17:20 MDT 2014


On 28/10/14 11:14, Hugh Fisher wrote:
> On 28/10/14 09:28, Hal Ashburner wrote:
>> it pretty disappointing. So I guess your mileage may vary. I'm
>> completely sold on the command line as a powerful tool, but that essay
>> didn't make the sale. GUIs are ideal for infrequently done, ad-hoc or
>> one off tasks because their commands are more discovervable and you
>> can get immediate feedback to see if it did what you thought it would
>> and undo it if not.
> 
> This is an attitude I've often seen expressed by Linux/Unix people. It's
> usually true for programming and system administration, but not in the
> many other fields where computers are being used. And IMNSHO, it is very
> damaging if you want to promote open/free software.

Your opinion is noted, and like all "opinions", you deserve it.
CLI is used in other areas than "system administration and programming"
on Linux (as are GUI tools). "Not in many other fields" is, um,
difficult to qualify - don't you think?

As another poster has suggested (I paraphrase as I'm lazy) - Use what
suits your workflow.

> 
> To start with, why can't command line or text-only tools be
> discoverable? Nano for example is great for new Linux people because it
> is discoverable with a few lines of help at the bottom, while vi is
> notorious for it's "Help! How do I get out?" problem.

A trade-off between screen clutter and usablity? I'm guessing, and agree
the more powerful the tool the bigger the learning curve. I don't know
that PowerShell is a new paradigm in that sense.

In both instances the user can open another terminal and seek help (or
learn before they leap).

> 
> 
>> When you find yourself repeating the same steps 3
>> or more times the command line wins, then being able to cut and paste
>> that command line command into a text file with any name you give it
>> and run it as a script - no gui can touch that. Recording VBA macros
>> in MS office is about as good as you can get in a GUI equivalent and
>> it's greatly inferior to intermediate command line usage for such
>> tasks.
>>
> 
> GUIs are also idea for frequently done and very complex tasks such as
> editing magazines, sound, music, images, video, film. And the people
> doing these tasks wanted to automate the repetitive bits, which led to
> AppleScript, COM, and VBA being developed in the late 1980s and 1990s.
> If you think that recording VBA macros is all people do, you need to dig
> deeper.
> 
> These systems don't follow the "Unix way"

You raise a good point - though probably not the one you wish to make
(strawman-ish?).

Linux is *not* Unix. Never was, and was never meant to be. Neither in
the licensing sense nor in design.
Not kernel and not userland (including the roughly 14% average that GNU
constitutes)

> but despite this, or maybe
> even because of this, they have very powerful capabilities:

Yes. GUIs can be highly configurable. Some are hybrid GUI/ClI.

> 
> * Two way communication. Instead of pipes, you get events and/or a sort
> of remote procedure call. Two programs can talk back and forth, so one
> program can send an image to another for filtering or something, then
> get it back.
> 
> * Complex data types. Because they're based on clipboard mechanisms
> rather than byte streams, the sender can ask "I have an image, I can
> send it in PNG, JPEG, or TIFF, which would you like?" You don't have to
> muck around with files in /tmp.
> 
> The new Microsoft PowerShell

Now useful, previously not very (Give MS enough time and money and
they'll build Unix is the old joke).

Jokes aside, PowerShell is a vast improvement on the previous shell,
I've used it and liked it.

> has typed data at the command line level,
> which AFAIK no Unix shell can do yet.

I doubt you'll be seeing a Linux shell that supports .COM, .NET. ,WMI
anytime soon/ever. Treating "everything as an object" can be useful -
but not always.

You can compare apples and oranges - contextually. Likewise commands and
commandlets. Set-Location is could be more powerful than cd, cd is
certainly easier to type (and it's work in scripts on other *nix,
Set-Location not so much - it may not even work on W11).

Fortunately there are a number of Linux shells to choose from, all
offering different capabilities (that don't vanish a la Silverlight
soley at the whim of a company).

None - PowerShell included do "all possible shell things".

Choice is good. Time is the master.

> 
> * Dynamic linking. It's normal in the Mac/Windows worlds for apps to
> have a dynamic linking API defined (per app, like Photoshop plugins, or
> standardized, eg COM). One program can directly call routines in
> another. People write components to work with existing applications.

Linux has plenty of IPC capable programs[*1]. And, as with other OS, it
can interoperate with other OS programs.

And you've heard on Mono no doubt.

[*1]
http://www.tldp.org/LDP/lpg/node7.html

> 
> This obviously has downsides - eg the ActiveX disaster in web pages -
> but it wasn't necessarily a dumb idea at the time. Xerox PARC were
> experimenting with sending LISP code between programs in the 1970s.
> 
> 
> These various forms of non-Unixy IPC have been around for a couple of
> decades now. And they are a major reason why people stay with Mac/MS
> Windows rather than switching. 

Don't conflate an aversion to change/learning new things with the
superiority of a particular OS.
Disclaimer: I don't hold Linux (or $Distribution) as "better". That $OS
is better is a simplication that demonstrates only that simple is a
synonym for dumb. Better for me - given the constraints of my useage,
existing knowledge base, hours in a day.


> It's not enough to write a new word
> processor that can open MS Word files; it would have to fit seamlessly
> into all these complex AppleScript/COM/VBA pipelines.

Also known as "lock-in"...? Not necessarily vendor e.g. it's take 300
peeple years to refactor all our perl/VBA/Cobol/Fortran so we can recode
into something else (that's if we can find someone to make sense of it).

> 
> So imagine a financial trading firm with a system of Excel spreadsheets,
> databases, and report generators; handling and generating megabytes of
> financial data each day. (To anyone with a formal computer science
> education it will look like a horrible sphagetti coding mess; but it
> works.) 

Yes. Though, in my experience it that area, generally the result of lock-in.

> In walks some Linux enthusiast who says "Hey! Look, I can pipe
> ASCII text from one program to another! Isn't that great?"

Apropos of what?
Try replacing Linux and ASCII with some other fanboi... and their "it's
the best method, I've never used anything else for more than 10
minutes). That's why we use weighted matrixes instead of corner cases
that defy critical thinking.

> 
> 
>     cheers,
>     Hugh Fisher
> 


Kind regards



More information about the linux mailing list