diff options
Diffstat (limited to '2023/talks/core.md')
-rw-r--r-- | 2023/talks/core.md | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/2023/talks/core.md b/2023/talks/core.md new file mode 100644 index 00000000..a413a3c2 --- /dev/null +++ b/2023/talks/core.md @@ -0,0 +1,179 @@ +[[!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"]] + + |