Delphi Community Edition
ついに!待望の!全ての機能を使える Delphi の無料版が発表されました!!!!!!!
Delphi 11.3 Alexandria Community Edition のダウンロードはここから!
Starter Edition では Windows アプリケーションだけしかビルド出来ませんでしたが、この Delphi Community Edition は無料なのに Windows, macOS, iOS, Android のアプリケーションがビルドできるのです!
Delphi Community Edition は、Delphi Professinal 相当の無償版になっていて今まで公開されたどの無償版よりも強力です(ライブラリのソースコードも付いています!!)。
商用や企業での利用には制限がありますが、個人の学習目的などには制限が一切ありません!
※ライセンスに関する詳細はソフトウェア使用許諾およびサポート契約書やFAQをご覧下さい。
※2020/5/27 に最新の Delphi 10.4 Sydney がリリースされましたが、Community Edition については数ヶ月後のリリースが予定されています 10.4.x の最終版が提供される予定になっています。
(ライセンス違反の商用利用が横行したためとのことです)
※2023/11/08 Delphi 12 がリリースされました。
※2023/04/27 Delphi 11.3 Community Edition がリリースされました。
※2021/07/20 Delphi 10.4.2 Community Edition がリリースされました。
※2021/09/09 [Delphi 11]がリリースされました。
この記事では Delphi とはなんぞや、というところから、Delphi の学習に役立つページを伝えたいと思います。
追記:2021/07/20 Delphi Community Edition のリリースサイクル
10.4.2 以降の Community Edtion は、最新バージョンの最終バージョンを Community Edition としてリリースします。
最新バージョンの最終バージョン
メジャーバージョンアップが出た後、通常であれば年2回のアップデートリリースがあります。
このアップデートリリースが落ち着いたタイミングのバージョンを「最新バージョンの最終バージョン」と記しました。
そして、Delphi の次バージョンのリリースが近づくタイミングで Community Edition がリリースされる予定です。
つまり、今後は Community Edition は1つ古いバージョンになるということです。
Delphi とは
1995 年に発売された統合開発環境で、今現在も開発が続いている息の長い開発環境です。
RAD(Rapid Application Development)環境の走りで、今では当たり前になった Drag & Drop による GUI 構築をメインにした迅速なアプリケーション開発が可能です。
また特筆すべきは、コンパイラが8種類搭載されており、全てネイティブコード(Intel, ARM)にコンパイルされる事です。驚くべき事に Android のアプリケーションすらネイティブコードにコンパイルされます。別途 VM や Runtime 環境を必要とした開発環境とは一線を画す高速化も可能になります。
Wikipedia の Delphi のページは良くまとまっているのでご一読いただくとさらに良いかも知れません。
開発元
エンバカデロ・テクノロジーズで開発・発売されています。
エンバカデロ・テクノロジーズが買収するまでは、Borland で開発・発売されていました。
なお、Delphi は開発元がコロコロ変わるという言説がありますが、それは間違いで、開発元が変わったのはエンバカデロ・テクノロジーズが Borland の開発部門(CodeGear)を買収した1回のみです。
C++Builder とは
Delphi の姉妹製品で C++ でプログラムできるようにした製品です。
Delphi と C++Builder の両方を合わせた RAD Studio というスイートもあります(ライブラリや IDE は同じため後述の DocWiki などでは RAD Studio の呼称が使われています)。
注意
Community Edition では、Delphi と C++Builder の両方をインストールすることはできません。
それは、有償の RAD Studio の領分になるためです。
どちらか片方をインストールする場合、C++ が大好き!ではないならば Delphi をオススメします。
Delphi は C++ で書かれた DLL や obj をリンクできますが C++Builder 単体では Delphi のソースをビルドしてリンクできないためです(IDE 自身も Delphi で作られているため IDE の拡張もできません) 2018/07/26 修正:C++Builder Community Edition には Delphi のコンパイラも入っていました!ですので C++Builder でも不具合はありません。それでも個人的には Delphi をオススメしますが!
特徴
VCL / FireMonkey という2つのライブラリと、FireUI やマルチデバイスプレビュー、スタイル、データエクスプローラー、Visual Live Bindings, Action, Layout, Anchor など様々な機構によって、極限まで開発者の手間を減らし迅速にアプリケーションを開発できます。
2011 年発売の Delphi XE2 以降は「マルチプラットフォーム開発環境」になっており、現在は Windows, macOS, iOS, Android, Linux のアプリケーションを開発できます(ただし Linux 向けアプリケーション開発機能は Community Edition では提供されません)。
※Linux で GUI アプリケーションを開発するためには GetIt で提供される FMXLinux を使います。詳しくはこちらをどうぞ。
また、マルチプラットフォーム開発環境としての最大の特徴は 「真のワンソース」 の1点につきます。
OS に関わらずアプリケーションを1つのソースで開発できます。つまり、OS ごとに GUI デザイナが別々になったり、フレームワークが別になったりしません。
もちろん、それはデスクトップ向けアプリとモバイル向けアプリでも同様で、解像度や向きに関わらず1つのソースで構築できてしまいます!
実際にどんな風に使うのか、どうやってデザインするのか、ワンソースで全部に対応するってどういう事なのか、を知りたい方は、先日行われた Delphi Community Edition Meet up ! の資料をどうぞ。
現在の Delphi!
現在の Delphi はこのような見た目でモダンな感じになっています(ダークテーマ, Wikipedia より拝借)。
最近の Delphi で作ったアプリケーション
- Quick Font Comparer
窓の杜の紹介記事
https://forest.watch.impress.co.jp/library/software/qf_comparer/
用途
- クライアントアプリケーション
- サーバサイドアプリケーション
- Web アプリケーション
- CUI アプリケーション
- IoT アプリケーション
- 3D アプリケーション
- DLL や Dylib の作成
- etc.
など何でもこなすオールラウンダーです。
特に Windows では、Win32 アプリケーションだけでなく Windows Bridge による UWP アプリも作成できるので、Delphi でアプリを作れば Microsoft Store, iTunes Store, Google Play などオフィシャルなストアに登録できます。
また、元々は Oracle のデータベースのフロントエンド環境も目指していたためデータベースとの親和性はピカイチで、データベースへのアクセスや REST サーバへのアクセスなどは、コンポーネントを置くだけのノンコーディングで実装できます。
詳しくは主要なアプリケーション種別をご覧下さい。
動作環境
Delphi Community Edition で使う開発環境を RAD Studio IDE と呼びます。
この IDE 自体は Windows でのみ動作します。
IDE の動作環境は以下のようになっています。
- CPU: Pentium 1.6GHz以上
- OS: Windows 7 SP1/8/8.1/10(すべて32bit,64bit)
- 空き容量:6〜60GB以上(エディション・設定に依存)
- RAM:2GB以上
- 1,024×768以上の解像度が動作するDirectX 11対応のビデオカード/モニタ
また、これとは別に macOS, iOS の開発をする場合は、それぞれの実機と開発者登録、Xcode Command Line Tools などが必要になります。
ターゲットOS
以下の OS 向けのアプリケーションを開発できます。
2020/1/27 追記
10.3.2 で macOS 64bit が 10.3.3 で Android 64bit 版が加わり全てのプラットフォームで 64bit がサポートされました。
- Windows 32bit
- Windows 64bit
- macOS 32bit
- macOS 64bit
- iOS Simulator
- iOS 32bit
- iOS 64bit
- Android 32bit
- Android 64bit
詳しくは「サポートされているターゲット プラットフォーム」「 FireMonkey プラットフォームに必要な準備」をご覧下さい。
言語
実務以外にも教育向けも強く意識された Pascal をオブジェクト指向に拡張した Object Pascal という言語を使用します。
教育向けの系譜を汲む Object Pascal は非常に解りやすく読みやすいコーディングが可能です。
もちろん教育だけでなく実務にも利用できるパワフルな言語になっていて、その証拠に Pascal は Pascal で書かれています。そして、それと同じように、Delphi も Delphi で作成されています(セルフホスティング)。
また、現在の Object Pascal は Class / Record Helper, Generics, reference to による無名関数など多くの機能が追加され、現代の他の言語にひけを取りません。
久しぶりに Delphi を触ろうと思っている方は「Delphi 7以降の言語およびコンパイラの新機能」やこちらをご覧下さい。昔は存在しなかった構文などがあると思います。
2019/1/23 追記
Delphi 10.3 Rio で更に「インライン変数定義と型推論」が導入されました。
詳しくは、こちらをご覧ください。
2020/08/12 追記
Delphi 10.4 Sydney で、カスタム管理レコードが導入されました。
詳しくは、こちらをご覧ください。
他の言語に見られない特徴としては、ミックスドランゲージが得意ということです。
直接 API が呼べるので、他の開発環境の様に API が移植されるのを待つ必要はありません。
例えば、下記の例は Java と Objective-C の API を直接呼ぶ様を示しています(言語の機能とライブラリによって実現されています)。
procedure StartIntent;
var
Intent: JIntent; // 接頭辞 J は Java のクラスを示す。ARCで自動廃棄される
begin
Intent := TJIntent.Create; // TJ は Java のクラスの ObjectPascal での実体を示す
// メソッドチェーンも普通に呼び出せる
Intent
.setAction(TJIntent.JavaClass.ACTION_VIEW)
.setData(StrToJURI('URLとか'));
// Java のメソッドを普通に呼び出せる(TAndroidHelper.Activity はメインActivityを示す)
TAndroidHelper.Activity.startActivity(intent);
end;
procedure SetMinSize(const iForm: TForm; const iMinW, iMin: Integer);
var
Wnd: NSWindow; // macOS のクラスがそのまま使える。ARCで自動破棄される
Size: NSSize; // こっちも
begin
Wnd := WindowHandleToPlatform(iForm.Handle).Wnd; // NSWindow を取り出す
Size.width := iMinW;
Size.height := iMinH;
Wnd.setContentMinSize(Size); // Objective-C のメソッドをそのまま呼び出せる
end;
フレームワーク
Delphi は VCL と FireMonkey という2つのフレームワークが搭載されています。
VCL
Windows 専用のフレームワークで Windows のコントロールや COM コンポーネントなどをラップしています。
Windows 専用のアプリケーションを作る場合は FireMonkey よりも向いています。
FireMonkey
マルチプラットフォーム専用のフレームワークです。FMX と略される事もあります。
VCL とは違い Windows だけではなく macOS, iOS, Android のコントロールをラップした優れたライブラリです。
また、FireMonkey は DirectX / OpenGL / Metal で描画されるため VCL に比べてリッチな見た目やアニメーション、エフェクトを簡単に追加できます。
例えば↓こんな見た目のアプリケーションが作れます。
参考になるページ
Delphi の初学者に参考になるページを列挙しました。
それぞれ章タイトルからリンクされています。
なお、Google は使わない方が良いかもしれません。
というのは Delphi は長く使われている開発環境のため Google で期間を指定しないまま検索すると、大変古い情報がヒットするためです。
特に FireMonkey 関連では今では使えないコードが引っかかったりします。
Google を使う場合は期間を指定して、新しい情報がヒットするようにしてください。
Delphi Community Edition Meet up !
2018/08/07 追記
先日、Delphi Community Edition によって Delphi を初めて触る方や久しぶりに触る方々向けのイベントが行われました。
その際の資料も参考になるかと思いますので記載しておきます。
https://yuru-phi.connpass.com/event/95804/presentation/
RAD Studio DocWiki
オフィシャルの RAD Studio DocWiki が一番詳しくオススメです。
Delphi では日本語がプライマリ言語の1つになっているので、日本語で情報が提供されています。
特に最初は
などが参考になるでしょう。
Delphi Community Edition DocWiki
2018/07/21 追記
Delphi Community Edition のリリースに伴って DocWiki にも Community Edition 専用ページがオープンされました。
インストール方法やライセンス情報などが記載されています!
デベロッパーキャンプ
年に2回ほど開催される Delphi / C++Builder / RAD Studio のイベントです。
このイベントの資料がアーカイブページに公開されています。ここには資料の他にセッションを録画したビデオも公開されていて大変有用です。
例えば、拙著で恐縮ですが「Delphiならここまでできる!iOS / Androidネイティブアプリ構築術」があります。この資料では昔 Delphi / VCL を使っていた人向けに FireMonkey を紹介するスライドになっています。
また、デベロッパーキャンプ自体は無料のイベントなので都合が合う場合は参加してみることをオススメします(基本的には東京開催で年に1回ほど大阪でも開催されます)。
特に、懇親会では有識者に直接話しかけることもできます。
2020/04/27 追記
デベロッパーキャンプは 2020 年より Embarcadero Tech Vision 20 というイベントに取って代わられました。
Tech Vision 20 でも引き続き Delphi の情報が公開されています。
Embarcadero Tech Vision 20
https://www.embarcadero.com/jp/events-japan/techvision/20
デベロッパーTV
2022/05/08 追記
コロナ禍により実際に集まる形でのイベントは中断されています。
そのため、現在は Developer TV という YouTube の番組を通じて最新の情報が配信されています(毎月更新です)
Delphi で始めるビジュアルプログラミング
2018/08/07 追記
イベントで配布された小冊子の PDF 版です。
非常に綺麗にまとまっており、これを1冊読むだけで Delphi を使った開発の流れが解るようになっています!
2019/04/10 追記
10.3 Rio 対応版にリンク先を変更しました。
2021/07/21 追記
10.4 Sydney 対応版にリンク先を変更しました。
オススメです!!
参考になるコミュニティ
Delphi Discord Server
Discord というチャットアプリにある Delphi ユーザーのためのサーバー(チャットルーム)
質問だけではなく、気軽に雑談したりできます。
2020年4月現在、一番アクティブなコミュニティです。
色々な情報も有志の手で公開されたりするので、情報が欲しい方にはうってつけです。
Delphi Forum
DEKO さんが運営する Delphi のフォーラムです。
フォーラム形式になっているので質問しやすいのがポイントです。
Delphi メーリングリスト Japan RAD Studio User Group
Delphi のメーリングリストです。僕が管理人をしています。
freeML のサービス終了に伴って、Google Groups の Japan RAD Studio User Group に移行しました。
こちらはほぼ質問用のメーリングリストです。
比較的早くレスがつきますが、レスが付かない場合もあります。
Japan RAD Studio User Group
Facebook 内の Delphi / C++Builder / RAD Studio に関するグループです。
質問だけでは無く最新情報や雑談など気楽な雰囲気で投稿できます。
※承認制になっているので、参加リクエストを送ってください。
Delphi Q & A掲示板
MADIAさんが提供している掲示板(トップページは http://madia.world.coocan.jp/ )
今でも活発にやり取りされています。
Delphi Library [Mr.XRAY]
Mr.XRAY さんが運営するサイト。
VCL と Win32 についての情報量は圧倒的です。
掲示板もあります。 掲示版は 2020/6/3 に閉鎖とのことです。
Qiita
Qiita にも Delphi の記事が多数投稿されています。
中でも DEKO さんによる Delphi Starter Edition でメモ帳クローンを作るは初学者必見です。
また毎年開催される Delphi Advent Calendar の記事も参考になりそうです。
2023 年の Advent Calendar
2022 年の Advent Calendar
2021 年の Advent Calendar
2020 年の Advent Calendar
2019 年の Advent Calendar
2018 年の Advent Calendar
2017 年の Advent Calendar
2016 年の Advent Calendar
2015 年の Advent Calendar
2014 年の Advent Calendar
GitHub / BitBucket
様々なライブラリやアプリケーションが公開されています。
拙作ですが、いくつかリンクを貼っておきます。
アプリケーション
ライブラリ
IDE 機能拡張
補助ツール
書籍
OBJECT PASCAL HANDBOOK
Delphi のプロジェクトマネージャであるマルコ・カントゥ氏による ObjectPascal の言語詳細です。
少々高いですが、持っていて損はありません。
Delphiでかんたん iOSアプリプログラミング
拙著な上に5年も前になってしまいましたが、IDE の使い方や言語リファレンスなどは今でも通用します。
現在、新たな本を執筆中です。
Twitter / Qiita のアカウント
独断と偏見で Delphi 関係でフォローしておくと捗るアカウントを列挙しました。
Qiita のアカウントを持っている人は Qiita へのリンクも記載しました。
オフィシャル
Embarcadero Japan
エンバカデロ・テクノロジーズの日本法人のアカウント。
最新情報やセミナー情報等が流れます。
Atanas Popovさん
エンバカデロ・テクノロジーズの社長。アタナス・ポポフさん。特にこれと言ったことはつぶやかないけど社長なので。
Hitoshi Fujiiさん
エンバカデロ・テクノロジーズの日本法人代表。最近つぶやいてないみたいだけど代表なので。
MarcoCantuさん
Delphi のプロダクトマネージャであるマルコ・カントゥ氏のアカウント。
最新情報や Delphi を使ったプログラムなどの情報が流れます。
技術系
Chikako Yonezawaさん / Qiita
エンバカデロ・テクノロジーズの中の人で、イベント「ゆるふぁい」の管理人
Kazuhiro Inoueさん / Qiita
元エンバカデロ・テクノロジーズの中の人で、Delphi に限らず技術全般に詳しい
DEKOさん / Qiita
Delphi の事何でも知ってるスゴい人
Owl's perspectiveさん
最新情報のキャッチアップがスゴく早いし Delphi にも超詳しいスゴい人
Lynaさん
Delphi の内部の動作だったり言語の詳細を知っているスゴい人
公開されているプラグインが尋常じゃない。例えば痛IDE Plugin
中山雅紀さん
Delphi で 3D といったらこの人!住職であり CG の研究家でもあります!
中山さんの GitHub は必見です!
HOSOKAWA Jun / Qiita
僕です。
僭越ながら Delphi MVP として活動させて貰っています。
好きなフレームワークは FireMonkey。
まとめ
Delphi についてまとめつつ情報源を列挙しました。
ここまで読むと当然、次の疑問がわくと思います。
なぜ流行っていないのか
話だけ聞くと良い事ずくめなのに何故流行っていないのかというと、とても高額だったためです。
しかも機能が限定された Starter Edition ぐらいしか試す方法もありません。
結果、新しいユーザーが増えないという状態になっていました。
しかし、初期のバージョンである Delphi 1.0~7.1 は爆発的に普及しました。
それは、(ソフトウェアは購入する物だった)当時では非常に安価な開発環境であり、その便利さを誰もが気軽に体験出来たからです(たとえば Delphi 1.0 は 29,800 円でした)。
今でもその頃作ったシステムの改修や保守案件があることや、少し古いフリーウェアが Delphi で組まれていたりする事がその証左で、どれだけ普及していたのか推測できると思います。
今回、無償版が出たことで当時のように多くの人に Delphi の簡単で楽しいプログラミングを体験して貰う事を願ってやみません!