Angularが嫌い

僕は本当にAngularが嫌いで、もはや許せないレベルに達していて、今ではもう本当に使いたくない。

イカ理由。

  • APIがほんっっっっっとうに糞
    • 趣味の問題といえばそうでもあるが僕は糞だと思う
  • 実装が黒魔術
    • 良識あるJSエンジニアなら Function.prototype.toString() しない
    • 実際に一部のクロージャが破壊されてて挙動が直感に反する
    • DirtyCheckの実装、表面的にもDirtyな挙動として現れるのでデータバインドとして何も嬉しくない
  • Googleだから許される、みたいなコミュニティの驕りが本当に嫌
    • Angularの都合だけでChromeでObject.observeを前倒しするのやめろ
  • Angularの内部モジュール同士が密結合
    • DI, module, factory, それぞれ大きなテーマなのに密結合
    • 使いはじめるとAngularをやめることが困難
  • パフォーマンス面で他フレームワークに対して長所を持たない
    • というか基本的にAngularでSPA作ると上述のDirtyCheckの問題で悪化する。その解決策がObject.observeを政治的に前倒しするってのも気に食わない。
  • 何をやるにもググって解決しなければならないぐらいには一貫性がない
    • 中身が黒魔術 + 設計が一貫してないから解決するためにこうする、っていう直感が働かない
    • 検索で各MVWとの比較で検索数一位だから流行ってる!みたいな意見あるけどこんな歪な設計するとググらないとなんもわからん。Railsみたいなまともな規約もないし。
  • JavaScriptのノウハウが生かせない
    • Angular流儀を強制されて他のモジュールと繋がらない

一番最後はJavaScriptエンジニアとしてのポジショントークなんだけど、それ以外はなんというか本当にダメ。 なんか今日イライラしてるからこんな風に書いてるんだけど、Googleが作ったからなんだ、Googleが作ったからマーケティング上のゴリ押しが許されるのか、そうじゃないだろ。

今日久しぶりにMEANスタックの名前きいて、この名前の名のもとにAngularが自己の生存権を拡大しようとしててその未来は本当に嫌だなと思った。これが主流になったらJavaScriptエンジニアやめるぐらいには嫌だ。 MEAN(MongoDB, Express, AngularJS, Node.js)スタックが優れている理由 - Mozilla Open Web Day in Tokyoを終えて - albatrosary's blog

Googleの歪なプロダクトをクソみたいなマーケティングでゴリ押し、という似たような理由で、Goも最近嫌いになりました。