Maxima - new GUI



On Thursday 14 October 2004 19:54, Stavros Macrakis wrote:
> The ideal CAS would allow clean separation of the mathematical engine
> and the user interface.  By user interface, I do not mean only
> input/output of commands, formulas, and graphs but also the
> *organization* of the user experience.  For example, you might want to
> have on your screen simultaneously two cases of a solution, one for
> a>0 and the other for a<=0.  When you worked within one case or the
> other, the appropriate assumptions about a would be made*.  Or you
> might want to take some calculation you made previously and re-run it
> with different assumptions -- all in the same problem solving
> environment.
>
Sorry about misunderstanding you other mail, really I was addressing the list 
as a whole rather than yourself in particular.

Also sorry about the late reply to this.

Using the type of GUI interface that I am trialling at the moment, different 
contexts could be offered to the user on different tabs. Each tab would have 
the history of commands for that particular context. When a user enters a 
command in a context tab, all the assumptions related to that context/tab 
would have to be reapplied by the GUI and then the command processed. Also 
all assumptions made in the other 'contexts' would have to be un-applied 
first.

Assignments would have to be entered in the main history dialog so that the 
user was made to realise that these apply to all contexts. The 
pseudo-context could only really be used for certain tasks that don't change 
the internal state of the data but I presume that it would nevertheless save 
the user quite a lot of typing.

> Maxima is not very good at that sort of thing.  It has gestures
> towards contexts and all that, but it still is rather strongly tied to
> the linear %i1/%o2 interaction style, with many options either
> completely global (from here on) or completely local (only apply to
> the current %i/%o context).  It really wants to be able to interact
> with the user at its pleasure (is x pos neg or zero?) and it not
> disciplined about handling error/exception cases in a way that is easy
> to interface to other systems.

Obviously without proper context support from the engine, and implicit 
assumptions that the GUI knows nothing about, the temporary solution 
I have suggested could lead to some apparent miscalculations.

Any GUI for Maxima cries out for a structured machine-oriented interface to 
the engine, particularly, as you say, in respect of error messages and 
information requests.

>
> All of this can be fixed, of course, ... just a small matter of
> programming ... and a somewhat larger matter of thinking/designing.
>

Yes one week of good design saves 10 weeks of painful  programming...

So please keep designing.

Abdulhaq