axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] Terms of Surrender (was: BAD tim)


From: Bill Page
Subject: [Axiom-developer] Terms of Surrender (was: BAD tim)
Date: Thu, 3 Nov 2005 22:16:05 -0500

On November 3, 2005 1:02 PM Tim Daly wrote:

> Scott Morrison wrote:
>
> > Hello everybody,
> > 
> > This is my first posting to this list. I worked at IBM 
> > Research off and on for 9 years. I'm the primary
> > author/designer of the interpreter and HyperDoc, and
> > I wrote the first code generator and optimizer for Aldor 
> > (then called A#).

Hello Scott Morrison! I am very glad that you dropped in.

> > 
> > I found Tim's posting very interesting, and I just had to
> > comment.

Please.

> > 
> > >>POINT 3: Boot is a dead language.
> > >>
> > >>   There are approximately 10 people still living who 
> > >>   have coded in boot and every one of them is doing
> > >>   something else with their life.
> > 
> > 
> > Being one of those 10 people, I have to agree with Tim and 
> > his opinion of the Boot language. Dick Jenks told me that
> > boot was to be the first step in implementing the entire
> > system in the Spad language. Once the syntax looked like
> > Spad, the next step would be to convert it to real Spad.

Which came first: Boot or Spad? I thought from the way Tim
told it, that Spad was at least partly written in Boot. So
Boot came first? But what you wrote above suggests that
Dick Jenks was actively re-writing Lisp code into Boot in
preparation for eventually compiling the whole thing in Spad
itself.
 
> > Of course that never happened, so the main purpose behind
> > Boot is gone.

Why "of course"? Lack of resources? Or was there a technical
issue? Perhaps Spad was not quite up to the task?  What is
your opinion about the possibility of carrying out Dick Jenks
program in Aldor?

It seems illogical to conclude that because it never happened
that therefore the purpose of Boot is gone. Perhaps you mean
that you think the idea was ill-conceived from the beginning?
Looking back, would you say that there was some spirit of
rivalry between those responsible for the compiler parts of
Axiom versus the interpreter parts of Axiom? I.e. Did it seem
like "those compiler guys" wanted to take over the whole
project?

> > 
> > In my opinion Boot can be a convenient language to code in, 
> > but it has two main problems. The use of indentation for
> > grouping is just a bad idea. It works well for one-page
> > programs, but with anything with reasonable complexity, it
> > falls down.

Do you see that sort of failure occuring in the Python language?
To me Python programmers seem both dedicated to the language and
very productive.

> > Just adding braces to Boot for grouping would go a long
> > way to making it more usable. The other problem is the
> > lack of a way to structure data. I fully agree with Tim on
> > the problems with that language.

But both of these problems are solved in Aldor, right?

> 
> ah, right. i forgot about the "larger than one page" issue.
> i can count characters by eye but i can't count whitespace.
> i used to convert the whitespace to periods so i could get
> proper indentation in spad code.

These days most people use an emacs mode (or other editor)
with syntax highlighting. Eyeballing whitespace or counting
characters is irrelevant. And the concept of "page" is a
surely a relative one. A lot of code is never actually
printed on paper.

Generally writing a module that is "larger than one page" is
probably not very good programming style - like writing a
very long sentence with too many subphrases and clauses. It
is difficult for a reader to grasp and perhaps even difficult
for a compiler to optimize. A lot of the Spad code in the
Axiom library is less than one page per package domain or
category.

> 
> the other "oh by the way" is that while you can seem to
> read boot code without knowing lisp (a sort-of pseudo
> code syntax) you can't WRITE boot code without knowing
> lisp.

Why is that? Surely it is possible to write Spad code without
knowing Lisp? That was the point of Spad, wasn't it? (Otherwise
the mathematicians could have simply written in Lisp and this
whole issue would be moot, right?) If Boot is a simplified
form of Spad then why is knowing Lisp so relevant? And if by
"knowing lisp" you mean knowing the concepts on which lisp is
based, then I would be surprised to find many undergraduate
computer science students who did not have at least one
programming course which included at least an introduction
to lisp. (Maybe my experience here is too out of date?)

> ...
> > 
> > I'm on the axiom-developer list now, so I can answer the
> > occasional question, but I won't have much time for this
> > project, unfortunately.

I suppose that I have asked more than one "occasional question"
above. :) I hope that doesn't put you off replying to at least
some of the issues.

---------

Now about this language war ...

I think the fact that many people responded to the issue of
lisp vs. boot is a really good thing. In open source projects
it must be quite common to feel like one is "working in a
vacuum" because while many people may subscribe to the
project mailing list, usually only a few people of the more
vocally-inclined people tend to dominate it (I should know,
I do it too often. :). Unfortunately for me, the majority
seem to favour Tim's goal of "lispifying" everything possible.
And I happen to believe that occasionally compromise is a
good thing in a collaborative environment...

So, *if* I was thinking of such a compromise then there are
some "terms of surrender" that might make this easier:

1) Before any more "lispifying" goes on, *first* move Axiom
   over to ANSI lisp. This will make it possible to write lisp
   that conforms to modern practices and as high level as
   possible. It will also make Axiom less dependent on a
   particular implementation of Lisp and more easily portable.

2) No more just cutting and pasting the generated lisp output
   of Boot into the literate document! This seems pointless
   and a net loss in intelligibility even if it is accompanied
   by a verbal explanation of the code. The original Boot code
   is, as Tim admitted above, significantly more readable as
   "pseudo-code" then what the compiler outputs.

3) Where possible and practical, replace Boot code with Spad
   code as in Dick Jenks original vision instead of Lisp. Surely
   you are not going to argue that Spad is a "dead language"
   written by fewer than 10 surviving programmers? And even if
   that happens to be true ;), that is one thing that we are
   trying hard to change, right?

Regards,
Bill Page.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]