In 1996 the founders, each with their own background in the software world, got together to form Adaptive Planet. Together we came to the conclusion that all current evolutions in software development and -architecture are, and in the foreseeable future, will be completely inadequate. Reason for this is that all current techniques fail to handle problems like:
- Complexity : because of the current state of IT, applications tend to become more complex with every iteration. This complexity makes it more and more difficult for developers to create robust, efficient and stable software.
Life span : applications because of their cost and the difficulty to create them, will require the life span of these applications to increase. However, since everything does evolve, it will be necessary to have means that allow applications to be modified quickly and painlessly
- Large scale distribution : increased networking will cause the installations applications to be spread over a wider area. The large the scale of distribution the more difficult becomes the physical distribution and installation of new release. Hence applications will have to support superior techniques with respect to distribution and installation
- Manageability : applications tend to originate from different sources. Often these applications use one another for the services they offer. This phenomenon (called DLL-hell) will need to be solved by in each application integrated version management
- Networking : Yes there exist many types of networking environments. However using them requires the use of sometimes elaborate API and/or good insight in the intrinsics of networked applications. Networking just adds to the already growing complexity. However networked applications will become more and more important especially with mobile and embedded devices. The lack of good and transparent networking protocols will put a brake on the availability of good distributed applications
Worse, we realised that all existing problems would come back a thousand-fold in the next wave of computerisation : the mobile world. Since mobile computing will undeniable become a integrated part of current mainstream (fixed network) computing, we shifted our attention to delivering a solution that would address the above problems for a mobile environment. We knew that a something that works there would also work for mainstream computing.
We took the challenge to develop a software technology that would simplify and ultimately handle the above problems and make it available on as many platforms as possible. In view of these objectives, small footprint, high portability and a very small requirements list towards the underlying OS would be essential. The fact that the tool would be available for development on a large number and type of systems would make the tool unique by itself. Moreover, the structure of applications being similar on any supported platform, it would be the first time that applications could be made to run on a whole set of different systems and environments with minimal portability issues. Different GUI, different input devices, different networking environment, different back-end services, different databases … non of these fundamental differences, really would require the application to be modified. In fact we even wanted applications to cope with situations where these differences could change during the execution of the application itself. This environmental abstraction would bring the technology in a unique position, because it would become the first tool to make pervasive computing truly possible.