The Simula language was created to capture the dynamic properties of systems. In Simula 1 (1965) the language construct Activity was created to provide support of Process. With Simula 67 (Inspired by Hoare) Activity was replaced with the more general term class as the template for an object, an object being a container for state based behaviour. Personally I do not think the class construct in the programming language that is the real problem, but how its understood and used by developers. What I like with DCI is the explicit separation of data from role based behaviour. This by the way been supported by multi-agent frameworks such as JADE and JACK. An agent is an object, defined by class that manages its own thread of execution. In the case the agent supports the BDI (Beliefs-Desires-Intent) model the following algorithms is performed: repeat: wait for the next goal event select (on the basis of current beliefs) an plan to achieve the current goal execute the selected plan update beliefs end-repeat In Java this could look like something like this: class MyAgent implements Runnable { public void run() { while true { // The content of the repeat loop } } } This takes us to the realm of concurrent programming, race conditions and all the fun that comes with dynamic interacting processes. Are you familiar with ADA the same is achieved using the "task" construct. In the old Unix world we achieved the same by having programs that forked() of children as their respons to network messages and we build data structures of executing processes. Programming a multi-core iPhone we will use Grand Dispatch to mange the concurrency. The point is that we need to work with the work the tasks the program should perform. That is the missing link, not the class construct in your language of choice.
"translating human mental models into objects" - this may work if you work on software so simple that it can be written in any paradigm. Good luck to you and your OOP code when implementing non-trivial algorithms than need to finish running before the heat death of the universe.
The Simula language was created to capture the dynamic properties of systems. In Simula 1 (1965) the language construct Activity was created to provide support of Process. With Simula 67 (Inspired by Hoare) Activity was replaced with the more general term class as the template for an object, an object being a container for state based behaviour.
Personally I do not think the class construct in the programming language that is the real problem, but how its understood and used by developers. What I like with DCI is the explicit separation of data from role based behaviour. This by the way been supported by multi-agent frameworks such as JADE and JACK. An agent is an object, defined by class that manages its own thread of execution. In the case the agent supports the BDI (Beliefs-Desires-Intent) model the following algorithms is performed:
repeat:
wait for the next goal event
select (on the basis of current beliefs) an plan to achieve the current goal
execute the selected plan
update beliefs
end-repeat
In Java this could look like something like this:
class MyAgent implements Runnable {
public void run() {
while true {
// The content of the repeat loop
}
}
}
This takes us to the realm of concurrent programming, race conditions and all the fun that comes with dynamic interacting processes. Are you familiar with ADA the same is achieved using the "task" construct. In the old Unix world we achieved the same by having programs that forked() of children as their respons to network messages and we build data structures of executing processes.
Programming a multi-core iPhone we will use Grand Dispatch to mange the concurrency. The point is that we need to work with the work the tasks the program should perform. That is the missing link, not the class construct in your language of choice.
"translating human mental models into objects" - this may work if you work on software so simple that it can be written in any paradigm. Good luck to you and your OOP code when implementing non-trivial algorithms than need to finish running before the heat death of the universe.
Good luck with your sarcasm ever achieving something of value.
@@genesisbustamante-durian ditto
schizophrenia is not split personality ! (Dissociative identity disorder)
Thanks for the clarification!
Interesting idea, but it didn't carry very far.
If you believe in things you don't understand, you mean software
This goes for CSS and its style inheritance structure too.
No lol at 31:33 ? Not a peep from the audience
No sense of humor when the truth hits too close to home, I guess? Lol
Trygve is written in java...the irony