在宅「ママ×プログラミング」でライフステージに合わせた働き方を実現PHPに興味があるんだけど、評判悪くない?なんだかオワコンとかよく見かけるんだけど......PHPってそんなにヤバイ言語なの?プログラミングに興味をもって、何を学ぼうか調べていると「初心者にはPHPがオススメ」という情報をよく見かけるかと思います。「PHP」で検索してみると「PHPは廃れたと」とか「もう学ぶべきではない」とか、「オワコン」(終わったコンテンツの意)とか、かなりひど目のバッシングを見かけたかもしれません。学ぼうとしているのに、その言語が廃れてかかっていて、学習してもその知識がすぐに役に立たなくなったら嫌ですよね。この記事ではPHPのリアルな今を紹介しつつ、2019年現在学ぶに値するのかどうかをお伝えしていきます。まとめPHPは悪い評判を受けやすい!?まず、筆者の予想を明確にしておくと、筆者はPHPは向こう5年は廃れることなく需要のある言語であり続けるだろうと考えています。プログラミング初学者がPHPを学ぶことにも賛成の立場です。PHPの求人もまだまだ多く、習得することによるメリットは充分あると考えています。この立ち位置からPHPを見ていきます。PHPが批判される主なポイントは以下の通りかと思います。PHPはセキュリティが甘いPHPは遅いPHPエンジニアはレベルが低く、他の言語に潰しが効かないこれらの批判ポイントを一つひとつ考えてみましょう。PHPはセキュリティが甘い?PHP批判で頻出の事項としてセキュリティの甘さを指摘されることがあります。セキュリティが弱いといわれた理由これは過去においては残念ながら事実でした。10年以上前の話になりますが、IPA(情報処理推進機構)から「セキュアなWebアプリ設計のためにはPHPを使うべきではない」と指摘されたことがあります。この文章が書かれたころのPHPは5.1から5.2でしたが、たしかに5.1以前にはかなりの脆弱性があり、リモートからPHPスクリプトを実行されかねないようなヤバめの物もありました。PHPは記述のルーズさをかなり許容する言語でもあります。した記述を要求してこない分、レベルの低いエンジニアがセキュリティ周りに穴を開けたりする場合もままあります。いった部分が合わさって「PHPのセキュリティは甘い」という評価が定着してしまったようです。現在は解消されているですが、先にもいいましたように、PHPのセキュリティホールが乱発されていたのは5系の初期です。現在主流になりつつある7系では以前の反省から非常にセキュリティに厳格な対応が取られています。バージョンアップにより言語レベルでのセキュリティの甘さはほぼ解決したといっていいでしょう(プログラミング言語である以上、完璧というのはありえませんが)。低レベルなエンジニアによるセキュリティの問題は次の項で考えていきます。PHPは遅い?PHPというとインタプリタ型言語特有の遅さを問題に上げる方も結構いらっしゃいます。「インタプリタ型とはなんぞや?」という方のために説明を入れますと、プログラミング言語は大きくコンパイラ型インタプリタ型に分けることができます。通常、人間が読み書きできる形で書かれたソースコードはそのままの形ではコンピュータは理解することができません。そのため、コンピュータが分かる形に翻訳してあげる必要があるのですが、この作業をコンパイルと呼びます。コンパイルをするタイミングによって色々と違いが出てくるわけです。プログラミング完了と同時にコンパイルする場合、そのプログラムを実際に動かすときには既にコンパイルが終わっていて、その分早くプログラムを動かすことができます。この方式を採用している言語をコンパイラ型言語といい、C/C++、Java、Goなどがこちらに分類されます。プログラムの実行直前までソースコードをコンパイルせずに、実行するタイミングでコンピュータに対して翻訳しつつ、同時に実行する、というやり方も考えられます。この翻訳しつつ実行するプログラムをインタプリタと呼び、この方式を採用している言語をインタプリタ型言語といいます。PHPやPython、Rubyなどがこちらに該当します。事前にコンパイルされているかどうかという点を見ても、インタプリタ型がコンパイラ型に比べて遅そう、というのは想像がつくのではないでしょうか。実際そのとおりで、コンパイラ型はインタプリタ型に比べて10倍近い速度差を出すこともあります。(実行するプログラムによって速度はかなり変化するため、一概に言えない部分であることはご承知おきください。)ルーズに書いても動いてしまう言語また、おなじインタプリタ型の中でも、PHPはとくに書き方がルーズで有ることが許容されていたため、プログラムを書く人によって大きく処理速度に差が生じる言語でもありました。素人が書いたPHPのプログラムをプロが書き換えただけで、100倍近く高速化したなんて例もあったりします。こんな事情が重なり、PHPは遅い、重いという評判が定着してしまったようです。現在では改善されているしかし、2015年にリリースされたPHP7.0から状況は大きく変わりました。カンファレンスでの公式発表によるとPHPは5から7にバージョンアップしたことで、2倍以上早くなったようです。Game」というサイトの調査結果によると、PHPはPython3、Ruby2.6を抑えて比較的優秀な速度を叩き出しています。Game2019年現在、PHPはきちんとかけば十分速度の出せるインタプリタ型言語になっています。PHPエンジニアは他の言語で潰しが効かないこれもPHPをやっているとよく言われる話です。玉石混合のエンジニアが大量投入されてきた歴史PHPは初心者にも優しい言語で、プログラミングの入門によく使われてきた歴史があります。WEBサービスの隆盛とともに、開発現場では多くのPHPエンジニアが必要になりました。その結果、PHPを簡単に学習しただけでエンジニアとして採用され、壊滅的なコードを書いてくれる残念なPHPエンジニアが大量発生してしまっていた時期があります。間口が広い分、エンジニアの質も上下に広い、ということですね。このため、前任者が書いた残念なコードを修正する仕事に追い回される人が大量発生し、PHPへの恨みつらみが募っていき、このような評判につながっているのだと思われます。以前のPHPは先に書いたように、下手な書き方をするとセキュリティに大穴を開けかねない言語だったので、エンジニアのレベルの低さが致命的な問題点になった現場も多々あったようです。個性が強めの言語また、PHPは文法的に割とルーズな部分があります。“変わった”習慣や実装があります。このため、PHP一本でキャリアを積んできたエンジニアが別の言語に手を出したとき、PHPとの違いをなかなか受け入れられないことも起こるようです(まあ、言語間の差異で悩むのは多言語を扱う際のお約束みたいなものですが)。この点に関しては、PHPはそういった言語なんだと受け入れるしかない部分ですね。次の章でなんでこんな変な部分が散見されるのかの背景は紹介しますが、変であるという事実は変わりません。うまく折り合いを付けていくしか無いですね。悪い評判も裏を返せば......画像:Shutterstock1章でよく言われるPHPのダメなポイントを見てきました。過去にやらかした事実があり、そのイメージを引きずってしまっている部分は多々ありました。裏を返すとこれらの点はPHPの個性でありPHPが大事にしてきた部分でもあるのです。PHPはプログラミング言語ではなかったそもそも論として、起源をたどればPHPはプログラミング言語として生まれたものではありません。Toolsとして作られたのが起源です。このツール群に様々な機能を追加していき、単なるツール群としては成り立たないレベルまで肥大化した結果、1から書き直されるということを数回繰り返しました。その結果誕生したのがプログラミング言語としてのPHPです。生まれからして結構グダグダな部分があるわけです。ラードフ氏も元々プログラミング言語を作るつもりは毛頭なかったらしく、以下のようなコメントを残しています。”プログラミング言語を作るつもりはありませんでした。やって作るのかも知りませんし。https://en.wikiquote.org/wiki/Rasmus_Lerdorfちなみにラードフ氏自身はプログラミングが大嫌いらしくこんなコメントも残しています。”PHPは、歯ブラシみたいなものですね。https://en.wikiquote.org/wiki/Rasmus_Lerdorf現在のPHPの傾向がすべてラードフ氏によるものではないでしょうけど、PHP独特のゆるさや実用本位な点はここらへんに由来するのかな、と個人的には思っています。ユルさは進歩性の証明?また、記述がルーズな点、同じ内容を実現するために複数の方法がある点、つまり言語としての一貫性の無さはPHPが積極的に新しい技術・アイディアを取り込んできた証拠とも言えます。道具としては色々機能が合ったほうが便利ですよね。取り込めばいいじゃない、というのがPHPの信念として存在しているのは間違いありません。その結果、構造や設計に歪みやら変な部分が大量発生することになるわけなのですが、進歩性の代償として受け入れるしか無い部分、というしかないでしょうね。ちなみに、こういったルーズさ、適当さが大嫌いな人はPythonがオススメです。Python」の信念のもとで、有る種独特な世界観を構築しています。このユルさが初心者にとって敷居を低くしてくれている点も見逃せません。Javaのような厳格性を放棄したからこそ、PHPは初心者にもわかりやすい入門言語たり得ているはずです。PHPはオワコンなのか?最後に「PHPはもう終わった言語なのか?」という点を見ていきましょう。IT業界はよくドッグイヤーと呼ばれます。他の業界なら7年ぐらいかけて変化することが1年で変化することを犬の年齢に例えた話ですが、これはプログラミング言語にも当てはまります。PealとJavaScriptはどうなった?例えば、Pealという言語がありました。ネットが本格的に普及し始めた2000年代に、サーバのCGIで動かすために重宝された言語として大いに利用されていたのですが、2019年現在ではとんと見かけなくなりました。逆に2000年代では蛇蝎のごとく嫌われていた記憶のあるJavaScriptですが、最近node.jsやフレームワークの充実で一気に人気を高めています。学んでいる言語が人気があるかどうかは、その後のキャリアに大きな影響を出しかねないものなのです。そこで、多くの人がPHPがオワコンなのかどうかを気にしているわけですね。学んだ言語が数年後に現役で使われなくなってしまったら、あまりにも悲しいものがあります。PHPがオワコンといわれてしまう最大の要因は、PythonやRubyなど競合するインタプリタ型言語が台頭してきたこと。これなのではないでしょうか。Railsというフレームワークがヒットしたことで爆発的な人気を得ました。Pythonは最近流行りの人工知能に使いやすい言語として、一気に人気を高めています。この他にも安定して高速な商業システムを組みたいならJavaという選択肢もありますし、先程も登場したnode.jsを使うことですべてをJavaScriptで構築したシステムすら不可能ではない時代になりつつあります。このようにPHPにはライバルがたくさん存在しており、なおかつ、PHP自身に明確な対抗手段が打ち出せていないため、PHPはこれらのライバルに埋もれてしまい、退場してしまうのではないかという危惧が生まれるわけです。全世界のサーバで最も動いているWeb向け言語は画像:Shutterstockでは、PHPは本当にライバルたちに埋もれてしまっているのでしょうか?実はここに大きなトリックがあります。https://w3techs.com/technologies/overview/programming_language/allこのページはインターネットに関わる様々な情報を調査分析する専門の調査機関が発表している、世界中のサーバで使われている言語の利用比率を紹介しています。この調査によると、全世界のサーバで動いているウェブサイト向けの言語はPHPがトップで79%を占めている、という事実を知ることができます。79%ってかなりの数字ですよね。これは、サーバソフトウェアの一応の業界標準であるApacheを使うと、ほぼ自動的にPHPも使えるようになることや、世界のWebサイトの1/3を占めているWordPressがPHPで作られていることなどが原因と考えられます。いったプラスの要因に象徴されるように、PHPはとにかく動かすのが簡単なんです。そのため、簡単にサービスを作りたい需要が存在する限り、これから5-10年くらいは安泰なのではないかと推測します。決定版といえるようなフレームワークはまだ出てきていませんが、CakePHPやLaravelなど、優秀なフレームワークも存在するため、フレームワークの枯渇による人気低下は無いと考えていいでしょう。全世界で79%の普及率を誇り全Webサイトの1/3を占めるWordPressの構成言語であり優秀なフレームワークが存在するこれだけのメリットがあって、いきなりオワコン化するほうが難しいと思うのですが、いかがでしょうか?さらに言えば、日本にはいままでPHPで作られてきたシステムがたくさん存在します。有名なところだとレストラン検索サイトの「ぐるなび」はPHPの技術導入に積極的なことで知られています。世界に目を向ければFacebookはもともとPHPで作られており、現在はPHPを独自に発展させたHackという言語で開発が行われています。デジタル百科事典でおなじみのWikipediaは今現在もPHPで作られたMediaWikiベースで動いています。このような膨大なPHPの資産を保守・継続させていく必要性から考えてもPHPの需要がいきなり数年後に0になる、ということは考えづらいのではないでしょうか?まとめいかがでしたか?今回はPHPにまつわる、主に悪い評判について、その背景とともに現状を確認してきました。PHP推進派からの意見になりますが、PHPはネット上のあちこちで言われているほど悪い言語ではなく、2019年現在も十分に学ぶ価値の有るプログラミング言語であることがお伝えできたなら、記事としての役割は果たせたはずです。読者の皆さんには、一つの言語に固執すること無く、必要に応じて技術を切り替えられる柔軟なエンジニアを目指していただければと思います。TweetPocket「プログラミング、右も左もわからない...」という方にオススメ当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。その経験を通して、プログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。Reserved.現役生徒500名以上が在籍する弊社のプログラミング学習プランをあなたに合わせて最短1分で診断します。