Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rubyはなぜ「たのしい」のか? / Why is Ruby a programmers' b...
Search
Shu OGAWARA
September 29, 2024
Technology
4
1.8k
Rubyはなぜ「たのしい」のか? / Why is Ruby a programmers' best friend? #tqrk15
2024/09/29 のTokyuRuby会議15(
https://tokyurubykaigi.github.io/tokyu15/
)での発表スライドです。
Shu OGAWARA
September 29, 2024
Tweet
Share
More Decks by Shu OGAWARA
See All by Shu OGAWARA
エンジニアリングマネージャーはどう学んでいくのか #devsumi / How Do Engineering Managers Continue to Learn and Grow?
expajp
7
2.4k
RubyKaigi参加歴をふりかえる / Looking Back on My RubyKaigi Participation History #kaigieffectLT
expajp
3
380
わたしのメタ学習 / My Own Meta Learning #shinjukurb
expajp
0
360
ActiveSupport::Concernで開くメタプログラミングの扉 #heiseirubykaigi / The door of meta-programing is opened by ActiveSupport::Concern
expajp
1
2.1k
実践Railsアプリケーション設計 #meetup_rails / Practical Rails Application Design
expajp
4
38k
【2019/07/06 TamaRuby会議01】brainf*ck処理系で理解するパターンマッチングをつかった疎結合な実装
expajp
2
2.6k
その正規表現、異議あり! 〜 ReDoSについて
expajp
2
5.4k
【2018/12/08 RailsDM】「あの人」に学ぶ!駆け出しRailsエンジニアの日常の過ごし方
expajp
9
1.3k
【2018/09/18 Otemachi.rb#9】君(退会したユーザ)の名は。
expajp
0
470
Other Decks in Technology
See All in Technology
組織成長を加速させるオンボーディングの取り組み
sudoakiy
2
180
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.4k
Zennのパフォーマンスモニタリングでやっていること
ryosukeigarashi
0
120
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
760
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
130
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
120
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
130
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
390
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
190
Featured
See All Featured
Unsuck your backbone
ammeep
668
57k
The Invisible Side of Design
smashingmag
298
50k
Statistics for Hackers
jakevdp
796
220k
Raft: Consensus for Rubyists
vanstee
136
6.6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Designing Experiences People Love
moore
138
23k
Agile that works and the tools we love
rasmusluckow
327
21k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Six Lessons from altMBA
skipperchong
27
3.5k
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 アルコール駆動開発はほどほどに!