RubyとPHPだと、どちらを習得するべきか

  • URLをコピーしました!
目次

RubyとPHPだと、先に習得するべき言語はどちら

敢えてその2択であれば、Rubyから始めるのが良いでしょう。最終着地点にするべき言語であるかどうかは、最後に何をしたいかに依ってきます。以下に私が思っている2言語についてのざっくりとした所感を述べておきます。

プログラミング言語にはそれぞれ特徴があり、その特徴に応じて使われる分野が広かったり狭かったりします。Ruby、PHPでどちらが敢えて「広い」かと言われればRubyです。

PHPはもともとHTMLの中に動的な要素を埋め込むためのツール的な位置づけで作られました。現在ではその用途で使われることよりも、汎用プログラミング言語的に使われる(WebアプリケーションについてもLaravelやCakePHP等を介してページを生成する)ことが一般的ですが、それでも出自に引きづられてWeb制作やWebアプリケーションの分野に用途が限定・特化している傾向があります。

PHP、WordPress、Rubyのおさらい

PHP (プログラミング言語)

Web制作の現場において、WordPressがPHPで書かれており拡張もそれに沿って記述する必要性からか、非プログラマでもPHPを少し書く、といったことが行われているようです。

WordPress

プログラミング言語ではその言語を用いるユーザ≒コミュニティが有用なライブラリをどの程度安定して供給しているかでユーザ目線での言語の性質も変化します。PHPではその意味でもWeb制作・Webアプリケーション開発に偏っています。

Rubyは当初から汎用プログラミング言語の一種であって、PHPのような特定の問題を解決するツールを目指して開発が開始されていたわけではありません。Rubyはプログラマが「プログラミングを楽しむ」ことができることを重視していることは、よく知られています。

Ruby

RubyがWebアプリケーション開発で現在のようなプレゼンスを発揮しているのは、Ruby on RailsというWebアプリケーションフレームワークの存在が大きいと考えられます。Ruby on Railsの人気が安定していることからWebアプリケーション開発の文脈ではRubyはPHPと同等の記述力、もしくはそれより上(Ruby界隈ではおそらく「上」と思っている人のほうが多いかなと邪推します)を持っていると理解されています。

それに加えて、Rubyは他の用途(日々の雑用スクリプトを含めたバッチ処理、データ分析、mrubyなども含めた知見の応用可能性)においても、活発に利用されています。仕事では他の言語を使用しているが、日々の雑用をこなすスクリプトとしてRubyを愛用している開発者を私も何度も目にしています。

ただし、RubyはWordPress(PHPで記述されています)とはあまりうまく連携しないでしょう。これは「Webページ制作」のような特定の現場ではRubyの占められる領域が少ないことを意味します。

また特に日本においては、Rubyが日本人によって生み出されたこと、現在でもRubyの言語実行環境(の最も代表的なもの、MRI)が日本の開発者によって主に開発されていること、日本語で発信される公式の情報や書籍、ブログ記事が多いことからも、他の言語よりも話を聞く機会が多いと期待されます

プログラミング言語そのものの文法や機能についても、Rubyの方が利用者にとって「自然」と感じる状況は多いと思われます。これはRubyがそもそもそういう目標に基づいて当初から開発されている他、PHPの出自上を考えても仕方ない面があります。

Rubyが例えば東大の1〜2年生のプログラミング入門的な教科で採用された実績があったりするわけですが、ここにPHPを使用するということは個人的な見解ではまずありえません。プログラミングそのもののコンセプトを学ぶという意味でもRubyの方が良い面があると考えられます。

PHPが人気があるのは、例えば上述のWordPressのような実需が多い・以前から多かったから、と予測されます。そこから派生して、プログラミング言語の良し悪しというよりはWeb開発・Webアプリケーションでの「必要」からPHPのエコシステムが拡大していき、開発元がそれに呼応してプログラミング言語を改善し続けた結果として、汎用プログラミング言語と肩を並べるような段階にまで育った、というのが私の理解です。

