HTML、CSS、JavaScriptは、
主にクライアントサイドで使用され、いわゆるフロントエンド、見た目や、ユーザーの操作によって表示を変えるなどを行うものです。
対して、Javaなどが使用されるのは、
主にサーバーサイド、いわゆるバックエンド、サーバー処理を行ったり、データベースに直接アクセスをしたりと、よりセキュアな処理を行います。
言語としては、主要なものでは、
- PHP
- Ruby
- Perl
- Java
- JavaScript(Node.jsや、PhantomJSなど)
- Python
- Go
他には、C#も、Webフレームワークがあり、そこそこシェアがあるようです。
なので、サーバーサイドで使う言語はあまり制限がないように思います。
(ただし、その言語を使えるようにカスタマイズが必要になるパターンがある。
だいたいのWebサーバーで初期状態で使えるのは、PHP、Perl。他はWebサーバーで使うことの普及率によって対応率が変動する)
ただし、これらの言語は、フロントエンドでは使えません。(JavaScript以外)
対して、HTML、CSSは、バックエンドでは使えません(というか使いようがない)。
というように、各言語によって性質があり、役割があります。
追記 WebAssemblyに関して
前述では、挙げたバックエンド言語では、
フロントエンドはできないと記載いたしましたが、
以前からありましたWebAPIである、WebAssemblyを使用すれば、
フロントエンドで動作する、各種言語によるアプリケーションの作成が可能になります。
WebAssembly | MDN
しかし、そのままで動作するわけではなく、
他の高級言語から、WebAssemblyで扱える形式にコンパイルする必要があります。
また、今年、Microsoftより、
上記を使ったフレームワーク(Webアプリケーション)がリリースされました。
[速報」Blazor WebAssemblyが正式リリース。C#/.NETでWebアプリケーションを開発可能に。Microsoft Build 2020 - Publickey
Blazor WebAssemblyは、.NETとC#などを用いてWebブラウザ上で実行可能なWebアプリケーションを開発できるフレームワークおよび実行系です。
と、ある通りです。
現状では、WebAssemblyを有効に、使いやすく扱うには上記のものが、
最も簡単だと思われます。
また、
Zuishinさんより、
dll を WebAssembly にコンパイルしてブラウザに読み込むのに多少(1~2 秒?)時間がかかるので、企業や個人の広告サイトなどには向きませんが、例えばゲームやオフィスアプリをクライアントの環境問わず配信することができるようになります。
とコメントいただいたように、
今の段階では、どちらかというと、個人のサイトなどよりも、
今まで配信方法がデバイス依存だったゲームなどの配信を、環境問わず配信可能になることが大きいかと。
(クライアント側は、ブラウザさへあればアプリケーションを実行できるので)
P.S: Zuishinさん、度々の情報提供とコメント、大変にありがとうございます。
なかなか、理解し切るのに時間がかかり、申し訳ございません。