2.2. About Perspectives
Let’s introduce Perspectives in terms of some questions and their answers.
What is Perspectives for? We have created a modelling language from which working applications can be generated, that with some fine tuning of screens can have real practical usage. The language is well suited for a range of programs that support human co-operation; it is not meant to be a general programming language. Nor is it a high-throughput computing platform: the human pace of information processing / generation is the norm.
What is it like, conceptually? Think Access List Control (ACL). IT professionals are familiar with ACL as a way to describe and enforce limited access to computing resources for a variety of end users. ACL systems are applied to existing systems, as an add-on. With Perspectives we turn that on its head: from the specification of whom is entitled to what (viz. information and basic CRUD actions) we generate a working system. Thus, privacy is not an afterthought; it is the design itself.
What is the main technical challenge? Usually, ACL systematics are implemented as a restriction of an otherwise very permissive system (anything goes for any user). And this latter system almost invariably involves some form of shared persistent memory: central databases, a central server or a central bus providing access to modifiable stores. Not so in Perspectives. People form a network by their interactions; as users of Perspectives, each of them runs an installation of MyContexts (the Perspectives Distributed Runtime (PDR) plus a GUI, plus a private database, usually local). Considered as nodes in a network, a crucial observation is that all nodes are functionally equal (no clients, no servers, no hubs, etc). The main technical challenge for creating the PDR then is to figure out, for each possible modification of the allowed data structures that is initiated on some PDR, what other PDR’s should be informed. And, as a corollary, it is to check each received modification against the model to protect the user against unauthorised modifications.
How will it be used? We hope that MyContexts, the framework program, will attract a community of users and of makers, where the latter create models and screens that contribute functionality. Models + screens ('apps') will be distributed through repositories (webstore-like servers). Models will be downloaded once and stored in the (local) private database, too.