I was introduced to the non-easy, but simple concept of immutability by Clojure and it changed the way I think about software, thanks for the remaster!
00:30 🤯 Simplicity is a prerequisite for reliability in software development, and we need to focus more on building simple systems. 02:34 📚 "Simple" means one fold or one twist, while "complex" means braided or folded together. Understanding this distinction is crucial in software development. 07:20 🤖 Easy can refer to being physically near, familiar, or within our capabilities. It's essential to recognize these different aspects of "easy" when discussing software. 11:54 🏃 Focusing solely on ease (fast development) at the expense of simplicity (understandable and maintainable code) will eventually slow down software development. 19:50 💡 Some constructs that seem easy can lead to complex and incidental complexity in software. Prioritizing simplicity in output is critical for software quality and reliability. 21:51 🧩 Simplicity leads to increased flexibility, independence of decisions, and easier policy changes in software development. 23:23 🧠 To deal with complexity, rather than trying to become smarter, simplify by reducing incidental complexity in your software. 27:18 🧶 "Complect" means intertwining or braiding, and it's a source of complexity in software. 30:19 🔄 Simple components allow for horizontal separation and vertical stratification, leading to robust software design. 39:31 🕸 Various software elements like state, objects, methods, inheritance, syntax, and more can contribute to complexity by intertwining different concerns. 42:38 🧩 The talk emphasizes the importance of distinguishing between "simple" and "easy" in software development. 43:07 🛠 Developing software can be simplified by choosing simpler tools and focusing on the essence of the problem, rather than complex constructs. 44:09 📦 Use values and persistent collections for simplicity, and avoid unnecessary complexity in data manipulation. 45:38 🌐 Simplify communication by using data instead of arbitrary command strings, and aim for polymorphism ala carte. 47:02 🔀 Simplify complex systems by using declarative rule systems and focus on consistency, transactions, and values. Made with HARPA AI
there is a talk about ggplot and clojure where to define the options for a chart he uses rules because the end user expects to give a subset of the options and the system would fill the rest. for example the user asks for a a chart plot will provide different options than when asking for bar char and the system has to fill the rest of the options
I saw Uncle Bob (Robert C. Martin) recommending this "wonderful talk" in his book "Clean Craftsmanship" in the chapter on Simple Design, so I'm here...
Ah yes, the director's cut version. Thanks for this.
I was introduced to the non-easy, but simple concept of immutability by Clojure and it changed the way I think about software, thanks for the remaster!
The quip about firing the starting gun every hundred meters. What a perfect metaphor. I am in awe
I have watched the talk several times and everytime I am learning something more.
00:30 🤯 Simplicity is a prerequisite for reliability in software development, and we need to focus more on building simple systems.
02:34 📚 "Simple" means one fold or one twist, while "complex" means braided or folded together. Understanding this distinction is crucial in software development.
07:20 🤖 Easy can refer to being physically near, familiar, or within our capabilities. It's essential to recognize these different aspects of "easy" when discussing software.
11:54 🏃 Focusing solely on ease (fast development) at the expense of simplicity (understandable and maintainable code) will eventually slow down software development.
19:50 💡 Some constructs that seem easy can lead to complex and incidental complexity in software. Prioritizing simplicity in output is critical for software quality and reliability.
21:51 🧩 Simplicity leads to increased flexibility, independence of decisions, and easier policy changes in software development.
23:23 🧠 To deal with complexity, rather than trying to become smarter, simplify by reducing incidental complexity in your software.
27:18 🧶 "Complect" means intertwining or braiding, and it's a source of complexity in software.
30:19 🔄 Simple components allow for horizontal separation and vertical stratification, leading to robust software design.
39:31 🕸 Various software elements like state, objects, methods, inheritance, syntax, and more can contribute to complexity by intertwining different concerns.
42:38 🧩 The talk emphasizes the importance of distinguishing between "simple" and "easy" in software development.
43:07 🛠 Developing software can be simplified by choosing simpler tools and focusing on the essence of the problem, rather than complex constructs.
44:09 📦 Use values and persistent collections for simplicity, and avoid unnecessary complexity in data manipulation.
45:38 🌐 Simplify communication by using data instead of arbitrary command strings, and aim for polymorphism ala carte.
47:02 🔀 Simplify complex systems by using declarative rule systems and focus on consistency, transactions, and values.
Made with HARPA AI
thanks!!
Great to see this classic remastered!
finally , high quality video with deck in the same frame
The juggling animation is so much better in this version!
31:07 Can someone give me an example where I should replace a conditional with a rule? I’m interested in using more rules
there is a talk about ggplot and clojure where to define the options for a chart he uses rules because the end user expects to give a subset of the options and the system would fill the rest. for example the user asks for a a chart plot will provide different options than when asking for bar char and the system has to fill the rest of the options
I saw Uncle Bob (Robert C. Martin) recommending this "wonderful talk" in his book "Clean Craftsmanship" in the chapter on Simple Design, so I'm here...
would it be accurate to say that spaghetti is complex, lasagna is simple?