No arbitrary restrictions
Ken Webb 2010-02-07T15:53:28Z
One goal in Xholon is that there should be no arbitrary restrictions (NAR). Of course there are restrictions in Xholon, but the goal is that these restrictions should be intentional and principled rather than arbitrary. A few examples are included below.
- Any node can interact with any other node.
- This is not to say that every node should interact with every other node. But it should be possible for any node to locate and interact with some other node when it turns out that this is a desirable thing to do. There should be no arbitrary restriction that would prevent this from being possible. The nodes in a Xholon application thus form a network.
- This network of nodes is typically organized as a tree structure, which does impose some principled restrictions. For example, no node can have more than one parent; all nodes in a Xholon application belong to the same network; at any point in time there is only one ultimate root node.
- Every node can have a parent node, child nodes, and sibling nodes.
- There are no privileged node types that lack the potential to have a parent, child or sibling.
- Every node can be a container for other nodes, or it can be an active object, or it can be a passive object, or it can be any combination of these.
- A node that is just a passive object today, may need to be a container for other nodes tomorrow.
- There is no special privileged top-level root node in a Xholon application.
- It typically turns out that today's system is just part of some larger system. So today's root node will probably be a child of some other node some time in the future.
- There is no arbitrary distinction between design-time and run-time.
- It's better to think of an application that is constantly alive, that can be continuously transformed, or that can continuously transform itself.
- There is no arbitrary distinction between classes and objects.
- Xholon is not restricted to just one programming language.
- Xholon is currently implemented in Java, but a version could be implemented in other languages such as C and JavaScript. Xholon nodes can currently be implemented using several scripting languages that generate Java bytecode - Groovy, JRuby, Rhino (JavaScript).
- Any scripting language can access the nodes in a Xholon application.
- It is always possible to add, modify, move, and delete nodes and subtrees in a running Xholon application.
- Most viruses in our own bodies are helpful or benign. Most scripts running inside a computer application are beneficial.
- Xholon will forever be a work in progress.
- Whatever it encompasses today will turn out tomorrow to be only part of what it could encompass.
- Xholon can be used to implement any type of application.
- Current sample applications are from a wide variety of domains.
- There is no restriction on the number of nodes in a Xholon application.
- The only limit is computer and JVM memory.
- There is no arbitrary distinction between application-specific objects, and framework objects.
- There is no fixed limit to the number of domains that can be woven together in a single application.
- A basic Xholon application has two domains - an application-specific domain, and a supporting framework.
return to main page