Dartが解決しようとしている問題に関して、Dartの要点がわかりません。
JavaScript の短所が原因で作成されたと読みましたが、それらの短所は示されませんでした。
私が Node.js を学ぶよりも、Dart を学ぶことの利点を誰か説明できますか?
Dartが解決しようとしている問題に関して、Dartの要点がわかりません。
JavaScript の短所が原因で作成されたと読みましたが、それらの短所は示されませんでした。
私が Node.js を学ぶよりも、Dart を学ぶことの利点を誰か説明できますか?
主な問題は、大規模なマルチ開発者アプリケーションを作成することの問題を解決することだと思います。
Javascriptでは、完全に有効なコードを記述できます。
function x(y) {
return y*y;
}
document.write(x(3,4,5));
そして、これは正常に実行されますが、明らかにエラーです。
ここで、数千行のコードのコードベースで、数人の開発者と数か月による関数定義と関数呼び出しを分離します。
元の関数x(y)は元々関数x(y、z、a)であった可能性がありますが、その後、時間の経過とともにリファクタリングされています。これは私にとってjavascriptが失敗する場所であり、これがdartが解決するのに役立つものです。
編集(2013年5月)上記の私の答えは今でも当てはまると思いますが、パフォーマンスの話もかなり説得力があると思います。Google I /OからのLarsBakとKasperLundの講演は、いくつかの証拠を提供します。
技術概要は、違いを非常によく要約しているようです。
クラス: JavaScriptはオブジェクト指向であり、(少なくとも最新版では) クラスを提供しませんが、実際にはプロトタイプベースの言語であり、クラスベースの言語ではありません。それは本質的に悪いことではありませんが、ほとんどの主要な OO 言語とは異なり、ほとんどの人にとって学習が難しくなります。
(オプション) 静的型付け: プレーンな JavaScript では静的型付け (「コンパイラによってチェックされる」など) を行うことはできません。利点 (および欠点) はよく知られており、広く議論されています。
ライブラリの言語サポート: 「この前にそのファイルをロードする」ことは、ライブラリを実装するための非常に原始的な方法であり、ほとんどの最新の言語は何らかの方法でライブラリを明示的にサポートしています。
そのページにはツールについても言及されていますが、それは言語間の固有の違いではありません。確かに、静的にコンパイルされ、型付けされた言語の方が優れたツールを作成しやすいですが、これはプログラミングで解決できない根本的な違いではありません。