Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rubyはなぜ楽しいのか? 〜Cと比較してみよう〜

Rubyはなぜ楽しいのか? 〜Cと比較してみよう〜

Rubyが楽しいの感じる理由をCと比較して考えてみました。

Avatar for sasabo

sasabo

June 27, 2020

Other Decks in Programming

Transcript

  1. Hello Worldからの気づいたRubyとCとの違い #include <stdio.h> // 1. printfを使うためのヘッダファイルが必要 int main(void){ //

    2. main関数が必要(printfだけで実行できない) printf("Hello, World\n"); // 3. 行末にはセミコロンが必要 return 0; // 4. 正常終了したら0を返すように返り値が必要 } // 5. (Rubyならendで終わる) Rubyのputs “Hello world” に対してC言語は… C言語に対してRubyのほうがシンプルで簡単にプログラムが書けました。 構文がシンプルで簡単にコードが書ける。 => 自然言語のようにどんどん書ける。 => 楽しい
  2. CとRubyの比較(Hello, Worldの場合) Cの場合 初心者ならこう思う? また呪文がでてきた… 実行まで hello_woldと3回も書いたけどなぜだろ う? 分からないことが多かった… Rubyの場合

    初心者ならこう思う? hello_world.rbがファイル名なので、 ファイル名の前にrubyと書けば実行で きるのかな? なんとなく理解できた! 先程のHello Worldのコードを実行してみましょう! $ gcc hello_world.c -o hello_world $ ./hello_world Hello World $ ruby hello_world.rb Hello world
  3. Hello Worldからの気づいたRubyとCとの違い $ gcc hello_world.c -o hello_world // 1.gccでコンパイルして実行ファイルを作成 $ ./hello_world

    // 2.実行ファイルを実行 Rubyの$ ruby hello_world.rb に対してC言語は… C言語は自分でコードをコンパイルして実行したのに対し、Rubyは自分でコード をコンパイルせずにコードを実行できました。 コンパイルが不要 => コードを書いて実行のサイクルが短くなり、テンポよく進められる。 => 楽しい
  4. RubyとCの比較(配列のループ map vs. for) Rubyの場合 =>mapメソッドで簡単に書ける Cの場合 => 型や配列の要素数を意識したり、事前に twice_numsを用意したり考えることが多い

    nums = [1, 2, 3, 4, 5] twice_nums = nums.map { |num| num * 2 } 配列 nums[1, 2, 3, 4, 5] の各要素を2倍した配列 twice_nums[2, 4, 6, 8, 10] を作るとき int main() { int nums[5] = {1, 2, 3, 4, 5}; int twice_nums[5]; for(int i = 0; i < 5; i++){ twice_nums[i] = nums[i] * 2; } return 0; } 複雑なことを考えずに思った 通りに書ける =>どんどん書ける =>楽しい! どんどん書いていくには経験が必要 => 初心者のうちは難しい => 楽しく感じるまで時間が必要?
  5. まとめ シンプルさを実現するRubyの特徴 • 使いたい関数が含まれるヘッダファイルの記述が不要 • main関数の明記は不要 • 行末にはセミコロンが不要 • 正常時の返り値の記載が不要

    • コンパイル作業が不要 • 変数宣言が不要 • 配列の要素数の宣言が不要 • mapのような便利メソッドがある Rubyを楽しいと思う理由:どんどんコードを書いて実行できるからです。 => Rubyはコンパイル作業が不要 => 構文がシンプルで簡単にコードが書ける