で、不十分だと何が悪いのか?
「PHPでカタいプログラムが書ける」という命題は、「Linuxでカタいシステムを提供できる」とほぼイコール(≒)だ。
細部まで分かってる奴が、徹底的に問題点を知悉した上で使えば問題ない。どちらも面白い共通項があり、「普及している」「環境として提供されやすい」という点を挙げておく。
そして、往々にして「徹底」はされていない、という現実にブチあたる。
しかし「問題」はそれほどは発生していない。
見過ごされ易い問題ってのは非常に沢山あって、実はもっとも厄介な「問題」ってのがコイツなんだ。
そして、問題を発見するスキルは常に「運用経験」であり、「その環境に対する熟練度※」でしかない。
(※運用経験ゼロだと、いくら本を読んで知識を得た所で意見する価値はない――むしろ運用経験2年程度の先輩に殴られるかもしれない。って俺はサーバは本業じゃないので傍目でそういった様子を見ているだけなのだけどw)
運用のプロ、もしくはレビューのプロがいる場合において、プログラマーがしなければいけない事とは何か。
前者に於いては、運用者が分かり易いコンフィグを仕様書として提供する事。
後者に於いては、レビュアーが分かり易いコードの仕様書を揃えて提供する事。
仕様なんて「他者に説明できる」という要件さえ満たしていればいい。
もちろん語尾のすべてが「にょ。」だったりすると問題だけど、実際にみかか相手の仕様書でも「※ここちょっと自信ありません^^」なんていう事例は見た事があるので、実のところかなり寛容。だと思う。
世の中、分業化が徹底しているものです。
「バグがあるコードはまずい」
「脆弱性があるコードはまずい」
当然だ。しかし上記二つに「精通するべきだ」と思っている人には少し補足がいると考える。
君らは「バグレビュアー」「セキュリティーレビュアー」「プログラマー」のどれになりたいのか。という問題提起。
セキュリティ云々よりも、「サーバー負荷を意識した設計になっているか否か」の方が重要になっちゃう。
俺が素人コードの修正時に悩むのって、いつもコレだからってのもある。
「そりゃさぁ……今は七千件程度だから三秒待ちで済んでるけどさぁ……他のサービスも動いてるんだし、全行舐めてハッシュに入れて整形出力したらマズイっしょ」みたいな状態だ。JavaScriptでやれる社内案件の為に、グローバルに向けてるwebサービス負荷を食っている訳だ。
この辺、「Cだから速い」「PHPだからCGIより速い」「Rubyだから遅い」「Pythonなので並」みたいな一般論では割り切れない世界になってます。Rubyでもいいのよ。「Rubyだから最適なアルゴリズムを組み易い」っていうプログラマには素直にRuby渡すべきです。ほんと。CGI経由でも※。
(※俺は社内だろうがCGIなRubyでActiveRecord多用されたら頭突くけど)
全ての問題は一カ所に集まります。
「PHPが普及し過ぎたから」
……これですよ。Matz氏が分からん訳はないと思う点でもある。
でも、(webアプリとしての)「Rubyの暗黒面をPHPが支えているんじゃない?」という着想が頭から離れない……。
俺が類推するのはApple。
MacBookを使い勝手良くて活用してるけど、最近のAppleってそういう点でPHPの普及になぞらえて「上手くやってる企業」だと思う。
Macがシェア少ないのを良い事に「ウィルス少ないっすセキュリティ大丈夫っす」とか売り込んでるのと一緒で、結局Mac OS Xだって完璧には程遠い、「でも便利な品」に過ぎない。
シェアが逆だったら、正直Appleの体質では「週間マイクロソフト※」のような徹底的な対策は難しいだろうと思う。今のOS価格のままだと尚更だ。難しいところだと思うんだよなぁ。
※毎週のように来るアップデートに対する揶揄。Appleは不具合認知が進んでも頻度が上がらない感じ?
Appleはシェアが少なくても売り上げている。
Matz氏や笹田氏は、Rubyのシェア拡大自体には興味がないような発言を公式の場で繰り返している。
Microsoftは例年、需要の下降曲線の「ゴースト」に怯えている。もちろん元よりゴーストであり、確実な脅威でもない。でもサクっと消えてくれる相手でもない。
LinuxがMSを潰すのではないか。JSPとJavaの普及で、もうPHPは不要なんじゃないのか。一方MSは.netを出した。馬鹿野郎MSのOSデシカウゴカネエヨボケ。で、monoが登場する。