What should a GUI do; also , why case sensitive?



> Once I edit the Latex markup, all the other views are wrong (unless you
> recompute them from the Latex, which is in general not possible, since
> Latex -> Maxima cannot be guaranteed.) While you are welcome to think
> of the multiple view paradigm as a nice abstraction, I guess it
> seems obvious that there have been, for a while, several views  (e.g.
> print as lisp data, print via the "displa" program, as latex)
> of expressions. There are only limited translations between views,
> making it tricky to provide selection of a subexpression from a display .
In a MVC design there is no translation between views at all. A view solely  
represents the model (e.g. 1-D maxima input/output in this case). Therefore 
it may allow you to select meaningful parts of the display, e.g. 
subexpressions. Since the view knows the underlying model it represents, it 
can then spawn events pointing at the model (e.g. at the subexpression) and 
send them to the controller. The controller then executes the requested 
action (e.g. send subexpression to a maxima kernel) and alters the model 
(e.g. inserts subexpression as input line and maxima answer as output line). 
The model receives the altering events and notifies all its views that it has 
changed.

The latex view would merely give you a text string of the 1-D input/output to 
be used with an external latex editor. For the reason you mentioned, there 
will be no input view that allows you to use latex.

> > leaving us with the task to design a well defined communication
> > layer to the maxima kernel (model) and a mapping from messages of that
> > layer to mathml (view).

>  From a Maxima system point of view, the underlying lisp tends to
> communicate directly with the user  at a lisp error, or a debugging
> "break". Since each lisp has its own conventions at this point, there is
> some
> system-dependent code needed here.
In my opinion, this is the biggest problem at the moment. Since I'm not a lisp 
expert, I don't know if there could be some try-catch construct to give the 
user access to the lisp level in a secure fashion, keeping a clean interface 
to the maxima kernel.

Michael