Issues with Object-Oriented Programming in Guile
2024-12-30
This article explores the discrepancies between Guile Scheme's object-oriented programming system, GOOPS, and Common Lisp's Object System (CLOS), highlighting GOOPS's shortcomings. GOOPS lacks the elegance and robustness of CLOS in several key areas: setter specialization doesn't compose with inheritance, it lacks before/after/around method qualifiers, method combination algorithms are not controllable, method argument specialization is limited, keyword arguments are unsupported, and documentation strings are absent. The author suggests improvements such as mimicking CLOS behavior, adding method qualifiers, and enhancing method argument specialization to improve code elegance and reduce bugs.
Read more
Development