Quelle est la différence entre Object Pascal et Delphi? Sont-ils la même chose? Quelles sont les différences et les similitudes entre elles et laquelle est la plus utile?
Object Pascal était une extension orientée objet de Pascal développée par Apple. La première version de Delphi a été développée à partir de Turbo Pascal. Les fonctionnalités orientées objet de Turbo Pascal étaient, à juste titre, considérées comme inadaptées. Borland a donc développé Delphi 1 et incorporé une grande partie du langage Apple Object Pascal. Le langage du produit Delphi s'appelait donc Object Pascal.
Apple a cessé de développer Object Pascal et il n'a jamais été normalisé comme prévu à l'origine. Pour la sortie de Delphi 6, Borland a choisi de renommer leur langage en Delphi.
Vous posez la question:
Quelle est la différence entre Object Pascal et Delphi?
Mais cela n’a pas vraiment de sens car l’Object Pascal d’origine n’existe plus sous une forme distincte. Apple l'a abandonné. Les seules implémentations existantes d'Object Pascal, à l'instar des langages largement utilisés, sont Delphi et les langages qu'il a inspirés: FreePascal, Oxygene, DWS, etc.
Donc, une meilleure question serait "Quelle est la différence entre Delphi et FreePascal?" De nos jours, Object Pascal est utilisé librement pour faire référence à cette famille de langages apparentés.
Object Pascal est une extension de Pascal. Il existe un certain nombre de dialectes de Object Pascal, Delphi étant l'un d'entre eux. Voici un article assez complet sur le Histoire de Pascal . Cela n'inclut pas Free Pascal ni DWS. Free Pascal se veut un clone de Delphi open source et multiplate-forme (je suis sûr que j'ai offensé quelques personnes avec cela.)
Chaque dialecte de Object Pascal ajoute des choses et les implémente un peu différemment.
Donc, Pascal est une famille de langages, avec Object Pascal comme sous-famille et Delphi, une sous-famille d’Object Pascal.
Comme indiqué précédemment, Object Pascal provient d'une proposition de norme Apple qui n'a jamais été ratifiée et qui est toujours utilisée pour les dialectes qui en empruntent. Surtout le dialecte utilisé par Delphi.
Les versions Turbo Pascal orientées objet étaient également appelées Object Pascal, autant que je sache, bien que parfois "Pascal avec objets". Je ne sais pas s'il existe une relation entre l'implémentation des objets Turbo Pascal et la proposition Apple. Le principal aspect emprunté à Apple semble être que les instances Object sont toujours des références implicites.
Borland appelle le langage langage Delphi. L’équivalent exact de Object Pascal est donc le langage Delphi et non Delphi.
Comme Delphi est une marque déposée dans de nombreux pays, la plupart des compatibles ont continué à faire référence à la langue en tant que Object Pascal, même après que Borland l’a renommée. Le changement de nom aurait été fait principalement parce que "Pascal" assimilait trop "ancien" sur le marché, selon Borland. Certains ont dit que c'était parce que "Object Pascal" ne pouvait pas être déposé, et le changement de nom était donc une mesure anticoncurrentielle. (Je ne suis pas paranoïaque, je ne pense pas que cela visait FreePascal, ce qui n'était pas une menace à l'époque. Si c'était vrai, c'était probablement contre des startups telles que Pocketstudio et Gardens Point)
Borland a utilisé le nom Object Pascal pour le langage de programmation dans les premières versions de Delphi, mais l'a ultérieurement renommé en langage de programmation Delphi. Cependant, les compilateurs qui prétendent être compatibles avec Object Pascal essaient souvent de le faire avec le code source Delphi. Comme Delphi est une marque déposée, les compilateurs compatibles ont continué à utiliser le nom Object Pascal.
Pour autant que je sache, Object Pascal est le nom du langage derrière Delphi. Delphi lui-même étant l’environnement IDE (environnement de développement intégré). En ce sens, vous pouvez dire que Object Pascal est pour Delphi (et Lazarus) ce que Objective C est pour xCode. En outre, Delphi est également appelé IDE RAD (Rapid Application Development). J'espère que ça aide.