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
Code Is What Code Does
Search
brixen
August 22, 2014
Technology
0
400
Code Is What Code Does
Madison+ Ruby 2014
brixen
August 22, 2014
Tweet
Share
More Decks by brixen
See All by brixen
Stop making mud pies!
brixen
0
97
Papers We Love - Immix mark-region garbage collector
brixen
2
690
An Ensemble of Programming Languages: How to Build a Platform for Collaboration
brixen
0
210
Types As Premature Optimization
brixen
2
500
Rubinius X
brixen
3
270
Augmented Ruby: The Rubinius Language Platform
brixen
2
130
The Future of Ruby
brixen
1
320
Rubinius, and the Future of Ruby
brixen
2
240
So you want to design a programming language
brixen
1
140
Other Decks in Technology
See All in Technology
Larkご案内資料
customercloud
PRO
0
650
全文検索+セマンティックランカー+LLMの自然文検索サ−ビスで得られた知見
segavvy
2
110
(機械学習システムでも) SLO から始める信頼性構築 - ゆる SRE#9 2025/02/21
daigo0927
0
130
飲食店予約台帳を支えるインタラクティブ UI 設計と実装
siropaca
7
1.8k
なぜ私は自分が使わないサービスを作るのか? / Why would I create a service that I would not use?
aiandrox
0
750
ハッキングの世界に迫る~攻撃者の思考で考えるセキュリティ~
nomizone
13
5.2k
アジャイル開発とスクラム
araihara
0
170
利用終了したドメイン名の最強終活〜観測環境を育てて、分析・供養している件〜 / The Ultimate End-of-Life Preparation for Discontinued Domain Names
nttcom
2
200
2024.02.19 W&B AIエージェントLT会 / AIエージェントが業務を代行するための計画と実行 / Algomatic 宮脇
smiyawaki0820
14
3.5k
白金鉱業Meetup Vol.17_あるデータサイエンティストのデータマネジメントとの向き合い方
brainpadpr
6
760
現場の種を事業の芽にする - エンジニア主導のイノベーションを事業戦略に装着する方法 -
kzkmaeda
2
2.1k
30分でわかる『アジャイルデータモデリング』
hanon52_
9
2.7k
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
550
Code Review Best Practice
trishagee
67
18k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
A Tale of Four Properties
chriscoyier
158
23k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
330
How GitHub (no longer) Works
holman
314
140k
A designer walks into a library…
pauljervisheath
205
24k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Transcript
Code Is What Code Does @brixen
I <3 Ruby
None
None
None
We live in a world filled with hard problems
watsi.org
People are leaving Ruby
Haskell Go Clojure Scala Node.js Rust Javascript Elixir
Businesses are not choosing Ruby
Ruby has problems
Too slow
0 1.25 2.5 3.75 5 Rubinius v1 Rubinius JIT v1
Rubinius v2 MRI 2.1
No concurrency
0 1 2 3 4 Rubinius MRI 2.1
Too much memory
0 22.5 45 67.5 90 Hash 1 Hash 2
Not compiled
Monkey patching
$ rbx! irb(main):001:0> "abc".clear! => ""! irb(main):002:0> require "./some_gem.rb"! =>
true! irb(main):003:0> "abc".clear! => "nope"! irb(main):004:0>
irb(main):003:0> "abc".clear! => "nope"! irb(main):004:0> "abc".method :clear! => #<Method: String#clear
(defined in String at some_gem.rb:2)>! irb(main):005:0>
None
Static types
Why use static types?
Correctness 1
Adding types does not make correct code more correct
Speed 2
0 1.25 2.5 3.75 5 Rubinius v1 Rubinius JIT v1
Rubinius v2 MRI 2.1
Maintenance 3
Adding complexity does not improve understanding
Ruby is a better choice
Programming is too hard
We are too slow
We fail a lot
The Cynefin framework
Simple Sense • Categorize • Respond 1
Simple Sense • Categorize • Respond 1 Best Practice
Complicated Sense • Analyze • Respond 2
Complicated Sense • Analyze • Respond 2 Good Practice
Complex Probe • Sense • Respond 3
Complex Probe • Sense • Respond 3 Emergent Behavior
Chaotic Act • Sense • Respond 4
Chaotic Act • Sense • Respond 4 Novel Solutions
Clay vs concrete
B.C. A.D.
B.C. A.D. Before compilation After deployment
Read Eval Print Loop
Study Experiment Check Loop
Assumptions help us solve problems
Assumptions hinder our efforts
Technical debt Cost to experiment
Refactoring Rework
We live in a world filled with hard problems
Let's make programming easier
Let's test our ideas more quickly
Let's fail more productively
Improve the world
Try Rubinius github.com/rubinius/rubinius
Thank you!
• http://winstonyw.com/2013/06/12/reddotrubyconf_2013_-_thank_you/ • https://www.flickr.com/photos/veganstraightedge/6037027106/ • http://www.europeancarweb.com/news/ epcp_1010_audi_e_tron_spyder_creation/photo_13.html • http://thisisbuildingmaterials.blogspot.com/2012/03/examples-of-famous- concrete-buildings.html
Credits