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
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
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.8k
ぼくの開発環境2026
yuzneri
0
180
Basic Architectures
denyspoltorak
0
660
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
610
組織で育むオブザーバビリティ
ryota_hnk
0
170
AtCoder Conference 2025
shindannin
0
1.1k
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
380
CSC307 Lecture 08
javiergs
PRO
0
670
AI巻き込み型コードレビューのススメ
nealle
1
150
CSC307 Lecture 09
javiergs
PRO
1
830
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
710
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
Featured
See All Featured
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
250
Visualization
eitanlees
150
17k
30 Presentation Tips
portentint
PRO
1
210
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
New Earth Scene 8
popppiees
1
1.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Everyday Curiosity
cassininazir
0
130
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
56
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
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