summaryrefslogblamecommitdiffstats
path: root/2023/talks/core.md
blob: a413a3c23ab1d60500c7b6bd5c68cd127fc8aad0 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11










                                                                                                    


                                          
                               



                                                                                                                                                                    































                                                                        







                                                                       
                                                                    








                                                                        
                                                                     























                                                                        
                                                                      

                                                           
                                                                   

                                                              
                                                                
                                                                      
                                                                     

                                                                       
                                                                      

                                                                  
                                                                       

                                                                   
                                                                      

                                                                      


                                                                     















                                                                        
                                                             
















                                                                        
                                                                   
                          
                                                                 




                                                                     

                                                                       


                                                                        

                                                                   






                                                                     





                                                            
[[!meta title="Emacs core development: how it works"]]
[[!meta copyright="Copyright © 2023 Stefan Kangas"]]
[[!inline pages="internal(2023/info/core-nav)" raw="yes"]]

<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
<!-- You can manually edit this file to update the abstract, add links, etc. --->


# Emacs core development: how it works
Stefan Kangas

[[!template id="help"
summary="main talk does not have captions"
tags="help_with_main_captions"
volunteer="jchelary 2024-01-10"
message="""This talk does not have captions yet.
Would you like to help [caption this talk](/captioning)?
You may be able to start with these [autogenerated captions](/2023/captions/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt)."""]]

[[!inline pages="internal(2023/info/core-before)" raw="yes"]]

-   Why it is fun and exciting to contribute to Emacs
    -   We have easy bugs that anyone can fix, in random packages
    -   And extremely hard ones for experts in things like garbage
        collection, and compilers
-   We are not scary, in fact working to build a welcoming culture.
-   The nature of a public list
    -   Don't listen to random people being negative or hostile
    -   No response is not necessarily a bad thing
-   Cultural aspects of emacs-devel vs GitHub
-   How to behave (be polite, etc.)
-   Email vs forge, help wanted.
-   Why copyright assignment
-   Plans for Emacs 30 (maybe) - needs coordinating with Eli

If I have more time, I'd like to cover more things, for example:

-   GNU ELPA vs NonGNU ELPA - why and how
    -   Our plans for GNU ELPA going forward (bundle stuff in tarballs)
-   The future of Emacs: a vision

Basically, I want to do everything I can to inspire people to join core
development and to lower the barrier to participating.  In effect trying
to work on "bridging the gap" that we have identified exists between
emacs-devel and the community.

About the speaker:

Stefan Kangas is one of the Emacs core maintainers.


# Discussion

## Questions and answers

-   Q:Can you tell us some about your background with Emacs development
    and programming in general (your professional work possibly)?
    -   A: studied CompSci at university.  started programming on a
        Commodore 64, then C, Perl, and so on
-   Q: Do you think that one day, there will be a "native" graphical
    web browser in Emacs or is it kind of against its philosophy and
    architecture? So will we stick just with EWW and EAF or similar
    workaround tricks?
    -   A: Proper HTML rendering in Emacs is a dream right now
-   Q: Emacs development and communication still is very much focused on
    E-Mail mailing lists. I like this. But what do you think about
    introducing other channels for talking to users? E.g., the Emacs
    project/ community could set up a Mastodon instance of its own etc.
    -   A:
-   Q: What are some features or packages you'd like to see developed
    by the community?
    -   A: Some of the things that Stefan would like to see happen right
        now
        -   treesitter: improving and working on new modes
        -   refactoring capabilities in Emacs
-   Q: What is the hardest decision being made within Emacs-dev for last
    three years?
    -   A:
-   Q: Any plans to integrate EXWM into core? Emacs is a really good WM.
    -   A:
-   Q: Do you think it is a good idea to choose Org-mode for writing
    documentation instead of Texinfo?
    -   A
-   Q: What do you plan to work on in Emacs core in the future?
    -   A:
-   Q: What do you use Emacs for in your life, other than working on
    Emacs itself?
    -   A: Programming, obviously (Stefan works as a programmer). 
        org-mode (including to prepare this talk), for productivity, rss
        reader, emails.
