[Lazarus] Request for student project ideas

Marco van de Voort marcov at stack.nl
Sun Sep 13 10:36:02 CEST 2009


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.




More information about the Lazarus mailing list