PHPは何故こんなに叩かれながら、こんなに(業務で)使われるのか?

PHPは何故こんなに叩かれながら、こんなに(業務で)使われるのか?

前のエントリーでは色々と書きましたが、僕がPHPを使い続ける(だろう) 本当の理由は、RubyやPerlの教祖やカリスマが「オタクっぽくてとっつきにくいからヤダー」ではありません。

仕事があるからです。

正確には「他の言語の仕事が殆ど無い」(Javaは別として)といった方が良いでしょうか。WEB制作案件の公募やら企業の求人ををみていると、使用言語は大抵はJavaかPHPです。非常ーにまれにPerlがあって、Rubyに関しては見た記憶がありません。

無論、僕はPerlやRubyが言語としてイケテナイなんて言うつもりは全くありません。というかよく知らないのでコメント出来ないし、言語論争にも興味がありません。Rubyについては素人目には「なんか書き方が個性的」くらいしか判りませんが、多くの人が「洗練されたオブジェクト指向言語だ」というのだからおそらくそうなんでしょう。

しかしてすよ、ビジネスとしては需要が無いならいかんともしがたいのです。例えば、仮に僕がRubyの達人で、何かのWEBサービスを受注したとしましょう。そして「今回のサービスはクールでセキュアなRubyで組みます!」とクライアントに言ったとして、果たして訴求力があるでしょうか?「Ruby?ですか、でもあとの面倒見る人がいないんでPHPで良いですよ」って言われたらそこで終わりです。

そう、使われない言語は益々使われなくなるんです。ドキュメントも少ない、ツールも少ない、ライブラリも少ない⇒使う人が益々少ない…。 これはモノの良し悪しではなく、自然界の掟です。以前、いくずく殿に教えてもらったんですが、自然言語でも使う人がある水準以下になると、急激に廃れて消滅するそうです。身近な例ではアイヌ語とか。

