I think the ideal of Object Orientation is that you could conceivably have any number of objects which process in parallel all at the same time. It would be like having a CPU core for every object running simultaneously. Then if you want to get really oopie (!) then you'd want each part of each object to run simultaneously. Ultimately if you were not to have any procedural (sequential) activities happening within an object, you wouldn't even have programs anymore. So long as the CPU goes from one instruction to the next over the course of time, pure object orientation is impossible. What we actually have is a measure of object orientation laced with proceduralism.
I mean, after all, you might wrap up your code snippets into Methods or Types but at the end of the day within those types a lot is still happening procedurally. Programming will always be at least a little bit procedural. I do believe that the ideal object oriented system, where all objects are processed in parallel immediately, while being impossible to achieve *would* be better than procedural programming, if it were possible.
Meanwhile so long as we move from purely procedural to at least partially object oriented I think that's generally a good move. Having said that, one downside of object orientation is that in order to represent separate objects in a procedural world (which is what we're doing) you create overhead. This overhead actually can make object oriented programs less efficient that procedural programs. There are still some things I like to do more or less procedurally, where flexibility isn't as important, for the speed boost.
I mean, after all, you might wrap up your code snippets into Methods or Types but at the end of the day within those types a lot is still happening procedurally. Programming will always be at least a little bit procedural. I do believe that the ideal object oriented system, where all objects are processed in parallel immediately, while being impossible to achieve *would* be better than procedural programming, if it were possible.
Meanwhile so long as we move from purely procedural to at least partially object oriented I think that's generally a good move. Having said that, one downside of object orientation is that in order to represent separate objects in a procedural world (which is what we're doing) you create overhead. This overhead actually can make object oriented programs less efficient that procedural programs. There are still some things I like to do more or less procedurally, where flexibility isn't as important, for the speed boost.