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