21

どちらの言語も、認識されている JavaScript の欠陥を修正すると主張しています。CoffeeScript と Dart (JavaScript にコンパイル) がこれを達成しようとする方法の主な違いを理解したいと思います。特に、

  • オブジェクト モデルは JavaScript と同じですか?
  • それらは静的または動的に型付けされていますか? 強いか弱いか?
  • クロージャーはどちらの言語でもどのように機能しますか?
  • コルーチンをサポートしていますか?
  • 構文の主な違いは何ですか?
  • いくつのネイティブ ライブラリを使用できますか?
  • 既存の JavaScript ライブラリを使用できますか?

個人的な好み、採用率、ツールのサポート、特定の目的での有用性などには興味がありません。

4

3 に答える 3

19

Seth Ladd は、CoffeeScript の特定の側面を Dart および JavaScript と比較するブログ投稿を行っています。すべての弾丸に影響するわけではありませんが、開始点になる可能性があります。彼はまた、nettuts に関する Coffeescript と Dart の記事に応えて、このディスカッションを投稿しました。

于 2012-04-15T23:36:01.027 に答える
1

To add to Richard G's great links: You can use JavaScript inside CoffeeScript http://coffeescript.org/#embedded Test out CoffeeScript on that site; lots of great examples.

IIRC, Dart was its own language at first. When the dev community were not so open to Dart (either "meh" or "ugg"), then Google tacked on JavaScript cross-compiling to Dart. Native Dart is ultimately to compete with JavaScript. Dart is alpha-quality now; I'd skip it unless you are into testing alot.

To me, a better question would be, "Should I develop in CoffeeScript or Haxe JS?"

于 2012-04-16T04:23:58.580 に答える
0

Dart と JSを比較した新しいビデオを MarakanaTechTV で見つけました(Dart から JS にレンダリングされた場合ではなく、ほとんどが Dart の VM に関連付けられています)。ハイライト:

  • よりクラスベース (類似している JS のプロトタイプとは対照的に、dart はここでは Java および C++ に似ています。これにより、Dart が高速化されます。呼び出しが Prototype チェーンを移動する必要がないためです。)
  • オブジェクトのサイズは静的で密集している可能性があり、オブジェクト配列の実行を高速化するのに役立ちます。穴のあいた配列が必要な場合は、「マップ」を使用できますが。
  • int 演算はすぐに利用でき、double-float よりも高速です (多かれ少なかれ JS は常にそうです)。
  • Dart には、大規模なデータセットの CPU 使用率 (画像、オーディオ、ビデオ、3D、巨大なテーブルなど) を削減できる SIMD があります。ただし、ブラウザー内でグラフィックス、オーディオ、または大きな数値表を処理する予定がない限り、これは問題になりません。(ところで、私はスピーカーに同意しません。SIMDオペコードは典型的なdouble / intオペコードよりも1サイクル以上かかるため、SIMDへの切り替えには「オーバーヘッド」がかかることが示されているDSP用のSIMDへの私自身の翻訳が示されています。 SIMD と「古い」数学の間で変換する opcodes. とはいえ、2 チャネル (ステレオ オーディオなど) に SIMD を使用しても、4 つすべてを使用すると、CPU を少なくとも 20% 節約でき、最大 3.7 倍の速度が得られます。チャンネル)。

もう 1 つの " Why Dart? " vid は Web 開発者向けです。便利な言語シュガー/ショートカット: 名前付きコンストリクタ、レキシカル 'this.'、メソッド カスケード。Angular.js のような組み込みのデータ バインディング。

于 2013-04-13T18:47:03.363 に答える