Alexander Klenin wrote 6 lines
>> stuff in front of a declaration, instead after it. When I asked a question
>> about that, they were even surprised I doubted it at all. (worse, it was
>> Bob Swart!)
I agree that syntax is awkward, but I am afraid compatibility is more
important than better syntax.
This is simularity not compatibility. And no, I don't agree. Orthogonality is an important concept.
Show quoted text 13 lines
OTOH, attribute-first syntax gives a way to implement grouping by attribute,
something like:
type T = class
public
...
procedure A;
procedure B;
begin [deprecated]
procedure A_old;
procedure B_old;
end;
end;
Which is so different from
begin
procedure A_Old;
procedure B_OLD;
end[deprecated];
A syntax concept that has already been used btw (though for assembler procedures)
> persistent storage uses. Which is a basically flawed use of the feature.
What is flawed with it? I think this is indeed great for building
persistence frameworks.
Not the primary one.
> No-one has provided an alternative use yet :(
Oh, there are many use cases, here are just a few:
- web frameworks (attributes like "handler", "ajax_handler" etc.) --
see any Ruby or Perl framework for detailed usage.
I'm sorry. Could you explain this? I know what a handler is, and handlers are already RTTId.
- scripting (attribute "scriptable" for methods callcble from scripts)
To do exactly what? You could use it maybe to avoid heaps of registrating methods with the interpreter, but not more.
- VCL/IDE itself (e.g. attribute "hide_from_OI" for published properties you
do not want to display in Object Inspector)
That's more the stuff I imagine. Make annotations so you can easily make exceptions, e.g. due to legacy or versioning concerns.
- basically, anything requiring class registration now, including the
need to register
components to stream forms.
You still need to register the components. It must know what to iterate for RTTI.
The latter point will require some kind o?f built-in global classes registry,
which I am not sure will be in D2010, but this is a good feature anyway.
They did say something about being able to RTTI down from a global level. So it could be that yes.
However it is great for demoes and mails, but applying this succesfully in a major framework that stands the test of time might be hard.
I think it is great for the smaller persistance work (forms, config files etc), but would like to keep it away from the mission critical stuff for general databinding.