Rubyプログラミングの基礎【現役エンジニアがわかりやすく解説】

PROGRAM

Rubyプログラミングの基礎を知りたい方に。

この記事を読まれている方は、

  • Rubyのプログラミングがどんなものか知りたい
  • Ruby言語の簡単な書き方が知りたい
  • Rubyが使われる場面を知りたい

おそらくこのように考えている方が多いと思います。

この記事を書いている私は、
プログラミング未経験から転職を果たした現役のWeb系エンジニアです。
エンジニア歴は3年ですが、本業とは別にフリーランスの副業で月10万円ほど、多いときで20万円ほどの収入があります。

この記事では、現役のエンジニアが、Rubyプログラミングの基礎を解説しています。

プログラミング言語のRubyの特徴

プログラミング言語のRubyの特徴

Rubyはプログラミング言語のひとつで、動的型付けのスクリプト言語で、オブジェクト指向型の言語です。

動的型付けとは、簡単に言うと、データを文字列型や数値型、論理型などに分ける必要がないということです。

スクリプト言語とは、プログラム実行前にコンパイルという、書いたプログラム文を中間言語に変換する作業の必要がない言語のことで、書いた後はすぐにプログラムを実行することができる言語のことです。

一方、スクリプト言語と対をなすコンパイル言語とは、プログラムの実行前に、開発者の方でコンパイラーを使って構文チェックなどをしたうえで中間言語に変換しないと動作しない言語のことです。

一般に、スクリプト言語は、処理速度がコンパイル言語に比べて遅くなります。速度が求められる処理では、コンパイル言語が使用されることが多いです。
Rubyの速度の目安としては、PHPやPythonよりも遅いというイメージです。

オブジェクト指向型言語とは、オブジェクトという概念を持つ言語のことで、簡単に言うと、データ構造として、配列や構造体に加えて、オブジェクト(クラス)があるということです。
オブジェクトのおかげで、ソースコードのメンテナンスがしやすかったり、機能の流用ができます。

Rubyの良さとして、動的型付けのスクリプト言語のため、比較的簡単にプログラムを組み、実行することが挙げられます。
そして何より、Rubyを使う最大のメリットとしては、一世を風靡したRuby on RailsというMVCフレームワークの存在でしょう。

Ruby on Railsでは、世界中の方々が開発したgemと呼ばれるライブラリを使って、高速開発を行うことができ、工数を大幅に削減することができます。(もちろん型どおりであればの話ですが…)

また、Ruby言語の開発者が日本人であるということから、日本語での情報が多く、日本人が開発を行いやすいというメリットもあります。

統合開発環境(IDE)に関しては、RubyMineというIDEがありますが、今はAtomなどのエディタも充実しているので、どちらでも自分の使いやすい方を使われると良いと思います。IDEのメリットは、プロジェクトの管理やデバッグが行いやすいなどが挙げられます。

Rubyの用途

Rubyの用途

Rubyは動的型付けのスクリプト言語ということもあり、さほど速度が重視されない開発で利用される言語です。

Rubyが採用される理由の多くは、MVCフレームワークであるRuby on Railsが使えるからであると思います。
ただし、最近はPHPにもLaravel、PythonにはDjangoというMVCフレームワークが登場しているので、どうしてもRubyでなくてはならないということはあまりなくなってきているように感じます。

Rubyはスクリプト言語ではありますが、初心者にはやはりPHPの学習をオススメします。

記述のしやすさや学習のしやすさはRubyもたいして変わらないのですが、PHPの方がシェアが高く、レンタルサーバーでも容易に誰でも動かすことができるので、「動かしやすさ」という点でPHPに劣っているからです。

ただし、MVCフレームワークの学習をされたい方は、この限りではありません。むしろ他の言語よりもサンプルが多いので、Ruby on Railsで学習されるのが良いのではないかと思います。

Rubyの書き方

Rubyの書き方

