Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RubyConf 2016 - Composition by James Dabbs Our work as programmers consists largely of problem decomposition and solution recomposition. This talk is interested in how we cobble small units together into cohesive solutions. We'll examine and compare both object and functional composition, using a Haskell-inspired, functional style of Ruby. Along the way, we'll see how good functional principles can improve our object-oriented design, and vice versa.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
The video titled 'Composition' features a talk by James Dabbs at RubyConf 2016, focusing on the theme of composition in programming. Dabbs discusses how programmers decompose complex problems and recompose solutions effectively, stressing the importance of understanding both object and functional composition. He aims to highlight the similarities and differences between these two approaches, emphasizing that they should not be viewed in isolation. Key points discussed in the talk include: - **Definition of Composition**: Dabbs defines composition as the process of combining pieces cohesively to solve programming problems. - **Object Composition**: He explains object composition as a 'has-a' relationship, where one object maintains a reference to another, aiding in functionality instead of relying solely on inheritance. - **Real-World Examples**: Using the metaphor of topologists, he models objects and demonstrates the complexities of inheritance through humor by illustrating how jokes can be delivered by different types of topologists (e.g., Loud Topologist). - **Functional Composition**: Dabbs shifts focus to functional composition, explaining it as combining functions to build complex functionality from simpler operations. He uses Haskell syntax to illustrate this approach, emphasizing clear input-output relationships without side effects. - **Middleware as Composition**: He explains middleware functions in web servers, where each function can process input and produce output, demonstrating the elegance and simplicity of functional composition. - **Point-Free Notation**: Introduced as a way to compose functions without naming values, enhancing modularity and clarity in coding. - **Reflections on Object and Functional Paradigms**: Dabbs concludes that functional programming principles can enhance object-oriented designs, fostering simplicity and flexibility in programming. In conclusion, the talk encourages programmers to embrace both object-oriented and functional approaches harmoniously to achieve better design and development practices. Dabbs emphasizes simplicity in constructing systems, allowing for clear paths of functionality and adaptability. Overall, the insights from this talk invite programmers to rethink their approach to composition in their coding practices, aiming for elegant and effective solutions.
Suggest modifications
Cancel