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.
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.
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.
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.
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.
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.
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.
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.