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/[EMAIL PROTECTED] 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. _______________________________________________ Axiom-developer mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/axiom-developer
