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
next prev parent 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).