axiom-developer
[Top][All Lists]
Advanced

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

Re: [Axiom-developer] Why did Axiom fail in the 1990s?


From: Ralf Hemmecke
Subject: Re: [Axiom-developer] Why did Axiom fail in the 1990s?
Date: Mon, 02 Jul 2007 21:13:16 +0200
User-agent: Thunderbird 2.0.0.4 (X11/20070604)

I could be that as an experiment, the failure of Axiom as a viable
computer algebra system shows that there is something wrong with the
concepts of strong typing and object-orientation when it comes to the
design of computer algebra systems. After all most mathematics is not
conducted in anywhere near a rigorously typed manner as required by
even the simplest Axiom program.

I think it is clear to everyone that there are two things to achieve with Axiom

1) write a good an maintainable library
2) call that library (being an ordinary mathematician)

I agree that 1) is hard, but without types that will end up in code nobody understands. Look at today's Maple and Mathematica languages, they add type information and check that at runtime. I think the direction is pretty clear and Aldor is still miles ahead of the big M's.

Point 2) is a hard nut. I agree that if a mathematician (or however wants to use Axiom) tries to understand his own field with the help of a CAS doesn't want to be bothered with types. It should be possible to add them, but initially it might not be very clear to the user. Think of someone exploring a completely new field where perhaps no algorithm is known to achieve some task. It is usually impossible to give a type.

However, I don't think it is a hard task to implement ExpressionTrees in Aldor/SPAD as they exist in other CAS. With that domain everything is basically typeless. The next task then would be to add properties to things like "+", "*", "diff", "int", etc. That can be done as in Maple.

The biggest problem is to connect the typeless and the typed worlds. That I consider as a research project.

Ralf




reply via email to

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