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
