「将来性を考えると、RubyとGoのどちらを学ぶべきなんだろう?」
Webエンジニアを目指す際には、まずどの言語を学ぶかを決めなければならないため、こういった悩みに直面することは避けられません。
どの言語からキャリアをスタートさせるかというのは、将来性や年収に大きく影響与えるため、慎重に決断すべきです。
特にRubyとGoは、どちらもWeb業界に好まれている言語ですので、どちらを選べばいいのかは非常に悩ましいところでしょう。
そこでこの記事では、そんな疑問を解決するため、以下について解説していきます。
- RubyとGoのメリット・デメリット
- それぞれの言語の平均年収や将来性や求人数
- Rubyに向いている人の特徴
- Goに向いている人の特徴
RubyとGoの特徴を比較
RubyとGoは、ともにWebにおける「バックエンド」の開発に多用される言語です。
バックエンドとは、サーバー内のシステム構築や、データベース設計・構築、サービス開始後の運用や保守といった作業を指します。
それでは、同じバックエンドで使用されるプログラミング言語であるRubyとGoには、どのような違いがあるのでしょうか?
以下にて解説していきます。
Rubyの特徴
Rubyとは、「まつもとゆきひろ」という日本人によって生み出されたオブジェクト指向型のスクリプト言語です。
日本人が開発したプログラミング言語で、ここまで広く使用されているのはRubyのみです。
Rubyの特徴をまとめると以下のようになります。
- スタートアップ系の企業で多く採用されている
- フレームワークがほぼ「Ruby on Rails」に限られる
- デバッグがしやすい
- 実行速度がやや遅い
Rubyのメリット
Rubyの最大のメリットは、なんといってもフレームワークがほぼ「Ruby on Rails」に限られるという点でしょう。
フレームワークとは、WebアプリケーションやWebシステムの開発を効率化するため、あらかじめ必要な機能が用意された枠組みや構造のことです。
そのため、開発を行う際にはプログラミング言語だけでなくフレームワークに関する知識も必要となってきます。
言語によっては多数のフレームワークが存在し、開発現場ごとにフレームワークが異なるというケースは珍しくありません。
その場合は、現場で採用されているフレームワークを都度都度学ばなければならなくなる上、一つのフレームワークを深く学ぶことが困難になってしまいます。
ところがRubyならば、Ruby on Railsを身に付けておけばOKという場合が非常に多いため、Ruby+Ruby on Railsについて深く学ぶことができます。
Rubyのデメリット
プログラミング言語には「コンパイル方式」と「インタプリタ方式」があります。
コードをすべて機械語に変換してから一括で実行
コード実行の際にプログラムを1行ずつ機械語に変換しながら実行
Rubyはインタプリタ方式となります。
そして、1行ずつ変換していくという工程が発生してしまうため、コンパイル方式と比べるとインタプリタ方式の方が実行速度は遅くなってしまいます。
他の言語と比較した場合に処理速度が遅くなってしまうというのが、唯一と言ってもいいほどのデメリットでしょう。
ただ、1行ずつ変換していくのでエラーがその場でわかり、デバッグがしやすいという側面もあります。
Goの特徴
Goとは、Googleが「プログラミング環境を改善」を目的として開発した、シンプルかつ高速な処理が可能なプログラミング言語です。
正式名称は「Go」ですが、「Go言語」・「Golang」と呼ばれることもあります。
Goの特徴をまとめると以下のようになります。
- コードがシンプルで書きやすく可読性も高い
- 処理が高速
- 記述ルールが厳格なため多人数での大規模開発向き
- 比較的新しい言語のため情報量が少ない
Goのメリット
なんと言っても、記述ルールが厳格かつ構文がシンプルであるため、エンジニアごとの癖が出にくく非常に可読性が高い、という点が最も大きなメリットでしょう。
そのためコードは属人性が低く、他人が書いたコードであっても引継ぎがしやすくなっています。
こういった特徴を持つため、大人数で並列的にプログラミングを進めることが可能となっており、大規模な開発にも好んで用いられる言語となっています。
誰が書いても同じようなコードになるため、バグも発生しにくいという点も強みです。
その他、開発において「コンパイルが高速」・「ライブラリが充実している」・「メモリの安全性が確保されている」といったメリットも多く、新人エンジニアでも仕事がしやすいように作られている言語だと言えます。
Goのデメリット
Goのデメリットは、まだ新しい言語であるため学習材料や参考となるドキュメントが少ない、という点です。
シンプルで学びやすい言語ではあるものの、いざエラーにぶつかってしまった時、そのエラーがあまり一般的でないものの場合、解決手段を探すのに苦労することがあるかもしれません。
また、「ルールが厳格であるため例外的な処理ができない」といった自由度の低さから、あまりトリッキーなことができず、経験や発想を生かした特殊な処理を行うコードを書くことができません。
ベテランエンジニアからすると、物足りなさを感じてしまう可能性があります。
それぞれの言語を採用しているサービス
RubyとGoには、前述したようにそれぞれ特性があるため、どういったサービスで採用されているのかが異なります。
Rubyによって作られたサービス例
- クックパッド
- 食べログ
- Airbnb
- クラウドワークス
Rubyは、SNSやマッチング機能を備えたサイト構築に使用される傾向にあります。
また、開発スピードを優先する先鋭的な企業ほど、Rubyを採用する率が高いです。
Goによって作られたサービス例
- YouTube
- メルカリ
- ぐるなび
- DropBox
- Docker
Goは、とにかく処理速度を重視する企業から重宝される傾向にあります。
例えばぐるなびの場合、当初はPHPを採用していましたが、「同一条件でテストした結果、PHPと比較してGoの方が1.5倍ほど高速に稼働することがわかり、Goを採用した」と公式のエンジニアブログで発表しています。
参考記事:ぐるなびにおけるGo言語の活用
難易度の違い
言語習得のための難易度は、「Ruby < Go」となり、Rubyの方が習得しやすいです。
Rubyはインタプリタ方式であり、1行ずつ処理コードを書いていくため、コンパイラ方式であるGoよりもわかりやすく学習が容易となっています。
かつ、Rubyの場合はフレームワークがほぼ「Ruby on Rails」に限られるため、一度身に付ければ環境構築が容易であるというメリットも存在します。
Goも、コンパイラ方式の中ではかなり易しい方ですが、インタプリタ方式であるRubyの学びやすさには及びません。
RubyとGoの将来性や平均年収を比較
バックエンドの言語としてトレンドとなっているRubyとGoですが、将来性についてはどちらに分があるのでしょうか?
求人数・平均年収・将来性に切り分けて見ていきます。
求人件数
求人件数については、圧倒的にRubyが勝っています。
徐々に需要が伸びてきているGoですが、2022年時点ではまだまだ案件数も少ない状態です。
以下、エンジニアの求人に強い「レバテック」のデータです。
Rubyは「8位」に入っていますが、Goは圏外です。
上記画像の「その他」の中に含まれている形でしょう。
また、求人サイト「インディード」でも、RubyとGoのそれぞれの求人を検索してみたところ、以下のような結果となりました。
緑枠が検索ワード、赤枠が求人検索結果の数です。
ご覧の通り、Rubyが59,038件のヒットに対して、Goは42,374件となっています。
その他の求人サイトで検索をかけてみても、すべてRubyの方が求人件数が上で、求人サイトによっては2倍以上の差が開くところもありました。
就職の間口を広げたいということであれば、Rubyに軍配が上がります。
平均年収
2022年6月6日、パーソルキャリア(旧:インテリジェンス)が、日本におけるプログラミング言語別の平均年収ランキングを発表しました。
調査結果は、パーソルキャリアが転職支援サービス「doda」で集めた100万件以上の転職情報を基に算出したそうです。
その結果は以下の通りです。
希少価値の高い「ABAP」や「R」といった言語が上位を占める中、Goは7位にランクインし、平均年収は627万円となっています。
Rubyはランキング圏外(13位以下)でした。
12位が平均年収598万円ですから、今回の調査ではRubyの平均年収は600万円以下であることがわかります。
なお別の調査結果であるTECH Streetのデータによれば、2020年のRubyエンジニアの平均年収データは以下のようになってます。
年代 | Ruby平均年収 |
20代 | 397万円 |
30代 | 520万円 |
40代 | 603万円 |
50代以上 | 585万円 |
40代でやっと600万円に届きますが、平均すると約526万円となります。
年収面では、Goの方頭一つ抜けて上だと言えるでしょう。
それだけ、Goを扱えるエンジニアは重宝されていることになります。
将来性
Rubyは、Ruby on Railsという強力なフレームワークを使って短期間で開発ができるという大きな強みがあります。
インタプリタ言語のため確認や修正が簡単で、開発スピードを速められるというメリットが好まれ、多くのスタートアップ系企業がRubyを採用しています。
スタートアップは今後も一定の割合で出てくるでしょうから、爆発的な伸びはなくとも、言語として衰退していくという可能性は低いでしょう。
対するGoですが、将来性という点ではRubyよりも遥かに明るいと言えます。
将来性を計る指標である「平均年収」が高いですし、処理速度に定評があるGoの採用を考える企業はどんどん増えています。
また、これからは5Gが当たり前の時代になっていくため、高速処理は必要不可欠です。
そんな時に、言語の選択肢としてGoは外せない存在となってくるでしょう。
Rubyに向いている人の特徴
Rubyは、以下のような人に向いています。
スタートアップ系企業に就職したい人
スタートアップはスピードが命です。
よって、開発効率の良いRuby+Ruby on Railsを積極的に採用する企業が多くなっています。
最新の技術や流行に触れる機会が多いスタートアップ系企業で働くことを希望する場合は、Rubyを選択すべきでしょう。
未経験からWebエンジニアへ転職したい人
前述の通り、Rubyは1行ずつ処理コードを書いていく「インタプリタ方式」の言語であるため、学習が比較的容易です。
さらに、フレームワークがほぼ「Ruby on Rails」に限られるため、言語とセットで深く学ぶことができます。
日本発の言語であるため原本が日本語のドキュメントも多く、学習環境も整っています。
またRuby(Ruby on Rails)はWebエンジニアで一番求人数が多いバックエンドエンジニアで最も使用される言語です。
これからWeb系エンジニアになりたい人がWeb業界に参入する上で一番おすすめの言語です。
リモートワークを希望する人
歴史ある言語を採用している企業の中には古い体質の企業もあり、リモートという概念を持たない場合もあります。
しかしRubyを採用している企業には、何事にも柔軟なスタートアップやベンチャーが多いため、勤務体制についても柔軟な対応をしてくれるところが多いです。
Web系企業はSIerに比べてリモートワークしやすいので、出社なしで仕事したい場合にRubyはおすすめです。
Goに向いている人の特徴
Goは、以下のような人に向いています。
年収にこだわる人
仕事に求めるものが「年収」である場合は、高額な案件が多いGoの方がよいでしょう。
Goの案件は増え続けているのに、Goを扱えるエンジニアはまだまだ足りていないため、需要と供給のバランスが崩れており、高い年収を提示してでもエンジニアを確保したいと考えている企業が多いです。
5G主体の時代となるため、Goエンジニアが不足する状態はしばらく続くと思われるので、年収の高止まりが予想されます。
チームで仕事をしたい人
Goには厳格な記述ルールが存在するため、コードが属人化しにくく、チームを組んでの大規模な開発に向いています。
一人で自由気ままにコーディングしていくのではなく、厳しいルールに則り、誰が読んでもわかりやすいというプログラムを書き、チーム内のメンバーで共有していくような仕事の進め方をしたい人に向いています。
自己解決力が高い人
エンジニアにとって自己解決力は必須ですが、Goの場合は特に求められます。
なぜならば、まだ新しい言語のためRubyなどに比べて情報量が少なく、情報を探す力やコミュニティで質問する力が重要になってくるからです。
ググる力が高く、相手が答えたくなるような質問力を持つような人は、挫折することなくGoにおけるスキルを高めていくことができるでしょう。
まとめ:RubyとGoのどちらを選ぶべきかは一概には言えない
以上、RubyとGoについての比較でした。
これまで解説してきました通り、RubyにもGoにもそれぞれの特徴があります。
自分が今どの程度のスキルを持ち、将来どういうエンジニアを目指すのかによって、どちらを選んだ方がいいのかは変わってきます。
ただ、RubyはGoよりも学習しやすいので挫折率が下がりますし、求人数が多く未経験でも就職できる会社が多いので、未経験の方の場合はまずRubyから始めることをお勧めします。
- RubyにもGoにもそれぞれメリットがあり、どちらが優れているということはない
- 将来性がより明るいのはGo
- 未経験の状態から学習しやすいのはRuby
今回はRubyとGoの言語を比較しました。
このほかにもRubyとPHP、RubyとPythonを比較した記事を作成しました。ぜひこちらの記事もあわせてご覧ください。