The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Steffen Nurpmeso <steffen@sdaoden.eu>
To: Random832 <random832@fastmail.com>
Cc: Grant Taylor via TUHS <tuhs@minnie.tuhs.org>
Subject: Re: [TUHS] Command line options and complexity
Date: Thu, 05 Mar 2020 00:19:36 +0100	[thread overview]
Message-ID: <20200304231936.hyOtO%steffen@sdaoden.eu> (raw)
In-Reply-To: <5019a751-d69a-4839-9a56-b977b275070d@www.fastmail.com>

Random832 wrote in
<5019a751-d69a-4839-9a56-b977b275070d@www.fastmail.com>:
 |On Tue, Mar 3, 2020, at 13:44, Adam Thornton wrote:
 |> I've heard people say that there isn't really any alternative to this 
 |> kind of complexity for command line tools, but people who say that have 
 |> never really tried the alternative, something like PowerShell. I have 
 |> plenty of complaints about PowerShell, but passing structured data 
 |> around and easily being able to operate on structured data without 
 |> having to hold metadata information in my head so that I can pass the 
 |> appropriate metadata to the right command line tools at that right 
 |> places the pipeline isn't among my complaints3 
 |> <https://danluu.com/cli-complexity/#fn:W>.
 |> 
 |> Somewhat disingenuous. I mean, yes, that's true, but on the other hand 
 |> it means that you have to keep the "what Powershell commands operate on 
 |> what structure" in your head instead, since you can no longer assume 
 |> the pipelines to be a universal interface.
 |
 |Sure, but "stdin is a sequence of any type, and the argument is an \
 |expression that operates on that type or the name of a property that \
 |that type has" is universal enough.
 |
 |The part that has to operate on a specific structure isn't the command, \
 |it's the arguments.
 |
 |For example, a powershell pipeline to produce a list of files sorted \
 |by modified date is:
 |
 |gci . | sort lastwritetime | select name
 ...
 |*assuming that ls -t didn't exist*, to do this with unix tools that \
 |operate on text you would need:
 |
 |ls -l | [somehow convert the date to a sortable format, probably in \
 |awk] | sort | [somehow pick the filename alone out of the output - \
 |possibly with cut or sed or awk again]
 |
 |and it's very difficult to get tools like awk, sort, and cut to work \
 |on formats that contain more than one field that may contain embedded \
 |spaces (you can just about get away with it for ls output because the \
 |date is always three "words").

Yes, that is really bad, except only that a lot of output is
pretty portables since a very long time.  FreeBSD started using
libxo in many base utilities, which can output in structured
formats.  This includes CSV and even CBOR :), i do not know how
the latter integrates in Unix text utilities however.  (I think
the format string syntax, that a bit originates in QT ??, could
have been warped to something better, like the Python ones, plus
further extensions, however.  But it is an improvement to what the
standard formats end up with when reordering etc. comes into
place.)

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

  reply	other threads:[~2020-03-04 23:27 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-03 18:15 Jon Steinhart
2020-03-03 18:44 ` Adam Thornton
2020-03-04  4:11   ` Tyler Adams
2020-03-04  6:03     ` Dave Horsfall
2020-03-04  6:48       ` arnold
2020-03-04 21:17         ` Dave Horsfall
2020-03-05  0:49         ` Lyndon Nerenberg
2020-03-05 20:54           ` Dave Horsfall
2020-03-05 22:01             ` William Cheswick
2020-03-04 21:50   ` Random832
2020-03-04 23:19     ` Steffen Nurpmeso [this message]
2020-03-05  6:12     ` Alan D. Salewski
2020-03-04 22:03   ` Random832
2020-03-04 23:25     ` Terry Jones
2020-03-10 23:03 ` Dan Stromberg
2020-03-11  3:18   ` Dave Horsfall
2020-03-11  4:02     ` Steve Nickolas
2020-03-11 22:56     ` Greg 'groggy' Lehey
2020-03-11 23:14       ` Dan Cross
2020-03-12  0:42         ` Greg 'groggy' Lehey
2020-03-12  0:53       ` Steve Nickolas
2020-03-12  3:09         ` Greg 'groggy' Lehey
2020-03-12  3:34           ` Steve Nickolas
2020-03-13  1:02             ` Greg 'groggy' Lehey
2020-03-12  5:38         ` Dave Horsfall
2020-03-12  6:48         ` Peter Jeremy
2020-03-12  7:37           ` Steve Nickolas
2020-03-12  7:42             ` Warner Losh
2020-03-12 23:57           ` Greg 'groggy' Lehey
2020-03-12  5:22       ` Dave Horsfall
2020-03-12  5:35         ` Steve Nickolas
2020-03-13  0:36         ` Greg 'groggy' Lehey
2020-03-13 11:26           ` Dave Horsfall
2020-03-14  2:13           ` Greg A. Woods
2020-03-14  4:31             ` Greg 'groggy' Lehey
2020-03-04 14:06 Nelson H. F. Beebe
2020-03-04 16:17 ` John P. Linderman
2020-03-04 17:25   ` Bakul Shah
2020-03-05  0:55   ` Rob Pike
2020-03-05  2:05   ` Kurt H Maier
2020-03-05  4:17     ` Ken Thompson via TUHS
2020-03-05 14:53       ` Dan Cross
2020-03-05 21:50       ` Dave Horsfall
2020-03-05 21:56         ` Warner Losh
2020-03-08  5:26           ` Greg 'groggy' Lehey
2020-03-08  5:32             ` Jon Steinhart
2020-03-08  9:30               ` Tyler Adams
     [not found]                 ` <CAC0cEp8eFRkkLTw88WVaKZoKy+qsrhuC8LkzmmsbqtdZgMf8eQ@mail.gmail.com>
     [not found]                   ` <CAEuQd1D7+dfap98AwPo2W41+06prrcVaAWk3Ve-ve0uQ0xBu3Q@mail.gmail.com>
2020-03-09 21:06                     ` John P. Linderman
2020-03-09 21:22                       ` Kurt H Maier
2020-03-11 17:41                         ` John P. Linderman
2020-03-11 21:29                           ` Warner Losh
2020-03-12  0:13                             ` John P. Linderman
2020-03-12  0:34                               ` Chet Ramey
2020-03-12 12:57                             ` John P. Linderman
2020-03-12 19:24                               ` Steffen Nurpmeso
2020-03-08  9:51             ` Michael Kjörling
2020-03-05  4:57 Doug McIlroy
2020-03-05 22:17 ` Diomidis Spinellis
2020-03-10 16:15 Doug McIlroy
2020-03-10 17:38 ` Dan Cross
2020-03-10 17:44   ` Bakul Shah
2020-03-10 18:09     ` Dan Cross
2020-03-10 18:42 Doug McIlroy
2020-03-10 19:38 ` Dan Cross
2020-03-13 10:45 Dave Horsfall
2020-03-14  4:35 ` Greg 'groggy' Lehey
2020-03-14 19:52   ` John P. Linderman
2020-03-14 20:25     ` Steffen Nurpmeso

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200304231936.hyOtO%steffen@sdaoden.eu \
    --to=steffen@sdaoden.eu \
    --cc=random832@fastmail.com \
    --cc=tuhs@minnie.tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).