Well. The syntax proposal i made weren't intended to be in scope of no grafitti or other. I put it as a reflexion. The actual class method makes a practical deprecating of object model. And it means loses as stack allocation and forced TObject heritance. No root class is possible.
True. That is pretty modern actually, most languages nowadays have a rooted class model. Except for Dinosaurs like C++, but that has other reasons.
No multiple heritage is possible (we are doing helpers?).
Interfaced multiple inheritance is perfectly possible.
Helpers are syntactic sugar, mostly developed originally to enable component builders to work against multiple delphi versions, and polish some common incompatibilities away with helpers. Helpers are used to patch things up IMHO, not a language element to model new development. That doesn't mean they are not useful of course, just not part of the language "model".
Allocation and init are glued in constructor.
Yes. No messing with pointers, and a systematic guard against memory leaks in case there is an exception in the constructor.
I think the class model should be reviewed and i point in the syntax as i think the way we are writing code are avoiding future uses of that.
If you want to have a new class model, define a new class model, and work that out, e.g. with a branch. Don't get mired in detail syntax or piecemeal approach. Such a change would take years.
Of course the chances for this to get into mainstream FPC are near zero at the moment, but if you are interested in the C++ model, FPC does have a CPPclass for C++ interfacing.
While substituting the main model is out of the question with tens of millions of FPC and Delphi lines of code out there, improving on CPP class model interoperability would be a boon for FPC and in line with your interests.
Also, the Delphi model is backing for the Delphi designer system, something Borland had to extend BCB for since C++ can't handle it.
We have a very good looking sintax, but it doesn't let do something that C++ lets, for example. And i was thinking with that in mind. I have been terrible transmitting it as i see. But i point sintax because how you (i mean the programmer) write makes you (the programer again) think and viceversa (the opposite)
I don't think C++'s syntax with its "&"'s everywhere is that nice. Also the multiple inheritance is peppered with red tape of do's and don'ts, and vague error messages.
I think it could not have to start from scratch. It could evolve from actual foundation. And i do not agree that if something is doing for many years, but it's done wrong, to persists in that forever. It's like the assigment operator. ":=" is far better than a C "=" operator.
Not realistic IMHO. Even if for some crazy reason we would go that way, probably new units and modes would be introduced for the new model, and then both models would co-exist for a long,long time.
It happened before, adding Delphi mode to the existing TP modes in say 1998-99.
Added: I do not know at what exactly "backward" compatible are we calling. If embarcadero adds new stuff, will it be supported?. I think this is not backward...
The primary rule is that old codebases must be kept running, regardless of origin (Delphi, FPC).
The jury is out on new features in Delphi, because they are increasingly silly, or geared towards other uses. Case by case basis for now, or at least till sharing code with Delphi becomes impossible for the average user.
But we still are missing D2009 features like anonymous methods, so this kind of feature absorption goes very slowly.