+00:00:02.540 --> 00:00:03.840 All right. Hi again, everyone.
+00:00:03.840 --> 00:00:04.839 It's been a while. Well,
+00:00:04.839 --> 00:00:06.980 actually, it's been like 2 minutes tops.
+00:00:07.819 --> 00:00:09.099 We were just with John Wheatley,
+00:00:09.099 --> 00:00:11.019 and now we are with Stefan Krangas.
+00:00:11.120 --> 00:00:15.900 Hi. Hi. So as we said before,
+00:00:16.160 --> 00:00:20.600 Stefan is co-maintainer now of Is it the
+00:00:20.600 --> 00:00:22.920 entire Emacs project? How do you describe
+00:00:22.920 --> 00:00:26.260 this? Yeah, co-maintainer of GNU Emacs.
+00:00:27.439 --> 00:00:29.380 Right, perfect. So you know what?
+00:00:29.380 --> 00:00:31.760 Because I'm sure everyone is dying to hear
+00:00:32.420 --> 00:00:33.840 everything you've got to say in your
+00:00:33.840 --> 00:00:36.040 presentation I'm just going to shut up now
+00:00:36.040 --> 00:00:37.640 and leave the floor to you.
+00:00:37.640 --> 00:00:39.440 Do you need to share your screen or anything?
+00:00:40.080 --> 00:00:45.239 No. Okay great well I'll just cut my webcam
+00:00:45.239 --> 00:00:47.059 off I'll still be in the background so do not
+00:00:47.059 --> 00:00:48.940 hesitate if you've got any problem I'm still
+00:00:48.940 --> 00:00:52.560 around And I'll see you just beacon whenever
+00:00:52.560 --> 00:00:53.940 you're done. And I'll show up with the
+00:00:53.940 --> 00:00:56.120 questions. All right? Thank you,
+00:00:56.120 --> 00:00:58.739 Leo. And thank you, everyone,
+00:00:58.739 --> 00:01:02.379 for being here. I'm Stefan Kangas.
+00:01:02.739 --> 00:01:06.660 So as Leo explained, I am recently appointed
+00:01:06.680 --> 00:01:09.660 as a co-maintainer of GNU Emacs,
+00:01:10.960 --> 00:01:13.400 which a role that I'm fulfilling currently
+00:01:13.780 --> 00:01:17.460 with Eli Sretsky, who's been co-maintainer
+00:01:18.840 --> 00:01:23.320 for quite some time. So I got the question to
+00:01:23.320 --> 00:01:26.780 be a co-maintainer from Richard in August
+00:01:26.780 --> 00:01:29.280 this year. And of course,
+00:01:29.600 --> 00:01:31.460 when you get a question like that,
+00:01:31.840 --> 00:01:34.020 I couldn't not say yes.
+00:01:34.360 --> 00:01:39.440 So here we are. I can't tell you how excited
+00:01:39.920 --> 00:01:45.060 I am to have this opportunity to address the
+00:01:45.060 --> 00:01:47.380 community in this way.
+00:01:47.640 --> 00:01:49.800 I'm really humbled, of course,
+00:01:50.380 --> 00:01:55.040 to be part of it, and to be able to serve the
+00:01:55.040 --> 00:01:59.080 community in this capacity.
+00:02:00.080 --> 00:02:04.080 I've used Emacs, I think many of you might
+00:02:04.080 --> 00:02:06.820 also have used Emacs for quite some time,
+00:02:06.820 --> 00:02:11.100 but I'm going on 2 decades as an Emacs user.
+00:02:11.120 --> 00:02:14.280 My involvement in Emacs Lisp development is,
+00:02:14.280 --> 00:02:16.160 I mean, almost as long,
+00:02:16.660 --> 00:02:19.680 but my core development goes back only 4,
+00:02:19.960 --> 00:02:26.700 5 years. I have to also thank the EmacsConf
+00:02:27.180 --> 00:02:28.840 organizers who are doing,
+00:02:29.100 --> 00:02:31.960 I think, a tremendous job and have done a
+00:02:31.960 --> 00:02:34.820 tremendous job over the years in really
+00:02:34.820 --> 00:02:37.800 building and strengthening what I think is
+00:02:38.300 --> 00:02:42.180 this fantastic community of users and
+00:02:42.180 --> 00:02:46.120 developers and people interested in Emacs.
+00:02:46.620 --> 00:02:50.100 I actually had the chance to meet up with Eli
+00:02:50.100 --> 00:02:53.700 Sretzky, as well as another Emacs hacker,
+00:02:53.960 --> 00:02:57.080 Andrea Corallo, when I was at the GNU
+00:02:57.980 --> 00:03:00.460 project's 40 years celebration,
+00:03:00.800 --> 00:03:04.340 40 years since the GNU project was announced.
+00:03:05.280 --> 00:03:08.540 And it was very inspiring in general to meet
+00:03:09.660 --> 00:03:12.780 people. And I think EmacsConf should also,
+00:03:12.980 --> 00:03:18.360 I think, serve to inspire and sort of help
+00:03:19.020 --> 00:03:22.120 bring something to the type of work that many
+00:03:22.120 --> 00:03:24.340 of us are doing to improve Emacs,
+00:03:24.340 --> 00:03:26.200 whether it's in package development or in
+00:03:26.200 --> 00:03:29.680 core, to bring out the new and exciting ideas
+00:03:29.800 --> 00:03:34.040 and get people enthusiastic about Emacs,
+00:03:34.080 --> 00:03:37.580 about hacking on Emacs.
+00:03:38.560 --> 00:03:45.400 This is my little attempt to contribute with
+00:03:45.600 --> 00:03:49.440 let's say 2 things. I will first try to
+00:03:49.600 --> 00:03:54.400 present how we do Emacs core development and
+00:03:54.400 --> 00:03:58.360 why we've done some of the choices that we
+00:03:58.360 --> 00:04:02.060 have, because We have seen at times that
+00:04:02.280 --> 00:04:06.500 perhaps people aren't always clear on this or
+00:04:06.500 --> 00:04:08.660 that aspect. So maybe this will be
+00:04:08.960 --> 00:04:12.260 enlightening. I will also try to present some
+00:04:12.260 --> 00:04:17.860 kind of vision for what Emacs could be with
+00:04:18.060 --> 00:04:21.680 your help. Emacs is already very good,
+00:04:21.820 --> 00:04:26.880 as we all know, but we could be even better.
+00:04:27.040 --> 00:04:29.940 That's the reality of any type of software
+00:04:30.060 --> 00:04:35.100 development. So the overall idea of this talk
+00:04:35.220 --> 00:04:38.380 is to tell you, if you're an Emacs list
+00:04:38.380 --> 00:04:40.460 package developer today,
+00:04:40.760 --> 00:04:44.200 why you should become an Emacs core
+00:04:44.440 --> 00:04:47.300 developer, and the sort of steps that you
+00:04:47.300 --> 00:04:49.340 might want to take to do that,
+00:04:49.340 --> 00:04:52.100 or how you can help Emacs core development.
+00:04:52.120 --> 00:04:54.320 Even if you're just a user and you found a
+00:04:54.320 --> 00:04:57.340 bug, report it. Perhaps you have a feature
+00:04:57.340 --> 00:04:58.820 request that you'd like to discuss.
+00:04:58.820 --> 00:05:02.680 I think we need more interaction in general
+00:05:02.900 --> 00:05:04.900 between Emacs core developers,
+00:05:05.080 --> 00:05:06.440 typically on emacsdevil.gnu.org,
+00:05:08.440 --> 00:05:12.420 the mailing list that we use to coordinate
+00:05:12.840 --> 00:05:14.880 our development efforts,
+00:05:15.860 --> 00:05:19.520 between Emacs devil package developers and
+00:05:19.520 --> 00:05:22.460 users, Because there is so much great stuff
+00:05:22.500 --> 00:05:24.740 really going on in the community.
+00:05:25.520 --> 00:05:28.620 But I think sometimes the step to core
+00:05:28.740 --> 00:05:32.500 development seems big and perhaps even a
+00:05:32.500 --> 00:05:35.440 little bit scary. So I'm hoping to be able to
+00:05:35.440 --> 00:05:38.720 help bridge that gap, even if just a little
+00:05:38.720 --> 00:05:43.000 bit. We need more people contributing to
+00:05:43.000 --> 00:05:46.740 Emacs itself. And also a small disclaimer
+00:05:46.840 --> 00:05:49.920 here, in this talk I will only be able to
+00:05:49.920 --> 00:05:53.700 speak for myself, not for GNU or the Emacs
+00:05:53.760 --> 00:05:56.100 project, even if it's like a little bit more
+00:05:56.500 --> 00:05:58.780 official, but I will also try to give the
+00:05:58.780 --> 00:06:01.720 view of the project where it makes sense to
+00:06:01.720 --> 00:06:04.200 do so. Keep in mind, I'm only 1 of the
+00:06:04.200 --> 00:06:06.820 maintainers, the co-maintainer together with
+00:06:06.820 --> 00:06:09.820 Eli, and I can't just make decisions
+00:06:09.880 --> 00:06:11.400 arbitrarily. In a sense,
+00:06:11.680 --> 00:06:14.180 I'm as a co-maintainer and trusted as a
+00:06:14.180 --> 00:06:15.420 steward and trusted by,
+00:06:15.420 --> 00:06:16.680 of course, the GNU project,
+00:06:16.680 --> 00:06:22.000 but also by the community That we really
+00:06:22.580 --> 00:06:24.180 can't just take decisions,
+00:06:24.440 --> 00:06:27.380 I think, arbitrarily. Even if it sometimes
+00:06:27.380 --> 00:06:30.560 perhaps may seem so, or it may feel that way,
+00:06:31.100 --> 00:06:35.080 we really have to realize that we can't just
+00:06:35.080 --> 00:06:39.200 push too much of just a personal agenda to
+00:06:39.200 --> 00:06:41.520 the extent that it doesn't line up with what
+00:06:41.520 --> 00:06:45.260 is best for eMacs going forward,
+00:06:47.500 --> 00:06:50.320 and the more overall picture of that.
+00:06:50.320 --> 00:06:52.640 So there are limitations that come with the
+00:06:52.640 --> 00:06:59.940 job, if you like. So 1 question I often,
+00:07:00.040 --> 00:07:02.280 I actually got this week when I started a new
+00:07:02.280 --> 00:07:04.500 assignment at work, and I got the question
+00:07:06.280 --> 00:07:08.720 when I said I'm involved in Emacs
+00:07:08.720 --> 00:07:10.400 development. And then someone asked,
+00:07:10.400 --> 00:07:12.480 oh, is Emacs still developed?
+00:07:12.720 --> 00:07:16.400 Isn't it done almost? And I answered to that,
+00:07:16.400 --> 00:07:17.880 yes, we are still around.
+00:07:17.880 --> 00:07:21.940 We're going on 40 years now as a software
+00:07:21.940 --> 00:07:25.940 project. Not many projects actually can claim
+00:07:26.120 --> 00:07:29.020 that type of longevity.
+00:07:29.540 --> 00:07:33.900 But Emacs is among those few that can.
+00:07:33.900 --> 00:07:36.340 And of course, we have had some very exciting
+00:07:36.340 --> 00:07:38.000 developments in recent versions.
+00:07:38.000 --> 00:07:41.600 I think John just gave you an update on that.
+00:07:41.980 --> 00:07:46.160 But we had just some highlights out of many
+00:07:46.160 --> 00:07:47.940 highlights that you could give,
+00:07:48.580 --> 00:07:50.920 really, we got the TreeSetter support in
+00:07:50.920 --> 00:07:54.320 Emacs 29 that we now need to sort of extend
+00:07:54.320 --> 00:07:56.340 and develop. We have merged EGLOT,
+00:07:56.380 --> 00:07:59.440 so we have LSP support out of the box,
+00:07:59.440 --> 00:08:00.980 I think is a huge improvement.
+00:08:01.400 --> 00:08:02.960 Native compilation, of course,
+00:08:02.960 --> 00:08:06.520 a big feature. I mean,
+00:08:06.580 --> 00:08:08.900 that was Andrea's job,
+00:08:08.900 --> 00:08:11.260 really, for performance.
+00:08:11.460 --> 00:08:14.020 And it turns out that in many types of
+00:08:14.020 --> 00:08:15.720 workloads and the types of stuff that people
+00:08:15.720 --> 00:08:17.580 are doing, it often matters.
+00:08:18.080 --> 00:08:21.180 And we're hoping to make that the default,
+00:08:21.480 --> 00:08:24.960 perhaps already in Emacs 30.
+00:08:24.960 --> 00:08:26.840 So there are things that are happening that
+00:08:26.840 --> 00:08:31.680 fundamentally make Emacs better at a very
+00:08:32.200 --> 00:08:37.360 core level. So, of course,
+00:08:37.360 --> 00:08:41.679 why wouldn't you want to be involved in such
+00:08:41.679 --> 00:08:43.440 an exciting and, I think,
+00:08:43.440 --> 00:08:51.240 dynamic project? How is Emacs developed?
+00:08:51.660 --> 00:08:53.000 Well, this is, I think,
+00:08:53.000 --> 00:08:54.180 perhaps to some people,
+00:08:54.200 --> 00:08:56.300 a little bit more of a threshold,
+00:08:56.520 --> 00:08:59.100 if you like, because I think all of us know
+00:08:59.100 --> 00:09:02.640 really that there is exciting and cool stuff
+00:09:02.980 --> 00:09:06.560 that is going on in Emacs and has been going
+00:09:06.560 --> 00:09:08.260 on over the last couple of years and we'll
+00:09:08.260 --> 00:09:10.040 see even more of that,
+00:09:10.040 --> 00:09:11.180 I think, going forward.
+00:09:12.600 --> 00:09:16.580 1 thing is that communication still takes
+00:09:16.580 --> 00:09:20.340 place over a mailing list in 2023.
+00:09:21.240 --> 00:09:23.800 So we have emacsdevil at gnu.org,
+00:09:24.440 --> 00:09:26.140 and that's where we develop Emacs.
+00:09:26.680 --> 00:09:30.140 We use, we send patches back and forth,
+00:09:30.140 --> 00:09:31.360 we comment on patches.
+00:09:32.700 --> 00:09:36.420 And actually this workflow is very good,
+00:09:36.700 --> 00:09:39.580 if you're used to it. Because guess what?
+00:09:39.580 --> 00:09:42.200 As Emacs users, we like doing everything we
+00:09:42.200 --> 00:09:45.220 can in Emacs, especially the core tasks that
+00:09:45.220 --> 00:09:49.980 we're doing, such as developing Emacs itself.
+00:09:50.140 --> 00:09:52.860 Of course, you want to do that fully within
+00:09:52.960 --> 00:09:55.440 Emacs. So we hack Emacs Lisp in Emacs,
+00:09:55.440 --> 00:09:58.840 we hack C in Emacs, we respond to emails also
+00:10:00.240 --> 00:10:02.700 from Emacs, respond to bug reports,
+00:10:02.700 --> 00:10:05.040 manage bug reports. We do all that stuff
+00:10:05.460 --> 00:10:07.840 very, very smoothly. And it doesn't really
+00:10:07.840 --> 00:10:10.540 matter in a sense, what is the medium?
+00:10:10.560 --> 00:10:12.080 It happens to be email.
+00:10:12.180 --> 00:10:14.160 Technically it could be anything,
+00:10:14.440 --> 00:10:16.720 but email really has that type of staying
+00:10:16.720 --> 00:10:19.640 power where we've been able to use it for a
+00:10:19.640 --> 00:10:21.260 long time. And this is how,
+00:10:22.360 --> 00:10:24.000 and we're still able to use it.
+00:10:24.000 --> 00:10:25.800 And this is how free software was always
+00:10:25.800 --> 00:10:26.640 developed in the past.
+00:10:26.640 --> 00:10:28.380 Only in the last, let's say 10,
+00:10:28.380 --> 00:10:32.440 15 years, We've had more development taking
+00:10:32.440 --> 00:10:35.560 place perhaps on forges like GitHub,
+00:10:35.580 --> 00:10:39.160 GitLab, whatever. But we are 1 of the
+00:10:39.160 --> 00:10:40.680 holdouts. I mean, there are others,
+00:10:40.680 --> 00:10:42.560 of course, like the Linux kernel has mailing
+00:10:42.560 --> 00:10:44.340 lists. They're not trying to do that scale
+00:10:44.340 --> 00:10:47.580 development on GitHub.
+00:10:49.280 --> 00:10:51.360 And this is not just because we're Luddites
+00:10:51.760 --> 00:10:53.560 that refuse to change.
+00:10:53.560 --> 00:10:55.380 We just have to do it in the old way,
+00:10:55.380 --> 00:10:57.120 because it is the old way,
+00:10:57.120 --> 00:10:58.680 and that's the way it should be.
+00:10:58.780 --> 00:11:00.420 No, it's actually because we,
+00:11:01.220 --> 00:11:03.460 as core developers, the core development team
+00:11:03.460 --> 00:11:05.460 and the people already involved and doing
+00:11:05.460 --> 00:11:08.560 tremendous, I mean large amounts of work in
+00:11:08.560 --> 00:11:12.480 Emacs has very efficient workflows built up
+00:11:12.720 --> 00:11:15.620 based on this. So of course,
+00:11:15.620 --> 00:11:17.780 I mean moving to something else is something
+00:11:18.320 --> 00:11:20.180 that we might like to do,
+00:11:20.580 --> 00:11:24.400 but we're not yet clear on how to do it
+00:11:24.400 --> 00:11:26.100 exactly and what to move to.
+00:11:26.320 --> 00:11:28.380 So these are the types of discussions that
+00:11:28.380 --> 00:11:30.280 we're looking at. Can we still support a
+00:11:30.280 --> 00:11:34.040 mailing, an email type workflow while moving
+00:11:34.040 --> 00:11:36.100 to something else? That would be 1 of the big
+00:11:36.100 --> 00:11:38.400 ones. I think another thing that trips people
+00:11:38.400 --> 00:11:40.840 up is that we used a bug tracker that,
+00:11:40.840 --> 00:11:42.620 I mean, maybe some people,
+00:11:42.620 --> 00:11:45.560 I've heard people say it's archaic.
+00:11:47.020 --> 00:11:49.900 It's called Debugs. I think maybe Debugs gets
+00:11:49.900 --> 00:11:52.000 a bit of a bad rap. I think that bugs is a
+00:11:52.000 --> 00:11:53.100 good piece of software.
+00:11:53.520 --> 00:11:55.160 It wasn't developed in 2023.
+00:11:55.580 --> 00:11:57.540 I mean, that's much as clear.
+00:11:57.660 --> 00:11:58.880 It's a little bit older,
+00:11:59.060 --> 00:12:01.320 but it really is a workhorse of the Debian
+00:12:01.320 --> 00:12:03.820 project, which is obviously a project that's
+00:12:03.960 --> 00:12:09.400 developed in a very different way than Emacs
+00:12:09.400 --> 00:12:11.880 is. It's on a completely different scale,
+00:12:11.880 --> 00:12:12.840 of course, much bigger,
+00:12:12.840 --> 00:12:14.980 many more developers, and so on.
+00:12:15.040 --> 00:12:17.800 But I think the developers did a good job for
+00:12:17.800 --> 00:12:20.240 the time. But it might be showing its age,
+00:12:20.920 --> 00:12:23.160 perhaps, in places. Perhaps,
+00:12:23.440 --> 00:12:25.120 again, it's the email workflow.
+00:12:25.260 --> 00:12:27.720 And people see that as a little bit of a
+00:12:27.720 --> 00:12:30.180 threshold. It seems alien.
+00:12:30.180 --> 00:12:31.300 It's a little bit strange,
+00:12:32.220 --> 00:12:34.980 the types of workflows that you have there.
+00:12:35.220 --> 00:12:38.860 So we are seeing some limitations with that
+00:12:38.860 --> 00:12:40.940 box. And again, how do you report bugs?
+00:12:41.020 --> 00:12:42.600 Well, in a sense, it's easy.
+00:12:42.600 --> 00:12:46.660 You send an email to bug-gnu-emacs at gnu.org
+00:12:47.620 --> 00:12:51.340 and you copy in whatever you get from,
+00:12:51.340 --> 00:12:53.300 you know, report the EMAX bug or if you have,
+00:12:53.300 --> 00:12:55.120 you know, send mail set up locally,
+00:12:55.580 --> 00:12:58.700 just hit control C, control C and it's sent
+00:12:58.700 --> 00:13:01.720 to the bug tracker and that's fine.
+00:13:03.840 --> 00:13:08.680 But also I have to mention that there is this
+00:13:08.680 --> 00:13:10.600 very good package on GNU Elpas.
+00:13:10.600 --> 00:13:13.540 If you're ever trying to read the Emacs bug
+00:13:13.540 --> 00:13:16.500 tracker or following along in Emacs
+00:13:16.500 --> 00:13:19.000 development, I really recommend install the
+00:13:19.000 --> 00:13:21.300 package devbugs from GNU Elpa.
+00:13:22.120 --> 00:13:24.140 It's so good. And again,
+00:13:24.140 --> 00:13:26.580 it's built on GNU, it's all integrated in
+00:13:26.580 --> 00:13:30.040 Emacs, it's so much better than using the web
+00:13:30.660 --> 00:13:33.220 and so on. And if you really want to get into
+00:13:33.220 --> 00:13:38.040 it, you can download the bug tracker archives
+00:13:38.140 --> 00:13:39.500 and the mailing list archives,
+00:13:39.720 --> 00:13:41.260 and you can put them locally,
+00:13:41.260 --> 00:13:42.380 you can have them searchable,
+00:13:42.740 --> 00:13:44.440 and you can have whatever experience you
+00:13:44.440 --> 00:13:47.340 like. So, I mean, it's really a flexible
+00:13:48.240 --> 00:13:51.240 workflow, but it's a bit strange,
+00:13:51.260 --> 00:13:52.620 perhaps, to some people.
+00:13:53.460 --> 00:13:58.120 So we also think supporting only this
+00:13:58.120 --> 00:14:00.140 workflow might be a little bit too limiting.
+00:14:00.660 --> 00:14:04.200 So we do want to move over to something like
+00:14:04.440 --> 00:14:06.760 GitLab, perhaps Sourcehat or something
+00:14:06.760 --> 00:14:10.460 similar. We've had a couple of discussions
+00:14:10.760 --> 00:14:14.000 about that over the last couple of years.
+00:14:14.480 --> 00:14:15.820 I think even before that,
+00:14:15.820 --> 00:14:18.940 but that's how far back I've been involved,
+00:14:18.940 --> 00:14:21.800 and definitely it's come up occasionally.
+00:14:23.100 --> 00:14:27.900 I think we are less far away than perhaps
+00:14:27.940 --> 00:14:30.560 ever is how I would express that,
+00:14:30.720 --> 00:14:36.680 and in the sense that the remaining blockers
+00:14:36.960 --> 00:14:38.640 for just making the shift,
+00:14:38.640 --> 00:14:40.200 let's say, are I think,
+00:14:40.200 --> 00:14:42.120 I mean, first of all, we're talking about
+00:14:42.120 --> 00:14:44.020 limitations, perhaps in the software,
+00:14:44.020 --> 00:14:46.420 they're well defined, and they're not as
+00:14:46.420 --> 00:14:49.060 amountable. I don't think they have to be in
+00:14:49.060 --> 00:14:50.840 any case. We should be able to make some
+00:14:50.840 --> 00:14:54.660 progress. The main thing that we're lacking
+00:14:54.720 --> 00:14:58.480 now is not more discussion or more people
+00:15:00.800 --> 00:15:03.120 prodding us to just please switch over.
+00:15:03.120 --> 00:15:04.580 No, we're looking for volunteers.
+00:15:05.980 --> 00:15:08.380 If you think that you,
+00:15:08.400 --> 00:15:10.960 you know, have what it takes to sort of come
+00:15:10.960 --> 00:15:14.060 in and help us do something like that and
+00:15:14.060 --> 00:15:15.040 work together with us,
+00:15:15.040 --> 00:15:16.840 you know, to see what can be done,
+00:15:16.840 --> 00:15:20.200 perhaps some, a few things would need to be
+00:15:20.200 --> 00:15:23.220 changed in GitLab. I don't think anything
+00:15:23.220 --> 00:15:26.120 huge, but maybe there are some patches to be
+00:15:26.120 --> 00:15:27.880 written and sent upstream,
+00:15:27.980 --> 00:15:30.280 or maybe we need to do some local hacks or
+00:15:30.280 --> 00:15:33.140 whatever. If you wanna do that,
+00:15:33.140 --> 00:15:34.860 please contact us, emacsdevil.
+00:15:35.460 --> 00:15:38.940 We'll be very happy to talk to you.
+00:15:38.940 --> 00:15:40.460 And then we can start making progress.
+00:15:40.520 --> 00:15:42.740 So I'm really hoping that that sound like
+00:15:42.740 --> 00:15:46.620 will come into place. But we need to,
+00:15:46.780 --> 00:15:52.340 if we do switch over, we need to preserve the
+00:15:52.340 --> 00:15:54.820 good parts of our email-based workflows.
+00:15:54.820 --> 00:15:57.140 So there are requirements there so that we
+00:15:57.140 --> 00:16:00.180 can continue to do our job as maintainers,
+00:16:01.720 --> 00:16:04.900 if you like. Another thing is that we've
+00:16:04.900 --> 00:16:08.340 sometimes seen that there's a bit of a
+00:16:08.340 --> 00:16:11.380 different culture perhaps on mailing lists
+00:16:11.380 --> 00:16:15.060 and on Emacs devil than what many people are
+00:16:15.060 --> 00:16:17.580 used to, especially like you've used perhaps,
+00:16:17.800 --> 00:16:20.540 many people might be in university and
+00:16:20.540 --> 00:16:23.500 they've started using Emacs,
+00:16:23.720 --> 00:16:25.820 maybe got into a little bit of package
+00:16:25.840 --> 00:16:29.060 development and starting to get the ropes of
+00:16:29.060 --> 00:16:32.540 that and are very used to working on places
+00:16:32.560 --> 00:16:35.460 like GitLab or something like that,
+00:16:35.460 --> 00:16:38.000 then the type of culture and way of
+00:16:38.000 --> 00:16:42.040 communicating that we use in Emacs might be a
+00:16:42.040 --> 00:16:44.440 little bit different. And of course,
+00:16:44.540 --> 00:16:47.360 it's different in the sense that mailing
+00:16:47.380 --> 00:16:49.900 lists have always, I mean,
+00:16:49.900 --> 00:16:51.060 let's say hacker culture,
+00:16:51.060 --> 00:16:52.120 whatever you want to call it,
+00:16:52.120 --> 00:16:54.400 have always communicated in a particular way
+00:16:54.720 --> 00:16:58.340 using mailing lists. So it's like succinct to
+00:16:58.340 --> 00:17:00.320 the point, perhaps I'm skipping a few
+00:17:00.320 --> 00:17:03.340 pleasantries. And the idea is that you should
+00:17:03.340 --> 00:17:08.000 just use it in as effective way as possible,
+00:17:08.359 --> 00:17:11.099 so that also the archives are usable.
+00:17:11.319 --> 00:17:13.660 And the other thing is that generally people
+00:17:13.660 --> 00:17:16.500 involved in developing free software has to
+00:17:16.500 --> 00:17:19.660 deal with a lot of incoming traffic,
+00:17:19.780 --> 00:17:25.900 emails. They don't have the bandwidth if it's
+00:17:25.900 --> 00:17:28.220 too much noise. You really need to be strict
+00:17:28.220 --> 00:17:31.840 to keep the signal to noise ratio high.
+00:17:31.840 --> 00:17:35.280 We have some weird terminology on the Emacs
+00:17:35.280 --> 00:17:38.040 devil. People tell us,
+00:17:38.200 --> 00:17:40.680 we say sometimes install patches which
+00:17:40.680 --> 00:17:44.180 basically means push to master or merge pull
+00:17:44.180 --> 00:17:46.720 requests because we've used other version
+00:17:46.720 --> 00:17:48.600 control systems in the past where it might
+00:17:48.600 --> 00:17:50.700 have made more sense to say install patches.
+00:17:51.000 --> 00:17:52.540 And then you sort of, I don't know,
+00:17:52.540 --> 00:17:54.380 I say it. Don't ask me why.
+00:17:54.380 --> 00:17:56.040 But it feels natural after a while.
+00:17:56.040 --> 00:17:57.720 You install a patch. It's clear what you
+00:17:57.720 --> 00:18:02.280 mean. You don't have to worry about which
+00:18:02.280 --> 00:18:05.940 branch it's on. So it's a little bit
+00:18:06.600 --> 00:18:10.120 historical there. So there is some of that
+00:18:10.120 --> 00:18:11.960 culture going on. It might be different.
+00:18:11.960 --> 00:18:14.200 We don't use emojis that much.
+00:18:14.220 --> 00:18:16.680 That's another thing. There is no like,
+00:18:16.840 --> 00:18:20.900 you can click the little like button at the
+00:18:20.900 --> 00:18:25.080 bottom of a comment or an email as you could
+00:18:25.080 --> 00:18:27.740 on GitHub. But there are exceptions and it's
+00:18:27.740 --> 00:18:29.600 not like someone will send you angry emails
+00:18:29.600 --> 00:18:31.480 if you use an emoji or something like that.
+00:18:31.480 --> 00:18:34.200 But it can come off as perhaps Because people
+00:18:34.200 --> 00:18:37.180 are pressed for time also when replying to
+00:18:37.260 --> 00:18:39.400 all these emails. So it might come off as a
+00:18:39.400 --> 00:18:42.880 little bit short, but that's just how it is.
+00:18:43.440 --> 00:18:46.880 And I think We have heard this comment before
+00:18:46.880 --> 00:18:50.680 that mailing lists are scary or Emacs devil
+00:18:50.720 --> 00:18:54.380 is scary or core development is scary.
+00:18:54.780 --> 00:18:58.180 And I've touched a few of these points a
+00:18:58.180 --> 00:18:59.620 little bit already. I think,
+00:18:59.620 --> 00:19:01.500 yeah, maybe a little bit.
+00:19:02.320 --> 00:19:05.740 For example, we don't use emojis very short
+00:19:06.820 --> 00:19:10.940 in the communication. And we always use
+00:19:10.940 --> 00:19:13.240 correct grammar and spelling.
+00:19:13.380 --> 00:19:15.920 We take that seriously because it's important
+00:19:15.920 --> 00:19:19.060 for being clear in your written communication
+00:19:19.200 --> 00:19:21.540 when all you have is written communication.
+00:19:22.680 --> 00:19:23.740 It's really important.
+00:19:26.760 --> 00:19:31.400 But it's not like If you come in there and
+00:19:31.400 --> 00:19:33.580 you don't know all these cultural rules and
+00:19:33.580 --> 00:19:36.380 all these patterns, then you know you will We
+00:19:36.380 --> 00:19:37.900 won't talk to you No Actually,
+00:19:37.900 --> 00:19:41.100 we try to be as welcoming as we can and and
+00:19:41.100 --> 00:19:44.600 be mindful and you know people not Everyone
+00:19:44.600 --> 00:19:46.700 has English as their native language,
+00:19:47.080 --> 00:19:49.200 for example. So perhaps someone says
+00:19:49.200 --> 00:19:51.360 something, and it might come off as rude,
+00:19:51.360 --> 00:19:53.200 but maybe it's just a direct translation.
+00:19:53.200 --> 00:19:56.520 So we're trying to give a lot of whatever the
+00:19:56.520 --> 00:19:59.760 native language is. So we try to give a lot
+00:19:59.760 --> 00:20:01.780 of leeway and just be a little bit,
+00:20:01.780 --> 00:20:03.580 you know, flexible and focus on,
+00:20:03.580 --> 00:20:04.920 you know, the key, key points,
+00:20:04.920 --> 00:20:06.580 which are the technical things,
+00:20:06.580 --> 00:20:07.760 the technical decisions,
+00:20:07.840 --> 00:20:09.280 technical arguments, rather than,
+00:20:09.280 --> 00:20:11.920 you know, getting bogged down in a lot of,
+00:20:11.920 --> 00:20:15.360 you know, personal, you know,
+00:20:15.360 --> 00:20:19.220 discussions and flame wars.
+00:20:19.300 --> 00:20:21.260 So, I mean, there are these things to be
+00:20:21.260 --> 00:20:23.160 aware of, you know, it's just a little bit
+00:20:23.160 --> 00:20:24.980 different. I don't think it's anything huge.
+00:20:25.080 --> 00:20:26.620 And I wouldn't be, you know,
+00:20:28.440 --> 00:20:30.480 I think it would be sad if people felt too
+00:20:30.480 --> 00:20:32.320 intimidated by that. It just is what it is.
+00:20:32.320 --> 00:20:33.540 And if you spend some time there,
+00:20:33.540 --> 00:20:35.960 you'll see how people generally communicate.
+00:20:38.400 --> 00:20:41.260 Sometimes, there are a lot of people on
+00:20:41.260 --> 00:20:43.600 EmacsDevil. It's a public mailing list.
+00:20:43.660 --> 00:20:46.240 A lot of people just sign up to follow Emacs
+00:20:46.240 --> 00:20:48.860 development. Sometimes they chime in.
+00:20:48.940 --> 00:20:50.820 And I think this is in general a good thing.
+00:20:50.820 --> 00:20:53.300 I think it should be a public mailing list.
+00:20:53.680 --> 00:21:00.220 Sometimes this leads to weird situations from
+00:21:00.480 --> 00:21:03.400 just a point of view as an Emacs maintainer,
+00:21:03.480 --> 00:21:07.080 right? I mean, I try to say something and it
+00:21:07.080 --> 00:21:08.240 doesn't always say, oh,
+00:21:08.240 --> 00:21:10.020 he's the maintainer or whatever.
+00:21:10.080 --> 00:21:11.200 So when I say something,
+00:21:11.200 --> 00:21:13.380 it should carry a little bit more weight than
+00:21:13.380 --> 00:21:16.160 some unknown person from the internet who has
+00:21:16.160 --> 00:21:18.300 an opinion and decided to send it to
+00:21:18.740 --> 00:21:21.020 EmacsDevil. So it's good to be a little bit
+00:21:21.020 --> 00:21:23.160 aware of who is a little bit more involved
+00:21:23.160 --> 00:21:25.280 with the project. I would check out the
+00:21:25.280 --> 00:21:27.100 maintainers file. I would check,
+00:21:27.380 --> 00:21:31.000 see in the Git log, do these people actually
+00:21:31.000 --> 00:21:33.300 have any anything in core?
+00:21:33.580 --> 00:21:35.260 And if not, maybe, you know,
+00:21:35.860 --> 00:21:38.660 there, we won't really,
+00:21:39.100 --> 00:21:41.000 even if they express an opinion very
+00:21:41.000 --> 00:21:42.720 strongly, even if they're a little bit rude,
+00:21:42.720 --> 00:21:44.700 maybe they're not even involved in Emacs
+00:21:44.760 --> 00:21:46.340 development. I mean, often,
+00:21:46.680 --> 00:21:48.460 that's the case we have some people,
+00:21:48.460 --> 00:21:49.900 unfortunately, at times,
+00:21:50.340 --> 00:21:52.720 we have random people from the internet come
+00:21:52.720 --> 00:21:54.720 in on the mailing list and they're just a
+00:21:54.720 --> 00:21:56.780 little bit rude, or they say an opinion
+00:21:57.740 --> 00:21:59.620 that's not exactly helpful.
+00:22:00.060 --> 00:22:02.320 And I think you need to be aware.
+00:22:02.320 --> 00:22:04.340 I mean, these things happen in any forum,
+00:22:04.340 --> 00:22:07.740 but it happens on EmacsDevO as well.
+00:22:07.800 --> 00:22:10.680 So just be a little bit aware of who you're
+00:22:10.680 --> 00:22:13.540 talking to, what people are doing.
+00:22:13.700 --> 00:22:15.880 It can help to Check the archives,
+00:22:16.240 --> 00:22:18.460 see who writes what, and so on.
+00:22:20.320 --> 00:22:23.080 But it's not something that I think is a huge
+00:22:23.080 --> 00:22:24.220 problem. It is just, again,
+00:22:24.220 --> 00:22:25.780 something to be aware of.
+00:22:25.900 --> 00:22:28.040 We have the new kind of communication
+00:22:28.180 --> 00:22:30.820 guidelines in place, which basically says
+00:22:30.820 --> 00:22:33.740 that you should be nice to people and stay
+00:22:33.740 --> 00:22:36.060 focused on the technical problem,
+00:22:36.060 --> 00:22:38.300 try to see things from another person's point
+00:22:38.300 --> 00:22:39.360 of view, this kind of stuff.
+00:22:39.360 --> 00:22:42.140 So we're really trying to be as inclusive as
+00:22:42.140 --> 00:22:46.820 possible and just stay correct in general.
+00:22:46.820 --> 00:22:48.380 And sometimes, I mean,
+00:22:48.380 --> 00:22:50.060 not everyone, it's a public list.
+00:22:50.060 --> 00:22:52.440 We moderate it, but not to a huge extent,
+00:22:52.440 --> 00:22:57.840 right? So sometimes people get away with a
+00:22:57.840 --> 00:23:02.260 little bit of perhaps stretching the
+00:23:02.260 --> 00:23:04.700 boundaries of what might be included in the
+00:23:04.700 --> 00:23:06.500 kind communication guidelines,
+00:23:08.040 --> 00:23:10.940 sort of the fences and limitations of that.
+00:23:11.460 --> 00:23:13.940 But I would just ignore that.
+00:23:13.940 --> 00:23:15.700 Sometimes it happens that we,
+00:23:15.860 --> 00:23:17.160 as happens in any forum,
+00:23:17.160 --> 00:23:19.440 by the way, you just, we have these very big
+00:23:19.440 --> 00:23:21.760 threads. We start discussing something else.
+00:23:21.760 --> 00:23:24.300 Perhaps you send us a patch and it just
+00:23:24.320 --> 00:23:26.360 devolves into us discussing something
+00:23:26.360 --> 00:23:28.680 completely different. And of course I partake
+00:23:28.680 --> 00:23:30.440 in that, not better than anyone else,
+00:23:30.440 --> 00:23:32.940 but it just happens. I mean,
+00:23:32.960 --> 00:23:34.800 it's not your fault. It's just what happens
+00:23:34.800 --> 00:23:37.200 sometimes in forums, and don't mind that.
+00:23:37.200 --> 00:23:39.120 And it's a little bit easier to do that in
+00:23:39.120 --> 00:23:41.680 emails, because you just change the subject,
+00:23:41.680 --> 00:23:43.580 and now it's supposed to be a different
+00:23:43.580 --> 00:23:45.780 thread, but it comes as replies usually to
+00:23:45.780 --> 00:23:48.480 you, which wouldn't happen perhaps in a
+00:23:48.480 --> 00:23:49.960 different workflow. So it's something to be
+00:23:49.960 --> 00:23:53.300 aware of as well. Another thing is that,
+00:23:53.300 --> 00:23:54.680 of course, in written communication,
+00:23:55.080 --> 00:23:56.620 tone doesn't always come across.
+00:23:57.980 --> 00:23:59.240 If someone sounds negative,
+00:23:59.240 --> 00:24:01.280 sometimes it's just them being neutral.
+00:24:01.460 --> 00:24:05.400 Sometimes you get no replies.
+00:24:05.500 --> 00:24:07.120 You send something, you get no replies.
+00:24:07.120 --> 00:24:09.220 And this could mean, actually it could mean,
+00:24:09.880 --> 00:24:11.500 yeah, what you said was uncontroversial.
+00:24:11.720 --> 00:24:12.980 We think it was a good idea.
+00:24:13.660 --> 00:24:16.360 No 1 replied to it because either someone
+00:24:16.360 --> 00:24:18.960 else would reply or just there was no need to
+00:24:18.960 --> 00:24:20.640 reply because, yeah, why not?
+00:24:21.580 --> 00:24:24.060 So but if you do send a patch and you don't
+00:24:24.060 --> 00:24:26.280 get an answer, wait. I mean,
+00:24:26.280 --> 00:24:29.380 don't wait 1, 2 days. Maybe we're busy or
+00:24:29.380 --> 00:24:30.520 we're sick or whatever.
+00:24:30.840 --> 00:24:32.800 Wait 2 weeks. It's fine to just send it
+00:24:32.800 --> 00:24:34.940 again. If you send the patch to EmacsDevil,
+00:24:35.660 --> 00:24:37.040 send it to the bug mailing list,
+00:24:37.040 --> 00:24:39.260 because we lose track of stuff on EmacsDevil.
+00:24:39.800 --> 00:24:41.560 That's just the reality of it.
+00:24:43.440 --> 00:24:46.080 So if you propose making a change and no 1
+00:24:46.080 --> 00:24:48.340 commented, feel free to ask us again if a
+00:24:48.340 --> 00:24:51.080 patch would be welcome and we will clarify.
+00:24:53.480 --> 00:24:54.720 Bug reports, unfortunately,
+00:24:54.780 --> 00:24:56.280 if you get no answer, I mean,
+00:24:56.280 --> 00:24:59.740 we do have a limited amount of time to work
+00:24:59.860 --> 00:25:02.360 on bugs. If you're looking to get started in
+00:25:02.360 --> 00:25:05.520 Emacs development, this is an excellent way
+00:25:05.740 --> 00:25:07.320 to start getting involved.
+00:25:07.480 --> 00:25:09.960 What I'd recommend is start looking into
+00:25:09.960 --> 00:25:11.420 bugs. I'd install that bug,
+00:25:11.420 --> 00:25:13.860 I'd see about the mailing workflow and set
+00:25:13.860 --> 00:25:15.800 that up a little bit, or not.
+00:25:16.160 --> 00:25:17.960 It's up to you. You can reply to an email
+00:25:17.960 --> 00:25:20.160 without setting any of that stuff up.
+00:25:20.600 --> 00:25:22.480 But just help us try out your bugs,
+00:25:22.540 --> 00:25:24.720 send patches, do that type of stuff.
+00:25:24.720 --> 00:25:26.280 I mean, that's an excellent way,
+00:25:26.280 --> 00:25:27.740 and extremely welcome.
+00:25:27.740 --> 00:25:30.360 We're so happy to see when people pick up bug
+00:25:30.360 --> 00:25:32.500 reports that have been left by the wayside
+00:25:32.640 --> 00:25:34.580 and just fix them, send us a patch,
+00:25:36.040 --> 00:25:37.520 and we can just apply it.
+00:25:37.920 --> 00:25:40.360 So that's really your starting point if you
+00:25:40.360 --> 00:25:43.600 want to get involved in Emacs core
+00:25:44.440 --> 00:25:50.580 development. I also want to say that be aware
+00:25:50.580 --> 00:25:54.020 that you know Emacs is the editor of the GNU
+00:25:54.280 --> 00:25:56.820 operating system and this makes the project
+00:25:56.820 --> 00:25:58.700 political a little bit whether you like it or
+00:25:58.700 --> 00:26:01.380 not. Luckily the you know the politics are
+00:26:01.560 --> 00:26:03.400 limited enough that we can find broad
+00:26:03.400 --> 00:26:05.520 agreement on it. So we want to promote,
+00:26:05.780 --> 00:26:08.420 we want to create free software.
+00:26:08.860 --> 00:26:10.960 That's sort of it. That's it.
+00:26:11.400 --> 00:26:13.740 And there shouldn't be too much more to it,
+00:26:13.740 --> 00:26:15.600 right? We want to rid the world of
+00:26:15.600 --> 00:26:19.700 proprietary software as an evil thing.
+00:26:19.700 --> 00:26:21.920 Ideally, all software should be free.
+00:26:23.000 --> 00:26:25.160 But these are just the goals of the free
+00:26:25.160 --> 00:26:27.440 software movement. So we're very strict with
+00:26:27.440 --> 00:26:29.660 some things. We don't recommend non-free
+00:26:30.060 --> 00:26:31.320 proprietary software. Of course,
+00:26:31.320 --> 00:26:33.180 we have no problem mentioning Microsoft
+00:26:33.260 --> 00:26:35.140 Windows because everyone knows that there's
+00:26:35.140 --> 00:26:39.280 this obscure operating system developed in
+00:26:39.280 --> 00:26:41.760 California that some people insist on using.
+00:26:42.040 --> 00:26:45.000 We use, many of us use GNU plus Linux.
+00:26:45.060 --> 00:26:47.380 Actually, some core developers happen to use
+00:26:47.440 --> 00:26:50.820 exactly, you know, not GNU plus Linux,
+00:26:50.820 --> 00:26:52.600 but that's fine as well,
+00:26:52.600 --> 00:26:54.820 right? We take a little bit of a pragmatic
+00:26:54.860 --> 00:26:56.840 view, but we don't wanna do,
+00:26:56.840 --> 00:26:59.020 what we don't wanna do is promote like this
+00:26:59.020 --> 00:27:04.780 small, unknown piece of non-free software and
+00:27:04.780 --> 00:27:08.400 sort of help the non-free software in that
+00:27:08.400 --> 00:27:11.620 way. That's where we try to draw the line,
+00:27:12.440 --> 00:27:15.760 you know, in just expressing just a few
+00:27:15.760 --> 00:27:18.060 words. So that's 1 thing.
+00:27:18.200 --> 00:27:21.620 We're, I think, very pragmatic on this point,
+00:27:21.620 --> 00:27:24.900 but we do try to follow the principle.
+00:27:25.240 --> 00:27:27.180 We also require copyright assignment.
+00:27:27.700 --> 00:27:30.040 And I think in general,
+00:27:30.620 --> 00:27:34.740 the argument is that we require a copyright
+00:27:34.780 --> 00:27:38.940 assignment, because that makes it easier to
+00:27:39.280 --> 00:27:43.440 defend the legal status of the GNU Emacs
+00:27:43.640 --> 00:27:45.920 source code. So if there's ever a legal
+00:27:45.920 --> 00:27:48.280 battle, the idea is that if it's only 1
+00:27:48.280 --> 00:27:50.260 copyright holder and you have a GPL
+00:27:50.320 --> 00:27:54.140 violation, i.e. Someone might change Emacs
+00:27:54.140 --> 00:27:55.820 and then distribute it as proprietary
+00:27:56.100 --> 00:27:58.040 software or something nasty like that,
+00:27:58.040 --> 00:28:00.620 then we have an easier way of defending it in
+00:28:00.620 --> 00:28:02.780 court if there is only 1 copyright holder.
+00:28:02.780 --> 00:28:04.840 So we assigned copyright to the Free Software
+00:28:04.840 --> 00:28:09.460 Foundation. And I think there,
+00:28:09.720 --> 00:28:12.600 I mean, sometimes people oppose this for
+00:28:12.600 --> 00:28:13.660 various reasons, you know,
+00:28:13.660 --> 00:28:15.720 people see it as, you know,
+00:28:15.720 --> 00:28:16.880 maybe some people might say,
+00:28:16.880 --> 00:28:17.860 you know, it's ideological,
+00:28:18.040 --> 00:28:19.340 you know, who goes, you know,
+00:28:19.340 --> 00:28:21.360 the FSF goes too far with this.
+00:28:21.700 --> 00:28:23.860 And, and, I mean, that's fine.
+00:28:23.860 --> 00:28:25.580 You that's, that's an opinion.
+00:28:25.640 --> 00:28:28.320 And the there, then other people are more
+00:28:28.320 --> 00:28:30.040 practical, you know, it's just,
+00:28:30.040 --> 00:28:31.360 It's a hassle, basically,
+00:28:31.360 --> 00:28:33.220 we don't want to sign these papers.
+00:28:33.640 --> 00:28:35.580 And I'm not really here to tell anyone that
+00:28:35.580 --> 00:28:37.160 they're wrong. I've expressed my views on
+00:28:37.160 --> 00:28:40.780 this in the past. But just for now,
+00:28:40.960 --> 00:28:43.660 I'm just very practical for the purposes of
+00:28:43.660 --> 00:28:46.500 this talk. So I signed the papers.
+00:28:46.580 --> 00:28:49.280 It's Maybe it didn't take me many minutes.
+00:28:49.280 --> 00:28:51.900 And in most cases, it shouldn't really.
+00:28:52.580 --> 00:28:55.000 And it's something that I found worth doing,
+00:28:55.000 --> 00:28:58.580 because that way I could focus on continuing
+00:28:58.580 --> 00:29:01.360 to improve Emacs instead of discussing the
+00:29:01.360 --> 00:29:03.220 finer points of copyright law.
+00:29:03.480 --> 00:29:05.280 You could write patches and stuff,
+00:29:05.280 --> 00:29:06.680 that kind of thing. So,
+00:29:06.680 --> 00:29:08.480 I mean, this is something that trips people
+00:29:08.480 --> 00:29:11.100 up and, you know, it's fine that people have
+00:29:11.320 --> 00:29:14.200 different opinions on it and so on,
+00:29:14.200 --> 00:29:19.280 but I think for now that's just something to
+00:29:19.280 --> 00:29:23.000 be aware of. So that's,
+00:29:23.000 --> 00:29:26.120 I think, I mean, there's much more that could
+00:29:26.120 --> 00:29:27.880 be said. Ideally, I would like to have a
+00:29:27.880 --> 00:29:31.060 practical part to this talk as well.
+00:29:32.020 --> 00:29:34.440 But I wanted to say something about the
+00:29:34.440 --> 00:29:37.159 packages in Emacs. Because as we know,
+00:29:37.159 --> 00:29:40.440 I mean, Emacs is the, I can't remember what
+00:29:40.440 --> 00:29:41.740 it says, it's like a visual,
+00:29:42.260 --> 00:29:43.780 there's in the manual it says,
+00:29:43.780 --> 00:29:45.900 oh, Emacs is an advanced text editor.
+00:29:46.180 --> 00:29:47.980 It's visual, which, I mean,
+00:29:47.980 --> 00:29:50.280 it's not ed, the whole Unix ed,
+00:29:50.280 --> 00:29:52.700 so that's cool. It's also customizable,
+00:29:53.300 --> 00:29:56.180 right? So that's always been a thing.
+00:29:57.800 --> 00:29:59.980 And what makes Emacs so amazing.
+00:30:00.040 --> 00:30:01.820 And some people described it as,
+00:30:01.920 --> 00:30:03.880 I can't remember who said that there has been
+00:30:03.880 --> 00:30:09.440 a Cambrian explosion of packages in Emacs.
+00:30:09.440 --> 00:30:10.440 And I think that's true.
+00:30:10.440 --> 00:30:12.400 I mean, if you look at something like Melpa,
+00:30:12.400 --> 00:30:13.760 I think they have over 5,000
+00:30:13.940 --> 00:30:16.220 packages now. It's like truly impressive,
+00:30:16.460 --> 00:30:18.760 just an immense amount of work and immense
+00:30:18.760 --> 00:30:22.320 amount of packages. And really,
+00:30:22.860 --> 00:30:24.340 this shows the strength,
+00:30:24.340 --> 00:30:26.600 I think, of the Emacs community,
+00:30:26.680 --> 00:30:28.780 of Emacs itself as an idea.
+00:30:29.060 --> 00:30:31.240 And I think it's also just tremendous work
+00:30:31.240 --> 00:30:33.580 that's been done by the maintainers.
+00:30:33.960 --> 00:30:36.040 And they do get a lot of recognition for
+00:30:36.040 --> 00:30:38.900 that. And rightly so, in my opinion.
+00:30:39.620 --> 00:30:41.920 It's done so much, I think,
+00:30:41.920 --> 00:30:44.260 for our community. The other package archive
+00:30:44.260 --> 00:30:46.340 that we have is GNU-ELPA.
+00:30:46.620 --> 00:30:49.640 And that's been enabled since when packages
+00:30:49.640 --> 00:30:51.000 first got introduced back in,
+00:30:51.000 --> 00:30:53.160 I think, Emacs, was it 23?
+00:30:55.520 --> 00:30:59.200 And probably, I mean, the main thing why a
+00:30:59.200 --> 00:31:01.860 package goes onto GNU Elpa is,
+00:31:01.860 --> 00:31:04.040 you know, it should be installable out of the
+00:31:04.040 --> 00:31:07.580 box. So, I mean, that's a big benefit in a
+00:31:07.580 --> 00:31:10.960 sense. It's also a requirement for GNU Alpa
+00:31:10.960 --> 00:31:12.240 that the copyright, again,
+00:31:12.240 --> 00:31:14.540 just as GNU Emacs, the copyright is assigned
+00:31:15.480 --> 00:31:17.020 to the Free Software Foundation.
+00:31:17.080 --> 00:31:19.940 And some very hugely popular packages,
+00:31:20.020 --> 00:31:21.420 like YaSnippet, for example,
+00:31:21.420 --> 00:31:25.060 is on GNU Alpa. And we were discussing this
+00:31:25.160 --> 00:31:30.040 just 2 months back. And Joe Tavora,
+00:31:30.060 --> 00:31:31.780 I can't say his name, G-O-A-O,
+00:31:33.280 --> 00:31:36.100 Tavora. He made the point that he's never
+00:31:36.140 --> 00:31:40.280 seen a problem in any of his packages with
+00:31:40.280 --> 00:31:42.100 copyright assignment in particular.
+00:31:42.100 --> 00:31:44.540 It's never been a problem to get people to be
+00:31:44.540 --> 00:31:46.560 involved in the development of those packages
+00:31:46.560 --> 00:31:48.220 just because of the copyright assignment
+00:31:49.160 --> 00:31:50.640 requirements. So I mean,
+00:31:51.180 --> 00:31:53.840 that's his perspective on that.
+00:31:54.320 --> 00:32:00.480 And I think it was worth relating his
+00:32:00.480 --> 00:32:06.500 experience here. So we also have this new
+00:32:06.500 --> 00:32:08.500 package archive called non-GNU-alpha,
+00:32:08.920 --> 00:32:12.880 which is now enabled by default as well.
+00:32:12.920 --> 00:32:14.440 I think for practical purposes,
+00:32:14.540 --> 00:32:16.880 you could get into it a little bit more,
+00:32:16.960 --> 00:32:18.840 you know, why we created non-NUELPA,
+00:32:19.940 --> 00:32:22.320 and perhaps that's something we can discuss
+00:32:23.360 --> 00:32:26.240 in the Q&A section. For practical purposes,
+00:32:26.380 --> 00:32:28.280 the main thing to be aware of is,
+00:32:28.280 --> 00:32:30.980 yes, we don't promote non-free software on
+00:32:30.980 --> 00:32:36.780 there, And we also don't have the copyright
+00:32:36.780 --> 00:32:39.060 assignment requirement.
+00:32:41.400 --> 00:32:43.820 I think this is probably for new packages.
+00:32:43.940 --> 00:32:48.180 It's generally better if they go to GNU Elpa,
+00:32:48.180 --> 00:32:51.220 if there is any type of idea or ambition
+00:32:51.280 --> 00:32:53.460 that, you know, at some point it would be
+00:32:53.460 --> 00:32:56.740 good or it might be good to eventually have
+00:32:56.740 --> 00:32:58.900 some type of functionality like this shipped
+00:32:58.900 --> 00:33:01.200 with Emacs itself. So I think this is
+00:33:01.200 --> 00:33:04.020 something that perhaps package authors could
+00:33:04.020 --> 00:33:07.340 also be aware of, that occasionally we do
+00:33:07.340 --> 00:33:09.780 bring in functionality from GNU Elpa into
+00:33:09.780 --> 00:33:12.180 core Emacs because we feel that it should be
+00:33:12.440 --> 00:33:15.560 better integrated with Emacs itself.
+00:33:16.420 --> 00:33:18.480 So if I could give any type of
+00:33:18.480 --> 00:33:19.400 recommendation, of course,
+00:33:19.400 --> 00:33:22.120 you do. These are your packages,
+00:33:22.120 --> 00:33:25.520 right? In an ideal world,
+00:33:25.520 --> 00:33:28.680 we would only use this for legacy packages
+00:33:28.680 --> 00:33:30.240 where people contributed in the past,
+00:33:30.240 --> 00:33:32.120 but you didn't worry about the copyright
+00:33:32.120 --> 00:33:34.200 assignment. But where possible,
+00:33:34.200 --> 00:33:37.480 I think there is benefit in putting it on GNU
+00:33:37.540 --> 00:33:42.900 Elpa. And I wanted to end a little bit on a
+00:33:42.900 --> 00:33:45.140 more, you know, the more opinionated perhaps
+00:33:45.380 --> 00:33:47.260 part of my talk and not just talk about
+00:33:47.260 --> 00:33:49.160 processes. I see that I'm running out of
+00:33:49.160 --> 00:33:51.700 time. So I will say Emacs is hackable.
+00:33:51.760 --> 00:33:54.520 And I think that's a blessing and a curse.
+00:33:54.520 --> 00:33:56.340 And if you think about something like,
+00:33:59.060 --> 00:34:01.100 the types of choices that you can make,
+00:34:01.100 --> 00:34:03.040 perhaps when you implement something,
+00:34:03.160 --> 00:34:06.680 There are choices, different choices between
+00:34:06.680 --> 00:34:07.740 something like common list,
+00:34:07.740 --> 00:34:09.440 which is like bigger, more batteries
+00:34:09.440 --> 00:34:11.320 included, and something like scheme,
+00:34:11.320 --> 00:34:12.239 which is more minimal.
+00:34:12.239 --> 00:34:13.679 And I think we have some of those,
+00:34:13.679 --> 00:34:16.280 you know, this kind of tension also in the
+00:34:16.280 --> 00:34:18.159 Emacs itself. What should be in Emacs core?
+00:34:18.159 --> 00:34:19.699 Should we have a lean Emacs core?
+00:34:19.699 --> 00:34:21.800 Should we have more stuff in Emacs core?
+00:34:22.360 --> 00:34:26.320 And I think these are good discussions to
+00:34:26.320 --> 00:34:29.380 have. And there are various challenges that
+00:34:29.380 --> 00:34:31.940 are associated with each of those choices.
+00:34:32.540 --> 00:34:35.320 I think what will never change is that Emacs
+00:34:35.320 --> 00:34:37.280 is hackable. Emacs is customizable.
+00:34:37.500 --> 00:34:38.800 This is the key strength.
+00:34:38.860 --> 00:34:40.960 This is why we love and use Emacs.
+00:34:40.960 --> 00:34:41.820 I think fundamentally,
+00:34:42.380 --> 00:34:44.280 whether you do it a lot or not,
+00:34:44.380 --> 00:34:47.260 this is what at core is bringing you that
+00:34:47.320 --> 00:34:49.179 amazing user experience.
+00:34:50.739 --> 00:34:53.199 However, the flip side of that sometimes is
+00:34:53.199 --> 00:34:56.280 that it's so easy to hack Emacs so that we
+00:34:56.280 --> 00:34:58.520 hack around bugs instead of fixing them.
+00:34:58.520 --> 00:35:00.540 We do some tweak and our customers say,
+00:35:00.540 --> 00:35:01.720 okay, this is a little bit broken,
+00:35:01.720 --> 00:35:03.560 Let me just fix it. I'll put an advice on
+00:35:03.560 --> 00:35:05.700 this function. I'll do this customization.
+00:35:06.500 --> 00:35:09.040 Or we accept limitations in Emacs core.
+00:35:09.340 --> 00:35:12.100 And I think it's fine.
+00:35:12.380 --> 00:35:13.760 I mean, this will never change.
+00:35:13.760 --> 00:35:16.560 That will always be core to what Emacs is,
+00:35:16.560 --> 00:35:20.140 right? However, I think that the flip side of
+00:35:20.140 --> 00:35:22.500 that is that I think sometimes we could be
+00:35:22.500 --> 00:35:26.760 better at just taking those few extra steps
+00:35:26.820 --> 00:35:29.260 to also make Emacs better itself and solve
+00:35:29.260 --> 00:35:31.680 this for all users. And I think if we can
+00:35:31.680 --> 00:35:33.680 build a little bit more of a culture like
+00:35:33.680 --> 00:35:35.460 that, I mean, we already have that culture to
+00:35:35.460 --> 00:35:37.200 a large extent, don't get me wrong,
+00:35:37.200 --> 00:35:39.620 we do, but if we can get a little bit more of
+00:35:39.620 --> 00:35:41.320 that culture, let's get that into core,
+00:35:41.320 --> 00:35:43.760 let's get that problem fixed,
+00:35:43.980 --> 00:35:46.140 that frustration. I can tell you that,
+00:35:47.040 --> 00:35:48.940 I just started a new assignment at work,
+00:35:48.940 --> 00:35:51.420 I already told you, so I'm going to write a
+00:35:51.420 --> 00:35:54.140 lot of Python, okay? So I need to keep track
+00:35:54.140 --> 00:35:55.740 of something called virtual environments,
+00:35:56.040 --> 00:35:58.260 and that's just a way to install these
+00:35:58.440 --> 00:36:01.640 dependencies just locally per directory or
+00:36:01.640 --> 00:36:03.420 per repository kind of thing.
+00:36:03.900 --> 00:36:05.740 And I've used various packages for that.
+00:36:05.740 --> 00:36:07.860 There are like 4 packages,
+00:36:07.940 --> 00:36:10.560 5 packages, maybe. And 1 is called VM,
+00:36:10.560 --> 00:36:11.740 and 1 is called VirtualM,
+00:36:11.820 --> 00:36:13.640 and 1 is called Python-VM.
+00:36:15.420 --> 00:36:16.980 And now I'm using, you know,
+00:36:16.980 --> 00:36:18.100 I'm using a different 1.
+00:36:18.100 --> 00:36:19.620 And it's just a little bit,
+00:36:20.080 --> 00:36:22.160 why doesn't this work out of the box in
+00:36:22.160 --> 00:36:25.680 Emacs? Why? I don't think there's a really
+00:36:25.680 --> 00:36:28.640 good fundamental good reason why something
+00:36:28.640 --> 00:36:30.460 like that doesn't work in Emacs.
+00:36:30.480 --> 00:36:31.980 So I think that's really,
+00:36:32.220 --> 00:36:35.220 I mean, I'm sure there are other things like
+00:36:35.220 --> 00:36:37.280 that, other fundamental features.
+00:36:37.740 --> 00:36:39.920 Why is it that for the last 20 years,
+00:36:39.920 --> 00:36:43.740 we've shipped Emacs with no PHP support out
+00:36:43.740 --> 00:36:47.660 of the box? I mean, I'm not a PHP programmer.
+00:36:47.660 --> 00:36:51.020 I don't really have a lot of love for PHP,
+00:36:51.020 --> 00:36:56.020 let's say. To me, it's a very funny-looking
+00:36:57.180 --> 00:37:00.060 language, but okay, still it's been very
+00:37:00.060 --> 00:37:02.060 popular. Why haven't we supported it?
+00:37:02.120 --> 00:37:03.280 I mean, it's just strange.
+00:37:03.280 --> 00:37:05.040 You install Emacs on some machine,
+00:37:05.220 --> 00:37:07.260 you open a PHP file, you get fundamental
+00:37:07.280 --> 00:37:09.160 mode. It's not the best user experience,
+00:37:09.160 --> 00:37:12.600 in my opinion. So I think there are some
+00:37:12.600 --> 00:37:15.480 things where we really could do a little bit
+00:37:15.480 --> 00:37:20.200 better. And I'm seeing this all the time.
+00:37:20.200 --> 00:37:22.500 Just this week, this new assignment was
+00:37:22.500 --> 00:37:24.640 interesting. There was this Emacs user.
+00:37:24.720 --> 00:37:26.980 Turns out we have the exact same hack in both
+00:37:26.980 --> 00:37:29.860 of our init files. So we had created the
+00:37:29.860 --> 00:37:32.140 exact same mode for DIRED,
+00:37:32.140 --> 00:37:33.920 actually, to hide dot files.
+00:37:33.920 --> 00:37:36.720 You know, dot something is supposed to be
+00:37:36.720 --> 00:37:39.440 hidden on a Unix system.
+00:37:40.240 --> 00:37:43.940 So we had DERED hide dot files mode to just
+00:37:43.940 --> 00:37:47.100 hide them. And why isn't that in DERED?
+00:37:47.100 --> 00:37:48.420 Or should it be in DERED?
+00:37:48.480 --> 00:37:50.860 Should it be a package on the new Elpa?
+00:37:51.000 --> 00:37:53.000 Where should it be? Why is it just local
+00:37:53.000 --> 00:37:54.680 hack? Should it be on a wiki somewhere?
+00:37:54.680 --> 00:37:56.740 I mean, sometimes that's the correct answer.
+00:37:56.980 --> 00:37:59.060 Sometimes the correct answer is,
+00:37:59.060 --> 00:38:00.420 yes, it should be a package.
+00:38:00.780 --> 00:38:02.360 Sometimes the correct answer is,
+00:38:02.360 --> 00:38:04.140 yes, it should really be in core.
+00:38:04.280 --> 00:38:06.420 So what I want to promote is more like,
+00:38:06.480 --> 00:38:08.900 let's just take a step back and just ask
+00:38:08.900 --> 00:38:11.180 yourself, what's the best solution if we look
+00:38:11.180 --> 00:38:12.240 at the overall picture?
+00:38:12.240 --> 00:38:13.920 Should I hack this into my configuration?
+00:38:14.600 --> 00:38:16.840 In many cases, yes, that's the right thing to
+00:38:16.840 --> 00:38:19.540 do. We don't want to proliferate just random
+00:38:19.840 --> 00:38:22.160 solutions all over Emacs for no reason.
+00:38:22.540 --> 00:38:24.760 But sometimes we want to fix it once and for
+00:38:24.760 --> 00:38:27.700 all. We want to do that in core.
+00:38:27.880 --> 00:38:30.200 So you could send stuff like that to us as
+00:38:30.200 --> 00:38:31.480 patches or as packages.
+00:38:31.560 --> 00:38:34.340 And we can discuss a little bit about where
+00:38:34.340 --> 00:38:36.420 should we solve this? What's the right level
+00:38:37.280 --> 00:38:41.100 of abstraction? I'm seeing that I'm running
+00:38:41.100 --> 00:38:43.620 out of time. I had an Emacs wish list.
+00:38:43.620 --> 00:38:46.880 Maybe we can take more of that in the Q&A.
+00:38:47.170 --> 00:38:49.226 But I want to say, like,
+00:38:49.226 --> 00:38:50.460 in VS Code, you just start VS Code.
+00:38:50.460 --> 00:38:51.660 You open a Python file,
+00:38:51.660 --> 00:38:53.040 and you get, like, hey,
+00:38:53.040 --> 00:38:54.560 are you trying to use Python?
+00:38:54.840 --> 00:38:56.280 Click here, install Python.
+00:38:56.280 --> 00:38:58.700 You get all the nice things out of the box.
+00:38:59.180 --> 00:39:01.560 And my argument is, why can't we have more of
+00:39:01.560 --> 00:39:03.880 that in Emacs? I don't think it's necessarily
+00:39:04.000 --> 00:39:06.360 hard, but it does take a little bit of work.
+00:39:06.960 --> 00:39:09.060 The challenges here are more social,
+00:39:09.060 --> 00:39:10.880 I think, than technical.
+00:39:10.900 --> 00:39:12.780 And I think it's worth doing,
+00:39:12.780 --> 00:39:14.060 because it's not just Python.
+00:39:14.060 --> 00:39:16.640 It's just There are always these small things
+00:39:16.640 --> 00:39:18.900 where it just really should work,
+00:39:18.900 --> 00:39:20.900 and that would be a much better experience.
+00:39:20.900 --> 00:39:23.360 And then you could customize not that thing
+00:39:23.360 --> 00:39:24.600 that should just work,
+00:39:24.640 --> 00:39:27.140 but you could customize more fun and
+00:39:27.140 --> 00:39:29.620 exploratory things instead of people
+00:39:29.620 --> 00:39:31.720 reinventing the wheel over and over again.
+00:39:31.720 --> 00:39:33.420 So I'm very excited about what's happening in
+00:39:33.420 --> 00:39:35.280 Emacs. I think we should be proud of what
+00:39:35.280 --> 00:39:37.360 we've accomplished. It's so many things to
+00:39:37.360 --> 00:39:38.360 many different people,
+00:39:38.360 --> 00:39:39.660 an environment for hacking,
+00:39:40.040 --> 00:39:41.620 just a productivity system.
+00:39:41.880 --> 00:39:44.020 Other sees us as a different way of looking
+00:39:44.020 --> 00:39:45.360 at computing, you know,
+00:39:45.360 --> 00:39:47.440 the embodiment of the ideal of the Lisp
+00:39:47.440 --> 00:39:49.280 machine if you want to talk big words and
+00:39:49.280 --> 00:39:50.660 stuff like that. And of course,
+00:39:50.660 --> 00:39:53.320 Emacs are all those things and so many more.
+00:39:53.320 --> 00:39:55.440 And that's what makes Emacs so amazing.
+00:39:56.280 --> 00:40:00.780 And in some sense, we should be care that
+00:40:00.780 --> 00:40:03.040 people are satisfied with using lesser text
+00:40:03.040 --> 00:40:05.600 editors. How could they be happy running
+00:40:05.600 --> 00:40:07.440 that? I mean, I'm sure it's fine,
+00:40:07.440 --> 00:40:09.800 but it sure as hell isn't Emacs.
+00:40:09.800 --> 00:40:12.340 So don't we owe it to the world and to them
+00:40:12.340 --> 00:40:14.440 and to ourselves to make a great Emacs.
+00:40:14.760 --> 00:40:16.120 That will be my ending words.
+00:40:16.120 --> 00:40:18.020 And I hope to see you all in the Q&A.
+00:40:18.120 --> 00:40:22.560 Thank you all. And thank you so much,
+00:40:22.560 --> 00:40:24.360 Stefan. That was a wonderful presentation.
+00:40:24.800 --> 00:40:27.280 And I just want to give you the opportunity.
+00:40:27.340 --> 00:40:29.940 You said that you perhaps had,
+00:40:30.480 --> 00:40:31.400 Not the practical stuff,
+00:40:31.400 --> 00:40:33.280 but you wanted to do a demo or something like
+00:40:33.280 --> 00:40:34.780 this? What did you mention exactly?
+00:40:36.180 --> 00:40:38.460 Yeah, we didn't have time really.
+00:40:38.740 --> 00:40:42.040 Yes, I'm not sure. I didn't prepare anything
+00:40:42.040 --> 00:40:43.580 so that we can do it live.
+00:40:43.620 --> 00:40:44.800 But maybe for next time,
+00:40:44.800 --> 00:40:48.620 I will do a demo. Don't hold me to it.
+00:40:49.920 --> 00:40:51.100 Or someone else could.
+00:40:51.100 --> 00:40:52.540 That would be really amazing.
+00:40:53.260 --> 00:40:54.020 Right. Well, thank you,
+00:40:54.020 --> 00:40:56.820 Stéphane. You've been already into so much
+00:40:56.820 --> 00:41:00.560 detail of so many... So much of the intricacy
+00:41:01.780 --> 00:41:05.100 of the maintenance. And as someone who's been
+00:41:05.460 --> 00:41:07.980 95% of the time developing for Melpa,
+00:41:08.260 --> 00:41:11.040 I feel like this talk was very geared to a
+00:41:11.040 --> 00:41:13.980 lot of us who tend to experiment in this
+00:41:13.980 --> 00:41:16.400 Cambrian stage of Emacs evolution,
+00:41:16.400 --> 00:41:19.620 where we get to deploy a lot of creativity
+00:41:20.600 --> 00:41:24.020 whilst also feeling pretty agile in a way we
+00:41:24.020 --> 00:41:25.580 come up with solutions to problems.
+00:41:25.640 --> 00:41:29.240 But you've won me over with your discussion
+00:41:29.240 --> 00:41:31.360 about potentially moving some of this stuff
+00:41:31.360 --> 00:41:33.220 to core. And I think this particularly
+00:41:33.280 --> 00:41:36.140 resonated at the end with this tension that
+00:41:36.140 --> 00:41:38.660 you feel about problems that you encounter.
+00:41:39.160 --> 00:41:40.760 Do you fix them in Melpa?
+00:41:40.760 --> 00:41:42.040 Do you fix them in core?
+00:41:42.040 --> 00:41:43.780 Is it not something that is supposed to be an
+00:41:43.780 --> 00:41:46.560 option? I love this tension and it's
+00:41:46.560 --> 00:41:48.040 something that we've been exploring for the
+00:41:48.040 --> 00:41:49.780 last 3 edition of Emacs Cons.
+00:41:49.780 --> 00:41:52.480 It's really what is to be the interaction
+00:41:52.600 --> 00:41:55.660 between this pool of very clever developers
+00:41:55.680 --> 00:41:58.100 who are on Melpa but who are perhaps a little
+00:41:58.100 --> 00:42:00.880 bit afraid of joining Core and the wonderful
+00:42:00.920 --> 00:42:02.860 job that you do that, yes,
+00:42:02.980 --> 00:42:05.640 seems archaic from the outside,
+00:42:05.860 --> 00:42:07.840 but as you've been at length today in your
+00:42:07.840 --> 00:42:09.480 presentation, is actually just a better way
+00:42:09.480 --> 00:42:11.780 to work, a very pragmatic way to get a lot of
+00:42:11.780 --> 00:42:13.320 work done. So, thank you so much for your
+00:42:13.320 --> 00:42:15.240 presentation. Thank you,
+00:42:15.240 --> 00:42:20.740 Leo. So, we have about 12 minutes now to go
+00:42:20.740 --> 00:42:22.950 through as many questions as possible.
+00:42:22.950 --> 00:42:26.000 You have obviously had a lot of questions
+00:42:26.000 --> 00:42:27.180 throughout your presentation.
+00:42:27.660 --> 00:42:28.940 Do you have access to the pad,
+00:42:28.940 --> 00:42:30.400 or do you want me to share the question and
+00:42:30.400 --> 00:42:32.660 feed them to you? Yes,
+00:42:32.660 --> 00:42:34.200 could you start with sharing them?
+00:42:34.200 --> 00:42:36.000 I'll see if I can get it on my screen.
+00:42:36.280 --> 00:42:39.640 Sure, I'll do that. Please let me know if my
+00:42:39.720 --> 00:42:42.980 microphone is clipping because my OBS setup
+00:42:42.980 --> 00:42:44.440 sometimes is a little bit janky.
+00:42:44.440 --> 00:42:46.080 But I'm going to try to read the questions
+00:42:46.080 --> 00:42:47.780 for now. It's tipping,
+00:42:48.080 --> 00:42:51.980 I can hear you okay. Okay,
+00:42:51.980 --> 00:42:54.400 so bear with the clicking,
+00:42:54.400 --> 00:42:56.480 we'll switch as soon as possible to Stefan
+00:42:56.480 --> 00:42:58.080 reading the question, but I'll read the first
+00:42:58.080 --> 00:43:02.820 1. Can you tell us some about your,
+00:43:02.860 --> 00:43:04.340 can you tell us some more I assume,
+00:43:04.340 --> 00:43:06.160 about your background with Emacs development
+00:43:06.160 --> 00:43:07.500 and programming in general,
+00:43:07.580 --> 00:43:09.220 your professional work possibly?
+00:43:11.400 --> 00:43:15.440 Yeah, sure. Okay, I studied computer science
+00:43:15.440 --> 00:43:19.960 at university. I started programming on a
+00:43:19.960 --> 00:43:23.960 Commodore 64. I started with BASIC and then I
+00:43:23.960 --> 00:43:26.880 did a couple of versions of BASIC as a kid.
+00:43:27.380 --> 00:43:31.540 But then really things took off when I
+00:43:31.540 --> 00:43:34.240 started using GNU Linux.
+00:43:34.300 --> 00:43:35.580 I can't remember which year,
+00:43:35.580 --> 00:43:37.440 maybe it was early 2000,
+00:43:38.480 --> 00:43:39.740 something like that, late.
+00:43:39.840 --> 00:43:42.080 No, it must've been before that actually,
+00:43:42.380 --> 00:43:44.120 because I remember I was 14.
+00:43:44.340 --> 00:43:46.020 Yeah, okay, so let's say 1999,
+00:43:46.500 --> 00:43:48.720 1998, somewhere there around.
+00:43:48.840 --> 00:43:50.200 Then I started with Perl,
+00:43:50.200 --> 00:43:52.620 and I did Perl for a good long while.
+00:43:52.700 --> 00:43:55.460 I learned C++, I learned C,
+00:43:55.680 --> 00:43:56.960 I did all kinds of stuff,
+00:43:56.960 --> 00:43:58.640 and then I went to university,
+00:43:59.440 --> 00:44:01.700 computer science, and I've been working,
+00:44:01.700 --> 00:44:03.980 you know, in various roles.
+00:44:04.160 --> 00:44:06.300 Right now, I'm coding Python.
+00:44:06.980 --> 00:44:09.640 Up until last Friday, I was writing firmware
+00:44:09.940 --> 00:44:12.319 in C for a small microcontroller,
+00:44:12.440 --> 00:44:15.600 which is pretty different than writing
+00:44:15.600 --> 00:44:17.060 Python, that's for sure.
+00:44:17.220 --> 00:44:19.600 So yeah, so that's a little bit about me.
+00:44:19.600 --> 00:44:21.860 I got interested in free software,
+00:44:22.300 --> 00:44:24.720 you know, also at a very young age.
+00:44:24.720 --> 00:44:26.320 So, I mean, I've been following these,
+00:44:26.320 --> 00:44:29.120 you know, ideological discussions and
+00:44:29.120 --> 00:44:31.560 debates, read all this stuff by Richard
+00:44:31.560 --> 00:44:33.940 Stallman and so on and so forth.
+00:44:33.940 --> 00:44:37.760 But yeah, that's it. Great,
+00:44:37.760 --> 00:44:41.120 thank you. I'll move on to the next question.
+00:44:41.120 --> 00:44:42.980 You'll have to listen to me because if I
+00:44:42.980 --> 00:44:45.020 start sharing my screen again,
+00:44:45.020 --> 00:44:46.320 we're going to get some clicks.
+00:44:48.140 --> 00:44:50.680 So the question. Do you think that 1 day
+00:44:50.680 --> 00:44:53.930 there will be a native I'll start again,
+00:44:53.930 --> 00:44:54.079 sorry. Do you think that 1 day there will be
+00:44:54.079 --> 00:44:54.440 a native... I'll start again,
+00:44:54.440 --> 00:44:56.480 sorry. Do you think that 1 day there will be
+00:44:56.480 --> 00:44:59.020 a native graphical web browser in Emacs or is
+00:44:59.020 --> 00:45:00.540 it kind of against its philosophy and
+00:45:00.540 --> 00:45:03.820 architecture? So will we stick just with EWW
+00:45:04.200 --> 00:45:06.800 and EAF or similar workaround tricks?
+00:45:08.640 --> 00:45:11.200 So if, I don't know if people have seen,
+00:45:11.200 --> 00:45:12.740 there is a talk by, I think,
+00:45:13.440 --> 00:45:15.080 Perry Metzger, is that the name?
+00:45:15.080 --> 00:45:16.800 Sorry if I got the name wrong.
+00:45:17.080 --> 00:45:18.360 Perry Metzger, I think.
+00:45:18.720 --> 00:45:20.800 It's like, he marks a text editor for the
+00:45:20.800 --> 00:45:22.640 next 40 years. He makes an excellent point
+00:45:22.640 --> 00:45:24.720 there that 1 of the things that we need to do
+00:45:24.720 --> 00:45:27.840 is really get a proper HTML rendering in
+00:45:27.840 --> 00:45:30.260 Emacs. It's like a dream at this point.
+00:45:30.260 --> 00:45:32.200 No 1 is actively working on something like
+00:45:32.200 --> 00:45:34.240 that. I think that, you know,
+00:45:34.240 --> 00:45:36.380 there, first of all, you'd need to rewrite
+00:45:36.380 --> 00:45:39.520 the display engine. So that's a big job.
+00:45:39.920 --> 00:45:41.140 It is. I'm not saying,
+00:45:41.140 --> 00:45:42.540 you know, it can't be done,
+00:45:43.040 --> 00:45:44.660 but you need to start there.
+00:45:44.660 --> 00:45:47.560 Right? Second of all, you need to think
+00:45:47.560 --> 00:45:50.460 about, you know, with all the Emacs Lisp code
+00:45:50.460 --> 00:45:52.090 out there, is really assuming,
+00:45:52.090 --> 00:45:54.960 you know, 1 paradigm, which is that you have
+00:45:54.960 --> 00:45:57.720 a square, and basically you have columns and
+00:45:57.720 --> 00:45:59.760 you have rows, and everything is in there,
+00:45:59.760 --> 00:46:02.360 even images, is basically in a column,
+00:46:02.540 --> 00:46:04.740 you know, in a column on a row somewhere.
+00:46:05.380 --> 00:46:07.360 Whereas, you know, when you just start doing
+00:46:07.360 --> 00:46:09.780 the more web stuff and web rendering,
+00:46:10.120 --> 00:46:12.020 you already have like a seaplane.
+00:46:12.040 --> 00:46:14.500 You have different types of geometries that
+00:46:14.500 --> 00:46:16.880 are possible. And what does it mean to go to
+00:46:16.880 --> 00:46:19.370 the logical next line in that kind of sense?
+00:46:19.370 --> 00:46:21.420 I mean these types of things I'm not saying
+00:46:21.420 --> 00:46:23.440 it can't be done. I'm saying there are there
+00:46:23.440 --> 00:46:27.440 are definitely some challenges there It would
+00:46:27.440 --> 00:46:30.280 be amazing I mean, but we need someone with
+00:46:30.280 --> 00:46:33.020 you know, the inclination and talent I think
+00:46:33.320 --> 00:46:37.680 to work on that's a job posting if I've ever
+00:46:37.680 --> 00:46:40.200 had 1. So good luck to whoever's willing to
+00:46:40.200 --> 00:46:42.100 apply for this 1. I think it's a tough 1.
+00:46:43.180 --> 00:46:46.440 It is, yes. Go on. Okay,
+00:46:46.560 --> 00:46:48.040 do you happen to have the questions in front
+00:46:48.040 --> 00:46:50.320 of you? Can I just read them to you so that
+00:46:50.320 --> 00:46:52.660 you can also have a feedback in front of you?
+00:46:54.780 --> 00:46:56.680 Yes, I have the pad here.
+00:46:57.260 --> 00:46:58.860 Okay, cool. So I'll read the next question
+00:46:58.860 --> 00:47:00.260 and this way I don't have to worry too much
+00:47:00.260 --> 00:47:02.320 about me butchering every word in the
+00:47:02.320 --> 00:47:04.540 sentence. So, Emacs development and
+00:47:04.540 --> 00:47:06.460 communication still is very much focused on
+00:47:06.460 --> 00:47:08.640 email mailing lists. I like this,
+00:47:08.640 --> 00:47:10.380 but what do you think about introducing other
+00:47:10.380 --> 00:47:12.320 channels for talking to users,
+00:47:12.440 --> 00:47:15.140 like the Emacs project community could set up
+00:47:15.140 --> 00:47:17.120 a master on instance of its own,
+00:47:17.120 --> 00:47:20.280 for instance? I think from the point of view
+00:47:20.280 --> 00:47:21.760 of the Emacs core team,
+00:47:21.760 --> 00:47:23.860 we don't really have a lot of resources or
+00:47:23.860 --> 00:47:25.960 people inclined to be working on stuff like
+00:47:25.960 --> 00:47:27.880 that. But I mean, there is so much going on.
+00:47:27.880 --> 00:47:29.360 Emacs is a very, you know,
+00:47:30.420 --> 00:47:32.580 It's a big community, frankly,
+00:47:32.580 --> 00:47:34.500 right? So people working on emacs.com,
+00:47:34.760 --> 00:47:37.400 there are people in the IRC channel,
+00:47:37.500 --> 00:47:39.200 the emacs IRC channel,
+00:47:39.400 --> 00:47:40.820 there's the emacs subreddit.
+00:47:40.960 --> 00:47:43.280 And I mean, people are doing an incredible
+00:47:43.380 --> 00:47:45.480 job. And I think if people wanna do more
+00:47:45.480 --> 00:47:46.400 stuff like that, I mean,
+00:47:46.400 --> 00:47:48.840 Don't wait for Argo, just go for it.
+00:47:52.000 --> 00:47:54.340 Great. Moving on to the next question.
+00:47:54.340 --> 00:47:56.520 Sorry, I'm not commenting anymore because we
+00:47:56.520 --> 00:47:58.180 have so many questions and I'd love for you
+00:47:58.180 --> 00:48:00.260 to answer as many people as possible because
+00:48:00.260 --> 00:48:02.540 we have about 6 minutes technically,
+00:48:02.640 --> 00:48:04.820 but we can go perhaps a little bit over.
+00:48:05.080 --> 00:48:06.220 If you have the time, Stefan,
+00:48:06.220 --> 00:48:08.680 though. Yeah. Okay, great.
+00:48:09.340 --> 00:48:11.140 What are some features or packages you'd like
+00:48:11.140 --> 00:48:12.540 to see developed by the community?
+00:48:12.560 --> 00:48:15.560 We've already talked about the native HTTP
+00:48:15.920 --> 00:48:17.620 display, but do you have any others?
+00:48:19.540 --> 00:48:22.080 So, I mean, developed by the community,
+00:48:22.360 --> 00:48:23.240 it depends what you mean.
+00:48:23.240 --> 00:48:27.720 So do you mean sending stuff that people
+00:48:27.720 --> 00:48:29.720 could be working on in general?
+00:48:30.480 --> 00:48:33.320 I think for now, like let's say the roadmap,
+00:48:33.420 --> 00:48:35.140 I'll just give some of the things that I
+00:48:35.140 --> 00:48:36.940 think should happen right now and that I
+00:48:36.940 --> 00:48:39.060 would love for people to send patches for.
+00:48:39.060 --> 00:48:41.120 That's what I'm gonna be answering because
+00:48:41.120 --> 00:48:42.860 that's what I think I can answer.
+00:48:43.280 --> 00:48:45.220 Tree-sitter is a new thing,
+00:48:45.280 --> 00:48:48.620 right? Improving and working on new modes
+00:48:48.860 --> 00:48:50.040 for, you know, TreeSitter,
+00:48:50.200 --> 00:48:52.860 it's not very hard. I think many people get
+00:48:52.900 --> 00:48:55.560 into it and make sure to integrate them in
+00:48:55.560 --> 00:48:57.540 Emacs core. I think that would be,
+00:48:58.140 --> 00:49:00.140 I mean, on my wishlist.
+00:49:00.140 --> 00:49:01.960 The other thing that is that we've asked for
+00:49:01.960 --> 00:49:03.740 someone perhaps with a little bit more
+00:49:03.740 --> 00:49:05.940 experience, I think, but working on
+00:49:05.940 --> 00:49:09.080 refactoring capabilities in Emacs and a more
+00:49:09.080 --> 00:49:11.320 general framework, I think,
+00:49:11.320 --> 00:49:13.680 for that. There are probably many more ideas
+00:49:13.780 --> 00:49:15.300 that I could give people,
+00:49:15.300 --> 00:49:17.720 but those would be the 2 big ones,
+00:49:17.720 --> 00:49:20.140 I think, that are also very uncontroversial.
+00:49:22.360 --> 00:49:23.960 It's funny because for me,
+00:49:24.400 --> 00:49:26.760 I don't think refactoring would count as a
+00:49:26.760 --> 00:49:29.760 feature, but it's so vital to allowing
+00:49:30.360 --> 00:49:31.780 further features to be developed.
+00:49:31.780 --> 00:49:34.160 Otherwise, I remember the way Org Mode used
+00:49:34.160 --> 00:49:36.300 to be before we had Org Element and stuff
+00:49:36.300 --> 00:49:38.940 like this. It was really complicated to write
+00:49:38.940 --> 00:49:41.200 any kind of parsing stuff for it.
+00:49:41.200 --> 00:49:42.340 And now that we've got it,
+00:49:42.340 --> 00:49:44.080 it just opened up a world of possibility
+00:49:44.180 --> 00:49:46.160 where parsing an Org Mode file is just made
+00:49:46.160 --> 00:49:48.280 so much easier. So I think that's a wonderful
+00:49:48.280 --> 00:49:49.620 answer because it goes,
+00:49:49.760 --> 00:49:52.080 it's multi-layered as you would expect from
+00:49:52.080 --> 00:49:53.920 something that concerns the whole of Emacs.
+00:49:55.800 --> 00:49:57.160 Moving on to the next question.
+00:49:57.440 --> 00:49:59.960 What is the hardest decision being made
+00:49:59.960 --> 00:50:02.480 within Emacs dev for the last 3 years.
+00:50:02.480 --> 00:50:04.960 I'm not sure, is it the decision in the last
+00:50:04.960 --> 00:50:07.480 3 years or I'll let you interpret the
+00:50:07.480 --> 00:50:08.760 question however you want.
+00:50:09.280 --> 00:50:10.960 Okay, well, I'll say this.
+00:50:11.640 --> 00:50:14.220 I started in August and I haven't had any
+00:50:14.220 --> 00:50:16.920 really hard decisions so far.
+00:50:16.920 --> 00:50:20.540 So good news. Maybe Eli will have more for
+00:50:20.540 --> 00:50:22.820 the last 3 years. Keep it simple.
+00:50:25.240 --> 00:50:28.660 Thanks. Cool. Next question.
+00:50:28.860 --> 00:50:31.920 Any plans to integrate XWM into core?
+00:50:31.940 --> 00:50:34.400 Emacs is a really good Winters manager.
+00:50:34.780 --> 00:50:38.080 That's super cool. I think EXWM is cool.
+00:50:38.100 --> 00:50:40.140 I think they need to upgrade to Wayland
+00:50:40.260 --> 00:50:41.880 somehow and that's not clear yet,
+00:50:41.880 --> 00:50:44.880 but you know, we don't have any current plans
+00:50:44.880 --> 00:50:48.900 to integrate it, no. Right,
+00:50:49.020 --> 00:50:51.600 Next question. Do you think it is a good idea
+00:50:51.600 --> 00:50:53.540 to choose Org Mode for writing documentation
+00:50:53.680 --> 00:50:57.740 instead of tech info? I think that whatever
+00:50:57.740 --> 00:50:59.680 we do, it should be the people that are
+00:50:59.680 --> 00:51:01.760 working on the documentation that should make
+00:51:01.760 --> 00:51:03.420 that choice. Currently we have,
+00:51:03.420 --> 00:51:05.920 I think, Modus themes and Org Mode itself is
+00:51:05.920 --> 00:51:08.060 writing their documentation in Org Mode,
+00:51:08.080 --> 00:51:10.940 that's fine by me. It has some drawbacks,
+00:51:10.960 --> 00:51:13.440 it has some benefits, but most documentation
+00:51:13.580 --> 00:51:14.840 is still in tech info.
+00:51:15.240 --> 00:51:17.360 Maybe we'd need to replace that at some
+00:51:17.360 --> 00:51:19.840 point, I don't know. But for now,
+00:51:19.840 --> 00:51:22.280 that's what people know and use.
+00:51:22.280 --> 00:51:24.280 And if you find that as a barrier to
+00:51:24.280 --> 00:51:25.600 contribute to Emacs, I mean,
+00:51:25.600 --> 00:51:27.420 just really write it as plain text.
+00:51:27.540 --> 00:51:29.380 We'll be happy to help you with the markup.
+00:51:29.380 --> 00:51:30.280 It's a little bit, you know,
+00:51:30.280 --> 00:51:31.760 finicky and stuff like that.
+00:51:33.340 --> 00:51:35.060 Great. Thanks for that.
+00:51:35.620 --> 00:51:38.000 Next question. What do you plan to work on in
+00:51:38.000 --> 00:51:39.360 Emacs Core in the future?
+00:51:40.460 --> 00:51:42.660 I'm a little bit hesitant to reply to that.
+00:51:42.660 --> 00:51:43.740 Of course I have ideas.
+00:51:43.740 --> 00:51:45.760 Of course there are projects that I'm working
+00:51:45.760 --> 00:51:47.640 on. However, if I say it here,
+00:51:47.640 --> 00:51:48.480 I feel like, you know,
+00:51:48.480 --> 00:51:51.240 then you'll hold me to it later and come ask,
+00:51:51.300 --> 00:51:52.480 where is that feature?
+00:51:52.640 --> 00:51:55.180 So I'll just say there is plenty of stuff
+00:51:55.180 --> 00:51:57.340 that I'm working on, and if you want to know
+00:51:57.340 --> 00:51:58.780 some of the stuff that I have been working
+00:51:58.780 --> 00:52:00.040 on, check the Git log.
+00:52:00.060 --> 00:52:02.400 I think that's just really as much as I want
+00:52:02.400 --> 00:52:05.040 to say about that right now.
+00:52:05.660 --> 00:52:07.360 You've added folks to just look at the path
+00:52:07.360 --> 00:52:09.620 with the changelog and that's all you need.
+00:52:11.600 --> 00:52:13.340 All right, moving on to the next question.
+00:52:14.020 --> 00:52:16.120 What do you use Emacs for in your life other
+00:52:16.120 --> 00:52:17.580 than working on Emacs itself?
+00:52:18.080 --> 00:52:21.060 Oh shit. So the big thing is programming,
+00:52:21.140 --> 00:52:24.020 right? Now I work as a programmer.
+00:52:27.040 --> 00:52:29.280 But in general, I use org mode heavily.
+00:52:29.340 --> 00:52:30.780 I use it for all my writing.
+00:52:30.820 --> 00:52:33.460 I use it to write, prepare this talk.
+00:52:33.480 --> 00:52:35.360 I use it as a productivity system.
+00:52:35.380 --> 00:52:41.980 I use it for emails. I use it as an RSS
+00:52:41.980 --> 00:52:44.480 reader. I do most of my computing.
+00:52:44.760 --> 00:52:47.040 I also have Firefox. So it's like Emacs and
+00:52:47.040 --> 00:52:48.820 Firefox for some reason.
+00:52:48.900 --> 00:52:51.900 I do read documentation in Emacs as well in
+00:52:51.900 --> 00:52:58.440 you, but yeah. Great. I'm still,
+00:52:59.180 --> 00:53:00.720 I do very much the same thing with you.
+00:53:00.720 --> 00:53:02.040 Like You've described exactly what I do.
+00:53:02.040 --> 00:53:02.960 I work as a programmer,
+00:53:02.960 --> 00:53:04.640 I use Augment for a lot of stuff,
+00:53:04.640 --> 00:53:06.340 and I think that describes a whole lot of
+00:53:06.340 --> 00:53:08.100 people currently watching the stream.
+00:53:09.380 --> 00:53:10.680 Moving on to the next question.
+00:53:10.840 --> 00:53:12.740 What could we do in order to make Emacs more
+00:53:12.740 --> 00:53:14.280 attractive for younger users?
+00:53:14.820 --> 00:53:17.940 This is an amazing question and I feel wholly
+00:53:18.480 --> 00:53:20.720 unprepared to answer this.
+00:53:21.180 --> 00:53:24.180 Probably more introductory material aimed at
+00:53:24.320 --> 00:53:26.580 that age group. What do you mean by younger
+00:53:26.580 --> 00:53:28.740 users? You know what would be really cool if
+00:53:28.740 --> 00:53:30.740 you had an Emacs for kids project?
+00:53:31.020 --> 00:53:32.060 That would be amazing.
+00:53:32.680 --> 00:53:34.920 I'm not sure if that's what people are
+00:53:34.920 --> 00:53:36.880 thinking about, but yeah,
+00:53:37.200 --> 00:53:39.780 that's about what I can say for now.
+00:53:40.380 --> 00:53:43.320 Good question. It is a very good question,
+00:53:43.320 --> 00:53:45.880 like it comes back always to a key topic in
+00:53:45.880 --> 00:53:47.720 EmacsConf, which is, how do we get more
+00:53:47.720 --> 00:53:49.360 people to join us? Because it's a wonderful
+00:53:49.360 --> 00:53:51.760 community. And how do we onboard people who
+00:53:51.760 --> 00:53:54.220 are not programmers or people who are younger
+00:53:54.400 --> 00:53:56.720 than the average Joe coming in those
+00:53:57.120 --> 00:54:01.560 meetings? There's this Excellent article by
+00:54:01.560 --> 00:54:05.960 Paul Graham, I think, where he was describing
+00:54:06.140 --> 00:54:09.140 how they used Emacs as the sort of customer
+00:54:09.320 --> 00:54:11.520 service system. They built the customer
+00:54:11.520 --> 00:54:13.940 service system for the early days of Amazon
+00:54:14.700 --> 00:54:17.200 in Emacs Lisp. And then they switched and all
+00:54:17.200 --> 00:54:18.680 the employees were sad.
+00:54:18.680 --> 00:54:21.680 So definitely there's more stuff that could
+00:54:21.680 --> 00:54:25.160 be done in Emacs and be done better in Emacs.
+00:54:25.240 --> 00:54:27.440 So for sure, if people want to explore more
+00:54:27.440 --> 00:54:28.880 stuff like that, that's amazing.
+00:54:29.720 --> 00:54:32.040 Yeah. And for people who weren't around
+00:54:32.040 --> 00:54:33.740 earlier today, we've had a presentation about
+00:54:33.740 --> 00:54:36.820 how to get computer science students to use
+00:54:36.860 --> 00:54:41.100 Emacs and trying to provide as much
+00:54:41.100 --> 00:54:43.500 information and as much tutorial as needed
+00:54:43.500 --> 00:54:45.480 for them to understand what is the philosophy
+00:54:45.480 --> 00:54:48.420 behind Emacs and how it influences the way
+00:54:48.420 --> 00:54:49.540 you work and so forth.
+00:54:49.540 --> 00:54:51.420 So you might want to revisit this discussion.
+00:54:51.420 --> 00:54:53.400 And we also have plenty of talks talking
+00:54:53.400 --> 00:54:57.720 about this issue. And I can just add that I
+00:54:57.720 --> 00:55:00.320 think it's very important for us as a
+00:55:00.320 --> 00:55:03.120 community to just be enthusiastic to get more
+00:55:03.120 --> 00:55:04.640 people involved. Because I mean,
+00:55:04.640 --> 00:55:06.660 look, there's this meme where it's like,
+00:55:06.660 --> 00:55:08.620 I use Arch Linux, by the way,
+00:55:08.620 --> 00:55:10.020 I use Arch, by the way.
+00:55:10.080 --> 00:55:12.380 And for some reason, people using Arch keep
+00:55:12.380 --> 00:55:14.080 telling you that they're using Arch.
+00:55:14.600 --> 00:55:16.160 That's fine. Use whatever you want.
+00:55:16.160 --> 00:55:18.260 It's free software, I don't care.
+00:55:20.140 --> 00:55:21.900 I think if you look at Vim users,
+00:55:21.900 --> 00:55:23.440 they're very almost militant,
+00:55:23.540 --> 00:55:25.780 oh, we're Vim, and Vim is the thing.
+00:55:25.920 --> 00:55:27.480 And Emacs users sometimes,
+00:55:27.700 --> 00:55:29.960 and it's fine. We take a bit of a more
+00:55:29.960 --> 00:55:31.160 laid-back approach. We're like,
+00:55:31.160 --> 00:55:32.720 yeah, I use Emacs, you use Vim,
+00:55:32.720 --> 00:55:35.320 whatever. And that's fine.
+00:55:35.320 --> 00:55:36.820 I mean, that's the correct approach,
+00:55:36.820 --> 00:55:38.480 I think. You should respect what people want
+00:55:38.480 --> 00:55:40.840 to use. I don't care that people use VS Code
+00:55:40.840 --> 00:55:42.540 or whatever. I'm not going to use that
+00:55:42.540 --> 00:55:43.940 because it's too limiting.
+00:55:43.940 --> 00:55:45.780 It's not really a workable environment.
+00:55:46.400 --> 00:55:48.620 But I think it's OK to be enthusiastic.
+00:55:48.740 --> 00:55:51.360 I think it's okay to talk about that type of
+00:55:51.360 --> 00:55:54.100 enthusiasm and anything that can help
+00:55:54.400 --> 00:55:56.880 increase the enthusiasm around Emacs can only
+00:55:56.880 --> 00:56:01.100 help the longevity of Emacs.
+00:56:02.520 --> 00:56:04.280 I agree and that's also 1 of the key
+00:56:04.280 --> 00:56:05.340 objectives of EmacsConf.
+00:56:05.460 --> 00:56:07.660 It's about bringing a lot of amazing people
+00:56:07.660 --> 00:56:09.100 to come talk, like you,
+00:56:09.140 --> 00:56:11.400 about stuff that is very dear to you.
+00:56:11.400 --> 00:56:14.180 And it's very tangible how much you care,
+00:56:14.180 --> 00:56:15.920 all of you, about what you're presenting.
+00:56:15.920 --> 00:56:18.560 And it's amazing to put all of you people on
+00:56:18.560 --> 00:56:20.800 just 48 hours talking about all of this and
+00:56:20.800 --> 00:56:22.920 then creating so much content for people to
+00:56:22.920 --> 00:56:24.480 watch. And I think it's really helping the
+00:56:24.480 --> 00:56:28.140 enthusiasm to live on and to gather a little
+00:56:28.140 --> 00:56:29.660 more snow as it comes down.
+00:56:29.920 --> 00:56:31.720 Yeah, I watch you Max Conf every year.
+00:56:31.720 --> 00:56:33.460 I think it's a lot of fun.
+00:56:34.300 --> 00:56:37.360 Thank you. I'll take the compliment for
+00:56:37.360 --> 00:56:38.620 everyone else in the team.
+00:56:39.620 --> 00:56:41.120 We're going to go a little bit longer with
+00:56:41.120 --> 00:56:42.800 the Q&A because we still have a lot of
+00:56:42.800 --> 00:56:44.480 questions and if Stéphane is still willing to
+00:56:44.480 --> 00:56:48.160 answer, I'm still willing to not go too bad
+00:56:48.160 --> 00:56:49.740 to hear a lot more of it.
+00:56:49.740 --> 00:56:50.580 Yeah, for me it's fine.
+00:56:50.580 --> 00:56:55.760 I have time. Great. So I think I've done this
+00:56:55.760 --> 00:56:57.460 question. So, all right.
+00:56:58.080 --> 00:57:00.060 How are we going to make sure that a cool
+00:57:00.060 --> 00:57:01.960 idea is going to pass it through for the next
+00:57:01.960 --> 00:57:04.100 generation, let's say 20 years later,
+00:57:04.120 --> 00:57:05.860 the generation still have the good knowledge
+00:57:05.860 --> 00:57:09.940 we have today. Yeah, so I mean,
+00:57:09.940 --> 00:57:12.840 if you think about what does EMAX need to
+00:57:12.840 --> 00:57:15.180 have staying power, so in general,
+00:57:15.180 --> 00:57:17.020 they say, you know, if if when you start a
+00:57:17.020 --> 00:57:19.340 company, if you have a company for 1 year,
+00:57:19.340 --> 00:57:20.220 then in all likelihood,
+00:57:20.220 --> 00:57:21.820 you're going to have it for 2 years because,
+00:57:21.820 --> 00:57:23.680 you know, it's just so if you've had Emacs
+00:57:23.680 --> 00:57:25.840 for 4 years, I'm saying that we're going to
+00:57:25.840 --> 00:57:27.980 have Emacs for the next 4 years as well.
+00:57:27.980 --> 00:57:30.540 Just based on that, I'm not sure the logic
+00:57:30.540 --> 00:57:32.200 holds up, but you know,
+00:57:32.440 --> 00:57:34.320 how does Emacs stay relevant?
+00:57:34.340 --> 00:57:35.500 I think is the question.
+00:57:35.500 --> 00:57:38.400 Well, I think we need to continue working on
+00:57:38.520 --> 00:57:41.840 all the types of exploratory work that people
+00:57:41.840 --> 00:57:43.820 are doing in the community.
+00:57:43.820 --> 00:57:45.720 I think there is fundamental stuff that needs
+00:57:45.720 --> 00:57:47.720 to be done. I mean, if people want to work
+00:57:47.720 --> 00:57:49.400 on, you know, web rendering and Emacs,
+00:57:49.400 --> 00:57:50.240 maybe that's the next,
+00:57:50.240 --> 00:57:53.240 you know, revolutionary step that we need
+00:57:53.240 --> 00:57:55.320 that could, you know, really showcase what
+00:57:55.320 --> 00:57:57.640 Emacs, you know, as, you know,
+00:57:57.640 --> 00:58:00.620 an idea, even if not Emacs as a software
+00:58:00.620 --> 00:58:01.960 could be and, you know,
+00:58:01.960 --> 00:58:05.000 Because there is huge potential in the idea
+00:58:05.000 --> 00:58:07.100 as such. So maybe that's something.
+00:58:07.960 --> 00:58:09.600 But I mean, from the point of view of core
+00:58:09.600 --> 00:58:11.840 development, I think we need to just continue
+00:58:11.840 --> 00:58:15.040 working on the fundamental technologies.
+00:58:15.260 --> 00:58:17.980 1 thing that I would like to eventually see
+00:58:17.980 --> 00:58:19.700 is a better garbage collector.
+00:58:19.900 --> 00:58:22.280 We've talked about that for a long time,
+00:58:22.280 --> 00:58:25.140 but I mean, we need someone to do the job
+00:58:25.380 --> 00:58:27.980 really. It's not very easy.
+00:58:27.980 --> 00:58:29.780 It's very hard, actually.
+00:58:31.100 --> 00:58:34.000 So just continues working on stuff like that,
+00:58:34.000 --> 00:58:35.180 continue with the exploration,
+00:58:35.800 --> 00:58:40.260 continue using and being excited about Emacs.
+00:58:40.260 --> 00:58:43.180 I think that's the best guarantee that we
+00:58:43.180 --> 00:58:45.800 have. Yeah, and perhaps to echo something
+00:58:45.800 --> 00:58:46.780 that you said earlier,
+00:58:46.840 --> 00:58:47.960 the tools that you're using,
+00:58:47.960 --> 00:58:49.920 like the emails, they've been around forever,
+00:58:49.920 --> 00:58:51.100 they will be around forever.
+00:58:51.500 --> 00:58:53.480 This pragmatic stance on the tools that
+00:58:53.480 --> 00:58:56.240 you're using, they might look stayed from the
+00:58:56.240 --> 00:58:58.880 outside, but ultimately they are what permits
+00:58:59.220 --> 00:59:02.280 a sense of longevity to any kind of project
+00:59:03.300 --> 00:59:05.460 you embark upon. Also,
+00:59:05.460 --> 00:59:07.260 in a sense, I think that the expectations
+00:59:07.740 --> 00:59:09.320 might be changing in the sense that,
+00:59:09.320 --> 00:59:12.820 you know, when I started using GNU Linux,
+00:59:12.980 --> 00:59:15.060 you know what the first thing I did was,
+00:59:15.060 --> 00:59:16.960 because I couldn't get Xorg to run.
+00:59:16.960 --> 00:59:19.040 So the first thing you had to do was you had
+00:59:19.040 --> 00:59:20.820 to compile your own Linux kernel.
+00:59:20.820 --> 00:59:22.960 So you sit there and make manuconfig and
+00:59:22.960 --> 00:59:24.880 you'll like, try to read it and you've never
+00:59:24.880 --> 00:59:26.320 done anything like this before.
+00:59:26.320 --> 00:59:27.800 You know, I was just a kid.
+00:59:27.800 --> 00:59:29.540 I had never been at this kind of,
+00:59:29.540 --> 00:59:31.560 you know, whatever. So I had to start with
+00:59:31.560 --> 00:59:34.200 that. And then you have to write the X or
+00:59:34.200 --> 00:59:36.100 configuration file. And I had the patience
+00:59:36.100 --> 00:59:37.100 for that. But nowadays,
+00:59:37.200 --> 00:59:38.600 people have different expectations.
+00:59:38.740 --> 00:59:40.460 You just install something,
+00:59:40.640 --> 00:59:42.720 and it works. And we need to keep that in
+00:59:42.720 --> 00:59:45.280 mind as well. So that's why I keep pushing as
+00:59:45.280 --> 00:59:48.720 1 of my big things. We need to build a more
+00:59:48.740 --> 00:59:51.180 cohesive experience out of the box.
+00:59:51.180 --> 00:59:52.540 Of course, that can be customizable.
+00:59:52.940 --> 00:59:55.240 You shouldn't shoehorn anything in just for
+00:59:55.240 --> 00:59:58.760 the sake of it. But you could get some things
+00:59:58.940 --> 01:00:00.920 a little bit more for free.
+01:00:01.220 --> 01:00:03.080 And maybe some of us that have our own
+01:00:03.080 --> 01:00:04.780 configs and we've been doing this for you
+01:00:04.780 --> 01:00:07.720 know, 2, 05:10, even 20 years,
+01:00:08.480 --> 01:00:09.660 we could also see, you know,
+01:00:09.660 --> 01:00:11.640 from the point of view of a new user that
+01:00:11.640 --> 01:00:13.780 just installs VS Code and then they click,
+01:00:13.780 --> 01:00:15.680 yes I use Python, yes I use that,
+01:00:15.680 --> 01:00:18.840 and then it just automatically works.
+01:00:19.200 --> 01:00:20.600 You know what I mean? I mean,
+01:00:20.600 --> 01:00:24.140 then could we get closer to that perhaps a
+01:00:24.140 --> 01:00:26.060 little bit? I think that would also help.
+01:00:26.760 --> 01:00:28.700 Yeah, I think that's what we call the
+01:00:28.700 --> 01:00:30.580 configuration wizard. And we were talking
+01:00:30.580 --> 01:00:32.520 about this, I think, a couple of years ago at
+01:00:32.520 --> 01:00:34.200 EmacsConf. I can't remember if it was with
+01:00:34.200 --> 01:00:35.740 Adam in the chat. Adam,
+01:00:35.740 --> 01:00:38.240 I mean Alpha Papa, or if it was with Bastien,
+01:00:38.240 --> 01:00:40.440 but I remember the idea cropping off.
+01:00:40.440 --> 01:00:42.520 Like, it's either you get a tutorial for
+01:00:42.520 --> 01:00:43.520 Emacs, a proper tutorial,
+01:00:43.520 --> 01:00:45.640 or you get a wizard, or you get both,
+01:00:45.640 --> 01:00:47.520 and then all is right for the world.
+01:00:47.520 --> 01:00:49.420 But definitely cool ideas being evoked.
+01:00:50.280 --> 01:00:52.280 I'm gonna say I need to decree the time when
+01:00:52.280 --> 01:00:54.440 we finish because for me it is 11.15
+01:00:55.080 --> 01:00:59.300 p.m. And I think my co-organizers are also
+01:00:59.300 --> 01:01:01.680 willing to end the day and go rest because
+01:01:01.680 --> 01:01:03.540 we've got another day to go tomorrow.
+01:01:03.760 --> 01:01:06.280 So how about we take 3 minutes and 30 seconds
+01:01:06.280 --> 01:01:08.300 to try to answer a little bit more succinctly
+01:01:08.560 --> 01:01:09.780 the questions we've got left.
+01:01:09.780 --> 01:01:10.940 How does that sound, Stefan?
+01:01:11.320 --> 01:01:15.200 Sounds great. Cool, so I'll start reading the
+01:01:15.200 --> 01:01:17.140 questions then that we've got left.
+01:01:18.340 --> 01:01:20.840 So this 1 we've got. If you're willing to
+01:01:20.840 --> 01:01:22.360 discuss it, what do you think about the
+01:01:22.360 --> 01:01:24.720 recent controversy about use of CLLib in
+01:01:24.720 --> 01:01:29.980 Emacs call code? Am I willing to discuss
+01:01:29.980 --> 01:01:35.960 that? I have said my opinion on Emacs,
+01:01:36.420 --> 01:01:40.580 Devel, I think. And I think I understand,
+01:01:40.680 --> 01:01:44.820 I think, the viewpoints of both sides in that
+01:01:44.820 --> 01:01:46.720 discussion. It is true that some things,
+01:01:46.720 --> 01:01:49.280 I mean, we have to think about that.
+01:01:49.280 --> 01:01:50.340 There is a real problem,
+01:01:50.340 --> 01:01:53.520 I think, when we have 3 different APIs for
+01:01:53.520 --> 01:01:55.140 doing the same thing in Emacs.
+01:01:55.320 --> 01:01:57.080 And can we make that a little bit better?
+01:01:57.280 --> 01:01:59.280 I mean, perhaps we could,
+01:01:59.760 --> 01:02:04.040 right? So that's about as much as I'd like to
+01:02:04.040 --> 01:02:06.940 say. Fair enough. I would have also accepted
+01:02:06.940 --> 01:02:09.160 that CL loops are ugly to write and they
+01:02:09.160 --> 01:02:10.320 don't feel very lispy.
+01:02:10.320 --> 01:02:12.040 But I'll take your answer as well.
+01:02:13.260 --> 01:02:15.360 Yeah, some people think that.
+01:02:15.660 --> 01:02:18.400 I understand that position as well.
+01:02:19.200 --> 01:02:21.220 Right. Okay, next question.
+01:02:21.260 --> 01:02:23.100 When we find a bug in our Emacs,
+01:02:23.100 --> 01:02:25.200 do we need to try to replicate it on our side
+01:02:25.200 --> 01:02:26.780 version, on our SID version,
+01:02:26.780 --> 01:02:29.340 sorry, then update all the usual list package
+01:02:29.340 --> 01:02:31.480 we use, and if we succeed to replicate the
+01:02:31.480 --> 01:02:33.340 bug in this version, only then go to
+01:02:33.340 --> 01:02:35.420 development version 30 and do the same.
+01:02:35.660 --> 01:02:37.580 Then only ask for assistance in reporting the
+01:02:37.580 --> 01:02:40.260 bug we found. So I believe when they
+01:02:40.260 --> 01:02:43.540 encounter a bug, are people supposed to go to
+01:02:43.540 --> 01:02:47.500 master to pull main and just to make sure
+01:02:47.500 --> 01:02:48.740 that they are on the latest version.
+01:02:48.740 --> 01:02:49.980 Is this something that you require?
+01:02:50.660 --> 01:02:51.860 We don't require that,
+01:02:51.860 --> 01:02:54.940 but we do try to encourage you to reproduce
+01:02:54.960 --> 01:02:57.380 it on master if we think that it matters.
+01:02:57.720 --> 01:03:00.920 Yeah, so if you can, that's even better.
+01:03:01.620 --> 01:03:03.940 But if the bug is there in Emacs 29,
+01:03:03.940 --> 01:03:06.000 maybe we want to fix it in Emacs 29.2.
+01:03:06.340 --> 01:03:09.820 So the latest point release is also fine.
+01:03:10.400 --> 01:03:12.940 Bugs in Emacs 28 at this point,
+01:03:12.940 --> 01:03:14.780 like the previous major version,
+01:03:15.060 --> 01:03:17.720 we might ask you to try to reproduce it on
+01:03:17.720 --> 01:03:19.600 Emacs 29 because we're not planning more
+01:03:19.600 --> 01:03:21.600 releases of old major versions.
+01:03:21.600 --> 01:03:23.660 So that's the fundamental reason for that.
+01:03:24.480 --> 01:03:25.820 Great. Thank you for your answer.
+01:03:25.900 --> 01:03:27.680 All right. Moving on to the next question.
+01:03:27.840 --> 01:03:29.280 On branching off sub-threads,
+01:03:29.680 --> 01:03:31.840 I note that they are less visible compared to
+01:03:31.840 --> 01:03:33.380 starting a new thread in practice.
+01:03:33.520 --> 01:03:35.680 I am wondering if it is just my impression or
+01:03:35.680 --> 01:03:37.400 something devs also observe.
+01:03:37.920 --> 01:03:39.780 Yeah, it's true. That's correct.
+01:03:41.400 --> 01:03:42.840 I don't know what to do about it.
+01:03:42.840 --> 01:03:44.160 If you want more visibility,
+01:03:44.180 --> 01:03:45.920 I guess just start a new thread.
+01:03:47.080 --> 01:03:48.960 I don't know. I can only agree,
+01:03:48.960 --> 01:03:50.880 really. I concur. That's true.
+01:03:51.720 --> 01:03:54.260 Okay. Next question. What about rewriting
+01:03:54.340 --> 01:03:57.100 Emacs in Rust? Use Guile instead of Elisp.
+01:03:57.260 --> 01:03:59.580 Multi-threaded Emacs. Make Emacs prettier and
+01:03:59.580 --> 01:04:01.760 shiny. And of course, same defaults.
+01:04:02.220 --> 01:04:04.440 Just kidding. We are spoiled children because
+01:04:04.440 --> 01:04:07.780 you and Eli, Lars, and etc do an impressive
+01:04:08.420 --> 01:04:10.620 work. I live in Emacs since 2001.
+01:04:11.040 --> 01:04:14.220 Thanks. That was a good 1.
+01:04:14.220 --> 01:04:17.880 Sane defaults. Okay, Well,
+01:04:18.900 --> 01:04:20.580 thank you. Thanks for that comment.
+01:04:20.580 --> 01:04:23.440 That made me chuckle. Next question by the
+01:04:23.440 --> 01:04:24.520 same person, I assume.
+01:04:24.520 --> 01:04:26.580 The only downside I see with copyright
+01:04:26.580 --> 01:04:28.900 assignment is that 1 has to disclose their
+01:04:28.900 --> 01:04:31.240 real identity. Would it be a possibility to
+01:04:31.240 --> 01:04:32.860 assign a copyright under a nickname?
+01:04:33.160 --> 01:04:34.840 Yeah, you don't have to say a real name.
+01:04:34.840 --> 01:04:37.260 Just register some pseudonym.
+01:04:37.360 --> 01:04:39.440 The FSF does need your real name,
+01:04:39.440 --> 01:04:41.420 but that's kept private only.
+01:04:41.500 --> 01:04:45.920 So feel free to reach out to assign at
+01:04:45.920 --> 01:04:48.360 gnu.org and ask more about that.
+01:04:49.860 --> 01:04:51.680 Right. All right, next question.
+01:04:51.820 --> 01:04:53.400 Do you think it is possible to reach an
+01:04:53.400 --> 01:04:55.240 agreement on sane defaults for better
+01:04:55.240 --> 01:04:57.220 out-of-the-box experience?
+01:04:57.800 --> 01:05:00.040 Yeah, so your sane is not my sane
+01:05:00.060 --> 01:05:01.760 necessarily. So that's the fundamental
+01:05:01.780 --> 01:05:02.960 problem that we're discussing here.
+01:05:02.960 --> 01:05:03.960 I think it's a social,
+01:05:03.960 --> 01:05:05.240 not a technical problem.
+01:05:05.380 --> 01:05:07.580 We do change defaults sometimes,
+01:05:07.640 --> 01:05:09.880 but I mean, there is also some staying power.
+01:05:09.880 --> 01:05:12.260 So it's understandable that,
+01:05:12.260 --> 01:05:13.940 you know, it's, we can't just change them
+01:05:13.940 --> 01:05:15.920 willy nilly and then flip flop between,
+01:05:15.920 --> 01:05:18.340 you know, 1 or the other kind of thing.
+01:05:18.340 --> 01:05:20.060 So it does take a little bit more time.
+01:05:20.060 --> 01:05:22.860 But yeah, sure, we can.
+01:05:23.000 --> 01:05:25.860 We do change defaults at times.
+01:05:26.380 --> 01:05:29.780 But it's perhaps more slower than what some
+01:05:29.780 --> 01:05:31.420 people would prefer, for sure.
+01:05:31.640 --> 01:05:36.000 So that's, yeah. Right,
+01:05:36.000 --> 01:05:37.620 all right. We have 2 more questions.
+01:05:37.920 --> 01:05:40.020 So will XWidgets have a future?
+01:05:40.120 --> 01:05:42.180 Seeing the new bugs popping up in the latest
+01:05:42.740 --> 01:05:45.280 XWidget dev. Not sure if there was the rest
+01:05:45.280 --> 01:05:46.640 of the question, But on XWidgets,
+01:05:46.640 --> 01:05:47.940 can you tell us a little more?
+01:05:48.740 --> 01:05:50.580 I'm not really following now.
+01:05:50.580 --> 01:05:52.400 I mean, I'm not seeing a lot of development
+01:05:52.500 --> 01:05:54.180 on XWidgets currently.
+01:05:54.480 --> 01:05:57.100 Some people have done work in fixing up a few
+01:05:57.100 --> 01:06:00.320 bugs, but I think that feature really needs
+01:06:00.380 --> 01:06:02.180 more love. So I think we need,
+01:06:02.180 --> 01:06:03.600 you know, help is welcome,
+01:06:03.600 --> 01:06:05.920 patch is welcome. That's what I can say about
+01:06:05.920 --> 01:06:11.180 that. All right, and our final question of
+01:06:11.180 --> 01:06:13.140 the day. Have you voted for Emacs as the
+01:06:13.140 --> 01:06:15.140 software of the year on the Tuxes by Jupyter
+01:06:15.140 --> 01:06:17.480 Broadcasting? I did because Emacs 29 is
+01:06:17.480 --> 01:06:19.300 great. Thank you. Okay,
+01:06:19.300 --> 01:06:20.580 well, good job voting.
+01:06:20.580 --> 01:06:22.960 I didn't know, I don't know what Tuxy is on
+01:06:22.960 --> 01:06:25.680 Jupyter broadcasting, but look it up and go
+01:06:25.680 --> 01:06:28.040 vote. So I wish I could tell you,
+01:06:28.040 --> 01:06:29.500 I assume with Tux, it might be something
+01:06:29.500 --> 01:06:32.900 related to Linux, but that's as much as I can
+01:06:32.900 --> 01:06:34.840 say. All right, well, Stefan,
+01:06:34.960 --> 01:06:36.600 thank you so much for taking the time not
+01:06:36.600 --> 01:06:38.000 only to do a wonderful presentation,
+01:06:38.000 --> 01:06:39.640 but also for answering all the questions of
+01:06:39.640 --> 01:06:41.240 the community. Do you have anything else to
+01:06:41.240 --> 01:06:45.360 add? Just really thanks for all the questions
+01:06:45.360 --> 01:06:46.760 and thanks for staying.
+01:06:47.780 --> 01:06:49.600 It's been a long day, a long conference,
+01:06:49.600 --> 01:06:51.180 so thanks for staying and listening to my
+01:06:51.180 --> 01:06:52.540 talk as well. Really appreciate it.
+01:06:52.540 --> 01:06:54.280 Appreciate the good work you guys are doing
+01:06:54.280 --> 01:06:55.460 behind the scenes, organizing,
+01:06:55.520 --> 01:06:56.740 setting everything up.
+01:06:57.040 --> 01:07:00.420 And really humbled to be a part of this
+01:07:00.420 --> 01:07:02.060 community. So thank you all.
+01:07:02.680 --> 01:07:05.860 Well I can assure you that no 1 either in the
+01:07:05.860 --> 01:07:08.040 organization team or the people watching now
+01:07:08.040 --> 01:07:10.900 felt like it was tiring to stay and listen to
+01:07:10.900 --> 01:07:12.760 your answers. So thank you so much Stefan. -- cgit v1.2.3