<このシリーズの、前の記事 | このシリーズの目次 | このシリーズの、次の記事>
UNO拡張機能を開発する方法をこれから学ぶ。
はあ?ちょっと唐突ではないか?UNO拡張機能とは何だ?
UNO拡張機能とは、 LibreOfficeやApache OpenOfficeにインストールできる拡張機能のことだ。
拡張機能とは何だ?
拡張機能というのは、要は、アドオンのことだ。
ああ、アドオンなら知っている。. . . 「UNO」はどういう意味なのか?
UNOは、LibreOfficeやApache OpenOfficeで使われているテクノロジーの名前で、Universal Network Objectsの略だ。
UNOはLibreOfficeとその拡張機能との間のインターフェースの規約だということか?
LibreOfficeとその拡張機能との間のインターフェースの規約なだけではなくて、LibreOffice自体がUNOで作られている。つまり、LibreOfficeのプログラムプロセスでは、多くのUNOオブジェクトが生きていて、互いにやりとりが行なわれている。UNOとは、UNOオブジェクトとはどんなものか、UNOオブジェクトをどのように操作できるか、その他関連する諸々の仕様の総体だ。
. . . UNOオブジェクトとはつまり何なのか?
オブジェクト指向の用語で言うと、UNOオブジェクトは一種のクラスインスタンスだ。
ああ、分かった。では、UNO拡張機能もUNOで構築されて、UNOに基づいてLibreOfficeのプログラムプロセスと相互作用するわけだな?
そう、UNO拡張機能は、他の拡張機能ともやりとりするかもしれない。
なるほど。. . . それで、なぜ、我々が、それを開発する方法を学ばなければならないのか?
さしあたっての目的としては、ブログの記事を書いたり管理したりするのにLibreOfficeを使っているが、それをもっと便利にしたいということがある。例えば、ブログのシリーズや記事の情報をCalcスプレッドシートで管理しているが、そのスプレッドシートからシリーズの目次を作りたい。それに、記事の間にリンクを張りたい。前の記事へ、次の記事へのリンクのことだ。手作業でやってもとても大変というわけではないが、そんな機械的なことを手作業で毎回やるのは、賢くない気がする。
ははあ . . .
その一部はマクロでできるかもしれないが、マクロの機能は限られているし、正直に言って、シンタックスエラーをチェックしてくれないスクリプト言語というものは、自分は好きになれない。コンパイラーがチェックできるものを、プログラムを動かして我々がチェックしないといけない。
その点は、 . . . 好き好きだが。
もっと重要な目的としては、我々の第一目標は、物事を正当な正確さで理解し、物事を厳密かつ明示的に記述できるようになることだが、これらを真空で考えるのではなく、そのスキルを試す実験場が必要だということだ。実験場で実験をして、実験の結果を第一目標の探求に利用する。
うーん、それでは、UNO拡張機能を開発する方法を、正当な正確さで理解し、理解した事を厳密かつ明示的に記述しようとするわけだ . . .
そう。
まあ、トピックが、我々の理解が正確かどうかを比較的容易に評価できるものであり、厳密かつ明示的な記述を必要とするものでもあるというメリットはある。. . . いいだろう。
それに、スプレッドシートプログラムというのは、とても便利なツールであって、その機能を自由に拡張できれば、いろいろなことをその上でできる。情報を管理・分析できるし、クライアントユーザーインターフェースとしても使える。計算、グラフ作成、スペルチェックなどの機能が組み込まれているから、そうした機能を一から作りこむ必要がない。