OpenPNE3に向けての開発スタンス
OpenPNE3とか考えてくので、僕のスタンスをまとめておこうかなぁと。
OpenPNE自体がこのスタンスで行くわけではなく、僕自身がこのスタンスで開発に臨もうという事です。
開発メンバー各人がスタンスを示しながら進むのも面白いかと思うわけですよ。
■1■「何を為すソフト」なのか間違えないで行きたい。
何を為すソフトなのかは間違えないで行きたい。
現時点で見えてるのは、
「SNSは人間関係を表現するソフト」なので、
そこは見失わないで行きたいなぁと。
「日記」とか「あしあと」とか「コミュニティ」とかSNSと関連づくと、
非常に面白い機能はあるけど、SNSのソフトの本質を考えると、究極はSNSに含まれてなくても良い気がする。
こう書くと「それじゃ面白い機能が何も無いじゃん」と誤解をうけるが、
きっと色んな機能を半端に追加するより「人間関係の表現」に特化するって考え方でやった方が、各機能(日記とかね)との連携も数歩上の段階できると思うわけですよ。
■2■「一隅を照らす」ソフトにしたい。
「人間関係を表現する」についての役割を背負い、その隅を照らし続けたい。
例えばOpenPNEは「人間関係」を照らし、MediaWikiは「知識の集積」、WordPressは「日記」、Flickrは「写真」、YouTubeは「動画」を照らす事で、
いろんな隅が照らされ、全体が明るくなるという感じ。
■3■「これを取ったらSNSのソフトとして存在し得ない」というギリギリまで削除したい。
「SNSは人間関係を表現するソフト」なので、それ以外の部分は削除していくと、ソフトとして完成度が高まるのではないかと思う。
伽藍とバザールに、
13. 「完成」(デザイン上の)とは、付け加えるものが何もなくなったときではなく、むしろなにも取り去るものがなくなったとき。
と書いてあったのが結構心に残っている。
あと、どこかで日本刀だったか、日本のものづくりの記事で、
「これを取ったら日本刀として存在し得ない」というギリギリまで削除しないと本質が見えない。
とか書いてあったのも残っている。
(刃・柄・鍔のどれだったかな。。。)
■4■手段より目的を優先して行きたい。
「どのプログラム言語を使うか」とか、「オブジェクト指向を使う・使わない」とか、「PHPのフレームワークを使う・使わない」とか、「Table構造でガチガチに書くか、XHTML+CSSにするか」って
非常に大事なところだけど目的よりは手段にとどめて置いたほうが良いと思っています。
tejicube氏のブログにもあったけど、
http://shirokuma.tejimaya.com/archives/51304611.html
開発には色々な現実の要素があって、その時の現実に則して目的を為すのに最善な手段を選択するという方向を選択したい。
選択肢は色々有り、それぞれメリット・デメリットがあり、その諸々を考えた上で選択をするという感じです。
で、現時点で現実と照らし合わせて考えると、
- 言語はまだPHPで良いんじゃないかなぁ (Rubyとかもちょっと興味あるけど)
- PHPのフレームワークは使った方が良いんじゃないかなぁ (そろそろOpenPNE独自フレームワークだと開発者もとっつきにくいし、既存の方が色々できそうだし)
- オブジェクト指向は使った方が良いかもしれないなぁ (優秀そうな開発リソースも増えてきたし、僕も使いこなせるようにしないと!PHP4のサポートが切れて、PHP5とかレンサバとかで動くようになるみたいだし)
- XHTML+CSSにした方が良いんじゃないかなぁ (そのあたりできそうな開発リソースも増えてきたし)
という感じなわけです。