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." |