You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Niclas Hedhman <ni...@hedhman.org> on 2003/11/16 06:34:40 UTC

Re: [RT] Tolkien COP ( was; Darwinistic COP)

On Sunday 16 November 2003 11:05, hammett wrote:
> I Just [3] can't see this working in the Java plataform. Could you please
> show me some code snippets of what you aiming?


Whoooaaa... Code snippets of what could be the biggest revolution in software 
development since OO or even the Turing machine ;o)

Ok, uuuuhhh....

Divide the "Uniware"(tm) (Software Universe) into three "SoftWorlds"(tm);

Valhalla, Utgaard and Midgaard, ooopss, sorry wrong religion....

1. The Womb - an developing individual.
2. The OuterWorld  -  non-executing environment
3. The Realms - the cyberspace executing environments.

Furthermore, before I continue about these worlds, what we call the 
"development environment" of today is orthogonal to this notion. The 
"development environment" as we know it, is the process of creating new 
Species and evolving existing ones.

Ok?

Womb
=====
The Womb is a place where a Species' DNA (code, resources) are taken to be 
instantiated and configured. Part of it is that the instance is given a UUID, 
which will effectively give that instance an individuality forever, or it 
dies. Together with the Identity there must be Credentials, and probably the 
possibility of other Individuals to add Credentials to an individual (too 
much detail now..)
In Individual can be "developed" (developed as in child development) in the 
Womb, by parameterizing the various configurations and states, which it will 
keep with itself after it is release from the Womb (birth).


Realms
======
A Realm is an abstraction of en execution environment. Individuals can query 
the Realm and the other individuals living in the same Realm at great detail, 
and it can find out overview information about other Realms. The nearer the 
Realms are, the more is known about them, and vice versa.
An Individual can "travel" to another Realm.


OuterWorld
==========
When an Individual is moving between Realms, or waiting to go to one, and a 
handful of other cases, it is in OuterWorld. A desolate, barren place, where 
the gray darkness bores it inhabitants to passivity of enormous scale, i.e. 
no Individual do anything, they just "BE".


That was pretty surreal. What does it mean in more practical terms?

After the software developer creates a new Species and publish its DNA (code, 
resource) a Mother takes the DNA and creates an Individual in a Womb. During 
that creation, the Mother (a human being) sets the values, and states. During 
this lifecycle phase, the object is more susceptible to modifications that it 
would be later in its life. This will allow the Mother to form the individual 
down to the smallest detail.
The Womb is a Java application, that will instantiate the DNA and allow for 
introspection and modifications, and finally Birth.

Birth will be a matter of "serializing" the individual to its "passive state" 
and the individual will then be in OuterWorld, incapable of any activity and 
relying entirely on the Gods of OuterWorld to take care of it.
That means, practically, OuterWorld is disk drives, network transport, and 
other wrapping of the indvidual.


A Realm is a complex world, where individuals lives side by side. Their life 
is about communicating (statements, discussions, queries, request/response, 
opinion making) at the Forum and trading (transactions, advertising) at the 
Market. (Other Analogies to follow).
Both communication and trade will be based on Trust. Different Individuals may 
be more or less stringent about the trust requirement, and may discriminate 
accordingly for each activity.

Forum
=====
The Forum is the place where individuals can make statements ( "in the 
realm://hedhman.org/heaven, you can trade apples for knowledge" ). A 
statement will be nailed on the wall of the forum.
An individual could also announce "I come from realm://hedhman.org/heaven", 
and "travel news" invidividuals could ask questions about the place.
And so on.


Market
======
This is the most important place in the Realm. It is here all transactions of 
artifacts takes place.
"I have Files for sale. Very cheap!!" is a sales advertisement.
"I want file:///home/niclas/www/index.html. Anyone have it?" is a purchase 
advertisement.
The seller could request something in return for the transacted object, or 
provide it "free", as in free beer.



Does Java contain everything required to make this work?
Yes I am pretty sure.


Can you model all current business objects and business processes with such a 
weird programming model? 
Yes, I am pretty sure you can. In fact, I think it will even be easier. One 
thing about Object Oriented programming is that it allows you to model the 
real world in which the model have to work, but the most important part of 
the model is missing in OO, the WORLD, and the mechanisms that make citizens 
of the World to interact.
I am also sure programming will become more fun!! I rather create a new 
species "MushRats", who sneak around in Markets picking up good deals, than a 
EntityCollectionEvaluator (effectively doing the same) ;o) But maybe that is 
just my "Fiction Author" side of my personality shining through.


Back to your "show code snippets"...

I can't show, the subject is too immense, but I hope the above description 
have given some more "practical detail" than the original post.

Merlin in its current form is not a Realm container. It is too encompassing 
(it creates individuals) and doesn't allow for "travelers" and all that comes 
with that.
Can/should Merlin be the base for this kind of experiment? Yeah - probably in 
the "learning phase". There are so much new territory that needs to be 
explored, and we would need a platform where ideas can be tested quickly.

But the overwhelming issues surrounds the abstraction of communications, 
trade, travel, "understanding" and so on.

A long journey, but it starts with small steps...


Cheers
Niclas

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org