見出し画像

【Ruby】見るだけで理解する!プログラミング言語 Ruby

なぜ Ruby を学ぶのか

今回は Ruby というプログラミング言語を学んでいきます。

Ruby は1995年に発表された日本発祥のプログラミング言語です。名前は聞いたことある方は多いではないでしょうか。よくある質問として「Python とどっちが良いの?」と聞かれます。その答えは Ruby 作者の言葉を引用するにつきます。

Ruby には Perl や Python とは決定的に違う点があり、それこそが Ruby の存在価値なのです。それは「楽しさ」です。私の知る限り、Ruby ほど「楽しさ」について焦点を当てている言語は他にありません。

Ruby は純粋に楽しみのために設計され、言語を作る人、使う人、学ぶ人すべてが楽しめることを目的としています。

しかし、ただ単に楽しいだけではありません。Ruby は実用性も十分です。実用性がなければ楽しめないではありませんか。

— まつもとゆきひろ、Ruby プログラミング入門 まえがき 監修者よりのページ

Ruby は言語の設計思想として、利用者がストレスなく楽しんで書けるようにと設計されています。実際、私も Ruby を利用しはじめて5年以上経ちますが、ストレスなく楽しんで書けています。

また、Ruby には Ruby on Rails という世界的に普及している Web アプリケーションを作るためのフレームワークがあります。GitHub, Twitter や Airbnb なども Ruby on Rails で作成されています。そして、日本でも Cookpad, SmartHR など Rails を使って Web アプリケーションを作成している企業はたくさんあります。一度 Ruby を学ぶと、日本はもちろん世界でも活躍できるエンジニアになれます。

まだプログラミング未経験で、これから楽しく Web アプリケーションを作りたい人であれば、Ruby は最適な言語なので自信を持って学んでいきましょう。

文字の表示

まず、chaper1.rb というファイルを作成します。

puts 'hello!' と書いて、保存をします。保存をした後に、ruby hello.rb を実行すると作成した ruby ファイルを実行することになり、コンソールに hello! と表示されます。puts というのは Ruby が用意している関数で、引数に指定したものを出力させる関数です。

   puts 'hello!'
   $ ruby chapter1.rb
   
   hello!

計算結果の表示

Ruby に計算をさせることも可能です。

puts 1 + 1 であったり、 256 * 256 といった計算をさせることができます。

   puts 1 + 1
   puts 256 * 256
   $ ruby chapter1.rb
   
   2
   65536

パソコン一台あって ruby ファイルがあれば、小学生が解くような課題も ruby に計算させることができるということですね。

変数の使用

では、次は変数を使ってみます。以下のように書いてファイルを保存し、実行してみてください。

   one = 1
   
   puts one + one
   ruby chapter1.rb
   
   2

変数の何が便利かというと、一回定義すると使いまわせるところです。

   two = 2
   
   puts two * 50
   puts two / 2
   puts "数値を出力します: #{two}"
   ruby chapter1.rb
   
   100
   1
   数値を出力します: 2

ちなみに変数には種類があります。ここではローカル変数とインスタンス変数を紹介します。頭に何もつけずに定義するとローカル変数、頭に@マークをつけるとローカル変数になります。現時点では、インスタンス変数の方がちょっと強い変数だとだけ覚えておきましょう。

   three = 3
   @three = 3
   
   puts three
   puts @three
   ruby chapter1.rb
   
   3
   3

関数の使用

次に関数の紹介をします。先ほど紹介した puts という関数は ruby が用意している関数ですが、関数は自分で自由に作成することができます。

   one = 1
   
   def increment
     one + 1
   end
   
   puts increment
   ruby chapter1.rb
   
   2

関数は最後にかっこをつけて引数を受け取ることもできます。

   def increment(num)
     num + 1
   end
   
   number = 5
   
   puts increment(number)
  ruby chapter1.rb
   
  6

クラスを定義する

では、最後にクラスの説明です。クラスは現実世界をシステムに落とし込むための設計書です。クラスの中には現実世界の登場人物の振る舞いや属性を関数として定義します。

   class Human
     def greet
      puts '挨拶をしました。'
     end
   
     def catch
       puts '捕まえました。'
     end
   
     def release
       puts '逃しました。'
     end
   end
   
   me = Human.new
   
   me.greet
   me.catch
   me.release
   ruby chapter1.rb
   
   挨拶をしました。
   捕まえました。
   逃しました。

では、魚釣りの結果を記録するアプリケーションをイメージしてください。その場合、どのようなクラスになるか考えてみましょう。

   class Fish
     def name
       '魚'
     end
   end
   
   class Human
     def chatch(target_name)
       puts "#{target_name}を捕まえました。データベースのカウントをプラス1します。"
     end
   
     def release(target_name)
       puts '#{target_name}を逃しました。データベースのカウントをマイナス1します。'
     end
   end
   
   me = Human.new
   
   fish = Fish.new
   fish_name = fish.name
   
   me.catch(fish_name)
   me.catch(fish_name)
   me.release(fish_name)
   ruby chapter1.rb
   
   魚を捕まえました。データベースのカウントをプラス1します。
   魚を捕まえました。データベースのカウントをプラス1します。
   魚を逃しました。データベースのカウントをマイナス1します。

現実世界にある人や魚などの実態はクラスとして定義することができます。そして、それぞれどのような振る舞いを持っているのだろうか?と考え、クラスの中に振る舞いを関数で定義します。そして、例えば、その振る舞いの中でデータベースの更新をする処理を加えれば、普段私たちが扱っているアプリケーションのようになります。

エンジニアは現実世界からクラスと振る舞いの設計をし、コードに落とし込んだ上でそれを使いこなし、アプリケーションとして動作させています。

便利リンク

学習する上でオススメのガイドへのリンクを貼っておきます。

興味のある人は見てください。

RubyとRailsの学習ガイド

記事が良いと思ったらサポートをお願いします!