5年ほど触って、そろそろ一旦お別れの予定なので、忘れないように書いておきます。
4Dとはなんぞや
4Dって、皆様ご存知でしょうか。4次元ポケットでも、CINEMA 4Dでもなく、知る人ぞ知る統合開発運用環境4Dです。
4th Dimension(4D)とは、動作プラットフォームとして、macOSおよびWindowsをサポートする珍しいリレーショナルデータベース総合開発環境。
正直、日本では余り聞く名前ではありません。メディアサイトで取り上げられることも少なければ、日本語版Wikipediaには現在ほとんど書いてなく、ほとんどの人にはよくわからないでしょう。
[4th Dimension (software)
- Wikipedia(en)](https://en.wikipedia.org/wiki/4th_Dimension_(software))に、おフランス、アメリカ、イギリスが主要な市場で12言語にローカライズされていると書いてありました。
4Dの特徴
4Dがどんなものか想像できない人には、Access + VBA + SQL Server + Visual Studio + Phpという説明をします。つまり、プログラムと実行環境とデータベースとIDEその他が全部一体化しちゃっています。
他のサーバー、ミドルウェア、その他製品と比べてどこが良いかと言うと、、、
- 開発のスピード
- 環境構築・配布の容易さ
でしょうか。
開発スピード
フォームはAccessやVisual StudioのようにGUIで簡単に作れ、データベースはフォームやプログラムから直接参照できます。UIやUXにこだわりがなければ、コーディングはほとんどビジネスロジックで済みます。
コンセプトは、プロのエンジニアが居なくても業務システムを作れることのようです。教育コストも少なく、ささっと画面作って、処理書いて、完成。ちょっとやるだけなら、チュートリアルでも見ればよく、深い知識なんていりません。
マスタメンテ画面ぐらいであれば1機能1~2時間もあれば作れます。ダサいけどデフォルトの見た目であれば、4Dが一瞬で勝手に作ってくれます。
環境構築・配布の容易さ
サーバーを立ち上げるにしろ、シングルで立ち上げるにしろ、ソフトをインストールして起動、開発フォルダを指定するだけで、準備完了。
開発が終わって、その開発フォルダをコピーすれば、環境のコピーも完了。コンパイルはしてもしなくても、ちょっとやるだけならどちらでもOK。
Windowsの場合、サービスに登録すれば、サーバーを勝手に起動してくれます。設定にチェック入れるだけでWEBサーバーも使え、SQLサーバーも使えます。
メリット
- WindowsでもMacでも使える。
- 開発フォルダが一つのフォルダで完結できる。
- とにかく開発は早いし簡単。設定はほとんどGUIでできる。
- 開発速度重視の汚いコードでもかなり健闘する。
- データベース操作のメソッドは大量に用意されている。
- 公式サポートが手厚い。日本支社がある。
- 日本語マニュアルがある。ただし一部未翻訳。
- 原則として同じプログラムをクラサバとしてもシングルでも使用可能。
- もちろんクラサバで開発できる。
- デバッグも容易。クラサバでもデバッグできる。
- 同じメソッドがサーバーサイトでもクライアントサイドでも使え、クライアントからサーバーメソッドを蹴ることも容易。
- 本体のバージョンアップに伴って、旧Verで開発したモノを初めて起動すると勝手にバージョンアップしてくれる。
- プラグインがあれば何でもできて、プラグインは自分でも開発できる(C言語)
- WEBサーバーとしてもPHP(5.3.11)サーバーとしても一応使える
- メソッドのプロパティに設定すると、メソッドがそのままURLで叩ける。
- SQLも使え、ODBC接続できる。
- JSONが扱える。テーブルのレコードを一発変換もできる。(以前はプラグインだったが、公式対応)
- テーブル設計のGUIがER図も兼ねており、リレーションもその場で設定できる。
デメリット
- 大規模データのバッチ処理にはちと重い。V16以降は書き方次第で複数コアを使って高速化できるらしいが、未体験ゾーン。普通に書けば、並列処理にならず、マルチコアの意味がない。
- 手元のフォルダにある4Dファイルが「一体何か」「いつのものか」等を知るには、起動が重たいソフトウェアを立ち上げて開かないと見れない。
- 本体のメジャーアップデート等の後、日本語が苦手な時がある。shift-JISやIMEの動きに注意
- マニュアルにないちょっと変わったことをしようとすると、開発・実行コストがかかる。
- プロジェクトが大きくなると、メソッドやフォームを整理しないと探すのが大変になる。
- 4Dって何?って聞かれる。
- オブジェクト指向って何?メソッドはちゃんと名前で並べてね。
- ソース管理って何?無くてもぎっとダイジョブ。
- サービスで立ち上げた時は、対話型サービスにチェックをしないと、管理できない。Windows Server 2016だと困る。
- マニュアルの検索機能が日本語では役立たずのため、Google検索で site:doc.4d.com を付けて検索する必要がある。
次回は4Dプログラミングの特徴。
後日追記:
↑と思ったらしいですが、力尽きたようでした。
これから4Dに触れる方、楽しい4Dライフを!