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
Topaz is Ruby in Python
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Jan Stępień
June 12, 2013
Programming
590
1
Share
Topaz is Ruby in Python
Slides from a talk about Topaz I delivered on 12.06.2013 at Munich Ruby Users Group meetup.
Jan Stępień
June 12, 2013
More Decks by Jan Stępień
See All by Jan Stępień
graalvm-jug-bb
jan
1
250
That Looks Oddly Familiar
jan
0
470
Native Clojure
jan
0
270
Native Clojure with GraalVM
jan
0
800
Compiling a lisp into a lisp using a lisp
jan
0
190
Mutation testing in continuous delivery pipelines
jan
0
210
Self-contained systems: an introduction
jan
0
250
Let's just test that real quick
jan
1
460
Combating spam, or how I befriended the Killer Rabbit of Caerbannog
jan
0
320
Other Decks in Programming
See All in Programming
AgentCore Optimizationを始めよう!
licux
3
260
Oxlintはいかにしてtsgolintのlint ruleを呼び出しているのか
syumai
1
290
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
210
【ディップ|26年新卒研修資料】TDD実装演習
dip_tech
PRO
0
270
自動レビューエンジンの実装と運用 ~レビューのない世界へ~
kurukuru1999
1
120
AI時代になぜ書くのか
mutsumix
0
430
Agentic UI beyond Chats Architecture Patterns & Open Standards @ngMunich 05/2026
manfredsteyer
PRO
0
110
UaaL×Androidアプリのメモリ計測 — Memory Profilerの先へ
rio432
0
160
Spec-Driven Development with AI Agents (Workshop, May 2026)
antonarhipov
4
400
Are We Really Coding 10× Faster with AI?
kohzas
0
200
cloudnative conference 2026 flyle
azihsoyn
1
200
AIエージェントの隔離技術の徹底比較
kawayu
0
280
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Designing for humans not robots
tammielis
254
26k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
140
Un-Boring Meetings
codingconduct
0
290
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
520
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
400
How to Think Like a Performance Engineer
csswizardry
28
2.6k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
220
Exploring anti-patterns in Rails
aemeredith
3
360
A Modern Web Designer's Workflow
chriscoyier
698
190k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
360
Transcript
Topaz is in Ruby Python
Hi, my name is Jan Stępień
Topaz is a Ruby implementation written in Python
Topaz is a Ruby implementation which is faster
Ruby Topaz is a bird from South America
cc-by-sa-3.0 geimfyglið
Topaz is in Ruby Python
cc-by-sa-3.0 geimfyglið
cc-by-nc-sa-2.0 marie
Why? would you implement Ruby in Python?
Python CPython PyPy
Ruby MRI JRuby Rubinius
PyPy is a Python implementation
PyPy is amazingly fast See http://speed.pypy.org
PyPy is written in RPython
RPython is a subset of Python
RPython can be statically compiled to C
RPython is optimised for implementing VMs
PyPy is an impl. of Python PyPy is written in
RPython RPython is compiled to C
Topaz is an impl. of Ruby Topaz is written in
RPython RPython is compiled to C
git clone http://github.com/topazproject/topaz
$ cd topaz && cloc . Language files code Python
132 22934 Ruby 35 5058
$ time ./bin/topaz_untranslated.py 3.times { puts :hello } ˆD hello
hello hello real 0m3.539s
$ cd topaz $ python \ .../pypy/rpython/bin/rpython \ -Ojit targettopaz.py
RPython → C
None
$ time ./bin/topaz 3.times { puts :hello } ˆD hello
hello hello real 0m0.050s
freqs = [0] * 256 while buf = $stdin.read(8192) buf.bytes.each
do |b| freqs[b] += 1 end end p freqs
MRI 2.0 36,1 s 5,0 MB/s JRuby 1.7.2 24,8 s
7,3 MB/s Topaz 3,3 s 55,3 MB/s 180MB of data served from caches
50 100 150 Input size [MB] 10 30 20 0
Time [s] M RI JRuby Topaz
Topaz redefines what fast means in the Ruby world
Why is it so fast? PyPy!
Meta-tracing just-in-time compilation
None
Get the source and try for yourself
Is Topaz a Ruby-Python interoperability bridge? No, unfortunately it’s not.
Topaz is still very young
Contributing is easy
See also 096 RR Topaz with Alex Gaynor Introducing Topaz
– Tim Felgentreff topazruby.com
dankeschön dziękuję ślicznie