Delphiの歴史?
現状でのリリース状況とCodeGearのロードマップを重ねてみたものを作ってみました > "Delphiの歴史(PDF)"
整理してみると、
- 初代Delphiとその"早期体験プログラム(EEP)"は16bitアプリケーション。
- Delphi 2~Delphi 7(7.1)までは基本的に変化はない(for Win32)。
- Delphi 6で"Linux版Delphi"であるKylixへブランチ。
- Delphi 6 以降、使用許諾登録が必要になった。
- Delphi 7 は Windows XP のビジュアルスタイル対応製品。
- Delphi 8は"Delphi for .net"の最初の製品。
- Delphi 8 以降、新IDE(Galileo)が採用された。
- Delphi 2005 は"for Win32"と"for .net"が融合したDelphi。
- BDS 2006 はさらに C++ Builder(for win32/ for .net)を融合した統合開発製品。
- BDS 2006 を単体にバラしたのが "Turboシリーズ"。
- Delphi 2007 は Windows Vista の新機能対応製品。
(...というより、Delphi 2007以前の製品にはQC37403の問題等が存在する)
となります。
また、日本で公開された無償版Delphiには
があります。海外ではこれ以外の無償版があったようですが、現在では恐らくDLできないでしょう。
ここから先は憶測になってしまいます。
- "BDS2006"で統合開発環境にしたのはいいが、価格が高くなってしまった。
- 単体版を望む声が多かった。
- 統合開発環境では人的リソースの分散により、開発スケジュールの遅延が起きた。
- "BDS2007(Highlander)"ではこれらの問題を解決するために、各製品を一旦モジュール化し、再結合させる事ができるような構造にする必要があった。
- その為には一度"密に結合してしまったBDS2006"をバラす作業を行う必要があった。この副産物が"Turboシリーズ"。
("BDS2006"と"Turboシリーズ"は同居できない事が根拠。コンパイラバージョンも同一)
- BDS2006でもモジュール化の概念は存在したが、各言語が融合せざるを得ない状況(中途半端なモジュール化)になってしまった。
(Turboシリーズが複数インストールできない事が根拠)
- 現在のロードマップの"Highlander"とは"Delphi/C++Builder for Win32"と"Delphi for .net"を結合させたもので、"Delphi/C++Builder for Win32"部は"Delphi 2007/C++Builder 2007"と全く同一のもの。
- "Highlander"は"CodeGear RAD Studio 2007 (CRS2007)"としてリリースされる予定。
- "Delphi 2007 for Win32"に"C++Builder 2007"をインストールしても疑似統合環境を構築できると思われる。
("Delphi 2007 for Win32"のUpdate1には対"C++Builder 2007"のものが含まれる)
- 逆に"Delphi 2007 for .net"が単体リリースされるかもしれない。
- "Delphi 2007 for win32"/"C++Builder 2007"/"Highlander"は同じ"BDS 5.0 (CRS 5.0)"のカテゴリとなる。
- 将来は次期Delphiである"Tiburon"と次期C++Builderである"Barracuda"を組み合わせたり、単体リリースしたりして顧客のニーズに合わせる予定。
- 実はDelphiは"Delphi for .Net"が本命だと考えられている。
以上が、リリースされた製品と、ロードマップの内容から導き出した結論です。恐らく"Delphi 2007 for Win32"は"Highlander"或いは"(将来の)CodeGear RAD Studio"のための試金石なのでしょう。
"Highlander"から"Delphi for .net"を削ったのが"Delphi/C++Builder 2007 for Win32"と言えますが、このリリースはCodeGearにとっては不本意なものだったのかも知れません。本来は"Highlander"のリリースと同時(或いはその後)に"Delphi/C++builder 2007 for Win32"を単体リリースするつもりだったのかも知れませんが、予想以上に"Delphi for .net"部分が難航したのだと思われます。
"Delphi 2007 for Win32"のIDEから".Net由来のツール"を排斥しなかったのは、結局、最終目的の"Highlander"で.Net環境が必要となるからでしょう。
"Tiburon"のロードマップで解るのは、"Delphi(for Win32 + for .Net)"と"C++Builder"が別の系統で開発されるという事です。本来の"Highlander"もそういうロードマップだったのかもしれません。"Tiburon"からは
"Delphiと言ったらDelphi 2005のようなfor win32/for .Netの2Wayツールを指す"
事になると思います。ここに別系統の"C++Builder"を加えて"CodeGear RAD Studio"を名乗る事になるのでしょう。こうしておけば将来のWindowsでネイティブアプリケーションの動作が制限されるような事になっても、 Delphiブランドを残す事ができます。
"for win32"でのUnicode対応や64bit対応に消極的なのは、
- 64bit対応はアプリケーション開発の主流がフレームワーク(.net)を用いたものになればあまり意味のない事。
- Unicode対応は"for .Net"の.Net完全対応化時にどのみち必要。
- アンケートの結果はともかく"for .Net"に軸足を移す必要がある。
という考えがあるからなのかも知れません。独自のフレームワーク(Windows/Linux/MacOSX統一)を開発できれば、数多の問題を一気に解決できる気はしますが、昨今の台所事情ではそれは難しいでしょう。フレームワークをどこかの会社と組んで作れれば最高なのですが(何故Monoに肩入れしないのだろう?)、Microsoftに正面切って喧嘩売る事ができる会社がどれだけ存在するのかと言えば...?
とにかく、CodeGearにとって"Delphi for .Net"は譲れない一線のように思えます。"Highlander"を開発する上でラッキーだったのはアンケートの結果、"Win32ネイティブ開発環境を望む"ユーザが多かった事かもしれません。"ネイティブ開発環境に注力"という(本心ではない?)方針を打ち出して、先行して"Delphi 2007 for Win32"をリリースすれば、ユーザの意思を汲んだ上で"Delphi for .Net"に費やせる時間を稼げます。本当にアンケートの結果を重視するのであれば、ロードマップの優先事項は"Highlander"をキャンセルしてでも"64bit対応&Unicode対応"が先なハズです。
2007/06/22にロードマップが変更になり、ここに"Commodore"というコードネームの付いた製品がロードマップに登場しました。これは"Delphi"の64bit対応版です。本家NGでは"Commodore"で64bit対応を謳っているので「"Commodore 64"かよ、対応CPUはやっぱり6510なのか?」と揶揄されています(^^;
"Commodore"以降では".Net Compact"や"他のOS用"のクロスコンパイル環境を追加する予定のようです。"他のOS用"とは、LinuxやMac OSX(Intel Mac)の事だと思われます。クロスコンパイル環境なのは、"IDEを専用に起こす必要がない"のが大きな理由でしょう。wineの力を借りるにしても開発にはそれなりの時間が必要だからです...残念ではありますが、現状では最も妥当な選択かもしれません。MSBuildの採用も一回のビルドで複数のOS用バイナリを吐くようにするために必要だったのかもしれません。それと、"Delphi for .Net"に絡んでMonoの実用性が向上するのを待っている可能性もあります。
ロードマップで不自然なのは"C# builder"が存在しない事です。幾らC#が言語として標準化されているとは言え、MicrosoftのC#と競合するのは意味のない事だと考えたのかもしれません(.Net上で競合する限り、まず勝ち目はありませんから)。案外、"C++Builder for .Net"を考えているのかもしれません(ポインタの使えないC++にどれだけの存在意義を見出すか、ですが)。或いは本当に"Delphi for .Net"のみを主力製品として、MicrosoftのC#/VB.NETにぶつけるつもりなのか...?
以上のように考えると"Delphi 2007 for win32"の仕様とロードマップの辻褄は合う気がします。つまり、あのロードマップはどれ一つ動かす事のできないもので、"ユーザが介入できる余地はない"のだろうと思われます。
将来の事をあんまり考えても仕方のない事ですが...。
追記:2007/06/25
Delphi 2007インストール環境にC++Builder 2007をインストールするとどうなるのか?
既にDelphi 2007を持っている方の素朴な疑問でしょう。私はC++Builder 2007発売前にこう推測しました。
- 現在のロードマップの"Highlander"とは"Delphi/C++Builder for Win32"と"Delphi for .net"を結合させたもので、"Delphi/C++Builder for Win32"部は"Delphi 2007/C++Builder 2007"と全く同一のもの。
- "Delphi 2007 for Win32"に"C++Builder 2007"をインストールしても疑似統合環境を構築できると思われる。
- "Delphi 2007 for win32"/"C++Builder 2007"/"Highlander"は同じ"BDS 5.0 (CRS 5.0)"のカテゴリとなる。
...実はCodeGearに資料がありました。"RAD Studio インストールFAQ"です。結論から言えば、"概ね正解"という事のようです。但し、製品版とトライアル版の併用は不可能です。