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
5
2k
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
あなたの「仮説検証」、ゆがんでいませんか? / Isn't Your "Hypothesis Verification" Distorted? #emoasis
expajp
2
380
エンジニアリングマネージャーはどう学んでいくのか #devsumi / How Do Engineering Managers Continue to Learn and Grow?
expajp
8
5.3k
RubyKaigi参加歴をふりかえる / Looking Back on My RubyKaigi Participation History #kaigieffectLT
expajp
3
520
わたしのメタ学習 / My Own Meta Learning #shinjukurb
expajp
0
460
ActiveSupport::Concernで開くメタプログラミングの扉 #heiseirubykaigi / The door of meta-programing is opened by ActiveSupport::Concern
expajp
1
2.3k
実践Railsアプリケーション設計 #meetup_rails / Practical Rails Application Design
expajp
4
40k
【2019/07/06 TamaRuby会議01】brainf*ck処理系で理解するパターンマッチングをつかった疎結合な実装
expajp
2
2.7k
その正規表現、異議あり! 〜 ReDoSについて
expajp
2
5.9k
【2018/12/08 RailsDM】「あの人」に学ぶ!駆け出しRailsエンジニアの日常の過ごし方
expajp
10
1.4k
Other Decks in Technology
See All in Technology
Snowflake Intelligenceにはこうやって立ち向かう!クラシルが考えるAI Readyなデータ基盤と活用のためのDataOps
gappy50
0
260
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
5
680
slog.Handlerのよくある実装ミス
sakiengineer
4
250
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
9
74k
💡Ruby 川辺で灯すPicoRubyからの光
bash0c7
0
120
2つのフロントエンドと状態管理
mixi_engineers
PRO
3
110
Modern Linux
oracle4engineer
PRO
0
110
人工衛星のファームウェアをRustで書く理由
koba789
15
8.1k
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
230
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
130
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
970
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
260
Featured
See All Featured
Writing Fast Ruby
sferik
628
62k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.7k
We Have a Design System, Now What?
morganepeng
53
7.8k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
The Language of Interfaces
destraynor
161
25k
Balancing Empowerment & Direction
lara
3
620
Designing for Performance
lara
610
69k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
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 アルコール駆動開発はほどほどに!