Whats the difference between Object Pascal and Delphi? Are they the same thing? What are the differences and similarities between them and which one is more useful?
-
1Object Pascal used to be the language and Delphi used to be the IDE but later they changed Delphi to also mean the language. – Ondrej Kelle Mar 29 '13 at 08:40
-
So they're the same thing? – Tracing Mar 29 '13 at 08:41
-
2I'd say Object Pascal is now an obsolete term; not used anymore in Delphi world. It's all Delphi now. Free Pascal still uses it though, I think. – Ondrej Kelle Mar 29 '13 at 08:43
-
4A good overview here [`Object Pascal`](http://en.wikipedia.org/wiki/Object_Pascal). – LU RD Mar 29 '13 at 08:44
-
4Object Pascal is the umbrella term, best, Delphi the most known http://en.wikipedia.org/wiki/Object_Pascal – bummi Mar 29 '13 at 08:46
-
1[Jim McKeeth](http://programmers.stackexchange.com/users/433/jim-mckeeth) is working on a detailed history of the Pascal language and asked this question a while ago: [What features contributed to the evolution of Pascal?](http://programmers.stackexchange.com/questions/96770/what-features-contributed-to-the-evolution-of-pascal/97775) recommended reading! – Jeroen Wiert Pluimers Mar 29 '13 at 11:09
-
6You'd better off consider **"Delphi"** as **compiler** name and **"Object Pascal"** as **language** name. For my knowledge Borland renamed their language in 2002 merely due marketing reasons. – OnTheFly Mar 29 '13 at 14:12
5 Answers
Object Pascal was an object oriented extension of Pascal developed by Apple. The first version of Delphi was evolved from Turbo Pascal. The object oriented features in Turbo Pascal were, rightly, considered not fit for purpose. So Borland developed Delphi 1 and incorporated much of the Apple Object Pascal language. So the language for the Delphi product was originally named Object Pascal.
Apple stopped developing Object Pascal and it was never standardised as had been originally intended. For the release of Delphi 6, Borland chose to rename their language as Delphi.
You ask the question:
What's the difference between Object Pascal and Delphi?
But that's not really too meaningful since the original Object Pascal doesn't really exist in a distinct form any more. Apple abandoned it. The only extant implementations of Object Pascal like languages that are in widespread use are Delphi and the languages that it inspired: FreePascal, Oxygene, DWS, etc.
So a better question would be "What is the difference between Delphi and FreePascal?" Nowadays, Object Pascal is used loosely to refer to this family of related languages.

- 601,492
- 42
- 1,072
- 1,490
-
-
-
4+1 for the history about Object Pascal and the different uses of that name over time. It might interest people that [the original (1990) Adobe Photo shop was 75% Object Pascal](http://wiert.me/category/development/software-development/pascal/object-pascal/). You can even download the source code for non-commercial use. – Jeroen Wiert Pluimers Mar 29 '13 at 10:48
-
1David Hefferman: now that ISO 7185 Pascal is nearing completion, the main missing (practical) dialect is Extended Pascal. (the 2nd ISO standard). – Marco van de Voort Mar 29 '13 at 12:29
-
I think, to avoid being not too meaningful, references should be included. Beyond [ISO 10206:1990](http://standardpascal.org/iso10206.pdf) there were few if any formal definitions of language. – OnTheFly Mar 29 '13 at 14:07
-
1@David: This is a superb and intellectual answer. Can you reveal the sources? Regards, SF – Steve F Mar 29 '13 at 18:25
-
2
-
@DavidHefferman As I remeber, TP 5 was first step to OOP with procedural types implementation and TP 5.5 was the first really object-oriented Pascal implementation (from Philippe Kahn's company, not sure about others) with encapsulation, inheritance and polymorphism. "Object Pascal" involved in Delphi 1 was extension of classic OOP (as "hidden" pointers for example). – Abelisto Mar 29 '13 at 19:01
-
@Abelisto: TP5.5 was not the first OO Pascal using elements of Object Pascal. Shortly before TP 5.5 was released (with OO extensions to TP5), MS had launched QuickPascal, with very similar extensions. I guess that was why they hastily launched TP5.5. TP6 then finally came with a framework, Turbo Vision. – Rudy Velthuis Mar 29 '13 at 22:23
-
@RudyVelthuis It is not the option "Who was first" - It was SmallTalk which is for now is classic realization of OOP. My post was just a history: procedural types - records with procedures - objects. BTW is it here in Delphi: TFoo = object; PFoo = ^TFoo; o: TFoo; op: PFoo; ? – Abelisto Mar 29 '13 at 22:45
-
1@Abelisto: ISTM that many people forget that TP 5.5 was brought out because MS had just brought out a competitive product (QuickPascal) with OO extensions too. I just wanted to mention that. – Rudy Velthuis Mar 30 '13 at 09:15
-
FWIW, I agree with most of what you wrote, but ISTM Turbo Pascal 6 and 7 were actually more like Apple's Object Pascal than Delphi 1. Delphi 1 introduced a new class model, properties, events and some other things that were crucial to its functioning (especially to the new VCL, which was far more sophisitcated than the old OWL) and which OP never had. The only significant difference between TP6/7 and the original OP -- as language, because the runtimes were quite different -- was, IIRC, the use of the override keyword, which TP did not have... – Rudy Velthuis Sep 28 '18 at 12:05
-
... and in the same timeframe, MS developed QuickPascal, also modelled after Object Pascal, and even with an override keyword. It was released shortly before TP 5.5, but never really took off, AFAIK. I guess the lack of a library like e.g. TP's TurboVision (for DOS) and or, later, BP's OWL (for Windows 3.x) killed it. – Rudy Velthuis Sep 28 '18 at 12:09
Object Pascal is an extension to Pascal. There are a number of dialects of Object Pascal, Delphi being one of them. Here is a fairly complete writeup on the History of Pascal. It doesn't include Free Pascal or DWS. Free Pascal is focused on being a open source and cross platform clone of Delphi (I'm sure I've offended a few people with that.)
Each dialect of Object Pascal adds things and implements things a little differently.
So Pascal is a family of languages, with Object Pascal as sub-family, and Delphi a sub-family of Object Pascal.

- 38,225
- 23
- 120
- 194
-
This is a very interesting figure. I would also suggest to add Algol 60, Algol 68 and Algol W. – jwdietrich Nov 29 '13 at 22:27
-
Actually, Free Pascal supports all three types of object pascal (Apple's, TP's (to which it is more compatible than Delphi) and Delphi's) – Marco van de Voort Dec 10 '14 at 10:59
-
1And Modula2 from which TP/Delphi inherited the unit concept – Marco van de Voort May 05 '16 at 10:18
-
@Marco: I thought the unit concept (TP 4) was taken from UCSD Pascal? "From version 4, Turbo Pascal adopted the concept of units from UCSD Pascal" (https://en.wikipedia.org/wiki/Turbo_Pascal#Units). That was my own recollection too. – Rudy Velthuis Sep 28 '18 at 12:18
-
Modula2 and modular programming in general was what Wirth was working on when UCSD (77-78) came out, and standards committees studied it, but postponed it till "extended pascal" in the end. But maybe I misunderstood a remark, and didn't it directly come from M2, but only indirect via UCSD. – Marco van de Voort Sep 28 '18 at 12:41
-
@Jim McKeeth: Sadly 9 years later your link at remobjects is dead. Have you moved this history somplace else? – Sherlock70 Sep 01 '22 at 08:59
-
1@Sherlock70 Preserved by archive dot org ... https://web.archive.org/web/20130216231317/http://www.remobjects.com/oxygene/language/history.aspx – Paul McGee Dec 30 '22 at 04:28
As already said Object Pascal originates from a Apple standards proposal that never was ratified, and is still used for dialects that borrow from it. Most of all the dialect used by Delphi.
The object oriented Turbo Pascal versions were also referred to as Object Pascal as far as I know, though sometimes as "Pascal with Objects". I don't know if there is a relation from the Turbo Pascal objects implementation to the Apple proposal. The main aspect borrowed from Apple seems to be that Object instances are always implicit references.
Borland calls the language Delphi language and thus the exact equivalent of Object Pascal is Delphi language not Delphi.
Since Delphi is a registered trademark in many countries, most compatibles kept referring to the language as Object Pascal, even after Borland renamed it. The renaming was said to be done mostly because "Pascal" equated too much to "old" in the market, according to Borland. Some said it was because "Object Pascal" couldn't be trademarked, and so the renaming was an anti competitive measure. (I'm not paranoid, I don't think this was geared against FreePascal, which wasn't any threat back then, if true, it was probably against embedded startups like Pocketstudio and Gardens Point)

- 25,628
- 5
- 56
- 89
-
1[`Turbo Pascal with Objects` was introduced in Turbo Pascal 5.5](http://programmers.stackexchange.com/questions/96770/what-features-contributed-to-the-evolution-of-pascal/97775#97775). Turbo Pascal 6.0 introduced the Turbo Vision application framework. – Jeroen Wiert Pluimers Mar 29 '13 at 10:56
-
As Jeroen said, the TP and BP versions with OO were called Pascal with Objects, not Object Pascal. – Rudy Velthuis Mar 29 '13 at 22:25
-
TurboPascal adopted some concepts of Apple's ObjectPascal proposal, but also changed some things slightly. This was also the case with Delphi and Free Pascal. winsoft PocketStudio is not really Object Pascal. It extends Pascal in with some conceps of ObjectPascal, but there are neither classes nor inheritance or polymorphisms. – jwdietrich Nov 29 '13 at 22:23
-
Now I think back on it, wasn't "with objects" refering to coming with RTL and TV sources? Did it really mean the language? I can vaguely remember that being the case with BP7 – Marco van de Voort Nov 30 '13 at 11:45
Borland used the name Object Pascal for the programming language in the first versions of Delphi, but later renamed it to the Delphi programming language. However, compilers that claim to be compatible with Object Pascal are often trying to be compatible with Delphi source code. Because Delphi is trademarked, compatible compilers continued using the name Object Pascal.

- 176
- 2
As far as I know, Object Pascal is the name of the language behind Delphi. Delphi itself being the IDE (Integrated Development Environment). In that sense, you can say that Object Pascal is for Delphi (and Lazarus) what objective C is for xCode. Furthermore, Delphi is also known as a RAD (Rapid Application Development) IDE. I hope this helps.

- 21
- 2
-
Well, there is Objective Pascal (in Free Pascal, to interface with Cocoa) – Marco van de Voort Jan 26 '17 at 16:37