RubyもPHPもWebアプリケーションを作るとき使われる人気の言語だ。
「簡単な言語」というイメージも共通していて、開発や勉強でどちらを選ぶかを悩む人も多い。
このページではRubyとPHPを比較していく。難しい部分には踏み込まず、初心者の方が全体感をわかるようにイメージした。
RubyかPHPかで悩んでいる方には参考になるだろう。
目次
RubyとPHPの比較
このページでとりあげるRubyとPHP、この2言語の主戦場はWebだ。
Webアプリケーションでもどんなアプリを開発したいのか、その辺を念頭に置きながら読み進めてほしい。
Webアプリケーションを作るとなったときにRubyでもPHPでも大抵のものはまず問題なく作れる。
とは言え「餅は餅屋」で、プログラミング言語にはそれぞれ向き不向きがある。
【PHPとRuby】生誕とブレイクのきっかけ
PHP
1995年に公開された。比較的新しい言語だ。
もともとはホームページを作るための言語で、PHPはPersonal Home Pageの略だ。名前の通り、ホームページを便利に作るために生まれた。
徐々に人気を集めていき、進化をしていき、Webアプリケーションの開発に特化した言語と進化して、今でも高い人気のあるプログラミング言語だ。
PHPのブレイクのきっかけの1つは、インターネットの隆盛によるものが大きい。
Webアプリケーション開発の需要が高まり、それまではCGI(Perl)がWebアプリケーションの開発は担っていが、もっと簡単に高機能なアプリケーションが開発できるPHPがすごい勢いでそのシェアを奪っていった。
そして今や、PHPはWebアプリケーション開発のスタンダードな言語の1つとなった。
Ruby
RubyもPHPと同じ1995年に公開された。日本人である、まつもとゆきひろ氏によって開発されたオブジェクト指向スクリプト言語だ。
日本人が開発したプログラミング言語自体は他にもあるが、日の目を見て、今でも人気があるのはRubyしかない。
Rubyはなんといっても、Ruby on Railsの登場で、一躍Webアプリケーション開発の業界に踊り出た。
この革新的なフレームワークによって、どんどんWebアプリケーション開発のコストが下がっていったのだ。
スタートアップやベンチャー企業では、PHPの経験よりもRubyの経験を重視するところも出てきている。
【PHPとRuby】有名なサービス開発事例
どちらも十分すぎるほどの実績がある。
PHP
世界的なSNSである「FaceBook」もかつてPHPで開発されていた。今はFaceBook社がPHPを独自に拡張、開発した言語によって開発、運用がされており、今も引き続きPHPが使われていると言ってよいだろう。
その他には、グルメの口コミサイトである「ぐるなび」や、家探しで有名な「Home's」、検索ポータルサイトとして有名な「Yahoo!」もPHPで開発されている。
Ruby
プレゼンテーションファイルをシェアする「SlideShare」や料理レシピサイトの「COOKPAD」、プログラミングコードのホスティングサービスである「GitHub」などもRuby、細かくいうとRuby on Railsによって開発されている。
またレストラン検索ポータルの食べログも同様にRubyによって構築されている。
【PHPとRuby】言語の思想
プログラミング言語には、開発者の思想がある。その思想を叶えるためにプログラミング言語は生まれていると言っていい。
ここではその思想について見ていこう。
PHP
元々はRasmus Lerdorfがオンラインで公開していた履歴書へのアクセス履歴を調査するために開発を始めたと言われている。
だから当初は、「Personal Home Page Tools」という名称だった。
つまり、本当に簡易的なツールとして誕生し、その後、人気がでるにつれて、改良が繰り返されていき、支持を盤石のものとしていった。
C言語 の構文に似せて作られ、C言語 や Perl などを知っている人たちが移行しやすいように作られたというエピソードもある。
とにかく「簡単」「Web」というのがPHPの基本的な考え方だ。
Ruby
開発者のまつもとゆきひろ氏は、「Rubyの言語仕様において最も重視しているのは、ストレスなくプログラミングを楽しむこと」と言っている。
Perlを代替可能であることも重要な設計思想として取り入れたが、Perlのようにある機能を実現するのに色々な方法で行うことを推奨せず、なるべく同一の書き方で同一の目的を達成できるような言語仕様となっている。
開発をグループで実施した場合、これらの特徴は非常に役立つ。Railsというフレームワークごと、そのような思想で、ブレなく開発が進められるメリットは大きい。
【PHPとRuby】人気比較
プログラミング言語の人気を比較したデータは色々種類があるが、PHPとRubyの位置関係はだいたい変わらない。
TIOBE Software社によると言語ランキングは次のようになっている。
1位 | Java |
2位 | C |
3位 | C++ |
4位 | C# |
5位 | Python |
6位 | PHP |
7位 | JavaScript |
8位 | Ruby |
9位 | Perl |
10位 | Visual Basic .NET |
11位 | Delphi/Object Pascal |
12位 | Assembly language |
13位 | Visual Basic |
14位 | Objective-C |
15位 | Swift |
見ての通り、PHPが6位、Rubyが8位となっている。
他のランキングでPHPが3位だったら、Rubyは5位くらいのランキングになっており、だいたいこのような位置関係だ。
プログラミング言語の人気は、時勢もあるし、他の言語との兼ね合いもある。そのため、このデータに固執する必要はないが、知っておいておいたほうがいいデータだ。
人気が高いほど、仕事の数も多く、また勉強に使えるドキュメント類も多い。
一説には、PHPプログラマは国内に20万もいると言われ、今もなお求人数は圧倒的な高さを誇っている。
いっぽう、Rubyの求人数は急速に増加していて、大手ウェブサービスでの実績も増えてきている。
一般的な印象としては、PHPはプログラミング初心者でもとっつきやすいのと、アプリケーションを開発するための近道となるライブラリが充実しているため、最初の選択肢として採用されるケースが多い。
一方、Rubyはオブジェクト指向やプログラマのストレスをなくす為に開発されたこともあり、どちらかというと、多少なりともプログラミングを知っている人からの興味を集めることが多い。
PHPならではの特徴
PHPはなんといっても、その「とっつきやすさ」にある。プログラミング初心者ならば大体のケースで、PHPがオススメとなる。
要は学習コストが低いのだ。
また、PHPは世の中にあるほとんどのレンタルサーバーがサポートしているため、スクリプトさえUPすれば、動かすことができる。
これはまだサーバー構築スキルの無い初心者にとっては、大きなメリットだ。
PHPはすでにWebアプリケーション開発のデファクトスタンダードとしての地位を確立してから久しいため、就職するにしても、学ぶにしても、たくさんのチャンスがある。
PHPには、RubyでいうところのRuby on Railsのようなほぼ一択のフレームワークが存在しない代わりに、色々な個性をもったフレームワークがたくさんある。
たとえば、日本国内で一番ユーザーが多いと言われる「CakePHP」や、アプリケーションの応答スピードが早いといわれる「Phalcon」、最近支持をあげている「Laravel」など、栄枯盛衰の繰り返しをしながら、実に個性豊かなフレームワークがたくさんある。
PHPを学びそれなりにプログラミングが出来るようなったら、次の段階であるフレームワークを利用した開発の際にも、たくさんの選択肢がある。
Rubyならではの特徴
RubyはとにかくチームでひとつのWebアプリケーションをなるべく早く作りたいときに強い。
PHPは柔らかすぎるため、適当に書いても動いてしまうという短所(長所)がある。個人ならともかく、チームで適当に開発を行うと、バグが頻発する。
RubyはPHPよりも硬い。そういう意味で安心のプログラミング言語だ。
またRubyにはWebアプリケーションに特化した言語ではないため、かつてPerlが担っていた高度な文字列操作などもRubyでも行うことが出来る。
そして、なんといっても、RubyにはRuby on Railsがある。Ruby on Railsの存在なしではRubyを語ることは出来ない。
実アプリケーションの開発の雛形を予め備えた仕組みのことで、結果的にプログラミング量を減らしながらも、品質や機能の実現を行えるものを総称してフレームワークと呼ぶ。
Ruby on RailsはRubyプログラミング言語に対応したフレームワークだ。画期的だったのは「同じことを繰り返さない」、「設定より規約」といった思想のもとに開発されたフレームワークということだ。
これまでも、プログラミング言語にはそれぞれのフレームワークが存在していたが、主流だったのは、設定ファイルに事細かにアプリケーションの定義を記載していくものだった。
これは保守性や開発効率を考えると、影響範囲の特定などにコストをとられることになり、あまり思わしくない面もあった。
それを予め決めておいた規約のとおりに、コーディングすることにより設定する項目を劇的に減らすことに成功したのだ。
この思想は、PHPで支持を集めている「CakePHP」「Laravel」といったフレームワークにも取り込まれている。
ともかくRubyはRuby on Railsの登場により、本格的に実務としてのアプリケーション開発のプログラミング言語として一般に広く認知されることとなった。
まとめ
RubyとPHPを大まかに比較してきた。結論的には、次の通り選択するといいだろう。
- とにかくWebアプリケーションを作ってみたい。初心者から!という方はPHPを選ぶ
- プログラミングは多少わかっていて、大人数で早くWebアプリケーションを完成させたいという方はRubyを選ぶ
PHPで大人数アプリケーションを作ることは頻繁どころではなくあるし、Rubyも比較的簡単で初心者向けの言語だ。しかし、無理やりわかりやすくわけるとこのような形だろう。
ぜひ、興味が出たらいずれかの言語で勉強をスタートしてみてほしい。
記事投稿の1年ほど前に知った情報ですが、カカクコム社がRubyを使っているサービスは食べログの方で価格.comは違った(かと言ってPHPでもない)と思います。
ありがとうございます。こちら修正いたします。
仕事で使うBotプログラムを作ってやろうと、最初Javaで始めたんですが、WEBサーバにもDBにも到達せず撃沈。で、PHPに転向しています。いきなりApatchにMySQLが自分のPCにセットアップされて仰天しています。
JavaとかVBとかやってきた初心者として、PHPの変数や配列の扱いは「大丈夫かな?これ」と思うのです。例えば、本一冊分のテキストを一文字づつ又は一単語づつ配列に読み込ませて、処理するなんてできますか?そういうのはさっさとデータベースに渡してしまうって設計ですか?
ご愛読いただきありががとうございます。
設計により、一概には言えませんが、
是非、PHPを駆使してお試しいただけますと幸いです。
(基本的には、処理速度云々として可能です。)
PHPは「Hypertext Preprocessor を再帰的に略したもの」ですよ。
公式リファレンスにそう書かれています。
「PHP とはなんでしょう? 」
http://php.net/manual/ja/intro-whatis.php
いつもご愛読いただきありががとうございます。
また、ご指摘いただきありががとうございます。
PHPが開発された当初は「Personal Home Page」でした。
そして現在は大きなバージョンアップを経て、
「通りすがり様」の仰るとおりの「Hypertext Preprocessor」となりました。
(PHP3から呼ばれるようになりました。)