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
1.9k
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
1
150
エンジニアリングマネージャーはどう学んでいくのか #devsumi / How Do Engineering Managers Continue to Learn and Grow?
expajp
8
4.4k
RubyKaigi参加歴をふりかえる / Looking Back on My RubyKaigi Participation History #kaigieffectLT
expajp
3
430
わたしのメタ学習 / My Own Meta Learning #shinjukurb
expajp
0
410
ActiveSupport::Concernで開くメタプログラミングの扉 #heiseirubykaigi / The door of meta-programing is opened by ActiveSupport::Concern
expajp
1
2.2k
実践Railsアプリケーション設計 #meetup_rails / Practical Rails Application Design
expajp
4
39k
【2019/07/06 TamaRuby会議01】brainf*ck処理系で理解するパターンマッチングをつかった疎結合な実装
expajp
2
2.7k
その正規表現、異議あり! 〜 ReDoSについて
expajp
2
5.6k
【2018/12/08 RailsDM】「あの人」に学ぶ!駆け出しRailsエンジニアの日常の過ごし方
expajp
10
1.4k
Other Decks in Technology
See All in Technology
30代エンジニアが考える、エンジニア生存戦略~~セキュリティを添えて~~
masakiokuda
4
1.9k
【Oracle Cloud ウェビナー】VMware環境を短期間でクラウド化!ベネッセ様事例に学ぶ仮想環境クラウド移行のリアル
oracle4engineer
PRO
2
120
Why Go?
xpmatteo
0
120
空が堕ち、大地が割れ、海が涸れた日~もしも愛用しているフレームワークが開発停止したら?~ #phperkaigi 2025
77web
2
950
【ServiceNow SNUG Meetup LT deck】ServiceNow「検索性の進化」ZingからNow Assistまで
niwato
1
280
職種に名前が付く、ということ/The fact that a job title has a name
bitkey
1
200
ソフトウェア開発現代史: なぜ日本のソフトウェア開発は「滝」なのか?製造業の成功体験とのギャップ #jassttokyo
takabow
2
320
コード品質向上で得られる効果と実践的取り組み
ham0215
0
190
頻繁リリース × 高品質 = 無理ゲー? いや、できます!/20250306 Shoki Hyo
shift_evolve
0
130
SaaSプロダクト開発におけるバグの早期検出のためのAcceptance testの取り組み
kworkdev
PRO
0
140
単一の深層学習モデルによる不確実性の定量化の紹介 ~その予測結果正しいですか?~
ftakahashi
PRO
3
500
Go の analysis パッケージで自作するリファクタリングツール
kworkdev
PRO
1
330
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.6k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
30k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
28
2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
176
52k
The Invisible Side of Design
smashingmag
299
50k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.1k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.2k
Facilitating Awesome Meetings
lara
53
6.3k
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 アルコール駆動開発はほどほどに!