GitHub の ATOM が CoffeeScript で書かれているのはどうなの?

http://discuss.atom.io/t/why-coffeescript/131

2 comments | 3 points | by noto 約2時間前 edited


1000
noto 約2時間前 edited | ▲upvoteする | link

先日 GitHub が発表したエディタ ATOM のディスカッション・フォーラムで、なぜ CoffeeScript で書かれていて ECMAScript 6 (ES6) じゃないの? node.js/V8 を利用するデスクトップアプリケーションなら ES6 をすぐに使うほぼ完璧な機会なのに、という問題提起があり、それについて議論があったようです。

前提として、GitHub の JavaScript Styleguide

  • 新たに JS を書く時は CoffeeScript で書くこと
  • 新たに .js ファイルを追加することは避けること

と書かれていて、GitHub の中の人としては CoffeeScript が合理的な選択であるようです。

以下、like が多いものだけピックアップします。

ES6, JavaScript 賛成派:

  • JavaScript 開発者のほうが CoffeeScript より多いから、コントリビュートする際の障壁が上がってしまうのではないか。

  • Express 開発者の visionmedia (TJ Holowaychuk) 氏

    • CoffeeScript 開発で使われるイディオムは JS の世界の基準と大きく異なることが多く、通常の JavaScript とインターフェースを取るとちょっと奇妙 な API になりがち。
    • ES6 に賛成。ES6 が使えるようになると、CoffeeScript 独自で提供される機能はすごく少なくなる。
    • 失うものが多い割に得るものが少ないんじゃないか。
  • CSON を使うのはコメントが使えてよい。ただ、JSON5 を使わないのはなぜ?

    • CSON より YAML のような、CoffeeScript の外側でも適用できるものを使って欲しい。

CoffeeScript 擁護派:

  • CoffeeScript は readability を改善させるのでよいのではないか。参入障壁が上がっても、コントリビューションの質が上がるかもしれないし、そうなると読みやすくてメンテしやすくなる。

  • GtiHub の人たちが大量にコードを読んだりメンテするなら、彼らが決めれば良いこと。好みを押し付けるのは正しいと思わない。プロジェクトが便利で良いものなら、コントリビューションというのは言語に関わらず集まるもの。開発者自身に何で書くか決めさせれば、彼らはよりハッピーに感じられてより生産的になるから、よりすばらしいエディタが使えるようになる確率が格段に上がると思う。

    • CoffeeScript だとわかってすぐ手を引いた、という人も、もしそのエディタがすばらしく気に入って、バグに悩まされるようになれば、十中八九コードに dive するようになると思うよ。
    • CoffeeScript の生成する JavaScript が ES6 で動かないというけど、それは真実じゃない。ES6 のいくつかの機能が、すでに CoffeeScript にあり、CoffeeScript から直接的に利用できないということ。ネイティブ JavaScript の方がパフォーマンスが良いかもしれないけど、ES6 の文法で CoffeeScript の既存機能が実装できないということでもないから、それほど大きな問題じゃないんじゃないの?

さて、もともとこのディスカッションについて知ったのは @ryukbk さんの tweet 経由なのですが、この中に「node.jsベースでChromiumのUIというパーフェクトジオングみたいなAtom」という表現があって、じわじわ来ますw

1000
Back