未経験からITエンジニア(バックエンドエンジニア)になりたいけど、どの言語を勉強すればいいかわからない…
上記のようにお悩みではありませんか?
バックエンドエンジニアになるために最初に学ぶおすすめ言語は、
- PHP
- Ruby
- Python
の3つのどれかです。
しかしそれぞれメリットとデメリットがあり、この3つのうちどれを選べばよいかわからない…という方は多いかと思います。
実際、人それぞれ意見が分かれるところなので、ある人はRubyをおすすめしていても別の人はPHPやPythonをおすすめしている、ということがよくあります。
そこで本記事では、自身も未経験からITエンジニア転職を目指している筆者が、PHP、Ruby、Pythonを徹底的に調査・比較してまいりました。
その調査結果をもとに、言語を選ぶ判断基準を客観的にご紹介します。
PHP・Ruby・Pythonを項目別に徹底比較してみた
情報を整理するために、
- 基本情報
- Webフレームワーク(Laravel・Rails・Django)
- 求人数と年収
- 将来性
の4項目に分けて比較していきます。
プログラミング言語の基本情報
PHP | Ruby | Python | |
---|---|---|---|
開発および発表年 | 1994年生まれ。 1995年6月8日発表。 | 1993年2月24日生まれ。 1995年12月発表。 | 1990年生まれ。 1991年発表。 |
開発者 | ラスマス・ラードフ (デンマーク系カナダ人のプログラマ) | まつもと ゆきひろ (日本のソフトウェア技術者) | グイド・ヴァンロッサム (オランダ出身アメリカ在住のプログラマ) |
開発された目的 | ダイナミックなWebページ開発 | オブジェクト志向に基づいたプログラミング | 高い生産性と、読みやすいコード |
代表的なサービス | WordPress、Facebook、Wikipedia、Slack、ぐるなび、ココナラ、Drupal | Twitter、Hulu、価格.com、食べログ、クックパッド、クラウドワークス、グノシー、Airbnb | Google、YouTube、Instagram、Pinterest、PayPal、Dropbox、Reddit、Anki、Quora、Spotify、日経電子版 |
PHPは、世界で40%以上のサイトで使われている「WordPress」を構成していることから、Webサイト開発において圧倒的なシェア率を誇っています。
よく「PHPは古い」という意見がネット上で見られますが、発表時期だけでいえばPythonが最も古く、Rubyともさほど変わらないため、そういった主観的な意見に惑わされるのはやめましょう。
Rubyは、日本の技術者であるまつもとさんが作ったことから、日本語での解説書が多く日本人にとってとっつきやすい言語です。
Pythonは、コードがとにかくシンプルで可読性が高く、また機械学習のライブラリが充実しているため、特に海外で抜群の人気を誇っている言語です。最近は国内の人気も高まってきました。
Rubyで作られたシステムは徐々に他の言語に移行されつつある
実はTwitterのバックエンドシステムが、2011年の時点でRuby on RailsからJavaVMに移行しています。
これはTwitterの膨大化したアクセスを、より高速にさばくための変更です。
参考:『Twitterが、Ruby on RailsからJavaVMへ移行する理由』
PHPにはWordPress、Pythonには機械学習ライブラリ(Numpy · pandas · matplotlib・· scikit-learnなど)の充実といった圧倒的な強みがありますが、Rubyにそこまでの強みはありません。
よって2000年代に入ってから登場したGo言語やScalaなどに移行されるケースは、今後も増えると予想されています。
しかし、詳細は後述しますが、現時点ではRubyを好んで使うベンチャー企業は非常に多く、単価の高い案件もあります。なのでそこまで心配する必要はありません。
また、たとえば「簡単なToDoアプリの作成」においては、Rubyが圧倒的にコードの記述量が少なく生産性は最も高いです。
そのため、生産性をより重視する現場ではRubyが選択されるケースもまだ存在していますし、これからも一定数あると見込めます。
参考:『どれ使うべき?3大WebフレームワークRails・Django・Laravelを徹底比較してみた』
Webフレームワーク(Laravel・Rails・Django)
Webフレームワークとは、Webアプリケーションを構築するための土台となる共通機能(たとえばデータベース管理機能、セッション管理機能、ユーザー認証やアクセス制御などのセキュリティに関する機能、Webテンプレート生成機能など)をまとめて提供してくれるものです。
それぞれの言語に対して、
- PHP…Laravel、Symfony、CakePHP、CodeIgniter、FuelPHP
- Ruby…Ruby on Rails、Sinatra、HANAMI、Ramaze
- Python…Django、Flask、Bottle、Tornado
といったフレームワークが多数存在しますが、これらの中でも特に「フルスタックフレームワーク」と呼ばれる、Webアプリ開発に必要な機能をひと通り備えているフレームワークである
- Laravel
- Ruby on Rails
- Django
以上3つについて比較していきます。
発表年やトレンド
- Laravel…2011年6月
- Ruby on Rails…2005年12月13日
- Django…2005年7月21日
2005~2007年頃は、Google検索数でRuby on Railsの圧勝でした。当時これほどまでに充実していたWebフレームワークが他になかったからです。
しかし徐々にLaravelやDjangoが盛り返し、2017年を境に人気度が逆転しています。これらの背景にはAIや機械学習のブームなどがあります。
プログラマーのためのQ&AサイトであるStack Overflow内でのトレンドも、2017年を境に人気度が逆転しています。
これらのデータを一言でまとめるならば…
成熟したRuby on Rails、安定のDjango、伸びているLaravel
と言えるでしょう。
Ruby on Rails VS Django
Ruby on Railsは、短いコードでたくさんのファイルを自動的に生成してくれるため、慣れれば高速にWebアプリを開発することができます。また日本語のドキュメントが多いため、日本人にとって学習しやすいのが大きな利点です。
一方で、制約が多いので覚えるのに時間がかかったり、コードが抽象的になりやすくエラーに対処しづらかったりするなどのデメリットもあります。
対してDjangoは、シンプルな作りなので記述コード量は増えますが可読性が高く、エラーに対処しやすいというメリットがあります。海外の情報は多いため、英語が読めたりDeepL翻訳を駆使したりすれば困ることはまずないでしょう。
またDjangoのプログラミング言語であるPythonの人気が年々高まり続けていることから、(特に科学技術計算、AI や機械学習、画像処理などと Web アプリケーションを連携させようとした場合に)Djangoを選択するケースが増えてきているため、将来的にAI分野に参入していきたい人はDjangoを学んでおくと良いでしょう。
Laravel
Laravelは国内外問わず現在もっとも人気のあるPHPのWebフレームワークです。
Webフレームワークの中では後発で、アップデート頻度も高いため今後も機能の充実が期待できます。
自由度がとても高いことと、AWSとの連携が容易であることも人気の理由の一つです。
三大フレームワークすべて、paizaラーニングで環境構築なしに学ぶことができるため、実際やってみて肌に合うものを選んでもいいでしょう。
追記:学習教材の有無や質
実はプログラミング言語自体ではなくWebフレームワークの勉強が難しいことがほとんどであり、そういう観点から見ると
いかにRails・Laravel・Djangoの学習教材が充実しているか
というのは、重要な指標になります。
そしてこれを最重要視した場合、最も優れているのは「Ruby on Rails」になるでしょう。
Railsには定番中の定番である「Railsチュートリアル」という教材があります。1,000円前後で購入できますので、気になる方はぜひご参考ください。
Laravelは英語ができるのであれば「Laracasts」が、DjangoはUdemy
求人数と年収
それぞれのプログラミング言語の求人数を、色んな媒体で調べたものを表にまとめます。
媒体 | PHP・Laravel | Ruby on Rails | Python・Django |
---|---|---|---|
Wantedly(中途/新着) | PHP:16,960件、Laravel:4,899件 | Ruby:13,333件、Rails:7,322件 | Python:13,061件、Django:1,098件 |
レバテックキャリア | PHP:3,162件、Laravel:582件 | Ruby:2,001件、Rails:943件 | Python:2,815件、Django:222件 |
Indeed | PHP:82,108 件、Laravel:11,908 件 | Ruby:34,651 件、Rails:10,619 件 | Python:59,977 件、Django:3,403 件 |
どの媒体でもPHPおよびLaravelの求人数は圧倒的でした。PHPはWeb界隈で利用されてきた歴史が長いため、当然といえば当然の結果です。
実際、Webサイトのサーバーサイドで使われているプログラミング言語としては、PHPは77.7%という高いシェアを誇ります。
参照:『W3Techs – World Wide Web Technology Surveys』
一方、Rubyも全盛期よりは衰えてはいるものの、未だ求人数は多いです。Pythonは近年の機械学習ブームで求人数が急増しましたが、Djangoを使ったWebアプリケーション開発はまだ浸透しきっていないように感じます。
求人数はPHPの勝ち。では年収は?
上から順に
- 2018年にビズリーチから発表されたデータ
- 2021年に侍エンジニアが発表したデータ
- レバテックキャリアのデータ
の3つを参照させていただきました。
順位 | 言語 | 年収中央値(万円) | 最大提示年収(万円) | 求人数(件) |
---|---|---|---|---|
3位 | Python | 575.1 | 1,499 | 9,344 |
7位 | Ruby | 550 | 1,200 | 11,676 |
順位 | 言語 | 正社員の平均年収 |
---|---|---|
6位 | Python | 608万円 |
10位 | PHP | 545万円 |
正社員の年収としては機械学習が強みのPythonが1位ではあるものの、フリーランスの年収としては生産性が強みのRubyが1位なのが面白いところです。
PHPは、職に困ることはなさそうですが、経験者が多いため需要と供給の関係で単価が安くなりがちな傾向にあると言えます。
言語の将来性
プログラミング言語の世界的な人気度がわかるTIOBEのデータによると、2022年3月の順位は以下のようになっています。
Ranking | Programming Language | Ratings | Change |
---|---|---|---|
1 | Python | 14.26% | +3.95% |
8 | PHP | 1.92% | -0.15% |
16 | Ruby | 0.66% | -0.52% |
PythonとPHPの人気度の推移は、以下の画像の通りです。
Rubyは、Railsが発表された直後の2006年に世界1位を記録していますが、それ以降は高くも低くもない順位にとどまっています。
ただしQ-successが発表したデータによると、RubyのWebのサーバーサイドで使用されている割合が、ここ1年で4.5%→6.0%に増加していることから、世界的に見てもまだ需要はあるといえます。
Pythonのシェア率が低いのが気になりますが、そもそもPythonはWebだけではなくAI・機械学習・IoTなどの別分野でも活躍できるのが大きなメリットなので、Webというくくりだけで見ないのが得策です。
PythonとPHPの将来性は?
Pythonは、近年のAIブームやプログラミング教育の組込みに支えられている影響もあり、将来有望です。
しかし、機械学習では大量のデータを処理するため速度や省資源化が重要であり、Rustの様なC系よりかは簡易だけどコンパイル系で速度が速い言語に立場を脅かされる可能性は十分にあります。
対してPHPは、Webサイトで未だシェアが増え続けているWordPressが栄え続ける限り、絶えることはないと断言できます。
「確実な将来性」という観点ではPHPに、「希望的観測的な将来性」という観点ではPythonに軍配が上がるでしょう。
その他「難易度」「速度」「学習コスト」に関しては、3つともメジャーな動的型付け言語という点で共通しているため、それほど大きな差はないと言えます。
学習については、Youtubeで20分以上&今年以内にチェックを付け、「言語(またはWebフレームワーク) clone app」で調べると、海外の質の高い教材を見つけることができますので、ぜひご参考ください。
PHP・Ruby・Pythonの特徴を主観と客観を交えて解説
以上のデータを踏まえ、PHP・Ruby・Pythonの強みや弱みを改めてまとめておきたいと思います。
PHPの強み弱み
元々PHPはプログラミング言語と言えるものではなく、単にテンプレート的な処理を行うための言語だったため、<?php ?>などの少しゴチャっとした書き方が残っています。
しかし度重なる機能追加やLaravelなどの優秀なWebフレームワークの登場により、PHPは求人数・将来性ともに文句のない人気言語の一つとなりました。
特に「Webサイトの開発がしたい」という方は、WordPressを扱えるPHPを選ぶようにしましょう。
またソーシャルゲーム業界では、PHPがよく使われているという伝統的な風習があります。
Rubyの強み弱み
Rubyはこれら3つの言語の中で最もオブジェクト指向が強く、生産性の高い言語と言われています。また日本人が作ったプログラミング言語ということもあり、日本人プログラマーからの支持が厚いです。
一方で海外では、Rubyから他の言語に移行している現実があります。またコード量が少なくていい分、シンプルさに欠けるため、初心者のうちだとエラー対処に困るなどのデメリットもあります。
「システム開発のスピードを重視するベンチャーやスタートアップ企業に就職したい」という方は、Rubyエンジニアを目指しましょう。
Pythonの強み弱み
PythonはC言語などと比べれば実行速度は劣りますが、それでもたとえばInstagramではPythonとDjangoを採用しています。
その理由を次のように述べています。
「Instagram のボトルネックは開発速度です。コードの実行速度ではありません。」
Pythonはコードが非常にシンプルなプログラミング言語なので、誰が書いても同じようなコードになりやすいです。
一見デメリットのように感じますが、「人によってコードの癖がでづらいため、大人数の開発に向いている」と捉えることもできます。現にPythonはGoogleやYouTubeで採用されているため、大規模開発に向いていると言えるでしょう。
「シンプルなコードが書けるようになりたい」「将来機械学習の分野に携わりたい」という方は、PythonとDjangoを勉強するようにしましょう。
Pythonは競プロやデータ分析コンペにもおすすめ
AtCoderなどの競技プログラミングでは、C++の次にPythonがよく使われているため、Pythonでの解説は多いです。
また世界的なデータ分析のコンペティションであるkaggleでは、ほぼ全員がPythonを使っています。
筆者のウチダもAtCoderやkaggleは触っていますが、結構楽しいですよ。
競プロやデータ分析コンペに興味がある人は、Pythonから始めてみると色々スムーズに事が進むと思います。
まとめ:どれを選んでも良し!好きな一つを極めて仕事につなげよう
- 若干の差はあれど、どれを選んでも仕事に困ることはない。
- Webサイト開発がしたい人はPHP、システム開発のスピードを重視した現場で働きたい人はRuby、シンプルなコードが書きたいor機械学習に携わりたい人はPythonを選んでおけばOK。
- 3つすべてではなく、どれか1つを極めよう。
まずはプログラミング言語を一つ極めることが、エンジニアとしての能力を高め次のプログラミング言語の習得を容易にします。
本記事を参考に、自分の気に入ったプログラミング言語を極め、バックエンドエンジニアとしてのキャリアをスタートさせましょう!
PHP、Ruby、Pythonを使ったWebアプリケーション開発が学べるおすすめのプログラミングスクールは、「Tech Academy」と「侍エンジニア」の2つです。
両スクールともに無料体験を実施しているため、「独学だときつい」「なるべく早くITエンジニアになりたい」と感じている方は、以下のボタンからぜひお気軽にお問い合わせください。
\今すぐ無料体験を受けてみる/
詳細記事はこちらから>>『テックアカデミー(TechAcademy)ってひどいの?評判・料金・費用を徹底解説』
\最短1ヶ月でITエンジニアに/
詳細記事はこちらから>>『SAMURAI ENGINEER(旧侍エンジニア塾)の炎上を徹底解説!【今もやばい?口コミ多数あり】』
コメントを残す