One of the key factors in choosing implementation strategies for various features is that we want the Tycho core to run on any platform with no binary dependencies. To fulfill this requirement, we have made certain that Tycho will run within a standard itkwish. We have maintained a strong resistance to packages that require compilation to binaries, allowing this only if a) it is essential to gaining certain functionality and b) it is not going to significantly affect Tycho's cross-platform portability. The Tcl profiler from TclX [9], which we load into Tycho to work behind a graphical profile display, is a good example.
Another example of a C-coded package that adds useful (but not essential) functionality is support for integrating a Tycho-based custom user interface to a C program generated by Ptolemy. One of Ptolemy's features is an ability to generate C code from signal processing block diagrams. We have added a Tycho ``target'' to Ptolemy, which allows it to generate Tcl packages. Each package implements a simple execution protocol that allows us to load multiple packages into Tycho and interleave execution (while still keeping the user interface live). The screen shot in figure 1 show a real-time digital audio application running within Tycho - this ten-band stereo graphic equalizer easily runs at 44.1 kHz (CD quality) on a Sun UltraSparc.
A third example where we require binary support is to run Tycho with Java (section 6). Java is becoming more and more important in Tycho, however, and the need for a customized binary interface compromises our portability goals (despite the portability of the two languages separately). It is vitally important that Sun include a Java interface in the Tcl core.