Last August, at MacWorld Expo in Boston, Be's chairman and CEO Jean-Louis Gassée was busy showing off Preview Release 2 of the BeOS. I asked if he could briefly explain why Java developers should be interested in the BeOS. Gassée smiled and said "M-P-M-T -- multiprocessor, multithreading."
The multiprocessor aspect of the BeOS provides a demonstrable increase in speed. Plus, users don't have to wait until applications are written that take advantage of the additional processors -- that job is left to the BeOS. As Be engineer William Adams explained to developers, "You don't really care how many CPUs are in the machine, and you don't have to; you furthermore don't have to do anything special to deal with extra CPUs. Your job is essentially to reinvent your application in a very multithreaded way. Our job is to make it run efficiently."
The BeOS Intel release can be installed on single or multiple-processor Pentium II machines. The Pulse application gives a graphical display of processor activity, so on a multiple-processor machine you can watch how the OS balances the processors. The Pulse application also allows you to turn the various processors on and off. You can observe the difference in speed as you disable the processors one at a time. Actually, the controls used to allow you to turn off all of the processors. Not surprisingly, users who selected this option noticed a dramatic drop in performance. (It's like allowing a pilot to turn off all the engines in an aircraft.) Be engineers were surprised by the number of users who went so far as to turn off the last processor. Needless to say, that option has been removed.
The promise of pervasive multithreading is appealing to Java programmers. "If you've done any BeOS programming," Adams wrote in a recent Be newsletter "you've probably been using threads whether you intended to or not."
At the March BeDC, Steve Sakoman, Be's vice president of engineering, demonstrated an application that created and destroyed sixty threads per second. Sakoman warned that he was not recommending this as a good programming technique, but that the video effects demo showed an application that "spawns two threads for each frame -- one to render effects for even scan lines, the other for odd scan lines. The two threads run to completion and die. The app waits for the next frame to arrive and repeats the process. Thus, 30 times 2 threads are created (and destroyed) each second." The multithreading news may interest Java developers, but the question is Where is Java?