[Top][All Lists]

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

[Axiom-developer] RE: AxiomUI development process

From: Bill Page
Subject: [Axiom-developer] RE: AxiomUI development process
Date: Mon, 27 Jun 2005 00:24:48 -0400

On June 26, 2005 12:22 PM Kai Kaminski wrote:

> before we start working on AxiomUI we should work out how
> to organize development. This is a quick list of some thoughts
> and questions:
> I don't know MathAction very well, so I don't know what role
> it could play.

I assume that was question? :)

MathAction is a web site that can be easily modified over
the web (usually called a wiki). Web pages on MathAction can
contain display LaTeX mathematics and can run Axiom and Reduce
commands which display output as LaTeX mathematics. It also
has a web-based application called "IssueTracker" for user
problem reports. Besides that it is just a web site that can
do all the things that web sites do these days, so what role
it can play is basically wide-open.

> I believe that it would be good to keep AxiomUI separate
> from Axiom, hence I have already asked for a new project at
> Savannah. If you disagree, we can always remove the project
> again. The reason for this is that it allows me to get up
> and running faster (I hope).

I don't really have a problem with that. My view is that as
one of the project "mentors" I have agreed to be more vocal
about my advice (especially when you ask) but I don't intend
to try to influence your work in on this project in any other
way except as I would any other open source colleague. This is
open source development and the AxiomUI project is your show.
You should use whatever open source tools that you find useful
and efficient, e.g. Savannah, SourceForge, MathAction or whatever.

The Axiom project still maintains project sites on both Savannah
and Sourceforge but most of the ongoing development and user
support is now done on MathAction.

> ...
> Which license do we want to use? Do I have to assign the
> copyright to someone?

For maximum compatibility with Axiom itself, I would suggests
a BSD-style license based on the Axiom main license. Axiom
already has multiple open source licenses and I don't see any
harm in adding a new one compatible with the existing licenses
but specific to AxiomUI and more up to date, if you think that
might be a good idea.

Copyright to Axiom itself is held by Numerical Algorithms Group
as part of the agreement that lead to the release of Axiom as
open source. Since the BSD license is very "free and open"
I don't think copyright is such an important issue. My personal
preference would be for copyright to be held by an independent
group specifically devoted to Axiom such as the Axiom Foundation
but since the Axiom Foundation is not legally incorporated under
any national or international law, that might be impossible.
So the next best choice I think is if you simply retain your
personal copyright on the work (for now at least).

> Finally I would like to avoid the Axiom build system.
> I haven't really seen it yet, but Axiom doesn't build on
> my favourite box anyway

I think Axiom has been build on MAC OS/X with some tweaking.
(check the axiom-developer email archives). If the current
release does not build on your system out-of-the-box, then
I think you should report the problem to the axiom-developers :)

> and besides makefiles aren't very lispy.

Not true, although I agree there are other similar tools
implemented in lisp, just like there similar tools for Java
(e.g. ANT). But make is (almost) universal in open source.

> If we decide to use it, someone will have to help me with
> the makefiles. I haven't used any for at least two or three
> years.

No problem. Just ask.

> I understand that we need excellent documentation, but I'm
> not sure how Lisp and literate programming go together.

Lisp and literate programming work just fine. For example:
see the Axiom source code. :)

> Due to Lisps dynamic nature doc strings and comments seem to
> be a more natural fit, but maybe I'm wrong.

Literate programming is a style that assumes writing a program
is better viewed as writing a document (i.e something intended
to be read comfortably by a human being) that contains and fully
describes all of the programming code necessary to implement a
program. This does not conflict with "lisps dynamic nature"
(whatever that is?) any more than any other programming language.
>From the point of view of literate programming doc strings and
comments are not of much use.

> In that case I would love to hear how your typical development
> work goes. How do you use slime or just any CL environment with
> noweb?

As far as I know, and could determine from a quick web search, no
one does this in an integrated manner. But you can certainly use
emacs to write a noweb document. Automating the noweb weave to
generate documentation and the noweb tangle to generate lisp source
is possible. Then using Slime to develop and test the lisp code is
easy. But properly re-inserting the new lisp code back into the
noweb document along with appropriate text would require some
extra discipline.

> Ok, I just received an email from Tim. On the one hand he gives
> me quite a bit of leeway, on the other hand his advice contradicts
> my points about the Axiom build system and literate programming.
> What are your feelings about this?

I agree with Tim about the importance of literate programming to
the Axiom project as a whole. I would really like the AxiomUI
project also to use this style of programming. Axiom currently
uses the noweb for literature programming throughout, I do not
think that this is necessarily the best available tool for the
job, but it works. 

> The one thing I feel strongest about is to separate Axiom's
> mathematical core and its user interface into separate processes.
> ...
> 3) Somebody else might want to develop another GUI. If we modify
> Axiom so that it speaks some sexp-based protocol that's not a
> problem.

I think modifying Axiom so that it speaks "some sexp-based
protocol" as well as it now produces LaTeX is probably a be *big*
project that would require quite deep knowledge of Axiom internals.
It is probably beyond what you would want to get into during the
time frame of the Summer of Code funded part of this project.
There has been some previous work by NAG to implement OpenMath
as an output format for Axiom but even reviving that is very
likely another *big* project.

I think that in the initial design of AxiomUI you should assume
that Axiom will deliver it's output to the back-end gui process
in LaTeX format. To do otherwise would mean having to duplicate
all of what Axiom does right now in rendering LaTeX.

Later enhancements such as graphically manipulating sub-expressions
might well require a more sophisticated format but I think that
borders on research rather than implementation.

Bill Page.

reply via email to

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