Presentation by ggiraldez and myself in during a Manas review on the exhilaration from a paradigm change, and the discussion of the functional paradigm as a next step in development.
3. Learning, rather than solving, is the
measure of exhilaration
Rock-Paper-Shotgun, A Good Puzzle Game Is Hard To Build, 2015
4. 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.
5. 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.
6. 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.
7. 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.
8. 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.
9. Alan Kay, Talk at Creative Think Seminar, 1982
A change in perspective is worth 80
IQ points
10. 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.
11. 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.
12. 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.
13. 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.
14. Edsger W. Dijkstra, How do we tell truths that might hurt, 1975
Simplicity is prerequisite for reliability.
15. 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
16. 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.
17. Easy
Near to our understanding
Familiar
Relative
Subjective
Rich Hickey, Simple made easy, Strange Loop conference, 2011
Simple
One fold, one role, one task
About lack of interleaving,
not lack of cardinality
Objective
18. 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.
20. 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.
21. John Carmack, 2001
If you're willing to restrict the flexibility of your
approach, you can almost always do something
better.
22. 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.
23. 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.
24. John Carmack, Twitter, 2011
Sometimes, the elegant implementation is just
a function. Not a method. Not a class. Not a
framework. Just a function.
25. 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.
26. Michael Feathers, Twitter, 2010
Object oriented programming makes code
understandable by encapsulating moving parts.
Functional programming makes code
understandable by minimizing moving parts.
27. 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.
28. Rich Hickey, The Value of Values, 2012
All that specificity kills your reuse
29. 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.
30. 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>
31. 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.
32. Tomek Borek, Why bother with FP?, Lambda Days, 2015
Papers: Yes
Studies: No
33. Kernighan and Ritchie, The C Programming Language, 1978
The only way to learn a new programming
language is by writing programs in it.
34. 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.
35. 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.
36. 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.
37. 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.
38. 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