No formal evaluation exists of the importance of achieving modularity in a general-purpose telescope, or of how successful the present design is in achieving that goal; though at least one informal evaluation has been presented.[13] Our main concern early in the construction phase of the project was whether such a highly modular design would even work. Over the last several years tests on an operating telescope6and the use of software on several operational devices have convinced us of the utility of the approach.
We have found during development that integration, especially of additional devices, has been extremely problem free. A software engineer familiar with the classes can completely implement a simple device, i.e., one that does not require a state machine cam task, in a week. There is not a great deal of experience with user-interface development using the interpreter programs and tools, but early indications are encouraging.
| Device | number | per cent |
| 12-18 GHz Receiver | 646 | 2 |
| 18-26 GHz Receiver | 797 | 3 |
| 4-6 GHz Receiver | 449 | 1 |
| 8-10 GHz Receiver | 364 | 1 |
| Prime Focus Receiver | 1796 | 5 |
| IFRack | 1565 | 5 |
| Tracking LO | 3140 | 7 |
| Analog Filter Rack | 1102 | 4 |
| Converter Rack | 1284 | 4 |
| Frequency Coordinator | 4115 | 12 |
| Switching Signal Selector | 623 | 2 |
| Antenna | 38554 | 49 |
| Digital Continuum Backend | 3772 | 11 |
| Spectral Processor Backend | 41228 | 59 |
| Holography Backend | 1260 | 4 |
| Weather Stations | 748 | 2 |
| Accelerometers | 275 | 1 |
| Tipper | 894 | 3 |
Encapsulating common functionality into class libraries, as this design does, one would hope that the majority of the effort required to implement a device would already have been completed in the libraries of core classes. Using the crude measure of lines of code, this hope seems fairly well borne out. Table 1 shows the number of lines of code for device drivers, user programs, and libraries.7which are common to all or some subset of the devices. Table 2 compares the lines of code specific to a device vs. the lines of code in the libraries.8Except for the most complex devices, only a small percentage of code is added to fully implement a device. This measure does not address the complexity of the code being written, but we think the most complex code (again, except for very large devices) is in the libraries.
In conclusion, we feel that making modularity the prime design goal was correct and worth the effort. The true test will be how well the software can be configured to respond to requests we did not envision when designing the system. To make this approach truly general, it would be interesting to apply the libraries to a different telescope and measure the effort required. Such an effort would provide a vehicle to partition and configure the software to be telescope independent.