Webプログラミング
Webプログラミング(ウェブプログラミング)とは、World Wide Webで使われるウェブアプリケーションのプログラミング、Webソフトウェア開発を行うことである。また、この作業を行う人間をWebプログラマ、Webエンジニア、Web開発者、Webデベロッパーと呼ぶ。
概要
[編集]Webプログラミングでは、サーバ側で動作するプログラムとクライアント側で動作するプログラムの両方を開発しなければならない。それぞれの側のプログラムで利用される技術は異なり、それぞれ専門分野として確立されている。
サーバ側でのプログラミングは、ウェブサーバ上で動くプログラミング言語を用いて行われる。
クライアント側のプログラミングは、ウェブブラウザの解釈できるプログラミング言語を用いて行われ、主にはJavaScriptが用いられる。JavaScriptをTypeScriptのような言語からコンパイルして生成することはよく行なわれるし、またWebAssemblyを用いる場合様々な言語からこれを生成することができる。
JavaScriptおよびDOMは元来はアプリケーション構築環境として設計されたものではなかったから、実際のアプリケーション構築のニーズとのギャップを埋めるための様々なフレームワークやツールが多くの組織、個人によって提供されている。
サーバサイドとクライアントサイドにおけるプログラミングの違い
[編集]サーバサイド
[編集]サーバサイドでのプログラミングには次のような特徴がある。
アクセスが殺到しやすいウェブサイトではデータベースに高い負荷がかかりがちであるため、その解決のためにまず第一にDBMSの知識がソフトウェア開発において求められることが多い。その他全体としてサーバ、クラウドインフラ、ネットワーク、セキュリティ、計算機科学、ソフトウェア工学の知識が求められる事が多い。
クライアントサイド
[編集]クライアントサイドでのプログラミングは、リッチクライアントを実現するためにJava Web StartやClickOnceやAdobe Flashを使うケースが黎明期には多く見られたが、最終的にはAjaxのようにウェブブラウザ上で動くプログラミング言語を用いて行われるやりかたにほぼ収斂した。
JavaScriptを用いる場合、元来、ウェブブラウザには様々な実装系があるため、クライアント側のでプログラミングを行うためには、複数の実装系に精通している必要があった。しかし、Webアプリケーション開発が一般化するにつれ、各種のライブラリやフレームワークが、ブラウザ依存を吸収するように設計されるようになったし、またブラウザ側も相互に互換性に配慮した開発が行なわれるようになり、この種の問題は一定の改善を見た形となっている。
しかし一方でクライアントサイドの開発が複雑化、肥大化した結果、この分野においてもパフォーマンス、セキュリティにかんする要件、要求される知識も平行して肥大化する傾向にある。