While I can't say I ever been a fan of the whole OOP concept, probably due to the ridiculous academic examples of its benefits relating to animals and my observation that it makes code appear bloated, I have spent some time trying to understand it.
From these recent attempts to understand it (I do understand the useful concept of encapsulation...not sure about inheritance - seems like another academic benefit and I doubt it makes life easier/better in the real world...anyway) by looking at C++, C#, D, Java and trying to learn ObjC, I have come to the conclusion that the biggest problem (for people like me) is the syntax.
So, the concepts can be understood if you're interested enough to want to learn, it's the hideous syntax that puts me off. People go on (again, usually academics, language developers, etc) about the beauty of SmallTalk and hence, Objective C, but I think it's absolutely hideous.
I remember, back in the 80s the talk about the future of high-level languages and I always thought that the ideal (and future) for a high-level language was something that did a lot in a smallish amount of code but was very easy to understand, i.e. like BASIC!
But what have we got in the mainstream nowadays, C derivatives that are made even more obscure (imho) by adding OOP. I mean, I can read plain C but you add the OOP stuff, esp, that NSxxxx stuff in Objective C and I'm lost. How can this be easier?
Additionally, the idea of adding huge libraries and frameworks to lowish level languages (like C) makes things even worse. If I was going to improve C, I'd want to give it more commands in the style of the old commands but did more. Not add on a completely different way to do many of the same things but with an even more obscure syntax.
Anyway, 'What's you point', I hear you say
Well, if PB ever had OOP, please, please, please can it implement it with a syntax in keeping with PB's existing style, i.e. simple, English-like (sorry to those who would prefer a different language, bloody English, eh, LOL) commands with few parameters, few brackets (definately no square brackets!), etc.
I'm sure OOP could be of use to more people, even if we forget about inheritance and polymorphism and just agree that encapsulation is the prime benefit (btw - many of the designers of major languages seem to agree with this point) provided it was straightforward to program.
Again going back to the concept of high-level languages, surely the ultimate objective is for them to 'get out of the way' leaving us more time to think about solving the problem in front of us, not puzzling over the syntax or worrying about which design pattern to use. That's power. And if the code can be easy to read by less experienced programmers, all the better, after all, that was an objective of COBOL, which, say what you like, is still running in major institutions on mainframes today.
Haha, sorry for the rant, I've been wanting to get this off my chest for sometime now
Cheers
Hysteria