Delphi 言語 / Object Pascal という名称について

# Delphi で使われる言語

現在 [Delphi](https://ja.wikipedia.org/wiki/Delphi) で使われている言語は「[**Object Pascal**](https://ja.wikipedia.org/wiki/Object_Pascal) (おぶじぇくと ぱすかる)」と呼ばれています。

Delphi が話題になる際に「Delphi Language」「Delphi 言語」「Delphi」「Object Pascal」が入り交じっているので、整理しました。

# 言語名の変遷

バージョン毎の言語名は以下の通りです。

| バージョン       | 言語名          |
|------------------|-----------------|
| Delphi 1.0～6    | Object Pascal   |
| Delphi 7～XE5    | Delphi Language |
| Delphi XE6～現在 | Object Pascal   |

## 第1 Object Pascal 期
まず、[Pascal](https://ja.wikipedia.org/wiki/Pascal) にオブジェクト指向が導入される歴史を見てみます。

* 1983 年、[Apple Computer](https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%83%E3%83%97%E3%83%AB_(%E4%BC%81%E6%A5%AD)) 社が [Lisa](https://ja.wikipedia.org/wiki/Lisa_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF)) という PC を開発しているときに、Pascal にオブジェクト指向を導入した [Clascal](https://en.wikipedia.org/wiki/Clascal) が開発されました。

* 1985 年、Macintosh の開発に伴って、Clascal は Object Pascal に進化しました。

* 1989 年、[Borland](https://ja.wikipedia.org/wiki/%E3%83%9C%E3%83%BC%E3%83%A9%E3%83%B3%E3%83%89) は [Turbo Pascal](https://ja.wikipedia.org/wiki/Turbo_Pascal) 5.5 に Apple Object Pascal を参考にオブジェクト指向を取り入れ言語を Object Pascal としました。

ここに、Apple による Object Pascal と Borland による Object Pascal が誕生しました。
なお、その後 Apple は Object Pascal を使わなくなったため、近年では Object Pascal といえば、Borland のものを指すようになりました。

そんな Object Pascal ですが、Turbo Pascal の子孫である Delphi にそのまま引き継がれ、Delphi でも Object Pascal という名称のまま使われる事になります。

## Delphi Language 期

Delphi の進化に伴って Object Pascal はどんどん進化しました。
しかし、あるとき「これらの拡張仕様は Delphi だけしか使っておらず[^1]、もう Pascal と呼べないのでは無いか？」となり、「Delphi Language (Delphi 言語)」と改称されました。
Delphi は環境名で、言語名は Delphi Language なのですが、区別無く Delphi と呼ばれることもありました。

下図は Delphi 7 のヘルプです。
この頃は、まだ Object Pascal という名称から Delphi 言語に完全に移行仕切れていない事が解ります（タイトルは Delphi 言語なのに、文法は Object Pascal）。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/12977/95cbcdff-4e3e-62eb-9153-66b84e04ca54.png)

## 第2 Object Pascal 期 (現在)

未来永劫 Delphi Language という名称で行くのかと思いきや、ここで [AppMethod](https://ja.wikipedia.org/wiki/Appmethod)[^2] が登場します。
AppMethod は Delphi から VCL 等を差し引いたマルチプラットフォーム専用開発環境です。
AppMethod では Delphi 同様 Delphi Language が使われるのですが、問題が発生します。
つまり、Delphi でしか使われなかったから Delphi Language という名前にしていたのに、Delphi 以外に Delphi Language を使う開発環境が爆誕してしまったのです。

そこで、今後の事も考え言語の名称を Object Pascal に戻しました。

下図は[エンバカデロ・テクノロジーズのウェブ](https://www.embarcadero.com/jp/products/delphi/features/delphi)より抜粋。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/12977/31bac16a-d290-6b11-c5fd-4a33095f873f.png)
さりげなく [Anders Hejlsberg](https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%B3%E3%83%80%E3%83%BC%E3%82%B9%E3%83%BB%E3%83%98%E3%83%AB%E3%82%B9%E3%83%90%E3%83%BC%E3%82%B0) が書いてある…

ちなみに最新の Delphi 10.3 Rio でヘルプを出すと Delphi 言語と出ますが、赤枠で囲った様に Delphi 7 のマニュアルが載っているためです（該当箇所全部書き直すの大変だもんね…）。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/12977/47fa4bbe-1ea3-af19-5612-1491095b251e.png)


# まとめ
そんな訳で恐らく今後は Object Pascal から変更されずに、このまま行くと思いますので Delphi についての文章を書く際は言語名は「Object Pascal」として書いて頂けると助かります（ググラビリティの向上のため）。

# 追記 
#### 2019/02/04
Delphi 10.3 Rio の DocWiki にある他の文書（例えば[コレ](http://docwiki.embarcadero.com/RADStudio/Rio/ja/%E6%96%B0%E6%A9%9F%E8%83%BD#Delphi_.E8.A8.80.E8.AA.9E)）でも Delphi Language って書いてあるし、Delphi Language のままなんじゃないの！？というツッコミをいただきました。
ということで、いま開発チームにどうなってるの？と問い合わせ中です。

#### 2019/02/05
解答いただきました。
言語名はあくまで「Object Pascal」とのこと。
他の Object Pascal 処理系(FreePascal など)と比較して何かを語りたいときには「Delphi Language」を使う事もある、ということでした。

Delphi の PM である Marco Cantu 氏の OBJECT PASCAL HANDBOOK Delphi 11 Edition も言語名として Object Pascal を使っていますね。
https://www.amazon.co.jp/dp/4877835210

[^1]: 実際には Delphi 以外に Delphi Language をコンパイルできる製品は複数ありました。例えば Delphi との互換性の高さを目指していた [Free Pascal](https://ja.wikipedia.org/wiki/Free_Pascal) や、Linux 版の Delphi として開発された [Kylix](https://ja.wikipedia.org/wiki/Kylix) 等です。

[^2]: その後 AppMethod は廃止されました…