a change in perspective
TRANSCRIPT
![Page 1: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/1.jpg)
A change in perspectiveGustavo Giráldez & Santiago Palladino
![Page 2: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/2.jpg)
xkcd #353
![Page 3: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/3.jpg)
Learning, rather than solving, is the measure of exhilaration
Rock-Paper-Shotgun, A Good Puzzle Game Is Hard To Build, 2015
![Page 4: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/4.jpg)
Indie Dev Stories, Game Theory Applied: the puzzle of designing a puzzle game, 2012
Puzzles are essentially problem solving tasks. And these kinds of tasks are
appealing to our human brains.
![Page 5: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/5.jpg)
Jaime Zawinski, Coders at Work, 2009
[I enjoy] the problem-solving aspect of [programming], I guess. Just figuring out how to get from point A to point B— how to make the machine do what you want. That’s the basic element that the satisfaction of programming
comes from.
![Page 6: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/6.jpg)
Rock-Paper-Shotgun, A Good Puzzle Game Is Hard To Build, 2015
A good puzzle is elegant and often minimal.
A puzzle should know what the point is, what it’s trying to illustrate to you.
![Page 7: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/7.jpg)
Rock-Paper-Shotgun, A Good Puzzle Game Is Hard To Build, 2015
When I’m excited playing puzzle games it’s because each new puzzle is
forcing me to understand something new about the mechanics of the world
I’m taking part in.
![Page 8: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/8.jpg)
Rock-Paper-Shotgun, A Good Puzzle Game Is Hard To Build, 2015
If you can go through the motions and apply the same sort of thought process and solve every level, then, that can be
engaging, but I don’t think it’s very interesting.
![Page 9: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/9.jpg)
Alan Kay, Talk at Creative Think Seminar, 1982
A change in perspective is worth 80 IQ points
![Page 10: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/10.jpg)
Simon Peyton Jones, Coders at Work, 2009
The most depressing thing about life as a programmer is if you’re faced with a chunk of
code that either someone else wrote or, worse still, you wrote yourself but you no longer dare
to modify. That’s depressing.
![Page 11: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/11.jpg)
Brad Fitzpatrick, Coders at Work, 2009
Maybe there are so many layers of abstraction that people don’t know what the hell is going on underneath because the computers
are so damn fast that it hides your stupidity.
![Page 12: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/12.jpg)
Simon Peyton Jones, Coders at Work, 2009
Systems are filled with so much goop [...] And each of them has a fat book that describes it. There’s a lot of stuff you need to just have in your head. It’s like learning a language—a
human language—there’s a large vocabulary. For me, that’s no fun.
![Page 13: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/13.jpg)
Simon Peyton Jones, Coders at Work, 2009
I really think [programming] is a funny medium because it’s so malleable. You can do
virtually anything with it. But that means you can build ugly things as well as beautiful things
and things that will be completely unmaintainable and un-durable.
![Page 14: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/14.jpg)
Edsger W. Dijkstra, How do we tell truths that might hurt, 1975
Simplicity is prerequisite for reliability.
![Page 15: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/15.jpg)
Tony Hoare, The Emperor’s Old Clothes, Turing Award Lecture, 1980
There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that
there are no obvious deficiencies. The first method is far more difficult.
Sir
![Page 16: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/16.jpg)
Rich Hickey, RailsConf 2012 Keynote Speech, 2012
Simplicity is hard work. But, there's a huge payoff. The person who has a genuinely simpler system - a system made out of
genuinely simple parts, is going to be able to affect the greatest change with the least work.
He's going to kick your ass.
![Page 17: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/17.jpg)
Easy
Near to our understandingFamiliarRelative
Subjective
Rich Hickey, Simple made easy, Strange Loop conference, 2011
Simple
One fold, one role, one taskAbout lack of interleaving,
not lack of cardinality
Objective
![Page 18: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/18.jpg)
Simon Peyton Jones, Coders at Work, 2009
Unless some people are working on radical and elegant things you’re going to end up in a
local optimum, incrementally optimizing the mainstream but stuck on a low hill.
![Page 19: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/19.jpg)
Paul Graham, Beating the Averages, 2001
The Blub Paradox
![Page 20: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/20.jpg)
Ben Moseley, Peter Marks, Out of the tar pit, 2006
Power corrupts. [...] The more powerful a language (i.e. the more that is possible within the language), the harder it is to understand
systems constructed in it.
![Page 21: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/21.jpg)
John Carmack, 2001
If you're willing to restrict the flexibility of your approach, you can almost always do something
better.
![Page 22: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/22.jpg)
Peter Deutsch, Coders at Work, 2009
Every programming language today that I can think of, that’s in substantial use, has the
concept of pointer. I don’t know of any way to make software built using that fundamental
concept qualitatively better.
![Page 23: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/23.jpg)
Joe Armstrong, Coders at Work, 2009
The problem with object- oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a
banana but what you got was a gorilla holding the banana and the entire jungle.
![Page 24: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/24.jpg)
John Carmack, Twitter, 2011
Sometimes, the elegant implementation is just a function. Not a method. Not a class. Not a
framework. Just a function.
![Page 25: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/25.jpg)
Simon Peyton Jones, Coders at Work, 2009
Functional programming has a lot to offer. Fundamentally it enables you to build more
robust structures. Structures that are easier to comprehend and test and reason about.
![Page 26: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/26.jpg)
Michael Feathers, Twitter, 2010
Object oriented programming makes code understandable by encapsulating moving parts.
Functional programming makes code understandable by minimizing moving parts.
![Page 27: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/27.jpg)
Rich Hickey, “Clojure, made simple”, 2015
Our fundamental construct, the object, conflates two things, it doesn’t give us two separate ways to talk about processes, for
which objects are an OK approach, and information, for which they are a terrible
approach.
![Page 28: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/28.jpg)
Rich Hickey, The Value of Values, 2012
All that specificity kills your reuse
![Page 29: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/29.jpg)
Alan Perlis, Epigrams on Programming, 1982
It is better to have 100 functions operate on one data structure than 10
functions on 10 data structures.
![Page 30: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/30.jpg)
Rich Hickey, The Value of Values, 2012
What is a Fact? Place where information is stored. There is a place for every bit of
information. Facts have operations, e.g. get and set. Operations control how facts can
change. To convey a fact, convey its location.</sarcasm>
![Page 31: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/31.jpg)
Rich Hickey, “Clojure, made simple”, 2015
We are the stewards of the world’s information. And information is just data. Is not a complex thing. Is not an elaborate thing. It’s a
simple thing, until we programmers start touching it.
![Page 32: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/32.jpg)
Tomek Borek, Why bother with FP?, Lambda Days, 2015
Papers: YesStudies: No
![Page 33: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/33.jpg)
Kernighan and Ritchie, The C Programming Language, 1978
The only way to learn a new programming language is by writing programs in it.
![Page 34: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/34.jpg)
Brad Fitzpatrick, Coders at Work, 2009
You never learn something until you have to write something in it, until you have to live and breathe it. It’s one thing to go learn a language for fun, but until you write some big, complex
system in it, you don’t really learn it.
![Page 35: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/35.jpg)
Alan Kay, Meeting at PARC, 1971
Don't worry about what anybody else is going to do. The best way to predict the future is to
invent it.
![Page 36: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/36.jpg)
Simon Peyton Jones, Coders at Work, 2009
Part of what makes programming fun is trying to write programs that have an intellectual
integrity to them. I think a good attribute of a good programmer, is they try to find a beautiful
solution.
![Page 37: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/37.jpg)
R. Buckminster Fuller, 1895-1983
When I am working on a problem I never think about beauty. I think only how to solve the problem. But when I have finished, if the
solution is not beautiful, I know it is wrong.
![Page 38: A change in perspective](https://reader030.vdocument.in/reader030/viewer/2022032613/5872592d1a28ab31498b49c3/html5/thumbnails/38.jpg)
References● Rich Hickey, The value of values● Tomek Borek, Why bother with FP?● Rich Hickey, Simple made easy● Peter Seibel, Coders at Work● Moseley & Marks, Out of the tar pit● Marsh Davies, A good puzzle game is hard to build