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
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
130
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
サイバー捜査員研修(後半)
nomizone
1
680
LLMリーダーボードアップデートに向けたAgentic Math_SWEのトレースについて
nejumi
0
210
Retriever と Reranker、結局どうする?
kazuaki
2
670
ウォーターフォール開発案件のPMとしてAI活用を模索している話
hatahata021
3
310
Digitization部 紹介資料
sansan33
PRO
2
7.7k
データ組織の転換期 一足飛びしない段階的戦略
leveragestech
PRO
0
150
[ChatGPT Work LT]事務作業が苦手な人のための バックオフィスの「半」自動化
chimaki_iot
0
200
OSPN.JPバージョンアップ作業進捗のご報告 / 20260801-osc26kyoto
akkiesoft
0
270
モダンフロントエンド 開発研修
recruitengineers
PRO
1
360
サイバー捜査員研修(前半)
nomizone
1
1.7k
もう一度考える SRE チームの作り方・育て方 / Rethinking SRE #1: Building and Growing SRE Teams
rrreeeyyy
5
990
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
19k
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
WCS-LA-2024
lcolladotor
0
790
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
WENDY [Excerpt]
tessaabrams
11
39k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
260
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Claude Code のすすめ
schroneko
67
230k
We Are The Robots
honzajavorek
0
290
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
570
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