お役立ちコンテンツ | フリーランスエンジニアの案件・求人なら【テクフリ】

プログラム言語の歴史 <Delphi編> 

2021.03.30

フラン健史郎

Delphi

目次

    言語と言っても、ドイツ語、英語、日本語があるように、プログラミング言語にも様々なものがあります。

    それぞれのプログラミング言語が生まれた経緯や、その後の展開は、その当時の技術的な要求や社会情勢、流行など、IT業界の情勢に大きな影響を受けています。つまり、プログラミング言語を知ることは、IT業界の歴史を知ることと同じ意味があります。

    みなさんには、多くのプログラミング言語のことを知っていただきたいと思いますが、今回は数多くあるプログラミング言語の一つ、Delphiについてご紹介いたします。

    序文―Delphiとは?―

    Delphiの歴史についてご紹介する前に、プログラミング言語Delphiについてご紹介いたしましょう。

    Delphiは“デルファイ”と読みますが、Delphiを使っているプログラマー、エンジニアに対して、「Delphiって、どう?」と聞くと、彼らは二つのモノが想像するため、「どっちの意味で聞いている?」と聞き返されることが多いです。

    二つのモノとはなにか? というと、一つ目は今回のテーマであるプログラミング言語のDelphiです。そして、もう一つが統合開発環境(IDE)のDelphiです。

    IDEのDelphiは1995年から開発されています。日本では、Microsoft社の「Visual Studio」やIBM社の「Eclipse」などの陰に隠れて、あまり知られない存在かもしれません。

    しかし、パーツ(コンポーネント)をコピー&ドロップで設置して画面などを作ることができる、RAD(Rapid Application Development)ツールとしての機能も含み、「コンポーネント志向プログラミング統合開発環境」として、熱心な支援者の多い統合開発環境です。

    さらに近年、DelphiはマルチプラットフォームIDEへと進化しています。従来のIDEであれば、「AndroidアプリはJavaで書いているから、iOSに移植するためには、Swiftへの書き換えがあって大変」ということがありました。

    ですが、Delphiで作成したソースコードはコンパイル(実際に、コンピューター上で動く形にすること)時に、Windows、macOS、iOS、Android、LinuxのいずれのOSで動作させたいのか情報を付与することで、それぞれのOS向けに、コンパイルしてくれる機能があります。つまり、移植するたびに、プログラミングをやり直す必要はないのです。

    ここで、「Delphiのマルチプラットフォーム機能は分かったけれど、マルチプラットフォームを実現するためには、元ネタとなるソースコードを、どのプログラミング言語で書くかが重要だよね?」と気が付いた方、鋭い。

    Android用のコンパイルは問題なく成功するけれど、iOS用にコンパイルすると、バグが多くなる、という事態になっては困ります。そこで、IDEのDelphiでマルチプラットフォームにコンパイルするためのプログラミング言語として登場したのが、プログラミング言語のDelphiです。

    ちなみに、Delphiとは、デルファイはデルポイまたはデルフォイとも表記される古代のギリシャ都市のことであり、この都市の祭壇で行われた神託(Oracle)は「デルポイの神託(Delphi’s oracle)」と言われ、古代ギリシャ世界で大きな影響力を持っていました。ORACLE社のサーバーへの採用を意識していたため、Delphiという名前になったそうです。

    さらに補足すると、特定の分野の専門家同士で、数回のアンケートとその結果を共有して、物事を決定する方法をデルファイ法と呼びます。大規模なプロジェクトでも良く使われる意思決定法の一つです。

    Delphiの誕生

    Delphiの誕生

    序文にて、プログラミング言語のDelphiについて、“IDEのDelphiでマルチプラットフォームにコンパイルするためのプログラミング言語として登場した”と記載しましたが、プログラミング言語の家系図を作るとすれば、Pascal、そして、Pascalにオブジェクト指向性を持たせたObject Pascalという言語の発展形という位置付けになります。

    もっと正確に言えば、Object Pascalを使っていたけれど、IDEのDelphi用にいろいろ手を加えてみた結果、もはやObject Pascalとは独立した言語のようになってしまったため、Delphiと呼ばれるようになってしまいました。

    IDEのDelphi にPascalが利用されるようになった理由としては、教育目的のプログラミング言語であるため、同時に初期のMacOS開発に利用される程度に、実績や信頼性があると同時に、もともと、教育用プログラミング言語として開発されたため、ソースコードが書きやすかったのが一因のようです。興味深いことに、生産性、可読性を最重視したモダンプログラミング言語であるGo言語の文法は、Pascalに似ているとの指摘もあります。

    なんにせよ、プログラミング言語Delphiの歴史は、IDEのDelphiの歴史は互いにリンクしており、この両者を切り離して説明することはできません。プログラミング言語Delphiが初めて世間に登場したのも、1995年9月、『Delphi for Windows』として、IDEのDelphiがリリースされたタイミングとなります。

    Delphiの黎明期

    IDEのDelphiは「コンポーネント志向プログラミング統合開発環境」は非常に多くのシステム開発者・プログラマーに注目を集め、1995年から1999年まで、毎年バージョンアップ版が登場しています。それに合わせて、プログラミング言語Delphiも修正やバージョンアップを行われています。

    特に、1997年にリリースされた、「Delphi3」ではウェブアプリケーション開発機能が提供され、その後のDelphiの基礎になっています。

    さらに、2001年にリリースされた「Delphi6」は個人利用者向けの無償版エディションが公開されたことにより、趣味でプログラミングをする人の間でもDelphiが広まりました。

    ただ、企業で使うIDEとしてはMicrosoft社の「Visual Studio」と「Visual C++」などの方がDelphiよりもリリースが早く、しかもMicrosoft製品である、という安心感・信頼性があるため「Delphi」よりも圧倒的に採用例が多いです。

    さらにオープンソースでライセンス料のかからないIBM社の「Eclipse」も2001年に登場するなど、2000年半ばから、(企業にとって)魅力的なIDEが増える中で、DelphiはC#をサポートなどの機能拡大に踏み切った結果、コンパイラーやドキュメントの品質劣化を引き起こし、利用者離れを引き起こす事態となりました。

    結果としてDelphiは「好きなエンジニアも多いけれど、仕事では使わないIDE」、そしてプログラミング言語としてのDelphiも「知っている人しか知らないプログラミング言語」という立ち位置に落ち着くことになりました。

    Delphiの成長期

    一時、利用者離れを引き起こしたDelphiですが、2008年にリリースされた、Delphi 2009が転機となり、徐々にですが、利用者が再獲得するようになっていきます。ちなみに、Delphi 2009では長年の課題とされていた、Unicode対応など、求められていた機能を追加する一方で、安定性の悪化につながっていると指摘されていたDelphi for .NETを廃止するなど、それ以前のDelphiから大きな進化を遂げています。

    さらに2015年にリリースされた、Delphi XE8では iOS用のコンパイラが追加されるなど、徐々にマルチプラットフォーム環境開発能力を獲得し、エンジニアたちからの注目を集めるようになっていきました。

    Delphiの現在

    Delphiの現在ですが、2017年にリリースされた、Delphi 10.2 Tokyoより公式サイトで商用利用には制限があるものの、無償提供されるDelphi Community Editionが登場し、利用者のすそ野が広がりつつあります。

    趣味でスマホアプリの作成を考えている方には有力な選択肢になっています。しかし、相変わらず企業で使うIDEとしては、Delphiは標準的とはいいがたいため、プログラミング言語のDelphiについても求人数などでは、伸び悩んでいるのが現状です。

    まとめ:Delphiは学んでおいて損はない

    IDEとしてのDelphiの使い勝手は素晴らしいです。また、専用プログラミング言語Delphiでソースコードを作成して、各OS向けにコンパイルするというマルチプラットフォームの実現方法も素晴らしいです。

    現在のところ、企業での利用は部分的ではありますが、今後、トレンドへと浮上できるだけのポテンシャルがあるため、趣味の範囲で良いので、かじっておいて損のないものではないかと思います。

    今すぐシェアしよう!

    B!
    <span class="translation_missing" title="translation missing: ja.layouts.footer.icon_back_to_top">Icon Back To Top</span>
    TOP