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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
brixen
September 09, 2012
Technology
180
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
140
Papers We Love - Immix mark-region garbage collector
brixen
2
770
An Ensemble of Programming Languages: How to Build a Platform for Collaboration
brixen
0
300
Types As Premature Optimization
brixen
2
600
Rubinius X
brixen
3
310
Code Is What Code Does
brixen
0
430
Augmented Ruby: The Rubinius Language Platform
brixen
2
170
The Future of Ruby
brixen
1
350
Rubinius, and the Future of Ruby
brixen
2
280
Other Decks in Technology
See All in Technology
EMの役割で 変わったこと・変わらなかったこと
sansantech
PRO
0
130
信頼性はSREだけのものじゃない
hkawaras
0
110
「面白い!」を信じ抜け。激動の時代を貫く、オンリーワン・エンジニアの条件
kizawa2020
0
260
AI駆動開発はどこまで来たのか? ファインディの最新実態調査で読み解く現在地 Devin Con Tokyo
akiratom
2
1.4k
あなたの知らないバージョン命名規則
sat
PRO
2
800
1000⼈規模のClaude Enterprise運⽤を「Oktaのグループ」と「Slack」に集約する
sansantech
PRO
0
410
LLMアプリ、 雰囲気で運用してませんか? 〜LLMOpsの現在地〜
taka_aki
1
120
アクセスキーが漏れた日にやるべきこと- 無効化の先にある本当の対応
kazzpapa3
0
330
AI時代の「OAuth認証」にどう物申すか?(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
300
Kiro入門|仕様駆動開発で変わるAI時代の開発スタイル
cmkudo
0
390
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.5k
形式手法特論:Hyperproperty とモデル検査 #kernelvm / Kernel VM Study Tokyo 19th
ytaka23
0
810
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Claude Code のすすめ
schroneko
67
230k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
430
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
380
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
500
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
220
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
670
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
390
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
180
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