Value-oriented Design in an Object-oriented System - Juan Pedro Bolivar Puente - CppCon 2021

Explore the benefits of value-oriented design, a paradigm-shifting approach to programming that improves modularity, scalability, and reliability by composing programs of values rather than objects.

Key takeaways
  • The speaker advocates for value-oriented design, where programs are composed of values, rather than objects, to improve modularity and scalability.
  • Objects can be represented as a tree of values, with each value having a simple interface for reading and writing.
  • Lenses can be used to access and transform values in the tree, allowing for a more functional programming style.
  • The concept of “cursors” is introduced, which can be used to connect values in the tree and propagate changes.
  • The speaker provides examples of how to use lenses and cursors to implement a simple UI framework.
  • The benefits of value-oriented design include improved modularity, scalability, and reliability, as well as a more intuitive tool for thinking and reasoning about the world.
  • The speaker also mentions that value-oriented design can be applied to existing object-oriented codebases to modernize them.
  • The talk concludes with a suggestion to consider the limitations of language and how they can impact the design of a program.