# Object Oriented Code in the Gnus Newsreader Eric Abrahamsen The venerable Gnus newsreader has evolved over the years to interface with many different types of news- or mail-like backend programs, presenting all of them using a unified interface. This sort of software often calls for an object-oriented architecture, at least as regards polymorphism, yet Gnus was written well before Emacs lisp acquired the object-oriented tools and libraries – largely borrowed from Common Lisp – that it boasts today. Yet Gnus needed something "object-oriented-like", and so nnoo.el was born: a rather amazing (and frankly terrifying) implementation of object-oriented behavior using functional code. This talk will be a brief introduction to how this existing system works, and to the ongoing, incremental effort to port it over to newer Elisp tools like generic functions, structs, and objects.