ユルい人(=自分)向けの開発言語Alinous-Coreを作ったわけ
私は、Alinous-Coreという言語とその開発環境の作者です。なので、「言語を作った」というと技術に関して厳しい人なのかと思われることが多いようですが、実は、そんなことはありません。むしろ、ユルいです。
■Javaは好きだったがJava Enterprise Bean (EJB)は複雑すぎる
私は、Eclipseが好きでしたので、Javaが言語的には好きでした。しかし、この言語を作ろうと思う前には,Java Enterprise Bean(EJB)というものが出てきたころで、いろいろと勉強したのですが、難しくて、そして複雑で開発後のメンテナンスに関して自信が持てず、あきらめてしまいました。
■PHPのフレームワークが難しいと感じ、さらに簡単なものを求める
当時、PHPがオブジェクト指向になっていく過程で、オブジェクト指向を意識したフレームワークがいろいろと出だした頃でした。
これは、Javaのオブジェクト指向を意識したものなんだろうなあと感じ、もしかしたら、EJBなどに比べてこちらの方がやさしいのかもしれないと思い、いくつかのフレームワークの勉強をしてみたのですが、複雑でソースコードの自動生成などは非常に便利だと感じたのですが、これも、開発後のメンテナンスに関してイメージができず、あきらめてしまいました。
人間というのは不思議なもので、一度、すっきりとあきらめると、それまで我慢していて、かつ、我慢しているのが当たり前になっていて気付けないものに気が付くようになってきます。
そうすると、素直な気持ちで物事について考えられるようになり、ユルい本当の自分の気持ちで物事が考えられるようになってきました。
■わがままな私
一度で出した愚痴は、一度出てしまうと堤防が破裂したときの洪水のように止まることがありません。
- コネクションのリークとか本当に絶対ないと言えるだろうか?
Alinous-Coreを作成しているときは、リソースのリークは内部にテスト用のカウンタを用意してカウントしてテストしていますが、ちょっとしたCMSとかを作るのに、毎回こんなテストをするのは嫌です。
- データベースの設計が変わるたびにBeanを作る
これがかなり苦痛でした。面倒くさいの一言です。
- 設定ファイルがあちこちに飛びまくる
前に作った機能を後で作り直したり、設計が変わった時に、どこを直していいか探すのが一苦労です。
- 変更を加えたら、また、動かすためにデプロイ
これも、嫌でした。一発で動くように考えてはコードを書くのに挑戦するのですが、動かしてみないと正しいコードにたどり着けないというジレンマとの戦いでした。
- データベース設計がメインのWebDBアプリで本当にオブジェクト指向なんて必要なのか?
これが、最も大きな疑問だったかもしれません。Javaといえばオブジェクト指向ですが、別にそうでなくてもプログラムは作れるので、「DB設計がメインのプログラムにまで使わなくても」というのが本音でした。
■やるからには徹底的にやる私
将来、ユルい自分であっても、やっていけるために努力をするということについては、かなり頑張る方です。なので、やるからには、徹底的に作ろうと思いました。
- できる限りHTMLとSQLで作れるようにする
結局のところ、WebDBアプリの本質はHTMLとSQLなので、分岐とかちょっとした機能の再利用など以外は、HTMLとSQLで作れるように考え、作成しました。
- HTML上に拡張タグは作らない
バリデーションやHTML上で場合分けが必要なときに、それ用のタグを用意してしまうと、HTMLが読みにくくなってしまったり、オーサリングツールと相性が悪くなってしまうので、属性だけでそれらの機能を実現しました。
- デバッガは必須
デバッガは僕の中では必須でした。これがないと、開発できません。
デバッガの開発が一番の山だと思いました。この部分はどの本にも載っていなかったので、Eclipseのソースコードの中のjdkプラグインを解析して作りました。
結局のところ、GUIはEclipseのものを利用できましたが、サーバサイドのロジックやクライアントとサーバとのやりとりに関しては、ほぼ、自力で作成しました。
- 変数はDOM形式で
変数は、簡単にJavascriptを真似て、DOM形式にしました。こうすることによって、変数を入れ子構造にして整理でき、アルファベット順で変数を階層ごとにソートしてデバッガーで見られるので、データベースのカラムが多いテーブルを扱ったりするのに便利な仕組みにしました。
- 本当に複雑なところはJavaで書ける
Alinous-Coreは、簡単なツールっぽい言語なので、大抵の事はできるのですが、Javaの方が良いところはJava出かけます。
例えば、PDF帳票の作成などの本当に細かい部分はJavaで書いたプログラムをjarファイルにして、Alinous-Coreのlibディレクトリに置くだけでAlinous-Coreにロードして利用できます。
もちろん、ホットデプロイに対応しています。
■そして、自社パッケージも作ってみる
もともとは、フリーランスのエンジニアとして働いていた私ですが、人月いくらとか、景気に左右される単価とか、スキルシートOnlyで書類審査をするため、年齢が高くなるとそれだけで安定して仕事をとることが難しくなるという不安などから、自分で何か商品を持ちたいと常々思っていました。
なので、自分で作ったユルい言語でパッケージを作って、エンドユーザ向けに販売して、つねに良い仕事がある状況を目指しました。
前回のコラム「とある言語開発者と、技術を武器にするベンチャー起業の一例」で書きましたとおり、一発で製品が売れるところまで持っていくことはできませんでしたが、粘った甲斐あって、Alinous-Coreで仕事ができるようになりました! (ワイルドだろぉ~~)
これが、僕がAlinous-Coreを作った理由で、それすなわち、「自分のため」です。でも、いろいろな人に使ってみてほしいです。
Alinous-Coreは無料で開発環境も、サーバモジュールも手に入りますので、僕と同じ、ユルい技術者の方はぜひ、一度使ってみていただけるとうれしいです。
Alinous-Core公式サイト
http://jp.alinous.org/