Fundamental Challenges for Ubiquitous Computing
David Greaves
There is a serious gap between theory and practice today, despite
great advances in theory it cannot provide what we need in the world
of real systems. In a world of ubiquitous computing, an important new
form of failure is interoperability between an old and new version of
software where the interface API has evolved. High-level programming
languages still need to develop a long way before they neatly
encapsulate all that is required. Today, it is still impossible to
write a complete operating system in a high-level language that does
not have to violate the type-safety of that language at some point or
other, with the most notable points being the marshalling code used
for RPC and the code generation phase at the output of a compiler.
There appears to be a fundamental issue stemming from the Russell
Paradox that must be encapsulated or buried somewhere in all real
systems. The correct place to hide it is still far from clear in the
envisaged world of first-class ubiquitous computing. The wide variety
of fundamentally different ways of processing XML using Java is
another illustration of this problem.
|