Synthesizing OOP and Functional Design for Reusability
2025-09-09
This 1998 ECOOP paper tackles the challenge of extending both tools and data types in evolving programs by combining the strengths of object-oriented and functional programming. Traditional approaches struggle to support both: functional programming excels at adding tools, while OOP excels at adding new tools or extending datasets, but not both simultaneously. The paper proposes a composite design pattern that synthesizes the best of both, suggesting new linguistic features for class-based languages to achieve extensibility without modifying existing code.
Development
code reuse