Write and Run

it's a simple way, but the only way.

AngularJSは今すぐ生まれ変わるか死ね

mizchi 氏のエントリを踏まえて。

Angularが嫌い - mizchi's blog

何をやるにもググって解決しなければならないぐらいには一貫性がない

マジでこれ。設定が多すぎる。特に directive 定義。どうやら Web Components の流儀に沿うようになっていて、将来的には Web Components に乗っける、ということらしいが、そもそもの Web Components の仕様が汚いし、救いようがない。

参考: AngularJS: Developer Guide: Directive

制御構造と要素を分離してねぇせいで replace とかいうオプションが生えてるし、tranclude との組み合わせでより複雑なことになるし、isolated scope な directive は併用できないとか、ng-repeat で作られた scope の下に他の directive の scope が入るように優先度とかいう暗黙的な値があったり、マジでクソ。その優先度はコードのどこに見えるんですか!!! ドキュメントと本体の実装ですかそうですか!!! ライブラリの知識がないとコードの意味がわからないから雇用が守られていいですね!!! 100 飛びで優先度を振ってあるから横入りしやすくて便利だと思います!!! N88 BASIC の行番号じゃねぇんだぞ死ね!!!

AngularJS の不健全さを知るためには、とりあえず restrict オプションを見とけばいいと思う。directive を attribute でマッチするか、element でマッチするか、class name でマッチするか、というオプションなんだが、それを "A" "E" "C" という文字列の「連結」で表現する。つまり、attribute と element なら "AE" という文字列を指定することになる。なんだそれ。マトモな脳ミソなら { element: true, attribute: true } にするよな。getUserMedia だってだいぶ前に直ったんだぜ?

とにかく、AngularJS の設計が気に食わない。なんでどこもかしこもアドホックなルールだらけなんだ。犯人がわかったと思ったら後出しでアリバイが出てくる推理小説かよこれは。

AngularJS は今すぐ生まれ変わるか死ね。あと Object.observe を AngularJS のためだけに Chrome に先行実装してゴリ押しするのやめろ。