[fpc-devel] Re: [fpc-l] type discussion

Hans-Peter Diettrich DrDiettrich at compuserve.de
Thu Jun 2 16:53:12 CEST 2005


Jamie McCracken wrote:

> > For me I prefere clarity above less typing (besides if you want to write
> > realy short code, you sould use APL)
> >
> 
> I totally agree with you in this case - we dont want or need cryptic c
> stlye syntax in any version of Pascal.

ACK.

> However, in general Pascal has poor developer productivity when compared
> to modern languages like python and C#. Ironically python is perhaps the
> most popular language on Linux and most of its syntax is derived from
> object pascal whereas pascal on linux is virtually non-existant. Of
> course Python is piss poor in both performance and memory usage but it
> does point the way to a revitalised pascal. Adopting less verbose but
> still clean and clear syntax ala python is IMHO the way to make Pascal
> great again.

IMO Python is preferred for its portability. Consider the efforts
required to distribute a C project, with autobloat, configure and all
that crap. Python in contrast is the modern BASIC, that made programming
easy, at the cost of execution speed. And, like BASIC, Python IMO is not
such a general (unlimited) programming language as are C or Pascals.

> Consider the developer unfirendly nature of pascal/Delphi atm:
> 
> 1) Forward declarations - they sux! Why should the developers have the
> burden of making the code totally sequential declaration wise. All other
> modern compilers dont need this. Sure your code might take a bit longer
> to compile but thats peanuts compare to the time saved in extra typing
> and reordering your code

I agree that forward declarations and circular unit references suck. If
it's only compilation time, according improvements are welcome. But I
suspect that the introdution into the compiler would exceed the current
manpower :-(


> 3) loads of small and pointless additional syntax like EG for creating
> an object you should just be able to say:
> 
> myobject.create;
> 
> and not
> 
> myobject := Tobject.create;

That conflicts with e.g. someproc(someclass.create);
It also is useless with polymorphism, where the type of the variable can
differ from the type of the created object.


> also Begin..End blocks should IMO be replaced with python's indenting.

No, please :-(

A single run through an inappropriate editor could irrecoverably damage
the indentation!

I for my part would prefer a cleaner syntax, closer to Modula or Oberon,
with statement_list vs. statement_sequence. The "end"s etc. can be
inserted by an appropriate editor, if somebody wants less typing...


> Yeah I know this sounds like a hybrid pascal/python but I believe thats
> the way to go - marry Delphi's speed and component framework with less
> verbose python style syntax and you will have the best RAD language ever
> written.

I like RAD, but only when paired with the reliability and (type...)
safety of Pascal. RAD never should mean: type fast, debug forever - or -
press run and cross your fingers :-(

Or, as Vinzent pointed out:
>> However, in general Pascal has poor developer productivity when
>> compared to modern languages like python and C#.

> In terms of _written_ or in terms of _working_ lines of code? :->


The careful design of a programming language is not a simple task. What
looks nice to the user, may look very different to the compiler writer.
It also should be noted that the amount of *helpful* compiler error
messages heavily depends on the language design.

Unfortunately there exist multiple Pascal compilers, each with different
extensions to the original language, reducing the portability of source
code. With regards to Python you only can hope that there will never
come a
second Python system, and that the development of the language and
libraries will be continued, once the current implementors leave the
project.

DoDi






More information about the fpc-devel mailing list