ここでは簡単に書き方を少しだけ紹介します。実際に始める気になったら、ぜひ参考書などの教材を参考にして、試してみて下さい。

Hello World!を画面に出力する

まずはお決まりのHello World!という文字列を画面に出力する方法から。

print "Hello World!"

これで出力することができます。
C言語やJavaなどとは異なり、main関数を書かなければ動かないということはなく、いきなりそのまま命令文を書くことができます。クラスもなしで動くので、オブジェクト指向は強制されていません。

コンパイル言語とは異なり、スクリプト言語であるRubyはコードを書いて保存すれば、すぐにでもプログラムを実行することができます。

変数宣言と分岐処理

次は少し踏み込んで、変数宣言と分岐処理をしてみます。

age = 19;
if age < 20
    print "未成年";
else
    print "成人";
end

上記の例では、まずageという数値型の変数を作り、その中に19という数値を入れています。
次にageが20未満であれば”未成年”という文字列を、それ以外であれば”成人”という文字列を出力するような分岐処理をしています。

配列と繰返処理

続いて、配列の使い方と繰返処理について、解説します。

ここでは配列を作って、以下のようにデータを出力することにしましょう。

佐藤,田中,小林

これを出力するコードは以下です。

students = ['佐藤', '田中', '小林']

for index in 0..students.length-1 do
   print students[index]
  if index < students.length-1
      print ","
  end
end

上記の例では、まず配列studentsに「佐藤」「田中」「小林」の3つの文字列を格納しています。
その後、数値型の変数index(カウンタ用途)を0に初期セットし、配列studentsの要素の数に到達するまでループでindexを1ずつ増やしてまわしていきます。その際に、print関数を使い、配列studentsのindex番目の要素の値を出力し、最後の要素以外、その後に「,(カンマ)」を出力しています。

構造体の取り扱い

最後に構造体の取り扱い方法について解説します。

ここではエクセルのようなデータを作って、以下のようにデータを出力することにしましょう。

名前:佐藤,性別:男性
名前:田中,性別:女性
名前:小林,性別:女性

これを出力するコードは以下です。

first_row = {"A":"佐藤","B":"男性"}
second_row = {"A":"田中","B":"女性"}
third_row = {"A":"小林","B":"女性"}
excel_data = [first_row, second_row, third_row]

for index in 0..excel_data.length-1 do
   print "名前:"+excel_data[index][:A]
   print ","
   puts "性別:"+excel_data[index][:B]
end

上記の例では、まずfirst_row, second_row, third_rowという3つの連想配列を作り、それぞれのAというキー(列)に名前を、Bのキーに性別の値を入れていきます。
そして、それら全てをexcel_dataという配列に入れます。
その後、数値型の変数index(カウンタ用途)を0に初期セットし、配列excel_dataの要素の数に到達するまでループでindexを1ずつ増やしてまわしていきます。その際に、print関数を使い、配列excel_dataのindex番目の要素の中のA列とB列の値を出力しています。

まとめ:Rubyは心強いフレームワークがあり、高速開発ができる言語

まとめ:Rubyは心強いフレームワークがあり、高速開発ができる言語

Rubyの良さを簡単にまとめると、以下のとおりです。

  • コードが書きやすい ← 書き方がシンプル
  • すぐに実行できる ← スクリプト言語
  • 高速開発ができる ← フレームワークのRuby on Rails

つまり、Ruby on Railsのおかげで開発が楽にかつ高速に行うことができ、型どおりのWebシステムであればあっという間に作れてしまうということです。

トレンドとしては、最近は少し失速気味な気がしますが、既にRubyのフレームワークで作られてしまったサービスも数が多いため、しばらくは安定して使える言語なのではないかと思います。

Rubyは独学が十分可能な言語ですが、Ruby on Railsも学ぼうとすると少しハードルが高くなるかもしれません。もし独学でできなさそうな方は、プログラミングスクールも手段の一つに入れると良いと思います。