Java evolved out of a Sun research project started six years ago to lo
ok into distributed control of consumer electronics devices. At that t
ime, the priorities of the consumer electronics industry were quite di
fferent from those in the computer industry. Whereas five years ago th
e computer industry's mantra was compatibility, the consumer electroni
cs industry considered security, networking, portability, and cost far
more important. The buzzwords that have been applied to Java-distribu
ted computing, architecture neutrality, and so on-derive directly from
this context. This article provides a firsthand account of some of th
e design decisions underlying Java and the rationale behind them.