-   Q: What could we do in order to make Emacs more attractive for
    younger users?
    -   A: 
-   Q: How are we going to make sure that the cool idea is going to pass
    it through for the next generation, let's say 20 years later, that
    generation still have the good knowledge we have today.
    -   A:
-   Q: If you're willing to discuss it, what do you think about the
    recent controversy about use of cl-lib in Emacs core code?
    -   A: Stefan's opinion is on emacs-devel.
-   Q: When we find a bug, in our emacs.... do we need to try to
    replicate it on the sid version (debian/sid=1:29.1+1-5 at ehe time
    of writing), then update all the usual lisp package we use... and
    if we succeed to replicate the bug in this version, only then go to
    the development version 30 and do the same ? Then only, ask for
    assistance in reporting the bug we found ("M-x report-emacs-bug" 
    will be sufficient ) ?
    -   A: (Answering for Stefan, because information about how to
        report Emacs bugs is widely available, including in Emacs's own
        documentation: You should try to reproduce it on the latest
        released version of Emacs, with a clean Emacs configuration
        (i.e. "emacs -q"), before reporting.  And you should look for
        existing bug reports on the tracker.  If you have extra time,
        consider trying to reproduce it on the master branch or the
        branch for the next release as well.  And if you're sure
        you've found a bug, be sure to report it using "M-x
        report-emacs-bug" rather than just emailing emacs-devel about
        it.)
-   Q: On branching off sub-threads. I note that they are less visible
    compared to starting a new thread in practice. I am wondering if it
    is just my impression or something devs also observe.
    -   A:
-   Q: What about rewriting emacs in Rust? Use guile instead of elisp?
    Multi-threaded emacs? Make emacs prettier and shiny? And of course,
    sane defaults! Just kidding. We are spoiled children because you and
    Eli, Lars, etc. do an impressive work. I live in Emacs since 2001.
    Thanks!
    -   A:
-   Q: The only downside I see with copyright assignment is that one has
    to disclose their real identity. Would it be a possibility to assign
    copyright under a nickname?
    -   A: (not the speaker) FSF said they can publish a pseudonym but
        need the actual identity in their paperwork, which will be
        presumably protected, but it's not totally anonymous.
        -   (AFAIK from Bastien) The actual FSF assignee list is not
            public - I know that it is available to maintainers, but
            must not be shared.
-   Q:Do you think it is possible to reach an agreement on sane defaults
    for better out of the box experience?
    -   A: It's more of a social problem than a technical problem (my
        sane defaults might not be yours).
-   Q:Will xwidgets have a future? Seeing the new bugs popping up in the
    latest xwidget dev.
    -   A:
-   Q: Have you voted for Emacs as the software of the year on the
    Tuxies by Jupiter Broadcasting? I did, because Emacs 29 is great!
    Thank you! :-)

## Notes

-   Cambrian explosion of packages (5000 packages in MELPA)
    -   GNU ELPA <- generally better if someday it might be good to
        ship it with Emacs
    -   João Távora (Eglot author): haven't seen a problem with
        copyright assignment
        -   To be fair, it does happen in certain cases. But
            infrequently.
    -   New package archive NonGNU ELPA is now enabled by default, no
        copyright assignment needed
-   Emacs is hackable. I think that's a blessing and a curse. The types
    of choices you can make when you implement... Different choices
    between things like Common Lisp and Scheme. I think we have that
    kind of tensions within Emacs. These are good discussions to have. I
    think what will never change is that Emacs is hackable. Emacs is
    customizable. This is what's bringing you that amazing user
    experience. The flip side is that it's easy to hack around bugs
    instead of fixing them. Or we accept limitations in Emacs core. I
    think we could get better at taking those few extra steps to make
    Emacs better for all users.
- Thank you Stefan! That was all really cool! :D
- thank you you guys it's fantastic
- thank you guys to say you amazing is to not give you enough


[[!inline pages="internal(2023/info/core-after)" raw="yes"]]

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