DEV Community

Discussion on: Object-Oriented Programming Strikes Back!

Collapse
 
spearofsolomon profile image
Nathan Spears

The funny thing about this

| At first sight, object-oriented programming is very close to how we perceive reality.

is that we don't actually perceive reality as a set of objects.

| It misunderstands the fundamental fact about evolution, which is that it’s about fitness functions—mathematical functions that describe how well a given strategy achieves the goals of survival and reproduction. The mathematical physicist Chetan Prakash proved a theorem that I devised that says: According to evolution by natural selection, an organism that sees reality as it is will never be more fit than an organism of equal complexity that sees none of reality but is just tuned to fitness.

We actually perceive reality using a set of functions! :D

Collapse
 
weswedding profile image
Weston Wedding

Not really understanding what you're saying here.

Collapse
 
spearofsolomon profile image
Nathan Spears • Edited

It's easy to think that we perceive a world of objects, but we don't.

We perceive a world of tools and obstacles and add a layer of object definition on top of that. So fundamentally, we see things in terms of their functional use: ie, we actually interpret the world as a functional place rather than an object-oriented place.

theatlantic.com/science/archive/20...

And furthermore, it seems that our consciousness is also composed of lots of functional streams in our brains.

Thread Thread
 
riccardo_cardin profile image
Riccardo Cardin

I partially agree with you. I think you're really describing how we behave, and not how we perceive reality. You said that we peceive "tools" and "obstacles": these are objects. ;)

Anyway, interesting point of view. Many thanks.

Thread Thread
 
spearofsolomon profile image
Nathan Spears

It's not a point of view, it's how neuroscience is working out our interpretation of the world.

A tool is something that has utility (this input gives this output). An obstacle is something in the way. An object is a layer of interpretation on top of those properties.

In other words, you can sit on a chair without needing to know that it's a chair. Say that you were blindfolded and someone put your hands on a flat place. You would be able to turn around and sit on it without needing to know anything else about it - it's a sitting place. That's the utility. Functionally you input your butt and output your body at rest.

Take off the blindfold and you could see that it's a chair, or a stool, or a stump, or a cliff's edge. Doesn't matter, they are all sitting places. You perceive the object after you perceive the utility, but the natural (and completely reasonable) assumption that people had for thousands of years was that we perceived the object and then perceived the utility. Objects are results of categorization made possible by consciousness, but the systems that consciousness is built on don't require objects to operate (obviously, or the animals who use them would be unable to operate).

Thread Thread
 
riccardo_cardin profile image
Riccardo Cardin

That's ok. My focus was not on neuroscience studies and recent goals, but on programming :)

Thread Thread
 
spearofsolomon profile image
Nathan Spears

Sure. My point is that learning to see problem-solving techniques as composable functions may actually be closer to our innate problem-solving paradigms than Object-oriented techniques are.