The issue is, you can do everything you can do in OO using non OO programming!
If something is too complex to code without OO,
then it's probably to complex to code with OO as well.
I can't help to feel that clases, instances, inheritance of object properties etc
just adds overhead, uses much more memory.
And allows more sloppy coding.
(since a child object inherits the parent object properties)
Another issue is that PB is a non OO language,
adding OO would basically split PureBasic in two.
at worst two separate compilers would be needed to get the most out of non OO (classic) and OO compiling.
If the only reason for wanting OO is for self contained objects that holds all it's own values and functions,
then that can be done using normal procedures and dynamically structures.
in fact, on the lower level (lower than the OO layer that is) that is probably what is done internally by a compiler anyway.
I can't help but feel that custom solutions for a big game would be much better than using a stanard OO system that most likely have certain limitations.
Remember that a OO implementation would limit you to using that implementation, and not all solutions would be always the best.
And once added, it can't really be "removed" either.
To me (using PHP as the example here) I have used classes
even before the PHP5 OO makeover.
However being able to connect to 4 servers at once using 4 instances of the same class, can as easily be achieved by using libraries and threads,
or procedures and dynamically allocated structures.
Another issue is it would add a large complexity layer to PB for beginners,
OO is hard to grasp fully (I'm just fumbling around).
And it would be a pain to see beginners fiddling with OO example snippets and code posted on the forums,
when pretty muchthe same could be achieved using somewhat easier code.
And the example at the start here, looked very much like nesting of arrays/structures etc to me
Btw! is it possible to "call" a procedure using a pointer?
i.e.
structure myoo
*methoda
*methodb
endstructure
and simply populate that with @myprocedure
and then "call" the methods.
That would allow swapping the procedure pointers
on structure instances allowing very dynamic code
You know, OO coding without a OO version of PureBasic
