'A Glimpse of Trygve: From Class-oriented Programming to Real OO' - Jim Coplien [ ACCU 2016 ]

Поділитися
Вставка
  • Опубліковано 22 лис 2024

КОМЕНТАРІ • 11

  • @einarlandre5386
    @einarlandre5386 6 років тому +4

    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.

  • @T0m1s
    @T0m1s Рік тому

    "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.

  • @doglordian9685
    @doglordian9685 4 роки тому +4

    schizophrenia is not split personality ! (Dissociative identity disorder)

    • @ACCUConf
      @ACCUConf  4 роки тому +2

      Thanks for the clarification!

  • @BryonLape
    @BryonLape 4 роки тому +3

    Interesting idea, but it didn't carry very far.

  • @alessandrob.g.4524
    @alessandrob.g.4524 4 роки тому +2

    If you believe in things you don't understand, you mean software

    • @alessandrob.g.4524
      @alessandrob.g.4524 4 роки тому +2

      This goes for CSS and its style inheritance structure too.

  • @ChrisAthanas
    @ChrisAthanas Рік тому +2

    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

  • @troglodylethol
    @troglodylethol 5 років тому +6

    Trygve is written in java...the irony