axiom-developer
[Top][All Lists]
Advanced

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

RE: [Axiom-developer] Lisp GUI libraries and a UI for Axiom


From: Page, Bill
Subject: RE: [Axiom-developer] Lisp GUI libraries and a UI for Axiom
Date: Thu, 7 Sep 2006 11:58:31 -0400

Kai, 

On Thursday, September 07, 2006 11:26 AM you wrote:
> ... 
> Now that I've presented a list of Lisp GUI libraries, let me argue
> that it is irrelevant. 
> 
> I do not see any reason why a GUI for Axiom has to be written in
> Lisp. Why not write a GUI for Axiom in Python or Java or C++? Why
> does every GUI have to be portable? Why should there be only one
> GUI or even a canonical GUI anyway?

+1 Right on!

> ... 
> The solution is to separate the GUI from the Axiom core and make
> GUI programming easier. The former is pretty easy, just get rid
> of the GUI code in $AXIOM/src. That would also get rid of most of
> the C code and thereby improve portability of the core. Making GUI
> programming easier is a lot more work.

Yes.

> 
> For a GUI to be more useful than an Axiom terminal session, it needs
> to be able to understand Axiom's output to some extent. It also needs
> the ability to query Axiom for all kinds of information, ...
>
> Create an API that supports this kind of functionality and future
> versions of itself, and make it available over a socket using a
> simple (in every programming language) clear-text protocol. Done.
> Sooner or later someone will write a GUI then.
> 

I believe that is an excellent suggestion.

This approach is already partially used in Maxima to abstract the
user interface from TeXmacs. I recently used an only slightly
modified version of the interface code written by James Amundson

http://wiki.axiom-developer.org/address@hidden
i.axiom-developer.org

in the new MathAction Wiki interface for Maxima. The TeXmacs
interface uses embedded control codes but I changed this to an
XML-style bracketing that was very easy to parse in Python.

For more Maxima examples see:

http://wiki.axiom-developer.org/SandBoxMaxima2

---------

Interfacing to Axiom actually presents a little more of a
challenge than Maxima because we also need to deal separately
with the type information. And as you suggested above, error
messages, state-of-the-computation information and graphical
data should also be handled through a consistent and well
documented clear text protocol.

The protocol and API also needs to be designed to work well with
asynchronous AJAX-style techniques for browser interaction.

The Sage developers have been discussing
Twisted http://twistedmatrix.com/trac/ and
Nevow http://divmod.org/trac/wiki/DivmodNevow as appropriate
related interface technologies.

I think that if we can graft these methods into the Lisp side
of AXIOMsys, then we would be in a very good position when
"Sooner or later someone writes the next GUI application".

Regards,
Bill Page.




reply via email to

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