A question for OOP experts. - page 47

 
Wouldn't it be better to define AI in terms of what we want from it?
This is one small step closer to implementation.
Maybe we don't have to do it the way natural intelligence does, maybe it's enough to rely on external manifestations of it...
 
Реter Konow:

There is a limit to everything.

I found the problem with standard OOP:

  • In multiple inheritance.
  • In cross-links between classes.
  • The problem with static inheritance chains and static encapsulation. But what if an Object is modeled and needs a dynamic structure? Manual rewriting will not allow such an Object to evolve quickly and naturally.

Standard OOP lacks the flexibility that human thinking possesses. The structures of all Objects are static, the inherited relationships do not change without changing the code. This is a serious drawback.


OOP is invariant and is a natural property of Consciousness, but its implementation can have drawbacks.

What's the problem with multiple inheritance and links between objects?
 
On the third point, Peter, I didn't expect from an apologist for writing everything on a global level in arrays. You have not variables in class fields, but containers, so you can add/remove them at runtime, and you've already been told above about related brakes. By the way, if written correctly, the brakes may be quite acceptable.
 
Retag Konow:

There is a limit to everything.

I found the problem with standard OOP:

  • In multiple inheritance.
  • In the cross-links between classes.


OOP is invariant and is a natural property of Consciousness, but its implementation can be flawed.

____________________________________________________________________________________

What is it invariant to?

 
Aliaksandr Hryshyn:
Would it be better to define AI in terms of what we want to get out of it?
This is already one small step closer to implementation.
Maybe it is not necessary to do as in natural intelligence, maybe it is enough to rely on the external manifestations of it...

Yes, you're right.

I want to teach a computer system to model Objects.

Technically, Thinking is about reflecting and modelling the objects and relationships of Reality.

AI should replicate the work of Intelligence, which examines Reality objects, parses the data it receives from them, and reproduces their models within itself.

 
Vladimir Simakov:
On the third point, Peter, I didn't expect from an apologist for writing everything on a global level in arrays. You have not variables in class fields, but containers, so you can add/remove them at runtime, and you've already been told above about related brakes. By the way, if written correctly, the brakes may be quite acceptable.
Yes, I realized that properties can be added to Objects, but without updating relationships with other properties and objects, such addition is meaningless. Structurally, each Object is integrated into the environment of other objects, and their relationships are complex and confusing. The standard OOP allows you to change object relationships by rewriting code and recompiling. And adding new properties "on the fly", does not change the object structure and the system retains its integrity, or breaks. The system itself needs to change on the fly.
 

Peter, this must be something about deciphering the genetic code and shaping an object according to that code?

 
Алексей Тарабанов

____________________________________________________________________________________

What is it invariant to?


OOP is a person's ability to link information into a hierarchical structure with a distribution of 'layers', from the general to the particular. This is the "invariance" of OOP. Implementation of OOP in the human brain and in a computer program is different.

 
Dmitry Fedoseev:

Peter, this must be something about deciphering the genetic code and shaping an object according to that code?

Possibly. Now it is difficult to assume all the directions of practical application. I just want to take it a step further.
 
Реter Konow:
Yes, I realized that properties can be added to Objects, but without updating the relationships with other properties and objects, such addition is meaningless. Structurally, each Object is integrated into the environment of other objects, and their relationships are complex and confusing. The standard OOP allows you to change object relationships by rewriting code and recompiling. And adding new properties "on the fly", does not change the structure of objects and the system retains its integrity or breaks. The system itself needs to change on the fly.

There is a new operator. This operator allows you to create a new object at runtime.

There are arrays of pointers to objects. These arrays allow you to put a pointer to any object into them.

Pointer arrays are themselves objects.

Now think about it and answer - is it possible or not to add properties to objects on the fly?