Next: Conclusion
Up: Oorange: A Virtual Laboratory for Experimental Mathematics
Previous: Previous work

Future directions

There remain some unresolved design issues. The connection of Tcl and Objective C layers has been a theme throughout the development process. The primary challenge is knowing exactly how to subdivide the tasks between the two languages. The dividing line cannot be hard and fast; some tasks prototyped in Tcl will naturally migrate to Objective C after they have been proven. But even after this has been factored out it is not always clear where to make the division. threads, garbage collection, error handling

Some unsolved problems arise from the extremely loose coupling between Oorange nodes and their contents. This is a source of strength, but also makes it hard sometimes to be efficient. In Open Inventor for example dependencies between objects are registered and so dependent objects can be easily identified; while in Oorange dependencies may be defined in node scripts and may influence only some of the instance variables of the dependent object, making this identification difficult if not impossible. As a result, dependencies in the network graph are not consistently enforced in the inspection manager. That is, users are allowed to edit objects which in reality are controlled by upstream objects. The result is that node update will overwrite the user's editing.

Finally, one of the original but not-yet-implemented goals of Oorange is to use the ``distributed objects'' feature of Objective C to instantiate nodes on a network. The node design of Oorange should make this easy to do, as long as developers observe the convention that a node represents an independent unit of computation.

Copyright © 1997 Sonderforschungsbereich 288, Differential Geometry and Quantum Physics, TU-Berlin