axiom-developer
[Top][All Lists]
Advanced

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

Re: [Axiom-developer] Project directions


From: Bill Page
Subject: Re: [Axiom-developer] Project directions
Date: Fri, 27 Jul 2007 21:56:42 -0400

On 7/27/07, C Y wrote:
> I'll make one more stab at asking my question, using a more concrete
> illustration this time.
>
> Gaby's slides reminded me of the ongoing Lisp vs. Boot situation we
> have in the Axiom project - there are two camps both firmly committed
> to Lisp or Boot respectively.
>

I think this is not an accurate description of the situation since
Boot is written in Lisp and it is *part* of Axiom. In other words no
matter what we do, Axiom is written in Lisp. Period.

This is a question of *how* to use Lisp in Axiom, i.e. whether to use
Lisp to first implement an intermediate application-specific
higher-level language (Boot) and then use it in turn to implement
Axiom (Spad and Interpreter). Note: this is a development strategy
also used in some other large software projects besides Axiom. Or
whether to dispense with the intermediate language and write
everything at the same level.

> Unlike the question of literate programming tools, this is fundamental
> - pursuing both goals at the same time in the same project is
> nonsensical.  Both camps appear to be willing to do the work, but at
> some point if work on both directions continues there will be a
> collision between the two.
>
> In that case, it seems logical that two projects would exist -
> different goals are being pursued.  (This does NOT imply hostility,
> just a recognition of different directions.)  Since they both wouldn't
> be Axiom, one would have to be Axiom while the other becomes something
> new.  In that situation, how do we resolve reasonably which group
> becomes the new project and which remains Axiom?
>

Writing everything at the same level is a reversal of one of the
design decisions made by the original Axiom developers. I think this
could be cited as grounds for not applying the name "Axiom" to this
approach.

> That's why I was asking if there are fundamental project goals,
> established when Axiom was originally started, that can be used as
> "defining" goals associated with the Axiom name and used to select
> which project should stay with the Axiom name.  Unless I'm missing
> something there seems to be an inevitibility about this - one side
> isn't going to abandon Lisp and the other isn't going to abandon Boot.
>

I agree that having defined a sufficiently general higher-level
intermediate language (as Boot, arguably nearly is) it is in principle
possible to imagine eliminating the need for the language in which it
was originally written (Lisp) at least after you first solve the
bootstrap problem. This is what happened with the most of the ML
languages for example. Perhaps this is the direction in which Gaby has
imagined taking Boot.

But if one were really inclined to make this rather big step, then I
think one would be much better off at the level of Spad, rather than
Boot. To do this it would be necessary to improve Spad sufficiently
that it could take over the role of Boot. But in effect we already
have this! It's name is Aldor. And as far as I can see that is exactly
the direction in which the original Axiom project was headed.

But realistically in the short to medium term I do not see any
practical way to really abandon Lisp as fundamental to Axiom. At best
one might hope to do (as Gaby outlined in his slides) would be to
define a much reduced and streamlined subset of Lisp whose specific
purpose is was to efficiently implement Axiom. This is (more or less)
exactly what NAG was attempting to do with the use of CCL in its
commercial version of Axiom.

I hope that what I am saying is clear. Please ask or state if I you
think I have gotten any of this wrong.

Regards,
Bill Page.




reply via email to

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