-
Notifications
You must be signed in to change notification settings - Fork 0
Q. Why name "macchiato.js"?
VoQn edited this page Jun 14, 2012
·
1 revision
A1. 既にある JavaScript テストフレームワークに mocha があったから
元々は Haskell の QuickCheck の仕様に忠実な quickcheck.js
としてプロトタイプを開発していたのだけれど、
- Haskell と違って 型安全でも参照透過でも遅延評価でもなく、プロトタイプベースのオブジェクト指向言語
- 関数型プログラミングで実装するとパフォーマンスが出ない上に、利用側でテスト書くのがダルくなる
- 既存の mocha や QUnit に TDD, BDD を任せ、参照透過なメソッドに対してテストを書く、という事が出来るようなシナリオを考えていた
このような理由で QuickCheck, あるいはそれをもじった形のライブラリの名前は避けようとした。
ライブラリを利用してテストを書くユーザーへは、出来る限り簡易かつ、「JavaScript らしく」書けるようなものを目指している
Java
が元々コーヒーのスラングだし、suger も mocha も barista も既にあるので、「もう今のうちにシャレで取れる名前とってしまえ」というかなりヒッピーな動機で決めた。
テストコードを CoffeeScript で書かれるとして
macchiato にテストの coffee(script) を stock して、自分のライブラリの出来を吟味(test|taste)する!! 酸いも甘いも(suite|sweet) ユーザー次第!! (ゲラゲラ)
というような冗談ドリブンで開発してる。 なので public API がふさげた感じになる。
macchiato.js には
- パフォーマンスが優先なら、プロトタイプベースのシングルトンオブジェクトを破壊的に運用する
- 楽に書きたい、処理のオーダーがそう高い要求でない場合は関数型プログラミングで書ける
- prototype based OOP と FunctionalPrograming のいいとこどりと、その落ち着きどころを見つけたい
という目標がある。
"macchiato" はそもそも「染みのついた」という意味なので、 「Haskell の世界から降ろしたらちょっと混ぜ物(破壊的代入)が入ってしまった (でも美味いことは美味い)」みたいなニュアンスも含んでいる