I had a really cool chat today with Darryl Chantry, our Architect Advisor, about procedure oriented programming (pop) and object oriented programming (oop). Daz was saying that no matter what, pop would always be faster, and I had to agree with him, even though I’m an avid oop fan.

Then it occurred to me, it’s all hardware’s fault!

See, hardware, specifically CPUs, work from instruction sets, clock cycles, and sometimes (more often than not) pipelines too. But at the end of the day, you’re talking to the computer in a series of discrete operational instructions; you know, move a into x then subtract y. You’re not saying, execute the walk method of the dog. So anything oop will always be slower, unless, it’s purely a high-level abstraction of the low level instructions. This really got me thinking, how many OO languages and compilers actually do this? How many from the point you hit build, actually take the dog object, work down through the compiler and assembler, and output pure instruction codes?

What would be even better, would be if the hardware machine language was object oriented! Wow! And then you wouldn’t need assembly language or generational languages, you could talk directly to the machine! Urghh, actually, I don’t know that I’d trust myself to do that, but it would sure be better for oop all round! Now I can’t wait for the first purely object oriented machine to arrive, with and oo machine interface and assembler, and a plug-in for VS!!! Woohoo!