僕は7年前web作成していましたが、転職を機に使わなくなり、最近戻ってきたら浦島太郎になっていました。現在web作成の世界で何が主流なのかわかりません。
phpはなぜファイルがやたら多いのでしょうか。驚きです。アップロードに時間はかかるし煩雑なのになぜ人気なのかわかりません。
例えば掲示板なら簡単なcgi(それはperl?)で事足りるのになぜphpを使うのでしょうか。そんな複雑な掲示板には思えないものもphpで作られていたり、ページ全体がphpで統一されているものもあります。「買い物カート」など複雑なものでなければ全てhtmlで十分だと思うのですが
1.html, cgiで十分出来ることもわざわざ複雑にしているように見えてならないのは、時代遅れな発想なのか。
2.時代遅れを取り戻すためのアイディアについて。webの世界でどう主流が変わったか・何が何の役割をしているのかなど、時代の流れや各種言語の「全体のつながり」がわかるサイト・本があれば教えてください。phpやperlは、個別には理解できますが、横の繋がりがわからないのです。
よろしくお願いします。
最近、PHPの質問ばかりしているので答えます。
1.html, cgi
CGIは、perlの一種です。PHPは、Mysqlなどのデータベースを取ってくるのが楽なんです。
以前は、個人サイトなどではテキストに保存したりしてましたけど、今は個人でもデータベース保存します。
PCの容量が増えたというのが大きいです。
7年前はメガの単位でしたが、今はギガの単位です。
以前のhtmlは単に情報を表示するだけのものになりました。
つまり、HTMLなどのような文字情報とは限らず、画像情報、動画情報など、
以前と比較するととてつもないデカイデーターを扱う必要が出てきました。
それで、デカイデーターを扱う為にデータベースが必要で、データベースが使いやすいPHPが流行したのです。
2.サイト・本
【送料無料】ウェブがわかる本 |
リアルタイムウェブ-「なう」の時代 (マイコミ新書) (新書) / 小林 啓倫 著 |
私は普段phpで開発していますが、htmlだけでは機能実装に十分じゃないし、
perlじゃhtml出力そのものが面倒。当然のようにphpを使ってます。
なんでphpと言われると逆に新鮮です。あんまり難しく考えず、htmlの
中にロジックを組み込めるんで開発がしやすいで使ってます。Windows
サーバーでやらないといけないときはASPベースのVBScriptで同じように
開発してます。古いタイプのプログラマーなんでクラスとかは使いません。
クラスを使うから全体のフィル構成が複雑になって見通しが悪くなるのだと
思います。以下のURLのサイトもphpで作ってます。
「htmlがどのように機能実装に十分でないのか」を伺っているのですが・・
>1.html, cgiで十分出来ることもわざわざ複雑にしているように見えてならないのは、時代遅れな発想なのか。
時代遅れです。
CSSが出てきたときに、HTMLだけで実現可能なのになぜCSSを使わないと駄目なんだといっていた人がいました。
Flashが出てきたときに、アニメーションGifではなぜダメなんだといっていた人がいました。
結局は便利で簡単だからです。
ファイル数が多くなっても、やっぱり今のほうが便利で簡単だと私は思いますが
慣れの問題かもしれません。
>例えば掲示板なら簡単なcgi(それはperl?)で事足りるのになぜ
誤解がありますが、簡単なCGI(PERL)をそのままPHPに変換することも可能です。
だから1ファイルで実現してるのならそのままPHPで実現可能です。
PHPでPerlライクとか昔風に作ることも可能です。
だからそういう簡単のは今でもそう作る人もたくさんいます。
>2.時代遅れを取り戻すためのアイディアについて。
・DB(データベース)を普通に使うようになった
・PHPなどではオブジェクト指向で組むことが普通になった
#これがファイルが増える原因です
・PHPなどではフレームワークを使うことが多くなった
#これがファイルが増える原因です
これに慣れることです。
Perlでも今は普通にオブジェクト指向で書きます。
>「全体のつながり」がわかるサイト・本があれば
PHPフレームワーク入門―CakePHP/Zend Framework/symfony/CodeIgniter対応
掌田 津耶乃
PHPによるデザインパターン入門
下岡 秀幸 道端 良 畑 勝也
http://yahoo.com ダミーURL
phpファイル1つをドキュメントルートに設置すればWebアプリができる手軽さと(Perlとくらべると)可読性の良さなんかでPHPを使う人が増えたと思います(エイリアスとか読みにくい)。CGIみたいにヘッダを書き出したりとかも意識する必要がありませんし、レンタルサーバーによってはCGIはかなり重いです。
YahooやFacebookやGREEはメインでPHPを使ってるようです(FacebookはHiphopというのを使ってPHPで作ってからCに書き出すようですが)。今人気の携帯ソーシャルゲームアプリなんかも開発効率的にCakeやEthnaのようなPHPフレームワークとMySQLの組み合わせで作るケースが多いみたいです。
同じ機能を実現するのであれば、PerlによるCGIよりPHPの方が記述が少なく済みます(PerlでもCPANライブラリなどを使えばカバーできますが、あくまで各言語の素の機能だけを比較したとして)。
「ファイルが多い」は最近のコードか昔のコードかの差でしょう。1ファイルで完結しているPHPスクリプトもあれば、大量のファイルを必要とするPerlスクリプトもあります。
傾向として、昔のコード(Perlが多い)は個人が趣味で作成したシンプルなものが多いため、1ファイルで完結する物が多い、という事は言えると思います。最近のコード(PHPが多い)はオープンソースプロジェクトが昔よりも一般的になった影響で、巨大なコードが増えています。また、最近は再利用性を上げるために、個人が作ったものでもファイルを分割する傾向が強いです。他の方が上げている「フレームワーク」への依存も再利用性を高める工夫の一例でしょう。
というわけで、古いPHPのコードを探せば1ファイルで完結していますし、逆に最近のPerlのコードを探せば大量のファイルがあるでしょう。
http://plagger.org/trac/browser/trunk/plagger
簡単な物もPHPで作る理由ですが、それは「Perlだけができて、PHPができない人」の見方でしょう。初習者にはPHPの方が優しいと思います(なんと、HTTPすら理解せずにプログラムが書けますし、COOKIEを知らないでセッションを書く事もできます)。PHPの習得のしやすさから、今は「PerlができてPHPができない人」よりも「PHPができてPerlができない人」の方が圧倒的に多い、というのもあります。
> phpやperlは、個別には理解できますが
たとえば、上に貼ったPlaggerのコードを理解できますか?MTはどうでしょう?
https://github.com/movabletype/movabletype
IT業界は7倍で時間が過ぎる、などと言います。Perlが「CGIで」動くのが当たり前だった時代の知識は、勉強する際の基礎にこそなれ、実用知識としては厳しいと思います。PHPもPHP4とPHP5以降はほぼ別言語と言っていいほど変わっています。
>個人サイトなどではテキストに保存したりしてましたけど、今は個人でもデータベース保存します。PCの容量が増えたというのが大きいです。
なるほど、このあたりはとくに納得です。たしかにいまはギガ単位ですからね。ただ個人でもデータベースを持つって相当ですね。。