WEBVTT 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.