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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
brixen
August 22, 2014
Technology
420
0
Share
Code Is What Code Does
Madison+ Ruby 2014
brixen
August 22, 2014
More Decks by brixen
See All by brixen
Stop making mud pies!
brixen
0
130
Papers We Love - Immix mark-region garbage collector
brixen
2
760
An Ensemble of Programming Languages: How to Build a Platform for Collaboration
brixen
0
260
Types As Premature Optimization
brixen
2
580
Rubinius X
brixen
3
290
Augmented Ruby: The Rubinius Language Platform
brixen
2
160
The Future of Ruby
brixen
1
350
Rubinius, and the Future of Ruby
brixen
2
270
So you want to design a programming language
brixen
1
170
Other Decks in Technology
See All in Technology
20260423_執筆の工夫と裏側 技術書の企画から刊行まで / From the planning to the publication of technical book
nash_efp
3
620
20260428_Product Management Summit_Loglass_JoeHirose
loglassjoe
3
4.1k
ServiceNow Knowledge 26 の歩き方
manarobot
0
240
はじめての MagicPod生成AI機能 機能紹介から活用方法まで
magicpod
0
120
COBOL婆さんの伝説
poropinai1966
0
110
目的ファーストのハーネス設計 ~ハーネスの変更容易性を高めるための優先順位~
gotalab555
8
2.5k
弁護士ドットコム株式会社 エンジニア職向け 会社紹介資料
bengo4com
1
190
Revisiting [CLS] and Patch Token Interaction in Vision Transformers
yu4u
0
400
Do Ruby::Box dream of Modular Monolith?
joker1007
1
360
独断と偏見で試してみる、 シングル or マルチエージェント どっちがいいの?
shichijoyuhi
1
190
260422_Sansan_Tech_Talk__関西_vol.3_データ活用のリアル__矢田__.pdf
sansantech
PRO
0
130
Scovilleモバイルエンジニア募集中.pdf
julienrudin
0
120
Featured
See All Featured
How to Talk to Developers About Accessibility
jct
2
180
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
340
Done Done
chrislema
186
16k
How to Ace a Technical Interview
jacobian
281
24k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
230
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.4k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
How GitHub (no longer) Works
holman
316
150k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
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