diff options
Diffstat (limited to '')
-rw-r--r-- | 2020/info/32.md | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/2020/info/32.md b/2020/info/32.md new file mode 100644 index 00000000..8097de9c --- /dev/null +++ b/2020/info/32.md @@ -0,0 +1,16 @@ +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. + |