San Francisco, CA, April 11, 2001 — During Wednesday's keynote address at the Embedded Systems Conference, James Gosling and Greg Bollella posited a crisis in computing, a crisis of software complexity. Gosling performed the original design of the Java language and Bollella led the Real-Time for Java Expert Group. While Bollela outlined a theory as to causes, implications, and possible responses to this software crisis, Gosling interjected with casual analysis and commentary.
According to Bollella, software complexity is expanding at the rate it is for several reasons. Among these was the convergence of two historically distinct areas of computing. The distinction l made was between business computing, which later expanded into personal computing, and scientific, device-oriented computing, which demanded greater real-time performance. He attributed this divergence to IBM's decision in the 1950s to dedicate the computers they designed to one area or the other exclusively.
Another factor contributing to the “crisis in computing,” Bollella said, is that software is increasingly taking over functions previously managed in hardware. He offered two images of an airplane as an example of this trend. The first picture showed the cockpit of an airplane piloted largely by means of hardwired electromechanical controls and displays. The second, which was labeled, “The Glass Cockpit,” was piloted with controls and displays implemented in software. Bollella also mentioned the increasing use of soft keys rather than hard keys in cell phones as evidence of what he termed “function migration from hardware to software.”
The convergence of business-personal with scientific computing and the replacement of hardware with software were not the only contributors to the ever-increasing complexity of software Bollella mentioned. He also invoked increasing customer demands as well as the oft-noted spread of networking functionality.
One of the main problems resulting from the “software crisis,” especially in terms of connectivity, the speakers said, is that engineers and programmers have to be able to mediate the interaction between real-time and non- or soft real-time systems.
“We need to make it clean,” said Gosling.
“There's no silver bullet,” added Bollella, “because we're about at the limits of our ability to understand what the heck it is we're doing.
Not surprisingly, the two speakers thought Java was a tool that could help programmers tackle the difficulties they are likely to encounter as computing becomes even more expansive.
As evidence of Java's capability to manage real-time situations, the speakers demonstrated two independent, autonomous robot arms playing different parts of the same song. The message of this demonstration was that a program could be written in Java that would execute with distinct timing characteristics.
The song they played was “Chopsticks.”