summaryrefslogblamecommitdiffstats
path: root/2021/talks/form.md
blob: e96b7af28eca713f0d66013f3a9cffdcedfc8383 (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

Live Q&A: <https://bbb.emacsverse.org/b/ban-zxh-gqp-pwf>

Name Pronunciation: (EE-un YOU-r)

Pronouns: he/him/his

Preferred contact info: ian@retrospec.tv / ieure on Libera

[[!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

-  What is EIEIO?
-  Why OOP?
-  The CLOS Model
    -  Classes
    -  Generic Functions
    -  Methods
    -  Specialization
    -  Method Qualifiers
    -  Multiple Inheritance
    -  Nice Properties
-  Practical Examples
    -  Encapsulation
        -  Example: `transmission.el`
    -  Abstraction
        -  Example: `sql.el`
    -  Extensibility
        -  Example: comint
-  Conclusion


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

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