だから、もしある言語を絶滅させたくなかったら、「俺は初心者に媚を売ったりしないよ」なんてお高く留まっている場合ではない、かもね(^^♪

さて、PHP叩き騒動を追っているうちに、色々と面白いサイトを見つけたのですが、その中でこんなのがありました。

株式会社 社会式株 PHPコーディング規約

PHPを使う本当の理由は1つだけだ。 そこそこの生産性に達するまでの習得コストが最も小さい。

・・・オブジェクト指向禁止・・・・・ライブラリ禁止・・・・・

キター!僕が以前オブジェクト指向は嫌いだで書いた思いをズバッと断言してくれました。

まあ、このサイト自体はネタだと思いますが、今のWEB業界の実情を端的に物語っていると思います。 ようは、スキルの習得とはコストなのだと。企業のみならず個人にとっても、じっくり腰をすえて基礎から学ぶ時間など無いのかもしれない。

「設計思想がしっかりしたセキュアなシステムの方が長い目で見ると得ですよ」とか言ったところで、長い目で見てる暇が無い、あるいはそもそも必要無いのかも。なぜなら、多くのサービス、多くのビジネスがドンドン生まれドンドン消えていく・・・5年先には会社自体が無いかも知れないし、あったとしてもその頃には全く別のもっと高性能で低コストなシステムにとって変わられるかもしれないから。

そんな変化の激しい時代には、ぱっと書いてすぐ実行できるシステムが好ましい。そこで、PHP!まさに時代にマッチしましたね。

しかしこれほど諸行無常な現代って、技術者には受難の時代なのでしょうか?あるいは変化に富んで面白いと取るか? ビジネスマンには過酷と取るか、チャンスがいっぱいと取るか?

まあ、少なくとも利用者にとってはこれほど面白い時代は無いのかもしれませんね・・・多分ね。

海外事情とJava

じゃあ、世界的な言語人気度はどうなのか? と思いきや、海外の求人情報なんて知りません・・・そうだ検索人気度で見てみよう。と言うことでGoogleTrends様の登場です。

PHP,Perl,Rubyの比較

うあちゃ、PHPの圧勝ですね。これは予想以上です。PHPは下落率が高いものの、他が地上すれすれなので、基本的には段違い平行棒ですね。

国 別に見ると、やはりインドですか。次にロシア、次がマレーシア!あれ? JapanやUSAが無いぞ…都市別みたらありました、TokyoとSan Franciscoが。面白いのはTokyoではPerlがかなり多いですね。弾団長の功績なのか? それに対して、SFではRubyが逆転してる。まつもと氏はホームでよりもUSで「BIGな存在」なんでしょうか?

さて次に、上の表にJavaを加えるとどうなるか・・・

PHP,Perl,Ruby,Javaの比較

なんじゃこりゃ!JavaがPHPのさらに倍ですと。すみません、WEBアプリ以外はど素人なもんで、Javaって何にそんなに使われてるんでしょう?携帯?

国別ではインド圧勝ですね、ひょっとしてインド人が大挙して使うから使用率が上がるとか?

勿論これは検索回数ですから、仕事の数とは限りませんよ。Javaは難解だから調べる回数が多いのかも知れません。しかし、それでもこの分だと「仕事の王様Java」って感じですね(ちなみに、ストレス社会で生きるのはGaba)。

それにしても、一番とっつき易いPHPと一番とっつきにくいJavaに最も需要があるのは面白いですね。住み分けがちゃんと出来ているからか。逆に中途半端なやつは淘汰される?これも自然界の掟ですかね。

Share me!Share on Google+Share on FacebookTweet about this on TwitterShare on TumblrPin on Pinterest

8 thoughts on “PHPは何故こんなに叩かれながら、こんなに(業務で)使われるのか?

  1. いくずく

    これを読むとマックを連想してしまいますね。結局、使用ユーザーが少ないと、使えるサービスにも差がついてしまってますよね。
    ビジネスとしてやるのなら需要があるのは非常に重要ですよ。僕がサーバープログラムを始めるとしても、まず最初はPHPを選ぶと思います。まあ、最終的には主要な言語はクライアントに合わせて全てやればいいと思いますが。

    使用目的が違うのでPerl,ruby,PHPなどと比べると、Javaが突出するのは仕方ないでしょうね。Javaの場合はほぼ汎用言語と言っていいと思います。サーバープログラムだけでなく、組み込み系から大型システムまで普通のアプリやシステム開発にも広く使われています。どちらかというとCやC++と比較したほうがよい感じではないでしょうか。携帯のアプリやシステムはJavaで書かれているものが多いと思いますよ。

    もうひとつのほうもまた、そのうちコメ書きます。

  2. 管理人タイチ

    いくずく殿、まいど!

    そうでしょ、需要が需要を呼ぶという連鎖反応ですよね。

    ただ、Macについては宗教として成立しているので、無くなりそうでなくならないですね。iTune+iPod iPhoneといったように、ピンチになると神が降臨してきてヒット商品を出すと(^^

    しかし、プログラム言語は最終商品ではなく、規格争いのようなものなので、ニッチ市場で生き延びるってのは難しいのではないかと。一応、PerlやRubyもWEB専用ではないそうですが、かと言ってJavaほど汎用的ではない、何がしたかったのか僕は良く知りません。

    汎用系を時系列で言えば、C⇒C++⇒JavaそしてC#をマイクロソフトが対抗的に出してきたんでしたっけ? まあ、Javaは大そう難しいらしいので、僕には刃が立たないでしょう(^^; Cはオブジェクト指向じゃないようなので、何とかなるかな?と思ったこともありますが、すでに昔の言語なんでしょうか。

  3. いくずく

    マックもperlやrubyもそう簡単にはなくならないと思いますよ。言語のほうもマニアがいるんで結構マイナーなものも長く生き延びてるんですよ。知り合いにマックにこだわる人がいて、仕事でもマック導入をして、あとで周りが困ったという話がありまして。仕事でつかうと制限きついですよね。趣味では、いいけどビジネスとしての選択ではやはり需要を考えるのは重要かなと思うわけです。その点、タイチ殿は早々にマックに見切りをつけましたね。

    さて、rubyの方は後発なので、よく知りませんが、Perlの方はもともとUNIXで使われていたシェルスクリプト言語です。もともとコマンドプロンプトで、ちょっとしたまとめ処理をする場合につかわれていたスクリプトで、初期のWEBサーバーはUNIXが大かったので、これがまず使われていたという経緯があるわけです。だからサーバー言語としてつくられたものでもないし、汎用言語ともほどとおいです。

    また、前の記事のコメに書くと思いますが、PHPにいるかどうかは置いといて、オブジェクト指向自体はかなりよい方法論ですよ。ある程度以上の巨大プロジェクトや複雑な構造になると、これがないとなかなか難しいです。タイチ殿のCは経験ないので、いきなりJAVAから学んでもいいとおもいますけどね。色々いわれるけど綺麗な言語だと思います。

  4. 管理人タイチ

    なるほど「マックもPerlもRubyもなくならない、何度でも蘇るさ」って事ですね(^^
    僕が最後にMacを買ったのは確か97年位(ジョブズが復活する直前の一番売れない時期)で、その後2001年位まで使い続けましたよ。とにかく、最初から落ちまくるマシンでしたね。その後徐々にOSが安定してきますが、やはり同時代のWinマシンの方が安定していました。

    そうか、PerlってUNIXから来てるんだ。ネット黎明期にWEBサーバで何かしようと思えば、Perlが一番手っ取り早かった(他の選択肢も殆ど無い)んだけど、丁度第一次ネットバブルが来て、Perl使いがもてはやされたという感じでしょうか。

    オブジェクト指向自体を否定する気はありませんよ。ただ、頭では理解していても、実際に人が書いたスパゲティープログラムと格闘した経験が無いと、そのありがたみを体感できないのでしょうね。
    このワードプレスにしたって、なんだかんだ言っても一応オブジェクト思考で書かれているので、僕でも構造なんとなく把握して改造できるのかも。

    これから新たな言語を始めるならJavaかな、という狙いは外れてないでしょ?でも、相当ハードルは高いらしいので、ちょっとかじっただけで仕事では使えない、中途半端なスキルになりそう。

    そもそも、僕は何屋さんなんだ?という問いは常にあって、まだ他にもやるべきことは沢山あります。Javascriptをはじめ、HTML/CSSだって今後も進化するだろうし、XMLもやってみたい。もちろん、WEBデザインそのものやSEO,SEMと言ったように、WEBビジネスとして新しい提案もできなきゃね。

  5. いくずく

    たしかに、中程度までのプログラムでは、オブジェクト指向や場合によっては、構造化プログラミングさえなくてもなんとかできてしまうので、実体験がないとありがたみが薄いかもしれません。

    次にJavaを学ぶというのはいいと思いますよ。しかし、Javaってそんなにハードルが高いとちまたでは言われているのですか。極めようとしたら大変でしょうが、そんなに身構える必要はないと思います。

  6. 管理人タイチ

    JavaでWEBアプリを作ろうとしたら、中級どころか上級でも難しい、なんて話は聞きますね。それに以前君からも、JavaとJavascriptの区別が付いていない上司がいて「Javaやってみようかな」なんて言い出して、「似ても似つかないものですよ。難易度も桁違いです」とアドバイスしたという話を聞いたよ(^^

    でも「そんなに身構える必要が無い」というなら、ちょっとかじってみようかな。さっきも「何故Javaで作るのか」という本をざっと見てきました。どうやら、CPUそしてOSの垣根も超えた、世界初(?)の完全な汎用言語だ、という事はわかりました。

  7. いくずく

    そんな話したっけな。あまり記憶にないのだが。たしかにJavaScriptとは難易度というか、言語の規模は違いますね。やってる程度にもよりますが、JavaScriptの場合、趣味でHTMLのクライアントサイドのちょっとした処理を書く程度が多いですからね。それに比べると難しい話になるでしょう。

    しかし、タイチ殿はすでに、ビジネスレベルでそれなりのサーバーサイドのプログラムを組んでるわけだから、特に問題はないと思いますよ。
    まあ、僕はJavaも使いますが、CやC++に比べて特にJavaが特別難易度高いとは感じなかったですね。

    難しいといってもプログラム言語の難しさなんて高が知れてるので、習得できないってことはないですよ。既に多くの人たちに使われてるわけですし。これだけ多くの人が使ってるってことはさほど難しくないってことです。(^^♪

  8. 管理人タイチ

    大分前の話だけど僕は結構印象に残ってます。「そうか月とすっぽんなんだ」と。

    Javascript(JS)に関しては今でこそAjaxで注目されてるけど、かつては「あれはプログラムじゃない」などとかなり甘くみられていましたね。

    確かに、どうでも良い使われ方しかされてなかったのは事実ですね。ウインドをゆっくり消すとか「〇〇さんこんばんは…」って電飾を出すとか。おまけにアダルトサイトなんかで、ポップアップウインドを多量に出すような事が流行ったおかげで、一時期IEではデフォルトでJSがOFFになったよね。

    ただ、プログラム言語としてみると、JSはれっきとしたオブジェクト指向です。予めHTML構造のクラスが定義されてるというか。
    だから何かを表示しようと思ったら、document.form.name.value=mynameとか書かなきゃいけない。これは最初のプログラム体験としては、結構とっつきにくかった。むしろ、HTMLの好きな場所に変数を埋め込めるPHPの方がよっぽど初心者に優しいです。

    そんなJSがすっぽんで、Javaが月だとしたら全く手に負えないや、と当時の僕は思ったのでした(^^;

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です