RikuPikuの日記

HappinessChainでのことをお話します

初めて別の言語を学習した所感

僕はいままでJavascript(以下:js)しか触ってこなかったのですが、HCの課題でRubyを学習したので所感を綴ります! 特に前記事の続きとかでもないので、興味ある方だけ見ていってください。 前記事はこちら→

rikupiku.hatenablog.com

使用した教材

用いた教材はプロを目指す人のためのRuby入門[改訂2版] (通称:チェリー本)です。 https://amzn.asia/d/35n01yu

Rubyの言語仕様からテスト駆動開発デバッグ技法まで幅広く学習することができます。

感想

さっそく感想です。簡単に言えばjsを事前に触っていたおかげで学習をスムーズに進め、おおまかに理解することができたに尽きます。
これでは記事が短すぎるので少し深掘りします。

Ruby特有の記述が気持ち悪かったが、学習後だと有り難みが分かる。

Rubyには"ブロック"という概念があり、これはjsには存在しませんでした。
ブロックというのはメソッドの引数として渡すことのできる処理の塊のようなものですが、これの記述方法がなんか...気持ち悪かったんですよね〜。
例えばjsのループ処理

const array = [1, 2, 3 ,4 ,5];
let sum = 0;
for(let i = 0; i < array.length; i++){
  sum += array[i]
};
console.log(sum)
// sum = 15

対してRubyのループ処理

array = [1, 2, 3, 4, 5]
sum = 0

array.each do | n | 
  sum += n
end
puts sum 
#  sum = 15

初めは|(パイプ)とかdo / endとか変数/定数の宣言がなかったりただ違和感だらけでしたが、 いや〜改めて見るとrubyの方が分かりやすいですね・・・!
学習中はそうでもなかったのですが、学習後にコードを見てみると明らかにjsより可読性が高いと思いました。
rubyの処理方法はdo 後の| "n" | にarrayをひとずつ つっこんでいって、 sum に加算してます。jsのmapメソッドとかも似たような挙動ですね!

%記法とかいう滅茶苦茶便利やヤツが居る

%記法を使えば配列をパパッとつくれちゃいます。

array = %w!10 20 30 40!
puts array
# 10
# 20
# 30
# 40

クリーンコードを意識すると多用するのはあまりよろしくなさそうですが、これだけで配列できちゃうの面白くないですか・・・?

ガワが違うが処理が同じなメソッドが多数ある

例えば先ほどの配列の要素数を取得しようと思います。

puts array.length
# 4

僕はjsやっていたので要素数 = lengthなのですが、rubyではsizeでも取得できます。しかも処理内容はlengthと全く一緒なのです。

puts array.size
# 4

他にもこのようなメソッドがたくさんあるので、他の言語開発者も参入しやすい・直感的に記述できるのが「rubyは楽しい言語」と言われている所以でもあるのかなと思ったりしました。

おわりに

他にもclassとかhashとかで思ったことは多々あるのですが、執筆に時間の確保することが難しいのでこのくらいにしておきます(汗)
あとは、Rubyは日本製というのもあってコミュニティが盛んです。僕の住んでる長野県でもRubykaigi 2023があったりするそうです。
もう早割終わっちゃたので参加は断念しますが、こういうところから人脈構成や知見を得やすいのでそういう面でもRubyを学習することはいいことですね!

profile: Twitter:ヲタクのTwitterです。https://twitter.com/RikuPiku_
Qiita:こっちは真面目です。https://qiita.com/Riku_dazo