わかりにくいセマンティクス
これはセマンティクスの問題です。誰かが.NETフロントエンドまたはJavaフロントエンドの開発者と言うとき、彼らは通常、テンプレート言語について多くのことを知っている人について話しています。 httpの壁を越えて物事をチャッキングする(つまり、「Web開発」)ことは、そのくだらないことすべてを学びたくない、または少なくとも学びたくないと思われるアプリ開発者からのものです。.NETとJavaが混在している場合、確信はありませんが、MVCの意味では、すべてのビジネスモデルにJavaが作用し、他のすべてがより適切に処理される.NETを持っていると推測できます。 「中間層」としてですが、それでもすべてサーバー側です。
実際の分離とは、サーバー上で起こることと、クライアントまたはブラウザー上で起こることです。送信するHTMLの構築またはフロントエンドの表現を「フロントエンド開発」と簡単に混同することができるので、私が通常行うことを議論する際にフロントエンドとバックエンドの代わりにクライアントとサーバーサイドという用語を使用して混乱を避けることを好みます。 (通常はクライアント側の作業)。
クライアント側の言語
ブラウザーで同じ言語のセットを使用する理由は、ブラウザーが受信側にあり、ほとんどの場合(これに関してMicrosoftとAdobeからほとんどが死んでいる抵抗があるため)、誰も3つを送信する必要がないためです。同じクライアント側の異なるバージョンを使用して、すべての潜在的な顧客を満足させるか、Webが機能するために独自のプラグインをインストールする必要があります。また、3つの言語は実際にクライアント側の懸念を非常にうまくカプセル化し、ドキュメント構造、すべての外観、すべての動作を疎結合に維持することで、Webアプリのフロントエンドを迅速に構築および変更できます。他の2つを簡単に変更せずに、1つを変更できます。
サーバー側の言語
もちろん、サーバーサイドWebに膨大な数のオプションがあるのは、できるからです。それはあなたのサーバーです。必要なのは、http / sslを介した通信だけで、残りはユーザー次第です。ところで、JavaScriptはオプションになりましたが、興味深い質問があります。それでもWebアプリを、HTTPウォールの両側にある2つのアプリのように扱う必要があります。私は、そうです、そうするべきであり、私はNode.jsが大好きである、という苦痛に満ちた情報に基づいています。