[comp.unix.questions] CALL FOR DISCUSSION: comp.unix.shell.programmer

roger@ncar.ucar.edu (Roger Rohrbach) (06/04/90)

		  C A L L   F O R   D I S C U S S I O N

	  Of a proposed newsgroup "comp.unix.shell.programmer"


Abstract.

    This is a call for discussion of a proposed new newsgroup, tentatively
named "comp.unix.shell.programmer".  The suggested purpose of this group is
to serve as a technical forum for the exchange of information about the
use of the Unix command language (shell) and its "operators" - the software
tools that Unix provides - for writing useful programs.  The programming dis-
cussion would concentrate on the Bourne and Korn shells, which are designed
for this purpose, but C shell programming could be addressed as well, as could
issues of portability, style, and the like.


Rationale.

    There is, amazingly, no newsgroup dedicated to the fine art of shell
programming.  As Kernighan and Pike [1] have noted, the shell is a powerful
programming language whose operators are whole programs.  Most "quick and
dirty" programming tasks can be done with some combination of the shell, awk,
sed, and the other standard Unix tools, and  many software tools designed for
general use are also appropriately implemented this way.  To program the shell
effectively requires knowledge both of its sometimes arcane syntax, and of
filters such as awk, sed, and grep, which are composed with one another via
the shell to perform complex operations.  Many software developers working
with Unix do not trouble themselves with learning how to use the shell and
other tools, often for lack of examples of non-trivial applications.  I learned
to program by reading _Software_Tools_ [2],  which introduced me to notions
such as

	- let the machine do the work for you
	- build on existing tools and make new ones combinable
	- solve a general problem
	- most of the solution today is better than all "tomorrow"

and other tenets of what is now called the "Unix philosophy".  This philosophy
has led me to resort to the shell more often than to C or some other language
when considering the development of a new software tool.  An ongoing exchange
of shell programming knowledge and experience on Usenet should help popularize
this approach and increase the effective use of Unix.
 
    I had initially formulated some other newsgroup proposals:

	comp.unix.tools	    discussion of "tools" as defined in [1];
			    would also encompass programs written in
			    C or other languages;  abandoned since
			    the only unifying concept is the "tools
			    paradigm" which is more philosophical than
			    practical, and since full-blown tools are
			    currently exchanged on comp.sources.unix

	comp.unix.shell
	comp.unix.awk
	comp.unix.sed
	...		    too fragmented;  the power of Unix lies in
			    the relationship between programs, not in
			    any one

but I have finally come to regard "shell programming" as the activity of
constructing useful Unix software tools without (typically) using a compiled
language.  Thus, it would be reasonable to expect information about regular
expression syntax, sed scripts, awk programming, the use of the join, comm,
uniq, tr, and sort commands in pipelines, and so on, to appear in this news-
group along with shell programming techniques.  I am open to suggestions for
alternative names for the group, if they convey the charter as defined here
more clearly.


Particulars.

    I propose that the newsgroup be unmoderated, to allow for Q&A and the
rapid exchange of diverse approaches techniques.

    The discussion period commences with this posting and will last until
June 15 if a consensus is reached by then, otherwise until June 30.  When
this period ends I will issue a call for votes accompanied by instructions
on how to vote.

    I am aware of the currently active proposal to reorganize comp.unix.
This proposal does not conflict with that one, and should reduce Q&A traffic
in the other groups, with the exception perhaps of comp.unix.newusers.


References.

[1]	Kernighan, B.W., and Plauger, P.J.  Software Tools.  Addison-Wesley,
	Reading, MA, 1976

[2]	Kernighan, B.W., and Pike, R.  The UNIX Programming Environment.
	Prentice-Hall, Englewood Cliffs, NJ, 1984

Roger Rohrbach                                  sun!wrs!roger    roger@wrs.com
- Eddie sez: ----------------------------------------------- (c) 1986, 1990 -.
|   {o >o                                                                     |
|    \<>) "I'm lurching between the aesthetic sublime & the quotidian grime." |