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
Rage against the Turing Machine (confoo)
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Igor Wiedler
February 27, 2014
Programming
440
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rage against the Turing Machine (confoo)
Lightning talk.
Igor Wiedler
February 27, 2014
More Decks by Igor Wiedler
See All by Igor Wiedler
Redis Bedtime Stories
igorw
1
380
Wide Event Analytics (LISA19)
igorw
4
960
a day in the life of a request
igorw
0
180
production: an owner's manual
igorw
0
200
The Power of 2
igorw
0
350
LISP 1.5 Programmer's Manual: A Dramatic Reading
igorw
0
500
The Moral Character of Software
igorw
1
330
interdisciplinary computing (domcode)
igorw
0
330
miniKanren (clojure berlin)
igorw
1
340
Other Decks in Programming
See All in Programming
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
510
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
Are APIs Still Relevant in the AI Era?
soyuka
0
380
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
190
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
160
Embedded Swiftで作る自作USBデバイス によるiOSデバイスの自動テスト / iOSDC Japan 2026 glassfiber
glassfiber
0
200
AWSに止められる覚悟してますか?
morizo_1984
2
490
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
210
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1k
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
270
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.1k
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
250
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
510
WCS-LA-2024
lcolladotor
0
840
sira's awesome portfolio website redesign presentation
elsirapls
0
430
How to Ace a Technical Interview
jacobian
280
24k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
520
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Documentation Writing (for coders)
carmenintech
77
5.5k
Rails Girls Zürich Keynote
gr2m
96
14k
Transcript
Rage against the Turing Machine
Programming is hard
None
None
None
None
None
0 0 1 1
0 0 1 1
0 0 1 0
0 0 0 0
0 1 0 0
0 1 0 0
0 1 0 0
0 1 0 0
0 1 0 0
0 1 0 0
while (!in_array($state, $accept_states)) { $read_val = isset($tape[$position]) ? $tape[$position] :
'_'; ! if (!isset($rules[$state][$read_val])) { throw new NoTransitionException(); } ! list($write_val, $move_dir, $new_state) = $rules[$state][$read_val]; ! $tape[$position] = $write_val; ! if ('l' === $move_dir) { $position--; if ($position < 0) { $position++; array_unshift($tape, '_'); } } else if ('r' === $move_dir) { $position++; if ($position >= count($tape)) { array_push($tape, '_'); } } ! $state = $new_state; }
None
None
None
This machine can run any algorithm
This machine can run any algorithm etsy.com/shop/sharpwriter
Universality
add increment one-third
add increment one-third add increment one-third
add increment one-third
add increment one-third U
U M
None
Entscheidungsproblem
Halts?
Halts? Negate
Halts? Negate Copy
Halts? Negate Copy { X
( ) X X
Halts? Negate Copy X
Halts? Negate Copy X X
Halts? Negate Copy true X X
Halts? Negate Copy X ∞ true X
Halts? Negate Copy X ∞ true X X X }
Halts? Negate Copy false X X
Halts? Negate Copy false halting now X X
Halts? Negate Copy false halting now X X X X
}
• Proof by contradiction • Decision machine cannot exist •
We are screwed
How to cope
None
• Restricted subsets of computing • Finite state machines •
Type systems
Conclusion
Programming is hard