Lisp HUG Maillist Archive

Why Lisp?

I'm an old Astronomer... way back when I first started programming in earnest, I was using a language, developed for Astronomy, called FORTH. It was great -- it had a mean-time-between-reboots of about 10 seconds... We produced the world's first completely computer controlled telescope on Mt. Jelm in Wyoming at the 100 inch WIRO Telescope. Later I transplanted what I learned in Wyoming to what was the world's largest telescope, the 6-mirror MMT on Mt. Hopkins near Tucson, AZ. My personal goal was to produce a Forth control system that could last days between reboots, not the usual 10-second lifespan... 

The fellow who invented FORTH, Chuck Moore, once stated that he invented it because at the time the average programmer could produce about 1 significant program per year, and he wanted to do 10 per year...

I'm a bit more greedy than Chuck. I wanted to produce a significant program once per day. I find that with Lisp I have achieved that goal. Of course it all depends on how you define a significant program. For me, it does not mean something nicely packaged into a GUI complete with a support channel and massive documentation. Rather, for me, it means being able to pose a problem and discover answers to it at my finger tips.

Probably the single most important feature shared by both FORTH and my personal Lisp environment is the Environment itself. An incrementally compiled, interactive, computing platform. If C++ were incremental and interactive it might better achieve these kinds of productivity improvements. But it doesn't, and it isn't.

Dr. David McClain
dbm@refined-audiometrics.com



Re: Why Lisp?

Python anyone?

/iP

On Jan 2, 2013, at 1:23 PM, David McClain <dbm@refined-audiometrics.com> wrote:

I'm an old Astronomer... way back when I first started programming in earnest, I was using a language, developed for Astronomy, called FORTH. It was great -- it had a mean-time-between-reboots of about 10 seconds... We produced the world's first completely computer controlled telescope on Mt. Jelm in Wyoming at the 100 inch WIRO Telescope. Later I transplanted what I learned in Wyoming to what was the world's largest telescope, the 6-mirror MMT on Mt. Hopkins near Tucson, AZ. My personal goal was to produce a Forth control system that could last days between reboots, not the usual 10-second lifespan... 

The fellow who invented FORTH, Chuck Moore, once stated that he invented it because at the time the average programmer could produce about 1 significant program per year, and he wanted to do 10 per year...

I'm a bit more greedy than Chuck. I wanted to produce a significant program once per day. I find that with Lisp I have achieved that goal. Of course it all depends on how you define a significant program. For me, it does not mean something nicely packaged into a GUI complete with a support channel and massive documentation. Rather, for me, it means being able to pose a problem and discover answers to it at my finger tips.

Probably the single most important feature shared by both FORTH and my personal Lisp environment is the Environment itself. An incrementally compiled, interactive, computing platform. If C++ were incremental and interactive it might better achieve these kinds of productivity improvements. But it doesn't, and it isn't.

Dr. David McClain
dbm@refined-audiometrics.com



Re: Why Lisp?

On Wed, Jan 2, 2013 at 9:02 PM, David McClain
<dbm@refined-audiometrics.com> wrote:
> Last I heard... Python barely understands the notion of Lambda...
>
> What I would like to know is what happens when your source code text goes
> through a tool that likes to throw away all the leading spaces and
> substitute its own notion of tabs?

Throw away the god-awful tool?  Anything that messes with my source
code without my explicit permission goes in the bit-bucket.

While you're at it, put triggers in your SCM that will reject any
source code containing a tab character.  Tab characters are just plain
evil.  Inserting a tab character into code is a misdemeanour, maybe
excusable, when committed by an apprentice.  For anyone more senior
than that it should be a firing matter.

Nick B

_______________________________________________
Lisp Hug - the mailing list for LispWorks users
lisp-hug@lispworks.com
http://www.lispworks.com/support/lisp-hug.html


Re: Why Lisp?

On Mon, Jan 7, 2013 at 2:12 PM, Tim Bradshaw <tfb@cley.com> wrote:

> It has some stupidly-restricted lambda: I think the body must be a single
> expression and since python is not an expression language (and hence, by the
> way, is not a lisp, since being an expression language is pretty fundamental
> to that IMO) it is very limited indeed.

Certainly Python is not a lisp.  Was somebody suggesting that it is?
It does feel a bit lispy, though, when programming.  I have
experimented with a Python-like expression language before, and I
think it's a shame that there isn't a good one in widespread use (I
think that almost all programming languages would be improved by
transformation into expression languages).

Python has had proper closures and hence a usable lambda since Python
2 (I guess that's about a decade now), and despite occasional rumours
of its demise - GvR apparently doesn't like it, and so there was some
risk of losing it in the 2/3 transition - it seems that there are
enough functional thinkers in the Python community to ensure its
survival.

> They also think that changing the syntax & semantics of the language
> incompatibly after it has been very widely used is just fine.  I make it a
> principle to feed my tigers only with people who do that: they eat well.

I won't be drawn into a flame war on this, but I'd be interested to
see examples (and in particular any basis for the statement that "They
.... think that ... is just fine".  We were affected by a change to
integer division semantics many years ago, but generally Python seems
far better at this than the other languages of its generation (i.e.
Perl, PHP, Ruby, etc).  I think that immature language communities
should be excused a small amount of this (after all, bits of Lisp 1.5
wouldn't work very well on CL implementations).  Note that Python 3 is
a different language to Python 2, and although this is a problem it is
a different sort of problem.

Nick B

_______________________________________________
Lisp Hug - the mailing list for LispWorks users
lisp-hug@lispworks.com
http://www.lispworks.com/support/lisp-hug.html


Re: Why Lisp?

try this hack (note that I'm advising an internal function):

(defadvice (editor::write-da-file before-write-da-file :before)
    (buffer pathname)
  (let* ((original-point (editor:copy-point (editor:buffer-point buffer))))
    (editor:buffer-start (editor:buffer-point buffer))
    (editor:replace-string-command nil (string #\tab) "    xXxXxX   ")
    (editor:move-point (editor:buffer-point buffer) original-point)))

do not forget to replace the xXxX.. pattern with your spaces preference.

HIH

Ala'a

On Mon, Jan 7, 2013 at 6:12 PM, Tim Bradshaw <tfb@cley.com> wrote:
> On 2 Jan 2013, at 21:02, David McClain wrote:
>
> Last I heard... Python barely understands the notion of Lambda...
>
>
> It has some stupidly-restricted lambda: I think the body must be a single
> expression and since python is not an expression language (and hence, by the
> way, is not a lisp, since being an expression language is pretty fundamental
> to that IMO) it is very limited indeed.
>
> They also think that changing the syntax & semantics of the language
> incompatibly after it has been very widely used is just fine.  I make it a
> principle to feed my tigers only with people who do that: they eat well.
>
> Does anyone know of / have code for the LW editor which does the appropriate
> hunt-down-and-kill-tabs on file save?
>

_______________________________________________
Lisp Hug - the mailing list for LispWorks users
lisp-hug@lispworks.com
http://www.lispworks.com/support/lisp-hug.html


Updated at: 2020-12-10 08:36 UTC