Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Rubyはなぜ「たのしい」のか? / Why is Ruby a programmers' b...
Search
Shu OGAWARA
September 29, 2024
Technology
2.2k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rubyはなぜ「たのしい」のか? / Why is Ruby a programmers' best friend? #tqrk15
2024/09/29 のTokyuRuby会議15(
https://tokyurubykaigi.github.io/tokyu15/
)での発表スライドです。
Shu OGAWARA
September 29, 2024
More Decks by Shu OGAWARA
See All by Shu OGAWARA
人生を変えた一冊「独学大全」のはなし / Self-study ENCYCLOPEDIA: The Book Which Change My Life #独学大全 #EM推し本
expajp
0
210
あなたの知らないDateのひみつ / The Secret of "Date" You Haven't known #tqrk16
expajp
0
200
入門 FormObject / An Introduction to FormObject #kaigionrails
expajp
2
8.1k
あなたの「仮説検証」、ゆがんでいませんか? / Isn't Your "Hypothesis Verification" Distorted? #emoasis
expajp
2
610
エンジニアリングマネージャーはどう学んでいくのか #devsumi / How Do Engineering Managers Continue to Learn and Grow?
expajp
9
6k
RubyKaigi参加歴をふりかえる / Looking Back on My RubyKaigi Participation History #kaigieffectLT
expajp
3
670
わたしのメタ学習 / My Own Meta Learning #shinjukurb
expajp
0
570
ActiveSupport::Concernで開くメタプログラミングの扉 #heiseirubykaigi / The door of meta-programing is opened by ActiveSupport::Concern
expajp
1
2.5k
実践Railsアプリケーション設計 #meetup_rails / Practical Rails Application Design
expajp
4
41k
Other Decks in Technology
See All in Technology
2026-09-26 Platform Engineering Kaigi 2026 インフラとアプリの境界線と委譲の設計 / Drawing the Infra and App Line
masasuzu
0
550
Snowflake Horizon Catalog と Apache Iceberg で作る オープンなデータ基盤
kitagawaz
0
370
spanner-autoscalerに学ぶ CRD設計パターン 〜自動化と緊急時対応を両立する Kubernetesコントローラーの作り方〜
tkuchiki
0
220
Lambda MicroVMsは常駐サーバーの代わりに なるか? Kiro Crew を動かして検証してみた / Kiro Crew on Lambda MicroVMs
k_adachi_01
2
350
形式手法を使って仕様をコーディングしよう
mikanichinose
0
160
雪かき部 #7 もう怖くない!SELECT文!
foursue
0
270
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
640
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
3
21k
BedrockとLambdaで作る リアルタイム進行型推理ゲーム
kawametho
0
150
生成AIと進める探索的データ分析(2026.10.03 第122回Tokyo.R勉強会)
tatamiya
1
650
TiDBファミリーにDWHが新登場!! TiDB最新情報 / TiDB update 202609
yoshiakiyamasaki
0
180
1人アドミンな私はAWSアカウント申請をSlackで完結したい!
ysuzuki
0
110
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
58k
Unsuck your backbone
ammeep
672
58k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
30 Presentation Tips
portentint
PRO
1
410
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
450
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
We Have a Design System, Now What?
morganepeng
55
8.3k
New Earth Scene 8
popppiees
4
2.6k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
590
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Raft: Consensus for Rubyists
vanstee
142
7.7k
Transcript
Rubyはなぜ「たのしい」のか? 大河原 修(@expajp ) 2024/09/29 TokyuRuby会議15 1
• 大河原 修(@expajp ) • Engineering Manager@リンカーズ • 趣味は筋トレと秘境駅めぐり •
#rubymusclemixin 2 自己紹介
秘境駅めぐり 3 Soutaro timetable(09/22最新版)
というわけで 4
みなさん、Ruby楽しんでますかー? 5
6 Ruby is A PROGRAMMER’S BEST FRIEND 画像引用:“オブジェクト指向スクリプト言語 Ruby”, https://www.ruby-lang.org/ja/,
2024/09/08閲覧
7 プログラミングはとてもたのしいことです。(中略) Rubyは「プログラミングのたのしさ」を最大化することを 目標として設計・開発されてきました ―まつもとゆきひろ “ 高橋征義, 後藤裕蔵, まつもとゆきひろ, “たのしいRuby
第6版”, 2019, SBクリエイティブ, p. 3(色付は引用者による) 画像引用:“たのしいRuby 第6版 | SBクリエイティブ”, https://www.sbcr.jp/product/4797399844/, 2024/09/11閲覧
プログラミングの「たのしさ」とは? 8
9 プログラミングのたのしさ 「期待通りの結果が出た」という フィードバックがすぐに得られること
10 プログラミングのたのしさ 「期待通りの結果が出た」という フィードバックがすぐに得られること しかし、これはプログラミング全般の話題
では、我々はなぜ Rubyがとりわけ「たのしい」と感じる? 11
12 プログラミングはとてもたのしいことです。(中略) Rubyは「プログラミングのたのしさ」を最大化することを 目標として設計・開発されてきました ―まつもとゆきひろ “ 高橋征義, 後藤裕蔵, まつもとゆきひろ, “たのしいRuby
第6版”, 2019, SBクリエイティブ, p. 3(色付は引用者による) 画像引用:“たのしいRuby 第6版 | SBクリエイティブ”, https://www.sbcr.jp/product/4797399844/, 2024/09/11閲覧
• フィードバックをすぐに得られるのがたのしい • 「たのしさの最大化」 =「フィードバックの速さの最大化」 13 たのしさの最大化
仮説: Rubyはフィードバックを速く回せる言語 14 これを考察してみる ※「Ruby自体にフィードバックを速く回せる特徴があるか?」という考察をしていきます 「他の言語と比べて速いか?」は問題にしません
① 小さい単位でフィードバックを得られる ② コーディングにストレスが少ない 15 フィードバックを速く回すためには?
• Rubyはすべてが値 • irbで細かく検証できる 16 ①小さい単位でフィードバックを得られる 画像引用:“他言語からのRuby入門”, https://www.ruby-lang.org/ja/documentation/ruby-from-other- languages/, 2024/09/10閲覧
• コーディングにおけるストレス =認知プロセスにかかる負荷 17 ②コーディングにストレスが少ない
• 長期記憶 • 文法やアルゴリズムを覚える • 短期記憶 • 定義した変数名やメソッド名を覚える • ワーキングメモリ
• 記憶から情報を取り出し実装を考える 18 認知プロセスにかかる負荷が少ない コーディングにおける認知プロセス 画像引用:“プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ - 秀和システム あなたの学びをサポート!”, https://www.shuwasystem.co.jp/book/9784798068534.html, 2024/09/10閲覧
• 長期記憶 • 文法やアルゴリズムを覚える • 短期記憶 • 定義した変数名やメソッド名を覚える • ワーキングメモリ
• 記憶から情報を取り出し実装を考える 19 認知プロセスにかかる負荷が少ない コーディングにおける認知プロセス 画像引用:“プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ - 秀和システム あなたの学びをサポート!”, https://www.shuwasystem.co.jp/book/9784798068534.html, 2024/09/10閲覧
• 変数を減らす仕組み • イテレーション:ループ変数がいらない • メソッドチェーン:経過を記憶する一時変数がいらない • スコープを小さくする仕組み • ブロック:サブルーチンを別定義しなくてよい
20 認知プロセスにかかる負荷が少ない 短期記憶/ワーキングメモリを圧迫しにくい仕様
• 長期記憶 • 文法やアルゴリズムを覚える • 短期記憶 • 定義した変数名やメソッド名を覚える • ワーキングメモリ
• 長期・短期記憶から情報を取り出し実装を考える 21 認知プロセスにかかる負荷が少ない コーディングにおける認知プロセス 画像引用:“プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ - 秀和システム あなたの学びをサポート!”, https://www.shuwasystem.co.jp/book/9784798068534.html, 2024/09/10閲覧
• すべてがオブジェクト • この原則が理解できれば、あとは調べられる • 調査手段が豊富 • るりまが充実 • るりまサーチ/irbから引ける
• コミュニティで聞ける 22 認知プロセスにかかる負荷が少ない 長期記憶をフォローする仕組み
① 小さい単位でフィードバックを得られる ② コーディングにストレスが少ない 23 フィードバックを速く回すためには?
「Rubyはフィードバックを速く回せてたのしい」説、 概ね正しいのでは? 24
• プログラミングのたのしさはフィードバックの速さ • Rubyはとりわけフィードバックを速く回せる言語 • 小さい単位でフィードバックを得られる • コーディングの認知プロセスに負荷が少ない 25 まとめ:Rubyはなぜ「たのしい」のか?
※他にも「ドーパミン分泌の仕組み」やら「自由な言語仕様」やらの話をしようとしましたが割愛
たのしいRubyライフを続けていきましょう 26 アルコール駆動開発はほどほどに!