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
Grand Unification Theory: Writing & Running Code
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
brixen
September 09, 2012
Technology
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Grand Unification Theory: Writing & Running Code
Presented at BaRuCo 2012
brixen
September 09, 2012
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
290
Types As Premature Optimization
brixen
2
590
Rubinius X
brixen
3
300
Code Is What Code Does
brixen
0
430
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
Other Decks in Technology
See All in Technology
SONiCで構築・運用する生成AI向けパブリッククラウドネットワーク ~実装編~
sonic
0
290
2026TECHFRESH畢業分享會 - 葬送的通靈師:化系統與用戶雜訊成行動訊號
line_developers_tw
PRO
0
1.3k
Android の公式 Skill / Android skills
yanzm
0
160
Bucharest Tech Week 2026 - Guardians of the Cloud-Native Galaxy
edeandrea
PRO
0
130
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
270
【Cyber-sec+】経営層を"動かす"ための考え方
hssh2_bin
0
200
徹底討論!ECS vs EKS!
daitak
3
940
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
1.3k
10年間のブログ発信を振り返って見えたWebアプリケーションエンジニアとしての軌跡
stefafafan
0
170
2026TECHFRESH畢業分享會 - AI 時代的人生存檔點
line_developers_tw
PRO
0
1.3k
新しいUbuntu/GNOMEが使いたいからXからWaylandへ移行頑張ってるの巻 2026-06-20
nobutomurata
0
150
Lightning近況報告
kozy4324
0
210
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
3.7M
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.9k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
290
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
340
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Thoughts on Productivity
jonyablonski
76
5.2k
The Curious Case for Waylosing
cassininazir
1
400
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Transcript
GRAND UNIFICATION THEORY BRIAN FORD @brixen BARUCO 2012 }WRITING &
RUNNING CODE
RUBINIUS
I want to change how we write and run code
debugger profiler coverage type checker editor
Smalltalk
writing code is a function of running code
editors push around characters
The board swam wistfully through the narrow sky.
Spell checkers
Autocorrect?
Programming
Math Algorithms TDD SOLID Testing Patterns Refactoring Agile Design
“good design communicates intention”
com-mu-ni-ca-tion noun the imparting or exchange of information or news
Implementation Patterns by Kent Beck
Programming artifacts
What makes good communication?
clear adjective obvious or unambiguous
sim-ple adjective uncomplicated in form, nature or design
rel-e-vant adjective closely connected or appropriate to the matter at
hand
pre-cise adjective exactness or accuracy of expression or detail
me-di-um noun a means by which something is communicated or
expressed
tone noun a manner of expression
safe adjective protected from or not exposed to danger or
risk
open adjective not closed or blocked up free from obstructions
programming language as medium
Dynamically Typed Language
type noun a category of things having common characteristics
A.const_set :B, 1
def a.b(x) @b = x end
A = Class.new
metaprogramming
Animal = Object.clone Cat = Animal.clone
compute with values that pass messages
Typed
Dynamic Language
dynamic languages communicate better
a.map { |x| x.y }
a = [1, “x”, nil]
correctness vs safety
How do we run code?
exploratory testing development deployment learning
Rubinius precise GC concurrency JIT compiler
$ rbx irb(main):001:0> def hello irb(main):002:1> puts "hi" irb(main):003:1> end
=> #<Rubinius::CompiledCode hello file=(irb)>
def hello(name) puts “hi #{name}” end
================ :hello ================ Arguments: 1 required, 0 post, 1 total
Arity: 1 Locals: 1: name Stack size: 4 Line: 1 Lines to IP: 0000: push_self 0001: push_literal "hi " 0003: push_local 0 # name 0005: allow_private 0006: meta_to_s :to_s 0008: string_build 2 0010: allow_private 0011: send_stack :puts, 1 0014: ret ----------------------------------------
What can we do?
production vs testing
feature maps
type analysis
data flow analysis
error analysis
compiled code database
Challenges
information display
data supports decisions
Do we need tests?
blinking cursor = blank stare
in-sight noun the capacity to gain an accurate and deep
intuitive understanding of a person or thing
Thank You
rubini.us brixen.io