Subject: Re: Theories on why Lisp source *seems* to have less comments?
From: (Rob Warnock)
Date: Wed, 26 Jul 2006 00:46:03 -0500
Newsgroups: comp.lang.lisp
Message-ID: <>
Tim X  <> wrote:
| (Rob Warnock) writes:
| > Dunno, sorry. I've never [knowingly] used compiled Tcl.
| In fact, Tcl sort of led me to lisp. I started doing some scripts
| which used lists of regular expressions to process data files, but in
| some cases the data files were themselves these lists - sort of a poor
| mans code as data as code idea. However, some things were hard to
| achieve and then a friend pointed out that the things I was trying to
| do in Tcl were pretty much native and more natural and powerful in a
| lisp style language. 

Tcl sort of led me to Lisp, too, but not for the reasons you cite.
I was doing user-mode hardware development/debugging using TCL as
a base, with a ".so" of application-specific C code bolted on the
side ["mmap()", "mpin()", "peek()", "poke()", etc.], which Tcl
supports quite nicely. But when I wrote 'scope loops[1] in Tcl
they were *so* sloooowwww that I had turn turn off the lights
to see the triggered traces on the oscilloscope.

A friend suggested using Scheme, which he said had "real data types,
not just strings". So I switched to SCM, with a similar ".so" bolt-on.
*Way* faster! I later switched again to MzScheme [faster still, plus
numerous extensions/libraries], and finally a few years ago to CMUCL,
which had the advantages that: (1) I didn't need my bolt-on ".so", I
could write everything I needed directly in CMUCL [albeit using calls
to "internal" routines like SYSTEM:INT-SAP & SYSTEM:SAP-REF-32]; and
(2) small 'scope loops in compiled CMUCL ran at the same speed C did!!

So I've been using CMUCL for user-mode hardware development ever since...

| The cruel irony here is that I've had a lot more success convincing
| people to use Tcl than lisp - I guess its because Tcl hasn't got the
| wealth of built up prejudice lisp seems to have. 

See my previous postings re "OPFR", my "Outer-Parentheses-Free REPL",
which -- if you predefine almost all the things users will need to
do as functions (a.k.a. "commands") -- looks a lot to users like Tcl
at first glance... until they have to do something with subexpressions:

    opfr> deflex foo "abcde"

    opfr> subseq foo 2 4

    opfr> char foo 3

    opfr> setf (char foo 3) #\D

    opfr> format t "Foo is now: \"~a\"~%" foo
    Foo is now: "abcDe"

It's quite surprising how much the acceptance of the interface
goes up when *all* you do is remove the outer two parens!  ;-}  ;-}


Rob Warnock			<>
627 26th Avenue			<URL:>
San Mateo, CA 94403		(650)572-2607