[Top][All Lists]

[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


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.


> 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

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:


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 and
Nevow 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".

Bill Page.

reply via email to

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