This repository has been archived by the owner on Jul 22, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 25
Rich Hickey Keynote
Ben Oakes edited this page Apr 23, 2012
·
18 revisions
Presenter: Rich Hickey
Title: Simplicty Matters
Rich Hickey, the author of Clojure and designer of Datomic, is a software developer with over 20 years of experience in various domains. Rich has worked on scheduling systems, broadcast automation, audio analysis and fingerprinting, database design, yield management, exit poll systems, and machine listening, in a variety of languages.
- "Simplicity is prerequisite for reliability." - Dijsktra
- "Programmers know the benefits of everything and the tradeoffs of nothing"
- "You're complecting things right now"
- "I have a hairball now that does it"
- RubyConf 2012 will be in Denver, CO October 25th
- Conflated words:
- Sim=plex: "one fold/braid"
- Easy: "lie near"
- Easy
- Near, at hand (part of your toolkit, etc)
- Close to your understanding/familiar
- Near our capabilities; about our mental work
- How much complexity can we take on?
- What's easy to you might not be easy for someone else
- Limits
- 7 +/- 2 (from psychology)
- Intertwined things (coupled?) make change more difficult
- Change
- ...is the operative word
- Size/complexity of software is the limit
- Being able to reason, etc. is critical
- Simplicity
- Process isn't important; architectural agility is
- Is design demonized?
- "Grand plans" isn't design
- Taking things apart is the goal
- Goal: simple compontents
- The "Kazoo" Fighers
- Do you want to be in a band that consistently chooses the easiest thing?
- Homogenaeity
- You're more replacable if there's homogenaeity
- Too much focus on ourselves rather than our programs
- "Complect"
- Taking more than one thing and tying it together in a knot
- Easy isn't bad
- You can become familiar
- Learning new things is good
- Getting smarter is hard
- Easy is best in all three senses
- Simpler components
- Simpler languages, techniques, approaches
- Same programs!
- What are some options? (see slides if posted; there's a table)
- Simplicity is hard work, but there's a huge payoff.
- Constatin Brancusi quote
- Order is complex
- "The order problem"
- Makes every use more complex
- Positional arguments vs named arguments (or a hashmap)
- This is "syntax vs data"!
- See table
- Leverage hashes in your language; use them often
- Information is simple
- Classes can make things more complex
- Makes generic manipulation harder
- Information doesn't have implementation
- Information has representation
- A test: can you move it?
- Morphing from components to systems of systems...
- Subsytems must have:
- Well-defined boundaris
- Abstract verbs
- Take and return data
- Simplicity requires vigilance
- Be aware of entanglement and how to be sensitive about it
- Tools don't do this (e.g., tests)
A crowd-sourced conference wiki!
Working together is better. :)
- Speakers, for example:
- Recent Conferences
- Software
- Offline Access
- Contributors (More than 50!)
- Code Frequency