PHPについて、以前はだいぶセキュリティ上の問題も多く指摘されていたのですが、現在はプログラミング言語本体のその類の問題はだいぶ減ったと聞いています。ただし非プログラマがPHPによる拡張(例えばWordPressプラグイン)を書くといった際の問題は、まだ改善されているとは言い難いようです。

これはPHPというプログラミング言語そのもののせいというよりも、PHPでプログラムを書くことになる経緯(Webページ制作時に期待した機能がないので自分で作る、あるいは公開されているプラグインの類を精査せずに使ってしまう等)の影響が大きいと私は考えます。脆弱性に関するニュースを見る際は、プログラミング言語に起因するものか、その利用者による拡張やエコシステムにまつわるものかは確認すると良いと思われます。

ここまでで2つの言語についての考えを述べました。一方で、そもそも世の中には他にも多数のプログラミング言語があります。それらとの関係を理解せずにこの2つの言語だけで議論して良いのか、という疑問が個人的には浮かびます。

どちらが人気であるかは本来どちらを学ぶべきかとは独立しているべき議論ですが、「人気」に関して見てみるとこれらの2言語について留意しておくべきことがあります。

PHP、Ruby、人気の度合い

この文章を記述している時点でのGitHub上で採用されているプログラミング言語について人気の度合いを見てみることにします。

国内での「劣らぬ人気」といった日本人目線での印象と統計上の結果は異なっています。Rubyの利用される比率がGitHubの基準では急速に下がっていることが見て取れます。より「汎用」であるはずのRubyの方が指標の上で人気衰退の傾向に見えるのは直感に反する、と思われるかもしれませんが、その理由についてはこの回答では考察しません。

(指標そのものに賛否ありますが)TIOBE indexも参考までに掲載しておきます。PHPが8位、Rubyが16位となっています。1年前と比較してRubyはここでも順位を下げています(13->16, PHPは8->8)

TIOBE – The Software Quality Company

プログラミングに関する質問投稿サイトの一種 Stackover Flowにおいて「嫌われている」言語といういやらしいデータが公開されています

What are the Most Disliked Programing Languages? | Stack Overflow

全体の傾向としてですが、PHPもRubyも嫌われているという驚きの結果です。

プログラミング言語というのは言語本体だけでなく、その言語を支える第三者のソフトウェア、ライブラリや論文、言語に関する技術ブログの質・量といった諸要素を総合してはじめて決まります。よってRubyが国際的な指標で相対的に人気が下落しているとか「双方嫌われている」みたいな表面的な記事だけをもって言語の使用に関する議論を終わらせるべきではありません。

特に日本ではRuby on Railsを使用したサービスは多く、需要面で十分なものがありますし、PHPもWordPress, Laravel, CakePHP (本来並列で並べるべきでないものなのですがご容赦ください)などのキーワードはしばしば耳にしますので、開発元が開発を辞める、といったよほどショッキングなことがない限り、仕事として使用する用途が当座消滅するということはないでしょう。職務経歴書に記載して嫌われる、ということも普通はありません 🙂

とはいえ、「PHP」「Ruby」という対比軸が、プログラミング言語を選択する上で最も重要なパートではない可能性も理解していただいた方が良いとは思われます。

最初に「Ruby」と書きましたが、用途や将来の方向性によって、本来は各利用者が最適な言語をより多くの言語から選択するのが正しく、そのための調査も自分の興味のある領域に特化して行うのが良い、というのがより適性な回答かと思われます。

これからプログラミングを学びたい方は、良書と質問できる環境を用意することが大切です。
特に自分の都合の良い時に学べる、世界最大級のオンライン学習プラットホームUdemyがおすすめです。
これから始めたい方はプログラミングを日本語のふりに直したスラスラ読めるRubyふりがなプログラミング [ 高橋征義 ]がわかりやすいです。
PHPの方はこちらスラスラ読める PHPふりがなプログラミング【電子書籍】[ ピクシブ株式会社 ]

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
目次