Delphiの値上げ
これまでは無償版のCommunity Editionを使用して開発をしていましたが、後に説明する理由で購入するかどうか迷っていたところ2022年12月1日で値上げをおこなうとのことで購入に踏み切りました。
Delphiとは
Delphiといっても聞き慣れないものだと思いますがDelphiとは開発環境を指します
どんな言語で開発するのかというとObject Pascalになります。
Pascalとは
PascalはALGOLをベースに開発された言語です。さすがにALGOLは掘り下げませんよ。
Pascalの特徴
個人的にはコンパイラに優しい言語のように思います。
もうコンパイル速度なんて気にするような時代ではありませんが、当時は高性能なPCは非常に高価で安価な環境でPC用アプリを開発する時にコンパイルの速度は遅かったのです。
コンパイル作業はプログラマにとっては欠かせない物で何回も繰り返すのですから時間がかかるとストレスが溜まります。
3秒ぐらいから遅いと感じ、5秒ぐらいからストレスが溜まり始め、10秒かかっていたらコンパイル中に次の修正部分が追加で書けそうな遅さです。
そんな中で開発環境の出来の良さもありますが1秒でコンパイル出来ていたのがObject Pascalを採用した開発環境Delphiだったのです。
Object Pascalとは
その名の通り、Pascalにオブジェクト指向プログラミングが簡単に出来るように仕様追加した物です。
後からオブジェクト指向を導入した言語の割りには他の言語と比較してもオブジェクト指向の良さを引き出せている言語になっています。
Delphi開発環境以外にもLazarusという開発環境も出ています。
Delphiとの出会い
当時はC++あたりとコンパイラが用意しているライブラリでなんとかWindowsのアプリが作れますよという時代でしたが、とても1人ですぐに取りかかれるものではありませんでした。
そのため開発が容易なVisualBasicが流行っていました。
もちろん筆者も購入したくさんのアプリの開発を行いました。
しかしどれも納得のいくものではありませんでした。
なにせ
- 開発環境が用意しているライブラリしか使えない
- 実行させる側にランタイムライブラリが必要
- 開発環境のテキストエディタが勝手に整形する
特にテキストエディタが整形するのでコメントを揃えていても勝手に崩れるのには何度もイライラさせられました。
そんな時に出会ったのがDelphiです。
当時はWindows95の時代でそのときにDelphi 3とか3.1がありました。
しかしDelphiは言語仕様がこれまでのどの言語とも異なるので理解が大変でした。
Delphiと他の言語の違い
筆者は他の言語も扱えますが、どの言語とも異なるのがPascalの言語仕様です。
記述方法が独特すぎるのもハードルを挙げてしまっていることでしょう。
簡単な例
一般的な言語 | Delphi | |
---|---|---|
宣言 | int i,j; | i,j : Integer |
代入 | i = 0; | i := 0 |
ループ | for (i = 1; i <= 3; i++) | for i := 1 to 3 do begin end |
関数 | int test(int x, int y){ | function test(i,y : Integer) begin end |
変数の増加 | i++ | inc(i) |
お薦めしておいてアレですが、非常に構文が長くなります
特に中括弧「{」の代わりがbegin endなのが長く感じます
代入も「=」ではなくて「:=」を使わないとだめです。
しかし最終的には他の言語よりもプログラムを書く手間は減っていきます。
最初のうちは大変で、進めていくうちに楽になっていく言語です。
結局の所Delphiってどうなの?
Delphiを使うことのメリットとしては
- 1人とかの少人数でも大規模なアプリ開発が可能
- 他のフレーム枠「.NET」などの影響を受けない
- EXEファイル1つで実行可能
- ライブラリを自作しておけば再利用性が高い
デメリットはものすごく大量にあります。
仕様のWebサイトは公式のがあるのでなんとかなるのですが
書籍がほぼ無い状態。
Android開発言語のKotlinとまあ同じぐらいに書籍がありません。
(JAVAとかと比べるのは止めておきます)
Delphiを極めて行き着いたところは
20年間もの間Delphiを触っていてライブラリを増やしていった結果なんと
プログラムを書かずにプログラムを作る
というところまで行き着くことが出来ました。
そのおかげでプログラムの量は約半分に開発時間はこれまでの十分の一になっています。
気が向けばこれも公開します。
Community Editionを止めて有料版にした理由
筆者は1つのアプリを作るとき20から30ぐらいの自作ライブラリをインクルードして使います。
これが規模が大きくなるとファイルがどんどん増えるのですが
インクルードファイルが160ぐらいになったところでCommunity Editionから警告が出るようになりました。
どうも有料版に移行しろということのようです。
無視してコンパイルは出来るのですが1手間かかるのは避けたい。
試しにインクルードファイルを減らしたところ警告が出なくなりました。
Community Editionの使用条件には書かれていないのですが大規模アプリの開発と判断されたのでしょう。
1つのアプリに1年間かけて作っているとこれぐらいの規模になります。
仕事用のPCには法人用として購入したDelphiが入っているのですが、
それとは別に趣味用のPCにも入れることになったというわけです。
終わりに
気が向いたらDelphiでのオブジェクト指向プログラミングとかも書いてみます。