[fpc-devel] "Blank slate" next version of FPC

Nikolai Zhubr n-a-zhubr at yandex.ru
Sat Mar 9 21:42:38 CET 2019


09.03.2019 21:06, Anton Shepelev:
>> Pascal is a language where declaration and use of
>> variables is separated.  It makes it easy to see what
>    a := a + Func1( b );
>    int b := Func2( a );
>    a := a - Func3( b );
> Also worth reference are Bart's thoughts on the subject, in
> two parts:
>    http://al.howardknight.net/msgid.cgi?ID=155215407800
>    http://al.howardknight.net/msgid.cgi?ID=155215418300

In short, if you let me, the all so lengthy and endless reasons boil 
down to approx these simple 3:

1. It might let people write ugly, horid, unreadable, unreliable code.
2. It might require you to scan some lines up to see the declaration.
3. Name clashes are possible (if implemented and/or used incorrectly).

And regarding all these: yes, as it is now, no much more, no much less.

No one would decide to declare "x", "y" in a declaration section and 
separately "z" somewhere deep in the body if "x, y, z" are actually 
coordinates of a point, unless s/he does that on a sole purpose of 
intentionally mocking colleagues and producing LOLs.

Its pretty odd to deny nowadays that block-local declarations do have 
their valid use and work just fine, if used reasonably. I'll certainly 
continue using them, where appropiate (in Java). Also I'll certainly 
continue using FPC because it is an absolutely brilliant and efficient 
product anyway with apparently no real-world alternative except just 
Java. On the other hand, Java's syntax is not as descriptive and has 
some ugliness in parts (and it hurts my eyes plenty). Therefore, my 
initial question was out of a (real-world motivated) curiosity regarding 
how (and why) declarations would ideally be better arranged so as to 
achive readability and reliability in various cases, considering both 
C's approach, Java's approach and maybe Embarcadero's approach, however 
as just a reference, not a requirement for immediate implementation 
"just because they all have it". So far I've only got the abovementioned 
cases 1-3 which are in fact irrelevant. Plus a general "declaration and 
use is separated" mantra which I fail to find sufficiently enlightening 
either. Well, ok. It is not a showstopper. At least not until a typical 
function gets 10000 lines long (which I try to resist :) ).

Thank you,


> Please, do not turn Pascal into another C# or Java.

More information about the fpc-devel mailing list