Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Finding a Way Out
Search
evandrix
March 28, 2014
Programming
0
48
Finding a Way Out
Chris Granger @ StrangeLoop 2013
evandrix
March 28, 2014
Tweet
Share
More Decks by evandrix
See All by evandrix
Floating Point Consistency
evandrix
1
46
Splat
evandrix
1
100
Other Decks in Programming
See All in Programming
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
140
JETLS.jl ─ A New Language Server for Julia
abap34
1
410
ゲームの物理 剛体編
fadis
0
350
【CA.ai #3】ワークフローから見直すAIエージェント — 必要な場面と“選ばない”判断
satoaoaka
0
260
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
2.7k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
160
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
38
26k
WebRTC、 綺麗に見るか滑らかに見るか
sublimer
1
190
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
160
dotfiles 式年遷宮 令和最新版
masawada
1
790
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
8
2.4k
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
250
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1032
470k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Music & Morning Musume
bryan
46
7k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Building Flexible Design Systems
yeseniaperezcruz
330
39k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Code Reviewing Like a Champion
maltzj
527
40k
Transcript
Finding a way out Chris Granger 8/20/13
How do we make programming better?
2004 - 2009
2009 - 2011
2011 - 2013
Still broken.
How do we make programming better?
What is programming? And what’s wrong with it?
Programming is unobservable
person.walk()
Programming is unobservable
Programming is indirect
#include <algorithm>! #include <iostream>! #include <iterator>! #include <cmath>! #include <vector>!
#include <iterator>! #include <numeric>! ! template <typename Iterator>! double standard_dev( Iterator begin , Iterator end ) {! double mean = std::accumulate( begin , end , 0 ) / std::distance( begin , end ) ;! std::vector<double> squares ;! for( Iterator vdi = begin ; vdi != end ; vdi++ ) ! squares.push_back( std::pow( *vdi - mean , 2 ) ) ;! return std::sqrt( std::accumulate( squares.begin( ) , squares.end( ) , 0 ) / squares.size( ) ) ;! }! ! int main( ) {! double demoset[] = { 2 , 4 , 4 , 4 , 5 , 5 , 7 , 9 } ;! int demosize = sizeof demoset / sizeof *demoset ;! std::cout << "The standard deviation of\n" ;! std::copy( demoset , demoset + demosize , std::ostream_iterator<double>( std::cout, " " ) ) ; ! std::cout << "\nis " << standard_dev( demoset , demoset + demosize ) << " !\n" ;! return 0 ;! }!
None
Programming is indirect
cards[0][12]
None
Programming is indirect
Programming is incidentally complex
unobservable ! indirect ! incidentally complex
teacup teacup teacup teacup teacup teacup teacup teacup teacup teacup
teacup teacup teacup
Data transformation.
observable, direct, simple
medium an agency or means of doing something.
None