summaryrefslogblamecommitdiffstats
path: root/2021/talks/form.md
blob: 08b25c1d4fff5f41ca29129d4e84bb98441e84e7 (plain) (tree)
1
2
3
4
5
6
7
8
9
10









                                                                                 

                                                               











































                                                                     
                                                          
 
                                                          
[[!meta title="Old McCarthy Had a Form"]]
[[!meta copyright="Copyright © 2021 Ian Eure"]]
[[!inline pages="internal(2021/info/form-nav)" raw="yes"]]

<!-- You can manually edit this file to update the abstract, add links, etc. --->


# Old McCarthy Had a Form
Ian Eure

[[!inline pages="internal(2021/info/form-schedule)" raw="yes"]]

Most practical languages are multi-paradigm, offering several
abstractions for the programmer.  But did you know that Emacs Lisp
comes with a powerful system for object-oriented programming? Join me
for a discussion of EIEIO, and learn how it can help you write more
modular, flexible Emacs Lisp.



# Outline

-   5-10 minutes: (brief description/outline)
    -   What is CLOS/EIEIO?
    -   Why would I want OOP in Emacs Lisp?
    -   How is the CLOS object model different from C++/Java/.NET?
    -   Further reading

<!--
-   20 minutes: (brief description/outline)
    -   What is CLOS/EIEIO?
    -   Why would I want OOP in Emacs Lisp?
    -   How is the CLOS object model different from C++/Java/.NET?
    -   Generic functions
    -   Methods which implement those functions
        -   Specializers
    -   Further reading

-   40 minutes: (brief description/outline)
    -   What is CLOS/EIEIO?
    -   Why would I want OOP in Emacs Lisp?
    -   How is the CLOS object model different from C++/Java/.NET?
    -   Generic functions
    -   Methods which implement them
        -   Specializers
    -   Example interface & demo
    -   Classes
        -   Slots
        -   Initializing instances
        -   Cloning & other miscellany
    -   Inheritance
        -   Method qualifiers
    -   Further reading
    -   Q&A

-->
[[!inline pages="internal(2021/captions/form)" raw="yes"]]

[[!inline pages="internal(2021/info/form-nav)" raw="yes"]]