JSPと比較

項目 JSP/サーブレット PHP ASP CGI クライアントサイドスクリプト
適用箇所大規模システム中小規模システム中小規模システム中小規模システムサーバサイド技術の補助的手段
開発生産性◎構造化された豊富なAPI、JSPの豊富なスクリプティング要素〇豊富な関数群、平易な言語体系。但し、関数体系に難あり◎組み込みオブジェクトと豊富なコンポーネント。関数主体のVBScript×HTTPプロトコルの知識が必要◎平易なスクリプト言語
パフォーマンス◎コンパイル言語。プロセスはコンテナひとつ〇インタプリタ言語(Zendによる一括コンパイル)。プロセスはコンテナひとつ〇インタプリタ言語。プロセスはコンテナひとつ△コンパイル、インタプリタ双方あり。要求都度、プロセス起動〇インタプリタ言語。クライアント-サーバ間のトラフィック発生しない
マルチプラットフォーム・可搬性◎Write Once, Run Anywhere〇複数プラットフォームに対応。ただし、マルチプラットフォームでの移行には注意要×Windowsにのみ対応。COMインストール、IIS上の環境設定など要△複数プラットフォームに対応。ただし、マルチプラットフォームでの移動は困難×クライアントの環境に強く依存
保守性◎JavaBeans、フィルタ、カスタムタグ、リスナなど豊富な支援技術△PEAR、PHPLibなどの部品化技術。但し、未だ不十分〇豊富なCOM、スクリプトレット技術〇…による豊富なモジュールの提供×UIによりコードへの影響大
分業容易性◎JSP、サーブレット、JavaBeansによるMVC技法△テンプレート技術やPEARなどは未だ発展途上〇ページインラインとCOMの切り分け。N層アーキテクチャ×純正のプログラムソース。デザイナによる編集困難〇「.js」による外部ファイル化
初期環境構築の手間△J2SE、Tomcatなど必要△Apache、PHPなど必要〇ASPはIIS/PWSに組み込み△任意のWebサーバと使用言語の実行環境が必要◎スクリプト対応のブラウザのみ
言語選択の柔軟性×現バージョンではJavaのみ×独自の言語のみ〇COM対応スクリプト言語の範囲で自由◎Perl、C、シェルスクリプトなど自由△自由(ただし、JavaScriptが一般的)
障害時の影響分離度合い△コンテナ全体に影響△サーバ全体に影響◎影響分離度を用途に応じて変更可能〇サーバ本体とは別プロセスで実行〇影響程度は低い