Yes it is a parallel world and I'll take your word for it that "people clearly don't think sequentially " but we also clearly structure our daily activities sequentially. Check anybodies to-do list. Some people, circus performers and manager, can juggle several activates. The fact they can is regarded as a notable feat, not the natural order of things. Moreover we model the world as system of interacting sequential agents. Other people out there are performing their own activities sequentially.
So if we're going to use this analogy to design programming languages we want a language that provides for robust interaction of may sequential tasks operating in parallel, without the need for a lot of centralized control.
The problem with today's state of the art seems to be that our software entities don't have sufficient understanding of the protocols required to operate in a parallel environment. In turn the environment doesn't have the requisite institutions and structures to allow independent parallel entities to operate.
Joerg
Whether people are "happier thinking sequentially" is a very important question. [As an aside, people clearly don't think sequentially - the
brain
has huge amounts of internal parallelism. And I think it is just an
illusion
that this parallelism is only at a low level (e.g. neurons). Read Minsky's Society Theory of Mind ( http://www.media.mit.edu/people/minsky/ ) for example.]
TELUS Enterprise Solutions ....... Joerg Beekmann beekmann@columbusgroup.com t: 604 801 5758 ext. 300 c: 604 512 2557 Vancouver + Toronto + Calgary + Edmonton
Hi.
Yes it is a parallel world and I'll take your word for it that "people clearly don't think sequentially" but we also clearly structure our daily activities sequentially. Check anybodies to-do list. Some people, circus performers and manager, can juggle several activities. The fact they can is regarded as a notable feat, not the natural order of things. Moreover we model the world as system of interacting sequential agents. Other people out there are performing their own activities sequentially.
IMHO, and FWIW, I think the key here is to come up with a definition of what is to think. Certainly there's many processes running in the brain which we usually ignore even though they keep us alive. Some others run even without the possibility of being observed. Would we call all that to think?
Descartes said "I think, therefore I am". Maybe a more illuminating thing to say in this context would be "I experience self-consciousness, therefore I am". If we go down that road, then many things seem more clear.
Our self-consciousness "processor" runs threads. Threads tap on shared brain resources, they also have a dedicated storage space we may refer to as its state. The running thread can be interrupted by other threads. Any interrupting thread may become the running thread. Threads may call other threads, return, terminate, etc. Keeping a thread stack requires concentration.
There are many threads which are either suspended or that run just while interrupting the consciousness thread. These threads are the ones which we can be conscious about. There are also other threads which we can only observe or communicate to, there are threads we can't observe at all.
The processor runs two threads which provide us the magic of self-consciousness: an observer/scheduler thread, and an observed thread. The role of the observer/scheduler is to literally observe and schedule the observed thread. The observed thread is usually a particular interface to the resources of the brain. These threads are usually the ones we say that think.
The sense of identity comes from the observer thread. It is where the decision regarding who we are is made, it's also where we interpret our perceptions according to our intentions.
All this would be better if I could replace the terms processor and thread with something that corresponded better to what happens in the brain.
So if we're going to use this analogy to design programming languages we want a language that provides for robust interaction of many sequential tasks operating in parallel, without the need for a lot of centralized control.
Where does intention fit in the many processes running in parallel picture? Maybe the problem is that managing a big collection of parallel tasks without an intention thread is just a mess. It all boils down to modeling intention. What is it and how do we make it more explicit?
I feel most of (all?) the software ever written is an *expression* of intention, a consequence. Intention per se is nowhere to be found in the source code. When we read other people's source, we understand by figuring out the intentions -> intention revealing code is easier to understand because we see the context in which the code was written in the first place. Only then we understand.
The problem with today's state of the art seems to be that our software entities don't have sufficient understanding of the protocols required to operate in a parallel environment. In turn the environment doesn't have the requisite institutions and structures to allow independent parallel entities to operate.
I think that #fork, #when:send:to: and a bunch of small practices are more than enough for this. The key here is that intention is usually not revealed. We want a bunch of threads in software, just like we perceive a bunch of threads in our heads. But without an observer thread, without modeling intention and making it explicit, many threads just don't seem to make much sense.
A single thread, on the other hand, gives us the view of the world from the observer thread point of view. Since, AFAIK, with computers we can only pay attention to one of its running threads, this makes our lives much easier when we try to figure out what the intention was.
I just thought of a situation in which a lot of threads make a huge amount of sense when there's an observer/scheduler thread. Think of a tank division, potentially hundreds of vehicles and thousands of people. If we were to write software to simulate a battle, it seems to me that one approach would be to give each battle unit its own thread, and let them fight. One thread to run the whole thing is just a disgusting complication. Of course, the problem is now how to make them fight properly... maybe our little threads become too clever, we achieve critical mass and we have to dump the thing.
So we introduce the Army General thread, which looks at what the other threads are doing, thinks, and acts giving orders accordingly. We give intention to the system. The smarter our Patton thread is, the more intention we make explicit, the more sense things make. We just made the tank division (sort of) self-conscious... just like what really happens, hmmmm...
Andres.
Descartes said "I think, therefore I am". Maybe a more illuminating thing to say in this context would be "I experience self-consciousness, therefore I am". If we go down that road, then many things seem more clear.
ERROR: USE OF FORBIDDEN TERM, SELF CONSCIOUSNESS!!!!!!
-- Ooops, this is not arcondev but squeaklist... I published a list of forbidden terms to arcondev@yahoogroups.com including "self consciousness."
Her's a few argument fragments indicating why this is grosly bogus:
- I hardly consider *myself* to be self conscious. Any successful attempt at self-concious AI will *certainly* be far for more self-conscious than I. =\
- I do not see anything that would indicate any special status of what may be called "self consciousness" from any other form of consciousness, Infact I consider the self the least interesting form of consciousness and I can prove that evolution agrees with me.
- If humans were indeed even remotely as self-conscious as some of them claim to be, Attempts at creating artificially intelligent machines would have been created in the 50's...
Summary: If you invent consciousness one morning, you will have 'self-consciousness' by mid afternoon....
The processor runs two threads which provide us the magic of self-consciousness: an observer/scheduler thread, and an observed thread. The role of the observer/scheduler is to literally observe and schedule the observed thread. The observed thread is usually a particular interface to the resources of the brain. These threads are usually the ones we say that think.
Bullshit! 1. threads have no meaning in the brain, everything is just one huge computation.
If I were to submit to this conceptualization, I would insist that there only exists the "observed" thread. It has absolutly no nead to be "scheduled".
The sense of identity comes from the observer thread. It is where the decision regarding who we are is made, it's also where we interpret our perceptions according to our intentions.
Bull. Those functions are the foundation of motovation, Look for them in the hipocampus and hypothalamus.
There is no "decision" involved, We just *are*. These are hard-coded aspects of ourself that cannot be changed except through nanosurgery...
Hi Alan "I think" that the point is grossly being lost here. First; Decartes, father of the enlightenment, was a "mechanist". His dualist theories, expressed in the "cogito ergo sum": "I think, therefore I am" is proven incorrect. To replace "think" with "experience" does not change that fact. This "mode" of argumentation is called "word smithing". Please study the whole expression again from the "point of view" of the "I" that is doing the thinking. The above expression is only half of the syllogism. Look for the Major which expresses the "unity of the concepts" ie the Idea itself. Transcend the Minor and the Consequent! Therein lies the clue: Logic of Transcendence. Transcendent logic Analytic logic Synthetic logic none Sorry! I could not let that one pass without comment. Justin
http://www.hkbu.edu.hk/~ppp/cpr/ideal.html
----- Original Message ----- From: "Alan Grimes" alangrimes@starpower.net To: squeak-dev@lists.squeakfoundation.org Sent: Saturday, October 27, 2001 3:13 AM Subject: Re: Lots of concurrency
Descartes said "I think, therefore I am". Maybe a more illuminating thing to say in this context would be "I experience self-consciousness, therefore I am". If we go down that road, then many things seem more clear.
ERROR: USE OF FORBIDDEN TERM, SELF CONSCIOUSNESS!!!!!!
-- Ooops, this is not arcondev but squeaklist... I published a list of forbidden terms to arcondev@yahoogroups.com including "self consciousness."
Her's a few argument fragments indicating why this is grosly bogus:
- I hardly consider *myself* to be self conscious. Any successful
attempt at self-concious AI will *certainly* be far for more self-conscious than I. =\
- I do not see anything that would indicate any special status of what
may be called "self consciousness" from any other form of consciousness, Infact I consider the self the least interesting form of consciousness and I can prove that evolution agrees with me.
- If humans were indeed even remotely as self-conscious as some of them
claim to be, Attempts at creating artificially intelligent machines would have been created in the 50's...
Summary: If you invent consciousness one morning, you will have 'self-consciousness' by mid afternoon....
The processor runs two threads which provide us the magic of self-consciousness: an observer/scheduler thread, and an observed thread. The role of the observer/scheduler is to literally observe and schedule the observed thread. The observed thread is usually a particular interface to the resources of the brain. These threads are usually the ones we say that think.
Bullshit!
- threads have no meaning in the brain, everything is just one huge
computation.
If I were to submit to this conceptualization, I would insist that there only exists the "observed" thread. It has absolutly no nead to be "scheduled".
The sense of identity comes from the observer thread. It is where the decision regarding who we are is made, it's also where we interpret our perceptions according to our intentions.
Bull. Those functions are the foundation of motovation, Look for them in the hipocampus and hypothalamus.
There is no "decision" involved, We just *are*. These are hard-coded aspects of ourself that cannot be changed except through nanosurgery...
-- Uncle Sam has the Gremlin's touch. http://users.erols.com/alangrimes/ <my website.
Huh????
I think Descartes was trying to find something that could be known with absolute certainty from which he could use the method to construct a larger and certain view of the world. This seems to me pretty clear in The Meditations. He starts out recognizing how we can be deceived and step by step takes it to the logical extreme (where the evil genius is stimulating what might be simply a brain in a vat) and in the end realizes that even then "when I doubt, I necessarily exist at least as a doubting thing."
I think this can't be reasonably denied. It's pretty tough to see how anyone could not be sure that in questioning whether one exists, one must exist. He may not have been as successful extending the groundwork, but the foundation is pretty impressive.
From: "Justin Walsh" jwalsh@bigpond.net.au Reply-To: squeak-dev@lists.squeakfoundation.org Date: Sat, 27 Oct 2001 05:41:37 +1000 To: squeak-dev@lists.squeakfoundation.org Cc: g.J.Tielemans@dinkel.utwente.nl Subject: Re: Lots of concurrency
Hi Alan "I think" that the point is grossly being lost here. First; Decartes, father of the enlightenment, was a "mechanist". His dualist theories, expressed in the "cogito ergo sum": "I think, therefore I am" is proven incorrect. To replace "think" with "experience" does not change that fact. This "mode" of argumentation is called "word smithing". Please study the whole expression again from the "point of view" of the "I" that is doing the thinking. The above expression is only half of the syllogism. Look for the Major which expresses the "unity of the concepts" ie the Idea itself. Transcend the Minor and the Consequent! Therein lies the clue: Logic of Transcendence. Transcendent logic Analytic logic Synthetic logic none Sorry! I could not let that one pass without comment. Justin
Yes Randy! I agree but, I did say Descartes was a dualist. Descartes had to keep one eye on the Boss and the other on the Job. Of course being of ex convict stock myself, I should know all about that. The conditions of the time: Roman Catholic rule, was such, that pursuing any theories of the mind, could make one really dead or like Peter Abelard; lose the family jewels. Now to Copernicus! who was a crafty so n so: he produced his book on his death bed and left it to poor ole Galilao to carry the can later: Galileo nearly lost both: the family jewels and his life. He should have listened to Descartes. Closer to home: when poor old Jobsy rushed back to collect the bits and pieces: he now admits he "missed", he got fired from his own business. Life really can be a bitch sometimes: why can't philsophers be allowed to tell the truth. Descartes was forced by religious Policy to reduce everything corporeal to mechanics according to Aristotles Physicus and Metaphysicus: Schollastic Policy, introduced by Thomas Aquinas was upheld by the sword. The criterian of truth. Alan Kay inherited this Cartesian philosophical tradition. Alan gave to Rank Xerox and now to Apple/Disney what Descartes gave to the Catholic church: Political loyalty and no trouble. Put him to the test and you will get mmmmmmmmmmmmmmmm silence. If only we could predict and invent a perfect future, with perfect freedom of speech. In the meantime We all have bills to pay. Ciao Justin PS Thanks Randy! As we say downunder "Yer a dinky di sport"
Galileo http://encarta.msn.com/find/Concise.asp?z=1&pg=2&ti=761557587 Copernicus http://encarta.msn.com/find/Concise.asp?z=1&pg=2&ti=761571204 Abelard http://encarta.msn.com/find/Concise.asp?z=1&pg=2&ti=761562792 Descartes http://encarta.msn.com/find/Concise.asp?z=1&pg=2&ti=761555262 Aristotle http://encarta.msn.com/find/Concise.asp?z=1&pg=2&ti=761557129 Thomas Aquinas http://encarta.msn.com/find/Concise.asp?z=1&pg=2&ti=761577720
----- Original Message ----- From: "Randy Siler" rsiler@u.washington.edu To: squeak-dev@lists.squeakfoundation.org Cc: g.J.Tielemans@dinkel.utwente.nl Sent: Saturday, October 27, 2001 8:15 AM Subject: Re: Lots of concurrency
Huh????
I think Descartes was trying to find something that could be known with absolute certainty from which he could use the method to construct a
larger
and certain view of the world. This seems to me pretty clear in The Meditations. He starts out recognizing how we can be deceived and step by step takes it to the logical extreme (where the evil genius is stimulating what might be simply a brain in a vat) and in the end realizes that even then "when I doubt, I necessarily exist at least as a doubting thing."
I think this can't be reasonably denied. It's pretty tough to see how
anyone
could not be sure that in questioning whether one exists, one must exist. He may not have been as successful extending the groundwork, but the foundation is pretty impressive.
From: "Justin Walsh" jwalsh@bigpond.net.au Reply-To: squeak-dev@lists.squeakfoundation.org Date: Sat, 27 Oct 2001 05:41:37 +1000 To: squeak-dev@lists.squeakfoundation.org Cc: g.J.Tielemans@dinkel.utwente.nl Subject: Re: Lots of concurrency
Hi Alan "I think" that the point is grossly being lost here. First; Decartes, father of the enlightenment, was a "mechanist". His dualist theories, expressed in the "cogito ergo sum": "I think,
therefore I
am" is proven incorrect. To replace "think" with "experience" does not change that fact. This
"mode"
of argumentation is called "word smithing". Please study the whole expression again from the "point of view" of the
"I"
that is doing the thinking. The above expression is only half of the syllogism. Look for the Major
which
expresses the "unity of the concepts" ie the Idea itself. Transcend the Minor and the Consequent! Therein lies the clue: Logic of Transcendence. Transcendent logic Analytic logic Synthetic logic none Sorry! I could not let that one pass without comment. Justin
----- Original Message ----- From: "Justin Walsh" jwalsh@bigpond.net.au To: squeak-dev@lists.squeakfoundation.org Cc: g.J.Tielemans@dinkel.utwente.nl Sent: Friday, October 26, 2001 8:41 PM Subject: Re: Lots of concurrency
Please study the whole expression again from the "point of view" of the
"I"
that is doing the thinking.
He he Justin, I cannot resist also. Do you know that some oriental sages are reputed to be able to divide their "I" into multiple seperate points of view. Some call it schizophrenia but that would most likely be true if it were out of control.
Sound familiar ??? :-). That would be powerful thought.
Regards, Gary
I love it Gary ! love it! ----- Original Message ----- From: "Gary McGovern" garywork@lineone.net To: squeak-dev@lists.squeakfoundation.org Sent: Saturday, October 27, 2001 12:50 PM Subject: Re: Lots of concurrency
----- Original Message ----- From: "Justin Walsh" jwalsh@bigpond.net.au To: squeak-dev@lists.squeakfoundation.org Cc: g.J.Tielemans@dinkel.utwente.nl Sent: Friday, October 26, 2001 8:41 PM Subject: Re: Lots of concurrency
Please study the whole expression again from the "point of view" of the
"I"
that is doing the thinking.
He he Justin, I cannot resist also. Do you know that some oriental sages are reputed to be able to divide
their
"I" into multiple seperate points of view. Some call it schizophrenia but that would most likely be true if it were out of control.
Sound familiar ??? :-). That would be powerful thought.
Regards, Gary
...and it turned muh peanut butter sandwich intuh tuna-fish!! [for entertainment only]... Some people will believe anything.
On Friday, October 26, 2001, at 09:50 pm, Gary McGovern wrote:
----- Original Message ----- From: "Justin Walsh" jwalsh@bigpond.net.au To: squeak-dev@lists.squeakfoundation.org Cc: g.J.Tielemans@dinkel.utwente.nl Sent: Friday, October 26, 2001 8:41 PM Subject: Re: Lots of concurrency
Please study the whole expression again from the "point of view" of the
"I"
that is doing the thinking.
He he Justin, I cannot resist also. Do you know that some oriental sages are reputed to be able to divide their "I" into multiple seperate points of view. Some call it schizophrenia but that would most likely be true if it were out of control.
Sound familiar ??? :-). That would be powerful thought.
Regards, Gary
The "Squeak" has landed! ----- Original Message ----- From: "Mark van Gulik" ghoul6@home.com To: squeak-dev@lists.squeakfoundation.org Sent: Saturday, October 27, 2001 6:36 PM Subject: Re: Lots of concurrency
...and it turned muh peanut butter sandwich intuh tuna-fish!! [for entertainment only]... Some people will believe anything.
On Friday, October 26, 2001, at 09:50 pm, Gary McGovern wrote:
----- Original Message ----- From: "Justin Walsh" jwalsh@bigpond.net.au To: squeak-dev@lists.squeakfoundation.org Cc: g.J.Tielemans@dinkel.utwente.nl Sent: Friday, October 26, 2001 8:41 PM Subject: Re: Lots of concurrency
Please study the whole expression again from the "point of view" of the
"I"
that is doing the thinking.
He he Justin, I cannot resist also. Do you know that some oriental sages are reputed to be able to divide their "I" into multiple seperate points of view. Some call it schizophrenia but that would most likely be true if it were out of control.
Sound familiar ??? :-). That would be powerful thought.
Regards, Gary
----- Original Message ----- From: "Mark van Gulik" ghoul6@home.com To: squeak-dev@lists.squeakfoundation.org Sent: Saturday, October 27, 2001 7:36 AM Subject: Re: Lots of concurrency
...and it turned muh peanut butter sandwich intuh tuna-fish!! [for entertainment only]... Some people will believe anything.
And all conceptualization becomes truth and fact. NOT.
Regards, Gary
On Friday, October 26, 2001, at 09:50 pm, Gary McGovern wrote:
----- Original Message ----- From: "Justin Walsh" jwalsh@bigpond.net.au To: squeak-dev@lists.squeakfoundation.org Cc: g.J.Tielemans@dinkel.utwente.nl Sent: Friday, October 26, 2001 8:41 PM Subject: Re: Lots of concurrency
Please study the whole expression again from the "point of view" of the
"I"
that is doing the thinking.
He he Justin, I cannot resist also. Do you know that some oriental sages are reputed to be able to divide their "I" into multiple seperate points of view. Some call it schizophrenia but that would most likely be true if it were out of control.
Sound familiar ??? :-). That would be powerful thought.
Regards, Gary
If you are writing good object oriented code, you are modeling the problem using concurrency even though the actual processing happens sequentially, correct? When you are working on a class, you should be putting yourself into the shoes of an instance of that class and looking at the environment from its point of view. You receive messages and you do something in response. You are designing it such that it can receive those messages (events) in no particular order and respond accordingly while maintaining internal consistency. What's sequential about that? We only use critical sections, semaphores, monitors, transactions and the like so that we can accomodate actual concurrent processing when our simulation runs.
Internal to any given method, we happen to know that our statements are processed sequentially, but not all statements necessarily need to be executed in sequence. Only when we do something with a result (i.e. send a message) do we need to make the involved statements sequential, and we can manage that automatically in a concurrent system with futures. Also, if it is critical that multiple messages sent in a method be dispatched in order, we can come up with some syntactic construct to express that.
Currently, we provide sequential operation with constructs to dispatch statements asynchronously (using fork). Would it be that much better to provide concurrent operation with constructs to dispatch statements sequentially? Maybe there are some refinements that we can make to the current system that would make the syntax for asynchronous messaging and synchronization less cumbersome.
Here's an example of what I mean (angle brackets indicate an asynchronous send):
someMethod <a doSomethingAsync> doSomethingElse. b doSomethingSeq1. b doSomethingSeq2.
...which would be roughly equivalent to the following:
someMethod | tmp |
sem := Semaphore new. [ tmp := a doSomethingAsync. sem signal ] fork. sem wait. tmp doSomethingElse. b doSomethingSeq1. b doSomethingSeq2.
- Stephen
squeak-dev@lists.squeakfoundation.org