On Thu, 1 Mar 2001, Artur Trzewik wrote:
>
> I wrote the first Browsers now. It is the first attempt but it can
> be already used for developing (or browsing Xotcl)
> I named the application XotclIDE
This looks very interesting indeed - I am actually developping a programming environment
as well: its name is biok (Biology Interactive Object Kit).
This tool is more aimed at end-users, i.e biologists who are able to
program small pieces of code but not whole applications.
So the idea is more to let them customize an already existing application by using
introspection also and directly from the user interface. But there are certainly
common features: GUI builder (for instance you may copy/paste a whole graphical object,
copy an object into another one, ...) ; the class/objects browsers is far more simple
than yours: the idea is just to be able to "grasp" an object/instance with its
method(s) from the graphical representation (it's called PITUI: "Programming in the user
interface" as in Self).
Another of the "end-user programming" features is the dataflow/spreadsheet mechanism.
I'm still in the prototyping phase - I'm actually using participatory design techniques
(
http://www-alt.pasteur.fr/~letondal/These/links-ihm.html#pd) with end-users to design
the tool, so the software is really too messy to be distributed!
(and the tool is a biology analysis workbench - not a programming environment - or rather
it's both).
Here are some screen images:
1) This one shows the biological editor (for comparing molecular sequences and visualizing
their features) plus how to browse current/pointed object's methods:
http://www-alt.pasteur.fr/~letondal/EUD/pitui1.gif2) This one is just a source code editor to (re)define an instproc at the instance level:
http://www-alt.pasteur.fr/~letondal/EUD/pitui2.gif
You see that there are fonctions like setting breakpoints or tracing methods' calls (this
is done with filters of course).
3) this image show that a shell may be opened for objects, in order to try its methods:
here, the user is calling 'setcolsize' to change some columns' sizes
http://www-alt.pasteur.fr/~letondal/EUD/prot-shell.gif
You also see that it's possible to search for a method by selecting its
name in the text (by introspection).
4) This is a tag editor (the tool uses tktable for implementing this spreadsheet-like tool):
http://www-alt.pasteur.fr/~letondal/EUD/tagedit-attr.gif
there a "GUI" feature in the editor: small menus may be used to select among graphical
attributes and their values.
5) a very simple class browser (it's actually implemented with cascade menus but I was not
able to grab them with xv so they are teared off):
http://www-alt.pasteur.fr/~letondal/EUD/tagclass.gif
the "main" menu enables also to browse objects or classes.
6) the message stack display shows here the some methods calls for update
cells value in a spreadsheet (also shown on top of the trace window):
http://www-alt.pasteur.fr/~letondal/EUD/trace.gif7) some GUI building features: you may create buttons, entry fields, choice lists,
whatever, ... in assemble them into panedwindows or tabnotebooks:
http://www-alt.pasteur.fr/~letondal/EUD/gui.gif
you may also edit graphical attributes (I'm not happy with this editor, it's too slow):
http://www-alt.pasteur.fr/~letondal/EUD/grapheditor.gif8) this is a very short presentation of the underlying ideas:
http://www-alt.pasteur.fr/~letondal/EUD/So I would be very interested to discuss "IDE" features with you!
The main problems I have for the moment are:
- persistence - this is rather difficult to achieve since there are many dependencies
between objects and you have to decide what to save
- performance
- a lot of design (application and IDE features - I'm trying to enable a sort of seamless
programming for end-users: they should be able to program methods as easily as a cell
formula...).
--
Catherine Letondal -- Pasteur Institute Computing Center