All this chat does make me wonder why you're still calling it AMOS?
OOP is a language that fully implements the tenets of the Grady Booch treatise on Object Oriented Analysis and Design in the book of the same name. Anything less results in something like VBA (rolls around on the floor laughing for a few minutes) which thinks that just calling something a Class is good enough and inheritance and polymorphism are for nerds.
Quotes from Grady Booch:
"Object-oriented programming is a method of implementation in which programs are organised as cooperative collections of objects, each of which represents an instance of some class, and whose classes are all members of a hierarchy of classes united via inheritance relationships."
"Polymorphism exists when the features of inheritance and dynamic binding interact. It is perhaps the most powerful feature of object-oriented programming languages next to their support for abstraction, and it is what distinguishes object-oriented programming from more traditional programming with abstract data types."
Sorry to be boring about it, but what you're talking about is implementing an OOP on an Amiga. Not an OOP implementation of AMOS.
I suppose you could envisage using the amos.library functions and data structures behind a façade, and coupling it up to an object broker and factory, and building up a language model from there. I wouldn't think that amos.library would be all that suitable for such a project. But that's my point. Why call it AMOS at all? By that stage, it would be so far removed from the existing AMOS Pro as to be almost unrecognisable anyway.
I would have thought a completely new look at the Amiga hardware (OCS, ECS and AGA) and developing an OOP from scratch would be easier and more rewarding. There's probably a good case for using some of the abstractions already used in AMOS as they work so well (eg. the brilliant concept of using Banks as both temporary and persistent memory blocks). And the Amiga libraries already have familiar abstractions (screen, window, gadget, sprite, etc.). But the final language would not be all that familiar to an AMOS programmer as the whole paradigm would change from procedural/modular to OO. I think you may also have difficulties in deciding on the most appropriate levels of abstraction. (Many OO projects that I encountered in commercial life made the mistake of going to too lower a level of abstraction.)
I don't think that either approach would be easy.
Just chasing down and fixing AMOS Pro bugs, and slogging through correcting and revising the docs is taking up all the little (currently) spare time I have. Moving into a new Home isn't complete yet (apparently!) so I expect to have more time available soon. I haven't even started on the installer yet...
I still regard the traditional AMOS platform as being worthwhile. It's major benefit and appeal (to me anyway) is the ability to program both at higher abstractions ("Just put the bl**dy sprite on the screen and move it will ya!") and right down to the bare metal ("So, if I Peek here I get the X offset and if I Doke it there I can change the colour."). With the bugs all smoothed out and the compiler fixed and the docs up-to-date, it will be a
reliable language. With support for ECS and AGA (in the same style, as discussed in depth elsewhere) it becomes even more useful (I would have said loveable before I started chasing some of the more obscure bugs!
).
So that's as far as I would like to see it go personally. But good luck if you want to create a new OOP language for the Amiga with an AMOS-like feel to its abstractions. Just make sure it
is an OOP and not a compromise.