🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #4159

Re: What does an anti-perl look like

#4159
From: David Gudeman
Date: Tue, 18 Jun 1991 19:13
49 lines
2953 bytes
In article  <1991Jun18.004338.23499@jpl-devvax.jpl.nasa.gov> Larry Wall writes:
]In article <2154@sheol.UUCP> throopw@sheol.UUCP (Wayne Throop) writes:
]:a philosophy that Lisp folks
]: have been preaching for years.  In perl, one is partly abandoning the
]: the notion of small, stand-alone tools that do one thing well, and
]: instead adopting the monolithic everything-in-one-language approach that
]: Lisp has always had.  You know.  "Swiss army chainsaw."

]That's not too far off the mark...

Actually, _is_ off the mark.  This characterization of Lisp as a
"Swiss army chainsaw" comes from Unix types who are trying to
characterize lisp as a "tool" so that they can have a nice mental box
to put it in.  However putting Lisp in a group with lex, yacc, make,
awk, etc. is not quite correct.  It would be no less (and no more)
accurate to characterize Lisp as an operating system.

Basically Unix works on the principle that all tools are seperate
programs, loaded seperately by the operating system.  This has several
disadvantages -- most obviously that running a seperate program as a
seperate process is expensive.

Another problem with this approach is that communication between tools
is awkward and inefficient because it is all done through character
streams or disk files.  For tools that want to communicate complex
data (like a parser communicating with a code generator), each one has
to be able to read and write character representations of the data.
This is expensive in both developement time and execution time.

The Lisp philosophy is to have a system where tools communicate
through high-level data structures, and where communication between
tools is no different from communication between procedures within a
tool.  Lisp tries to tie everything into single model and avoid the
two-level system of Unix.  In Lisp, the development language, the
shell, the "pipes", the "file system" and sometimes the process
handler are all the same system (Lisp) and the tools are Lisp
procedures.  This isn't any more monolithic than Unix, it is just that
the divisions are put in different places.

You can have the "tools" approach in Lisp, but there is no distinction
between a tool and a library routine.  In Lisp, you don't need both an
"rm" and an "unlink()".  If you have "cp" you don't have to code your
own "copy_file()".  And when you write a compiler, you don't have to
decide whether to put the parser and code generator in a single
program for speed, or seperate them for maintainability.
--
					David Gudeman
gudeman@cs.arizona.edu
noao!arizona!gudeman
Technical Details
Message-ID: <4377@optima.cs.arizona.edu>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!asuvax!noao!arizona!gudeman

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!asuvax!noao!arizona!gudeman
From: gudeman@cs.arizona.edu (David Gudeman)
Newsgroups: comp.lang.misc
Subject: Re: What does an anti-perl look like
Message-ID: <4377@optima.cs.arizona.edu>
Date: 18 Jun 91 19:13:23 GMT
Sender: news@cs.arizona.edu
Lines: 49