見出し画像

Notes/Dominoプログラミングの自由

もし私が「今の職業は?」と問われたら、紛れもなく「Notes/Dominoプログラマーです。」と応えるでしょう。しかし、私はここ数年、ほとんどNotesクライアントやDominoデザイナーを使っていません。LotusScriptも久しく使っていません。XPagesにいたっては正直ほとんどわかりません。それでも胸を張って「Notes/Dominoプログラマー」を名乗れます。

きっかけ

Notes/Dominoのプログラミングといえば、以前はLotusScript、8.5以降はXPagesが主流です。どちらも開発専用クライアント「Dominoデザイナー」を使用します。これが当たり前の世界です。私もこのクライアントで約20年開発に携わってきました。

私はプログラミングが好きでした。Perl、PHP、JavaサーブレットなどのWebプログラミングも趣味で勉強していました。すると、Notes/Dominoでプログラミングすることに徐々に窮屈さを感じてきました。Webでの開発はこんなに集中してわくわくできるのに、Notes/Dominoで感じる窮屈さは何だろうと考えるようになりました。

開発プラットフォームが制限されている

先ほども書いたように、Notes/Dominoで開発をするにはDominoデザイナーが欠かせません。Dominoデザイナー一択と言っても過言ではありません。しかしこれが非常に動作が重く、とてもストレスを感じていました。有料、無料を問わず溢れるさまざまなIDEを使うことはかないません。

ソースコード以外にロジックが散在

PerlやPHPなどのスクリプト言語、C++のようなコンパイル言語、いずれも基本的にはソースコードがすべてです。Notes/Dominoの場合、フォームやビューと呼ばれる設計要素に、@式言語やLotusScriptなどを記述する場所は多岐にわたります。特に「この範囲を条件によって非表示にしたい」というようなロジックは、プロパティボックスという浮遊ダイアログの中でないと記述できません。しかも、それが設定されている箇所にカーソルを置かないと表示されず、設定したことを忘れてしまえば気づけなくなります。Dominoデザイナーはその位置をナビゲートしてはくれません。

Notes C APIとの出会い

そういった不満の中から、プログラミングの自由を求めることは自然なことでした。そんな中でC++言語を使ったDominoサーバの拡張案件が舞い込み、そこでNotes/Dominoの内部を拡張する自由を知ります。Notes/DominoにはC APIというツールキットが古くから提供されており、NotesクライアントやDominoサーバを拡張したり、独立したアプリケーションを作ることが可能でした。私はここで一定の成果と手応えを感じました。

Dominoに認可機能をアドイン

また、DominoサーバにWebアプリケーションからRESTでアプローチすることを考えていた時、DominoでのWebログインを克服しないとスマートな運用ができないことに不満を覚えていました。そこで、DominoサーバにOAuth2認可システムを搭載することを思いつき、「DOAP」というアドインが生まれました。

OAuth2認可ができたことで、WebアプリケーションからDominoにアプローチするスマートな仕組みができ、SPAアプリケーションからDominoを利用することができるようになりました。私は現在Node.js/Reactを使ったアプリケーションを開発していますが、Dominoへのアプローチも可能になります。

自由を得てNotes/Dominoに活かす

Dominoデザイナーから離れて、プログラミングの自由を求めて旅を続けていますが、結果としてNotes/Dominoのアプリケーション開発に活かされていることに気付かされます。SPA開発、特にReactによる開発はとても刺激的で、敷居が低いのにとても自由です。また、C APIはNotes/Dominoの内部に入り込み、Notes/Dominoだけで満足しているユーザにも、さらなる可能性を示してくれます。窮屈から解放されて自由を得た好奇心は、私をこんなところに連れてきてくれました。私は、プログラミングの自由に気付いて以来、常にわくわくしています。

この記事が気に入ったらサポートをしてみませんか?