Jump to content

Recommended Posts

1 hour ago, altaylar2000 said:

What do you think about Carl Hewitt's model

The Actor model* has properties that is useful in distributed computing, for instance in recent cloud computing or IoT environments. In antifragility** there are four design principles, typically found in systems capable of thriving in a complex environment; modularity, weak links, redundancy, and diversity. Actor model can be useful to address these principles. The model have been around sing the 70's and I think it will continue to be applicable both internally in large systems and when creating larger architectures consisting many interacting systems. 

 

2 hours ago, altaylar2000 said:

and about how far modern OOP from it's roots now

I do not see a very thigh relationship between first part and second part of your statement; feel free to elaborate. 

 

 

(note: I have not watched the video)

*) https://en.wikipedia.org/wiki/Actor_model

**) Example: Anti-fragile ICT Systems - Kjell Jørgen Hole's 

For this initial discussion wikipedia definitions are good enough:

IOT: https://en.wikipedia.org/wiki/Internet_of_things, Cloud computing: https://en.wikipedia.org/wiki/Cloud_computing

Link to post
Share on other sites
1 minute ago, Ghideon said:

I do not see a very thigh relationship between first part and second part of your statement; feel free to elaborate. 

There is a relationship. First ideas for OOP comes directly from frames Minsky and Hewitt's Actors
Before them noone used "object" like unit of computation with own memory and behavor, it's the base idea of OOP too

Link to post
Share on other sites
7 minutes ago, altaylar2000 said:

There is a relationship. First ideas for OOP comes directly from frames Minsky and Hewitt's Actors
Before them noone used "object" like unit of computation with own memory and behavor, it's the base idea of OOP too

Ok.

2 hours ago, altaylar2000 said:

how far modern OOP from it's roots now

What are the major differences between "modern OOP" and its roots that would like to discuss? 

Link to post
Share on other sites
Posted (edited)
2 minutes ago, Ghideon said:

What are the major differences between "modern OOP" and its roots that would like to discuss? 

Mainly modern OOP became more static, and more synchronous I think

A very difficult compromise with compiler vendors.

Edited by altaylar2000
Link to post
Share on other sites
1 hour ago, altaylar2000 said:

Mainly modern OOP became more static, and more synchronous I think

Are you referring to statically typed object oriented languages such as C++ and ADA vs dynamically typed languages? How has OOP become "more static"?

 

Link to post
Share on other sites
15 minutes ago, Ghideon said:

Are you referring to statically typed object oriented languages such as C++ and ADA vs dynamically typed languages? How has OOP become "more static"?

Not necessarily, although that too. For example, usually dynamic binding is limited, they prefer to implement inheritance by copying rather than delegation

Link to post
Share on other sites
4 hours ago, altaylar2000 said:

Not necessarily, although that too. For example, usually dynamic binding is limited, they prefer to implement inheritance by copying rather than delegation

Unfortunately something seems lost in translation. Maybe you mean composition rather than copying? Composition over inheritance is quite useful principle.

Edit: Any other members interested in comparing large scale structure of distributed systems and software design on a smaller scale? We could go ahead and discuss, OP seems to be on a temporary leave. 

Edited by Ghideon
Link to post
Share on other sites
On 4/3/2021 at 11:22 PM, Ghideon said:

Maybe you mean composition

You are confusing categories here. It was about the implementation of inheritance. It can be implemented by delegation or copying. This is about the same difference as between the regular and virtual methods. And composition is a method, a template. And composition is not inheritance at all, it is surrogate

If name resolution occurs already at compile time, this means that we are dealing with a copy derived from the class. This situation is beneficial for compiler manufacturers. The analisys would be much  more difficult if they don't know how it resolve in  runtime

Link to post
Share on other sites
28 minutes ago, redcorner2000 said:

You are confusing categories here. It was about the implementation of inheritance.

Ok, you seem to have detailed insight in what OP mean, can you provide a reference to clarify your reasoning? You seem to mix interpreter and compiler.

Link to post
Share on other sites
4 minutes ago, Ghideon said:

can you provide a reference to clarify your reasoning?

This is not reasoning, but a fact, you can find the "link" by request "inheritance by delegation" or read about the implementation of inheritance in languages like js, self, smalltalk or python

5 minutes ago, Ghideon said:

You seem to mix interpreter and compiler

The very assumption that this can be confused looks as strange as if someone confused inheritance with composition. Here compilation means translation with optimization.

Link to post
Share on other sites
53 minutes ago, redcorner2000 said:

This is not reasoning, but a fact,

Ok. That means you and altaylar2000 are the same? How else can you be certain about the facts? Thanks for clearing that out.

 

Edited by Ghideon
Link to post
Share on other sites

Method inheritance by delegation means, that when a method is called, it's realisation always looked up in the class(class is runtime object in this case)

And dynamic resolution will mean, in addition to this, that the resolution can be not only in the context of the lexical environment (dynamic scoping)

In this case, during compilation, it is impossible to make substitutions, inline, but even create a table of virtual methods

Link to post
Share on other sites
10 minutes ago, redcorner2000 said:

Method inheritance by delegation means, that when a method is called, it's realisation always looked up in the class(class is runtime object in this case)

(Due to my profession) I am familiar with inheritance vs delegation in programming. It does not match your description and googling "Method inheritance by delegation" returns zero results. Maybe you could add some context to what you try to describe? Which programming language and which compiler? 

Edited by Ghideon
Link to post
Share on other sites

Like this:

 

define method = blabla{x}

define class Example where x = foo, bar = global blabla

call Example.bar > foo

12 minutes ago, Ghideon said:

returns zero results

You have to keep in mind that Google is about politics, and if you search like a dilettante, you won't find anything there.

12 minutes ago, Ghideon said:

Maybe you could add some context to what you try to describe?

I clarified and gave some examples

maybe like that

define method = blabla{x}

define class Example where x = foo
call blabla with contextOf Example > foo

Example.x = baz // redefinition

call blabla with contextOf Example > baz

 

Delegation means that the called method or property is not in the environment of the object, but delegates it to its class or superclass, only the name is in the environment of the object

Edited by redcorner2000
Link to post
Share on other sites
23 minutes ago, redcorner2000 said:

Delegation means that the called method or property is not in the environment of the object, but delegates it to its class or superclass, only the name is in the environment of the object

No it does not mean that.

 

Link to post
Share on other sites
5 minutes ago, redcorner2000 said:

You can have your own opinion.

In my opinion it is better to provide context or to add a reference to clarify when the discussion benefits from it. For instance in this case when it is not clear if we discuss delegation in programming in general or delegation in OOP. 

3 minutes ago, redcorner2000 said:

The general definition of delegation in programming is a call in the context of another object(implicity or explicity).

No. And it is not what you said above:

38 minutes ago, redcorner2000 said:

Delegation means that the called method or property is not in the environment of the object, but delegates it to its class or superclass, only the name is in the environment of the object

Your one-sentence definitions are vague so a reference would help.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.