Slide 1

Slide 1 text

Rubyはなぜ「たのしい」のか? 大河原 修(@expajp ) 2024/09/29 TokyuRuby会議15 1

Slide 2

Slide 2 text

• 大河原 修(@expajp ) • Engineering Manager@リンカーズ • 趣味は筋トレと秘境駅めぐり • #rubymusclemixin 2 自己紹介

Slide 3

Slide 3 text

秘境駅めぐり 3 Soutaro timetable(09/22最新版)

Slide 4

Slide 4 text

というわけで 4

Slide 5

Slide 5 text

みなさん、Ruby楽しんでますかー? 5

Slide 6

Slide 6 text

6 Ruby is A PROGRAMMER’S BEST FRIEND 画像引用:“オブジェクト指向スクリプト言語 Ruby”, https://www.ruby-lang.org/ja/, 2024/09/08閲覧

Slide 7

Slide 7 text

7 プログラミングはとてもたのしいことです。(中略) Rubyは「プログラミングのたのしさ」を最大化することを 目標として設計・開発されてきました ―まつもとゆきひろ “ 高橋征義, 後藤裕蔵, まつもとゆきひろ, “たのしいRuby 第6版”, 2019, SBクリエイティブ, p. 3(色付は引用者による) 画像引用:“たのしいRuby 第6版 | SBクリエイティブ”, https://www.sbcr.jp/product/4797399844/, 2024/09/11閲覧

Slide 8

Slide 8 text

プログラミングの「たのしさ」とは? 8

Slide 9

Slide 9 text

9 プログラミングのたのしさ 「期待通りの結果が出た」という フィードバックがすぐに得られること

Slide 10

Slide 10 text

10 プログラミングのたのしさ 「期待通りの結果が出た」という フィードバックがすぐに得られること しかし、これはプログラミング全般の話題

Slide 11

Slide 11 text

では、我々はなぜ Rubyがとりわけ「たのしい」と感じる? 11

Slide 12

Slide 12 text

12 プログラミングはとてもたのしいことです。(中略) Rubyは「プログラミングのたのしさ」を最大化することを 目標として設計・開発されてきました ―まつもとゆきひろ “ 高橋征義, 後藤裕蔵, まつもとゆきひろ, “たのしいRuby 第6版”, 2019, SBクリエイティブ, p. 3(色付は引用者による) 画像引用:“たのしいRuby 第6版 | SBクリエイティブ”, https://www.sbcr.jp/product/4797399844/, 2024/09/11閲覧

Slide 13

Slide 13 text

• フィードバックをすぐに得られるのがたのしい • 「たのしさの最大化」 =「フィードバックの速さの最大化」 13 たのしさの最大化

Slide 14

Slide 14 text

仮説: Rubyはフィードバックを速く回せる言語 14 これを考察してみる ※「Ruby自体にフィードバックを速く回せる特徴があるか?」という考察をしていきます 「他の言語と比べて速いか?」は問題にしません

Slide 15

Slide 15 text

① 小さい単位でフィードバックを得られる ② コーディングにストレスが少ない 15 フィードバックを速く回すためには?

Slide 16

Slide 16 text

• Rubyはすべてが値 • irbで細かく検証できる 16 ①小さい単位でフィードバックを得られる 画像引用:“他言語からのRuby入門”, https://www.ruby-lang.org/ja/documentation/ruby-from-other- languages/, 2024/09/10閲覧

Slide 17

Slide 17 text

• コーディングにおけるストレス =認知プロセスにかかる負荷 17 ②コーディングにストレスが少ない

Slide 18

Slide 18 text

• 長期記憶 • 文法やアルゴリズムを覚える • 短期記憶 • 定義した変数名やメソッド名を覚える • ワーキングメモリ • 記憶から情報を取り出し実装を考える 18 認知プロセスにかかる負荷が少ない コーディングにおける認知プロセス 画像引用:“プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ - 秀和システム あなたの学びをサポート!”, https://www.shuwasystem.co.jp/book/9784798068534.html, 2024/09/10閲覧

Slide 19

Slide 19 text

• 長期記憶 • 文法やアルゴリズムを覚える • 短期記憶 • 定義した変数名やメソッド名を覚える • ワーキングメモリ • 記憶から情報を取り出し実装を考える 19 認知プロセスにかかる負荷が少ない コーディングにおける認知プロセス 画像引用:“プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ - 秀和システム あなたの学びをサポート!”, https://www.shuwasystem.co.jp/book/9784798068534.html, 2024/09/10閲覧

Slide 20

Slide 20 text

• 変数を減らす仕組み • イテレーション:ループ変数がいらない • メソッドチェーン:経過を記憶する一時変数がいらない • スコープを小さくする仕組み • ブロック:サブルーチンを別定義しなくてよい 20 認知プロセスにかかる負荷が少ない 短期記憶/ワーキングメモリを圧迫しにくい仕様

Slide 21

Slide 21 text

• 長期記憶 • 文法やアルゴリズムを覚える • 短期記憶 • 定義した変数名やメソッド名を覚える • ワーキングメモリ • 長期・短期記憶から情報を取り出し実装を考える 21 認知プロセスにかかる負荷が少ない コーディングにおける認知プロセス 画像引用:“プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ - 秀和システム あなたの学びをサポート!”, https://www.shuwasystem.co.jp/book/9784798068534.html, 2024/09/10閲覧

Slide 22

Slide 22 text

• すべてがオブジェクト • この原則が理解できれば、あとは調べられる • 調査手段が豊富 • るりまが充実 • るりまサーチ/irbから引ける • コミュニティで聞ける 22 認知プロセスにかかる負荷が少ない 長期記憶をフォローする仕組み

Slide 23

Slide 23 text

① 小さい単位でフィードバックを得られる ② コーディングにストレスが少ない 23 フィードバックを速く回すためには?

Slide 24

Slide 24 text

「Rubyはフィードバックを速く回せてたのしい」説、 概ね正しいのでは? 24

Slide 25

Slide 25 text

• プログラミングのたのしさはフィードバックの速さ • Rubyはとりわけフィードバックを速く回せる言語 • 小さい単位でフィードバックを得られる • コーディングの認知プロセスに負荷が少ない 25 まとめ:Rubyはなぜ「たのしい」のか? ※他にも「ドーパミン分泌の仕組み」やら「自由な言語仕様」やらの話をしようとしましたが割愛

Slide 26

Slide 26 text

たのしいRubyライフを続けていきましょう 26 アルコール駆動開発はほどほどに!