diff options
Diffstat (limited to '')
2 files changed, 6316 insertions, 0 deletions
diff --git a/2023/captions/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt b/2023/captions/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt new file mode 100644 index 00000000..7902ac79 --- /dev/null +++ b/2023/captions/emacsconf-2023-core--emacs-core-development-how-it-works--stefan-kangas--main.vtt @@ -0,0 +1,4664 @@ +WEBVTT + + +00:00:03.480 --> 00:00:03.840 +All right. Hi again, everyone. + +00:00:04.640 --> 00:00:04.839 +It's been a while. Well, + +00:00:06.480 --> 00:00:06.980 +actually, it's been like 2 minutes tops. + +00:00:08.599 --> 00:00:09.099 +We were just with John Wheatley, + +00:00:10.519 --> 00:00:11.019 +and now we are with Stefan Krangas. + +00:00:15.400 --> 00:00:15.900 +Hi. Hi. So as we said before, + +00:00:20.440 --> 00:00:20.600 +Stefan is co-maintainer now of Is it the + +00:00:22.540 --> 00:00:22.920 +entire Emacs project? How do you describe + +00:00:25.760 --> 00:00:26.260 +this? Yeah, co-maintainer of GNU Emacs. + +00:00:29.020 --> 00:00:29.380 +Right, perfect. So you know what? + +00:00:31.260 --> 00:00:31.760 +Because I'm sure everyone is dying to hear + +00:00:33.740 --> 00:00:33.840 +everything you've got to say in your + +00:00:35.540 --> 00:00:36.040 +presentation I'm just going to shut up now + +00:00:37.360 --> 00:00:37.640 +and leave the floor to you. + +00:00:38.940 --> 00:00:39.440 +Do you need to share your screen or anything? + +00:00:44.900 --> 00:00:45.239 +No. Okay great well I'll just cut my webcam + +00:00:46.879 --> 00:00:47.059 +off I'll still be in the background so do not + +00:00:48.720 --> 00:00:48.940 +hesitate if you've got any problem I'm still + +00:00:52.239 --> 00:00:52.560 +around And I'll see you just beacon whenever + +00:00:53.760 --> 00:00:53.940 +you're done. And I'll show up with the + +00:00:55.840 --> 00:00:56.120 +questions. All right? Thank you, + +00:00:58.260 --> 00:00:58.739 +Leo. And thank you, everyone, + +00:01:01.879 --> 00:01:02.379 +for being here. I'm Stefan Kangas. + +00:01:06.160 --> 00:01:06.660 +So as Leo explained, I am recently appointed + +00:01:09.160 --> 00:01:09.660 +as a co-maintainer of GNU Emacs, + +00:01:12.900 --> 00:01:13.400 +which a role that I'm fulfilling currently + +00:01:16.960 --> 00:01:17.460 +with Eli Sretsky, who's been co-maintainer + +00:01:23.140 --> 00:01:23.320 +for quite some time. So I got the question to + +00:01:26.400 --> 00:01:26.780 +be a co-maintainer from Richard in August + +00:01:28.780 --> 00:01:29.280 +this year. And of course, + +00:01:30.960 --> 00:01:31.460 +when you get a question like that, + +00:01:33.520 --> 00:01:34.020 +I couldn't not say yes. + +00:01:38.940 --> 00:01:39.440 +So here we are. I can't tell you how excited + +00:01:44.680 --> 00:01:45.060 +I am to have this opportunity to address the + +00:01:46.880 --> 00:01:47.380 +community in this way. + +00:01:49.300 --> 00:01:49.800 +I'm really humbled, of course, + +00:01:54.840 --> 00:01:55.040 +to be part of it, and to be able to serve the + +00:01:58.580 --> 00:01:59.080 +community in this capacity. + +00:02:03.820 --> 00:02:04.080 +I've used Emacs, I think many of you might + +00:02:06.600 --> 00:02:06.820 +also have used Emacs for quite some time, + +00:02:10.600 --> 00:02:11.100 +but I'm going on 2 decades as an Emacs user. + +00:02:14.020 --> 00:02:14.280 +My involvement in Emacs Lisp development is, + +00:02:15.660 --> 00:02:16.160 +I mean, almost as long, + +00:02:19.180 --> 00:02:19.680 +but my core development goes back only 4, + +00:02:26.200 --> 00:02:26.700 +5 years. I have to also thank the EmacsConf + +00:02:28.340 --> 00:02:28.840 +organizers who are doing, + +00:02:31.840 --> 00:02:31.960 +I think, a tremendous job and have done a + +00:02:34.540 --> 00:02:34.820 +tremendous job over the years in really + +00:02:37.300 --> 00:02:37.800 +building and strengthening what I think is + +00:02:41.960 --> 00:02:42.180 +this fantastic community of users and + +00:02:45.620 --> 00:02:46.120 +developers and people interested in Emacs. + +00:02:49.620 --> 00:02:50.100 +I actually had the chance to meet up with Eli + +00:02:53.200 --> 00:02:53.700 +Sretzky, as well as another Emacs hacker, + +00:02:56.580 --> 00:02:57.080 +Andrea Corallo, when I was at the GNU + +00:02:59.960 --> 00:03:00.460 +project's 40 years celebration, + +00:03:03.840 --> 00:03:04.340 +40 years since the GNU project was announced. + +00:03:08.040 --> 00:03:08.540 +And it was very inspiring in general to meet + +00:03:12.280 --> 00:03:12.780 +people. And I think EmacsConf should also, + +00:03:17.860 --> 00:03:18.360 +I think, serve to inspire and sort of help + +00:03:21.880 --> 00:03:22.120 +bring something to the type of work that many + +00:03:23.860 --> 00:03:24.340 +of us are doing to improve Emacs, + +00:03:26.040 --> 00:03:26.200 +whether it's in package development or in + +00:03:29.180 --> 00:03:29.680 +core, to bring out the new and exciting ideas + +00:03:33.540 --> 00:03:34.040 +and get people enthusiastic about Emacs, + +00:03:37.080 --> 00:03:37.580 +about hacking on Emacs. + +00:03:44.900 --> 00:03:45.400 +This is my little attempt to contribute with + +00:03:48.940 --> 00:03:49.440 +let's say 2 things. I will first try to + +00:03:54.180 --> 00:03:54.400 +present how we do Emacs core development and + +00:03:58.080 --> 00:03:58.360 +why we've done some of the choices that we + +00:04:01.560 --> 00:04:02.060 +have, because We have seen at times that + +00:04:06.300 --> 00:04:06.500 +perhaps people aren't always clear on this or + +00:04:08.160 --> 00:04:08.660 +that aspect. So maybe this will be + +00:04:12.040 --> 00:04:12.260 +enlightening. I will also try to present some + +00:04:17.360 --> 00:04:17.860 +kind of vision for what Emacs could be with + +00:04:21.180 --> 00:04:21.680 +your help. Emacs is already very good, + +00:04:26.380 --> 00:04:26.880 +as we all know, but we could be even better. + +00:04:29.440 --> 00:04:29.940 +That's the reality of any type of software + +00:04:34.600 --> 00:04:35.100 +development. So the overall idea of this talk + +00:04:38.080 --> 00:04:38.380 +is to tell you, if you're an Emacs list + +00:04:39.960 --> 00:04:40.460 +package developer today, + +00:04:43.700 --> 00:04:44.200 +why you should become an Emacs core + +00:04:47.140 --> 00:04:47.300 +developer, and the sort of steps that you + +00:04:48.920 --> 00:04:49.340 +might want to take to do that, + +00:04:51.600 --> 00:04:52.100 +or how you can help Emacs core development. + +00:04:54.160 --> 00:04:54.320 +Even if you're just a user and you found a + +00:04:57.040 --> 00:04:57.340 +bug, report it. Perhaps you have a feature + +00:04:58.380 --> 00:04:58.820 +request that you'd like to discuss. + +00:05:02.180 --> 00:05:02.680 +I think we need more interaction in general + +00:05:04.400 --> 00:05:04.900 +between Emacs core developers, + +00:05:05.940 --> 00:05:06.440 +typically on emacsdevil.gnu.org, + +00:05:11.920 --> 00:05:12.420 +the mailing list that we use to coordinate + +00:05:14.380 --> 00:05:14.880 +our development efforts, + +00:05:19.020 --> 00:05:19.520 +between Emacs devil package developers and + +00:05:21.960 --> 00:05:22.460 +users, Because there is so much great stuff + +00:05:24.240 --> 00:05:24.740 +really going on in the community. + +00:05:28.120 --> 00:05:28.620 +But I think sometimes the step to core + +00:05:32.360 --> 00:05:32.500 +development seems big and perhaps even a + +00:05:35.280 --> 00:05:35.440 +little bit scary. So I'm hoping to be able to + +00:05:38.440 --> 00:05:38.720 +help bridge that gap, even if just a little + +00:05:42.740 --> 00:05:43.000 +bit. We need more people contributing to + +00:05:46.240 --> 00:05:46.740 +Emacs itself. And also a small disclaimer + +00:05:49.740 --> 00:05:49.920 +here, in this talk I will only be able to + +00:05:53.200 --> 00:05:53.700 +speak for myself, not for GNU or the Emacs + +00:05:55.600 --> 00:05:56.100 +project, even if it's like a little bit more + +00:05:58.660 --> 00:05:58.780 +official, but I will also try to give the + +00:06:01.500 --> 00:06:01.720 +view of the project where it makes sense to + +00:06:04.020 --> 00:06:04.200 +do so. Keep in mind, I'm only 1 of the + +00:06:06.320 --> 00:06:06.820 +maintainers, the co-maintainer together with + +00:06:09.320 --> 00:06:09.820 +Eli, and I can't just make decisions + +00:06:10.900 --> 00:06:11.400 +arbitrarily. In a sense, + +00:06:14.020 --> 00:06:14.180 +I'm as a co-maintainer and trusted as a + +00:06:15.200 --> 00:06:15.420 +steward and trusted by, + +00:06:16.180 --> 00:06:16.680 +of course, the GNU project, + +00:06:21.500 --> 00:06:22.000 +but also by the community That we really + +00:06:23.680 --> 00:06:24.180 +can't just take decisions, + +00:06:26.880 --> 00:06:27.380 +I think, arbitrarily. Even if it sometimes + +00:06:30.060 --> 00:06:30.560 +perhaps may seem so, or it may feel that way, + +00:06:34.840 --> 00:06:35.080 +we really have to realize that we can't just + +00:06:39.020 --> 00:06:39.200 +push too much of just a personal agenda to + +00:06:41.280 --> 00:06:41.520 +the extent that it doesn't line up with what + +00:06:44.760 --> 00:06:45.260 +is best for eMacs going forward, + +00:06:50.020 --> 00:06:50.320 +and the more overall picture of that. + +00:06:52.480 --> 00:06:52.640 +So there are limitations that come with the + +00:06:59.440 --> 00:06:59.940 +job, if you like. So 1 question I often, + +00:07:02.120 --> 00:07:02.280 +I actually got this week when I started a new + +00:07:04.000 --> 00:07:04.500 +assignment at work, and I got the question + +00:07:08.240 --> 00:07:08.720 +when I said I'm involved in Emacs + +00:07:10.080 --> 00:07:10.400 +development. And then someone asked, + +00:07:11.980 --> 00:07:12.480 +oh, is Emacs still developed? + +00:07:16.220 --> 00:07:16.400 +Isn't it done almost? And I answered to that, + +00:07:17.520 --> 00:07:17.880 +yes, we are still around. + +00:07:21.500 --> 00:07:21.940 +We're going on 40 years now as a software + +00:07:25.440 --> 00:07:25.940 +project. Not many projects actually can claim + +00:07:28.520 --> 00:07:29.020 +that type of longevity. + +00:07:33.540 --> 00:07:33.900 +But Emacs is among those few that can. + +00:07:35.860 --> 00:07:36.340 +And of course, we have had some very exciting + +00:07:37.540 --> 00:07:38.000 +developments in recent versions. + +00:07:41.100 --> 00:07:41.600 +I think John just gave you an update on that. + +00:07:45.860 --> 00:07:46.160 +But we had just some highlights out of many + +00:07:47.440 --> 00:07:47.940 +highlights that you could give, + +00:07:50.780 --> 00:07:50.920 +really, we got the TreeSetter support in + +00:07:53.900 --> 00:07:54.320 +Emacs 29 that we now need to sort of extend + +00:07:55.840 --> 00:07:56.340 +and develop. We have merged EGLOT, + +00:07:59.120 --> 00:07:59.440 +so we have LSP support out of the box, + +00:08:00.480 --> 00:08:00.980 +I think is a huge improvement. + +00:08:02.560 --> 00:08:02.960 +Native compilation, of course, + +00:08:06.020 --> 00:08:06.520 +a big feature. I mean, + +00:08:08.520 --> 00:08:08.900 +that was Andrea's job, + +00:08:10.760 --> 00:08:11.260 +really, for performance. + +00:08:13.900 --> 00:08:14.020 +And it turns out that in many types of + +00:08:15.440 --> 00:08:15.720 +workloads and the types of stuff that people + +00:08:17.080 --> 00:08:17.580 +are doing, it often matters. + +00:08:20.680 --> 00:08:21.180 +And we're hoping to make that the default, + +00:08:24.620 --> 00:08:24.960 +perhaps already in Emacs 30. + +00:08:26.720 --> 00:08:26.840 +So there are things that are happening that + +00:08:31.180 --> 00:08:31.680 +fundamentally make Emacs better at a very + +00:08:37.020 --> 00:08:37.360 +core level. So, of course, + +00:08:41.400 --> 00:08:41.679 +why wouldn't you want to be involved in such + +00:08:43.140 --> 00:08:43.440 +an exciting and, I think, + +00:08:50.740 --> 00:08:51.240 +dynamic project? How is Emacs developed? + +00:08:52.600 --> 00:08:53.000 +Well, this is, I think, + +00:08:53.680 --> 00:08:54.180 +perhaps to some people, + +00:08:55.800 --> 00:08:56.300 +a little bit more of a threshold, + +00:08:58.820 --> 00:08:59.100 +if you like, because I think all of us know + +00:09:02.140 --> 00:09:02.640 +really that there is exciting and cool stuff + +00:09:06.300 --> 00:09:06.560 +that is going on in Emacs and has been going + +00:09:08.000 --> 00:09:08.260 +on over the last couple of years and we'll + +00:09:09.720 --> 00:09:10.040 +see even more of that, + +00:09:10.680 --> 00:09:11.180 +I think, going forward. + +00:09:16.360 --> 00:09:16.580 +1 thing is that communication still takes + +00:09:19.840 --> 00:09:20.340 +place over a mailing list in 2023. + +00:09:23.300 --> 00:09:23.800 +So we have emacsdevil at gnu.org, + +00:09:25.640 --> 00:09:26.140 +and that's where we develop Emacs. + +00:09:29.700 --> 00:09:30.140 +We use, we send patches back and forth, + +00:09:30.860 --> 00:09:31.360 +we comment on patches. + +00:09:35.920 --> 00:09:36.420 +And actually this workflow is very good, + +00:09:39.240 --> 00:09:39.580 +if you're used to it. Because guess what? + +00:09:42.040 --> 00:09:42.200 +As Emacs users, we like doing everything we + +00:09:45.060 --> 00:09:45.220 +can in Emacs, especially the core tasks that + +00:09:49.480 --> 00:09:49.980 +we're doing, such as developing Emacs itself. + +00:09:52.360 --> 00:09:52.860 +Of course, you want to do that fully within + +00:09:55.080 --> 00:09:55.440 +Emacs. So we hack Emacs Lisp in Emacs, + +00:09:58.340 --> 00:09:58.840 +we hack C in Emacs, we respond to emails also + +00:10:02.220 --> 00:10:02.700 +from Emacs, respond to bug reports, + +00:10:04.540 --> 00:10:05.040 +manage bug reports. We do all that stuff + +00:10:07.580 --> 00:10:07.840 +very, very smoothly. And it doesn't really + +00:10:10.040 --> 00:10:10.540 +matter in a sense, what is the medium? + +00:10:11.580 --> 00:10:12.080 +It happens to be email. + +00:10:13.660 --> 00:10:14.160 +Technically it could be anything, + +00:10:16.320 --> 00:10:16.720 +but email really has that type of staying + +00:10:19.540 --> 00:10:19.640 +power where we've been able to use it for a + +00:10:20.760 --> 00:10:21.260 +long time. And this is how, + +00:10:23.860 --> 00:10:24.000 +and we're still able to use it. + +00:10:25.520 --> 00:10:25.800 +And this is how free software was always + +00:10:26.380 --> 00:10:26.640 +developed in the past. + +00:10:28.020 --> 00:10:28.380 +Only in the last, let's say 10, + +00:10:32.160 --> 00:10:32.440 +15 years, We've had more development taking + +00:10:35.060 --> 00:10:35.560 +place perhaps on forges like GitHub, + +00:10:39.060 --> 00:10:39.160 +GitLab, whatever. But we are 1 of the + +00:10:40.320 --> 00:10:40.680 +holdouts. I mean, there are others, + +00:10:42.340 --> 00:10:42.560 +of course, like the Linux kernel has mailing + +00:10:44.060 --> 00:10:44.340 +lists. They're not trying to do that scale + +00:10:47.080 --> 00:10:47.580 +development on GitHub. + +00:10:50.860 --> 00:10:51.360 +And this is not just because we're Luddites + +00:10:53.320 --> 00:10:53.560 +that refuse to change. + +00:10:55.080 --> 00:10:55.380 +We just have to do it in the old way, + +00:10:56.820 --> 00:10:57.120 +because it is the old way, + +00:10:58.180 --> 00:10:58.680 +and that's the way it should be. + +00:10:59.920 --> 00:11:00.420 +No, it's actually because we, + +00:11:03.120 --> 00:11:03.460 +as core developers, the core development team + +00:11:05.020 --> 00:11:05.460 +and the people already involved and doing + +00:11:08.320 --> 00:11:08.560 +tremendous, I mean large amounts of work in + +00:11:11.980 --> 00:11:12.480 +Emacs has very efficient workflows built up + +00:11:15.240 --> 00:11:15.620 +based on this. So of course, + +00:11:17.280 --> 00:11:17.780 +I mean moving to something else is something + +00:11:19.680 --> 00:11:20.180 +that we might like to do, + +00:11:24.240 --> 00:11:24.400 +but we're not yet clear on how to do it + +00:11:25.600 --> 00:11:26.100 +exactly and what to move to. + +00:11:27.980 --> 00:11:28.380 +So these are the types of discussions that + +00:11:30.140 --> 00:11:30.280 +we're looking at. Can we still support a + +00:11:33.660 --> 00:11:34.040 +mailing, an email type workflow while moving + +00:11:35.980 --> 00:11:36.100 +to something else? That would be 1 of the big + +00:11:38.160 --> 00:11:38.400 +ones. I think another thing that trips people + +00:11:40.520 --> 00:11:40.840 +up is that we used a bug tracker that, + +00:11:42.380 --> 00:11:42.620 +I mean, maybe some people, + +00:11:45.060 --> 00:11:45.560 +I've heard people say it's archaic. + +00:11:49.700 --> 00:11:49.900 +It's called Debugs. I think maybe Debugs gets + +00:11:51.860 --> 00:11:52.000 +a bit of a bad rap. I think that bugs is a + +00:11:52.600 --> 00:11:53.100 +good piece of software. + +00:11:54.660 --> 00:11:55.160 +It wasn't developed in 2023. + +00:11:57.040 --> 00:11:57.540 +I mean, that's much as clear. + +00:11:58.380 --> 00:11:58.880 +It's a little bit older, + +00:12:00.920 --> 00:12:01.320 +but it really is a workhorse of the Debian + +00:12:03.320 --> 00:12:03.820 +project, which is obviously a project that's + +00:12:08.940 --> 00:12:09.400 +developed in a very different way than Emacs + +00:12:11.480 --> 00:12:11.880 +is. It's on a completely different scale, + +00:12:12.540 --> 00:12:12.840 +of course, much bigger, + +00:12:14.480 --> 00:12:14.980 +many more developers, and so on. + +00:12:17.600 --> 00:12:17.800 +But I think the developers did a good job for + +00:12:19.740 --> 00:12:20.240 +the time. But it might be showing its age, + +00:12:22.660 --> 00:12:23.160 +perhaps, in places. Perhaps, + +00:12:24.620 --> 00:12:25.120 +again, it's the email workflow. + +00:12:27.440 --> 00:12:27.720 +And people see that as a little bit of a + +00:12:29.840 --> 00:12:30.180 +threshold. It seems alien. + +00:12:30.800 --> 00:12:31.300 +It's a little bit strange, + +00:12:34.480 --> 00:12:34.980 +the types of workflows that you have there. + +00:12:38.720 --> 00:12:38.860 +So we are seeing some limitations with that + +00:12:40.440 --> 00:12:40.940 +box. And again, how do you report bugs? + +00:12:42.160 --> 00:12:42.600 +Well, in a sense, it's easy. + +00:12:46.160 --> 00:12:46.660 +You send an email to bug-gnu-emacs at gnu.org + +00:12:51.140 --> 00:12:51.340 +and you copy in whatever you get from, + +00:12:53.140 --> 00:12:53.300 +you know, report the EMAX bug or if you have, + +00:12:54.620 --> 00:12:55.120 +you know, send mail set up locally, + +00:12:58.340 --> 00:12:58.700 +just hit control C, control C and it's sent + +00:13:01.220 --> 00:13:01.720 +to the bug tracker and that's fine. + +00:13:08.260 --> 00:13:08.680 +But also I have to mention that there is this + +00:13:10.120 --> 00:13:10.600 +very good package on GNU Elpas. + +00:13:13.260 --> 00:13:13.540 +If you're ever trying to read the Emacs bug + +00:13:16.060 --> 00:13:16.500 +tracker or following along in Emacs + +00:13:18.840 --> 00:13:19.000 +development, I really recommend install the + +00:13:20.800 --> 00:13:21.300 +package devbugs from GNU Elpa. + +00:13:23.720 --> 00:13:24.140 +It's so good. And again, + +00:13:26.400 --> 00:13:26.580 +it's built on GNU, it's all integrated in + +00:13:29.540 --> 00:13:30.040 +Emacs, it's so much better than using the web + +00:13:32.960 --> 00:13:33.220 +and so on. And if you really want to get into + +00:13:37.540 --> 00:13:38.040 +it, you can download the bug tracker archives + +00:13:39.000 --> 00:13:39.500 +and the mailing list archives, + +00:13:40.800 --> 00:13:41.260 +and you can put them locally, + +00:13:41.880 --> 00:13:42.380 +you can have them searchable, + +00:13:44.280 --> 00:13:44.440 +and you can have whatever experience you + +00:13:46.840 --> 00:13:47.340 +like. So, I mean, it's really a flexible + +00:13:50.740 --> 00:13:51.240 +workflow, but it's a bit strange, + +00:13:52.120 --> 00:13:52.620 +perhaps, to some people. + +00:13:57.920 --> 00:13:58.120 +So we also think supporting only this + +00:13:59.640 --> 00:14:00.140 +workflow might be a little bit too limiting. + +00:14:03.700 --> 00:14:04.200 +So we do want to move over to something like + +00:14:06.360 --> 00:14:06.760 +GitLab, perhaps Sourcehat or something + +00:14:09.960 --> 00:14:10.460 +similar. We've had a couple of discussions + +00:14:13.500 --> 00:14:14.000 +about that over the last couple of years. + +00:14:15.480 --> 00:14:15.820 +I think even before that, + +00:14:18.580 --> 00:14:18.940 +but that's how far back I've been involved, + +00:14:21.300 --> 00:14:21.800 +and definitely it's come up occasionally. + +00:14:27.400 --> 00:14:27.900 +I think we are less far away than perhaps + +00:14:30.060 --> 00:14:30.560 +ever is how I would express that, + +00:14:36.180 --> 00:14:36.680 +and in the sense that the remaining blockers + +00:14:38.360 --> 00:14:38.640 +for just making the shift, + +00:14:39.960 --> 00:14:40.200 +let's say, are I think, + +00:14:41.960 --> 00:14:42.120 +I mean, first of all, we're talking about + +00:14:43.620 --> 00:14:44.020 +limitations, perhaps in the software, + +00:14:46.160 --> 00:14:46.420 +they're well defined, and they're not as + +00:14:48.840 --> 00:14:49.060 +amountable. I don't think they have to be in + +00:14:50.660 --> 00:14:50.840 +any case. We should be able to make some + +00:14:54.160 --> 00:14:54.660 +progress. The main thing that we're lacking + +00:14:57.980 --> 00:14:58.480 +now is not more discussion or more people + +00:15:02.800 --> 00:15:03.120 +prodding us to just please switch over. + +00:15:04.080 --> 00:15:04.580 +No, we're looking for volunteers. + +00:15:07.880 --> 00:15:08.380 +If you think that you, + +00:15:10.760 --> 00:15:10.960 +you know, have what it takes to sort of come + +00:15:13.860 --> 00:15:14.060 +in and help us do something like that and + +00:15:14.860 --> 00:15:15.040 +work together with us, + +00:15:16.600 --> 00:15:16.840 +you know, to see what can be done, + +00:15:19.960 --> 00:15:20.200 +perhaps some, a few things would need to be + +00:15:22.840 --> 00:15:23.220 +changed in GitLab. I don't think anything + +00:15:25.940 --> 00:15:26.120 +huge, but maybe there are some patches to be + +00:15:27.380 --> 00:15:27.880 +written and sent upstream, + +00:15:30.200 --> 00:15:30.280 +or maybe we need to do some local hacks or + +00:15:32.900 --> 00:15:33.140 +whatever. If you wanna do that, + +00:15:34.360 --> 00:15:34.860 +please contact us, emacsdevil. + +00:15:38.480 --> 00:15:38.940 +We'll be very happy to talk to you. + +00:15:39.960 --> 00:15:40.460 +And then we can start making progress. + +00:15:42.340 --> 00:15:42.740 +So I'm really hoping that that sound like + +00:15:46.120 --> 00:15:46.620 +will come into place. But we need to, + +00:15:52.160 --> 00:15:52.340 +if we do switch over, we need to preserve the + +00:15:54.400 --> 00:15:54.820 +good parts of our email-based workflows. + +00:15:56.980 --> 00:15:57.140 +So there are requirements there so that we + +00:15:59.680 --> 00:16:00.180 +can continue to do our job as maintainers, + +00:16:04.440 --> 00:16:04.900 +if you like. Another thing is that we've + +00:16:08.140 --> 00:16:08.340 +sometimes seen that there's a bit of a + +00:16:11.040 --> 00:16:11.380 +different culture perhaps on mailing lists + +00:16:14.860 --> 00:16:15.060 +and on Emacs devil than what many people are + +00:16:17.080 --> 00:16:17.580 +used to, especially like you've used perhaps, + +00:16:20.380 --> 00:16:20.540 +many people might be in university and + +00:16:23.000 --> 00:16:23.500 +they've started using Emacs, + +00:16:25.320 --> 00:16:25.820 +maybe got into a little bit of package + +00:16:28.860 --> 00:16:29.060 +development and starting to get the ropes of + +00:16:32.040 --> 00:16:32.540 +that and are very used to working on places + +00:16:34.980 --> 00:16:35.460 +like GitLab or something like that, + +00:16:37.860 --> 00:16:38.000 +then the type of culture and way of + +00:16:41.920 --> 00:16:42.040 +communicating that we use in Emacs might be a + +00:16:43.940 --> 00:16:44.440 +little bit different. And of course, + +00:16:46.860 --> 00:16:47.360 +it's different in the sense that mailing + +00:16:49.700 --> 00:16:49.900 +lists have always, I mean, + +00:16:50.740 --> 00:16:51.060 +let's say hacker culture, + +00:16:51.940 --> 00:16:52.120 +whatever you want to call it, + +00:16:53.900 --> 00:16:54.400 +have always communicated in a particular way + +00:16:58.180 --> 00:16:58.340 +using mailing lists. So it's like succinct to + +00:16:59.860 --> 00:17:00.320 +the point, perhaps I'm skipping a few + +00:17:03.080 --> 00:17:03.340 +pleasantries. And the idea is that you should + +00:17:07.500 --> 00:17:08.000 +just use it in as effective way as possible, + +00:17:10.599 --> 00:17:11.099 +so that also the archives are usable. + +00:17:13.280 --> 00:17:13.660 +And the other thing is that generally people + +00:17:16.319 --> 00:17:16.500 +involved in developing free software has to + +00:17:19.160 --> 00:17:19.660 +deal with a lot of incoming traffic, + +00:17:25.680 --> 00:17:25.900 +emails. They don't have the bandwidth if it's + +00:17:27.760 --> 00:17:28.220 +too much noise. You really need to be strict + +00:17:31.360 --> 00:17:31.840 +to keep the signal to noise ratio high. + +00:17:34.780 --> 00:17:35.280 +We have some weird terminology on the Emacs + +00:17:37.540 --> 00:17:38.040 +devil. People tell us, + +00:17:40.260 --> 00:17:40.680 +we say sometimes install patches which + +00:17:43.900 --> 00:17:44.180 +basically means push to master or merge pull + +00:17:46.520 --> 00:17:46.720 +requests because we've used other version + +00:17:48.340 --> 00:17:48.600 +control systems in the past where it might + +00:17:50.200 --> 00:17:50.700 +have made more sense to say install patches. + +00:17:52.200 --> 00:17:52.540 +And then you sort of, I don't know, + +00:17:54.140 --> 00:17:54.380 +I say it. Don't ask me why. + +00:17:55.840 --> 00:17:56.040 +But it feels natural after a while. + +00:17:57.540 --> 00:17:57.720 +You install a patch. It's clear what you + +00:18:02.040 --> 00:18:02.280 +mean. You don't have to worry about which + +00:18:05.440 --> 00:18:05.940 +branch it's on. So it's a little bit + +00:18:09.880 --> 00:18:10.120 +historical there. So there is some of that + +00:18:11.680 --> 00:18:11.960 +culture going on. It might be different. + +00:18:13.700 --> 00:18:14.200 +We don't use emojis that much. + +00:18:16.180 --> 00:18:16.680 +That's another thing. There is no like, + +00:18:20.740 --> 00:18:20.900 +you can click the little like button at the + +00:18:24.660 --> 00:18:25.080 +bottom of a comment or an email as you could + +00:18:27.560 --> 00:18:27.740 +on GitHub. But there are exceptions and it's + +00:18:29.240 --> 00:18:29.600 +not like someone will send you angry emails + +00:18:31.240 --> 00:18:31.480 +if you use an emoji or something like that. + +00:18:33.960 --> 00:18:34.200 +But it can come off as perhaps Because people + +00:18:36.680 --> 00:18:37.180 +are pressed for time also when replying to + +00:18:39.320 --> 00:18:39.400 +all these emails. So it might come off as a + +00:18:42.380 --> 00:18:42.880 +little bit short, but that's just how it is. + +00:18:46.400 --> 00:18:46.880 +And I think We have heard this comment before + +00:18:50.180 --> 00:18:50.680 +that mailing lists are scary or Emacs devil + +00:18:53.880 --> 00:18:54.380 +is scary or core development is scary. + +00:18:58.040 --> 00:18:58.180 +And I've touched a few of these points a + +00:18:59.240 --> 00:18:59.620 +little bit already. I think, + +00:19:01.000 --> 00:19:01.500 +yeah, maybe a little bit. + +00:19:05.240 --> 00:19:05.740 +For example, we don't use emojis very short + +00:19:10.460 --> 00:19:10.940 +in the communication. And we always use + +00:19:12.740 --> 00:19:13.240 +correct grammar and spelling. + +00:19:15.440 --> 00:19:15.920 +We take that seriously because it's important + +00:19:18.560 --> 00:19:19.060 +for being clear in your written communication + +00:19:21.040 --> 00:19:21.540 +when all you have is written communication. + +00:19:23.240 --> 00:19:23.740 +It's really important. + +00:19:31.260 --> 00:19:31.400 +But it's not like If you come in there and + +00:19:33.420 --> 00:19:33.580 +you don't know all these cultural rules and + +00:19:36.020 --> 00:19:36.380 +all these patterns, then you know you will We + +00:19:37.540 --> 00:19:37.900 +won't talk to you No Actually, + +00:19:40.920 --> 00:19:41.100 +we try to be as welcoming as we can and and + +00:19:44.180 --> 00:19:44.600 +be mindful and you know people not Everyone + +00:19:46.200 --> 00:19:46.700 +has English as their native language, + +00:19:48.940 --> 00:19:49.200 +for example. So perhaps someone says + +00:19:50.980 --> 00:19:51.360 +something, and it might come off as rude, + +00:19:52.760 --> 00:19:53.200 +but maybe it's just a direct translation. + +00:19:56.040 --> 00:19:56.520 +So we're trying to give a lot of whatever the + +00:19:59.480 --> 00:19:59.760 +native language is. So we try to give a lot + +00:20:01.460 --> 00:20:01.780 +of leeway and just be a little bit, + +00:20:03.420 --> 00:20:03.580 +you know, flexible and focus on, + +00:20:04.540 --> 00:20:04.920 +you know, the key, key points, + +00:20:06.260 --> 00:20:06.580 +which are the technical things, + +00:20:07.260 --> 00:20:07.760 +the technical decisions, + +00:20:09.080 --> 00:20:09.280 +technical arguments, rather than, + +00:20:11.760 --> 00:20:11.920 +you know, getting bogged down in a lot of, + +00:20:15.160 --> 00:20:15.360 +you know, personal, you know, + +00:20:18.720 --> 00:20:19.220 +discussions and flame wars. + +00:20:21.140 --> 00:20:21.260 +So, I mean, there are these things to be + +00:20:22.960 --> 00:20:23.160 +aware of, you know, it's just a little bit + +00:20:24.480 --> 00:20:24.980 +different. I don't think it's anything huge. + +00:20:26.120 --> 00:20:26.620 +And I wouldn't be, you know, + +00:20:30.200 --> 00:20:30.480 +I think it would be sad if people felt too + +00:20:32.200 --> 00:20:32.320 +intimidated by that. It just is what it is. + +00:20:33.400 --> 00:20:33.540 +And if you spend some time there, + +00:20:35.460 --> 00:20:35.960 +you'll see how people generally communicate. + +00:20:41.120 --> 00:20:41.260 +Sometimes, there are a lot of people on + +00:20:43.100 --> 00:20:43.600 +EmacsDevil. It's a public mailing list. + +00:20:45.840 --> 00:20:46.240 +A lot of people just sign up to follow Emacs + +00:20:48.360 --> 00:20:48.860 +development. Sometimes they chime in. + +00:20:50.640 --> 00:20:50.820 +And I think this is in general a good thing. + +00:20:52.800 --> 00:20:53.300 +I think it should be a public mailing list. + +00:20:59.720 --> 00:21:00.220 +Sometimes this leads to weird situations from + +00:21:02.900 --> 00:21:03.400 +just a point of view as an Emacs maintainer, + +00:21:06.900 --> 00:21:07.080 +right? I mean, I try to say something and it + +00:21:07.960 --> 00:21:08.240 +doesn't always say, oh, + +00:21:09.520 --> 00:21:10.020 +he's the maintainer or whatever. + +00:21:10.760 --> 00:21:11.200 +So when I say something, + +00:21:13.180 --> 00:21:13.380 +it should carry a little bit more weight than + +00:21:15.920 --> 00:21:16.160 +some unknown person from the internet who has + +00:21:17.800 --> 00:21:18.300 +an opinion and decided to send it to + +00:21:20.860 --> 00:21:21.020 +EmacsDevil. So it's good to be a little bit + +00:21:22.760 --> 00:21:23.160 +aware of who is a little bit more involved + +00:21:25.120 --> 00:21:25.280 +with the project. I would check out the + +00:21:26.600 --> 00:21:27.100 +maintainers file. I would check, + +00:21:30.600 --> 00:21:31.000 +see in the Git log, do these people actually + +00:21:32.800 --> 00:21:33.300 +have any anything in core? + +00:21:34.760 --> 00:21:35.260 +And if not, maybe, you know, + +00:21:38.160 --> 00:21:38.660 +there, we won't really, + +00:21:40.680 --> 00:21:41.000 +even if they express an opinion very + +00:21:42.400 --> 00:21:42.720 +strongly, even if they're a little bit rude, + +00:21:44.200 --> 00:21:44.700 +maybe they're not even involved in Emacs + +00:21:45.840 --> 00:21:46.340 +development. I mean, often, + +00:21:48.040 --> 00:21:48.460 +that's the case we have some people, + +00:21:49.400 --> 00:21:49.900 +unfortunately, at times, + +00:21:52.540 --> 00:21:52.720 +we have random people from the internet come + +00:21:54.620 --> 00:21:54.720 +in on the mailing list and they're just a + +00:21:56.280 --> 00:21:56.780 +little bit rude, or they say an opinion + +00:21:59.120 --> 00:21:59.620 +that's not exactly helpful. + +00:22:02.080 --> 00:22:02.320 +And I think you need to be aware. + +00:22:03.960 --> 00:22:04.340 +I mean, these things happen in any forum, + +00:22:07.240 --> 00:22:07.740 +but it happens on EmacsDevO as well. + +00:22:10.440 --> 00:22:10.680 +So just be a little bit aware of who you're + +00:22:13.040 --> 00:22:13.540 +talking to, what people are doing. + +00:22:15.380 --> 00:22:15.880 +It can help to Check the archives, + +00:22:17.960 --> 00:22:18.460 +see who writes what, and so on. + +00:22:22.720 --> 00:22:23.080 +But it's not something that I think is a huge + +00:22:23.940 --> 00:22:24.220 +problem. It is just, again, + +00:22:25.280 --> 00:22:25.780 +something to be aware of. + +00:22:27.540 --> 00:22:28.040 +We have the new kind of communication + +00:22:30.480 --> 00:22:30.820 +guidelines in place, which basically says + +00:22:33.480 --> 00:22:33.740 +that you should be nice to people and stay + +00:22:35.660 --> 00:22:36.060 +focused on the technical problem, + +00:22:38.120 --> 00:22:38.300 +try to see things from another person's point + +00:22:39.060 --> 00:22:39.360 +of view, this kind of stuff. + +00:22:41.940 --> 00:22:42.140 +So we're really trying to be as inclusive as + +00:22:46.320 --> 00:22:46.820 +possible and just stay correct in general. + +00:22:48.100 --> 00:22:48.380 +And sometimes, I mean, + +00:22:49.700 --> 00:22:50.060 +not everyone, it's a public list. + +00:22:52.080 --> 00:22:52.440 +We moderate it, but not to a huge extent, + +00:22:57.720 --> 00:22:57.840 +right? So sometimes people get away with a + +00:23:02.140 --> 00:23:02.260 +little bit of perhaps stretching the + +00:23:04.440 --> 00:23:04.700 +boundaries of what might be included in the + +00:23:06.000 --> 00:23:06.500 +kind communication guidelines, + +00:23:10.440 --> 00:23:10.940 +sort of the fences and limitations of that. + +00:23:13.440 --> 00:23:13.940 +But I would just ignore that. + +00:23:15.200 --> 00:23:15.700 +Sometimes it happens that we, + +00:23:16.800 --> 00:23:17.160 +as happens in any forum, + +00:23:19.200 --> 00:23:19.440 +by the way, you just, we have these very big + +00:23:21.560 --> 00:23:21.760 +threads. We start discussing something else. + +00:23:23.800 --> 00:23:24.300 +Perhaps you send us a patch and it just + +00:23:25.960 --> 00:23:26.360 +devolves into us discussing something + +00:23:28.260 --> 00:23:28.680 +completely different. And of course I partake + +00:23:30.220 --> 00:23:30.440 +in that, not better than anyone else, + +00:23:32.440 --> 00:23:32.940 +but it just happens. I mean, + +00:23:34.440 --> 00:23:34.800 +it's not your fault. It's just what happens + +00:23:37.000 --> 00:23:37.200 +sometimes in forums, and don't mind that. + +00:23:38.940 --> 00:23:39.120 +And it's a little bit easier to do that in + +00:23:41.200 --> 00:23:41.680 +emails, because you just change the subject, + +00:23:43.320 --> 00:23:43.580 +and now it's supposed to be a different + +00:23:45.600 --> 00:23:45.780 +thread, but it comes as replies usually to + +00:23:48.340 --> 00:23:48.480 +you, which wouldn't happen perhaps in a + +00:23:49.840 --> 00:23:49.960 +different workflow. So it's something to be + +00:23:53.140 --> 00:23:53.300 +aware of as well. Another thing is that, + +00:23:54.180 --> 00:23:54.680 +of course, in written communication, + +00:23:56.120 --> 00:23:56.620 +tone doesn't always come across. + +00:23:58.840 --> 00:23:59.240 +If someone sounds negative, + +00:24:00.780 --> 00:24:01.280 +sometimes it's just them being neutral. + +00:24:04.900 --> 00:24:05.400 +Sometimes you get no replies. + +00:24:06.720 --> 00:24:07.120 +You send something, you get no replies. + +00:24:08.720 --> 00:24:09.220 +And this could mean, actually it could mean, + +00:24:11.000 --> 00:24:11.500 +yeah, what you said was uncontroversial. + +00:24:12.480 --> 00:24:12.980 +We think it was a good idea. + +00:24:16.100 --> 00:24:16.360 +No 1 replied to it because either someone + +00:24:18.840 --> 00:24:18.960 +else would reply or just there was no need to + +00:24:20.140 --> 00:24:20.640 +reply because, yeah, why not? + +00:24:23.800 --> 00:24:24.060 +So but if you do send a patch and you don't + +00:24:26.040 --> 00:24:26.280 +get an answer, wait. I mean, + +00:24:29.080 --> 00:24:29.380 +don't wait 1, 2 days. Maybe we're busy or + +00:24:30.020 --> 00:24:30.520 +we're sick or whatever. + +00:24:32.680 --> 00:24:32.800 +Wait 2 weeks. It's fine to just send it + +00:24:34.440 --> 00:24:34.940 +again. If you send the patch to EmacsDevil, + +00:24:36.820 --> 00:24:37.040 +send it to the bug mailing list, + +00:24:38.760 --> 00:24:39.260 +because we lose track of stuff on EmacsDevil. + +00:24:41.060 --> 00:24:41.560 +That's just the reality of it. + +00:24:45.900 --> 00:24:46.080 +So if you propose making a change and no 1 + +00:24:48.220 --> 00:24:48.340 +commented, feel free to ask us again if a + +00:24:50.580 --> 00:24:51.080 +patch would be welcome and we will clarify. + +00:24:54.220 --> 00:24:54.720 +Bug reports, unfortunately, + +00:24:55.940 --> 00:24:56.280 +if you get no answer, I mean, + +00:24:59.240 --> 00:24:59.740 +we do have a limited amount of time to work + +00:25:02.220 --> 00:25:02.360 +on bugs. If you're looking to get started in + +00:25:05.020 --> 00:25:05.520 +Emacs development, this is an excellent way + +00:25:06.820 --> 00:25:07.320 +to start getting involved. + +00:25:09.720 --> 00:25:09.960 +What I'd recommend is start looking into + +00:25:11.180 --> 00:25:11.420 +bugs. I'd install that bug, + +00:25:13.660 --> 00:25:13.860 +I'd see about the mailing workflow and set + +00:25:15.300 --> 00:25:15.800 +that up a little bit, or not. + +00:25:17.640 --> 00:25:17.960 +It's up to you. You can reply to an email + +00:25:19.660 --> 00:25:20.160 +without setting any of that stuff up. + +00:25:21.980 --> 00:25:22.480 +But just help us try out your bugs, + +00:25:24.520 --> 00:25:24.720 +send patches, do that type of stuff. + +00:25:26.040 --> 00:25:26.280 +I mean, that's an excellent way, + +00:25:27.360 --> 00:25:27.740 +and extremely welcome. + +00:25:30.220 --> 00:25:30.360 +We're so happy to see when people pick up bug + +00:25:32.000 --> 00:25:32.500 +reports that have been left by the wayside + +00:25:34.080 --> 00:25:34.580 +and just fix them, send us a patch, + +00:25:37.020 --> 00:25:37.520 +and we can just apply it. + +00:25:40.180 --> 00:25:40.360 +So that's really your starting point if you + +00:25:43.100 --> 00:25:43.600 +want to get involved in Emacs core + +00:25:50.260 --> 00:25:50.580 +development. I also want to say that be aware + +00:25:53.520 --> 00:25:54.020 +that you know Emacs is the editor of the GNU + +00:25:56.360 --> 00:25:56.820 +operating system and this makes the project + +00:25:58.520 --> 00:25:58.700 +political a little bit whether you like it or + +00:26:00.880 --> 00:26:01.380 +not. Luckily the you know the politics are + +00:26:03.160 --> 00:26:03.400 +limited enough that we can find broad + +00:26:05.020 --> 00:26:05.520 +agreement on it. So we want to promote, + +00:26:07.920 --> 00:26:08.420 +we want to create free software. + +00:26:10.460 --> 00:26:10.960 +That's sort of it. That's it. + +00:26:13.540 --> 00:26:13.740 +And there shouldn't be too much more to it, + +00:26:15.440 --> 00:26:15.600 +right? We want to rid the world of + +00:26:19.300 --> 00:26:19.700 +proprietary software as an evil thing. + +00:26:21.420 --> 00:26:21.920 +Ideally, all software should be free. + +00:26:24.860 --> 00:26:25.160 +But these are just the goals of the free + +00:26:27.280 --> 00:26:27.440 +software movement. So we're very strict with + +00:26:29.160 --> 00:26:29.660 +some things. We don't recommend non-free + +00:26:31.080 --> 00:26:31.320 +proprietary software. Of course, + +00:26:32.680 --> 00:26:33.180 +we have no problem mentioning Microsoft + +00:26:34.780 --> 00:26:35.140 +Windows because everyone knows that there's + +00:26:39.060 --> 00:26:39.280 +this obscure operating system developed in + +00:26:41.260 --> 00:26:41.760 +California that some people insist on using. + +00:26:44.500 --> 00:26:45.000 +We use, many of us use GNU plus Linux. + +00:26:46.880 --> 00:26:47.380 +Actually, some core developers happen to use + +00:26:50.380 --> 00:26:50.820 +exactly, you know, not GNU plus Linux, + +00:26:52.360 --> 00:26:52.600 +but that's fine as well, + +00:26:54.320 --> 00:26:54.820 +right? We take a little bit of a pragmatic + +00:26:56.380 --> 00:26:56.840 +view, but we don't wanna do, + +00:26:58.580 --> 00:26:59.020 +what we don't wanna do is promote like this + +00:27:04.600 --> 00:27:04.780 +small, unknown piece of non-free software and + +00:27:08.200 --> 00:27:08.400 +sort of help the non-free software in that + +00:27:11.120 --> 00:27:11.620 +way. That's where we try to draw the line, + +00:27:15.520 --> 00:27:15.760 +you know, in just expressing just a few + +00:27:17.560 --> 00:27:18.060 +words. So that's 1 thing. + +00:27:21.300 --> 00:27:21.620 +We're, I think, very pragmatic on this point, + +00:27:24.400 --> 00:27:24.900 +but we do try to follow the principle. + +00:27:26.680 --> 00:27:27.180 +We also require copyright assignment. + +00:27:29.540 --> 00:27:30.040 +And I think in general, + +00:27:34.240 --> 00:27:34.740 +the argument is that we require a copyright + +00:27:38.440 --> 00:27:38.940 +assignment, because that makes it easier to + +00:27:42.940 --> 00:27:43.440 +defend the legal status of the GNU Emacs + +00:27:45.520 --> 00:27:45.920 +source code. So if there's ever a legal + +00:27:47.980 --> 00:27:48.280 +battle, the idea is that if it's only 1 + +00:27:49.760 --> 00:27:50.260 +copyright holder and you have a GPL + +00:27:53.720 --> 00:27:54.140 +violation, i.e. Someone might change Emacs + +00:27:55.320 --> 00:27:55.820 +and then distribute it as proprietary + +00:27:57.660 --> 00:27:58.040 +software or something nasty like that, + +00:28:00.420 --> 00:28:00.620 +then we have an easier way of defending it in + +00:28:02.280 --> 00:28:02.780 +court if there is only 1 copyright holder. + +00:28:04.380 --> 00:28:04.840 +So we assigned copyright to the Free Software + +00:28:08.960 --> 00:28:09.460 +Foundation. And I think there, + +00:28:12.380 --> 00:28:12.600 +I mean, sometimes people oppose this for + +00:28:13.380 --> 00:28:13.660 +various reasons, you know, + +00:28:15.220 --> 00:28:15.720 +people see it as, you know, + +00:28:16.720 --> 00:28:16.880 +maybe some people might say, + +00:28:17.360 --> 00:28:17.860 +you know, it's ideological, + +00:28:19.080 --> 00:28:19.340 +you know, who goes, you know, + +00:28:20.860 --> 00:28:21.360 +the FSF goes too far with this. + +00:28:23.620 --> 00:28:23.860 +And, and, I mean, that's fine. + +00:28:25.080 --> 00:28:25.580 +You that's, that's an opinion. + +00:28:28.080 --> 00:28:28.320 +And the there, then other people are more + +00:28:29.720 --> 00:28:30.040 +practical, you know, it's just, + +00:28:30.880 --> 00:28:31.360 +It's a hassle, basically, + +00:28:32.720 --> 00:28:33.220 +we don't want to sign these papers. + +00:28:35.440 --> 00:28:35.580 +And I'm not really here to tell anyone that + +00:28:37.000 --> 00:28:37.160 +they're wrong. I've expressed my views on + +00:28:40.280 --> 00:28:40.780 +this in the past. But just for now, + +00:28:43.500 --> 00:28:43.660 +I'm just very practical for the purposes of + +00:28:46.000 --> 00:28:46.500 +this talk. So I signed the papers. + +00:28:48.840 --> 00:28:49.280 +It's Maybe it didn't take me many minutes. + +00:28:51.400 --> 00:28:51.900 +And in most cases, it shouldn't really. + +00:28:54.720 --> 00:28:55.000 +And it's something that I found worth doing, + +00:28:58.100 --> 00:28:58.580 +because that way I could focus on continuing + +00:29:01.200 --> 00:29:01.360 +to improve Emacs instead of discussing the + +00:29:02.720 --> 00:29:03.220 +finer points of copyright law. + +00:29:04.960 --> 00:29:05.280 +You could write patches and stuff, + +00:29:06.340 --> 00:29:06.680 +that kind of thing. So, + +00:29:08.160 --> 00:29:08.480 +I mean, this is something that trips people + +00:29:10.600 --> 00:29:11.100 +up and, you know, it's fine that people have + +00:29:13.940 --> 00:29:14.200 +different opinions on it and so on, + +00:29:19.120 --> 00:29:19.280 +but I think for now that's just something to + +00:29:22.540 --> 00:29:23.000 +be aware of. So that's, + +00:29:25.920 --> 00:29:26.120 +I think, I mean, there's much more that could + +00:29:27.740 --> 00:29:27.880 +be said. Ideally, I would like to have a + +00:29:30.560 --> 00:29:31.060 +practical part to this talk as well. + +00:29:34.200 --> 00:29:34.440 +But I wanted to say something about the + +00:29:36.960 --> 00:29:37.159 +packages in Emacs. Because as we know, + +00:29:40.260 --> 00:29:40.440 +I mean, Emacs is the, I can't remember what + +00:29:41.240 --> 00:29:41.740 +it says, it's like a visual, + +00:29:43.520 --> 00:29:43.780 +there's in the manual it says, + +00:29:45.400 --> 00:29:45.900 +oh, Emacs is an advanced text editor. + +00:29:47.780 --> 00:29:47.980 +It's visual, which, I mean, + +00:29:49.960 --> 00:29:50.280 +it's not ed, the whole Unix ed, + +00:29:52.200 --> 00:29:52.700 +so that's cool. It's also customizable, + +00:29:55.680 --> 00:29:56.180 +right? So that's always been a thing. + +00:29:59.480 --> 00:29:59.980 +And what makes Emacs so amazing. + +00:30:01.320 --> 00:30:01.820 +And some people described it as, + +00:30:03.720 --> 00:30:03.880 +I can't remember who said that there has been + +00:30:09.140 --> 00:30:09.440 +a Cambrian explosion of packages in Emacs. + +00:30:10.180 --> 00:30:10.440 +And I think that's true. + +00:30:12.080 --> 00:30:12.400 +I mean, if you look at something like Melpa, + +00:30:13.260 --> 00:30:13.760 +I think they have over 5,000 + +00:30:15.720 --> 00:30:16.220 +packages now. It's like truly impressive, + +00:30:18.280 --> 00:30:18.760 +just an immense amount of work and immense + +00:30:21.820 --> 00:30:22.320 +amount of packages. And really, + +00:30:23.940 --> 00:30:24.340 +this shows the strength, + +00:30:26.100 --> 00:30:26.600 +I think, of the Emacs community, + +00:30:28.280 --> 00:30:28.780 +of Emacs itself as an idea. + +00:30:30.960 --> 00:30:31.240 +And I think it's also just tremendous work + +00:30:33.080 --> 00:30:33.580 +that's been done by the maintainers. + +00:30:35.820 --> 00:30:36.040 +And they do get a lot of recognition for + +00:30:38.400 --> 00:30:38.900 +that. And rightly so, in my opinion. + +00:30:41.660 --> 00:30:41.920 +It's done so much, I think, + +00:30:43.860 --> 00:30:44.260 +for our community. The other package archive + +00:30:45.840 --> 00:30:46.340 +that we have is GNU-ELPA. + +00:30:49.180 --> 00:30:49.640 +And that's been enabled since when packages + +00:30:50.860 --> 00:30:51.000 +first got introduced back in, + +00:30:52.660 --> 00:30:53.160 +I think, Emacs, was it 23? + +00:30:59.020 --> 00:30:59.200 +And probably, I mean, the main thing why a + +00:31:01.620 --> 00:31:01.860 +package goes onto GNU Elpa is, + +00:31:03.900 --> 00:31:04.040 +you know, it should be installable out of the + +00:31:07.500 --> 00:31:07.580 +box. So, I mean, that's a big benefit in a + +00:31:10.680 --> 00:31:10.960 +sense. It's also a requirement for GNU Alpa + +00:31:11.820 --> 00:31:12.240 +that the copyright, again, + +00:31:14.040 --> 00:31:14.540 +just as GNU Emacs, the copyright is assigned + +00:31:16.520 --> 00:31:17.020 +to the Free Software Foundation. + +00:31:19.440 --> 00:31:19.940 +And some very hugely popular packages, + +00:31:20.980 --> 00:31:21.420 +like YaSnippet, for example, + +00:31:24.560 --> 00:31:25.060 +is on GNU Alpa. And we were discussing this + +00:31:29.540 --> 00:31:30.040 +just 2 months back. And Joe Tavora, + +00:31:31.280 --> 00:31:31.780 +I can't say his name, G-O-A-O, + +00:31:35.600 --> 00:31:36.100 +Tavora. He made the point that he's never + +00:31:40.000 --> 00:31:40.280 +seen a problem in any of his packages with + +00:31:41.660 --> 00:31:42.100 +copyright assignment in particular. + +00:31:44.380 --> 00:31:44.540 +It's never been a problem to get people to be + +00:31:46.060 --> 00:31:46.560 +involved in the development of those packages + +00:31:47.720 --> 00:31:48.220 +just because of the copyright assignment + +00:31:50.140 --> 00:31:50.640 +requirements. So I mean, + +00:31:53.340 --> 00:31:53.840 +that's his perspective on that. + +00:32:00.180 --> 00:32:00.480 +And I think it was worth relating his + +00:32:06.220 --> 00:32:06.500 +experience here. So we also have this new + +00:32:08.000 --> 00:32:08.500 +package archive called non-GNU-alpha, + +00:32:12.380 --> 00:32:12.880 +which is now enabled by default as well. + +00:32:13.940 --> 00:32:14.440 +I think for practical purposes, + +00:32:16.380 --> 00:32:16.880 +you could get into it a little bit more, + +00:32:18.340 --> 00:32:18.840 +you know, why we created non-NUELPA, + +00:32:21.820 --> 00:32:22.320 +and perhaps that's something we can discuss + +00:32:25.740 --> 00:32:26.240 +in the Q&A section. For practical purposes, + +00:32:27.980 --> 00:32:28.280 +the main thing to be aware of is, + +00:32:30.740 --> 00:32:30.980 +yes, we don't promote non-free software on + +00:32:36.280 --> 00:32:36.780 +there, And we also don't have the copyright + +00:32:38.560 --> 00:32:39.060 +assignment requirement. + +00:32:43.320 --> 00:32:43.820 +I think this is probably for new packages. + +00:32:47.760 --> 00:32:48.180 +It's generally better if they go to GNU Elpa, + +00:32:50.720 --> 00:32:51.220 +if there is any type of idea or ambition + +00:32:53.300 --> 00:32:53.460 +that, you know, at some point it would be + +00:32:56.420 --> 00:32:56.740 +good or it might be good to eventually have + +00:32:58.480 --> 00:32:58.900 +some type of functionality like this shipped + +00:33:01.060 --> 00:33:01.200 +with Emacs itself. So I think this is + +00:33:03.800 --> 00:33:04.020 +something that perhaps package authors could + +00:33:07.020 --> 00:33:07.340 +also be aware of, that occasionally we do + +00:33:09.520 --> 00:33:09.780 +bring in functionality from GNU Elpa into + +00:33:11.680 --> 00:33:12.180 +core Emacs because we feel that it should be + +00:33:15.060 --> 00:33:15.560 +better integrated with Emacs itself. + +00:33:18.340 --> 00:33:18.480 +So if I could give any type of + +00:33:19.200 --> 00:33:19.400 +recommendation, of course, + +00:33:21.660 --> 00:33:22.120 +you do. These are your packages, + +00:33:25.240 --> 00:33:25.520 +right? In an ideal world, + +00:33:28.220 --> 00:33:28.680 +we would only use this for legacy packages + +00:33:30.060 --> 00:33:30.240 +where people contributed in the past, + +00:33:31.640 --> 00:33:32.120 +but you didn't worry about the copyright + +00:33:33.820 --> 00:33:34.200 +assignment. But where possible, + +00:33:36.980 --> 00:33:37.480 +I think there is benefit in putting it on GNU + +00:33:42.740 --> 00:33:42.900 +Elpa. And I wanted to end a little bit on a + +00:33:44.640 --> 00:33:45.140 +more, you know, the more opinionated perhaps + +00:33:47.040 --> 00:33:47.260 +part of my talk and not just talk about + +00:33:49.040 --> 00:33:49.160 +processes. I see that I'm running out of + +00:33:51.200 --> 00:33:51.700 +time. So I will say Emacs is hackable. + +00:33:54.020 --> 00:33:54.520 +And I think that's a blessing and a curse. + +00:33:55.840 --> 00:33:56.340 +And if you think about something like, + +00:34:00.800 --> 00:34:01.100 +the types of choices that you can make, + +00:34:02.540 --> 00:34:03.040 +perhaps when you implement something, + +00:34:06.360 --> 00:34:06.680 +There are choices, different choices between + +00:34:07.440 --> 00:34:07.740 +something like common list, + +00:34:08.940 --> 00:34:09.440 +which is like bigger, more batteries + +00:34:10.860 --> 00:34:11.320 +included, and something like scheme, + +00:34:11.880 --> 00:34:12.239 +which is more minimal. + +00:34:13.500 --> 00:34:13.679 +And I think we have some of those, + +00:34:16.159 --> 00:34:16.280 +you know, this kind of tension also in the + +00:34:17.880 --> 00:34:18.159 +Emacs itself. What should be in Emacs core? + +00:34:19.440 --> 00:34:19.699 +Should we have a lean Emacs core? + +00:34:21.300 --> 00:34:21.800 +Should we have more stuff in Emacs core? + +00:34:26.040 --> 00:34:26.320 +And I think these are good discussions to + +00:34:29.120 --> 00:34:29.380 +have. And there are various challenges that + +00:34:31.440 --> 00:34:31.940 +are associated with each of those choices. + +00:34:34.840 --> 00:34:35.320 +I think what will never change is that Emacs + +00:34:36.780 --> 00:34:37.280 +is hackable. Emacs is customizable. + +00:34:38.300 --> 00:34:38.800 +This is the key strength. + +00:34:40.520 --> 00:34:40.960 +This is why we love and use Emacs. + +00:34:41.320 --> 00:34:41.820 +I think fundamentally, + +00:34:43.780 --> 00:34:44.280 +whether you do it a lot or not, + +00:34:46.760 --> 00:34:47.260 +this is what at core is bringing you that + +00:34:48.679 --> 00:34:49.179 +amazing user experience. + +00:34:53.040 --> 00:34:53.199 +However, the flip side of that sometimes is + +00:34:56.080 --> 00:34:56.280 +that it's so easy to hack Emacs so that we + +00:34:58.120 --> 00:34:58.520 +hack around bugs instead of fixing them. + +00:35:00.280 --> 00:35:00.540 +We do some tweak and our customers say, + +00:35:01.420 --> 00:35:01.720 +okay, this is a little bit broken, + +00:35:03.400 --> 00:35:03.560 +Let me just fix it. I'll put an advice on + +00:35:05.200 --> 00:35:05.700 +this function. I'll do this customization. + +00:35:08.540 --> 00:35:09.040 +Or we accept limitations in Emacs core. + +00:35:11.600 --> 00:35:12.100 +And I think it's fine. + +00:35:13.380 --> 00:35:13.760 +I mean, this will never change. + +00:35:16.160 --> 00:35:16.560 +That will always be core to what Emacs is, + +00:35:20.020 --> 00:35:20.140 +right? However, I think that the flip side of + +00:35:22.300 --> 00:35:22.500 +that is that I think sometimes we could be + +00:35:26.260 --> 00:35:26.760 +better at just taking those few extra steps + +00:35:29.060 --> 00:35:29.260 +to also make Emacs better itself and solve + +00:35:31.480 --> 00:35:31.680 +this for all users. And I think if we can + +00:35:33.480 --> 00:35:33.680 +build a little bit more of a culture like + +00:35:35.320 --> 00:35:35.460 +that, I mean, we already have that culture to + +00:35:36.820 --> 00:35:37.200 +a large extent, don't get me wrong, + +00:35:39.440 --> 00:35:39.620 +we do, but if we can get a little bit more of + +00:35:41.120 --> 00:35:41.320 +that culture, let's get that into core, + +00:35:43.260 --> 00:35:43.760 +let's get that problem fixed, + +00:35:45.640 --> 00:35:46.140 +that frustration. I can tell you that, + +00:35:48.640 --> 00:35:48.940 +I just started a new assignment at work, + +00:35:51.360 --> 00:35:51.420 +I already told you, so I'm going to write a + +00:35:53.860 --> 00:35:54.140 +lot of Python, okay? So I need to keep track + +00:35:55.240 --> 00:35:55.740 +of something called virtual environments, + +00:35:57.760 --> 00:35:58.260 +and that's just a way to install these + +00:36:01.440 --> 00:36:01.640 +dependencies just locally per directory or + +00:36:02.920 --> 00:36:03.420 +per repository kind of thing. + +00:36:05.520 --> 00:36:05.740 +And I've used various packages for that. + +00:36:07.360 --> 00:36:07.860 +There are like 4 packages, + +00:36:10.120 --> 00:36:10.560 +5 packages, maybe. And 1 is called VM, + +00:36:11.240 --> 00:36:11.740 +and 1 is called VirtualM, + +00:36:13.140 --> 00:36:13.640 +and 1 is called Python-VM. + +00:36:16.620 --> 00:36:16.980 +And now I'm using, you know, + +00:36:17.780 --> 00:36:18.100 +I'm using a different 1. + +00:36:19.120 --> 00:36:19.620 +And it's just a little bit, + +00:36:22.000 --> 00:36:22.160 +why doesn't this work out of the box in + +00:36:25.580 --> 00:36:25.680 +Emacs? Why? I don't think there's a really + +00:36:28.220 --> 00:36:28.640 +good fundamental good reason why something + +00:36:29.960 --> 00:36:30.460 +like that doesn't work in Emacs. + +00:36:31.480 --> 00:36:31.980 +So I think that's really, + +00:36:34.920 --> 00:36:35.220 +I mean, I'm sure there are other things like + +00:36:36.780 --> 00:36:37.280 +that, other fundamental features. + +00:36:39.480 --> 00:36:39.920 +Why is it that for the last 20 years, + +00:36:43.540 --> 00:36:43.740 +we've shipped Emacs with no PHP support out + +00:36:47.180 --> 00:36:47.660 +of the box? I mean, I'm not a PHP programmer. + +00:36:50.540 --> 00:36:51.020 +I don't really have a lot of love for PHP, + +00:36:55.520 --> 00:36:56.020 +let's say. To me, it's a very funny-looking + +00:36:59.800 --> 00:37:00.060 +language, but okay, still it's been very + +00:37:01.560 --> 00:37:02.060 +popular. Why haven't we supported it? + +00:37:02.900 --> 00:37:03.280 +I mean, it's just strange. + +00:37:04.540 --> 00:37:05.040 +You install Emacs on some machine, + +00:37:06.760 --> 00:37:07.260 +you open a PHP file, you get fundamental + +00:37:08.680 --> 00:37:09.160 +mode. It's not the best user experience, + +00:37:12.400 --> 00:37:12.600 +in my opinion. So I think there are some + +00:37:15.300 --> 00:37:15.480 +things where we really could do a little bit + +00:37:19.700 --> 00:37:20.200 +better. And I'm seeing this all the time. + +00:37:22.280 --> 00:37:22.500 +Just this week, this new assignment was + +00:37:24.140 --> 00:37:24.640 +interesting. There was this Emacs user. + +00:37:26.720 --> 00:37:26.980 +Turns out we have the exact same hack in both + +00:37:29.640 --> 00:37:29.860 +of our init files. So we had created the + +00:37:31.700 --> 00:37:32.140 +exact same mode for DIRED, + +00:37:33.600 --> 00:37:33.920 +actually, to hide dot files. + +00:37:36.560 --> 00:37:36.720 +You know, dot something is supposed to be + +00:37:38.940 --> 00:37:39.440 +hidden on a Unix system. + +00:37:43.700 --> 00:37:43.940 +So we had DERED hide dot files mode to just + +00:37:46.800 --> 00:37:47.100 +hide them. And why isn't that in DERED? + +00:37:47.920 --> 00:37:48.420 +Or should it be in DERED? + +00:37:50.360 --> 00:37:50.860 +Should it be a package on the new Elpa? + +00:37:52.680 --> 00:37:53.000 +Where should it be? Why is it just local + +00:37:54.280 --> 00:37:54.680 +hack? Should it be on a wiki somewhere? + +00:37:56.240 --> 00:37:56.740 +I mean, sometimes that's the correct answer. + +00:37:58.640 --> 00:37:59.060 +Sometimes the correct answer is, + +00:37:59.920 --> 00:38:00.420 +yes, it should be a package. + +00:38:02.040 --> 00:38:02.360 +Sometimes the correct answer is, + +00:38:03.640 --> 00:38:04.140 +yes, it should really be in core. + +00:38:05.920 --> 00:38:06.420 +So what I want to promote is more like, + +00:38:08.600 --> 00:38:08.900 +let's just take a step back and just ask + +00:38:11.000 --> 00:38:11.180 +yourself, what's the best solution if we look + +00:38:11.880 --> 00:38:12.240 +at the overall picture? + +00:38:13.420 --> 00:38:13.920 +Should I hack this into my configuration? + +00:38:16.720 --> 00:38:16.840 +In many cases, yes, that's the right thing to + +00:38:19.040 --> 00:38:19.540 +do. We don't want to proliferate just random + +00:38:21.660 --> 00:38:22.160 +solutions all over Emacs for no reason. + +00:38:24.600 --> 00:38:24.760 +But sometimes we want to fix it once and for + +00:38:27.200 --> 00:38:27.700 +all. We want to do that in core. + +00:38:30.040 --> 00:38:30.200 +So you could send stuff like that to us as + +00:38:30.980 --> 00:38:31.480 +patches or as packages. + +00:38:34.060 --> 00:38:34.340 +And we can discuss a little bit about where + +00:38:35.920 --> 00:38:36.420 +should we solve this? What's the right level + +00:38:40.760 --> 00:38:41.100 +of abstraction? I'm seeing that I'm running + +00:38:43.340 --> 00:38:43.620 +out of time. I had an Emacs wish list. + +00:38:46.380 --> 00:38:46.880 +Maybe we can take more of that in the Q&A. + +00:38:49.107 --> 00:38:49.226 +But I want to say, like, + +00:38:50.220 --> 00:38:50.460 +in VS Code, you just start VS Code. + +00:38:51.420 --> 00:38:51.660 +You open a Python file, + +00:38:52.660 --> 00:38:53.040 +and you get, like, hey, + +00:38:54.060 --> 00:38:54.560 +are you trying to use Python? + +00:38:55.900 --> 00:38:56.280 +Click here, install Python. + +00:38:58.200 --> 00:38:58.700 +You get all the nice things out of the box. + +00:39:01.400 --> 00:39:01.560 +And my argument is, why can't we have more of + +00:39:03.380 --> 00:39:03.880 +that in Emacs? I don't think it's necessarily + +00:39:05.860 --> 00:39:06.360 +hard, but it does take a little bit of work. + +00:39:08.560 --> 00:39:09.060 +The challenges here are more social, + +00:39:10.380 --> 00:39:10.880 +I think, than technical. + +00:39:12.480 --> 00:39:12.780 +And I think it's worth doing, + +00:39:13.700 --> 00:39:14.060 +because it's not just Python. + +00:39:16.280 --> 00:39:16.640 +It's just There are always these small things + +00:39:18.640 --> 00:39:18.900 +where it just really should work, + +00:39:20.500 --> 00:39:20.900 +and that would be a much better experience. + +00:39:23.000 --> 00:39:23.360 +And then you could customize not that thing + +00:39:24.100 --> 00:39:24.600 +that should just work, + +00:39:26.980 --> 00:39:27.140 +but you could customize more fun and + +00:39:29.320 --> 00:39:29.620 +exploratory things instead of people + +00:39:31.260 --> 00:39:31.720 +reinventing the wheel over and over again. + +00:39:33.340 --> 00:39:33.420 +So I'm very excited about what's happening in + +00:39:35.040 --> 00:39:35.280 +Emacs. I think we should be proud of what + +00:39:37.200 --> 00:39:37.360 +we've accomplished. It's so many things to + +00:39:37.960 --> 00:39:38.360 +many different people, + +00:39:39.160 --> 00:39:39.660 +an environment for hacking, + +00:39:41.120 --> 00:39:41.620 +just a productivity system. + +00:39:43.680 --> 00:39:44.020 +Other sees us as a different way of looking + +00:39:45.160 --> 00:39:45.360 +at computing, you know, + +00:39:47.160 --> 00:39:47.440 +the embodiment of the ideal of the Lisp + +00:39:49.120 --> 00:39:49.280 +machine if you want to talk big words and + +00:39:50.380 --> 00:39:50.660 +stuff like that. And of course, + +00:39:52.900 --> 00:39:53.320 +Emacs are all those things and so many more. + +00:39:54.940 --> 00:39:55.440 +And that's what makes Emacs so amazing. + +00:40:00.580 --> 00:40:00.780 +And in some sense, we should be care that + +00:40:02.720 --> 00:40:03.040 +people are satisfied with using lesser text + +00:40:05.220 --> 00:40:05.600 +editors. How could they be happy running + +00:40:07.180 --> 00:40:07.440 +that? I mean, I'm sure it's fine, + +00:40:09.360 --> 00:40:09.800 +but it sure as hell isn't Emacs. + +00:40:12.100 --> 00:40:12.340 +So don't we owe it to the world and to them + +00:40:13.940 --> 00:40:14.440 +and to ourselves to make a great Emacs. + +00:40:15.880 --> 00:40:16.120 +That will be my ending words. + +00:40:17.520 --> 00:40:18.020 +And I hope to see you all in the Q&A. + +00:40:22.360 --> 00:40:22.560 +Thank you all. And thank you so much, + +00:40:23.860 --> 00:40:24.360 +Stefan. That was a wonderful presentation. + +00:40:26.780 --> 00:40:27.280 +And I just want to give you the opportunity. + +00:40:29.440 --> 00:40:29.940 +You said that you perhaps had, + +00:40:31.260 --> 00:40:31.400 +Not the practical stuff, + +00:40:33.120 --> 00:40:33.280 +but you wanted to do a demo or something like + +00:40:34.280 --> 00:40:34.780 +this? What did you mention exactly? + +00:40:37.960 --> 00:40:38.460 +Yeah, we didn't have time really. + +00:40:41.600 --> 00:40:42.040 +Yes, I'm not sure. I didn't prepare anything + +00:40:43.080 --> 00:40:43.580 +so that we can do it live. + +00:40:44.540 --> 00:40:44.800 +But maybe for next time, + +00:40:48.120 --> 00:40:48.620 +I will do a demo. Don't hold me to it. + +00:40:50.800 --> 00:40:51.100 +Or someone else could. + +00:40:52.040 --> 00:40:52.540 +That would be really amazing. + +00:40:53.860 --> 00:40:54.020 +Right. Well, thank you, + +00:40:56.640 --> 00:40:56.820 +Stéphane. You've been already into so much + +00:41:00.060 --> 00:41:00.560 +detail of so many... So much of the intricacy + +00:41:04.600 --> 00:41:05.100 +of the maintenance. And as someone who's been + +00:41:07.480 --> 00:41:07.980 +95% of the time developing for Melpa, + +00:41:10.920 --> 00:41:11.040 +I feel like this talk was very geared to a + +00:41:13.520 --> 00:41:13.980 +lot of us who tend to experiment in this + +00:41:15.920 --> 00:41:16.400 +Cambrian stage of Emacs evolution, + +00:41:19.120 --> 00:41:19.620 +where we get to deploy a lot of creativity + +00:41:23.760 --> 00:41:24.020 +whilst also feeling pretty agile in a way we + +00:41:25.080 --> 00:41:25.580 +come up with solutions to problems. + +00:41:28.820 --> 00:41:29.240 +But you've won me over with your discussion + +00:41:31.100 --> 00:41:31.360 +about potentially moving some of this stuff + +00:41:32.720 --> 00:41:33.220 +to core. And I think this particularly + +00:41:35.940 --> 00:41:36.140 +resonated at the end with this tension that + +00:41:38.160 --> 00:41:38.660 +you feel about problems that you encounter. + +00:41:40.280 --> 00:41:40.760 +Do you fix them in Melpa? + +00:41:41.600 --> 00:41:42.040 +Do you fix them in core? + +00:41:43.680 --> 00:41:43.780 +Is it not something that is supposed to be an + +00:41:46.340 --> 00:41:46.560 +option? I love this tension and it's + +00:41:47.900 --> 00:41:48.040 +something that we've been exploring for the + +00:41:49.300 --> 00:41:49.780 +last 3 edition of Emacs Cons. + +00:41:51.980 --> 00:41:52.480 +It's really what is to be the interaction + +00:41:55.160 --> 00:41:55.660 +between this pool of very clever developers + +00:41:57.960 --> 00:41:58.100 +who are on Melpa but who are perhaps a little + +00:42:00.380 --> 00:42:00.880 +bit afraid of joining Core and the wonderful + +00:42:02.360 --> 00:42:02.860 +job that you do that, yes, + +00:42:05.140 --> 00:42:05.640 +seems archaic from the outside, + +00:42:07.700 --> 00:42:07.840 +but as you've been at length today in your + +00:42:09.280 --> 00:42:09.480 +presentation, is actually just a better way + +00:42:11.680 --> 00:42:11.780 +to work, a very pragmatic way to get a lot of + +00:42:13.180 --> 00:42:13.320 +work done. So, thank you so much for your + +00:42:15.020 --> 00:42:15.240 +presentation. Thank you, + +00:42:20.320 --> 00:42:20.740 +Leo. So, we have about 12 minutes now to go + +00:42:22.500 --> 00:42:22.950 +through as many questions as possible. + +00:42:25.600 --> 00:42:26.000 +You have obviously had a lot of questions + +00:42:26.680 --> 00:42:27.180 +throughout your presentation. + +00:42:28.660 --> 00:42:28.940 +Do you have access to the pad, + +00:42:30.240 --> 00:42:30.400 +or do you want me to share the question and + +00:42:32.340 --> 00:42:32.660 +feed them to you? Yes, + +00:42:34.020 --> 00:42:34.200 +could you start with sharing them? + +00:42:35.500 --> 00:42:36.000 +I'll see if I can get it on my screen. + +00:42:39.140 --> 00:42:39.640 +Sure, I'll do that. Please let me know if my + +00:42:42.620 --> 00:42:42.980 +microphone is clipping because my OBS setup + +00:42:44.060 --> 00:42:44.440 +sometimes is a little bit janky. + +00:42:45.720 --> 00:42:46.080 +But I'm going to try to read the questions + +00:42:47.280 --> 00:42:47.780 +for now. It's tipping, + +00:42:51.660 --> 00:42:51.980 +I can hear you okay. Okay, + +00:42:53.940 --> 00:42:54.400 +so bear with the clicking, + +00:42:56.080 --> 00:42:56.480 +we'll switch as soon as possible to Stefan + +00:42:57.800 --> 00:42:58.080 +reading the question, but I'll read the first + +00:43:02.320 --> 00:43:02.820 +1. Can you tell us some about your, + +00:43:03.880 --> 00:43:04.340 +can you tell us some more I assume, + +00:43:05.720 --> 00:43:06.160 +about your background with Emacs development + +00:43:07.000 --> 00:43:07.500 +and programming in general, + +00:43:08.720 --> 00:43:09.220 +your professional work possibly? + +00:43:15.060 --> 00:43:15.440 +Yeah, sure. Okay, I studied computer science + +00:43:19.760 --> 00:43:19.960 +at university. I started programming on a + +00:43:23.800 --> 00:43:23.960 +Commodore 64. I started with BASIC and then I + +00:43:26.380 --> 00:43:26.880 +did a couple of versions of BASIC as a kid. + +00:43:31.340 --> 00:43:31.540 +But then really things took off when I + +00:43:33.740 --> 00:43:34.240 +started using GNU Linux. + +00:43:35.320 --> 00:43:35.580 +I can't remember which year, + +00:43:36.940 --> 00:43:37.440 +maybe it was early 2000, + +00:43:39.240 --> 00:43:39.740 +something like that, late. + +00:43:41.580 --> 00:43:42.080 +No, it must've been before that actually, + +00:43:43.620 --> 00:43:44.120 +because I remember I was 14. + +00:43:45.520 --> 00:43:46.020 +Yeah, okay, so let's say 1999, + +00:43:48.220 --> 00:43:48.720 +1998, somewhere there around. + +00:43:49.740 --> 00:43:50.200 +Then I started with Perl, + +00:43:52.120 --> 00:43:52.620 +and I did Perl for a good long while. + +00:43:54.960 --> 00:43:55.460 +I learned C++, I learned C, + +00:43:56.640 --> 00:43:56.960 +I did all kinds of stuff, + +00:43:58.140 --> 00:43:58.640 +and then I went to university, + +00:44:01.220 --> 00:44:01.700 +computer science, and I've been working, + +00:44:03.480 --> 00:44:03.980 +you know, in various roles. + +00:44:05.800 --> 00:44:06.300 +Right now, I'm coding Python. + +00:44:09.140 --> 00:44:09.640 +Up until last Friday, I was writing firmware + +00:44:11.819 --> 00:44:12.319 +in C for a small microcontroller, + +00:44:15.200 --> 00:44:15.600 +which is pretty different than writing + +00:44:16.560 --> 00:44:17.060 +Python, that's for sure. + +00:44:19.280 --> 00:44:19.600 +So yeah, so that's a little bit about me. + +00:44:21.360 --> 00:44:21.860 +I got interested in free software, + +00:44:24.280 --> 00:44:24.720 +you know, also at a very young age. + +00:44:26.140 --> 00:44:26.320 +So, I mean, I've been following these, + +00:44:28.940 --> 00:44:29.120 +you know, ideological discussions and + +00:44:31.160 --> 00:44:31.560 +debates, read all this stuff by Richard + +00:44:33.620 --> 00:44:33.940 +Stallman and so on and so forth. + +00:44:37.500 --> 00:44:37.760 +But yeah, that's it. Great, + +00:44:40.680 --> 00:44:41.120 +thank you. I'll move on to the next question. + +00:44:42.640 --> 00:44:42.980 +You'll have to listen to me because if I + +00:44:44.680 --> 00:44:45.020 +start sharing my screen again, + +00:44:45.820 --> 00:44:46.320 +we're going to get some clicks. + +00:44:50.380 --> 00:44:50.680 +So the question. Do you think that 1 day + +00:44:53.914 --> 00:44:53.930 +there will be a native I'll start again, + +00:44:54.065 --> 00:44:54.079 +sorry. Do you think that 1 day there will be + +00:44:54.140 --> 00:44:54.440 +a native... I'll start again, + +00:44:56.380 --> 00:44:56.480 +sorry. Do you think that 1 day there will be + +00:44:58.840 --> 00:44:59.020 +a native graphical web browser in Emacs or is + +00:45:00.340 --> 00:45:00.540 +it kind of against its philosophy and + +00:45:03.320 --> 00:45:03.820 +architecture? So will we stick just with EWW + +00:45:06.300 --> 00:45:06.800 +and EAF or similar workaround tricks? + +00:45:10.840 --> 00:45:11.200 +So if, I don't know if people have seen, + +00:45:12.240 --> 00:45:12.740 +there is a talk by, I think, + +00:45:14.820 --> 00:45:15.080 +Perry Metzger, is that the name? + +00:45:16.300 --> 00:45:16.800 +Sorry if I got the name wrong. + +00:45:17.860 --> 00:45:18.360 +Perry Metzger, I think. + +00:45:20.660 --> 00:45:20.800 +It's like, he marks a text editor for the + +00:45:22.360 --> 00:45:22.640 +next 40 years. He makes an excellent point + +00:45:24.440 --> 00:45:24.720 +there that 1 of the things that we need to do + +00:45:27.720 --> 00:45:27.840 +is really get a proper HTML rendering in + +00:45:29.900 --> 00:45:30.260 +Emacs. It's like a dream at this point. + +00:45:32.000 --> 00:45:32.200 +No 1 is actively working on something like + +00:45:33.960 --> 00:45:34.240 +that. I think that, you know, + +00:45:35.980 --> 00:45:36.380 +there, first of all, you'd need to rewrite + +00:45:39.020 --> 00:45:39.520 +the display engine. So that's a big job. + +00:45:40.920 --> 00:45:41.140 +It is. I'm not saying, + +00:45:42.040 --> 00:45:42.540 +you know, it can't be done, + +00:45:44.160 --> 00:45:44.660 +but you need to start there. + +00:45:47.300 --> 00:45:47.560 +Right? Second of all, you need to think + +00:45:50.080 --> 00:45:50.460 +about, you know, with all the Emacs Lisp code + +00:45:51.820 --> 00:45:52.090 +out there, is really assuming, + +00:45:54.760 --> 00:45:54.960 +you know, 1 paradigm, which is that you have + +00:45:57.640 --> 00:45:57.720 +a square, and basically you have columns and + +00:45:59.480 --> 00:45:59.760 +you have rows, and everything is in there, + +00:46:01.860 --> 00:46:02.360 +even images, is basically in a column, + +00:46:04.240 --> 00:46:04.740 +you know, in a column on a row somewhere. + +00:46:07.120 --> 00:46:07.360 +Whereas, you know, when you just start doing + +00:46:09.280 --> 00:46:09.780 +the more web stuff and web rendering, + +00:46:11.520 --> 00:46:12.020 +you already have like a seaplane. + +00:46:14.340 --> 00:46:14.500 +You have different types of geometries that + +00:46:16.720 --> 00:46:16.880 +are possible. And what does it mean to go to + +00:46:19.200 --> 00:46:19.370 +the logical next line in that kind of sense? + +00:46:21.100 --> 00:46:21.420 +I mean these types of things I'm not saying + +00:46:23.260 --> 00:46:23.440 +it can't be done. I'm saying there are there + +00:46:27.260 --> 00:46:27.440 +are definitely some challenges there It would + +00:46:30.020 --> 00:46:30.280 +be amazing I mean, but we need someone with + +00:46:32.520 --> 00:46:33.020 +you know, the inclination and talent I think + +00:46:37.280 --> 00:46:37.680 +to work on that's a job posting if I've ever + +00:46:40.080 --> 00:46:40.200 +had 1. So good luck to whoever's willing to + +00:46:41.600 --> 00:46:42.100 +apply for this 1. I think it's a tough 1. + +00:46:45.940 --> 00:46:46.440 +It is, yes. Go on. Okay, + +00:46:47.860 --> 00:46:48.040 +do you happen to have the questions in front + +00:46:50.160 --> 00:46:50.320 +of you? Can I just read them to you so that + +00:46:52.160 --> 00:46:52.660 +you can also have a feedback in front of you? + +00:46:56.180 --> 00:46:56.680 +Yes, I have the pad here. + +00:46:58.580 --> 00:46:58.860 +Okay, cool. So I'll read the next question + +00:47:00.060 --> 00:47:00.260 +and this way I don't have to worry too much + +00:47:02.160 --> 00:47:02.320 +about me butchering every word in the + +00:47:04.340 --> 00:47:04.540 +sentence. So, Emacs development and + +00:47:06.300 --> 00:47:06.460 +communication still is very much focused on + +00:47:08.300 --> 00:47:08.640 +email mailing lists. I like this, + +00:47:10.120 --> 00:47:10.380 +but what do you think about introducing other + +00:47:11.820 --> 00:47:12.320 +channels for talking to users, + +00:47:14.980 --> 00:47:15.140 +like the Emacs project community could set up + +00:47:16.880 --> 00:47:17.120 +a master on instance of its own, + +00:47:19.780 --> 00:47:20.280 +for instance? I think from the point of view + +00:47:21.500 --> 00:47:21.760 +of the Emacs core team, + +00:47:23.680 --> 00:47:23.860 +we don't really have a lot of resources or + +00:47:25.760 --> 00:47:25.960 +people inclined to be working on stuff like + +00:47:27.700 --> 00:47:27.880 +that. But I mean, there is so much going on. + +00:47:28.860 --> 00:47:29.360 +Emacs is a very, you know, + +00:47:32.080 --> 00:47:32.580 +It's a big community, frankly, + +00:47:34.000 --> 00:47:34.500 +right? So people working on emacs.com, + +00:47:36.900 --> 00:47:37.400 +there are people in the IRC channel, + +00:47:38.700 --> 00:47:39.200 +the emacs IRC channel, + +00:47:40.320 --> 00:47:40.820 +there's the emacs subreddit. + +00:47:42.780 --> 00:47:43.280 +And I mean, people are doing an incredible + +00:47:45.280 --> 00:47:45.480 +job. And I think if people wanna do more + +00:47:46.359 --> 00:47:46.400 +stuff like that, I mean, + +00:47:48.340 --> 00:47:48.840 +Don't wait for Argo, just go for it. + +00:47:54.000 --> 00:47:54.340 +Great. Moving on to the next question. + +00:47:56.400 --> 00:47:56.520 +Sorry, I'm not commenting anymore because we + +00:47:58.080 --> 00:47:58.180 +have so many questions and I'd love for you + +00:48:00.060 --> 00:48:00.260 +to answer as many people as possible because + +00:48:02.040 --> 00:48:02.540 +we have about 6 minutes technically, + +00:48:04.320 --> 00:48:04.820 +but we can go perhaps a little bit over. + +00:48:05.860 --> 00:48:06.220 +If you have the time, Stefan, + +00:48:08.180 --> 00:48:08.680 +though. Yeah. Okay, great. + +00:48:11.000 --> 00:48:11.140 +What are some features or packages you'd like + +00:48:12.040 --> 00:48:12.540 +to see developed by the community? + +00:48:15.060 --> 00:48:15.560 +We've already talked about the native HTTP + +00:48:17.120 --> 00:48:17.620 +display, but do you have any others? + +00:48:21.580 --> 00:48:22.080 +So, I mean, developed by the community, + +00:48:23.040 --> 00:48:23.240 +it depends what you mean. + +00:48:27.280 --> 00:48:27.720 +So do you mean sending stuff that people + +00:48:29.220 --> 00:48:29.720 +could be working on in general? + +00:48:32.820 --> 00:48:33.320 +I think for now, like let's say the roadmap, + +00:48:34.960 --> 00:48:35.140 +I'll just give some of the things that I + +00:48:36.820 --> 00:48:36.940 +think should happen right now and that I + +00:48:38.720 --> 00:48:39.060 +would love for people to send patches for. + +00:48:40.920 --> 00:48:41.120 +That's what I'm gonna be answering because + +00:48:42.360 --> 00:48:42.860 +that's what I think I can answer. + +00:48:44.720 --> 00:48:45.220 +Tree-sitter is a new thing, + +00:48:48.120 --> 00:48:48.620 +right? Improving and working on new modes + +00:48:49.540 --> 00:48:50.040 +for, you know, TreeSitter, + +00:48:52.360 --> 00:48:52.860 +it's not very hard. I think many people get + +00:48:55.400 --> 00:48:55.560 +into it and make sure to integrate them in + +00:48:57.040 --> 00:48:57.540 +Emacs core. I think that would be, + +00:48:59.700 --> 00:49:00.140 +I mean, on my wishlist. + +00:49:01.820 --> 00:49:01.960 +The other thing that is that we've asked for + +00:49:03.260 --> 00:49:03.740 +someone perhaps with a little bit more + +00:49:05.800 --> 00:49:05.940 +experience, I think, but working on + +00:49:08.880 --> 00:49:09.080 +refactoring capabilities in Emacs and a more + +00:49:11.100 --> 00:49:11.320 +general framework, I think, + +00:49:13.180 --> 00:49:13.680 +for that. There are probably many more ideas + +00:49:14.900 --> 00:49:15.300 +that I could give people, + +00:49:17.420 --> 00:49:17.720 +but those would be the 2 big ones, + +00:49:19.640 --> 00:49:20.140 +I think, that are also very uncontroversial. + +00:49:23.460 --> 00:49:23.960 +It's funny because for me, + +00:49:26.580 --> 00:49:26.760 +I don't think refactoring would count as a + +00:49:29.260 --> 00:49:29.760 +feature, but it's so vital to allowing + +00:49:31.280 --> 00:49:31.780 +further features to be developed. + +00:49:33.940 --> 00:49:34.160 +Otherwise, I remember the way Org Mode used + +00:49:36.020 --> 00:49:36.300 +to be before we had Org Element and stuff + +00:49:38.680 --> 00:49:38.940 +like this. It was really complicated to write + +00:49:40.920 --> 00:49:41.200 +any kind of parsing stuff for it. + +00:49:42.100 --> 00:49:42.340 +And now that we've got it, + +00:49:43.580 --> 00:49:44.080 +it just opened up a world of possibility + +00:49:45.920 --> 00:49:46.160 +where parsing an Org Mode file is just made + +00:49:47.920 --> 00:49:48.280 +so much easier. So I think that's a wonderful + +00:49:49.120 --> 00:49:49.620 +answer because it goes, + +00:49:51.780 --> 00:49:52.080 +it's multi-layered as you would expect from + +00:49:53.420 --> 00:49:53.920 +something that concerns the whole of Emacs. + +00:49:56.660 --> 00:49:57.160 +Moving on to the next question. + +00:49:59.600 --> 00:49:59.960 +What is the hardest decision being made + +00:50:02.240 --> 00:50:02.480 +within Emacs dev for the last 3 years. + +00:50:04.760 --> 00:50:04.960 +I'm not sure, is it the decision in the last + +00:50:07.340 --> 00:50:07.480 +3 years or I'll let you interpret the + +00:50:08.260 --> 00:50:08.760 +question however you want. + +00:50:10.460 --> 00:50:10.960 +Okay, well, I'll say this. + +00:50:13.940 --> 00:50:14.220 +I started in August and I haven't had any + +00:50:16.480 --> 00:50:16.920 +really hard decisions so far. + +00:50:20.360 --> 00:50:20.540 +So good news. Maybe Eli will have more for + +00:50:22.320 --> 00:50:22.820 +the last 3 years. Keep it simple. + +00:50:28.160 --> 00:50:28.660 +Thanks. Cool. Next question. + +00:50:31.420 --> 00:50:31.920 +Any plans to integrate XWM into core? + +00:50:33.900 --> 00:50:34.400 +Emacs is a really good Winters manager. + +00:50:37.580 --> 00:50:38.080 +That's super cool. I think EXWM is cool. + +00:50:39.640 --> 00:50:40.140 +I think they need to upgrade to Wayland + +00:50:41.580 --> 00:50:41.880 +somehow and that's not clear yet, + +00:50:44.600 --> 00:50:44.880 +but you know, we don't have any current plans + +00:50:48.400 --> 00:50:48.900 +to integrate it, no. Right, + +00:50:51.180 --> 00:50:51.600 +Next question. Do you think it is a good idea + +00:50:53.040 --> 00:50:53.540 +to choose Org Mode for writing documentation + +00:50:57.260 --> 00:50:57.740 +instead of tech info? I think that whatever + +00:50:59.440 --> 00:50:59.680 +we do, it should be the people that are + +00:51:01.520 --> 00:51:01.760 +working on the documentation that should make + +00:51:03.240 --> 00:51:03.420 +that choice. Currently we have, + +00:51:05.740 --> 00:51:05.920 +I think, Modus themes and Org Mode itself is + +00:51:07.560 --> 00:51:08.060 +writing their documentation in Org Mode, + +00:51:10.440 --> 00:51:10.940 +that's fine by me. It has some drawbacks, + +00:51:12.940 --> 00:51:13.440 +it has some benefits, but most documentation + +00:51:14.340 --> 00:51:14.840 +is still in tech info. + +00:51:17.120 --> 00:51:17.360 +Maybe we'd need to replace that at some + +00:51:19.600 --> 00:51:19.840 +point, I don't know. But for now, + +00:51:21.960 --> 00:51:22.280 +that's what people know and use. + +00:51:24.140 --> 00:51:24.280 +And if you find that as a barrier to + +00:51:25.440 --> 00:51:25.600 +contribute to Emacs, I mean, + +00:51:26.920 --> 00:51:27.420 +just really write it as plain text. + +00:51:28.940 --> 00:51:29.380 +We'll be happy to help you with the markup. + +00:51:30.140 --> 00:51:30.280 +It's a little bit, you know, + +00:51:31.260 --> 00:51:31.760 +finicky and stuff like that. + +00:51:34.560 --> 00:51:35.060 +Great. Thanks for that. + +00:51:37.900 --> 00:51:38.000 +Next question. What do you plan to work on in + +00:51:38.860 --> 00:51:39.360 +Emacs Core in the future? + +00:51:42.440 --> 00:51:42.660 +I'm a little bit hesitant to reply to that. + +00:51:43.280 --> 00:51:43.740 +Of course I have ideas. + +00:51:45.360 --> 00:51:45.760 +Of course there are projects that I'm working + +00:51:47.360 --> 00:51:47.640 +on. However, if I say it here, + +00:51:48.280 --> 00:51:48.480 +I feel like, you know, + +00:51:50.740 --> 00:51:51.240 +then you'll hold me to it later and come ask, + +00:51:51.980 --> 00:51:52.480 +where is that feature? + +00:51:54.940 --> 00:51:55.180 +So I'll just say there is plenty of stuff + +00:51:57.100 --> 00:51:57.340 +that I'm working on, and if you want to know + +00:51:58.520 --> 00:51:58.780 +some of the stuff that I have been working + +00:51:59.540 --> 00:52:00.040 +on, check the Git log. + +00:52:02.240 --> 00:52:02.400 +I think that's just really as much as I want + +00:52:04.540 --> 00:52:05.040 +to say about that right now. + +00:52:07.180 --> 00:52:07.360 +You've added folks to just look at the path + +00:52:09.120 --> 00:52:09.620 +with the changelog and that's all you need. + +00:52:12.840 --> 00:52:13.340 +All right, moving on to the next question. + +00:52:15.880 --> 00:52:16.120 +What do you use Emacs for in your life other + +00:52:17.080 --> 00:52:17.580 +than working on Emacs itself? + +00:52:20.560 --> 00:52:21.060 +Oh shit. So the big thing is programming, + +00:52:23.520 --> 00:52:24.020 +right? Now I work as a programmer. + +00:52:28.780 --> 00:52:29.280 +But in general, I use org mode heavily. + +00:52:30.280 --> 00:52:30.780 +I use it for all my writing. + +00:52:32.960 --> 00:52:33.460 +I use it to write, prepare this talk. + +00:52:34.860 --> 00:52:35.360 +I use it as a productivity system. + +00:52:41.480 --> 00:52:41.980 +I use it for emails. I use it as an RSS + +00:52:43.980 --> 00:52:44.480 +reader. I do most of my computing. + +00:52:46.840 --> 00:52:47.040 +I also have Firefox. So it's like Emacs and + +00:52:48.320 --> 00:52:48.820 +Firefox for some reason. + +00:52:51.740 --> 00:52:51.900 +I do read documentation in Emacs as well in + +00:52:57.940 --> 00:52:58.440 +you, but yeah. Great. I'm still, + +00:53:00.540 --> 00:53:00.720 +I do very much the same thing with you. + +00:53:01.880 --> 00:53:02.040 +Like You've described exactly what I do. + +00:53:02.560 --> 00:53:02.960 +I work as a programmer, + +00:53:04.340 --> 00:53:04.640 +I use Augment for a lot of stuff, + +00:53:06.220 --> 00:53:06.340 +and I think that describes a whole lot of + +00:53:07.600 --> 00:53:08.100 +people currently watching the stream. + +00:53:10.180 --> 00:53:10.680 +Moving on to the next question. + +00:53:12.540 --> 00:53:12.740 +What could we do in order to make Emacs more + +00:53:13.780 --> 00:53:14.280 +attractive for younger users? + +00:53:17.440 --> 00:53:17.940 +This is an amazing question and I feel wholly + +00:53:20.220 --> 00:53:20.720 +unprepared to answer this. + +00:53:23.680 --> 00:53:24.180 +Probably more introductory material aimed at + +00:53:26.180 --> 00:53:26.580 +that age group. What do you mean by younger + +00:53:28.580 --> 00:53:28.740 +users? You know what would be really cool if + +00:53:30.240 --> 00:53:30.740 +you had an Emacs for kids project? + +00:53:31.560 --> 00:53:32.060 +That would be amazing. + +00:53:34.640 --> 00:53:34.920 +I'm not sure if that's what people are + +00:53:36.380 --> 00:53:36.880 +thinking about, but yeah, + +00:53:39.280 --> 00:53:39.780 +that's about what I can say for now. + +00:53:43.000 --> 00:53:43.320 +Good question. It is a very good question, + +00:53:45.760 --> 00:53:45.880 +like it comes back always to a key topic in + +00:53:47.480 --> 00:53:47.720 +EmacsConf, which is, how do we get more + +00:53:49.040 --> 00:53:49.360 +people to join us? Because it's a wonderful + +00:53:51.560 --> 00:53:51.760 +community. And how do we onboard people who + +00:53:53.720 --> 00:53:54.220 +are not programmers or people who are younger + +00:53:56.220 --> 00:53:56.720 +than the average Joe coming in those + +00:54:01.240 --> 00:54:01.560 +meetings? There's this Excellent article by + +00:54:05.460 --> 00:54:05.960 +Paul Graham, I think, where he was describing + +00:54:08.640 --> 00:54:09.140 +how they used Emacs as the sort of customer + +00:54:11.120 --> 00:54:11.520 +service system. They built the customer + +00:54:13.440 --> 00:54:13.940 +service system for the early days of Amazon + +00:54:17.080 --> 00:54:17.200 +in Emacs Lisp. And then they switched and all + +00:54:18.280 --> 00:54:18.680 +the employees were sad. + +00:54:21.480 --> 00:54:21.680 +So definitely there's more stuff that could + +00:54:24.660 --> 00:54:25.160 +be done in Emacs and be done better in Emacs. + +00:54:27.240 --> 00:54:27.440 +So for sure, if people want to explore more + +00:54:28.380 --> 00:54:28.880 +stuff like that, that's amazing. + +00:54:31.560 --> 00:54:32.040 +Yeah. And for people who weren't around + +00:54:33.540 --> 00:54:33.740 +earlier today, we've had a presentation about + +00:54:36.320 --> 00:54:36.820 +how to get computer science students to use + +00:54:40.900 --> 00:54:41.100 +Emacs and trying to provide as much + +00:54:43.200 --> 00:54:43.500 +information and as much tutorial as needed + +00:54:45.060 --> 00:54:45.480 +for them to understand what is the philosophy + +00:54:47.980 --> 00:54:48.420 +behind Emacs and how it influences the way + +00:54:49.300 --> 00:54:49.540 +you work and so forth. + +00:54:51.000 --> 00:54:51.420 +So you might want to revisit this discussion. + +00:54:53.100 --> 00:54:53.400 +And we also have plenty of talks talking + +00:54:57.540 --> 00:54:57.720 +about this issue. And I can just add that I + +00:55:00.220 --> 00:55:00.320 +think it's very important for us as a + +00:55:02.880 --> 00:55:03.120 +community to just be enthusiastic to get more + +00:55:04.400 --> 00:55:04.640 +people involved. Because I mean, + +00:55:06.260 --> 00:55:06.660 +look, there's this meme where it's like, + +00:55:08.300 --> 00:55:08.620 +I use Arch Linux, by the way, + +00:55:09.520 --> 00:55:10.020 +I use Arch, by the way. + +00:55:12.160 --> 00:55:12.380 +And for some reason, people using Arch keep + +00:55:13.580 --> 00:55:14.080 +telling you that they're using Arch. + +00:55:15.860 --> 00:55:16.160 +That's fine. Use whatever you want. + +00:55:17.760 --> 00:55:18.260 +It's free software, I don't care. + +00:55:21.500 --> 00:55:21.900 +I think if you look at Vim users, + +00:55:22.940 --> 00:55:23.440 +they're very almost militant, + +00:55:25.280 --> 00:55:25.780 +oh, we're Vim, and Vim is the thing. + +00:55:26.980 --> 00:55:27.480 +And Emacs users sometimes, + +00:55:29.540 --> 00:55:29.960 +and it's fine. We take a bit of a more + +00:55:30.860 --> 00:55:31.160 +laid-back approach. We're like, + +00:55:32.400 --> 00:55:32.720 +yeah, I use Emacs, you use Vim, + +00:55:35.080 --> 00:55:35.320 +whatever. And that's fine. + +00:55:36.460 --> 00:55:36.820 +I mean, that's the correct approach, + +00:55:38.300 --> 00:55:38.480 +I think. You should respect what people want + +00:55:40.520 --> 00:55:40.840 +to use. I don't care that people use VS Code + +00:55:42.380 --> 00:55:42.540 +or whatever. I'm not going to use that + +00:55:43.520 --> 00:55:43.940 +because it's too limiting. + +00:55:45.280 --> 00:55:45.780 +It's not really a workable environment. + +00:55:48.120 --> 00:55:48.620 +But I think it's OK to be enthusiastic. + +00:55:51.180 --> 00:55:51.360 +I think it's okay to talk about that type of + +00:55:53.600 --> 00:55:54.100 +enthusiasm and anything that can help + +00:55:56.600 --> 00:55:56.880 +increase the enthusiasm around Emacs can only + +00:56:00.600 --> 00:56:01.100 +help the longevity of Emacs. + +00:56:04.080 --> 00:56:04.280 +I agree and that's also 1 of the key + +00:56:04.840 --> 00:56:05.340 +objectives of EmacsConf. + +00:56:07.280 --> 00:56:07.660 +It's about bringing a lot of amazing people + +00:56:08.600 --> 00:56:09.100 +to come talk, like you, + +00:56:10.920 --> 00:56:11.400 +about stuff that is very dear to you. + +00:56:13.740 --> 00:56:14.180 +And it's very tangible how much you care, + +00:56:15.540 --> 00:56:15.920 +all of you, about what you're presenting. + +00:56:18.340 --> 00:56:18.560 +And it's amazing to put all of you people on + +00:56:20.640 --> 00:56:20.800 +just 48 hours talking about all of this and + +00:56:22.720 --> 00:56:22.920 +then creating so much content for people to + +00:56:24.280 --> 00:56:24.480 +watch. And I think it's really helping the + +00:56:27.900 --> 00:56:28.140 +enthusiasm to live on and to gather a little + +00:56:29.160 --> 00:56:29.660 +more snow as it comes down. + +00:56:31.440 --> 00:56:31.720 +Yeah, I watch you Max Conf every year. + +00:56:32.960 --> 00:56:33.460 +I think it's a lot of fun. + +00:56:37.120 --> 00:56:37.360 +Thank you. I'll take the compliment for + +00:56:38.120 --> 00:56:38.620 +everyone else in the team. + +00:56:40.960 --> 00:56:41.120 +We're going to go a little bit longer with + +00:56:42.720 --> 00:56:42.800 +the Q&A because we still have a lot of + +00:56:44.380 --> 00:56:44.480 +questions and if Stéphane is still willing to + +00:56:47.860 --> 00:56:48.160 +answer, I'm still willing to not go too bad + +00:56:49.540 --> 00:56:49.740 +to hear a lot more of it. + +00:56:50.140 --> 00:56:50.580 +Yeah, for me it's fine. + +00:56:55.580 --> 00:56:55.760 +I have time. Great. So I think I've done this + +00:56:56.960 --> 00:56:57.460 +question. So, all right. + +00:56:59.820 --> 00:57:00.060 +How are we going to make sure that a cool + +00:57:01.760 --> 00:57:01.960 +idea is going to pass it through for the next + +00:57:03.600 --> 00:57:04.100 +generation, let's say 20 years later, + +00:57:05.540 --> 00:57:05.860 +the generation still have the good knowledge + +00:57:09.600 --> 00:57:09.940 +we have today. Yeah, so I mean, + +00:57:12.440 --> 00:57:12.840 +if you think about what does EMAX need to + +00:57:14.880 --> 00:57:15.180 +have staying power, so in general, + +00:57:16.840 --> 00:57:17.020 +they say, you know, if if when you start a + +00:57:18.900 --> 00:57:19.340 +company, if you have a company for 1 year, + +00:57:19.900 --> 00:57:20.220 +then in all likelihood, + +00:57:21.560 --> 00:57:21.820 +you're going to have it for 2 years because, + +00:57:23.320 --> 00:57:23.680 +you know, it's just so if you've had Emacs + +00:57:25.760 --> 00:57:25.840 +for 4 years, I'm saying that we're going to + +00:57:27.520 --> 00:57:27.980 +have Emacs for the next 4 years as well. + +00:57:30.200 --> 00:57:30.540 +Just based on that, I'm not sure the logic + +00:57:31.700 --> 00:57:32.200 +holds up, but you know, + +00:57:33.820 --> 00:57:34.320 +how does Emacs stay relevant? + +00:57:35.120 --> 00:57:35.500 +I think is the question. + +00:57:37.900 --> 00:57:38.400 +Well, I think we need to continue working on + +00:57:41.540 --> 00:57:41.840 +all the types of exploratory work that people + +00:57:43.360 --> 00:57:43.820 +are doing in the community. + +00:57:45.460 --> 00:57:45.720 +I think there is fundamental stuff that needs + +00:57:47.440 --> 00:57:47.720 +to be done. I mean, if people want to work + +00:57:49.000 --> 00:57:49.400 +on, you know, web rendering and Emacs, + +00:57:50.060 --> 00:57:50.240 +maybe that's the next, + +00:57:53.000 --> 00:57:53.240 +you know, revolutionary step that we need + +00:57:55.020 --> 00:57:55.320 +that could, you know, really showcase what + +00:57:57.380 --> 00:57:57.640 +Emacs, you know, as, you know, + +00:58:00.140 --> 00:58:00.620 +an idea, even if not Emacs as a software + +00:58:01.680 --> 00:58:01.960 +could be and, you know, + +00:58:04.600 --> 00:58:05.000 +Because there is huge potential in the idea + +00:58:06.600 --> 00:58:07.100 +as such. So maybe that's something. + +00:58:09.340 --> 00:58:09.600 +But I mean, from the point of view of core + +00:58:11.380 --> 00:58:11.840 +development, I think we need to just continue + +00:58:14.540 --> 00:58:15.040 +working on the fundamental technologies. + +00:58:17.760 --> 00:58:17.980 +1 thing that I would like to eventually see + +00:58:19.200 --> 00:58:19.700 +is a better garbage collector. + +00:58:22.020 --> 00:58:22.280 +We've talked about that for a long time, + +00:58:24.640 --> 00:58:25.140 +but I mean, we need someone to do the job + +00:58:27.720 --> 00:58:27.980 +really. It's not very easy. + +00:58:29.280 --> 00:58:29.780 +It's very hard, actually. + +00:58:33.780 --> 00:58:34.000 +So just continues working on stuff like that, + +00:58:34.680 --> 00:58:35.180 +continue with the exploration, + +00:58:39.860 --> 00:58:40.260 +continue using and being excited about Emacs. + +00:58:42.980 --> 00:58:43.180 +I think that's the best guarantee that we + +00:58:45.480 --> 00:58:45.800 +have. Yeah, and perhaps to echo something + +00:58:46.280 --> 00:58:46.780 +that you said earlier, + +00:58:47.580 --> 00:58:47.960 +the tools that you're using, + +00:58:49.540 --> 00:58:49.920 +like the emails, they've been around forever, + +00:58:50.600 --> 00:58:51.100 +they will be around forever. + +00:58:53.320 --> 00:58:53.480 +This pragmatic stance on the tools that + +00:58:56.120 --> 00:58:56.240 +you're using, they might look stayed from the + +00:58:58.380 --> 00:58:58.880 +outside, but ultimately they are what permits + +00:59:01.780 --> 00:59:02.280 +a sense of longevity to any kind of project + +00:59:05.200 --> 00:59:05.460 +you embark upon. Also, + +00:59:06.760 --> 00:59:07.260 +in a sense, I think that the expectations + +00:59:09.140 --> 00:59:09.320 +might be changing in the sense that, + +00:59:12.320 --> 00:59:12.820 +you know, when I started using GNU Linux, + +00:59:14.580 --> 00:59:15.060 +you know what the first thing I did was, + +00:59:16.560 --> 00:59:16.960 +because I couldn't get Xorg to run. + +00:59:18.840 --> 00:59:19.040 +So the first thing you had to do was you had + +00:59:20.440 --> 00:59:20.820 +to compile your own Linux kernel. + +00:59:22.800 --> 00:59:22.960 +So you sit there and make manuconfig and + +00:59:24.640 --> 00:59:24.880 +you'll like, try to read it and you've never + +00:59:25.840 --> 00:59:26.320 +done anything like this before. + +00:59:27.440 --> 00:59:27.800 +You know, I was just a kid. + +00:59:29.340 --> 00:59:29.540 +I had never been at this kind of, + +00:59:31.360 --> 00:59:31.560 +you know, whatever. So I had to start with + +00:59:33.740 --> 00:59:34.200 +that. And then you have to write the X or + +00:59:35.820 --> 00:59:36.100 +configuration file. And I had the patience + +00:59:36.600 --> 00:59:37.100 +for that. But nowadays, + +00:59:38.100 --> 00:59:38.600 +people have different expectations. + +00:59:39.960 --> 00:59:40.460 +You just install something, + +00:59:42.600 --> 00:59:42.720 +and it works. And we need to keep that in + +00:59:45.100 --> 00:59:45.280 +mind as well. So that's why I keep pushing as + +00:59:48.220 --> 00:59:48.720 +1 of my big things. We need to build a more + +00:59:50.920 --> 00:59:51.180 +cohesive experience out of the box. + +00:59:52.040 --> 00:59:52.540 +Of course, that can be customizable. + +00:59:55.080 --> 00:59:55.240 +You shouldn't shoehorn anything in just for + +00:59:58.260 --> 00:59:58.760 +the sake of it. But you could get some things + +01:00:00.420 --> 01:00:00.920 +a little bit more for free. + +01:00:02.860 --> 01:00:03.080 +And maybe some of us that have our own + +01:00:04.640 --> 01:00:04.780 +configs and we've been doing this for you + +01:00:07.220 --> 01:00:07.720 +know, 2, 05:10, even 20 years, + +01:00:09.480 --> 01:00:09.660 +we could also see, you know, + +01:00:11.400 --> 01:00:11.640 +from the point of view of a new user that + +01:00:13.440 --> 01:00:13.780 +just installs VS Code and then they click, + +01:00:15.420 --> 01:00:15.680 +yes I use Python, yes I use that, + +01:00:18.340 --> 01:00:18.840 +and then it just automatically works. + +01:00:20.280 --> 01:00:20.600 +You know what I mean? I mean, + +01:00:24.020 --> 01:00:24.140 +then could we get closer to that perhaps a + +01:00:25.560 --> 01:00:26.060 +little bit? I think that would also help. + +01:00:28.500 --> 01:00:28.700 +Yeah, I think that's what we call the + +01:00:30.280 --> 01:00:30.580 +configuration wizard. And we were talking + +01:00:32.440 --> 01:00:32.520 +about this, I think, a couple of years ago at + +01:00:34.000 --> 01:00:34.200 +EmacsConf. I can't remember if it was with + +01:00:35.380 --> 01:00:35.740 +Adam in the chat. Adam, + +01:00:37.760 --> 01:00:38.240 +I mean Alpha Papa, or if it was with Bastien, + +01:00:40.200 --> 01:00:40.440 +but I remember the idea cropping off. + +01:00:42.380 --> 01:00:42.520 +Like, it's either you get a tutorial for + +01:00:43.240 --> 01:00:43.520 +Emacs, a proper tutorial, + +01:00:45.140 --> 01:00:45.640 +or you get a wizard, or you get both, + +01:00:47.160 --> 01:00:47.520 +and then all is right for the world. + +01:00:48.920 --> 01:00:49.420 +But definitely cool ideas being evoked. + +01:00:52.120 --> 01:00:52.280 +I'm gonna say I need to decree the time when + +01:00:53.940 --> 01:00:54.440 +we finish because for me it is 11.15 + +01:00:59.060 --> 01:00:59.300 +p.m. And I think my co-organizers are also + +01:01:01.440 --> 01:01:01.680 +willing to end the day and go rest because + +01:01:03.040 --> 01:01:03.540 +we've got another day to go tomorrow. + +01:01:05.920 --> 01:01:06.280 +So how about we take 3 minutes and 30 seconds + +01:01:07.800 --> 01:01:08.300 +to try to answer a little bit more succinctly + +01:01:09.520 --> 01:01:09.780 +the questions we've got left. + +01:01:10.440 --> 01:01:10.940 +How does that sound, Stefan? + +01:01:15.040 --> 01:01:15.200 +Sounds great. Cool, so I'll start reading the + +01:01:16.640 --> 01:01:17.140 +questions then that we've got left. + +01:01:20.680 --> 01:01:20.840 +So this 1 we've got. If you're willing to + +01:01:22.200 --> 01:01:22.360 +discuss it, what do you think about the + +01:01:24.520 --> 01:01:24.720 +recent controversy about use of CLLib in + +01:01:29.920 --> 01:01:29.980 +Emacs call code? Am I willing to discuss + +01:01:35.460 --> 01:01:35.960 +that? I have said my opinion on Emacs, + +01:01:40.080 --> 01:01:40.580 +Devel, I think. And I think I understand, + +01:01:44.540 --> 01:01:44.820 +I think, the viewpoints of both sides in that + +01:01:46.320 --> 01:01:46.720 +discussion. It is true that some things, + +01:01:49.060 --> 01:01:49.280 +I mean, we have to think about that. + +01:01:49.960 --> 01:01:50.340 +There is a real problem, + +01:01:53.300 --> 01:01:53.520 +I think, when we have 3 different APIs for + +01:01:54.640 --> 01:01:55.140 +doing the same thing in Emacs. + +01:01:56.580 --> 01:01:57.080 +And can we make that a little bit better? + +01:01:58.780 --> 01:01:59.280 +I mean, perhaps we could, + +01:02:03.840 --> 01:02:04.040 +right? So that's about as much as I'd like to + +01:02:06.560 --> 01:02:06.940 +say. Fair enough. I would have also accepted + +01:02:09.060 --> 01:02:09.160 +that CL loops are ugly to write and they + +01:02:09.840 --> 01:02:10.320 +don't feel very lispy. + +01:02:11.540 --> 01:02:12.040 +But I'll take your answer as well. + +01:02:14.860 --> 01:02:15.360 +Yeah, some people think that. + +01:02:17.900 --> 01:02:18.400 +I understand that position as well. + +01:02:20.720 --> 01:02:21.220 +Right. Okay, next question. + +01:02:22.600 --> 01:02:23.100 +When we find a bug in our Emacs, + +01:02:24.840 --> 01:02:25.200 +do we need to try to replicate it on our side + +01:02:26.380 --> 01:02:26.780 +version, on our SID version, + +01:02:29.040 --> 01:02:29.340 +sorry, then update all the usual list package + +01:02:31.320 --> 01:02:31.480 +we use, and if we succeed to replicate the + +01:02:33.160 --> 01:02:33.340 +bug in this version, only then go to + +01:02:34.920 --> 01:02:35.420 +development version 30 and do the same. + +01:02:37.480 --> 01:02:37.580 +Then only ask for assistance in reporting the + +01:02:40.080 --> 01:02:40.260 +bug we found. So I believe when they + +01:02:43.220 --> 01:02:43.540 +encounter a bug, are people supposed to go to + +01:02:47.220 --> 01:02:47.500 +master to pull main and just to make sure + +01:02:48.420 --> 01:02:48.740 +that they are on the latest version. + +01:02:49.480 --> 01:02:49.980 +Is this something that you require? + +01:02:51.460 --> 01:02:51.860 +We don't require that, + +01:02:54.440 --> 01:02:54.940 +but we do try to encourage you to reproduce + +01:02:56.880 --> 01:02:57.380 +it on master if we think that it matters. + +01:03:00.420 --> 01:03:00.920 +Yeah, so if you can, that's even better. + +01:03:03.540 --> 01:03:03.940 +But if the bug is there in Emacs 29, + +01:03:05.500 --> 01:03:06.000 +maybe we want to fix it in Emacs 29.2. + +01:03:09.320 --> 01:03:09.820 +So the latest point release is also fine. + +01:03:12.540 --> 01:03:12.940 +Bugs in Emacs 28 at this point, + +01:03:14.280 --> 01:03:14.780 +like the previous major version, + +01:03:17.560 --> 01:03:17.720 +we might ask you to try to reproduce it on + +01:03:19.400 --> 01:03:19.600 +Emacs 29 because we're not planning more + +01:03:21.200 --> 01:03:21.600 +releases of old major versions. + +01:03:23.160 --> 01:03:23.660 +So that's the fundamental reason for that. + +01:03:25.320 --> 01:03:25.820 +Great. Thank you for your answer. + +01:03:27.180 --> 01:03:27.680 +All right. Moving on to the next question. + +01:03:28.780 --> 01:03:29.280 +On branching off sub-threads, + +01:03:31.720 --> 01:03:31.840 +I note that they are less visible compared to + +01:03:32.880 --> 01:03:33.380 +starting a new thread in practice. + +01:03:35.440 --> 01:03:35.680 +I am wondering if it is just my impression or + +01:03:36.900 --> 01:03:37.400 +something devs also observe. + +01:03:39.280 --> 01:03:39.780 +Yeah, it's true. That's correct. + +01:03:42.660 --> 01:03:42.840 +I don't know what to do about it. + +01:03:43.660 --> 01:03:44.160 +If you want more visibility, + +01:03:45.420 --> 01:03:45.920 +I guess just start a new thread. + +01:03:48.480 --> 01:03:48.960 +I don't know. I can only agree, + +01:03:50.380 --> 01:03:50.880 +really. I concur. That's true. + +01:03:53.760 --> 01:03:54.260 +Okay. Next question. What about rewriting + +01:03:56.600 --> 01:03:57.100 +Emacs in Rust? Use Guile instead of Elisp. + +01:03:59.380 --> 01:03:59.580 +Multi-threaded Emacs. Make Emacs prettier and + +01:04:01.260 --> 01:04:01.760 +shiny. And of course, same defaults. + +01:04:04.120 --> 01:04:04.440 +Just kidding. We are spoiled children because + +01:04:07.280 --> 01:04:07.780 +you and Eli, Lars, and etc do an impressive + +01:04:10.120 --> 01:04:10.620 +work. I live in Emacs since 2001. + +01:04:13.980 --> 01:04:14.220 +Thanks. That was a good 1. + +01:04:17.380 --> 01:04:17.880 +Sane defaults. Okay, Well, + +01:04:20.080 --> 01:04:20.580 +thank you. Thanks for that comment. + +01:04:23.300 --> 01:04:23.440 +That made me chuckle. Next question by the + +01:04:24.060 --> 01:04:24.520 +same person, I assume. + +01:04:26.120 --> 01:04:26.580 +The only downside I see with copyright + +01:04:28.400 --> 01:04:28.900 +assignment is that 1 has to disclose their + +01:04:31.120 --> 01:04:31.240 +real identity. Would it be a possibility to + +01:04:32.360 --> 01:04:32.860 +assign a copyright under a nickname? + +01:04:34.640 --> 01:04:34.840 +Yeah, you don't have to say a real name. + +01:04:36.760 --> 01:04:37.260 +Just register some pseudonym. + +01:04:39.080 --> 01:04:39.440 +The FSF does need your real name, + +01:04:40.920 --> 01:04:41.420 +but that's kept private only. + +01:04:45.660 --> 01:04:45.920 +So feel free to reach out to assign at + +01:04:47.860 --> 01:04:48.360 +gnu.org and ask more about that. + +01:04:51.180 --> 01:04:51.680 +Right. All right, next question. + +01:04:53.240 --> 01:04:53.400 +Do you think it is possible to reach an + +01:04:54.880 --> 01:04:55.240 +agreement on sane defaults for better + +01:04:56.720 --> 01:04:57.220 +out-of-the-box experience? + +01:04:59.540 --> 01:05:00.040 +Yeah, so your sane is not my sane + +01:05:01.260 --> 01:05:01.760 +necessarily. So that's the fundamental + +01:05:02.800 --> 01:05:02.960 +problem that we're discussing here. + +01:05:03.620 --> 01:05:03.960 +I think it's a social, + +01:05:04.740 --> 01:05:05.240 +not a technical problem. + +01:05:07.080 --> 01:05:07.580 +We do change defaults sometimes, + +01:05:09.620 --> 01:05:09.880 +but I mean, there is also some staying power. + +01:05:11.980 --> 01:05:12.260 +So it's understandable that, + +01:05:13.780 --> 01:05:13.940 +you know, it's, we can't just change them + +01:05:15.580 --> 01:05:15.920 +willy nilly and then flip flop between, + +01:05:18.080 --> 01:05:18.340 +you know, 1 or the other kind of thing. + +01:05:19.760 --> 01:05:20.060 +So it does take a little bit more time. + +01:05:22.360 --> 01:05:22.860 +But yeah, sure, we can. + +01:05:25.360 --> 01:05:25.860 +We do change defaults at times. + +01:05:29.540 --> 01:05:29.780 +But it's perhaps more slower than what some + +01:05:30.920 --> 01:05:31.420 +people would prefer, for sure. + +01:05:35.660 --> 01:05:36.000 +So that's, yeah. Right, + +01:05:37.120 --> 01:05:37.620 +all right. We have 2 more questions. + +01:05:39.520 --> 01:05:40.020 +So will XWidgets have a future? + +01:05:41.680 --> 01:05:42.180 +Seeing the new bugs popping up in the latest + +01:05:45.020 --> 01:05:45.280 +XWidget dev. Not sure if there was the rest + +01:05:46.220 --> 01:05:46.640 +of the question, But on XWidgets, + +01:05:47.440 --> 01:05:47.940 +can you tell us a little more? + +01:05:50.380 --> 01:05:50.580 +I'm not really following now. + +01:05:51.900 --> 01:05:52.400 +I mean, I'm not seeing a lot of development + +01:05:53.680 --> 01:05:54.180 +on XWidgets currently. + +01:05:56.820 --> 01:05:57.100 +Some people have done work in fixing up a few + +01:05:59.820 --> 01:06:00.320 +bugs, but I think that feature really needs + +01:06:01.800 --> 01:06:02.180 +more love. So I think we need, + +01:06:03.120 --> 01:06:03.600 +you know, help is welcome, + +01:06:05.740 --> 01:06:05.920 +patch is welcome. That's what I can say about + +01:06:11.040 --> 01:06:11.180 +that. All right, and our final question of + +01:06:13.040 --> 01:06:13.140 +the day. Have you voted for Emacs as the + +01:06:14.760 --> 01:06:15.140 +software of the year on the Tuxes by Jupyter + +01:06:17.320 --> 01:06:17.480 +Broadcasting? I did because Emacs 29 is + +01:06:19.020 --> 01:06:19.300 +great. Thank you. Okay, + +01:06:20.160 --> 01:06:20.580 +well, good job voting. + +01:06:22.760 --> 01:06:22.960 +I didn't know, I don't know what Tuxy is on + +01:06:25.520 --> 01:06:25.680 +Jupyter broadcasting, but look it up and go + +01:06:27.660 --> 01:06:28.040 +vote. So I wish I could tell you, + +01:06:29.220 --> 01:06:29.500 +I assume with Tux, it might be something + +01:06:32.680 --> 01:06:32.900 +related to Linux, but that's as much as I can + +01:06:34.340 --> 01:06:34.840 +say. All right, well, Stefan, + +01:06:36.420 --> 01:06:36.600 +thank you so much for taking the time not + +01:06:37.540 --> 01:06:38.000 +only to do a wonderful presentation, + +01:06:39.520 --> 01:06:39.640 +but also for answering all the questions of + +01:06:41.040 --> 01:06:41.240 +the community. Do you have anything else to + +01:06:44.900 --> 01:06:45.360 +add? Just really thanks for all the questions + +01:06:46.260 --> 01:06:46.760 +and thanks for staying. + +01:06:49.120 --> 01:06:49.600 +It's been a long day, a long conference, + +01:06:51.020 --> 01:06:51.180 +so thanks for staying and listening to my + +01:06:52.360 --> 01:06:52.540 +talk as well. Really appreciate it. + +01:06:54.000 --> 01:06:54.280 +Appreciate the good work you guys are doing + +01:06:54.960 --> 01:06:55.460 +behind the scenes, organizing, + +01:06:56.240 --> 01:06:56.740 +setting everything up. + +01:07:00.220 --> 01:07:00.420 +And really humbled to be a part of this + +01:07:01.560 --> 01:07:02.060 +community. So thank you all. + +01:07:05.740 --> 01:07:05.860 +Well I can assure you that no 1 either in the + +01:07:07.540 --> 01:07:08.040 +organization team or the people watching now + +01:07:10.760 --> 01:07:10.900 +felt like it was tiring to stay and listen to + +01:07:12.260 --> 01:07:12.760 +your answers. So thank you so much Stefan. diff --git a/2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt b/2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt new file mode 100644 index 00000000..71d59b09 --- /dev/null +++ b/2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt @@ -0,0 +1,1652 @@ +WEBVTT + + +00:00:08.099 --> 00:00:08.480 +2 seconds. All right. I think we are live. + +00:00:09.780 --> 00:00:10.280 +Yes. So, hi again, everyone. + +00:00:13.259 --> 00:00:13.620 +I have the pleasure to welcome John Wheatley + +00:00:14.940 --> 00:00:15.440 +in person to this EmacsConf. + +00:00:16.760 --> 00:00:17.260 +Hi, John. Hello there. + +00:00:18.592 --> 00:00:18.820 +How are you doing, Leo? + +00:00:20.940 --> 00:00:21.100 +I am doing fantastic, and even more now that + +00:00:23.040 --> 00:00:23.540 +I am in a room with you because we've been, + +00:00:25.279 --> 00:00:25.640 +we were reminiscing with Sasha. + +00:00:30.660 --> 00:00:30.860 +So you had been there in person in 2013 And + +00:00:32.240 --> 00:00:32.680 +since we started doing those online, + +00:00:34.840 --> 00:00:35.020 +Juan, since 2019, I think you've always been + +00:00:37.960 --> 00:00:38.460 +online, right? Usually it's a pre-recorded + +00:00:40.239 --> 00:00:40.440 +video. I think this will be the first 1 I do + +00:00:42.340 --> 00:00:42.540 +live in a long time. You're right. + +00:00:44.059 --> 00:00:44.239 +I'm saying we are online right now, + +00:00:45.600 --> 00:00:45.920 +but I just meant pre-recorded video. + +00:00:48.240 --> 00:00:48.400 +So it's good to have you almost in person or + +00:00:50.739 --> 00:00:50.900 +at least live and we are excited to hear + +00:00:52.000 --> 00:00:52.360 +about some of the Emacs news. + +00:00:54.280 --> 00:00:54.780 +So the floor is yours. + +00:00:56.400 --> 00:00:56.900 +All right, well welcome everybody. + +00:00:59.900 --> 00:01:00.239 +This is the yearly state of the Emacs union, + +00:01:02.720 --> 00:01:02.860 +I guess, about how Emacs development is + +00:01:05.220 --> 00:01:05.379 +going. Just to note, I am not currently a + +00:01:07.540 --> 00:01:07.760 +maintainer of Emacs. So what I do to get + +00:01:09.520 --> 00:01:09.920 +these notes is I call up my friend, + +00:01:11.640 --> 00:01:12.040 +Eli Zaretsky, 1 of the current Emacs + +00:01:13.700 --> 00:01:13.820 +maintainers, and he and I sit down for an + +00:01:16.880 --> 00:01:17.160 +hour, and he just gives me his dump of what's + +00:01:19.000 --> 00:01:19.400 +been going on. So I'm sort of just the + +00:01:21.960 --> 00:01:22.200 +messenger here. But thanks to Eli for these + +00:01:24.000 --> 00:01:24.400 +notes and all of the efforts that he + +00:01:27.160 --> 00:01:27.400 +contributes. So what he's been telling me is + +00:01:29.760 --> 00:01:30.060 +that this Emacs 29 release that we had + +00:01:31.480 --> 00:01:31.720 +recently looks to have been very, + +00:01:33.240 --> 00:01:33.580 +very successful, which is some good news, + +00:01:34.920 --> 00:01:35.420 +because there were a lot of new features, + +00:01:37.020 --> 00:01:37.360 +and some of those features were actually + +00:01:39.280 --> 00:01:39.520 +quite radical. So far, + +00:01:40.280 --> 00:01:40.680 +it's been quite a success, + +00:01:41.940 --> 00:01:42.440 +no serious problems with it, + +00:01:43.580 --> 00:01:44.080 +and we have Emacs 29.2 + +00:01:46.240 --> 00:01:46.740 +will be released very soon. + +00:01:49.780 --> 00:01:50.020 +They are thinking now about starting the + +00:01:52.580 --> 00:01:53.080 +Emacs 30 release cycle soon after 29.2 + +00:01:55.400 --> 00:01:55.880 +is released, where the release branch, + +00:01:57.620 --> 00:01:58.120 +which is called Emacs-30 usually, + +00:02:01.080 --> 00:02:01.400 +will be cut and then development will become + +00:02:03.800 --> 00:02:03.960 +frozen with only bug fixes going into that + +00:02:06.940 --> 00:02:07.200 +branch. That may take quite some time until + +00:02:09.199 --> 00:02:09.639 +it actually comes to fruition as a release, + +00:02:11.500 --> 00:02:11.660 +but at least it means that the release is + +00:02:13.380 --> 00:02:13.860 +going to start taking shape in that branch + +00:02:17.420 --> 00:02:17.720 +soon. So, for now, Emacs 30 looks like maybe + +00:02:19.040 --> 00:02:19.540 +it's going to be a little less interesting + +00:02:22.860 --> 00:02:23.160 +than Emacs 29 was, meaning not a huge number + +00:02:24.860 --> 00:02:25.120 +of changing features. But there are still + +00:02:26.320 --> 00:02:26.820 +some new things going in. + +00:02:29.760 --> 00:02:29.960 +So 1 of them is that Emacs 30 is going to + +00:02:32.160 --> 00:02:32.300 +have Android support. So you will be able to + +00:02:34.400 --> 00:02:34.900 +run Emacs 30 on your Android devices. + +00:02:36.820 --> 00:02:37.120 +So if you've ever wanted to have native Emacs + +00:02:39.000 --> 00:02:39.500 +on a tablet, which I know I've always wanted, + +00:02:42.440 --> 00:02:42.940 +that will become possible with Emacs 30. + +00:02:45.060 --> 00:02:45.480 +There's also going to be much better support + +00:02:46.280 --> 00:02:46.780 +for touchscreen devices, + +00:02:49.760 --> 00:02:50.260 +coincidentally, both laptops and tablets. + +00:02:52.740 --> 00:02:53.240 +So that'll enhance that Android support. + +00:02:56.680 --> 00:02:57.180 +There will be some recently gained support + +00:03:01.480 --> 00:03:01.720 +for LLDB in GUD.dl. So if you're on a Mac OS + +00:03:05.440 --> 00:03:05.580 +machine or a machine that uses just LLVM as + +00:03:06.560 --> 00:03:07.060 +part of the compilation process, + +00:03:10.020 --> 00:03:10.180 +then you probably are familiar with LLDB as + +00:03:10.880 --> 00:03:11.380 +the command line debugger. + +00:03:14.440 --> 00:03:14.940 +And that support for using LLDB through a GUD + +00:03:16.920 --> 00:03:17.320 +will become possible in Emacs 30. + +00:03:18.900 --> 00:03:19.000 +I'm looking forward to this actually quite a + +00:03:22.120 --> 00:03:22.620 +bit as well. C Perl mode is being deprecated, + +00:03:25.640 --> 00:03:25.920 +and all future work now is only being put + +00:03:30.480 --> 00:03:30.660 +towards C Perl mode. Another 1 is that there + +00:03:32.840 --> 00:03:33.000 +are going to be some new major modes based on + +00:03:35.280 --> 00:03:35.780 +TreeSitter. They will be for the languages + +00:03:37.660 --> 00:03:38.160 +Lua, Elixir, and HTML. + +00:03:39.480 --> 00:03:39.980 +And if you're not familiar, + +00:03:42.260 --> 00:03:42.620 +I think TreeSitter was introduced in Emacs + +00:03:46.160 --> 00:03:46.660 +29. It's a library that allows you to specify + +00:03:49.760 --> 00:03:49.900 +the grammar of a programming language as a + +00:03:52.800 --> 00:03:53.300 +BNF file, and I think using JavaScript, + +00:03:56.160 --> 00:03:56.600 +and then with that file as input to Emacs, + +00:03:59.340 --> 00:03:59.840 +it is then able to do syntax highlighting, + +00:04:02.860 --> 00:04:03.080 +syntax discovery, all of those things within + +00:04:05.640 --> 00:04:06.140 +Emacs without having to use elisp and regexps + +00:04:07.800 --> 00:04:08.300 +to discover the structure of the language. + +00:04:10.240 --> 00:04:10.440 +It defers the structure gathering to + +00:04:13.080 --> 00:04:13.420 +TreeSitter and then uses that information to + +00:04:14.060 --> 00:04:14.560 +navigate the language. + +00:04:17.079 --> 00:04:17.300 +So, As time goes on, you'll see more and more + +00:04:19.160 --> 00:04:19.540 +languages taking on TreeSetter support. + +00:04:20.899 --> 00:04:21.160 +So the next 3 coming up, + +00:04:22.160 --> 00:04:22.660 +Lua, Elixir, and HTML. + +00:04:26.500 --> 00:04:26.680 +And then the last feature for Emacs 30 is + +00:04:29.640 --> 00:04:29.860 +that the byte compiler will now detect and + +00:04:32.420 --> 00:04:32.920 +warn about many more questionable constructs. + +00:04:34.800 --> 00:04:35.300 +Things like empty macro bodies, + +00:04:36.660 --> 00:04:37.160 +missing lexical constructs, + +00:04:39.720 --> 00:04:40.220 +or say, condition case without any handlers. + +00:04:43.040 --> 00:04:43.340 +Just silly stuff that might litter the code, + +00:04:45.040 --> 00:04:45.180 +but now you'll get a warning about it from + +00:04:46.760 --> 00:04:46.920 +the byte compiler to help you clean up the + +00:04:49.000 --> 00:04:49.160 +code and get rid of those potential sites of + +00:04:52.600 --> 00:04:52.740 +error. So this is the main thing that will be + +00:04:54.960 --> 00:04:55.160 +worked on for Emacs 30 and what's looked like + +00:04:55.900 --> 00:04:56.400 +shaping up for the release. + +00:04:58.680 --> 00:04:58.940 +And also, he wanted me to announce that + +00:05:00.840 --> 00:05:01.340 +Stefan Kongas is now a new co-maintainer. + +00:05:02.900 --> 00:05:03.260 +And Stefan is, I believe, + +00:05:05.340 --> 00:05:05.500 +here with us in the conference and he'll be + +00:05:07.440 --> 00:05:07.940 +able, I hope, to help me answer any questions + +00:05:09.960 --> 00:05:10.120 +about future Emacs development because I'm + +00:05:12.040 --> 00:05:12.240 +not in the heat of it and don't have all + +00:05:13.100 --> 00:05:13.600 +those answers at the moment. + +00:05:17.080 --> 00:05:17.180 +So That is all there is as far as a + +00:05:18.340 --> 00:05:18.840 +development update for now. + +00:05:21.480 --> 00:05:21.980 +And I am available to take any questions. + +00:05:26.000 --> 00:05:26.200 +All right. Thank you so much, + +00:05:29.180 --> 00:05:29.340 +Sean, for being the messenger of all this + +00:05:31.500 --> 00:05:31.820 +good news. I mean, you did start by saying + +00:05:32.980 --> 00:05:33.480 +this would not be as exciting, + +00:05:35.860 --> 00:05:36.280 +perhaps, as prior releases of Emacs, + +00:05:38.800 --> 00:05:38.980 +but you then proceeded to say a lot of stuff + +00:05:40.380 --> 00:05:40.760 +that it felt very exciting to me. + +00:05:43.120 --> 00:05:43.620 +So good, good. Glad to hear that. + +00:05:47.040 --> 00:05:47.180 +Right. So we do have questions coming in + +00:05:49.960 --> 00:05:50.380 +already and again people the link is on IRC + +00:05:51.980 --> 00:05:52.120 +and also on the talks page if you want to + +00:05:52.760 --> 00:05:53.260 +start asking questions. + +00:05:54.720 --> 00:05:54.840 +So John what I'm going to do I'm going to + +00:05:56.400 --> 00:05:56.580 +read you the questions and then you can + +00:05:57.800 --> 00:05:58.300 +answer them. Is that okay with you? + +00:06:01.320 --> 00:06:01.620 +Absolutely. So starting with the first + +00:06:04.120 --> 00:06:04.440 +question which changes in recent Emacs + +00:06:06.040 --> 00:06:06.540 +releases are you enjoying using? + +00:06:11.320 --> 00:06:11.820 +I have really liked the visual line mode. + +00:06:14.780 --> 00:06:15.060 +I'm not sure how recent that is. + +00:06:16.320 --> 00:06:16.820 +Some of these features I only discovered + +00:06:19.080 --> 00:06:19.580 +quite late, the new display line number + +00:06:21.020 --> 00:06:21.380 +functionality, where it's much, + +00:06:22.760 --> 00:06:23.040 +much, much faster, and of course, + +00:06:25.160 --> 00:06:25.320 +native compilation. Native compilation has + +00:06:27.040 --> 00:06:27.360 +been quite brilliant for some of the larger + +00:06:29.380 --> 00:06:29.480 +packages that I use. I do a lot of stuff in + +00:06:31.340 --> 00:06:31.820 +Emacs. I use GNU's, I use E-Shell, + +00:06:33.040 --> 00:06:33.540 +I use Org Mode quite a lot. + +00:06:35.740 --> 00:06:36.100 +So native compilation has brought the user + +00:06:39.760 --> 00:06:39.960 +experience much closer to a modern app than + +00:06:41.980 --> 00:06:42.180 +some of the lagging and slowness that I might + +00:06:43.080 --> 00:06:43.580 +have experienced in the past. + +00:06:46.680 --> 00:06:47.180 +Definitely. Moving on to the next question. + +00:06:49.020 --> 00:06:49.200 +What do you think the future in the area of + +00:06:50.540 --> 00:06:51.040 +artificial intelligence from the developer + +00:06:53.420 --> 00:06:53.580 +point of view? Could you say that 1 more + +00:06:54.860 --> 00:06:54.876 +time? Your voice broke up a little bit. + +00:06:55.009 --> 00:06:55.025 +Oh, sorry. What do you think the future in + +00:06:55.125 --> 00:06:55.141 +the area of artificial intelligence from the + +00:06:55.191 --> 00:06:55.208 +developer point of view? + +00:06:55.307 --> 00:06:55.324 +Could you say that 1 more time? + +00:06:55.423 --> 00:06:55.440 +Your voice broke up a little bit. + +00:06:57.880 --> 00:06:58.100 +Oh, sorry. What do you think the future in + +00:07:00.380 --> 00:07:00.580 +the area of artificial intelligence from the + +00:07:01.400 --> 00:07:01.560 +developer point of view? + +00:07:02.520 --> 00:07:02.860 +It's also a shaky question, + +00:07:04.000 --> 00:07:04.500 +I think, but you get the point. + +00:07:08.940 --> 00:07:09.220 +I do use chat-gpt-shell inside of Emacs quite + +00:07:10.760 --> 00:07:10.920 +a bit, actually, when doing development in + +00:07:12.180 --> 00:07:12.440 +other languages. Just the other day, + +00:07:14.700 --> 00:07:15.200 +I was working on my Ledger accounting + +00:07:17.900 --> 00:07:18.080 +program, and I haven't done a lot of C++ in + +00:07:20.920 --> 00:07:21.180 +recent years. So I had forgotten how to + +00:07:23.620 --> 00:07:23.760 +exactly compare 2 strings only up to the + +00:07:24.600 --> 00:07:25.020 +length of the shortest string. + +00:07:26.720 --> 00:07:26.940 +I know I could have cranked that out just + +00:07:28.380 --> 00:07:28.740 +writing it C style, but I didn't remember + +00:07:30.300 --> 00:07:30.800 +what the current state of the art is for C++ + +00:07:32.960 --> 00:07:33.460 +and the STL. So I just asked chatGPT. + +00:07:35.940 --> 00:07:36.140 +I asked the exact question that I just said + +00:07:38.040 --> 00:07:38.220 +to you and sure enough it popped out the + +00:07:39.640 --> 00:07:40.080 +one-liner that was exactly what I needed. + +00:07:41.740 --> 00:07:42.240 +So I think in terms of developer assistance, + +00:07:45.320 --> 00:07:45.820 +not having to keep all of standard libraries + +00:07:46.960 --> 00:07:47.460 +or common idioms in memory. + +00:07:48.960 --> 00:07:49.460 +I don't know if other people are familiar + +00:07:50.580 --> 00:07:51.080 +with Rosetta Stone projects. + +00:07:53.200 --> 00:07:53.680 +They're projects where you have say a hundred + +00:07:55.280 --> 00:07:55.780 +different languages and there's a particular + +00:07:58.320 --> 00:07:58.640 +question, say, how do I read a file and copy + +00:07:59.220 --> 00:07:59.720 +it to another location? + +00:08:01.680 --> 00:08:01.880 +And then it has an instance of doing that + +00:08:03.320 --> 00:08:03.820 +activity for every 1 of those languages. + +00:08:04.780 --> 00:08:05.140 +That's a great database, + +00:08:06.880 --> 00:08:07.160 +and I've used them quite a bit in the past + +00:08:08.760 --> 00:08:09.260 +for remembering how to do certain things, + +00:08:12.040 --> 00:08:12.540 +say, converting a string to UTF-8. + +00:08:15.480 --> 00:08:15.660 +I think that AI does a great job of + +00:08:17.280 --> 00:08:17.780 +completely replacing the need for databases + +00:08:19.740 --> 00:08:19.920 +like that because you can just ask how do I + +00:08:21.480 --> 00:08:21.980 +copy a convert a string to UTF-8. + +00:08:27.240 --> 00:08:27.440 +Yeah exactly and you know especially with + +00:08:30.440 --> 00:08:30.480 +languages which are tried well tried you know + +00:08:32.200 --> 00:08:32.360 +it's very easy to get an answer that is + +00:08:34.600 --> 00:08:34.940 +correct. But sometimes what I find bothersome + +00:08:37.020 --> 00:08:37.460 +with this type of coding, + +00:08:39.520 --> 00:08:39.840 +I think it's AI-aided coding, + +00:08:40.320 --> 00:08:40.820 +but it's still coding, + +00:08:42.799 --> 00:08:43.140 +is that, especially with C languages, + +00:08:44.140 --> 00:08:44.240 +sometimes you're going to end up with + +00:08:45.660 --> 00:08:45.860 +undefined behaviors and stuff like this just + +00:08:47.420 --> 00:08:47.900 +because other people have been doing it, + +00:08:50.740 --> 00:08:50.860 +not because the algorithm or the model was + +00:08:53.340 --> 00:08:53.680 +trained with data that dates back to 10 years + +00:08:59.640 --> 00:09:00.060 +ago. At the time, C++ was a little different. + +00:09:01.220 --> 00:09:01.400 +Anyway, I'm not here to talk, + +00:09:03.740 --> 00:09:03.960 +you are here to talk. Moving on to the next + +00:09:06.200 --> 00:09:06.560 +question. People already get to hear my voice + +00:09:09.140 --> 00:09:09.640 +plenty, whereas yours are much sparser. + +00:09:13.360 --> 00:09:13.580 +All right. So, what is the future of Emacs on + +00:09:15.800 --> 00:09:16.080 +macOS? I understand that there are too few + +00:09:16.920 --> 00:09:17.420 +developers for the platform. + +00:09:21.160 --> 00:09:21.600 +Is that still true? That's a good question. + +00:09:23.300 --> 00:09:23.620 +I don't know what the current statistics are. + +00:09:26.640 --> 00:09:27.040 +I've been a user of Emacs on Mac OS for + +00:09:29.540 --> 00:09:29.920 +decades now. It feels like the, + +00:09:32.980 --> 00:09:33.480 +There's also that Mac port version of Emacs, + +00:09:35.720 --> 00:09:35.920 +which builds Emacs more directly using the + +00:09:37.360 --> 00:09:37.860 +GUI libraries on the platform. + +00:09:40.080 --> 00:09:40.320 +That continues to be updated with every + +00:09:41.540 --> 00:09:42.040 +single new release that comes out. + +00:09:45.060 --> 00:09:45.220 +So I'd say that the support may not be as + +00:09:47.040 --> 00:09:47.540 +great as it is on Linux and other platforms, + +00:09:50.280 --> 00:09:50.500 +but to this day I haven't suffered from being + +00:09:54.720 --> 00:09:55.220 +a Mac user. Great. The only thing I remember + +00:10:00.060 --> 00:10:00.480 +about Emacs on macOS was that emojis made it + +00:10:03.420 --> 00:10:03.540 +inside the GUI first before they did it + +00:10:05.660 --> 00:10:05.820 +anywhere else. That's the 1 anecdote that I + +00:10:09.160 --> 00:10:09.520 +have on MacOS. Right. And historically that + +00:10:12.400 --> 00:10:12.720 +feature was removed in order to prevent Mac + +00:10:14.340 --> 00:10:14.840 +from having features that Linux did not. + +00:10:16.660 --> 00:10:16.860 +I didn't want to go into that point. + +00:10:18.220 --> 00:10:18.340 +I just wanted to mention the beginning of the + +00:10:19.600 --> 00:10:19.840 +anecdote and people can find it out. + +00:10:21.540 --> 00:10:22.040 +But yes, that's also what it led to. + +00:10:24.840 --> 00:10:25.340 +Moving on to the next question. + +00:10:27.620 --> 00:10:28.120 +Why aren't you contributing to Emacs anymore? + +00:10:28.860 --> 00:10:29.360 +Lack of time, I guess? + +00:10:31.340 --> 00:10:31.840 +Lack of time, primarily. + +00:10:33.340 --> 00:10:33.840 +Work has been very consuming. + +00:10:35.740 --> 00:10:36.020 +There are a lot of other projects and things + +00:10:38.640 --> 00:10:39.000 +that I like doing. I still find Emacs Lisp + +00:10:39.960 --> 00:10:40.460 +very, very fun to write. + +00:10:42.980 --> 00:10:43.260 +Just the other day, I was hacking up some + +00:10:45.260 --> 00:10:45.760 +extension macros for myself for org mode. + +00:10:48.720 --> 00:10:48.900 +But to have the time needed to sit down and + +00:10:51.140 --> 00:10:51.580 +design a whole new mode and work on it. + +00:10:53.480 --> 00:10:53.660 +I've been spending a lot of my time now in + +00:10:55.200 --> 00:10:55.580 +functional languages, especially theorem + +00:10:57.340 --> 00:10:57.840 +provers. I just find that so intellectually + +00:10:59.120 --> 00:10:59.620 +satisfying and interesting. + +00:11:01.460 --> 00:11:01.860 +Plus it pays a lot better. + +00:11:03.440 --> 00:11:03.680 +Never had a paying job as an Emacs list + +00:11:06.220 --> 00:11:06.420 +developer. So when it comes to now just being + +00:11:07.880 --> 00:11:08.380 +a fun language or a hobby language, + +00:11:10.480 --> 00:11:10.680 +it is relegated to the time that I have free + +00:11:13.180 --> 00:11:13.680 +when it's available. Right. + +00:11:15.280 --> 00:11:15.420 +Well, the good thing is that it's kind of + +00:11:15.920 --> 00:11:16.360 +like riding a bicycle, + +00:11:17.640 --> 00:11:17.980 +you know, writing a major mode, + +00:11:19.860 --> 00:11:20.160 +it comes back relatively quickly and still + +00:11:22.240 --> 00:11:22.600 +enjoyable. You know, the other day, + +00:11:25.040 --> 00:11:25.200 +actually, I took notes on a mode that I + +00:11:27.980 --> 00:11:28.100 +wanted to write. There's an app I use on the + +00:11:30.020 --> 00:11:30.060 +Mac called drafts, and I really love it. + +00:11:30.960 --> 00:11:31.460 +I use it all the time. + +00:11:34.300 --> 00:11:34.600 +I wanted to mimic the interface of this app + +00:11:37.120 --> 00:11:37.620 +in Emacs. So I could use Emacs as my drafts + +00:11:39.560 --> 00:11:40.060 +application rather than this separate 1. + +00:11:42.280 --> 00:11:42.720 +So I noted down all the different user + +00:11:44.440 --> 00:11:44.580 +parameters and how it should function and + +00:11:47.040 --> 00:11:47.240 +everything to describe the app to myself as + +00:11:50.080 --> 00:11:50.320 +sort of notes to get me started on that work + +00:11:51.960 --> 00:11:52.460 +when I did have free time to work on it. + +00:11:54.480 --> 00:11:54.760 +Somebody out there on the internet just saw + +00:11:56.680 --> 00:11:57.040 +these notes, because I keep a lot of my stuff + +00:11:59.180 --> 00:11:59.680 +on GitHub. They fed it to chat GPT, + +00:12:01.460 --> 00:12:01.960 +going back to your AI question. + +00:12:04.360 --> 00:12:04.540 +And they actually sent back to me a mode that + +00:12:06.140 --> 00:12:06.640 +implemented everything that I had said, + +00:12:07.240 --> 00:12:07.740 +which was effectively, + +00:12:10.460 --> 00:12:10.960 +chat GPT, seeing that what I had described + +00:12:14.380 --> 00:12:14.500 +was clear enough for it to derive most of the + +00:12:16.120 --> 00:12:16.560 +code that I would have wanted to write. + +00:12:19.000 --> 00:12:19.200 +So maybe, maybe another thing that AI can do + +00:12:20.380 --> 00:12:20.880 +is it can increase the value, + +00:12:22.900 --> 00:12:23.400 +the efficiency of my free time. + +00:12:26.320 --> 00:12:26.820 +Exactly. I think that's a wonderful point. + +00:12:29.380 --> 00:12:29.540 +And phrasing it as efficiency of free time is + +00:12:30.860 --> 00:12:31.360 +great because you still have the expertise, + +00:12:33.280 --> 00:12:33.420 +obviously, that you're mobilizing into the + +00:12:35.060 --> 00:12:35.560 +design that you're formulating to charge DPT, + +00:12:37.460 --> 00:12:37.680 +but then this expertise is turned into + +00:12:38.560 --> 00:12:39.060 +something that actually works. + +00:12:41.400 --> 00:12:41.780 +Perhaps we're all going to become software + +00:12:42.540 --> 00:12:42.980 +architects at some point, + +00:12:45.640 --> 00:12:45.800 +and then the busy work of actually coding the + +00:12:48.560 --> 00:12:48.760 +library and the software will be relegated to + +00:12:50.800 --> 00:12:51.000 +AI. That's an interesting future where we + +00:12:54.960 --> 00:12:55.240 +still, however, need to acquire the skills to + +00:12:56.320 --> 00:12:56.660 +know what is code, I suppose. + +00:12:58.380 --> 00:12:58.880 +But that's an interesting future to think of. + +00:13:01.580 --> 00:13:02.060 +A fairly long question. + +00:13:03.960 --> 00:13:04.280 +So 1 of the tricky things about running Emacs + +00:13:06.760 --> 00:13:06.900 +on Android is do you use anything that + +00:13:07.820 --> 00:13:08.320 +requires extra packages? + +00:13:11.400 --> 00:13:11.600 +Example like PDF tools with new PDF or going + +00:13:13.640 --> 00:13:13.820 +with a database, playing music or video with + +00:13:15.340 --> 00:13:15.840 +MPD or MPV on Bonga, LFeed. + +00:13:17.400 --> 00:13:17.900 +Do you run Emacs Termex, + +00:13:19.740 --> 00:13:20.200 +Emacs APK, Emacs in virtual machine? + +00:13:22.260 --> 00:13:22.420 +This is also the case on Emacs for Windows to + +00:13:23.480 --> 00:13:23.980 +a lesser degree. So summarizing, + +00:13:27.080 --> 00:13:27.240 +how do you make Emacs work on Android if you + +00:13:29.700 --> 00:13:30.040 +do not have the synergy of stuff that you + +00:13:32.360 --> 00:13:32.560 +usually find on Linux systems like MPV and + +00:13:33.920 --> 00:13:34.420 +all the fancy applications like this? + +00:13:38.220 --> 00:13:38.380 +It's a good question. Since I'm not an + +00:13:40.140 --> 00:13:40.460 +Android user and I've never tried running + +00:13:41.520 --> 00:13:42.020 +Emacs on Android platforms, + +00:13:44.760 --> 00:13:44.920 +I'm not sure what's available out there to + +00:13:46.080 --> 00:13:46.440 +plug Emacs into. I mean, + +00:13:48.040 --> 00:13:48.160 +effectively, that question comes down to + +00:13:49.920 --> 00:13:50.420 +external dependencies and system support. + +00:13:53.120 --> 00:13:53.320 +That would be a great question for Stefan or + +00:13:55.240 --> 00:13:55.740 +somebody who has tried using Emacs, + +00:13:58.100 --> 00:13:58.600 +the development version of Emacs on Android. + +00:14:03.480 --> 00:14:03.980 +Great. We'll put a pin in this for Stéphane + +00:14:07.360 --> 00:14:07.580 +afterwards. Great, so moving on to the next + +00:14:09.720 --> 00:14:09.860 +question. Will Org Tech someday become the + +00:14:10.860 --> 00:14:11.320 +default tech mode in Emacs? + +00:14:14.380 --> 00:14:14.880 +And if so, when? Will Org what become? + +00:14:17.480 --> 00:14:17.980 +Org Tech, you know, the LaTeX mode. + +00:14:24.640 --> 00:14:24.840 +I do not know. It's been a while since I've + +00:14:26.420 --> 00:14:26.880 +done LaTeX. It must have been like 4 years, + +00:14:30.040 --> 00:14:30.280 +but it was a pretty, the major mode for + +00:14:32.280 --> 00:14:32.560 +editing documents, like the state of the art + +00:14:34.340 --> 00:14:34.840 +for editing latex documents in Emacs. + +00:14:35.820 --> 00:14:36.320 +And apparently it's not default. + +00:14:38.200 --> 00:14:38.360 +I assume there's latex mode or something that + +00:14:41.080 --> 00:14:41.580 +is doing it. So were you saying octech, + +00:14:44.860 --> 00:14:45.020 +like A-U-C tech? Oh, did I not pronounce the + +00:14:47.860 --> 00:14:48.140 +C? Octech, yes. I thought you said org tech. + +00:14:49.120 --> 00:14:49.620 +I wasn't familiar with that. + +00:14:52.040 --> 00:14:52.540 +Octech is the only 1 I've ever used. + +00:14:54.860 --> 00:14:55.360 +I know there is a built-in LaTeX mode, + +00:14:56.880 --> 00:14:57.240 +but I've never used it. + +00:14:58.780 --> 00:14:59.140 +I always just download whatever the latest + +00:15:00.660 --> 00:15:01.160 +version of Org Tech is and use that. + +00:15:03.440 --> 00:15:03.840 +I don't know why it's not a standard package. + +00:15:06.860 --> 00:15:07.360 +Becoming a standard package has its own costs + +00:15:09.400 --> 00:15:09.860 +for the development cycle because it slows + +00:15:11.240 --> 00:15:11.740 +down release cycle quite a bit. + +00:15:14.480 --> 00:15:14.680 +It's now you have to create PRs that are + +00:15:16.740 --> 00:15:17.240 +reviewed by the Emacs Devel mailing list. + +00:15:18.900 --> 00:15:19.340 +It is a little more inertia. + +00:15:21.180 --> 00:15:21.680 +Of course, it gets you more distribution + +00:15:23.560 --> 00:15:24.020 +because it's a default package now, + +00:15:25.600 --> 00:15:26.100 +and everybody can be using that. + +00:15:28.100 --> 00:15:28.600 +But it's not something every developer + +00:15:30.960 --> 00:15:31.400 +decides to do. It took a few years, + +00:15:34.120 --> 00:15:34.620 +in fact, to get usePackage into Emacs core. + +00:15:36.760 --> 00:15:37.200 +And that only happened after it was so stable + +00:15:38.860 --> 00:15:39.360 +that it really wasn't receiving many changes + +00:15:44.540 --> 00:15:44.760 +anymore. Yeah, yeah it's it's the thing when + +00:15:46.560 --> 00:15:46.720 +you move into core you lose a lot of your + +00:15:49.120 --> 00:15:49.280 +agility in terms of how you're writing the + +00:15:50.440 --> 00:15:50.940 +code or how you expand code. + +00:15:54.000 --> 00:15:54.220 +That's why you have this vibrant community on + +00:15:57.180 --> 00:15:57.680 +Melpa compared to core but you know it + +00:15:59.380 --> 00:15:59.480 +doesn't necessarily ought to be this way it + +00:16:02.160 --> 00:16:02.320 +could be a little different you know And it + +00:16:04.080 --> 00:16:04.580 +feels like there's this repetition between + +00:16:06.500 --> 00:16:06.820 +repartition, sorry, between people developing + +00:16:08.220 --> 00:16:08.600 +for the core of Emacs and people developing + +00:16:10.600 --> 00:16:10.760 +on Melpa, but at the end of the day those 2 + +00:16:12.520 --> 00:16:13.020 +groups are constantly talking to 1 another + +00:16:14.860 --> 00:16:15.240 +and taking cues from 1 another as well. + +00:16:17.040 --> 00:16:17.540 +So that's great. And there's of course... + +00:16:21.380 --> 00:16:21.880 +May I jump in about this particular question + +00:16:24.840 --> 00:16:25.080 +because I think I mean You know, + +00:16:27.100 --> 00:16:27.540 +Org Mode doesn't really have any problems + +00:16:28.980 --> 00:16:29.380 +with releases Correct. + +00:16:32.320 --> 00:16:32.820 +Just because it's distributed with Emacs so + +00:16:34.900 --> 00:16:35.020 +there is a difference between being in the + +00:16:37.460 --> 00:16:37.960 +core proper and being distributed with Emacs. + +00:16:39.640 --> 00:16:40.080 +And for something like use packages, + +00:16:41.780 --> 00:16:42.280 +it's really necessary to be in the core. + +00:16:44.340 --> 00:16:44.840 +But for something like major mode, + +00:16:48.620 --> 00:16:48.740 +it's a bit easier. That's a very very good + +00:16:50.200 --> 00:16:50.400 +point. Yeah, I'd forgotten about that + +00:16:52.740 --> 00:16:53.000 +distinction. Org mode does advance pretty + +00:16:55.760 --> 00:16:55.900 +rapidly and then it makes releases into the + +00:16:59.320 --> 00:16:59.640 +core distribution. Gianni, + +00:17:01.000 --> 00:17:01.480 +I believe you also wanted to say something + +00:17:03.680 --> 00:17:03.840 +before someone started jumped in with a + +00:17:08.460 --> 00:17:08.700 +question do you happen to remember okay + +00:17:11.520 --> 00:17:12.020 +that's fine I lost her to lost to their time + +00:17:14.060 --> 00:17:14.560 +I'll be moving on to the next question then + +00:17:17.280 --> 00:17:17.460 +and by the way feel free to interrupt us you + +00:17:19.440 --> 00:17:19.619 +know The whole point of this discussion is + +00:17:20.740 --> 00:17:21.140 +for you to ask questions to John Wheatley. + +00:17:23.240 --> 00:17:23.520 +So whether it be via the other pad or via + +00:17:25.680 --> 00:17:26.180 +BBB, choose your weapon. + +00:17:28.700 --> 00:17:28.820 +All right, moving on to the next question in + +00:17:30.220 --> 00:17:30.520 +the meantime. And we have about 7 minutes + +00:17:32.600 --> 00:17:32.760 +left of Q&A and then we'll be moving on to + +00:17:35.580 --> 00:17:35.780 +Stéphane. So, do you use other IDEs for + +00:17:37.840 --> 00:17:38.040 +theorem proving work, notably VS Code for + +00:17:42.180 --> 00:17:42.340 +Lean? Which languages and provers can or do + +00:17:45.420 --> 00:17:45.920 +you use Emacs for? I've only used Emacs. + +00:17:49.340 --> 00:17:49.840 +I've used Emacs for working with ACL 2, + +00:17:53.300 --> 00:17:53.480 +Coq, Agda, and Lean, and I really love + +00:17:55.560 --> 00:17:55.680 +Proof-General. Coq is my favorite language to + +00:17:57.380 --> 00:17:57.740 +be working in. Agda has really great support + +00:17:59.120 --> 00:17:59.540 +as well, has a very nice Emacs mode. + +00:18:02.500 --> 00:18:02.920 +I'm only just now starting to get into Lean + +00:18:04.640 --> 00:18:05.140 +4. So I have everything installed, + +00:18:07.080 --> 00:18:07.240 +but I haven't really started coding in + +00:18:08.680 --> 00:18:08.800 +earnest. I'm still reading a lot of the + +00:18:10.760 --> 00:18:10.920 +tutorials and learning a bit about the + +00:18:13.260 --> 00:18:13.440 +language. There was a while there where I + +00:18:17.360 --> 00:18:17.540 +used a IDE for ACL 2 that was outside of + +00:18:19.760 --> 00:18:19.920 +Emacs, only because it was the same IDE all + +00:18:21.820 --> 00:18:22.040 +my co-workers were using and it was easier to + +00:18:23.740 --> 00:18:24.240 +share tips and tricks with them. + +00:18:27.780 --> 00:18:28.240 +But yeah, no, I found Emacs to be a great + +00:18:29.360 --> 00:18:29.860 +home for doing theorem proving. + +00:18:36.160 --> 00:18:36.580 +Right. Next question. Can we see that AI + +00:18:40.520 --> 00:18:40.760 +generated draft? You know what you mentioned + +00:18:43.200 --> 00:18:43.420 +before about the draft that you then fed into + +00:18:45.160 --> 00:18:45.480 +ChargPT? Do you happen to have this draft + +00:18:50.940 --> 00:18:51.440 +anywhere? Let me see if it's still on GitHub. + +00:18:53.800 --> 00:18:54.300 +Just take me 1 second to take a look here. + +00:18:59.440 --> 00:18:59.820 +Take your time. The problem is I don't quite + +00:19:01.320 --> 00:19:01.820 +remember where I made the note. + +00:19:06.760 --> 00:19:07.260 +But no, I don't see it on GitHub, + +00:19:09.340 --> 00:19:09.840 +so I don't have it readily at hand. + +00:19:12.740 --> 00:19:13.240 +Well, that's fine. We'll be able to... + +00:19:14.760 --> 00:19:15.060 +Well, if you happen to find it, + +00:19:17.120 --> 00:19:17.280 +we'll make sure to add it on the pad and then + +00:19:20.740 --> 00:19:20.940 +on the talks page. And I think we would all + +00:19:22.120 --> 00:19:22.440 +be interested to see what this design + +00:19:26.680 --> 00:19:27.160 +document that actually made something work + +00:19:28.660 --> 00:19:28.980 +afterwards in JudgeDPT with Elisp. + +00:19:30.440 --> 00:19:30.720 +I'm very interested to see what it would do + +00:19:32.480 --> 00:19:32.720 +because I tend to be very interested about + +00:19:34.640 --> 00:19:34.780 +this type of stuff I had generated but I + +00:19:36.360 --> 00:19:36.860 +never thought about doing it with Elisp + +00:19:38.720 --> 00:19:39.000 +because somehow it feels like 2 different + +00:19:40.520 --> 00:19:41.020 +worlds, like Elisp is kind of from the past, + +00:19:43.540 --> 00:19:44.040 +don't going me wrong, I love it and I use it + +00:19:46.720 --> 00:19:46.920 +every day But it's 2 different parts of my + +00:19:48.480 --> 00:19:48.820 +brain that I didn't think about linking. + +00:19:50.600 --> 00:19:51.100 +So I'd be very excited to see this as well. + +00:19:54.160 --> 00:19:54.640 +Moving on to the next question. + +00:19:56.480 --> 00:19:56.980 +Oh, go on, please. I did find it. + +00:20:00.600 --> 00:20:01.080 +I'm gonna have to give it to you as a link + +00:20:03.120 --> 00:20:03.380 +here. Sure, you can do it on the blue button + +00:20:05.400 --> 00:20:05.900 +and I'll put it on the pad. + +00:20:12.040 --> 00:20:12.540 +I put it into the public chat for Bibi. + +00:20:15.520 --> 00:20:15.920 +Yes. So if anyone is interested, + +00:20:18.120 --> 00:20:18.280 +I'm putting it right in the answer to the + +00:20:19.740 --> 00:20:20.200 +question right here on my screen. + +00:20:21.820 --> 00:20:22.120 +So feel free to click on it and explore it. + +00:20:23.320 --> 00:20:23.680 +I'm kind of curious, so I'm gonna... + +00:20:25.400 --> 00:20:25.560 +Can I click it on stream and can we look at + +00:20:26.120 --> 00:20:26.620 +it a little bit together? + +00:20:28.680 --> 00:20:29.020 +Sure, sure. I haven't tried running it, + +00:20:31.300 --> 00:20:31.680 +I can't say for its fitness, + +00:20:33.720 --> 00:20:34.220 +but it's definitely enough of the groundwork + +00:20:36.160 --> 00:20:36.660 +done that it's absolutely an assistance. + +00:20:39.760 --> 00:20:40.260 +Right. Okay, so it's loading up right now? + +00:20:42.180 --> 00:20:42.620 +You can see my webcam, + +00:20:45.480 --> 00:20:45.680 +right? I can see your browser attempting to + +00:20:47.080 --> 00:20:47.360 +load. There we go. Okay, + +00:20:49.860 --> 00:20:50.060 +cool. So I'm not sure what GitHub is doing. + +00:20:51.240 --> 00:20:51.460 +Let me give it a little more room. + +00:20:53.860 --> 00:20:54.360 +The reactive setup is not working too well. + +00:20:58.340 --> 00:20:58.840 +Oh, I see. You're viewing the... + +00:21:01.960 --> 00:21:02.220 +I see. Can I see the file then? + +00:21:03.520 --> 00:21:04.020 +I should be able to see the file. + +00:21:08.800 --> 00:21:09.060 +I think he just mentions the code in that + +00:21:11.480 --> 00:21:11.640 +comment. So if there's a way to view only the + +00:21:14.765 --> 00:21:14.897 +comment it would make it clear. + +00:21:16.160 --> 00:21:16.660 +Right. Okay. I'm loading the file separately. + +00:21:18.000 --> 00:21:18.500 +I'm checking the time. + +00:21:21.220 --> 00:21:21.340 +We have about 3 minutes left and I think we + +00:21:22.420 --> 00:21:22.900 +have a question. In the meantime, + +00:21:25.680 --> 00:21:25.760 +whilst I show this, I'm gonna launch another + +00:21:28.320 --> 00:21:28.820 +question, which was about Drafts. + +00:21:30.580 --> 00:21:30.740 +You are carrying, you're talking about + +00:21:32.320 --> 00:21:32.480 +Drafts, but does that mean you're not using + +00:21:35.720 --> 00:21:35.920 +org anymore? Oh, no, I use org all the time. + +00:21:37.600 --> 00:21:38.100 +In fact, the way that I've configured drafts + +00:21:40.240 --> 00:21:40.580 +is that after I type the thing in the note + +00:21:43.080 --> 00:21:43.260 +into drafts, I hit a key and it creates an + +00:21:44.920 --> 00:21:45.420 +org mode capture item for it. + +00:21:48.060 --> 00:21:48.560 +The reason why I use Drafts instead of Emacs + +00:21:50.160 --> 00:21:50.660 +is because it's always available. + +00:21:53.680 --> 00:21:53.960 +If Emacs is currently doing some job for me, + +00:21:55.840 --> 00:21:56.340 +say I'm running some long-running subshell + +00:21:58.940 --> 00:21:59.440 +and the UI is frozen up whatnot, + +00:22:02.020 --> 00:22:02.360 +Drafts is always 100% of the time instantly + +00:22:04.600 --> 00:22:04.900 +available. So that's why I tend to then lean + +00:22:07.740 --> 00:22:07.920 +on it a bit, but all of the destination of + +00:22:09.760 --> 00:22:10.240 +that data is still Org Mode and everything + +00:22:11.960 --> 00:22:12.460 +that I do gets tracked through Org Mode. + +00:22:15.720 --> 00:22:16.160 +That's also why I wanted to implement the UI + +00:22:18.580 --> 00:22:18.800 +scheme of drafts in Emacs so that I could + +00:22:20.360 --> 00:22:20.860 +drop the use of this external application. + +00:22:23.040 --> 00:22:23.160 +And then, I mean, I would still have the + +00:22:25.080 --> 00:22:25.580 +problem of sometimes Emacs being unavailable, + +00:22:29.760 --> 00:22:30.040 +but I would pay that price in order to have + +00:22:32.200 --> 00:22:32.700 +that good UI of drafts inside Emacs. + +00:22:37.200 --> 00:22:37.700 +Great. I think we have, + +00:22:39.520 --> 00:22:39.720 +we might be too tight on time. + +00:22:41.200 --> 00:22:41.640 +We only have about 2 minutes and I need to + +00:22:43.680 --> 00:22:44.180 +jump room to go into Stephane's room as well. + +00:22:47.160 --> 00:22:47.380 +So John, where I get to thank you so much for + +00:22:52.660 --> 00:22:53.160 +taking the time to answer our questions, + +00:22:54.920 --> 00:22:55.040 +but also doing a little bit of reporting on + +00:22:57.900 --> 00:22:58.380 +the state of Emacs. And now we'll get to + +00:22:58.940 --> 00:22:59.280 +continue this with Stéphane. + +00:23:00.900 --> 00:23:01.300 +So do you have any last words for everyone, + +00:23:03.380 --> 00:23:03.660 +John? No, no. I look forward to hearing + +00:23:05.940 --> 00:23:06.420 +Stéphane speak. Okay, great. + +00:23:07.000 --> 00:23:07.360 +And we'll look forward, + +00:23:08.800 --> 00:23:09.300 +potentially, to having you again next year, + +00:23:12.180 --> 00:23:12.680 +potentially still doing news like this, + +00:23:15.620 --> 00:23:15.920 +and, fingers crossed, maybe having you live + +00:23:18.160 --> 00:23:18.660 +again. Maybe, maybe let's see what happens. + +00:23:20.680 --> 00:23:20.860 +All right, John. Thank you so much. + +00:23:21.780 --> 00:23:22.280 +Bye bye. Bye bye. |