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.

Read more
Development code reuse

Sharing Is Scaring: The Unexpected Link Between Cloud File Sharing and Programming Language Semantics

2025-09-03

Users frequently struggle with cloud file-sharing applications. This study argues that these difficulties stem not just from poor interfaces, but also from a fundamental misunderstanding of the underlying semantics of actions like linking, attaching, downloading, and editing—mirroring challenges in grasping programming concepts such as aliasing, copying, and mutation. A user study reveals widespread misconceptions by mapping known programming-education misunderstandings onto similar file-sharing tasks. The researchers also developed a formal semantics of cloud file-sharing operations, providing a foundation for improved mental models, educational tools, and automated assistance. This formalization can support applications like trace checking and workflow synthesis.

Read more