The Universe Technical Rationale

Theoreticians typically strive for simplicity, looking for the smallest set of primitives on which they can build a general methodology. In computer science theory, for example, numerous languages have been devised that reflect this ideal by providing in a few primitives an expressive power at least equivalent to Turing machines. Practitioners view such efforts the way they view Turing machines: they make an interesting abstraction, but they don't tell us much about how to build systems. To a practitioner, the value of a language lies in its utility, and both excessive simplicity and excessive complexity can interfere with its utility.

A reasonable way to balance the pressures of breadth and simplicity is to support heterogeneity. This implicitly recognizes the usefulness of small, specialized languages and tools. For example, the programming language embodied in a typical spreadsheet program is extremely useful. But it is certainly not general, in that there are many applications for which it is inappropriate. Such tools are therefore most useful if they can be combined with other specialized tools. Each tool is developed independently, making the development effort manageably small. But by embedding the tool in an environment with appropriate interfaces between tools, the utility of the tool is greatly magnified.

Looser integration of diverse tools and capabilities has numerous advantages. Existing, familiar tools do not need to be discarded in favor of a new, all-encompassing tool. This is particularly valuable when expertise with complex tools has built up over time. Moreover, capabilities can come in "bite sized" modules, making them easier to learn, and rendering them more acceptable a conservative clientele. For commercial software, tools from different vendors can be mixed, drawing from the strengths of each. This has the side effect that competition among vendors is enhanced because fewer customers are "locked in". This results in better tools at lower prices. Finally, accepted environments supporting heterogeneity means that innovative tools with specialized capabilities have a market. They do not need to be all-encompassing to be salable. So innovation is encouraged. This concept has been proven with the notion of "plug-ins" available for a number of commercial software platforms.

There are also significant disadvantages. User interfaces are likely to be different with different tools, making them more difficult to learn. And integration may not be complete.

The Tycho project is trying to maximize the advantages and minimize (though probably not eliminate) the disadvantages. Our group has a history of embracing heterogeneity in this manner. The Ptolemy software system, which has been under development at U.C. Berkeley since 1990, addresses the problem of mixing "models of computation", or semantic models, in system-level design of electronic systems. The Tycho system addresses the problem of mixing syntactic models. For example, while Ptolemy can support mixtures of discrete-event and dataflow modeling, Tycho can support mixtures of textual and graphical syntaxes.

In both Ptolemy and Tycho, the goals are accomplished through a strict and carefully designed object-oriented software architecture. A key principal is that of "information hiding". Objects should be able to interact with one another without knowing about either their internal semantic or syntactic models.

Up to: Tycho Introduction - Previous: Overview - Next: Release Notes - Tycho Home Page


Copyright © 1996, The Regents of the University of California. All rights reserved.
Last updated: 96/12/16, comments to: tycho@eecs.berkeley.edu