[Lazarus] Please define "delphi compatibility"

Sven Barth pascaldragon at googlemail.com
Thu Oct 11 11:55:33 CEST 2012


Am 10.10.2012 18:42, schrieb Florian Klämpfl:
> Am 10.10.2012 16:11, schrieb Bart:
>> On 10/10/12, Mark Morgan Lloyd <markMLl.lazarus at telemetry.co.uk> wrote:
>>
>>
>>> As with most if not all open source projects, if we don't like it we can
>>> fork off. However my own position is that I trust the core developers,
>>> who are effectively defined by their understanding of how the code works.
>>
>> But then again, it would be nice for committers to know if extending
>> an LCL component beyound it's Delphi's counterpart is considered to be
>> "officially" OK (as long as the extension is considered usefull and
>> meaningfull and not just fullfilling the needs of very few people (and
>> there may be more criteria)).
>>
>> Getting back to the thread that stated this discussion:
>> I could spend time and energy on implementing an ImageList for
>> TDBNavigator (which Delphi doesn't have, and which maybe usefull for
>> more than just a few people). But i would then become very frustrated
>> if the patch was rejected because of "Delphi incompatibility".
>
> The point is probably: how big is the breakage of other people's work?
> Extreme example from FPC: from time to time people suggest to replace
> begin ... end by { ... } even in FPC because it is easier to type. This
> might be even true for a German keyboard where { means also three key
> strokes but nevertheless this would break everybody's code with little
> benefit because modern IDEs can take care of useless typing.

In my opinion those people haven't understood the spirit of Pascal... :(

I would even go into the opposite direction and adjust Delphi's 
attribute syntax:

=== delphi example ===

type
   [SomeAttribute(1, 2, 3)]
   [SomeOtherAttribute]
   TSomeClass = class
     [Some3rdAttribute('a', 'b')]
     property SomeProperty {...};
   end;

=== delphi example ===

to a more Pascal like:

=== hypothetical example ===

type
   TSomeClass = class
     property SomeProperty {...} attributes [Some3rdAttribute('a', 'b')];
   end attributes [SomeAttribute(1, 2, 3), SomeOtherAttribute];

=== hypothetical example ===

And if Joost isn't fast enough with his attributes branch I might do 
that indeed ;P

Regards,
Sven




More information about the Lazarus mailing list