PHPのメリット・デメリット

うちのブログで一番読まれている記事が「フレームワークのメリット・デメリット」ですね。
タイトルが直球なせいか、検索でこの語句を打ち込むとトップにこの記事がトップにきます。
で、良く考えたらこのブログPHPの学習ブログなんですが、PHPのメリットデメリットをはっきり紹介してませんでした。「なぜPHPなのか」という記事が比較的近いんですが、この記事わかりにくい(爆)
初心者の方向けにPHPのいいところと悪いところを私なりに書いてみますね。
Contents
メリット
まずはメリットです。一言でいうと「プログラミング未経験者でも学びやすい」です。
後にも述べますが、PHPを嫌う人は非常に多く、WEB上ではデメリットのほうが多くあげられます。
が、それを差し引いても初心者の学びやすさとメリットは大きいでしょう。
その学びやすさを具体的に書いてみますね。
比較的簡単
PHPがほかのプログラミング言語に比べて簡単なことに異論はないかと思います。
このブログで2回に1回ぐらいは書いていることですが、プログラミングというのは未経験者にとってはとてもハードルが高いです。
完全な独学でやろうとした場合、9割以上の方は簡単なお問い合わせフォームすらできません。
WEB上だと強気な意見(「プログラミングなんか独学で誰でもできる」など)が多いのですが、惑わされないようにしましょう。
このブログでは「プログラミング自体未経験」「独学中心」「スピード重視」の方をターゲットにしています。
その場合、少しでもハードルが少ないほうを選んだほうがいいです。
そうじゃないと高確率で挫折してしまいます。
キャリアの長いプログラマの方は最初にCなどすすめることがありますが、未経験&独学&スピード重視の場合は無視しましょう(笑)
1つのプログラミング言語を学んでおけば、他の言語を学ぶのはそれほど苦ではありません。
まずは「自分でプログラミングを動かせた」という経験をつむためにもPHPのような簡単な言語で経験を積んだほうがいいです。
具体的には単に簡単っていってもいろんな意味がありますが、「WEBであることを実現するまでの学習時間、実際の工数が短い」という意味で考えてもらえるといいと思います。
人口が多い
HTML/CSSを除くと、今一番多いプログラマはPHPのようですね。
人口が多いことがなぜメリットなの?と不思議な方がいるかもしれませんが、人口が多いと次のようなメリットがあります。
情報が多い
人口が多いことで最も恩恵があるのは「情報の多さ」です。
当たり前ですが、プログラマ人口がおおければそれだけWEBなどで情報発信する人が増えまし、書籍なども出版されます。
ある言語、フレームワークで「こういう機能を実現させるにはどうしたらいい?」となったときに情報が探しやすいことは学習を進めるうえで超重要事項です。
例えば「世界で一番優れたプログラミング言語」なんてものが仮に存在したとして、使い方をしっているのが世界で10人しかいなかったら意味がないですよね?
PHPだとこういう時にはどうしたらいいか・・というのは大抵検索すればでてきます。
欠点はいろいろあっても使用人口が多く、情報が出回っていることは実務上大変なアドバンテージです。
多くのサービスで使われている
人口が多いことから多くのサービスで使われている点もメリットの1つです。
これはレンタルサーバーや他のサービスでもWEBのサービスであれば基本的にはPHPが使えないものはあまりありません。
新しく、革新的な言語でも使用人口が少なければ使うことすらできないこともあるのです。
例えば普通のレンタルサーバーでScalaを使いたいと思っても入っていることが少ないので使うことすらできません。
PHPならばまずそんなことはありません。どこでも使えます。
求人が多い
使用人口が多いので、当然仕事に就きやすいです。
今だとJavaがトップでPHPはその次ぐらいの位置にきているのではないかと思います。
趣味でやるなら別ですが、プログラマにこれからなろうと思っている方、副業などでプログラミングを使いたい方にとっては大きなメリットでしょう。
メリットに関してはこんなところかな・・・
繰り返しますが「プログラミング未経験者でも学びやすい」がメリットです。
このメリットを悪くとらえる人もいるようです。(レベルの低いプログラマが大量生産されるなど)
が、「プログラミング自体未経験」「独学中心」の方がプログラムを覚えようとした場合、非常に大きいメリットです。
デメリット
メリットをいろいろと上げましたが、キャリアの長いプログラマの方は一般的にはPHPを嫌います(爆)。
「PHPなんてプログラミング言語じゃない」なんて過激なことを言う方もいますね。
PHPのデメリットに関してはWEB上で検索すると山のようにでてきますが、それらの話の多くは初心者の方には全くわからないレベルのものが多いので、初心者の方向けに「PHPがなぜ嫌われているのか?」「PHPのデメリット」を私なりに書いてみたいと思います。
自由度が高い
「自由度が高いことがなんでデメリットなの?」と思うでしょうね。
専門的な例をあげることは簡単ですが、あえて専門的な例を一切使わずに説明してみます。
例えば学校でも会社でもある組織に入ったらみんなが正しく生活や仕事ができるように様々なルールや制約があります。
ルールや制約が多いと最初は窮屈でも大勢の人間が共同生活をする上では必要になってきます。そしてルールや制約が多いほうが一般的には安全です。
ルールがあまりなく、多くの人が自由に行動したりすると摩擦が起きます。
身近な例で言うと外国の人が来た場合、同じルールや常識で行動しないことが多いので日本人同士に比べると圧倒的にトラブルが増えます。
実はプログラミングでも同じようなことがいえます。
他の言語だと変数の定義自体、いろんな制約があり、その制約を守らないとそもそも動かないことが多いです。
ところがPHPは自由度が高くある意味、適当に書いても動いてしまうので、それが危険なことも多々あるわけです。
ほぼWEBオンリー
これはわかりやすいデメリットでしょう。
例えばAndroidアプリをPHPで作りたいと思っても無理ですし、できません。
PHPが学びやすいのは特定の目的(WEB)に特化しているから、ということが大きいのですが、それが逆にデメリットになります。
セキュリティが弱い
これは少しPHPを使うとわかるのですが、一般的なプログラミング言語に比べるとセキュリティ的に弱い部分が数多く報告されています。
バージョンアップを繰り返して対策が採られているようですが、一般的にはセキュリティに弱いという印象が強いです。
結論
PHPのメリット、デメリットについて書いてみました。
私はPHPに対して愛着はあっても信者でもアンチでもありません。
セミナーに来た方には説明していますが、私がPHPをすすめるのは
- プログラミング自体未経験
- 独学中心
- できるだけ早くプログラミング言語を見につけたい
という条件に該当する方で、このブログの読者方もそういった方をターゲットにしています。
今大学生でプログラミングの授業が大学でみっちりあるという方だったらCなどをすすめます。PHPはやらないほうがいい、というかもしれません。
プログラミング言語に限りませんが、何がメリットかデメリットかは何を前提条件にするか、そもそも目的がなにかによって変わってきます。
部分的な情報だけで判断しないようにしましょう。
関連記事
-
-
挫折必至!初心者がやってはいけないプログラミングの学習法 ワースト4
多くの方はプログラミングをどのように身につけたらいいのか・・・ということに関心があると思います。
-
-
セミナー告知のお知らせ
突然ですが2018/06/16にIT業界への就職希望者を対象とした無料プログラミングセミナーを開催さ
-
-
プロゲーマーに学ぶプログラミングを学ぶのに大切な姿勢
今日紹介する方はプログラマではなくて、梅原大吾さんというゲーマーの方です。 実は日本にもプロゲ
-
-
就活生必見! Webエンジニアになるなら知っておきたい超基本業界用語
本日はWEB業界でよくつかわれる専門用語について私の知っている範囲で書いていこうと思います。
-
-
指導者の仕事とは その3
お疲れ様です。松本です。 開発案件でちょっと忙しくなっており、若干テンパりぎみです(汗)どんな
-
-
データを扱ってみよう その2(配列)
こんばんは松本です。 少しずつ暖かくなってきましたね。暖かいのはいいんですが、オフィスでブログ
-
-
初心者でもできる!作れる!WEBサービスの開発 その4 総まとめ編
前3回の記事でWEBサービスを作ったお話をさせていただきました。 (前回までのお話し)
-
-
「初級」〜「中級」のPHPエンジニアのスキルについてまとめてみる(DB編)
本日はデータベース系の必要な技術について。 ウェブエンジニアといっても技術領域が非常に広いので
- PREV
- プログラミングをする上で超大切な検索方法の身につけ方
- NEXT
- 就職するときに見落としがちな考え方
Comment
ゲーム制作などのためにプログラミングを覚えようと思ったのですが、はじめからJavaでやろうとして、始め方すらわからないままにやめてしまいました。
そして最近将来プログラマーとして働きたいと考えるようになり、再びプログラミングを練習しようと思っているのですが、「経験やスキルなどの技量がよく反映されるもので、就職の際に困らない需要のある尚且つ、ゲーム制作や趣味の創作活動にも使える言語」はなんでしょうか…
Torioさん
初めまして。コメントありがとうございます。
管理人の松本です。
>最近将来プログラマーとして働きたいと考えるようになり、再びプログラミングを練習しようと思っているのですが、
>「経験やスキルなどの技量がよく反映されるもので、就職の際に困らない需要のある尚且つ、ゲーム制作や趣味の創作活動にも使える言語」はなんでしょうか…
非常に難しい質問であり、おそらくプログラマによってさまざまな答えがでてくると
思われます。
精一杯回答させていただきます。
あくまで私の独断と偏見で書かせていただきますが、
おそらくすべてを満たすものになりますとJavaかもしれません。
Java人口は多いですが、Javaの技術と一口に言ってもいろいろあり、レベルもさまざまですので、
経験やスキルなどの技量が反映されるのは間違いないと思います。
就職の際に困らないのは求人数が非常に多く、以前所属していた人材紹介会社でも「Javaプログラマが欲しい」
ということは営業もよくいっていました。求人サイトをみても大体Javaがトップですね。
Javaですと特定の用途に限定しておりませんので、ゲーム制作や趣味でも幅広く使えるかと思います。
ゲームだけ、でしたらほかの言語でも様々ありますが。
といいますか、ゲームといってもジャンルによりおそらく分かれます。
趣味といっても用途によりけりですが、それでしたらなおさらJavaの汎用さが武器になるかと思います。
ただし、一度挫折されているということですので、それですと私はPHPかJavaScriptなどでプログラムの基本を覚えられてから
Javaにすすまれてもいいかと思います。
ブログの記事でも何度か書かせていただきましたが、未経験や独学の方にとってプログラムは非常に難しいものです。
文面からTorioさんはプログラミング未経験であり、周りに聞ける方もいないように感じました。
間違っていたらすいません・・・
>はじめからJavaでやろうとして、始め方すらわからないままにやめてしまいました。
とTorioさんはかかれていますが、全く珍しいことではありません。
プログラミングの経験が1ミリもない&完全に独学でJavaをある程度できる方は1%以内だと私は思います。
ほとんどの方は環境構築すらできずに挫折してしまうと思いますし、そういう方にたくさんあってきました。
私がプログラムを学び始めたとき(5,6年前)と比べ、ネットの動画コンテンツをはじめとした学習環境は向上し、
以前と比較にならないぐらい学びやすくなっています。
それを考えても、自分の指導経験から未経験&独学環境の方がプログラムを学ぶのは非常に難しいことだと
思っています。
そういった方にとっては少しでも負担が少なく、簡単で覚えやすい言語を学ぶことが大事になると私は考えますので
PHPかJavaScriptを学ばれてからJavaを勉強されるのはどうでしょうか。
多少でも参考になれば幸いです。
[…] PHPのメリット・デメリット […]