まず、上記の声明の著者がウェブサイトの開発について話していることに留意してください。そのため、彼はプレゼンテーションの開発を心配しています。そこで彼は、Scalaは良い選択ではないと考えています...
そうは言っても、私はWeb開発の経験が豊富です。私は少なくとも8年間専任で仕事をしてきましたが、そのうち5年間はデジタル代理店で働いていました。
そして、はい、私の経験では、プレゼンテーション層で静的に型付けされたコンパイルされた言語は大きな障害になる可能性があります。コンテンツは、ビジネス要件よりもはるかに頻繁に絶えず変更する必要があります。通常、これは個別のチーム(「フロントエンド」開発者)が行う必要があります。彼らは通常、HTML、JavaScript、Web標準、CSSについて多くのことを知っていますが、JavaやC#などのサーバー側言語についてはあまり知っていません。また、テンプレートのあらゆる種類の変更がすぐに利用できると想定しています。コンパイルおよびタイプエラーには使用されません。そして、それらは正しいです。静的に型付けされた言語は、データアクセスやビジネスルールなどのハードで複雑な要件には非常に適していますが、インターフェイス開発にはあまり適していません。
実際、これはVelocityのような特殊で解釈されたテンプレート言語を使用する主な利点の1つです。その使いやすさ、パワー、および柔軟性は、プレゼンテーション層の開発者に十分です。そして、サーバーサイドの人は、他のどこでも真剣に静的に型付けされた言語を自由に使用できます...
ただし、Scalaが多少異なることにも同意します。同時にJavaよりもはるかに冗長で表現力が高いため、プレゼンテーションの開発に使用できると考えています。したがって、テンプレート言語として使用できる可能性があります。また、Playのようなフレームワーク(変更のたびにWebサイトを自動的にコンパイルする)に組み合わせることができれば、勝者になる可能性があります。それでも、PlayでもGroovyに似た(動的な)テンプレート言語を選択していますが、これは良い兆候ではありません。
要約すると、Scalaの問題は、Scalaがコンパイルされているという事実により関連しています。実際、その型推論メカニズムにより、静的に型付けされていることもほとんど忘れられます。
(そして、私の英語についてすみません。何かはっきりしないことがあれば教えてください、私はそれを修正しようとします。)
Button
whenであるかどうかを確認WebControl
する必要はなく、すべてのコントロールはそこから派生します。