2009-08-11 9 views
11

ちょうど私の心が今日になった。私はいつものようにWebをブラウズし、IEのデバッグモードで時間を過ごしました。ああ、少年は多くのエラーを見ています:)これらのエラーの大半は、いくつかの値が予想よりも異なるタイプです(少なくとも、メッセージ)。javascriptなどのスクリプト言語は強く型付けされると効果がありますか?

JavaScriptや同様のスクリプト言語に強く入力されない理由は何ですか?言語を「理解しやすく、アクセスしやすい」ようにするのは単なるものか、あるいは「コンパイル時」の欠如が本当の問題なのか?

+0

おそらく、答えとしてあなたの意見を投稿する必要があります - 人々(DIS)は – karim79

+0

明確化を同意する方法を強力に測定するために:JavaScriptやその他の動的言語の構文解析からあなたを止めるものは何もありません。あなたが話しているのは、意味解析されたテキストを評価することです。 – JaredPar

+0

答えとして自分の意見を追加しました。そして、あなたはJaredですが、ブラウザ環境を前提にして、私が知っていることはありません(私の知る限りではありませんか?)。あなたが強く型付けされたスクリプト言語を持っていたなら、あなたはそれを強制的に親切にするでしょう? :) – cwap

答えて

15

確かに強いタイピングが必要ですがあります。 Actionscript 3は強く型付けされていますが、プロトタイプの継承を持ち、動的オブジェクトが必要な場合はワイルドカード型です。

この機能を利用できるという欠点はありません。中規模から大規模のプロジェクトでは、強いタイピングによって問題が発生しません。それを最大限に活用するには、エラーを報告して自動補完オプションを提供できるようにIDEサポートが必要ですが、実際のクラスと強い型付けがあればJavascriptはまったく新しい世界になります。

+0

+1「それを追加する際の害は何ですか?それを望まない人はそれを使う必要はありません。 –

+0

6年後、これは起こっていることに非常に近い - 実際のクラスを持つJavascript。しかし、私は強いタイピングについてはあまりよく分かりません。 –

1

私自身の意見:スクリプトを実行する前に解析することができます。これはほとんどの型エラーを捕らえ、ユーザーが部分的に実行されて終了したスクリプト結果を見る必要がないことを意味します。さらにパーサーがあればデバッグする方がはるかに簡単です:)

2

入力されていないことから柔軟性が得られます。私は個人的に弱い型の言語を楽しんでいます。

答えには利点と欠点があります。

ブラウザで強く入力された言語を使用したい場合は、GWTとScript#を利用できます。

+0

私は、彼らが自動的に防止することができるエラーのクラス全体を導入しているので、柔軟性があるとは言いませんし、余分な追加機能を提供することもありません。その関数を渡したオブジェクトが必要なメソッドをサポートするという保証がありますが、そのコード行が実行されなければ決して分かりません。 – weberc2

0

私は、ActionScript 2では、いつでもeラーニングのためのラピッドプロトタイプフレームワークを構築します。私の最大の悩みは、AS2は厳密に型付けされていなかったため、デバッグ時に頭痛が増えます。強く型を入力するとコードを読みやすくなります。私は、弱く型付けされた言語は、より柔軟性を提供すると思います。

私は6ヶ月前に書いたコードで何が起こっているのかわかります。

+1

AS2は厳密に型指定されています。変数の後に型を指定するだけです。例:var vector1:Vector – Marius

1

私はほとんどのスクリプト言語の弱い型付けされた側面が好きです。パフォーマンスだけでなく強く型付けされた欲しい唯一の理由は、強く型付けされた言語を弱くするよりもツールをリファクタリングする方が簡単だということです。

+0

また、厳密な型指定はエラーのクラス全体を排除しているように見え、オブジェクトがサポートするメソッドを覚えやすくします。 Javascriptでは、同じ型の2つのオブジェクトが完全に異なるメソッドを持つことができます。イッピー! – weberc2

2

javascriptなどのスクリプト言語は強く型付けされると効果がありますか?

はい、彼らは希望、JavaScript 2.0type systemが導入されています

型システム はJavaScript 2.0は、すべての 可能な値のサブセットとして考えることができるタイプ、 の概念をサポートしています。 Object、Number、 Stringなどの組み込みの 型がいくつかあります。各ユーザ定義クラス(セクション6) もタイプです。また

参照してください。一般的にはhttp://timkadlec.com/2008/04/an-objective-look-at-javascript-2-0-strong-typing/

を、強い型付けのサポートは、コンパイルと最適化パスのために多くの興味深い機会を提供しています。

0

マイクロソフトでは、タイトスクリプトの間に問題を厳密にタイピングすることを解決するために長い道のりを歩んできました。見てください:

http://www.typescriptlang.org/

関連する問題