-- Views
December 08, 25
スライド概要
2025/12/07 に開催された「Okhotsk DEW Community IT交流・勉強会@網走」で発表した資料です。
気になりつつも触れてくることのなかった Ruby 言語を、この勉強会の主催者が Ruby に親しんでらしているのを機会にして、普段は Swift 言語を中心に扱っている自分もいよいよ初めての Ruby 入門を果たしてみることにしました。そのファーストインプレッションを紹介してみる試みの資料です。
正統派趣味人プログラマー。プログラミングとは幼馴染です。
Ruby に 入門してみた話 熊谷友宏 @es̲kumagai 2025/12/07 … DEW Community IT交流・勉強会@網走
▶︎ ▶︎ ▶︎ ▶︎ 熊谷 友宏 Tomohiro Kumagai Swift 言語が好み みんなで楽しむ勉強会が好み プログラミングの楽しさを伝えていきたい 同人誌即売会への出展に夢中
近況 & 活動
近況 & 活動 同人誌即売会 コミックマーケット 107 2025/12/31 @ 東京・ビッグサイト AIR旅チケット2 in セントレア 2026/03/07 @ 愛知・中部国際空港 技術書典20(未定) 2026/04/吉日 @ 東京・池袋?
▶︎ ▶︎ ▶︎ ▶︎ 近況 & 活動 熊谷さんのやさしい Swift 勉強会 2021/07/14 〜 2025/11/30 まで開催 株式会社ゆめみさんの社内勉強会 全602回 を完遂 • • 片岡さん(社長)の「業界に貢献したい」を受けて一般公開を開始 アクセンチュアへの移行により開催終了 習慣化の価値を実感した コードレビューをする中で、言語の 基礎は実務でも重要 と知った • レビューを通して基礎を教えていけたら楽しそう(需要あります?) 自分の YouTube チャンネルで、2025/12/03 より 「やさしい Swift 勉強会 * SEASON 2」としてリスタート
今日、訪問までの経緯
▶︎ 訪問までの経緯 気になった。 2025/07/26 TechRAMEN 2025 Conference での発表のひとコマ ただ、すこし 遠いな …? ないならつくる ̶ を実現できる精神が素敵。これは訪れたい。
訪問までの経緯 決まった。 2025/10/26 千歳ゆるい勉強会 vol.6 での発表のひとコマ 「5時間ほど電車に乗っていれば着きますから」 なるほど …?
話題は何にしよう?
回想 2025/10/26 千歳ゆるい勉強会 vol.6 での歓談のひとコマ 「主催が Ruby まわりの人なので、 私も Ruby の話をしようと入門の真っ最中」 それだ ⋯ ⋯ 訪問までの経緯 !
話題確定
▶︎ ▶︎ 話題確定 Ruby 言語に、入門してみた。 ついでに YouTube Live で配信してみる • その都合、題材は無料公開されているものが良い 現状、入門はまだ志なかば
▶︎ ▶︎ ▶︎ ▶︎ Ruby に入門してみた 入門前の印象 Ruby といえば「国産言語」 楽しく書けるらしい? Perl に続く言語? 島根県松江市に好印象
▶︎ ▶︎ ▶︎ 選んだ題材 • Ruby 公式ドキュメント(英語版) • 英語版のほうが情報が豊富?(国産言語でも英語が先導?) • この中から無料公開されているもの限定で選択 Installing Ruby Try Ruby Learn to Program
THE FIRST IMPRESSION of Ruby
Installing Ruby
▶︎ ▶︎ ▶︎ ▶︎ ▶︎ First Impression Installing Ruby インストールが難しい • 最新版は 3.4.7 の様子 • システムには既に 2.6.10 がある様子 最新版を入れて使うもの? Homebrew からのインストールは失敗 • ソースコードから入れてみたが 既存のバージョンが動いてしまう → パスを設定して解決 rubyenv みたいなものは使はない?(説明に登場しない) 思いのほか、インストールで分からないことが多かった感
Try Ruby
▶︎ ▶︎ ▶︎ First Impression Try Ruby 英語版のサイトから辿って、日本語のページに着いた • さすが、国産言語? でも明らかに書いたのは日本人ではなさそう • ノリが日本人の感性ではない 脈絡のない展開が、逆に魅力かもしれない • プログラミングを知っていても、まったく知らなくても、 平等に Ruby を感じられそうなアプローチ
▶︎ ▶︎ ▶︎ ▶︎ First Impression Try Ruby 親しみやすい言語構文 • Perl 言語らしさ • C 言語らしさ オブジェクト指向に素直な印象 型に緩いが、緩すぎない感 副作用の伴うメソッドに ! を付ける慣習に好印象
▶︎ ▶︎ ▶︎ ▶︎ ▶︎ First Impression Try Ruby 個性を感じるところ • revers, lines, 文字列への掛け算, シンボル ブロック(クロージャー)まであるのすごい • モダンな感じがする(Ruby 当初からある? 先見性?) times が "良い" と感じる(普通ならアンチパターンに思えそう) 直感的に書ける印象 if を後置できるの、とても良い
▶︎ First Impression Try Ruby クラスのつくりが独特な印象 • アクセサーまわりが面白いアプローチに感じる • 記号が独特に見える(慣れが必要?) • 記述が素直でわかりやすい印象 - :アクセサー名 ←これは、シンボル表記? - @オブジェクト変数名
▶︎ ▶︎ ▶︎ ▶︎ ▶︎ First Impression Try Ruby 総評 数値も文字もオブジェクトとして捉える姿勢に好印象 オブジェクト指向がきれいに描ける印象 わかりやすい言語な印象 • ここまでの知識で「なんとなく書いてみる」が出来た 動的型付けと型チェックのバランスが絶妙に思える こんなにきれいな言語が 既に 2000 年にあったと思うと革新的
Learn to Program
▶︎ ▶︎ ▶︎ ▶︎ First Impression Learn to Program Getting Started ̶ はじめに Ruby 自体の話は出てこない章だった 著者の Ruby 愛がたくさん伝わってくる感 初学者向けの本を想定したらしい • どう教えると良いかの考察が参考になった 2004 年頃までの更新で、最新情報は書籍版を買うと良いらしい • 無料の網羅的な学習教材は無いもの?
▶︎ ▶︎ First Impression Learn to Program Numbers ̶ 数値 日常の感覚で直感的に扱えそう プログラミングとしても一般的な動き • 整数の切り捨て • 浮動小数点数での表現
▶︎ ▶︎ ▶︎ First Impression Learn to Program Letters ̶ 文字 機能も豊富で、扱いやすそう 程よい演算性 • 掛け算が斬新 程よい型変換性 • 勝手に数値を文字列と見做さないのが好印象
▶︎ ▶︎ ▶︎ ▶︎ ▶︎ First Impression Learn to Program Variables and Assignment ̶ 変数と代入 宣言がない? • 2000年頃のスクリプト言語では自然なスタイル 代入しないと使えないのが好印象 違う種類の値を再代入できるのに驚く印象(自然ではある) 最初の文字で "変数" か "定数" かを判断するの、面白い 数値と文字は、代入時にコピー扱い?(オブジェクトでも特例?) • クラスは参照扱い?
▶︎ ▶︎ ▶︎ First Impression Learn to Program Mixing It Up ̶ 整数・小数・文字を併せて扱う 異なる種類の値どうしを演算するとき、 基本的には変換メソッドを使って意図を明確にするの、良い puts が to̲s メソッドでテキスト表現するの、今時っぽい gets を chomp する ̶ のは自然だけれど、 あらためて思うと不思議な文化
▶︎ ▶︎ ▶︎ ▶︎ ▶︎ ▶︎ First Impression Learn to Program More About Methods ̶ メソッドについて詳しく 演算子もインスタンスメソッドとか、唆られる プログラム全体をオブジェクトと捉える考え方、見事な印象 文字の配置揃えするメソッドが標準であるの、面白い着眼点 累乗の演算子があるの、嬉しい気がする なぜ rand は、数値ではなく self に持たせたのだろう? 高度な数学演算を Math が持つ ̶ は自然だけれど、 あらためて思うと不思議な文化
▶︎ ▶︎ ▶︎ ▶︎ ▶︎ First Impression Learn to Program Flow Control ̶ フロー制御 比較演算子は一般的 真偽値がオブジェクトで用意されているの、好印象 if then 〜 elsif 〜 else 〜 end と while が登場した • case も有るっぽい(紹介はなかった) プログラムの文化でありがちな表現方法 ̶ 重複の回避を「怠け者だから」で説明するの、微妙に思う価値観 論理演算子は or, and, not なのね(読みやすそう)
▶︎ ▶︎ ▶︎ ▶︎ ▶︎ First Impression Learn to Program Array and Iterators ̶ 配列と反復器 配列表現も一般的(ゼロから始まるインデックス) • 直感的に操作ができそう 範囲外アクセスで nil が得られるの、良さと怖さを感じる each メソッドと do 〜 end の表現が、今時っぽい times メソッドが嬉しい印象(個性も感じる) puts が、配列の各要素に対して実施される特例、興味深い
▶︎ ▶︎ ▶︎ ▶︎ First Impression Learn to Program Writing Your Own Methods ̶ 独自メソッドの定義 def 〜 end で定義するの、綺麗な気がする • 字面的に「定義」→「メソッド」なところ、シンプルさを感じる ローカル変数があるの、安心 メソッドは、値を必ず返すことになるらしい • 最終行 • return による早期復帰
▶︎ ▶︎ First Impression Learn to Program Classes ̶ クラス 大文字で始まる名前をつける決まり、上手かもしれない インスタンスを生成するのに new を使う(メソッド?) • Integer.new は出来ない(オブジェクトが微妙に不徹底?) • Array.new と String.new は、出来るがあまり使わない
▶︎ ▶︎ First Impression Learn to Program Classes ̶ クラス Time クラスが用意されている • 扱いが気持ちよさそう • 秒数で加算できるの、Ruby らしく感じるような Hash クラスが用意されている • ハッシュマップ • 任意のオブジェクトをキーにできるらしい - クラスも? Hash も? - どう判定する? アドレス? 内容?
▶︎ ▶︎ First Impression Learn to Program Classes ̶ クラス クラスを拡張できるの、すごい • Objective-C や JavaScript でも出来てはいたが • Swift や Rust の独特な特色と聞くことが多かった オブジェクト指向を徹底できそう • 可読性・記述性が良さそう • ダックタイピングと組み合わせた応用力も期待できる?
▶︎ ▶︎ ▶︎ First Impression Learn to Program Classes ̶ クラス クラス定義の仕方は独特な印象 • オブジェクト指向が広まっていない時代の言語だから? インスタンス変数に @ が付くの、明瞭で良さそう private 指定できるの、良い(出来ない言語も意外とある感)
▶︎ ▶︎ ▶︎ ▶︎ First Impression Learn to Program Blocks and Procs ̶ ブロックとプロシージャー いわゆるクロージャーがあるの、嬉しい • Proc オブジェクトでブロックを包むの、独特な印象 • 最後の引数 & で名前をつけると自動で Proc で包まれるの良い do 〜 end でブロックを作るの、きれい 呼び出しは call メソッドでする メソッドはオブジェクトではないから渡せない ̶ この棲み分けは特徴的な印象
▶︎ ▶︎ First Impression Learn to Program Beyond This Tutorial ̶ チュートリアルを越えて Ruby の情報を得る場所が紹介されているの、良い • Pickaxe ̶ 大きな疑問は "Programming Ruby" を読む • Ruby-Talk ̶ 自身で解決できないときは、メーリングリスト • IRB ̶ 小さな疑問を試行錯誤するのに便利なコマンド いろいろなやり方があること、 それを意識的に省いてきたことが綴られているの、良い
▶︎ ▶︎ ▶︎ ▶︎ First Impression Learn to Program 総評 すべてをオブジェクトに所属させる感性、すごい Ruby 言語に関するひととおりの扱いに触れられた 紹介されていない基本機能が多いのは、なんとなく気になる • 著者のこだわりの中では、上手に描けている印象 • 自分がほかの言語を習得しているからかもしれない 総じて、Ruby をひととおり学べるが、最低限、 機能を網羅的に紹介する本を追加で読みたい印象 • 存在を知らないことには、発想できない
▶︎ ▶︎ ▶︎ Enjoy! Ruby Thank you わかりやすい言語な印象 たしかに「楽しい」かもしれない 学習教材は、少ない? 熊谷友宏 @es̲kumagai