On Sun, Sep 13, 2009 at 02:58:15PM +1100, Alexander Klenin wrote:
> >> 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.

> 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.

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to