#このソフトは何と呼ぶのが適切でしょうか?
BEAR.Resourceを作った時の話です。最初はService layer frameworkという名前で呼んでたのですが、Hypermedia libraryと呼ぶようになりました。
しかし、そもそもこれをフレームワークと呼ぶべきなのか?ライブラリと呼ぶべきなのか?そもそもライブラリ、フレームワークはどう区別すべきでしょうか。よく言われる呼ぶ/呼ばれるの区別は適切でしょうか。
#15 How do we call this software ?とissueを立てて他の人の意見を聞いてみました。
@lorenzoさんの提案
CakePHP3のコアディベロッパーの@lorenzoさんが提案してくれたのは以下の名前です。
- Object to ReST Resource framework and Resource linker library
- Object ReST-ifier
- Stateless PHP objects library
オブジェクトがRESTのリソースの振る舞いをするライブラリとしての命名です。
「通常のオブジェクト志向のアプローチとは違ったものとして、つまりアプリケーションをビルドするためにオブジェクト間のメッセージプロトコルをリソースとして統一したものにしている」と考えたとすると、という違う観点でも名前を考えてもらいました。
- Objects as a service
- ReST protocol interface for any PHP object
この中でピンときたのはObjects as a serviceでした。「サービスとしてオブジェクトを扱う」これが最も本質的なものだと思いました。一方、RESTやリソースという言葉がないのは少し気になりました。
@nateabeleさんの提案
そしてLithiumフレームワークのリードで、AngularUIの@nateabeleさんは、これはフレームワークとはっきり言います。その理由は it imposes a set of design constraints on end-user code.つまりフレームワークの定義は「エンドユーザーのコード全体に制約を与えるもの」と明快です。
- Hypermedia framework
「Hypermediaは目的を表し、それはエンドユーザーのコード全体に制約を与える」- これも明快です。
決定
そもそも簡単に答えられるような問いではないと思ってたのですがこの二人の答えは流石で、どちらかだけを選ぶのが難しいように思いました。
またソフトウエアは、技術的な観点の他にもユーザーサイドから、またマーケッティングの観点からも違った見方が可能で、それらの多面性を反映した名前にしたいと思いました。そこで二人の提案をそのまま連結しました。
Hypermedia framework for objects as a service
「オブジェクトをサービスとして扱うハイパーメディアフレームワーク」- BEAR.ResourceはBEAR.Sundayフレームワークの最もコアなコンポーネントです。フレームワークの作り手として長い間活躍している両御大からいただいた名前として誇りを持って名乗っています。