JavaScriptがあり、次にFlashがあり、Silverlightがあり、HTML5がそれらすべてを所有していました。
それでは、TypeScriptの背後にある動機は何ですか?TypeScriptでどのような問題に取り組み、どのような改善が得られますか?
JavaScriptがあり、次にFlashがあり、Silverlightがあり、HTML5がそれらすべてを所有していました。
それでは、TypeScriptの背後にある動機は何ですか?TypeScriptでどのような問題に取り組み、どのような改善が得られますか?
回答:
JavaScriptにコンパイルされる静的に型付けされたクラスベースの言語のように思えます。それは良いアイデアであり、他の人も持っていたものです。
利点は、静的に型付けされたクラスベースの言語とJavaScriptの両方で開発された人には明らかです。
ご覧の通り、基本的な考え方は非常に良いものです。そうは言っても、経験がないので、言語自体については何も言えません。しかし、私はSmart(上記にリンク)を使用しましたが、これはWeb開発に非常に強力で便利なツールであることがわかりました。
私が見る限り、TypeScriptを使用する理由はいくつかあります。何よりもまず、Mason Wheelerが言ったように、コンパイラです。むしろ、コンパイラが行うすべてのチェックを行います。JSLintおよびその他のツールは便利ですが、いくつかの問題を見逃しており、時には明らかに間違っています。この「革新」を歓迎します。
次に、実際の型システムがあり、読みやすさが向上し、正しい型が強制されます。結局のところ、これにより開発速度が向上します。
私にとって、すばらしいことの1つはツールのサポートです。これはおそらく型システムの副作用ですが、それでも素晴らしいことです。そして、本当に必要なのは、現在のJavaScriptツールのサポートが有用ではないからです。
TypeScriptはJavaScriptを拡張しようとします。コンパイラーは本当に素晴らしいJavaScriptを生成します。そして、これに加えて、ECMAScript 6の提案に従います。(たとえば、矢印関数の構文、パラメーターのデフォルト値、モジュールなど。
それは作るのモジュールやクラスでの作業が容易になります。JavaScriptでクラスとモジュールを操作することは実際に可能であり、非常に一般的ですが、ある程度の定型コードが必要です。そして、読むのは本当に簡単ではありません。TypeScriptでは、JavaまたはC#と同様に、クラス、インターフェイス、およびモジュールのステートメントを記述できます。
しかし、結局のところ、それはまだJavaScriptです。新しい言語や構文を学ぶ必要はありません。それが追加する唯一のものは、オプションの型システムです(これは素晴らしいと期限切れです)。
次に、「定義ライブラリ」があります。これは、JavaScriptライブラリをすべて書き換えたり、パッチを当てたりすることなく使用できることを意味します。ただし、現在、追加の型システムがあります。
私は間違いなく試してみます!
最後に、HTML5とTypeScriptの間に競合はありません。しかし、それは別の話です。
JavaScriptがあり、次にFlashがあり、Silverlightがあり、HTML5がそれらすべてを所有していました。
これは単に真実ではありません。Html5はそれらを所有せず、マルチメディアの使用を簡素化する新しいマークアップを導入し、新しい時代のブラウザーの利点を探ります(htmlのレンダリング中にハードウェアアクセラレーションを使用するなど)。
それでは、TypeScriptの背後にある動機は何ですか?
動機は、それを使用する理由によって駆動される場合があります。TypeScriptのすべての機能(静的チェック、シンボルベースのナビゲーション、ステートメントの完了、コードのリファクタリングなど)を考慮する非常に強力な理由です。
さらに、堅牢なコンポーネントの構築に役立つクラス、モジュール、およびインターフェイスを提供します。これらの機能は、開発時に信頼性の高いアプリケーション開発のために使用できますが、単純なJavaScriptにコンパイルされます。
JSにコンパイルされるまったく新しい言語ではなく、javascriptの開発を管理するツールとして扱われる場合があります。Dartのようなサーバー側の開発言語にはなりたくないし、CoffeeScriptのような別の構文もありません。人気のある言語(およびコアライブラリ)を受け取り、GWTやscript#のようなJSにコンパイルしたくありませんでした。TypeScriptは、JSの次のバージョンで提案されている同じ「クラス」構文にも従います。
今日のWeb開発のほとんどは、クライアント側でのみ実際のjavascriptを使用して行われていると思います。Dart、GWTなどの言語またはフレームワークはこれに適していません。coffeescriptを選択すると、新しい構文が表示されます。そして、あなたはcoffeescriptとJSの両方を理解する必要があります。TypeScriptは、いくつかの追加の型指向機能を追加するだけですが、JSに融合され、型固有のエラー(JSエラーの大部分)から開発者を救い、開発ツールに開発者の意図に関する詳細情報を提供します。
このアプローチは新しいものではありません。「静的入力」セクションに移動します
この記事では、クエリに対応しています-http : //www.eweek.com/developer/microsoft-delivers-typescript-a-better-javascript-for-big-apps/
共有された信頼性の低いがらくた(javascript)を、実質的なプロジェクトで実際に使用できる独自の言語に変える努力だと思います。
GWTと比較する必要があります。GWTは似たような目標を持っていますが、JavaScriptを言語の一部にしないことで、よりクリーンなアプローチをとりました。また、JavaアプレットまたはFlashを使用すると、ブラウザに依存しない完全なランタイム環境を定義する非常にクリーンなアプローチを採用できます。
あなたの意見は異なるかもしれませんが、ネイティブに(変化する、一貫性のない)javascript実装とDOMモデルを提供するブラウザに依存する限り、それは運命だと思います。