
Why I Use (Object) Pascal - mojuba
http://www.screamingduck.com/Article.php?ArticleID=43&Show=ABCE
======
mojuba
Besides, credits must be given to Anders Hejlsberg who brought Wirth's awkward
and unusable brainchild to market by doing 2 things: by extending the language
in the most consistent and beautiful way and by creating probably the fastest
optimizing native-code compiler ever created. The compiler itself was a
masterpiece of SE.

Should I say how much I regret Hejlsberg left Borland to join Microsoft? That
put an end to Delphi/Object Pascal, although the language and the IDE had the
full potential to take C#'s market today.

~~~
tx
Smartest thing he ever did.

Borland never had R&D or marketing muscle to keep up with everyone else
(Microsoft). Their C and C++ compilers were always buggy (sometimes adding an
empty line would stop a compiler from crashing), their profilers never worked,
their C++ IDE used modal dialogs to display progress of compilation... Delphi
was the only reasonably well-built piece of software they did, and it was
still beaten by VB commercially.

~~~
bayareaguy
If
[http://delphi.about.com/od/delphifornet/a/conspiracydnet_2.h...](http://delphi.about.com/od/delphifornet/a/conspiracydnet_2.htm)
is to be believed, he also got a cool $3 million signing bonus too.

------
tx
Jesus... this is a very personal "back to college" article for me. Fuck Pascal
- it is nothing but a parent of Java and C#, less powerful, even more verbose
and restrictive with the same dumb and rigid OO-implementation. The language
was designed as a learning tool and it shows. While it was crazy popular in
the 90s (at least in Russia) I am glad to see it finally going away.

When I upgraded from Object Pascal (Delphi, really) to C++ it was like jumping
into a superman costume.

~~~
mojuba
You obviously didn't get the article, neither the language.

C++ is not a superset of Object Pascal, rather, each have their niche
features. I probably felt the same as you when I first upgraded to C++, but
that followed by some disappointment, too. I missed sets as first-class data,
the subrange type and many other big and small things. And the object model
was quite different. I'd even argue that if you forget about operator
overloads in C++, the rest looks quite weak when compared with Object Pascal's
OO model. The article mentions some, e.g. virtual constructors, properties,
etc.

The rest is basically in the article. Lots of features that are still missing
in the mainstream languages.

And most importantly, the final binaries you get with Delphi are
indistinguishable (size, speed) from those produced by C/C++ compilers, if not
better sometimes.

If I were OP maintainer, I'd probably bring the language to today's
"standards" if that's the word, by adding just a couple of things - anonymous
functions, probably yield semantics, also foreach and better support for
built-in dynamic arrays.

~~~
tx
Most of the "features" of the language is what I call "constraints". Old
Kernigan's "Why Pascal is not my favorite language" in large part stlil
applies today - the damn thing simply wasn't designed to be practical, and I
was paid money for nearly 3 years out of college to write Pascal code, this i
s probably why I have such a strong opinion about it.

Pascal's OOP is about as useless as C#'s compared to power of what multiple
inheritance + templates give you, not to mention the true Smalltalk-style
message passing.

Virtual constructors is not a "feature", it's (just like various additions to
C#/Java) is an afterthought patch to a rigid static world. This is very
typical for created-in-a-lab languages: they were designed with a average Joe
programmer in mind, protecting him from shooting himself in a foot, and later
on, to make them less painful to use, were given these "features".

Pascal's came from academia blessed by a traditional and inevitable "kiss of
death" preventing it from generating a true massive fan following. Compare
that to Unix/C/C++ (or Lisp, Smalltalk, Perl, Python, Ruby, etc) that were
created by programmers for programmers.

~~~
mojuba
Just read it, Kernighan's "Why..." <http://www.lysator.liu.se/c/bwk-on-
pascal.html> No single point in this article is relevant today and pertinent
to Object Pascal. _None_. Too out of date.

Delphi does have messages, templates are not part of OO, multiple inheritance
is present in Delphi in some restricted form (I* interfaces) and the rest in
your post is just emotions.

~~~
zeka
Hold on, I thought in Delphi you still have to separate constants, typedefs,
variables and code into different blocks, no?

~~~
mojuba
True, but in classical Pascal they should go in particular order, and that's
what K. is complaining about (no wonder), while for Turbo/Object the order is
not important. That was a purely syntactic obstacle and nothing serious.

