[fpc-devel] Macro Processing
Martin
fpc at mfriebe.de
Mon May 16 16:35:24 CEST 2011
On 16/05/2011 15:18, Joerg Schuelke wrote:
> It is not only
> the weakness, it is the power too. Will think about.
weakness and power are not necessary opposites, or exclusive.
and btw, allow me the rhetoric (though not as the means of an argument,
since it isn't good style):
you know what they say about power? power corrupts.
> Am Mon, 16 May 2011 14:41:35 +0100
> schrieb Martin<fpc at mfriebe.de>:
>
>> The more support there is for macros, the more likely people will
>> start whole libraries of macros.
>>
>> first just a lort of small harmless helpers. Then combinations there
>> of... it grows, and then it becomes cancer (grows to something not
>> intended...)
> Intended by whom? Good, me? I do not see the situation that black, if
> it will turn out to be cancer, why is that C not death.
"Cancer" may not have been a good term, to keep the discussion clean.
But it doesn't have to kill something, just make it harder to live with
it. And often C (if used with lots of macros) is by far harder to read,
than pascal (that doesn't have macros).
Is it so far fetched, that someone who has a lot of procedures that all
look like:
procedure Foo1; // number may change
const
FooNum = 1;
var
Obj1a, Obj1b: TObject; // again number changes
begin
Obj1a := TOPbject.Create;
Obj1b := TOPbject.Create;
try
// now some code that changes
finally
Obj1a.free;
Obj1b.free;
end;
end;
may end up with a macro for the whole opening and the whole end, and
that those macros, are just combining individual other macros.
and then just write
{$EXPAND ProcFoo(1)}
// the code in thr try finally block
{$EXPAND ProcFooEnd}
I can see that happen very easy?
And there we are, Pascal would be down to where C is now.
-----
But as I wrote.
all those Arguments yours and mine are both correct. That is not the
question.
The question is, which one to give the higher importance.
And we will bot apply our subjective view. And this will not be changed
by arguments that easily.
We both know the risks and advantages they have (I do not deny that they
are powerful tools)
The difference is:
You are willing to take the risk, to get the power.
I am not willing to be exposed to the risk, so you can get the power.
=> see my other mail, about them being used n 3rdparty open source, add
ons, etc => if they exist, I (and everyone) will be confronted with them.
More information about the fpc-devel
mailing list