Organizing Programs Without Classes
📜 Abstract
Object-oriented programming (OOP) provides powerful tools for organizing large programs, for concentrating on the essential aspects of the job rather than on arcane implementation details. People simply cannot comprehend large amounts of code unless it is well organized, and the OOP paradigm offers an efficient solution to this problem – in many but not all cases. The paper explores means for organizing programs, which are functionally placed on a different plane than traditional OOP based on classes, yet equally (if not more) powerful and convenient. One such way is through functional programming. Separating interface from implementation is a more general idea not limited to OOP. Our hypothesis is that functional languages offer a better insight into programming methodologies, at the same time affording a good organization of the code. Moreover, the choice of the functional style helps to understand and appreciate why OOP has had the impact it produced.
✨ Summary
The paper “Organizing Programs Without Classes” by Oleg Kiselyov critiques the traditional use of object-oriented programming (OOP) for organizing programs, proposing that functional programming can be a more powerful and convenient tool for certain tasks. The paper states that separating interface from implementation is a broader concept than OOP. Kiselyov suggests that functional languages provide deeper insights into programming methodologies and proposes their utility for well-organized code.
Upon conducting a web search, this specific paper does not appear to have directly influenced widely acknowledged research post its publication. The ideas of this paper, however, correlate with a broader discourse on the merits of functional programming and its methodologies, especially in the early period of functional programming adoption. Other related work echoes similar themes, such as emphasizing function composition and immutable data structures, typical strengths attributed to functional languages. This discourse has eventually contributed to the increasing popularity of functional programming languages such as Haskell, Erlang, and Clojure in both academic and certain industry environments. Despite these thematic overlaps, no specific citations of this paper were identified in currently available academic or industry resources.