The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: cowan@ccil.org (John Cowan)
Subject: [TUHS] TUHS Digest, Vol 32, Issue 8
Date: Sat, 10 Jun 2006 02:28:33 -0400	[thread overview]
Message-ID: <20060610062833.GB4461@ccil.org> (raw)
In-Reply-To: <8980E2E3-2E56-4F5B-91C4-80046885E631@gnu-darwin.org>

Evan de Riel scripsit:

> Q:  ... do you think the idea of "one tool doing one job" has been  
> abandoned? ...
> A:  Those days are dead and gone and the eulogy was delivered by Perl.
> 
> I think his point is that what Perl and its friends--the other high- 
> level, interpreter languages like Python, Ruby, and maybe (ick) PHP-- 
> have gotten to the point where they can be used as a single framework  
> for writing short, ad-hoc programs in these languages that replace  
> combinations of the whole mess of Unix utilities like grep, cat, sed,  
> awk, uniq, sort, column, rs, head, tail, and maybe even more complex  
> tools like wget or hexdumps.

Well, I don't have a problem with replacing the shell-and-utilities
framework with a more consistent one.  The trouble is that the essential
idea of that framework, what I called "coarse-grained dataflow"
in the last posting, and which has been called "plumbing" since the
earliest days, gets lost in the process.  Perl-level programming is only
incrementally better than C-level (admittedly the increments are good
ones, like garbage collection and simple strings and dynamic typing).

The only consistent framework I know of that preserves plumbing as a
functional programming approach is scsh <http://www.scsh.net/>, and much
as I love Scheme personally, it's just too alien to mainstream ways of
thinking to have a real chance of survival as anything but a niche of
a niche.

What I'd really like to see is something that merges Lua and rc(1), a
lightweight but powerful language with a lightweight but powerful shell,
in a clean way.  I even messed around with constructing a unified Yacc
grammar to use them jointly, with the notion that a top-end parser could
compile the hybrid into pure Lua using a Posix library.  But I got bogged
down and never went back there.

Lua might be *too* lightweight, though:  Python comes with a big library
of useful stuff, is a fair approximation to Lisp (as Lua is also), and
could perhaps be transmogrified into a shell somehow, given how dynamic
everything in Python is (even the variable and function declarations
are really executable statements).  I'll think on it further.

-- 
Barry gules and argent of seven and six,        John Cowan
on a canton azure fifty molets of the second.   cowan at ccil.org
        --blazoning the U.S. flag               http://www.ccil.org/~cowan



  reply	other threads:[~2006-06-10  6:28 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.5.1149904800.38519.tuhs@minnie.tuhs.org>
2006-06-10  3:46 ` Larry McVoy
2006-06-10  3:58 ` Larry McVoy
2006-06-10  4:40   ` John Cowan
2006-06-10  6:04     ` Evan de Riel
2006-06-10  6:28       ` John Cowan [this message]
2006-06-12 13:02   ` Jose R. Valverde

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=20060610062833.GB4461@ccil.org \
    --to=cowan@ccil.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).