Giles B. wrote:
shell scripts to generate new shell scripts, or to generate new lists
of shell commands? How many shell commands do you invoke with a list
of files? Unix is all code generation and lists. It’s Lisp in a
different form.
Anyway, long story short, “Code Generation in Action,” awesome.
Hmmm … well … I came to Unix fairly late in its evolution, having
spent most of the previous time as an assembly language and FORTRAN
programmer and having used a range of operating systems dating back to
such primitive beasts as the IBM 7090 without disks to “modern” systems
like Xerox CP-V and VAX/VMS.
My first encounters with Unix were, coming from VAX/VMS, quite
unpleasant. The editors didn’t make sense, the whole notion of shell
scripting rather than command files didn’t seem useful, etc. I
essentially used FORTRAN as a scripting language.
What changed that was that the company I was working for, Floating Point
Systems, merged with another company, Celerity Computing, that was
making a Unix (4.3 BSD) product. Instantly I had colleagues who knew all
this fancy Unix stuff, could write C code as well as I could write
FORTRAN, etc. It was sink or swim so I learned to swim.
But I don’t think Unix is as much about code generation and lists as it
is, at least initially, about text processing. The whole philosophy at
the time, before GUIs, etc., was that developers spent a lot of time
dealing with text files, whether they be code, numeric data, documents
or something else, so Unix should make that easy to automate.
IIRC spell checking was built into the very first versions of Unix, for
example. And I think the core idea of the Unix user interface is not
Lisp, lambda calculus, and AI so much as it is the notion of regular
expressions and the compiler-compiler. Again IIRC, lex and yacc were
also built into the first versions of Unix.
I guess I should get the book.