[fpc-pascal] Standardization of Modern Pascal

Marco van de Voort marcov at stack.nl
Mon Jul 7 16:10:21 CEST 2008


> the question is interesting in my opinion. The standard for a language
> (C, Fortran, C++) 

> or an authority able to define the language (Java)

Sun has owned Java for much of the time, as well as CG did
Delphi. I wouldn't place them in the same part as the former.

> helps to write code that will be as unrelated as possible of a precise
> "dialect" or community.
 
> As I understand, the main problem is the relation with CodeGear's
> Delphi.

No, the main problem is who is actually going to sit down for the standard
and what their motives are. (what do they have to gain)

In the C and Fortran case, it was mostly vast existing codebases (resp unix
and numeric code) that required cooperation to keep them running, and that
was more important than the little advantages gained with small
vendorspecific extensions.

Moreover, originally C had big problems (like the missing of prototypes,
void pointer), something that need to be settled across all vendors for it
to be adapted en masse.

> Whatever the community can decide about a "standard" or at least
> a set of "good practices", they have no reason to follow. On another
> hand they represent too much of the "Modern Pascal" community to be just
> ignored.

There is no uniform community. In the C case, everybody had Unix code. In
the Pascal case there is no such thing.

> Therefore, is it possible to follow CodeGear?

Only at arms length, which is what we are doing now. Codegear has little
interest in multiplatform design, and has recently implemented a shitload of
.NET me-too's.

> Is it possible/desirable to
> follow the model of Java: CodeGear manage the langage, other Pascal
> implementations have to follow?

I wouldn't call that a model. 
 
> Yet, the language lack of an authority for convergence of Pascal
> projects

In practice, all Pascal dialects besides the Delphi dialect are dead. So
there is all but formal convergence. VP is dead, GNU Pascal hasn't had a
release in years, their website has a (C) 2005 copyright and the maillist
traffic also gradually drops. There has been no announcement of any new
functionality in the maillist for at least an year too. Only the Mac side of
things has some life in it, but that is more debugging and packaging.

I wrote a little text about Pascal standarization a few years ago:
http://www.stack.nl/~marcov/ansiiso.txt

So most of the remaining issues are inside of the Delphi dialect, most notably
the failure of a lot of Delphi users to adapt the latest versions (because
those versions were fairly .NET oriented and they were not). 

FPC has a bit of a problem that it has multiplatform as base principle,
while it doesn't even register on the Delphi agenda.

> I agree that a dialect has a potential of innovation that dies
> when the language obey a standard. But, shall we see the existence of a
> common ground as a barrier to innovation?
> Does it really hurts the personnality of other Pascal Projects?

There is always a common ground, otherwise they wouldn't share a name, but
the commonality with GPC is very low. Also they don't have any compability
with Borland dialects (which make up the bulk of FPC syntax) on the agenda.

They don't even fully support features from TP4 like (short)strings without
requiring rewrites, which is the level of 1988 or so.

> To end my contribution, I think a that this kind of discussion concerns
> also the relationship between Delphi and Free Pascal. Despite some
> forks, I have found on wikipedia, that Free Pascal is almost compliant
> with Delphi6/7.

Yes, to a quite high degree. Note also that most of the extensions after D7
are pretty baroque, mostly stuff to make it look more .NETtish:

http://dn.codegear.com/article/34324
http://www.stack.nl/~marcov/delphilater.txt

> Considering the economical difficulties of Code Gear, it is possible that
> Free Pascal will remain the only living project to continue developpement
> with former Borland's tools (now Embarcadero's and nothing seems scheduled
> about Delphi).

The next Delphi version is scheduled for August, with generics and unicode
as major new features. Some discussion about what FPC will do about unicode
is currently underway, and FPC had an own generics implementation before
Delphi did.
 
> So, is there a "reference" implementation of Modern/Object Pascal?

Then you must first define that term. It is new to me. Even Object Pascal
(though it usually means Delphi) is fuzzy since it can also point to Apple
dialects, and all of the Delphi versions.

> Does Free Pascal can take this role? Is it better to let it to Delphi?

I think there is no room for such generalization. A standard is only a piece
of paper, unless you have multiple partners in the standard actively
cooperating. There is not much to gain from standarization at the moment.

Currently the  situation in practice is  that Delphi extensions are examined
each separately if it fits with the FPC tradition, and implemented the same,
differently, or not.  There is some minor cooperation with GPC to keep the
Apple headers compilable, but that's about it.

The low uptake of newer (post D7) Delphi versions has made this easier to
do.

However I myself have the feeling that the last 1 - 1 1/2 year saw more
usage of later Delphi versions. Also the unicode support of the next version
might trigger an upgrade wave. (though not directly, say in an year ago,
after the first fixpacks), so this policy might need review in the near
future.

> Or to GNU Pascal (or any other project)? Which criteria shall match such
> "reference"?

Forget GNU Pascal for all pratical purposes.



More information about the fpc-pascal mailing list