A change in perspective
-
Upload
santiago-palladino -
Category
Software
-
view
311 -
download
0
Transcript of A change in perspective
A change in perspectiveGustavo Giráldez & Santiago Palladino
xkcd #353
Learning, rather than solving, is the measure of exhilaration
Rock-Paper-Shotgun, A Good Puzzle Game Is Hard To Build, 2015
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.
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.
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.
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.
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.
Alan Kay, Talk at Creative Think Seminar, 1982
A change in perspective is worth 80 IQ points
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.
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.
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.
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.
Edsger W. Dijkstra, How do we tell truths that might hurt, 1975
Simplicity is prerequisite for reliability.
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
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.
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
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.
Paul Graham, Beating the Averages, 2001
The Blub Paradox
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.
John Carmack, 2001
If you're willing to restrict the flexibility of your approach, you can almost always do something
better.
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.
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.
John Carmack, Twitter, 2011
Sometimes, the elegant implementation is just a function. Not a method. Not a class. Not a
framework. Just a function.
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.
Michael Feathers, Twitter, 2010
Object oriented programming makes code understandable by encapsulating moving parts.
Functional programming makes code understandable by minimizing moving parts.
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.
Rich Hickey, The Value of Values, 2012
All that specificity kills your reuse
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.
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>
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.
Tomek Borek, Why bother with FP?, Lambda Days, 2015
Papers: YesStudies: No
Kernighan and Ritchie, The C Programming Language, 1978
The only way to learn a new programming language is by writing programs in it.
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.
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.
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.
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.
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