Modularity reduces complexity by isolating components and allowing for reuse. It is difficult to achieve true modularity due to dependencies between modules, lack of clear specifications, and assumptions that will break over time. The document outlines the history of modularity in programming languages from the 1960s to present day, and recommends using functional programming techniques like typeclasses, effects, and wiring libraries to help achieve modularity. It acknowledges modularity is complicated and there are no silver bullets, but emphasizes controlling dependencies, separating building from use, and using the type system to help manage complexity.