Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Code Is What Code Does
Search
brixen
August 22, 2014
Technology
440
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
140
Papers We Love - Immix mark-region garbage collector
brixen
2
780
An Ensemble of Programming Languages: How to Build a Platform for Collaboration
brixen
0
320
Types As Premature Optimization
brixen
2
610
Rubinius X
brixen
3
310
Augmented Ruby: The Rubinius Language Platform
brixen
2
180
The Future of Ruby
brixen
1
360
Rubinius, and the Future of Ruby
brixen
2
290
So you want to design a programming language
brixen
1
190
Other Decks in Technology
See All in Technology
書き手が人でもAIでも正しくなる道、SREを埋め込んだDeveloper Platform / tech drivers day8
chmikata
4
850
Patterns in AI Driven Software Development
akosma
PRO
0
380
クラウドエージェントの先駆け Devin。今も最先端を走る、他との違い
kinopeee
1
520
契約で守るコンパウンドプロダクトのデザインシステム
yug1224
1
1.6k
Autonomous AI Lakehouse - Live AI Hubから始めるセキュアなAIデータ活用 -
oracle4engineer
PRO
2
180
アクセラレーターで実現するServiceNow活用の高速化 / ServiceNow World Forum 2026
visional_engineering_and_design
0
100
Flutter Widget Previewerで始めるUIプレビューとVRTの自動化
sakusaku3939
0
180
Claude Codeから見る、エンジニアの世界の変容とその先
oikon48
7
4.9k
AI時代、つくる力を自分たちの手に。 ──電通×KAG、アジャイルとAI駆動開発で挑む開発の変革
yuukiyo
3
440
Technical Project Manager の役割とやりがい、少しだけ AI
yoshiiryo1
0
390
「作れる」と「リリースできる」の間にあったもの── PdMを外して見えた、PdMがやるべき仕事/Buildable ≠ Shippable: What Removing the PM Taught Me About the PM’s Job
yappli_developers
0
390
[General] 개발자로 해외 기업에서 일하기
skydoves
1
120
Featured
See All Featured
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
380
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
290
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
950
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
960
Building Adaptive Systems
keathley
44
3.3k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
The SEO identity crisis: Don't let AI make you average
varn
0
620
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
640
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.6k
Are puppies a ranking factor?
jonoalderson
2
4.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