Rubyの特徴は?
使うメリットは?
RubyとPython、どっちを学べば良いの?
プログラミング初心者が学びやすいと評判な言語「Ruby」。
実際、プログラミングスクールでもよく教えられています。
しかし、これから一生付き合っていくかもしれないプログラミング言語の特徴を知らずに使い始めるのは不安ですよね。
もし学び始めてから自分の想像と違うことに気づいたら、時間を無駄にした気になってしまうでしょう。
この記事では、
「Rubyを学び始めたけど、思ってたのと違った」
ということがないよう「Ruby」の特徴を徹底解説しています。
この記事を読めば、Rubyが他の言語と比べてどんな特徴を持つか理解し、Rubyを学び始めるべきか判断できるようになるでしょう。
- Rubyは日本発の有名な初心者向けプログラミング言語
- 簡潔に書けるオブジェクト指向・スクリプト型言語
- Ruby on Railsを使うことで、Webアプリが劇的に開発し易くなる
- オワコンと言われがちだが、国内の求人はまだ十分ある
1. 「Ruby」とは【日本発のわかりやすいプログラミング言語】
Rubyは1995年、日本人のまつもとゆきひろ氏によって開発されたプログラミング言語です。
日本で開発された言語で初めてIEC国際規格に認証されました。
日本発の言語で最も有名なプログラミング言語と言っても過言ではないでしょう。
ちなみに1990年代はPythonやJava、PHP、JavaScriptなど、現在でも主流となっている言語が開発された歴史的な年代です。
2. Ruby on Railsとは【簡潔なプログラムでアプリを作れる土台】
Rubyを解説するうえで「Ruby on Rails」は外せません。
Ruby on RailsはWebアプリを簡潔な記述で開発するために作られた”フレームワーク”と呼ばれるものです。
フレームワークとは、アプリを作る際に必要となる「登録機能」「ログイン機能」などの機能をあらかじめまとめたものです。
Ruby on Railsという名前からわかる通り、Rubyで開発されたフレームワークで、Rubyを使って中身を編集します。
例えば、
$ rails generate scaffold User name:string email:string
というコマンドだけで登録・表示・編集・削除機能が作れてしまいます。(厳密にはもう少し準備が必要)
現場では、Rubyだけを使って開発するより、Ruby on Railsも使って開発されることの方が圧倒的多いです。
3. Rubyの特徴9選【これだけ理解しておけば大丈夫!】
- 少ない記述量で開発可能
- オブジェクト指向
- スクリプト言語
- Webサービスの開発によく使われる
- 日本発のプログラミング言語
- 日本語のマニュアルが豊富
- オワコンと言われがち
- 求人数は停滞傾向だが母数は十分多い
- スピード感のあるITベンチャーでよく使われる
3.1. 少ない記述量で簡潔に書ける
Rubyは他の言語と比べ、記述量が少ない傾向にあります。
例えば、Pythonだと
class car:
def name(self):
return self.name
と書くプログラムを、Rubyだと
class car
def name
@name
end
と書けます。
文字数としては大差ないですが、Pythonで”self.name”と記述する変数を、Rubyでは”@name”だけで済みます。
簡潔に書けるからといって、必ずしも書きやすく読みやすいわけではないことには注意が必要です。
3.2. オブジェクト指向
Rubyのすべては「オブジェクト」です。
整数(integer)でさえオブジェクトなのです。
その証拠に、下のコードで”1”という数字がIntegerクラスに属していることがわかります。
p 1.class # 返り値:Integer
オブジェクトとは、変数とメソッド(関数)をまとめたものです。
オブジェクト指向は、「継承」「カプセル化」「ポリモーフィズム」の3原則で説明されますが、ここでは割愛します。
3.3. スクリプト言語
スクリプト言語とは、変数に型付けしなくて良く、動的に型付けされる言語のことです。
例えば、C言語だと変数を宣言する際、
int number = 1;
と記述する必要がありますが、Rubyのようなスクリプト言語だと
number = 10
のように、”int”という型宣言が不要になります。
また、実行時にコンパイルを必要としないのもスクリプト言語の特徴の1つです。
C言語・C++などはプログラム実行前にコンパイルでコンピュータが直接実行できる形式に変換してから実行します。
一方Rubyでは、実行時に1行ずつ機械語に翻訳されるので、1ステップで実行できます。
3.4. Webサービスの開発によく使われる
RubyはRuby on Railsというフレームワークを用いて、Webサービスを開発するのによく利用されます。
国内サービスではcookpadや価格.com、全世界ではGitHubやTwitter(当初)など、著名なサービスで実際に使われています。
スマホアプリやAIの開発もできますが、Webサービス開発に特によく利用されています。
3.5. 日本発のプログラミング言語
Rubyは日本人のまつもとゆきひろ氏(通称:Matz)によって設計・開発された言語です。
日本人が開発したプログラミング言語の中で、ダントツで使っている人口が多いです。
まつもとゆきひろ氏がRubyを開発するに至った経緯についての本やインタビューは大変面白いので、ぜひ一度読んでみてください。
3.6. 日本語のマニュアルが豊富
日本人が開発した言語というのもあり、日本語のドキュメントが豊富にあります。
プログラミングにはエラーがつきものですが、エラーを調べても英語の検索結果しか出てこない場合が多々あります。
Rubyはエラー文で検索をかけると、だいたい先人たちが対処法を示してくれているので安心です。
3.7. オワコンと言われがち
Rubyはオワコンと言われがちです。
Googleトレンドの人気度が減少傾向であることが1つの証拠です。
しかし、Rubyは今なおアップデートを続けており、時代の変化に対応し続けています。
また後述するように、求人数はまだまだ多いため、ここ数年で求人がなくなる心配はなさそうです。
3.8. 求人数は停滞傾向だが母数は十分多い
2020年7月にレバテックキャリアで発表された言語別新規正社員エンジニア求人割合によれば、Rubyは5位に位置づけています。
正社員エンジニアの新規求人のうち実に7.42%がRubyに関する求人だったのです。
求人数は停滞傾向とはいえども、安定した需要があるといえます。
3.9. スピード感のあるITベンチャーでよく使われる
スピード重視で開発したいベンチャー企業では、Ruby on Railsが頻繁に用いられるので、Rubyも必然的に使われます。
実際当初のTwitterはRuby on Railsで作られましたし、グノシーやcookpadは初期の頃から今までずっとRuby on Railsを使っています。
4. Ruby・Pythonの目的別比較表【あなたにあった言語はどっち?】
Ruby | Python | |
Webサービスを開発するなら? | 〇 | 〇 |
AI・データサイエンスを扱うなら? | △ | 〇 |
年収が高いのは? | △ | 〇 |
初心者向きなのは? | 〇 | △ |
求人数が多いのは? | △ | 〇 |
今後伸びそうなのは? | △ | 〇 |
フリーランス向きなのは? | 〇 | 〇 |
Pythonの方が”〇”の数が多いので、「Pythonの方がRubyより優れている」と思ってしまうでしょう。
しかし、日本発で日本語の知見が充実しているのもあり、日本国内ではまだ十分使われています。
ですので、当面国内で働こうと思っている方はRubyとPython、どちらを選んでも大差ないでしょう。
ただし、データサイエンティストを目指す人は、Pythonを使うことをおすすめします。
また、海外ではRubyの求人は減少傾向にあるので、海外で働くことを視野に入れている人はPythonを学ぶと良いでしょう。