技術・科学

Eclipseに凝る

投稿日:

仕事で必要があってEclipseの中身について調べている。内部のクラスのドキュメントなんかを一生懸命読んでいると、いまさらながらオブジェクト指向ってこういうことなんだよなあと思い知らされる。

オブジェクト指向っていうと言語のことを思い浮かべてしまいがちなんだけど、実は設計思想のことなんだよなあ。なんて当たり前のことに改めて気づくのである。

たとえばね、なにか新しい機能のあるエディタを作りたいとする。昔ならエディタの機能を一生懸命最初から作るとか、ソースがあればそれを地道に改造するとかやるわけだ。これはとても大変なんだけど、まあ今でもありがちなことで、改造するつもりだったんだけどめんどくさいから最初から作っちまえなんてことはザラにあるわけ。

Eclipseはその点、ちゃんとしたオブジェクト指向で設計されていて、最初から機能を追加することを考えてそのインタフェースを用意してくれているのだな。だから、Eclipseのエディタのクラスの「拡張ポイント」を使って、Eclipseの中にあるエディタのクラスを継承して自分が考えた新しい機能だけ追加すればいい。要するにオブジェクト指向の教科書どおりということ。

これって、かなりしっかりしたアーキテクトじゃないと設計できないのだな。だってそうでしょ?おれの作ったエディタは十分な機能を持っているけどおまえらはきっとこんな機能をつけたりしたくなるだろうからここにこういう口作っとくぞ。ソースなんか見なくたって使えるように考えといたから心配すんな。ってわけだからね。おまえらって世界中にゴマンといるプログラマーだよ。

昔のプログラミング(職業プログラマの仕事の大半は今でもそうなんだけど)ってなんだかんだ言ってもごくプリミティブな機能をいかに組み合わせるかが問題だった。だからコンピュータの機能に詳しければプログラミングはできたわけだけど、たぶん今は自分のやりたいアプリケーションのクラスをインターネットを駆使して探して、その使い方をきっちり踏まえて拡張して自分のやりたいことを実現することがプログラミングということになるんだな。さらにすごい人は自分の拡張に拡張ポイント作っちゃったりもして、どんどんみんなで拡張していくわけだね。ま、Web2.0ブームの時に散々言われて、Webサービスの世界では結構あたりまえになってきたみたいだけど。

でもって、そういう本格的なというかより究極的なアプリケーションのオブジェクトを扱うプログラミングをやろうと思ったら、やっぱりコンパイラ型の言語じゃなくて、インタプリタじゃないとダメなんじゃないかという直感がどんどん強くなってしまう。そうすれば今動いているやつを今まさに拡張するなんてことができるはずだからね。難しいけど。

そんなわけで僕の中での言語処理系の好き嫌いはC++は大嫌い。Javaはちょっと好き。Rubyは今一番好き。という序列なのだな。

こうやって先人の知恵になにかを付け足して新しいものを作っていくっていう考え方をすると、著作権ってなんなんだ?って気がしてくるよね?たぶんCreative Commonsってそんな疑問から生まれたものなんだろうなあ。

まあ、よくできた設計に出会うといろいろ考えてしまうわけですね。

Follow me!







書いた人

nyao

nyao

本を書きたい人にITの基礎から学んでもらって、Kindleで著者デビューするまでをサポートします。 ITってよくわからないという人のために勉強会をやっています。 「読書と編集」という屋号でお仕事をしています。

プロフィールを表示 →

-技術・科学

PAGE TOP

Copyright© NyaoPress 読書と日常 , 2021 All Rights Reserved.