JSP/Servlet/PHPの特徴メモ

昨日メモできなかった部分を今日またメモ.
例によってこの本の最初の方に書いてあることを簡単に.

                                                                                                                      • -

JSP/PHP/ASPサーバサイドプログラミング徹底比較」
http://www.amazon.co.jp/gp/product/4774116467/250-0633380-8116219?v=glance&n=465392

                                                                                                                      • -

JSPの短所

HTMLに直接コードを埋め込んで行くため, ロジックが複雑になったとき可読性が低下する.
(HTML部分とコード部分がごちゃごちゃになる.)
これは, PHPにも同じことが言える.
JSPの場合, Servletを上手く利用することでこの問題を回避することができる.
(Servletは元々がコードなので, 複雑なロジックも比較的すっきり書ける.)

Servletの長所

JSP/Servlet/PHP/ASPの中で唯一, 純正のコンパイル方式を採用してる.
そのため, 実行時に解析/コンパイルという作業が不要になり, より高いパフォーマンスを望める.

PHP全般

HTML埋め込み型の言語である
  • で囲まれたコードを埋め込んでいく.
  • HTMLとの親和性が高い.
  • レイアウトにコードが密接に絡み合うため, コードが複雑になったとき可読性/保守性が著しく低下する.
    • PHPでは, PHPLib/Pearのようなライブラリを利用したモジュール化指向により改善を試みている.
スクリプト言語である

スクリプト言語であるが, パフォーマンス的にはコンパイル型に劣らない.
コードを1行単位で処理するのではなく, 与えられたコードを内部的に一括してコンパイルして実行している.

C/Perlの流れを組んだ言語体系

C, Perlの流れを組んだ言語体系により初学者にも分かり易くなっている.

豊富な関数群

JavaやCとは比べものにならないほどの量の関数がある(らしい).
しかし, これが利点でもあり, 欠点でもある.
尚, PHPのバージョンは4あたりまでの話.

  • 構造がフラット
    • 各関数は互いに同列の関係にあるため, その名前はPHP全体に対して一意でなければならない(拡張性を妨げている).
  • 非推奨関数の所在
    • 推奨されなくなった関数が多く存在.
    • 機能的に明かに重複したものも存在.
    • 命名規則の関係上, 似た名前の関数が乱立している.
    • (初学者がどれを使ったらいいのか分からなくなるなどの問題.)



JSP/Servletは互いに短所を補い合う形で使用するのが正解みたい.
また, PHPJSP/Servlet同様にプラットフォームを選ばない.


本に書いてあったことはこんなもんか.
PHPは一度使ってみるべきだなあ.
最新版だとどうなってるか分からないわけだし.