WEBVTT


00:00:02.540 --> 00:00:03.840
All right. Hi again, everyone.

00:00:03.840 --> 00:00:04.839
It's been a while. Well,

00:00:04.839 --> 00:00:06.980
actually, it's been like 2 minutes tops.

00:00:07.819 --> 00:00:09.099
We were just with John Wheatley,

00:00:09.099 --> 00:00:11.019
and now we are with Stefan Krangas.

00:00:11.120 --> 00:00:15.900
Hi. Hi. So as we said before,

00:00:16.160 --> 00:00:20.600
Stefan is co-maintainer now of Is it the

00:00:20.600 --> 00:00:22.920
entire Emacs project? How do you describe

00:00:22.920 --> 00:00:26.260
this? Yeah, co-maintainer of GNU Emacs.

00:00:27.439 --> 00:00:29.380
Right, perfect. So you know what?

00:00:29.380 --> 00:00:31.760
Because I'm sure everyone is dying to hear

00:00:32.420 --> 00:00:33.840
everything you've got to say in your

00:00:33.840 --> 00:00:36.040
presentation I'm just going to shut up now

00:00:36.040 --> 00:00:37.640
and leave the floor to you.

00:00:37.640 --> 00:00:39.440
Do you need to share your screen or anything?

00:00:40.080 --> 00:00:45.239
No. Okay great well I'll just cut my webcam

00:00:45.239 --> 00:00:47.059
off I'll still be in the background so do not

00:00:47.059 --> 00:00:48.940
hesitate if you've got any problem I'm still

00:00:48.940 --> 00:00:52.560
around And I'll see you just beacon whenever

00:00:52.560 --> 00:00:53.940
you're done. And I'll show up with the

00:00:53.940 --> 00:00:56.120
questions. All right? Thank you,

00:00:56.120 --> 00:00:58.739
Leo. And thank you, everyone,

00:00:58.739 --> 00:01:02.379
for being here. I'm Stefan Kangas.

00:01:02.739 --> 00:01:06.660
So as Leo explained, I am recently appointed

00:01:06.680 --> 00:01:09.660
as a co-maintainer of GNU Emacs,

00:01:10.960 --> 00:01:13.400
which a role that I'm fulfilling currently

00:01:13.780 --> 00:01:17.460
with Eli Sretsky, who's been co-maintainer

00:01:18.840 --> 00:01:23.320
for quite some time. So I got the question to

00:01:23.320 --> 00:01:26.780
be a co-maintainer from Richard in August

00:01:26.780 --> 00:01:29.280
this year. And of course,

00:01:29.600 --> 00:01:31.460
when you get a question like that,

00:01:31.840 --> 00:01:34.020
I couldn't not say yes.

00:01:34.360 --> 00:01:39.440
So here we are. I can't tell you how excited

00:01:39.920 --> 00:01:45.060
I am to have this opportunity to address the

00:01:45.060 --> 00:01:47.380
community in this way.

00:01:47.640 --> 00:01:49.800
I'm really humbled, of course,

00:01:50.380 --> 00:01:55.040
to be part of it, and to be able to serve the

00:01:55.040 --> 00:01:59.080
community in this capacity.

00:02:00.080 --> 00:02:04.080
I've used Emacs, I think many of you might

00:02:04.080 --> 00:02:06.820
also have used Emacs for quite some time,

00:02:06.820 --> 00:02:11.100
but I'm going on 2 decades as an Emacs user.

00:02:11.120 --> 00:02:14.280
My involvement in Emacs Lisp development is,

00:02:14.280 --> 00:02:16.160
I mean, almost as long,

00:02:16.660 --> 00:02:19.680
but my core development goes back only 4,

00:02:19.960 --> 00:02:26.700
5 years. I have to also thank the EmacsConf

00:02:27.180 --> 00:02:28.840
organizers who are doing,

00:02:29.100 --> 00:02:31.960
I think, a tremendous job and have done a

00:02:31.960 --> 00:02:34.820
tremendous job over the years in really

00:02:34.820 --> 00:02:37.800
building and strengthening what I think is

00:02:38.300 --> 00:02:42.180
this fantastic community of users and

00:02:42.180 --> 00:02:46.120
developers and people interested in Emacs.

00:02:46.620 --> 00:02:50.100
I actually had the chance to meet up with Eli

00:02:50.100 --> 00:02:53.700
Sretzky, as well as another Emacs hacker,

00:02:53.960 --> 00:02:57.080
Andrea Corallo, when I was at the GNU

00:02:57.980 --> 00:03:00.460
project's 40 years celebration,

00:03:00.800 --> 00:03:04.340
40 years since the GNU project was announced.

00:03:05.280 --> 00:03:08.540
And it was very inspiring in general to meet

00:03:09.660 --> 00:03:12.780
people. And I think EmacsConf should also,

00:03:12.980 --> 00:03:18.360
I think, serve to inspire and sort of help

00:03:19.020 --> 00:03:22.120
bring something to the type of work that many

00:03:22.120 --> 00:03:24.340
of us are doing to improve Emacs,

00:03:24.340 --> 00:03:26.200
whether it's in package development or in

00:03:26.200 --> 00:03:29.680
core, to bring out the new and exciting ideas

00:03:29.800 --> 00:03:34.040
and get people enthusiastic about Emacs,

00:03:34.080 --> 00:03:37.580
about hacking on Emacs.

00:03:38.560 --> 00:03:45.400
This is my little attempt to contribute with

00:03:45.600 --> 00:03:49.440
let's say 2 things. I will first try to

00:03:49.600 --> 00:03:54.400
present how we do Emacs core development and

00:03:54.400 --> 00:03:58.360
why we've done some of the choices that we

00:03:58.360 --> 00:04:02.060
have, because We have seen at times that

00:04:02.280 --> 00:04:06.500
perhaps people aren't always clear on this or

00:04:06.500 --> 00:04:08.660
that aspect. So maybe this will be

00:04:08.960 --> 00:04:12.260
enlightening. I will also try to present some

00:04:12.260 --> 00:04:17.860
kind of vision for what Emacs could be with

00:04:18.060 --> 00:04:21.680
your help. Emacs is already very good,

00:04:21.820 --> 00:04:26.880
as we all know, but we could be even better.

00:04:27.040 --> 00:04:29.940
That's the reality of any type of software

00:04:30.060 --> 00:04:35.100
development. So the overall idea of this talk

00:04:35.220 --> 00:04:38.380
is to tell you, if you're an Emacs list

00:04:38.380 --> 00:04:40.460
package developer today,

00:04:40.760 --> 00:04:44.200
why you should become an Emacs core

00:04:44.440 --> 00:04:47.300
developer, and the sort of steps that you

00:04:47.300 --> 00:04:49.340
might want to take to do that,

00:04:49.340 --> 00:04:52.100
or how you can help Emacs core development.

00:04:52.120 --> 00:04:54.320
Even if you're just a user and you found a

00:04:54.320 --> 00:04:57.340
bug, report it. Perhaps you have a feature

00:04:57.340 --> 00:04:58.820
request that you'd like to discuss.

00:04:58.820 --> 00:05:02.680
I think we need more interaction in general

00:05:02.900 --> 00:05:04.900
between Emacs core developers,

00:05:05.080 --> 00:05:06.440
typically on emacsdevil.gnu.org,

00:05:08.440 --> 00:05:12.420
the mailing list that we use to coordinate

00:05:12.840 --> 00:05:14.880
our development efforts,

00:05:15.860 --> 00:05:19.520
between Emacs devil package developers and

00:05:19.520 --> 00:05:22.460
users, Because there is so much great stuff

00:05:22.500 --> 00:05:24.740
really going on in the community.

00:05:25.520 --> 00:05:28.620
But I think sometimes the step to core

00:05:28.740 --> 00:05:32.500
development seems big and perhaps even a

00:05:32.500 --> 00:05:35.440
little bit scary. So I'm hoping to be able to

00:05:35.440 --> 00:05:38.720
help bridge that gap, even if just a little

00:05:38.720 --> 00:05:43.000
bit. We need more people contributing to

00:05:43.000 --> 00:05:46.740
Emacs itself. And also a small disclaimer

00:05:46.840 --> 00:05:49.920
here, in this talk I will only be able to

00:05:49.920 --> 00:05:53.700
speak for myself, not for GNU or the Emacs

00:05:53.760 --> 00:05:56.100
project, even if it's like a little bit more

00:05:56.500 --> 00:05:58.780
official, but I will also try to give the

00:05:58.780 --> 00:06:01.720
view of the project where it makes sense to

00:06:01.720 --> 00:06:04.200
do so. Keep in mind, I'm only 1 of the

00:06:04.200 --> 00:06:06.820
maintainers, the co-maintainer together with

00:06:06.820 --> 00:06:09.820
Eli, and I can't just make decisions

00:06:09.880 --> 00:06:11.400
arbitrarily. In a sense,

00:06:11.680 --> 00:06:14.180
I'm as a co-maintainer and trusted as a

00:06:14.180 --> 00:06:15.420
steward and trusted by,

00:06:15.420 --> 00:06:16.680
of course, the GNU project,

00:06:16.680 --> 00:06:22.000
but also by the community That we really

00:06:22.580 --> 00:06:24.180
can't just take decisions,

00:06:24.440 --> 00:06:27.380
I think, arbitrarily. Even if it sometimes

00:06:27.380 --> 00:06:30.560
perhaps may seem so, or it may feel that way,

00:06:31.100 --> 00:06:35.080
we really have to realize that we can't just

00:06:35.080 --> 00:06:39.200
push too much of just a personal agenda to

00:06:39.200 --> 00:06:41.520
the extent that it doesn't line up with what

00:06:41.520 --> 00:06:45.260
is best for eMacs going forward,

00:06:47.500 --> 00:06:50.320
and the more overall picture of that.

00:06:50.320 --> 00:06:52.640
So there are limitations that come with the

00:06:52.640 --> 00:06:59.940
job, if you like. So 1 question I often,

00:07:00.040 --> 00:07:02.280
I actually got this week when I started a new

00:07:02.280 --> 00:07:04.500
assignment at work, and I got the question

00:07:06.280 --> 00:07:08.720
when I said I'm involved in Emacs

00:07:08.720 --> 00:07:10.400
development. And then someone asked,

00:07:10.400 --> 00:07:12.480
oh, is Emacs still developed?

00:07:12.720 --> 00:07:16.400
Isn't it done almost? And I answered to that,

00:07:16.400 --> 00:07:17.880
yes, we are still around.

00:07:17.880 --> 00:07:21.940
We're going on 40 years now as a software

00:07:21.940 --> 00:07:25.940
project. Not many projects actually can claim

00:07:26.120 --> 00:07:29.020
that type of longevity.

00:07:29.540 --> 00:07:33.900
But Emacs is among those few that can.

00:07:33.900 --> 00:07:36.340
And of course, we have had some very exciting

00:07:36.340 --> 00:07:38.000
developments in recent versions.

00:07:38.000 --> 00:07:41.600
I think John just gave you an update on that.

00:07:41.980 --> 00:07:46.160
But we had just some highlights out of many

00:07:46.160 --> 00:07:47.940
highlights that you could give,

00:07:48.580 --> 00:07:50.920
really, we got the TreeSetter support in

00:07:50.920 --> 00:07:54.320
Emacs 29 that we now need to sort of extend

00:07:54.320 --> 00:07:56.340
and develop. We have merged EGLOT,

00:07:56.380 --> 00:07:59.440
so we have LSP support out of the box,

00:07:59.440 --> 00:08:00.980
I think is a huge improvement.

00:08:01.400 --> 00:08:02.960
Native compilation, of course,

00:08:02.960 --> 00:08:06.520
a big feature. I mean,

00:08:06.580 --> 00:08:08.900
that was Andrea's job,

00:08:08.900 --> 00:08:11.260
really, for performance.

00:08:11.460 --> 00:08:14.020
And it turns out that in many types of

00:08:14.020 --> 00:08:15.720
workloads and the types of stuff that people

00:08:15.720 --> 00:08:17.580
are doing, it often matters.

00:08:18.080 --> 00:08:21.180
And we're hoping to make that the default,

00:08:21.480 --> 00:08:24.960
perhaps already in Emacs 30.

00:08:24.960 --> 00:08:26.840
So there are things that are happening that

00:08:26.840 --> 00:08:31.680
fundamentally make Emacs better at a very

00:08:32.200 --> 00:08:37.360
core level. So, of course,

00:08:37.360 --> 00:08:41.679
why wouldn't you want to be involved in such

00:08:41.679 --> 00:08:43.440
an exciting and, I think,

00:08:43.440 --> 00:08:51.240
dynamic project? How is Emacs developed?

00:08:51.660 --> 00:08:53.000
Well, this is, I think,

00:08:53.000 --> 00:08:54.180
perhaps to some people,

00:08:54.200 --> 00:08:56.300
a little bit more of a threshold,

00:08:56.520 --> 00:08:59.100
if you like, because I think all of us know

00:08:59.100 --> 00:09:02.640
really that there is exciting and cool stuff

00:09:02.980 --> 00:09:06.560
that is going on in Emacs and has been going

00:09:06.560 --> 00:09:08.260
on over the last couple of years and we'll

00:09:08.260 --> 00:09:10.040
see even more of that,

00:09:10.040 --> 00:09:11.180
I think, going forward.

00:09:12.600 --> 00:09:16.580
1 thing is that communication still takes

00:09:16.580 --> 00:09:20.340
place over a mailing list in 2023.

00:09:21.240 --> 00:09:23.800
So we have emacsdevil at gnu.org,

00:09:24.440 --> 00:09:26.140
and that's where we develop Emacs.

00:09:26.680 --> 00:09:30.140
We use, we send patches back and forth,

00:09:30.140 --> 00:09:31.360
we comment on patches.

00:09:32.700 --> 00:09:36.420
And actually this workflow is very good,

00:09:36.700 --> 00:09:39.580
if you're used to it. Because guess what?

00:09:39.580 --> 00:09:42.200
As Emacs users, we like doing everything we

00:09:42.200 --> 00:09:45.220
can in Emacs, especially the core tasks that

00:09:45.220 --> 00:09:49.980
we're doing, such as developing Emacs itself.

00:09:50.140 --> 00:09:52.860
Of course, you want to do that fully within

00:09:52.960 --> 00:09:55.440
Emacs. So we hack Emacs Lisp in Emacs,

00:09:55.440 --> 00:09:58.840
we hack C in Emacs, we respond to emails also

00:10:00.240 --> 00:10:02.700
from Emacs, respond to bug reports,

00:10:02.700 --> 00:10:05.040
manage bug reports. We do all that stuff

00:10:05.460 --> 00:10:07.840
very, very smoothly. And it doesn't really

00:10:07.840 --> 00:10:10.540
matter in a sense, what is the medium?

00:10:10.560 --> 00:10:12.080
It happens to be email.

00:10:12.180 --> 00:10:14.160
Technically it could be anything,

00:10:14.440 --> 00:10:16.720
but email really has that type of staying

00:10:16.720 --> 00:10:19.640
power where we've been able to use it for a

00:10:19.640 --> 00:10:21.260
long time. And this is how,

00:10:22.360 --> 00:10:24.000
and we're still able to use it.

00:10:24.000 --> 00:10:25.800
And this is how free software was always

00:10:25.800 --> 00:10:26.640
developed in the past.

00:10:26.640 --> 00:10:28.380
Only in the last, let's say 10,

00:10:28.380 --> 00:10:32.440
15 years, We've had more development taking

00:10:32.440 --> 00:10:35.560
place perhaps on forges like GitHub,

00:10:35.580 --> 00:10:39.160
GitLab, whatever. But we are 1 of the

00:10:39.160 --> 00:10:40.680
holdouts. I mean, there are others,

00:10:40.680 --> 00:10:42.560
of course, like the Linux kernel has mailing

00:10:42.560 --> 00:10:44.340
lists. They're not trying to do that scale

00:10:44.340 --> 00:10:47.580
development on GitHub.

00:10:49.280 --> 00:10:51.360
And this is not just because we're Luddites

00:10:51.760 --> 00:10:53.560
that refuse to change.

00:10:53.560 --> 00:10:55.380
We just have to do it in the old way,

00:10:55.380 --> 00:10:57.120
because it is the old way,

00:10:57.120 --> 00:10:58.680
and that's the way it should be.

00:10:58.780 --> 00:11:00.420
No, it's actually because we,

00:11:01.220 --> 00:11:03.460
as core developers, the core development team

00:11:03.460 --> 00:11:05.460
and the people already involved and doing

00:11:05.460 --> 00:11:08.560
tremendous, I mean large amounts of work in

00:11:08.560 --> 00:11:12.480
Emacs has very efficient workflows built up

00:11:12.720 --> 00:11:15.620
based on this. So of course,

00:11:15.620 --> 00:11:17.780
I mean moving to something else is something

00:11:18.320 --> 00:11:20.180
that we might like to do,

00:11:20.580 --> 00:11:24.400
but we're not yet clear on how to do it

00:11:24.400 --> 00:11:26.100
exactly and what to move to.

00:11:26.320 --> 00:11:28.380
So these are the types of discussions that

00:11:28.380 --> 00:11:30.280
we're looking at. Can we still support a

00:11:30.280 --> 00:11:34.040
mailing, an email type workflow while moving

00:11:34.040 --> 00:11:36.100
to something else? That would be 1 of the big

00:11:36.100 --> 00:11:38.400
ones. I think another thing that trips people

00:11:38.400 --> 00:11:40.840
up is that we used a bug tracker that,

00:11:40.840 --> 00:11:42.620
I mean, maybe some people,

00:11:42.620 --> 00:11:45.560
I've heard people say it's archaic.

00:11:47.020 --> 00:11:49.900
It's called Debugs. I think maybe Debugs gets

00:11:49.900 --> 00:11:52.000
a bit of a bad rap. I think that bugs is a

00:11:52.000 --> 00:11:53.100
good piece of software.

00:11:53.520 --> 00:11:55.160
It wasn't developed in 2023.

00:11:55.580 --> 00:11:57.540
I mean, that's much as clear.

00:11:57.660 --> 00:11:58.880
It's a little bit older,

00:11:59.060 --> 00:12:01.320
but it really is a workhorse of the Debian

00:12:01.320 --> 00:12:03.820
project, which is obviously a project that's

00:12:03.960 --> 00:12:09.400
developed in a very different way than Emacs

00:12:09.400 --> 00:12:11.880
is. It's on a completely different scale,

00:12:11.880 --> 00:12:12.840
of course, much bigger,

00:12:12.840 --> 00:12:14.980
many more developers, and so on.

00:12:15.040 --> 00:12:17.800
But I think the developers did a good job for

00:12:17.800 --> 00:12:20.240
the time. But it might be showing its age,

00:12:20.920 --> 00:12:23.160
perhaps, in places. Perhaps,

00:12:23.440 --> 00:12:25.120
again, it's the email workflow.

00:12:25.260 --> 00:12:27.720
And people see that as a little bit of a

00:12:27.720 --> 00:12:30.180
threshold. It seems alien.

00:12:30.180 --> 00:12:31.300
It's a little bit strange,

00:12:32.220 --> 00:12:34.980
the types of workflows that you have there.

00:12:35.220 --> 00:12:38.860
So we are seeing some limitations with that

00:12:38.860 --> 00:12:40.940
box. And again, how do you report bugs?

00:12:41.020 --> 00:12:42.600
Well, in a sense, it's easy.

00:12:42.600 --> 00:12:46.660
You send an email to bug-gnu-emacs at gnu.org

00:12:47.620 --> 00:12:51.340
and you copy in whatever you get from,

00:12:51.340 --> 00:12:53.300
you know, report the EMAX bug or if you have,

00:12:53.300 --> 00:12:55.120
you know, send mail set up locally,

00:12:55.580 --> 00:12:58.700
just hit control C, control C and it's sent

00:12:58.700 --> 00:13:01.720
to the bug tracker and that's fine.

00:13:03.840 --> 00:13:08.680
But also I have to mention that there is this

00:13:08.680 --> 00:13:10.600
very good package on GNU Elpas.

00:13:10.600 --> 00:13:13.540
If you're ever trying to read the Emacs bug

00:13:13.540 --> 00:13:16.500
tracker or following along in Emacs

00:13:16.500 --> 00:13:19.000
development, I really recommend install the

00:13:19.000 --> 00:13:21.300
package devbugs from GNU Elpa.

00:13:22.120 --> 00:13:24.140
It's so good. And again,

00:13:24.140 --> 00:13:26.580
it's built on GNU, it's all integrated in

00:13:26.580 --> 00:13:30.040
Emacs, it's so much better than using the web

00:13:30.660 --> 00:13:33.220
and so on. And if you really want to get into

00:13:33.220 --> 00:13:38.040
it, you can download the bug tracker archives

00:13:38.140 --> 00:13:39.500
and the mailing list archives,

00:13:39.720 --> 00:13:41.260
and you can put them locally,

00:13:41.260 --> 00:13:42.380
you can have them searchable,

00:13:42.740 --> 00:13:44.440
and you can have whatever experience you

00:13:44.440 --> 00:13:47.340
like. So, I mean, it's really a flexible

00:13:48.240 --> 00:13:51.240
workflow, but it's a bit strange,

00:13:51.260 --> 00:13:52.620
perhaps, to some people.

00:13:53.460 --> 00:13:58.120
So we also think supporting only this

00:13:58.120 --> 00:14:00.140
workflow might be a little bit too limiting.

00:14:00.660 --> 00:14:04.200
So we do want to move over to something like

00:14:04.440 --> 00:14:06.760
GitLab, perhaps Sourcehat or something

00:14:06.760 --> 00:14:10.460
similar. We've had a couple of discussions

00:14:10.760 --> 00:14:14.000
about that over the last couple of years.

00:14:14.480 --> 00:14:15.820
I think even before that,

00:14:15.820 --> 00:14:18.940
but that's how far back I've been involved,

00:14:18.940 --> 00:14:21.800
and definitely it's come up occasionally.

00:14:23.100 --> 00:14:27.900
I think we are less far away than perhaps

00:14:27.940 --> 00:14:30.560
ever is how I would express that,

00:14:30.720 --> 00:14:36.680
and in the sense that the remaining blockers

00:14:36.960 --> 00:14:38.640
for just making the shift,

00:14:38.640 --> 00:14:40.200
let's say, are I think,

00:14:40.200 --> 00:14:42.120
I mean, first of all, we're talking about

00:14:42.120 --> 00:14:44.020
limitations, perhaps in the software,

00:14:44.020 --> 00:14:46.420
they're well defined, and they're not as

00:14:46.420 --> 00:14:49.060
amountable. I don't think they have to be in

00:14:49.060 --> 00:14:50.840
any case. We should be able to make some

00:14:50.840 --> 00:14:54.660
progress. The main thing that we're lacking

00:14:54.720 --> 00:14:58.480
now is not more discussion or more people

00:15:00.800 --> 00:15:03.120
prodding us to just please switch over.

00:15:03.120 --> 00:15:04.580
No, we're looking for volunteers.

00:15:05.980 --> 00:15:08.380
If you think that you,

00:15:08.400 --> 00:15:10.960
you know, have what it takes to sort of come

00:15:10.960 --> 00:15:14.060
in and help us do something like that and

00:15:14.060 --> 00:15:15.040
work together with us,

00:15:15.040 --> 00:15:16.840
you know, to see what can be done,

00:15:16.840 --> 00:15:20.200
perhaps some, a few things would need to be

00:15:20.200 --> 00:15:23.220
changed in GitLab. I don't think anything

00:15:23.220 --> 00:15:26.120
huge, but maybe there are some patches to be

00:15:26.120 --> 00:15:27.880
written and sent upstream,

00:15:27.980 --> 00:15:30.280
or maybe we need to do some local hacks or

00:15:30.280 --> 00:15:33.140
whatever. If you wanna do that,

00:15:33.140 --> 00:15:34.860
please contact us, emacsdevil.

00:15:35.460 --> 00:15:38.940
We'll be very happy to talk to you.

00:15:38.940 --> 00:15:40.460
And then we can start making progress.

00:15:40.520 --> 00:15:42.740
So I'm really hoping that that sound like

00:15:42.740 --> 00:15:46.620
will come into place. But we need to,

00:15:46.780 --> 00:15:52.340
if we do switch over, we need to preserve the

00:15:52.340 --> 00:15:54.820
good parts of our email-based workflows.

00:15:54.820 --> 00:15:57.140
So there are requirements there so that we

00:15:57.140 --> 00:16:00.180
can continue to do our job as maintainers,

00:16:01.720 --> 00:16:04.900
if you like. Another thing is that we've

00:16:04.900 --> 00:16:08.340
sometimes seen that there's a bit of a

00:16:08.340 --> 00:16:11.380
different culture perhaps on mailing lists

00:16:11.380 --> 00:16:15.060
and on Emacs devil than what many people are

00:16:15.060 --> 00:16:17.580
used to, especially like you've used perhaps,

00:16:17.800 --> 00:16:20.540
many people might be in university and

00:16:20.540 --> 00:16:23.500
they've started using Emacs,

00:16:23.720 --> 00:16:25.820
maybe got into a little bit of package

00:16:25.840 --> 00:16:29.060
development and starting to get the ropes of

00:16:29.060 --> 00:16:32.540
that and are very used to working on places

00:16:32.560 --> 00:16:35.460
like GitLab or something like that,

00:16:35.460 --> 00:16:38.000
then the type of culture and way of

00:16:38.000 --> 00:16:42.040
communicating that we use in Emacs might be a

00:16:42.040 --> 00:16:44.440
little bit different. And of course,

00:16:44.540 --> 00:16:47.360
it's different in the sense that mailing

00:16:47.380 --> 00:16:49.900
lists have always, I mean,

00:16:49.900 --> 00:16:51.060
let's say hacker culture,

00:16:51.060 --> 00:16:52.120
whatever you want to call it,

00:16:52.120 --> 00:16:54.400
have always communicated in a particular way

00:16:54.720 --> 00:16:58.340
using mailing lists. So it's like succinct to

00:16:58.340 --> 00:17:00.320
the point, perhaps I'm skipping a few

00:17:00.320 --> 00:17:03.340
pleasantries. And the idea is that you should

00:17:03.340 --> 00:17:08.000
just use it in as effective way as possible,

00:17:08.359 --> 00:17:11.099
so that also the archives are usable.

00:17:11.319 --> 00:17:13.660
And the other thing is that generally people

00:17:13.660 --> 00:17:16.500
involved in developing free software has to

00:17:16.500 --> 00:17:19.660
deal with a lot of incoming traffic,

00:17:19.780 --> 00:17:25.900
emails. They don't have the bandwidth if it's

00:17:25.900 --> 00:17:28.220
too much noise. You really need to be strict

00:17:28.220 --> 00:17:31.840
to keep the signal to noise ratio high.

00:17:31.840 --> 00:17:35.280
We have some weird terminology on the Emacs

00:17:35.280 --> 00:17:38.040
devil. People tell us,

00:17:38.200 --> 00:17:40.680
we say sometimes install patches which

00:17:40.680 --> 00:17:44.180
basically means push to master or merge pull

00:17:44.180 --> 00:17:46.720
requests because we've used other version

00:17:46.720 --> 00:17:48.600
control systems in the past where it might

00:17:48.600 --> 00:17:50.700
have made more sense to say install patches.

00:17:51.000 --> 00:17:52.540
And then you sort of, I don't know,

00:17:52.540 --> 00:17:54.380
I say it. Don't ask me why.

00:17:54.380 --> 00:17:56.040
But it feels natural after a while.

00:17:56.040 --> 00:17:57.720
You install a patch. It's clear what you

00:17:57.720 --> 00:18:02.280
mean. You don't have to worry about which

00:18:02.280 --> 00:18:05.940
branch it's on. So it's a little bit

00:18:06.600 --> 00:18:10.120
historical there. So there is some of that

00:18:10.120 --> 00:18:11.960
culture going on. It might be different.

00:18:11.960 --> 00:18:14.200
We don't use emojis that much.

00:18:14.220 --> 00:18:16.680
That's another thing. There is no like,

00:18:16.840 --> 00:18:20.900
you can click the little like button at the

00:18:20.900 --> 00:18:25.080
bottom of a comment or an email as you could

00:18:25.080 --> 00:18:27.740
on GitHub. But there are exceptions and it's

00:18:27.740 --> 00:18:29.600
not like someone will send you angry emails

00:18:29.600 --> 00:18:31.480
if you use an emoji or something like that.

00:18:31.480 --> 00:18:34.200
But it can come off as perhaps Because people

00:18:34.200 --> 00:18:37.180
are pressed for time also when replying to

00:18:37.260 --> 00:18:39.400
all these emails. So it might come off as a

00:18:39.400 --> 00:18:42.880
little bit short, but that's just how it is.

00:18:43.440 --> 00:18:46.880
And I think We have heard this comment before

00:18:46.880 --> 00:18:50.680
that mailing lists are scary or Emacs devil

00:18:50.720 --> 00:18:54.380
is scary or core development is scary.

00:18:54.780 --> 00:18:58.180
And I've touched a few of these points a

00:18:58.180 --> 00:18:59.620
little bit already. I think,

00:18:59.620 --> 00:19:01.500
yeah, maybe a little bit.

00:19:02.320 --> 00:19:05.740
For example, we don't use emojis very short

00:19:06.820 --> 00:19:10.940
in the communication. And we always use

00:19:10.940 --> 00:19:13.240
correct grammar and spelling.

00:19:13.380 --> 00:19:15.920
We take that seriously because it's important

00:19:15.920 --> 00:19:19.060
for being clear in your written communication

00:19:19.200 --> 00:19:21.540
when all you have is written communication.

00:19:22.680 --> 00:19:23.740
It's really important.

00:19:26.760 --> 00:19:31.400
But it's not like If you come in there and

00:19:31.400 --> 00:19:33.580
you don't know all these cultural rules and

00:19:33.580 --> 00:19:36.380
all these patterns, then you know you will We

00:19:36.380 --> 00:19:37.900
won't talk to you No Actually,

00:19:37.900 --> 00:19:41.100
we try to be as welcoming as we can and and

00:19:41.100 --> 00:19:44.600
be mindful and you know people not Everyone

00:19:44.600 --> 00:19:46.700
has English as their native language,

00:19:47.080 --> 00:19:49.200
for example. So perhaps someone says

00:19:49.200 --> 00:19:51.360
something, and it might come off as rude,

00:19:51.360 --> 00:19:53.200
but maybe it's just a direct translation.

00:19:53.200 --> 00:19:56.520
So we're trying to give a lot of whatever the

00:19:56.520 --> 00:19:59.760
native language is. So we try to give a lot

00:19:59.760 --> 00:20:01.780
of leeway and just be a little bit,

00:20:01.780 --> 00:20:03.580
you know, flexible and focus on,

00:20:03.580 --> 00:20:04.920
you know, the key, key points,

00:20:04.920 --> 00:20:06.580
which are the technical things,

00:20:06.580 --> 00:20:07.760
the technical decisions,

00:20:07.840 --> 00:20:09.280
technical arguments, rather than,

00:20:09.280 --> 00:20:11.920
you know, getting bogged down in a lot of,

00:20:11.920 --> 00:20:15.360
you know, personal, you know,

00:20:15.360 --> 00:20:19.220
discussions and flame wars.

00:20:19.300 --> 00:20:21.260
So, I mean, there are these things to be

00:20:21.260 --> 00:20:23.160
aware of, you know, it's just a little bit

00:20:23.160 --> 00:20:24.980
different. I don't think it's anything huge.

00:20:25.080 --> 00:20:26.620
And I wouldn't be, you know,

00:20:28.440 --> 00:20:30.480
I think it would be sad if people felt too

00:20:30.480 --> 00:20:32.320
intimidated by that. It just is what it is.

00:20:32.320 --> 00:20:33.540
And if you spend some time there,

00:20:33.540 --> 00:20:35.960
you'll see how people generally communicate.

00:20:38.400 --> 00:20:41.260
Sometimes, there are a lot of people on

00:20:41.260 --> 00:20:43.600
EmacsDevil. It's a public mailing list.

00:20:43.660 --> 00:20:46.240
A lot of people just sign up to follow Emacs

00:20:46.240 --> 00:20:48.860
development. Sometimes they chime in.

00:20:48.940 --> 00:20:50.820
And I think this is in general a good thing.

00:20:50.820 --> 00:20:53.300
I think it should be a public mailing list.

00:20:53.680 --> 00:21:00.220
Sometimes this leads to weird situations from

00:21:00.480 --> 00:21:03.400
just a point of view as an Emacs maintainer,

00:21:03.480 --> 00:21:07.080
right? I mean, I try to say something and it

00:21:07.080 --> 00:21:08.240
doesn't always say, oh,

00:21:08.240 --> 00:21:10.020
he's the maintainer or whatever.

00:21:10.080 --> 00:21:11.200
So when I say something,

00:21:11.200 --> 00:21:13.380
it should carry a little bit more weight than

00:21:13.380 --> 00:21:16.160
some unknown person from the internet who has

00:21:16.160 --> 00:21:18.300
an opinion and decided to send it to

00:21:18.740 --> 00:21:21.020
EmacsDevil. So it's good to be a little bit

00:21:21.020 --> 00:21:23.160
aware of who is a little bit more involved

00:21:23.160 --> 00:21:25.280
with the project. I would check out the

00:21:25.280 --> 00:21:27.100
maintainers file. I would check,

00:21:27.380 --> 00:21:31.000
see in the Git log, do these people actually

00:21:31.000 --> 00:21:33.300
have any anything in core?

00:21:33.580 --> 00:21:35.260
And if not, maybe, you know,

00:21:35.860 --> 00:21:38.660
there, we won't really,

00:21:39.100 --> 00:21:41.000
even if they express an opinion very

00:21:41.000 --> 00:21:42.720
strongly, even if they're a little bit rude,

00:21:42.720 --> 00:21:44.700
maybe they're not even involved in Emacs

00:21:44.760 --> 00:21:46.340
development. I mean, often,

00:21:46.680 --> 00:21:48.460
that's the case we have some people,

00:21:48.460 --> 00:21:49.900
unfortunately, at times,

00:21:50.340 --> 00:21:52.720
we have random people from the internet come

00:21:52.720 --> 00:21:54.720
in on the mailing list and they're just a

00:21:54.720 --> 00:21:56.780
little bit rude, or they say an opinion

00:21:57.740 --> 00:21:59.620
that's not exactly helpful.

00:22:00.060 --> 00:22:02.320
And I think you need to be aware.

00:22:02.320 --> 00:22:04.340
I mean, these things happen in any forum,

00:22:04.340 --> 00:22:07.740
but it happens on EmacsDevO as well.

00:22:07.800 --> 00:22:10.680
So just be a little bit aware of who you're

00:22:10.680 --> 00:22:13.540
talking to, what people are doing.

00:22:13.700 --> 00:22:15.880
It can help to Check the archives,

00:22:16.240 --> 00:22:18.460
see who writes what, and so on.

00:22:20.320 --> 00:22:23.080
But it's not something that I think is a huge

00:22:23.080 --> 00:22:24.220
problem. It is just, again,

00:22:24.220 --> 00:22:25.780
something to be aware of.

00:22:25.900 --> 00:22:28.040
We have the new kind of communication

00:22:28.180 --> 00:22:30.820
guidelines in place, which basically says

00:22:30.820 --> 00:22:33.740
that you should be nice to people and stay

00:22:33.740 --> 00:22:36.060
focused on the technical problem,

00:22:36.060 --> 00:22:38.300
try to see things from another person's point

00:22:38.300 --> 00:22:39.360
of view, this kind of stuff.

00:22:39.360 --> 00:22:42.140
So we're really trying to be as inclusive as

00:22:42.140 --> 00:22:46.820
possible and just stay correct in general.

00:22:46.820 --> 00:22:48.380
And sometimes, I mean,

00:22:48.380 --> 00:22:50.060
not everyone, it's a public list.

00:22:50.060 --> 00:22:52.440
We moderate it, but not to a huge extent,

00:22:52.440 --> 00:22:57.840
right? So sometimes people get away with a

00:22:57.840 --> 00:23:02.260
little bit of perhaps stretching the

00:23:02.260 --> 00:23:04.700
boundaries of what might be included in the

00:23:04.700 --> 00:23:06.500
kind communication guidelines,

00:23:08.040 --> 00:23:10.940
sort of the fences and limitations of that.

00:23:11.460 --> 00:23:13.940
But I would just ignore that.

00:23:13.940 --> 00:23:15.700
Sometimes it happens that we,

00:23:15.860 --> 00:23:17.160
as happens in any forum,

00:23:17.160 --> 00:23:19.440
by the way, you just, we have these very big

00:23:19.440 --> 00:23:21.760
threads. We start discussing something else.

00:23:21.760 --> 00:23:24.300
Perhaps you send us a patch and it just

00:23:24.320 --> 00:23:26.360
devolves into us discussing something

00:23:26.360 --> 00:23:28.680
completely different. And of course I partake

00:23:28.680 --> 00:23:30.440
in that, not better than anyone else,

00:23:30.440 --> 00:23:32.940
but it just happens. I mean,

00:23:32.960 --> 00:23:34.800
it's not your fault. It's just what happens

00:23:34.800 --> 00:23:37.200
sometimes in forums, and don't mind that.

00:23:37.200 --> 00:23:39.120
And it's a little bit easier to do that in

00:23:39.120 --> 00:23:41.680
emails, because you just change the subject,

00:23:41.680 --> 00:23:43.580
and now it's supposed to be a different

00:23:43.580 --> 00:23:45.780
thread, but it comes as replies usually to

00:23:45.780 --> 00:23:48.480
you, which wouldn't happen perhaps in a

00:23:48.480 --> 00:23:49.960
different workflow. So it's something to be

00:23:49.960 --> 00:23:53.300
aware of as well. Another thing is that,

00:23:53.300 --> 00:23:54.680
of course, in written communication,

00:23:55.080 --> 00:23:56.620
tone doesn't always come across.

00:23:57.980 --> 00:23:59.240
If someone sounds negative,

00:23:59.240 --> 00:24:01.280
sometimes it's just them being neutral.

00:24:01.460 --> 00:24:05.400
Sometimes you get no replies.

00:24:05.500 --> 00:24:07.120
You send something, you get no replies.

00:24:07.120 --> 00:24:09.220
And this could mean, actually it could mean,

00:24:09.880 --> 00:24:11.500
yeah, what you said was uncontroversial.

00:24:11.720 --> 00:24:12.980
We think it was a good idea.

00:24:13.660 --> 00:24:16.360
No 1 replied to it because either someone

00:24:16.360 --> 00:24:18.960
else would reply or just there was no need to

00:24:18.960 --> 00:24:20.640
reply because, yeah, why not?

00:24:21.580 --> 00:24:24.060
So but if you do send a patch and you don't

00:24:24.060 --> 00:24:26.280
get an answer, wait. I mean,

00:24:26.280 --> 00:24:29.380
don't wait 1, 2 days. Maybe we're busy or

00:24:29.380 --> 00:24:30.520
we're sick or whatever.

00:24:30.840 --> 00:24:32.800
Wait 2 weeks. It's fine to just send it

00:24:32.800 --> 00:24:34.940
again. If you send the patch to EmacsDevil,

00:24:35.660 --> 00:24:37.040
send it to the bug mailing list,

00:24:37.040 --> 00:24:39.260
because we lose track of stuff on EmacsDevil.

00:24:39.800 --> 00:24:41.560
That's just the reality of it.

00:24:43.440 --> 00:24:46.080
So if you propose making a change and no 1

00:24:46.080 --> 00:24:48.340
commented, feel free to ask us again if a

00:24:48.340 --> 00:24:51.080
patch would be welcome and we will clarify.

00:24:53.480 --> 00:24:54.720
Bug reports, unfortunately,

00:24:54.780 --> 00:24:56.280
if you get no answer, I mean,

00:24:56.280 --> 00:24:59.740
we do have a limited amount of time to work

00:24:59.860 --> 00:25:02.360
on bugs. If you're looking to get started in

00:25:02.360 --> 00:25:05.520
Emacs development, this is an excellent way

00:25:05.740 --> 00:25:07.320
to start getting involved.

00:25:07.480 --> 00:25:09.960
What I'd recommend is start looking into

00:25:09.960 --> 00:25:11.420
bugs. I'd install that bug,

00:25:11.420 --> 00:25:13.860
I'd see about the mailing workflow and set

00:25:13.860 --> 00:25:15.800
that up a little bit, or not.

00:25:16.160 --> 00:25:17.960
It's up to you. You can reply to an email

00:25:17.960 --> 00:25:20.160
without setting any of that stuff up.

00:25:20.600 --> 00:25:22.480
But just help us try out your bugs,

00:25:22.540 --> 00:25:24.720
send patches, do that type of stuff.

00:25:24.720 --> 00:25:26.280
I mean, that's an excellent way,

00:25:26.280 --> 00:25:27.740
and extremely welcome.

00:25:27.740 --> 00:25:30.360
We're so happy to see when people pick up bug

00:25:30.360 --> 00:25:32.500
reports that have been left by the wayside

00:25:32.640 --> 00:25:34.580
and just fix them, send us a patch,

00:25:36.040 --> 00:25:37.520
and we can just apply it.

00:25:37.920 --> 00:25:40.360
So that's really your starting point if you

00:25:40.360 --> 00:25:43.600
want to get involved in Emacs core

00:25:44.440 --> 00:25:50.580
development. I also want to say that be aware

00:25:50.580 --> 00:25:54.020
that you know Emacs is the editor of the GNU

00:25:54.280 --> 00:25:56.820
operating system and this makes the project

00:25:56.820 --> 00:25:58.700
political a little bit whether you like it or

00:25:58.700 --> 00:26:01.380
not. Luckily the you know the politics are

00:26:01.560 --> 00:26:03.400
limited enough that we can find broad

00:26:03.400 --> 00:26:05.520
agreement on it. So we want to promote,

00:26:05.780 --> 00:26:08.420
we want to create free software.

00:26:08.860 --> 00:26:10.960
That's sort of it. That's it.

00:26:11.400 --> 00:26:13.740
And there shouldn't be too much more to it,

00:26:13.740 --> 00:26:15.600
right? We want to rid the world of

00:26:15.600 --> 00:26:19.700
proprietary software as an evil thing.

00:26:19.700 --> 00:26:21.920
Ideally, all software should be free.

00:26:23.000 --> 00:26:25.160
But these are just the goals of the free

00:26:25.160 --> 00:26:27.440
software movement. So we're very strict with

00:26:27.440 --> 00:26:29.660
some things. We don't recommend non-free

00:26:30.060 --> 00:26:31.320
proprietary software. Of course,

00:26:31.320 --> 00:26:33.180
we have no problem mentioning Microsoft

00:26:33.260 --> 00:26:35.140
Windows because everyone knows that there's

00:26:35.140 --> 00:26:39.280
this obscure operating system developed in

00:26:39.280 --> 00:26:41.760
California that some people insist on using.

00:26:42.040 --> 00:26:45.000
We use, many of us use GNU plus Linux.

00:26:45.060 --> 00:26:47.380
Actually, some core developers happen to use

00:26:47.440 --> 00:26:50.820
exactly, you know, not GNU plus Linux,

00:26:50.820 --> 00:26:52.600
but that's fine as well,

00:26:52.600 --> 00:26:54.820
right? We take a little bit of a pragmatic

00:26:54.860 --> 00:26:56.840
view, but we don't wanna do,

00:26:56.840 --> 00:26:59.020
what we don't wanna do is promote like this

00:26:59.020 --> 00:27:04.780
small, unknown piece of non-free software and

00:27:04.780 --> 00:27:08.400
sort of help the non-free software in that

00:27:08.400 --> 00:27:11.620
way. That's where we try to draw the line,

00:27:12.440 --> 00:27:15.760
you know, in just expressing just a few

00:27:15.760 --> 00:27:18.060
words. So that's 1 thing.

00:27:18.200 --> 00:27:21.620
We're, I think, very pragmatic on this point,

00:27:21.620 --> 00:27:24.900
but we do try to follow the principle.

00:27:25.240 --> 00:27:27.180
We also require copyright assignment.

00:27:27.700 --> 00:27:30.040
And I think in general,

00:27:30.620 --> 00:27:34.740
the argument is that we require a copyright

00:27:34.780 --> 00:27:38.940
assignment, because that makes it easier to

00:27:39.280 --> 00:27:43.440
defend the legal status of the GNU Emacs

00:27:43.640 --> 00:27:45.920
source code. So if there's ever a legal

00:27:45.920 --> 00:27:48.280
battle, the idea is that if it's only 1

00:27:48.280 --> 00:27:50.260
copyright holder and you have a GPL

00:27:50.320 --> 00:27:54.140
violation, i.e. Someone might change Emacs

00:27:54.140 --> 00:27:55.820
and then distribute it as proprietary

00:27:56.100 --> 00:27:58.040
software or something nasty like that,

00:27:58.040 --> 00:28:00.620
then we have an easier way of defending it in

00:28:00.620 --> 00:28:02.780
court if there is only 1 copyright holder.

00:28:02.780 --> 00:28:04.840
So we assigned copyright to the Free Software

00:28:04.840 --> 00:28:09.460
Foundation. And I think there,

00:28:09.720 --> 00:28:12.600
I mean, sometimes people oppose this for

00:28:12.600 --> 00:28:13.660
various reasons, you know,

00:28:13.660 --> 00:28:15.720
people see it as, you know,

00:28:15.720 --> 00:28:16.880
maybe some people might say,

00:28:16.880 --> 00:28:17.860
you know, it's ideological,

00:28:18.040 --> 00:28:19.340
you know, who goes, you know,

00:28:19.340 --> 00:28:21.360
the FSF goes too far with this.

00:28:21.700 --> 00:28:23.860
And, and, I mean, that's fine.

00:28:23.860 --> 00:28:25.580
You that's, that's an opinion.

00:28:25.640 --> 00:28:28.320
And the there, then other people are more

00:28:28.320 --> 00:28:30.040
practical, you know, it's just,

00:28:30.040 --> 00:28:31.360
It's a hassle, basically,

00:28:31.360 --> 00:28:33.220
we don't want to sign these papers.

00:28:33.640 --> 00:28:35.580
And I'm not really here to tell anyone that

00:28:35.580 --> 00:28:37.160
they're wrong. I've expressed my views on

00:28:37.160 --> 00:28:40.780
this in the past. But just for now,

00:28:40.960 --> 00:28:43.660
I'm just very practical for the purposes of

00:28:43.660 --> 00:28:46.500
this talk. So I signed the papers.

00:28:46.580 --> 00:28:49.280
It's Maybe it didn't take me many minutes.

00:28:49.280 --> 00:28:51.900
And in most cases, it shouldn't really.

00:28:52.580 --> 00:28:55.000
And it's something that I found worth doing,

00:28:55.000 --> 00:28:58.580
because that way I could focus on continuing

00:28:58.580 --> 00:29:01.360
to improve Emacs instead of discussing the

00:29:01.360 --> 00:29:03.220
finer points of copyright law.

00:29:03.480 --> 00:29:05.280
You could write patches and stuff,

00:29:05.280 --> 00:29:06.680
that kind of thing. So,

00:29:06.680 --> 00:29:08.480
I mean, this is something that trips people

00:29:08.480 --> 00:29:11.100
up and, you know, it's fine that people have

00:29:11.320 --> 00:29:14.200
different opinions on it and so on,

00:29:14.200 --> 00:29:19.280
but I think for now that's just something to

00:29:19.280 --> 00:29:23.000
be aware of. So that's,

00:29:23.000 --> 00:29:26.120
I think, I mean, there's much more that could

00:29:26.120 --> 00:29:27.880
be said. Ideally, I would like to have a

00:29:27.880 --> 00:29:31.060
practical part to this talk as well.

00:29:32.020 --> 00:29:34.440
But I wanted to say something about the

00:29:34.440 --> 00:29:37.159
packages in Emacs. Because as we know,

00:29:37.159 --> 00:29:40.440
I mean, Emacs is the, I can't remember what

00:29:40.440 --> 00:29:41.740
it says, it's like a visual,

00:29:42.260 --> 00:29:43.780
there's in the manual it says,

00:29:43.780 --> 00:29:45.900
oh, Emacs is an advanced text editor.

00:29:46.180 --> 00:29:47.980
It's visual, which, I mean,

00:29:47.980 --> 00:29:50.280
it's not ed, the whole Unix ed,

00:29:50.280 --> 00:29:52.700
so that's cool. It's also customizable,

00:29:53.300 --> 00:29:56.180
right? So that's always been a thing.

00:29:57.800 --> 00:29:59.980
And what makes Emacs so amazing.

00:30:00.040 --> 00:30:01.820
And some people described it as,

00:30:01.920 --> 00:30:03.880
I can't remember who said that there has been

00:30:03.880 --> 00:30:09.440
a Cambrian explosion of packages in Emacs.

00:30:09.440 --> 00:30:10.440
And I think that's true.

00:30:10.440 --> 00:30:12.400
I mean, if you look at something like Melpa,

00:30:12.400 --> 00:30:13.760
I think they have over 5,000

00:30:13.940 --> 00:30:16.220
packages now. It's like truly impressive,

00:30:16.460 --> 00:30:18.760
just an immense amount of work and immense

00:30:18.760 --> 00:30:22.320
amount of packages. And really,

00:30:22.860 --> 00:30:24.340
this shows the strength,

00:30:24.340 --> 00:30:26.600
I think, of the Emacs community,

00:30:26.680 --> 00:30:28.780
of Emacs itself as an idea.

00:30:29.060 --> 00:30:31.240
And I think it's also just tremendous work

00:30:31.240 --> 00:30:33.580
that's been done by the maintainers.

00:30:33.960 --> 00:30:36.040
And they do get a lot of recognition for

00:30:36.040 --> 00:30:38.900
that. And rightly so, in my opinion.

00:30:39.620 --> 00:30:41.920
It's done so much, I think,

00:30:41.920 --> 00:30:44.260
for our community. The other package archive

00:30:44.260 --> 00:30:46.340
that we have is GNU-ELPA.

00:30:46.620 --> 00:30:49.640
And that's been enabled since when packages

00:30:49.640 --> 00:30:51.000
first got introduced back in,

00:30:51.000 --> 00:30:53.160
I think, Emacs, was it 23?

00:30:55.520 --> 00:30:59.200
And probably, I mean, the main thing why a

00:30:59.200 --> 00:31:01.860
package goes onto GNU Elpa is,

00:31:01.860 --> 00:31:04.040
you know, it should be installable out of the

00:31:04.040 --> 00:31:07.580
box. So, I mean, that's a big benefit in a

00:31:07.580 --> 00:31:10.960
sense. It's also a requirement for GNU Alpa

00:31:10.960 --> 00:31:12.240
that the copyright, again,

00:31:12.240 --> 00:31:14.540
just as GNU Emacs, the copyright is assigned

00:31:15.480 --> 00:31:17.020
to the Free Software Foundation.

00:31:17.080 --> 00:31:19.940
And some very hugely popular packages,

00:31:20.020 --> 00:31:21.420
like YaSnippet, for example,

00:31:21.420 --> 00:31:25.060
is on GNU Alpa. And we were discussing this

00:31:25.160 --> 00:31:30.040
just 2 months back. And Joe Tavora,

00:31:30.060 --> 00:31:31.780
I can't say his name, G-O-A-O,

00:31:33.280 --> 00:31:36.100
Tavora. He made the point that he's never

00:31:36.140 --> 00:31:40.280
seen a problem in any of his packages with

00:31:40.280 --> 00:31:42.100
copyright assignment in particular.

00:31:42.100 --> 00:31:44.540
It's never been a problem to get people to be

00:31:44.540 --> 00:31:46.560
involved in the development of those packages

00:31:46.560 --> 00:31:48.220
just because of the copyright assignment

00:31:49.160 --> 00:31:50.640
requirements. So I mean,

00:31:51.180 --> 00:31:53.840
that's his perspective on that.

00:31:54.320 --> 00:32:00.480
And I think it was worth relating his

00:32:00.480 --> 00:32:06.500
experience here. So we also have this new

00:32:06.500 --> 00:32:08.500
package archive called non-GNU-alpha,

00:32:08.920 --> 00:32:12.880
which is now enabled by default as well.

00:32:12.920 --> 00:32:14.440
I think for practical purposes,

00:32:14.540 --> 00:32:16.880
you could get into it a little bit more,

00:32:16.960 --> 00:32:18.840
you know, why we created non-NUELPA,

00:32:19.940 --> 00:32:22.320
and perhaps that's something we can discuss

00:32:23.360 --> 00:32:26.240
in the Q&A section. For practical purposes,

00:32:26.380 --> 00:32:28.280
the main thing to be aware of is,

00:32:28.280 --> 00:32:30.980
yes, we don't promote non-free software on

00:32:30.980 --> 00:32:36.780
there, And we also don't have the copyright

00:32:36.780 --> 00:32:39.060
assignment requirement.

00:32:41.400 --> 00:32:43.820
I think this is probably for new packages.

00:32:43.940 --> 00:32:48.180
It's generally better if they go to GNU Elpa,

00:32:48.180 --> 00:32:51.220
if there is any type of idea or ambition

00:32:51.280 --> 00:32:53.460
that, you know, at some point it would be

00:32:53.460 --> 00:32:56.740
good or it might be good to eventually have

00:32:56.740 --> 00:32:58.900
some type of functionality like this shipped

00:32:58.900 --> 00:33:01.200
with Emacs itself. So I think this is

00:33:01.200 --> 00:33:04.020
something that perhaps package authors could

00:33:04.020 --> 00:33:07.340
also be aware of, that occasionally we do

00:33:07.340 --> 00:33:09.780
bring in functionality from GNU Elpa into

00:33:09.780 --> 00:33:12.180
core Emacs because we feel that it should be

00:33:12.440 --> 00:33:15.560
better integrated with Emacs itself.

00:33:16.420 --> 00:33:18.480
So if I could give any type of

00:33:18.480 --> 00:33:19.400
recommendation, of course,

00:33:19.400 --> 00:33:22.120
you do. These are your packages,

00:33:22.120 --> 00:33:25.520
right? In an ideal world,

00:33:25.520 --> 00:33:28.680
we would only use this for legacy packages

00:33:28.680 --> 00:33:30.240
where people contributed in the past,

00:33:30.240 --> 00:33:32.120
but you didn't worry about the copyright

00:33:32.120 --> 00:33:34.200
assignment. But where possible,

00:33:34.200 --> 00:33:37.480
I think there is benefit in putting it on GNU

00:33:37.540 --> 00:33:42.900
Elpa. And I wanted to end a little bit on a

00:33:42.900 --> 00:33:45.140
more, you know, the more opinionated perhaps

00:33:45.380 --> 00:33:47.260
part of my talk and not just talk about

00:33:47.260 --> 00:33:49.160
processes. I see that I'm running out of

00:33:49.160 --> 00:33:51.700
time. So I will say Emacs is hackable.

00:33:51.760 --> 00:33:54.520
And I think that's a blessing and a curse.

00:33:54.520 --> 00:33:56.340
And if you think about something like,

00:33:59.060 --> 00:34:01.100
the types of choices that you can make,

00:34:01.100 --> 00:34:03.040
perhaps when you implement something,

00:34:03.160 --> 00:34:06.680
There are choices, different choices between

00:34:06.680 --> 00:34:07.740
something like common list,

00:34:07.740 --> 00:34:09.440
which is like bigger, more batteries

00:34:09.440 --> 00:34:11.320
included, and something like scheme,

00:34:11.320 --> 00:34:12.239
which is more minimal.

00:34:12.239 --> 00:34:13.679
And I think we have some of those,

00:34:13.679 --> 00:34:16.280
you know, this kind of tension also in the

00:34:16.280 --> 00:34:18.159
Emacs itself. What should be in Emacs core?

00:34:18.159 --> 00:34:19.699
Should we have a lean Emacs core?

00:34:19.699 --> 00:34:21.800
Should we have more stuff in Emacs core?

00:34:22.360 --> 00:34:26.320
And I think these are good discussions to

00:34:26.320 --> 00:34:29.380
have. And there are various challenges that

00:34:29.380 --> 00:34:31.940
are associated with each of those choices.

00:34:32.540 --> 00:34:35.320
I think what will never change is that Emacs

00:34:35.320 --> 00:34:37.280
is hackable. Emacs is customizable.

00:34:37.500 --> 00:34:38.800
This is the key strength.

00:34:38.860 --> 00:34:40.960
This is why we love and use Emacs.

00:34:40.960 --> 00:34:41.820
I think fundamentally,

00:34:42.380 --> 00:34:44.280
whether you do it a lot or not,

00:34:44.380 --> 00:34:47.260
this is what at core is bringing you that

00:34:47.320 --> 00:34:49.179
amazing user experience.

00:34:50.739 --> 00:34:53.199
However, the flip side of that sometimes is

00:34:53.199 --> 00:34:56.280
that it's so easy to hack Emacs so that we

00:34:56.280 --> 00:34:58.520
hack around bugs instead of fixing them.

00:34:58.520 --> 00:35:00.540
We do some tweak and our customers say,

00:35:00.540 --> 00:35:01.720
okay, this is a little bit broken,

00:35:01.720 --> 00:35:03.560
Let me just fix it. I'll put an advice on

00:35:03.560 --> 00:35:05.700
this function. I'll do this customization.

00:35:06.500 --> 00:35:09.040
Or we accept limitations in Emacs core.

00:35:09.340 --> 00:35:12.100
And I think it's fine.

00:35:12.380 --> 00:35:13.760
I mean, this will never change.

00:35:13.760 --> 00:35:16.560
That will always be core to what Emacs is,

00:35:16.560 --> 00:35:20.140
right? However, I think that the flip side of

00:35:20.140 --> 00:35:22.500
that is that I think sometimes we could be

00:35:22.500 --> 00:35:26.760
better at just taking those few extra steps

00:35:26.820 --> 00:35:29.260
to also make Emacs better itself and solve

00:35:29.260 --> 00:35:31.680
this for all users. And I think if we can

00:35:31.680 --> 00:35:33.680
build a little bit more of a culture like

00:35:33.680 --> 00:35:35.460
that, I mean, we already have that culture to

00:35:35.460 --> 00:35:37.200
a large extent, don't get me wrong,

00:35:37.200 --> 00:35:39.620
we do, but if we can get a little bit more of

00:35:39.620 --> 00:35:41.320
that culture, let's get that into core,

00:35:41.320 --> 00:35:43.760
let's get that problem fixed,

00:35:43.980 --> 00:35:46.140
that frustration. I can tell you that,

00:35:47.040 --> 00:35:48.940
I just started a new assignment at work,

00:35:48.940 --> 00:35:51.420
I already told you, so I'm going to write a

00:35:51.420 --> 00:35:54.140
lot of Python, okay? So I need to keep track

00:35:54.140 --> 00:35:55.740
of something called virtual environments,

00:35:56.040 --> 00:35:58.260
and that's just a way to install these

00:35:58.440 --> 00:36:01.640
dependencies just locally per directory or

00:36:01.640 --> 00:36:03.420
per repository kind of thing.

00:36:03.900 --> 00:36:05.740
And I've used various packages for that.

00:36:05.740 --> 00:36:07.860
There are like 4 packages,

00:36:07.940 --> 00:36:10.560
5 packages, maybe. And 1 is called VM,

00:36:10.560 --> 00:36:11.740
and 1 is called VirtualM,

00:36:11.820 --> 00:36:13.640
and 1 is called Python-VM.

00:36:15.420 --> 00:36:16.980
And now I'm using, you know,

00:36:16.980 --> 00:36:18.100
I'm using a different 1.

00:36:18.100 --> 00:36:19.620
And it's just a little bit,

00:36:20.080 --> 00:36:22.160
why doesn't this work out of the box in

00:36:22.160 --> 00:36:25.680
Emacs? Why? I don't think there's a really

00:36:25.680 --> 00:36:28.640
good fundamental good reason why something

00:36:28.640 --> 00:36:30.460
like that doesn't work in Emacs.

00:36:30.480 --> 00:36:31.980
So I think that's really,

00:36:32.220 --> 00:36:35.220
I mean, I'm sure there are other things like

00:36:35.220 --> 00:36:37.280
that, other fundamental features.

00:36:37.740 --> 00:36:39.920
Why is it that for the last 20 years,

00:36:39.920 --> 00:36:43.740
we've shipped Emacs with no PHP support out

00:36:43.740 --> 00:36:47.660
of the box? I mean, I'm not a PHP programmer.

00:36:47.660 --> 00:36:51.020
I don't really have a lot of love for PHP,

00:36:51.020 --> 00:36:56.020
let's say. To me, it's a very funny-looking

00:36:57.180 --> 00:37:00.060
language, but okay, still it's been very

00:37:00.060 --> 00:37:02.060
popular. Why haven't we supported it?

00:37:02.120 --> 00:37:03.280
I mean, it's just strange.

00:37:03.280 --> 00:37:05.040
You install Emacs on some machine,

00:37:05.220 --> 00:37:07.260
you open a PHP file, you get fundamental

00:37:07.280 --> 00:37:09.160
mode. It's not the best user experience,

00:37:09.160 --> 00:37:12.600
in my opinion. So I think there are some

00:37:12.600 --> 00:37:15.480
things where we really could do a little bit

00:37:15.480 --> 00:37:20.200
better. And I'm seeing this all the time.

00:37:20.200 --> 00:37:22.500
Just this week, this new assignment was

00:37:22.500 --> 00:37:24.640
interesting. There was this Emacs user.

00:37:24.720 --> 00:37:26.980
Turns out we have the exact same hack in both

00:37:26.980 --> 00:37:29.860
of our init files. So we had created the

00:37:29.860 --> 00:37:32.140
exact same mode for DIRED,

00:37:32.140 --> 00:37:33.920
actually, to hide dot files.

00:37:33.920 --> 00:37:36.720
You know, dot something is supposed to be

00:37:36.720 --> 00:37:39.440
hidden on a Unix system.

00:37:40.240 --> 00:37:43.940
So we had DERED hide dot files mode to just

00:37:43.940 --> 00:37:47.100
hide them. And why isn't that in DERED?

00:37:47.100 --> 00:37:48.420
Or should it be in DERED?

00:37:48.480 --> 00:37:50.860
Should it be a package on the new Elpa?

00:37:51.000 --> 00:37:53.000
Where should it be? Why is it just local

00:37:53.000 --> 00:37:54.680
hack? Should it be on a wiki somewhere?

00:37:54.680 --> 00:37:56.740
I mean, sometimes that's the correct answer.

00:37:56.980 --> 00:37:59.060
Sometimes the correct answer is,

00:37:59.060 --> 00:38:00.420
yes, it should be a package.

00:38:00.780 --> 00:38:02.360
Sometimes the correct answer is,

00:38:02.360 --> 00:38:04.140
yes, it should really be in core.

00:38:04.280 --> 00:38:06.420
So what I want to promote is more like,

00:38:06.480 --> 00:38:08.900
let's just take a step back and just ask

00:38:08.900 --> 00:38:11.180
yourself, what's the best solution if we look

00:38:11.180 --> 00:38:12.240
at the overall picture?

00:38:12.240 --> 00:38:13.920
Should I hack this into my configuration?

00:38:14.600 --> 00:38:16.840
In many cases, yes, that's the right thing to

00:38:16.840 --> 00:38:19.540
do. We don't want to proliferate just random

00:38:19.840 --> 00:38:22.160
solutions all over Emacs for no reason.

00:38:22.540 --> 00:38:24.760
But sometimes we want to fix it once and for

00:38:24.760 --> 00:38:27.700
all. We want to do that in core.

00:38:27.880 --> 00:38:30.200
So you could send stuff like that to us as

00:38:30.200 --> 00:38:31.480
patches or as packages.

00:38:31.560 --> 00:38:34.340
And we can discuss a little bit about where

00:38:34.340 --> 00:38:36.420
should we solve this? What's the right level

00:38:37.280 --> 00:38:41.100
of abstraction? I'm seeing that I'm running

00:38:41.100 --> 00:38:43.620
out of time. I had an Emacs wish list.

00:38:43.620 --> 00:38:46.880
Maybe we can take more of that in the Q&A.

00:38:47.170 --> 00:38:49.226
But I want to say, like,

00:38:49.226 --> 00:38:50.460
in VS Code, you just start VS Code.

00:38:50.460 --> 00:38:51.660
You open a Python file,

00:38:51.660 --> 00:38:53.040
and you get, like, hey,

00:38:53.040 --> 00:38:54.560
are you trying to use Python?

00:38:54.840 --> 00:38:56.280
Click here, install Python.

00:38:56.280 --> 00:38:58.700
You get all the nice things out of the box.

00:38:59.180 --> 00:39:01.560
And my argument is, why can't we have more of

00:39:01.560 --> 00:39:03.880
that in Emacs? I don't think it's necessarily

00:39:04.000 --> 00:39:06.360
hard, but it does take a little bit of work.

00:39:06.960 --> 00:39:09.060
The challenges here are more social,

00:39:09.060 --> 00:39:10.880
I think, than technical.

00:39:10.900 --> 00:39:12.780
And I think it's worth doing,

00:39:12.780 --> 00:39:14.060
because it's not just Python.

00:39:14.060 --> 00:39:16.640
It's just There are always these small things

00:39:16.640 --> 00:39:18.900
where it just really should work,

00:39:18.900 --> 00:39:20.900
and that would be a much better experience.

00:39:20.900 --> 00:39:23.360
And then you could customize not that thing

00:39:23.360 --> 00:39:24.600
that should just work,

00:39:24.640 --> 00:39:27.140
but you could customize more fun and

00:39:27.140 --> 00:39:29.620
exploratory things instead of people

00:39:29.620 --> 00:39:31.720
reinventing the wheel over and over again.

00:39:31.720 --> 00:39:33.420
So I'm very excited about what's happening in

00:39:33.420 --> 00:39:35.280
Emacs. I think we should be proud of what

00:39:35.280 --> 00:39:37.360
we've accomplished. It's so many things to

00:39:37.360 --> 00:39:38.360
many different people,

00:39:38.360 --> 00:39:39.660
an environment for hacking,

00:39:40.040 --> 00:39:41.620
just a productivity system.

00:39:41.880 --> 00:39:44.020
Other sees us as a different way of looking

00:39:44.020 --> 00:39:45.360
at computing, you know,

00:39:45.360 --> 00:39:47.440
the embodiment of the ideal of the Lisp

00:39:47.440 --> 00:39:49.280
machine if you want to talk big words and

00:39:49.280 --> 00:39:50.660
stuff like that. And of course,

00:39:50.660 --> 00:39:53.320
Emacs are all those things and so many more.

00:39:53.320 --> 00:39:55.440
And that's what makes Emacs so amazing.

00:39:56.280 --> 00:40:00.780
And in some sense, we should be care that

00:40:00.780 --> 00:40:03.040
people are satisfied with using lesser text

00:40:03.040 --> 00:40:05.600
editors. How could they be happy running

00:40:05.600 --> 00:40:07.440
that? I mean, I'm sure it's fine,

00:40:07.440 --> 00:40:09.800
but it sure as hell isn't Emacs.

00:40:09.800 --> 00:40:12.340
So don't we owe it to the world and to them

00:40:12.340 --> 00:40:14.440
and to ourselves to make a great Emacs.

00:40:14.760 --> 00:40:16.120
That will be my ending words.

00:40:16.120 --> 00:40:18.020
And I hope to see you all in the Q&A.

00:40:18.120 --> 00:40:22.560
Thank you all. And thank you so much,

00:40:22.560 --> 00:40:24.360
Stefan. That was a wonderful presentation.

00:40:24.800 --> 00:40:27.280
And I just want to give you the opportunity.

00:40:27.340 --> 00:40:29.940
You said that you perhaps had,

00:40:30.480 --> 00:40:31.400
Not the practical stuff,

00:40:31.400 --> 00:40:33.280
but you wanted to do a demo or something like

00:40:33.280 --> 00:40:34.780
this? What did you mention exactly?

00:40:36.180 --> 00:40:38.460
Yeah, we didn't have time really.

00:40:38.740 --> 00:40:42.040
Yes, I'm not sure. I didn't prepare anything

00:40:42.040 --> 00:40:43.580
so that we can do it live.

00:40:43.620 --> 00:40:44.800
But maybe for next time,

00:40:44.800 --> 00:40:48.620
I will do a demo. Don't hold me to it.

00:40:49.920 --> 00:40:51.100
Or someone else could.

00:40:51.100 --> 00:40:52.540
That would be really amazing.

00:40:53.260 --> 00:40:54.020
Right. Well, thank you,

00:40:54.020 --> 00:40:56.820
Stéphane. You've been already into so much

00:40:56.820 --> 00:41:00.560
detail of so many... So much of the intricacy

00:41:01.780 --> 00:41:05.100
of the maintenance. And as someone who's been

00:41:05.460 --> 00:41:07.980
95% of the time developing for Melpa,

00:41:08.260 --> 00:41:11.040
I feel like this talk was very geared to a

00:41:11.040 --> 00:41:13.980
lot of us who tend to experiment in this

00:41:13.980 --> 00:41:16.400
Cambrian stage of Emacs evolution,

00:41:16.400 --> 00:41:19.620
where we get to deploy a lot of creativity

00:41:20.600 --> 00:41:24.020
whilst also feeling pretty agile in a way we

00:41:24.020 --> 00:41:25.580
come up with solutions to problems.

00:41:25.640 --> 00:41:29.240
But you've won me over with your discussion

00:41:29.240 --> 00:41:31.360
about potentially moving some of this stuff

00:41:31.360 --> 00:41:33.220
to core. And I think this particularly

00:41:33.280 --> 00:41:36.140
resonated at the end with this tension that

00:41:36.140 --> 00:41:38.660
you feel about problems that you encounter.

00:41:39.160 --> 00:41:40.760
Do you fix them in Melpa?

00:41:40.760 --> 00:41:42.040
Do you fix them in core?

00:41:42.040 --> 00:41:43.780
Is it not something that is supposed to be an

00:41:43.780 --> 00:41:46.560
option? I love this tension and it's

00:41:46.560 --> 00:41:48.040
something that we've been exploring for the

00:41:48.040 --> 00:41:49.780
last 3 edition of Emacs Cons.

00:41:49.780 --> 00:41:52.480
It's really what is to be the interaction

00:41:52.600 --> 00:41:55.660
between this pool of very clever developers

00:41:55.680 --> 00:41:58.100
who are on Melpa but who are perhaps a little

00:41:58.100 --> 00:42:00.880
bit afraid of joining Core and the wonderful

00:42:00.920 --> 00:42:02.860
job that you do that, yes,

00:42:02.980 --> 00:42:05.640
seems archaic from the outside,

00:42:05.860 --> 00:42:07.840
but as you've been at length today in your

00:42:07.840 --> 00:42:09.480
presentation, is actually just a better way

00:42:09.480 --> 00:42:11.780
to work, a very pragmatic way to get a lot of

00:42:11.780 --> 00:42:13.320
work done. So, thank you so much for your

00:42:13.320 --> 00:42:15.240
presentation. Thank you,

00:42:15.240 --> 00:42:20.740
Leo. So, we have about 12 minutes now to go

00:42:20.740 --> 00:42:22.950
through as many questions as possible.

00:42:22.950 --> 00:42:26.000
You have obviously had a lot of questions

00:42:26.000 --> 00:42:27.180
throughout your presentation.

00:42:27.660 --> 00:42:28.940
Do you have access to the pad,

00:42:28.940 --> 00:42:30.400
or do you want me to share the question and

00:42:30.400 --> 00:42:32.660
feed them to you? Yes,

00:42:32.660 --> 00:42:34.200
could you start with sharing them?

00:42:34.200 --> 00:42:36.000
I'll see if I can get it on my screen.

00:42:36.280 --> 00:42:39.640
Sure, I'll do that. Please let me know if my

00:42:39.720 --> 00:42:42.980
microphone is clipping because my OBS setup

00:42:42.980 --> 00:42:44.440
sometimes is a little bit janky.

00:42:44.440 --> 00:42:46.080
But I'm going to try to read the questions

00:42:46.080 --> 00:42:47.780
for now. It's tipping,

00:42:48.080 --> 00:42:51.980
I can hear you okay. Okay,

00:42:51.980 --> 00:42:54.400
so bear with the clicking,

00:42:54.400 --> 00:42:56.480
we'll switch as soon as possible to Stefan

00:42:56.480 --> 00:42:58.080
reading the question, but I'll read the first

00:42:58.080 --> 00:43:02.820
1. Can you tell us some about your,

00:43:02.860 --> 00:43:04.340
can you tell us some more I assume,

00:43:04.340 --> 00:43:06.160
about your background with Emacs development

00:43:06.160 --> 00:43:07.500
and programming in general,

00:43:07.580 --> 00:43:09.220
your professional work possibly?

00:43:11.400 --> 00:43:15.440
Yeah, sure. Okay, I studied computer science

00:43:15.440 --> 00:43:19.960
at university. I started programming on a

00:43:19.960 --> 00:43:23.960
Commodore 64. I started with BASIC and then I

00:43:23.960 --> 00:43:26.880
did a couple of versions of BASIC as a kid.

00:43:27.380 --> 00:43:31.540
But then really things took off when I

00:43:31.540 --> 00:43:34.240
started using GNU Linux.

00:43:34.300 --> 00:43:35.580
I can't remember which year,

00:43:35.580 --> 00:43:37.440
maybe it was early 2000,

00:43:38.480 --> 00:43:39.740
something like that, late.

00:43:39.840 --> 00:43:42.080
No, it must've been before that actually,

00:43:42.380 --> 00:43:44.120
because I remember I was 14.

00:43:44.340 --> 00:43:46.020
Yeah, okay, so let's say 1999,

00:43:46.500 --> 00:43:48.720
1998, somewhere there around.

00:43:48.840 --> 00:43:50.200
Then I started with Perl,

00:43:50.200 --> 00:43:52.620
and I did Perl for a good long while.

00:43:52.700 --> 00:43:55.460
I learned C++, I learned C,

00:43:55.680 --> 00:43:56.960
I did all kinds of stuff,

00:43:56.960 --> 00:43:58.640
and then I went to university,

00:43:59.440 --> 00:44:01.700
computer science, and I've been working,

00:44:01.700 --> 00:44:03.980
you know, in various roles.

00:44:04.160 --> 00:44:06.300
Right now, I'm coding Python.

00:44:06.980 --> 00:44:09.640
Up until last Friday, I was writing firmware

00:44:09.940 --> 00:44:12.319
in C for a small microcontroller,

00:44:12.440 --> 00:44:15.600
which is pretty different than writing

00:44:15.600 --> 00:44:17.060
Python, that's for sure.

00:44:17.220 --> 00:44:19.600
So yeah, so that's a little bit about me.

00:44:19.600 --> 00:44:21.860
I got interested in free software,

00:44:22.300 --> 00:44:24.720
you know, also at a very young age.

00:44:24.720 --> 00:44:26.320
So, I mean, I've been following these,

00:44:26.320 --> 00:44:29.120
you know, ideological discussions and

00:44:29.120 --> 00:44:31.560
debates, read all this stuff by Richard

00:44:31.560 --> 00:44:33.940
Stallman and so on and so forth.

00:44:33.940 --> 00:44:37.760
But yeah, that's it. Great,

00:44:37.760 --> 00:44:41.120
thank you. I'll move on to the next question.

00:44:41.120 --> 00:44:42.980
You'll have to listen to me because if I

00:44:42.980 --> 00:44:45.020
start sharing my screen again,

00:44:45.020 --> 00:44:46.320
we're going to get some clicks.

00:44:48.140 --> 00:44:50.680
So the question. Do you think that 1 day

00:44:50.680 --> 00:44:53.930
there will be a native I'll start again,

00:44:53.930 --> 00:44:54.079
sorry. Do you think that 1 day there will be

00:44:54.079 --> 00:44:54.440
a native... I'll start again,

00:44:54.440 --> 00:44:56.480
sorry. Do you think that 1 day there will be

00:44:56.480 --> 00:44:59.020
a native graphical web browser in Emacs or is

00:44:59.020 --> 00:45:00.540
it kind of against its philosophy and

00:45:00.540 --> 00:45:03.820
architecture? So will we stick just with EWW

00:45:04.200 --> 00:45:06.800
and EAF or similar workaround tricks?

00:45:08.640 --> 00:45:11.200
So if, I don't know if people have seen,

00:45:11.200 --> 00:45:12.740
there is a talk by, I think,

00:45:13.440 --> 00:45:15.080
Perry Metzger, is that the name?

00:45:15.080 --> 00:45:16.800
Sorry if I got the name wrong.

00:45:17.080 --> 00:45:18.360
Perry Metzger, I think.

00:45:18.720 --> 00:45:20.800
It's like, he marks a text editor for the

00:45:20.800 --> 00:45:22.640
next 40 years. He makes an excellent point

00:45:22.640 --> 00:45:24.720
there that 1 of the things that we need to do

00:45:24.720 --> 00:45:27.840
is really get a proper HTML rendering in

00:45:27.840 --> 00:45:30.260
Emacs. It's like a dream at this point.

00:45:30.260 --> 00:45:32.200
No 1 is actively working on something like

00:45:32.200 --> 00:45:34.240
that. I think that, you know,

00:45:34.240 --> 00:45:36.380
there, first of all, you'd need to rewrite

00:45:36.380 --> 00:45:39.520
the display engine. So that's a big job.

00:45:39.920 --> 00:45:41.140
It is. I'm not saying,

00:45:41.140 --> 00:45:42.540
you know, it can't be done,

00:45:43.040 --> 00:45:44.660
but you need to start there.

00:45:44.660 --> 00:45:47.560
Right? Second of all, you need to think

00:45:47.560 --> 00:45:50.460
about, you know, with all the Emacs Lisp code

00:45:50.460 --> 00:45:52.090
out there, is really assuming,

00:45:52.090 --> 00:45:54.960
you know, 1 paradigm, which is that you have

00:45:54.960 --> 00:45:57.720
a square, and basically you have columns and

00:45:57.720 --> 00:45:59.760
you have rows, and everything is in there,

00:45:59.760 --> 00:46:02.360
even images, is basically in a column,

00:46:02.540 --> 00:46:04.740
you know, in a column on a row somewhere.

00:46:05.380 --> 00:46:07.360
Whereas, you know, when you just start doing

00:46:07.360 --> 00:46:09.780
the more web stuff and web rendering,

00:46:10.120 --> 00:46:12.020
you already have like a seaplane.

00:46:12.040 --> 00:46:14.500
You have different types of geometries that

00:46:14.500 --> 00:46:16.880
are possible. And what does it mean to go to

00:46:16.880 --> 00:46:19.370
the logical next line in that kind of sense?

00:46:19.370 --> 00:46:21.420
I mean these types of things I'm not saying

00:46:21.420 --> 00:46:23.440
it can't be done. I'm saying there are there

00:46:23.440 --> 00:46:27.440
are definitely some challenges there It would

00:46:27.440 --> 00:46:30.280
be amazing I mean, but we need someone with

00:46:30.280 --> 00:46:33.020
you know, the inclination and talent I think

00:46:33.320 --> 00:46:37.680
to work on that's a job posting if I've ever

00:46:37.680 --> 00:46:40.200
had 1. So good luck to whoever's willing to

00:46:40.200 --> 00:46:42.100
apply for this 1. I think it's a tough 1.

00:46:43.180 --> 00:46:46.440
It is, yes. Go on. Okay,

00:46:46.560 --> 00:46:48.040
do you happen to have the questions in front

00:46:48.040 --> 00:46:50.320
of you? Can I just read them to you so that

00:46:50.320 --> 00:46:52.660
you can also have a feedback in front of you?

00:46:54.780 --> 00:46:56.680
Yes, I have the pad here.

00:46:57.260 --> 00:46:58.860
Okay, cool. So I'll read the next question

00:46:58.860 --> 00:47:00.260
and this way I don't have to worry too much

00:47:00.260 --> 00:47:02.320
about me butchering every word in the

00:47:02.320 --> 00:47:04.540
sentence. So, Emacs development and

00:47:04.540 --> 00:47:06.460
communication still is very much focused on

00:47:06.460 --> 00:47:08.640
email mailing lists. I like this,

00:47:08.640 --> 00:47:10.380
but what do you think about introducing other

00:47:10.380 --> 00:47:12.320
channels for talking to users,

00:47:12.440 --> 00:47:15.140
like the Emacs project community could set up

00:47:15.140 --> 00:47:17.120
a master on instance of its own,

00:47:17.120 --> 00:47:20.280
for instance? I think from the point of view

00:47:20.280 --> 00:47:21.760
of the Emacs core team,

00:47:21.760 --> 00:47:23.860
we don't really have a lot of resources or

00:47:23.860 --> 00:47:25.960
people inclined to be working on stuff like

00:47:25.960 --> 00:47:27.880
that. But I mean, there is so much going on.

00:47:27.880 --> 00:47:29.360
Emacs is a very, you know,

00:47:30.420 --> 00:47:32.580
It's a big community, frankly,

00:47:32.580 --> 00:47:34.500
right? So people working on emacs.com,

00:47:34.760 --> 00:47:37.400
there are people in the IRC channel,

00:47:37.500 --> 00:47:39.200
the emacs IRC channel,

00:47:39.400 --> 00:47:40.820
there's the emacs subreddit.

00:47:40.960 --> 00:47:43.280
And I mean, people are doing an incredible

00:47:43.380 --> 00:47:45.480
job. And I think if people wanna do more

00:47:45.480 --> 00:47:46.400
stuff like that, I mean,

00:47:46.400 --> 00:47:48.840
Don't wait for Argo, just go for it.

00:47:52.000 --> 00:47:54.340
Great. Moving on to the next question.

00:47:54.340 --> 00:47:56.520
Sorry, I'm not commenting anymore because we

00:47:56.520 --> 00:47:58.180
have so many questions and I'd love for you

00:47:58.180 --> 00:48:00.260
to answer as many people as possible because

00:48:00.260 --> 00:48:02.540
we have about 6 minutes technically,

00:48:02.640 --> 00:48:04.820
but we can go perhaps a little bit over.

00:48:05.080 --> 00:48:06.220
If you have the time, Stefan,

00:48:06.220 --> 00:48:08.680
though. Yeah. Okay, great.

00:48:09.340 --> 00:48:11.140
What are some features or packages you'd like

00:48:11.140 --> 00:48:12.540
to see developed by the community?

00:48:12.560 --> 00:48:15.560
We've already talked about the native HTTP

00:48:15.920 --> 00:48:17.620
display, but do you have any others?

00:48:19.540 --> 00:48:22.080
So, I mean, developed by the community,

00:48:22.360 --> 00:48:23.240
it depends what you mean.

00:48:23.240 --> 00:48:27.720
So do you mean sending stuff that people

00:48:27.720 --> 00:48:29.720
could be working on in general?

00:48:30.480 --> 00:48:33.320
I think for now, like let's say the roadmap,

00:48:33.420 --> 00:48:35.140
I'll just give some of the things that I

00:48:35.140 --> 00:48:36.940
think should happen right now and that I

00:48:36.940 --> 00:48:39.060
would love for people to send patches for.

00:48:39.060 --> 00:48:41.120
That's what I'm gonna be answering because

00:48:41.120 --> 00:48:42.860
that's what I think I can answer.

00:48:43.280 --> 00:48:45.220
Tree-sitter is a new thing,

00:48:45.280 --> 00:48:48.620
right? Improving and working on new modes

00:48:48.860 --> 00:48:50.040
for, you know, TreeSitter,

00:48:50.200 --> 00:48:52.860
it's not very hard. I think many people get

00:48:52.900 --> 00:48:55.560
into it and make sure to integrate them in

00:48:55.560 --> 00:48:57.540
Emacs core. I think that would be,

00:48:58.140 --> 00:49:00.140
I mean, on my wishlist.

00:49:00.140 --> 00:49:01.960
The other thing that is that we've asked for

00:49:01.960 --> 00:49:03.740
someone perhaps with a little bit more

00:49:03.740 --> 00:49:05.940
experience, I think, but working on

00:49:05.940 --> 00:49:09.080
refactoring capabilities in Emacs and a more

00:49:09.080 --> 00:49:11.320
general framework, I think,

00:49:11.320 --> 00:49:13.680
for that. There are probably many more ideas

00:49:13.780 --> 00:49:15.300
that I could give people,

00:49:15.300 --> 00:49:17.720
but those would be the 2 big ones,

00:49:17.720 --> 00:49:20.140
I think, that are also very uncontroversial.

00:49:22.360 --> 00:49:23.960
It's funny because for me,

00:49:24.400 --> 00:49:26.760
I don't think refactoring would count as a

00:49:26.760 --> 00:49:29.760
feature, but it's so vital to allowing

00:49:30.360 --> 00:49:31.780
further features to be developed.

00:49:31.780 --> 00:49:34.160
Otherwise, I remember the way Org Mode used

00:49:34.160 --> 00:49:36.300
to be before we had Org Element and stuff

00:49:36.300 --> 00:49:38.940
like this. It was really complicated to write

00:49:38.940 --> 00:49:41.200
any kind of parsing stuff for it.

00:49:41.200 --> 00:49:42.340
And now that we've got it,

00:49:42.340 --> 00:49:44.080
it just opened up a world of possibility

00:49:44.180 --> 00:49:46.160
where parsing an Org Mode file is just made

00:49:46.160 --> 00:49:48.280
so much easier. So I think that's a wonderful

00:49:48.280 --> 00:49:49.620
answer because it goes,

00:49:49.760 --> 00:49:52.080
it's multi-layered as you would expect from

00:49:52.080 --> 00:49:53.920
something that concerns the whole of Emacs.

00:49:55.800 --> 00:49:57.160
Moving on to the next question.

00:49:57.440 --> 00:49:59.960
What is the hardest decision being made

00:49:59.960 --> 00:50:02.480
within Emacs dev for the last 3 years.

00:50:02.480 --> 00:50:04.960
I'm not sure, is it the decision in the last

00:50:04.960 --> 00:50:07.480
3 years or I'll let you interpret the

00:50:07.480 --> 00:50:08.760
question however you want.

00:50:09.280 --> 00:50:10.960
Okay, well, I'll say this.

00:50:11.640 --> 00:50:14.220
I started in August and I haven't had any

00:50:14.220 --> 00:50:16.920
really hard decisions so far.

00:50:16.920 --> 00:50:20.540
So good news. Maybe Eli will have more for

00:50:20.540 --> 00:50:22.820
the last 3 years. Keep it simple.

00:50:25.240 --> 00:50:28.660
Thanks. Cool. Next question.

00:50:28.860 --> 00:50:31.920
Any plans to integrate XWM into core?

00:50:31.940 --> 00:50:34.400
Emacs is a really good Winters manager.

00:50:34.780 --> 00:50:38.080
That's super cool. I think EXWM is cool.

00:50:38.100 --> 00:50:40.140
I think they need to upgrade to Wayland

00:50:40.260 --> 00:50:41.880
somehow and that's not clear yet,

00:50:41.880 --> 00:50:44.880
but you know, we don't have any current plans

00:50:44.880 --> 00:50:48.900
to integrate it, no. Right,

00:50:49.020 --> 00:50:51.600
Next question. Do you think it is a good idea

00:50:51.600 --> 00:50:53.540
to choose Org Mode for writing documentation

00:50:53.680 --> 00:50:57.740
instead of tech info? I think that whatever

00:50:57.740 --> 00:50:59.680
we do, it should be the people that are

00:50:59.680 --> 00:51:01.760
working on the documentation that should make

00:51:01.760 --> 00:51:03.420
that choice. Currently we have,

00:51:03.420 --> 00:51:05.920
I think, Modus themes and Org Mode itself is

00:51:05.920 --> 00:51:08.060
writing their documentation in Org Mode,

00:51:08.080 --> 00:51:10.940
that's fine by me. It has some drawbacks,

00:51:10.960 --> 00:51:13.440
it has some benefits, but most documentation

00:51:13.580 --> 00:51:14.840
is still in tech info.

00:51:15.240 --> 00:51:17.360
Maybe we'd need to replace that at some

00:51:17.360 --> 00:51:19.840
point, I don't know. But for now,

00:51:19.840 --> 00:51:22.280
that's what people know and use.

00:51:22.280 --> 00:51:24.280
And if you find that as a barrier to

00:51:24.280 --> 00:51:25.600
contribute to Emacs, I mean,

00:51:25.600 --> 00:51:27.420
just really write it as plain text.

00:51:27.540 --> 00:51:29.380
We'll be happy to help you with the markup.

00:51:29.380 --> 00:51:30.280
It's a little bit, you know,

00:51:30.280 --> 00:51:31.760
finicky and stuff like that.

00:51:33.340 --> 00:51:35.060
Great. Thanks for that.

00:51:35.620 --> 00:51:38.000
Next question. What do you plan to work on in

00:51:38.000 --> 00:51:39.360
Emacs Core in the future?

00:51:40.460 --> 00:51:42.660
I'm a little bit hesitant to reply to that.

00:51:42.660 --> 00:51:43.740
Of course I have ideas.

00:51:43.740 --> 00:51:45.760
Of course there are projects that I'm working

00:51:45.760 --> 00:51:47.640
on. However, if I say it here,

00:51:47.640 --> 00:51:48.480
I feel like, you know,

00:51:48.480 --> 00:51:51.240
then you'll hold me to it later and come ask,

00:51:51.300 --> 00:51:52.480
where is that feature?

00:51:52.640 --> 00:51:55.180
So I'll just say there is plenty of stuff

00:51:55.180 --> 00:51:57.340
that I'm working on, and if you want to know

00:51:57.340 --> 00:51:58.780
some of the stuff that I have been working

00:51:58.780 --> 00:52:00.040
on, check the Git log.

00:52:00.060 --> 00:52:02.400
I think that's just really as much as I want

00:52:02.400 --> 00:52:05.040
to say about that right now.

00:52:05.660 --> 00:52:07.360
You've added folks to just look at the path

00:52:07.360 --> 00:52:09.620
with the changelog and that's all you need.

00:52:11.600 --> 00:52:13.340
All right, moving on to the next question.

00:52:14.020 --> 00:52:16.120
What do you use Emacs for in your life other

00:52:16.120 --> 00:52:17.580
than working on Emacs itself?

00:52:18.080 --> 00:52:21.060
Oh shit. So the big thing is programming,

00:52:21.140 --> 00:52:24.020
right? Now I work as a programmer.

00:52:27.040 --> 00:52:29.280
But in general, I use org mode heavily.

00:52:29.340 --> 00:52:30.780
I use it for all my writing.

00:52:30.820 --> 00:52:33.460
I use it to write, prepare this talk.

00:52:33.480 --> 00:52:35.360
I use it as a productivity system.

00:52:35.380 --> 00:52:41.980
I use it for emails. I use it as an RSS

00:52:41.980 --> 00:52:44.480
reader. I do most of my computing.

00:52:44.760 --> 00:52:47.040
I also have Firefox. So it's like Emacs and

00:52:47.040 --> 00:52:48.820
Firefox for some reason.

00:52:48.900 --> 00:52:51.900
I do read documentation in Emacs as well in

00:52:51.900 --> 00:52:58.440
you, but yeah. Great. I'm still,

00:52:59.180 --> 00:53:00.720
I do very much the same thing with you.

00:53:00.720 --> 00:53:02.040
Like You've described exactly what I do.

00:53:02.040 --> 00:53:02.960
I work as a programmer,

00:53:02.960 --> 00:53:04.640
I use Augment for a lot of stuff,

00:53:04.640 --> 00:53:06.340
and I think that describes a whole lot of

00:53:06.340 --> 00:53:08.100
people currently watching the stream.

00:53:09.380 --> 00:53:10.680
Moving on to the next question.

00:53:10.840 --> 00:53:12.740
What could we do in order to make Emacs more

00:53:12.740 --> 00:53:14.280
attractive for younger users?

00:53:14.820 --> 00:53:17.940
This is an amazing question and I feel wholly

00:53:18.480 --> 00:53:20.720
unprepared to answer this.

00:53:21.180 --> 00:53:24.180
Probably more introductory material aimed at

00:53:24.320 --> 00:53:26.580
that age group. What do you mean by younger

00:53:26.580 --> 00:53:28.740
users? You know what would be really cool if

00:53:28.740 --> 00:53:30.740
you had an Emacs for kids project?

00:53:31.020 --> 00:53:32.060
That would be amazing.

00:53:32.680 --> 00:53:34.920
I'm not sure if that's what people are

00:53:34.920 --> 00:53:36.880
thinking about, but yeah,

00:53:37.200 --> 00:53:39.780
that's about what I can say for now.

00:53:40.380 --> 00:53:43.320
Good question. It is a very good question,

00:53:43.320 --> 00:53:45.880
like it comes back always to a key topic in

00:53:45.880 --> 00:53:47.720
EmacsConf, which is, how do we get more

00:53:47.720 --> 00:53:49.360
people to join us? Because it's a wonderful

00:53:49.360 --> 00:53:51.760
community. And how do we onboard people who

00:53:51.760 --> 00:53:54.220
are not programmers or people who are younger

00:53:54.400 --> 00:53:56.720
than the average Joe coming in those

00:53:57.120 --> 00:54:01.560
meetings? There's this Excellent article by

00:54:01.560 --> 00:54:05.960
Paul Graham, I think, where he was describing

00:54:06.140 --> 00:54:09.140
how they used Emacs as the sort of customer

00:54:09.320 --> 00:54:11.520
service system. They built the customer

00:54:11.520 --> 00:54:13.940
service system for the early days of Amazon

00:54:14.700 --> 00:54:17.200
in Emacs Lisp. And then they switched and all

00:54:17.200 --> 00:54:18.680
the employees were sad.

00:54:18.680 --> 00:54:21.680
So definitely there's more stuff that could

00:54:21.680 --> 00:54:25.160
be done in Emacs and be done better in Emacs.

00:54:25.240 --> 00:54:27.440
So for sure, if people want to explore more

00:54:27.440 --> 00:54:28.880
stuff like that, that's amazing.

00:54:29.720 --> 00:54:32.040
Yeah. And for people who weren't around

00:54:32.040 --> 00:54:33.740
earlier today, we've had a presentation about

00:54:33.740 --> 00:54:36.820
how to get computer science students to use

00:54:36.860 --> 00:54:41.100
Emacs and trying to provide as much

00:54:41.100 --> 00:54:43.500
information and as much tutorial as needed

00:54:43.500 --> 00:54:45.480
for them to understand what is the philosophy

00:54:45.480 --> 00:54:48.420
behind Emacs and how it influences the way

00:54:48.420 --> 00:54:49.540
you work and so forth.

00:54:49.540 --> 00:54:51.420
So you might want to revisit this discussion.

00:54:51.420 --> 00:54:53.400
And we also have plenty of talks talking

00:54:53.400 --> 00:54:57.720
about this issue. And I can just add that I

00:54:57.720 --> 00:55:00.320
think it's very important for us as a

00:55:00.320 --> 00:55:03.120
community to just be enthusiastic to get more

00:55:03.120 --> 00:55:04.640
people involved. Because I mean,

00:55:04.640 --> 00:55:06.660
look, there's this meme where it's like,

00:55:06.660 --> 00:55:08.620
I use Arch Linux, by the way,

00:55:08.620 --> 00:55:10.020
I use Arch, by the way.

00:55:10.080 --> 00:55:12.380
And for some reason, people using Arch keep

00:55:12.380 --> 00:55:14.080
telling you that they're using Arch.

00:55:14.600 --> 00:55:16.160
That's fine. Use whatever you want.

00:55:16.160 --> 00:55:18.260
It's free software, I don't care.

00:55:20.140 --> 00:55:21.900
I think if you look at Vim users,

00:55:21.900 --> 00:55:23.440
they're very almost militant,

00:55:23.540 --> 00:55:25.780
oh, we're Vim, and Vim is the thing.

00:55:25.920 --> 00:55:27.480
And Emacs users sometimes,

00:55:27.700 --> 00:55:29.960
and it's fine. We take a bit of a more

00:55:29.960 --> 00:55:31.160
laid-back approach. We're like,

00:55:31.160 --> 00:55:32.720
yeah, I use Emacs, you use Vim,

00:55:32.720 --> 00:55:35.320
whatever. And that's fine.

00:55:35.320 --> 00:55:36.820
I mean, that's the correct approach,

00:55:36.820 --> 00:55:38.480
I think. You should respect what people want

00:55:38.480 --> 00:55:40.840
to use. I don't care that people use VS Code

00:55:40.840 --> 00:55:42.540
or whatever. I'm not going to use that

00:55:42.540 --> 00:55:43.940
because it's too limiting.

00:55:43.940 --> 00:55:45.780
It's not really a workable environment.

00:55:46.400 --> 00:55:48.620
But I think it's OK to be enthusiastic.

00:55:48.740 --> 00:55:51.360
I think it's okay to talk about that type of

00:55:51.360 --> 00:55:54.100
enthusiasm and anything that can help

00:55:54.400 --> 00:55:56.880
increase the enthusiasm around Emacs can only

00:55:56.880 --> 00:56:01.100
help the longevity of Emacs.

00:56:02.520 --> 00:56:04.280
I agree and that's also 1 of the key

00:56:04.280 --> 00:56:05.340
objectives of EmacsConf.

00:56:05.460 --> 00:56:07.660
It's about bringing a lot of amazing people

00:56:07.660 --> 00:56:09.100
to come talk, like you,

00:56:09.140 --> 00:56:11.400
about stuff that is very dear to you.

00:56:11.400 --> 00:56:14.180
And it's very tangible how much you care,

00:56:14.180 --> 00:56:15.920
all of you, about what you're presenting.

00:56:15.920 --> 00:56:18.560
And it's amazing to put all of you people on

00:56:18.560 --> 00:56:20.800
just 48 hours talking about all of this and

00:56:20.800 --> 00:56:22.920
then creating so much content for people to

00:56:22.920 --> 00:56:24.480
watch. And I think it's really helping the

00:56:24.480 --> 00:56:28.140
enthusiasm to live on and to gather a little

00:56:28.140 --> 00:56:29.660
more snow as it comes down.

00:56:29.920 --> 00:56:31.720
Yeah, I watch you Max Conf every year.

00:56:31.720 --> 00:56:33.460
I think it's a lot of fun.

00:56:34.300 --> 00:56:37.360
Thank you. I'll take the compliment for

00:56:37.360 --> 00:56:38.620
everyone else in the team.

00:56:39.620 --> 00:56:41.120
We're going to go a little bit longer with

00:56:41.120 --> 00:56:42.800
the Q&A because we still have a lot of

00:56:42.800 --> 00:56:44.480
questions and if Stéphane is still willing to

00:56:44.480 --> 00:56:48.160
answer, I'm still willing to not go too bad

00:56:48.160 --> 00:56:49.740
to hear a lot more of it.

00:56:49.740 --> 00:56:50.580
Yeah, for me it's fine.

00:56:50.580 --> 00:56:55.760
I have time. Great. So I think I've done this

00:56:55.760 --> 00:56:57.460
question. So, all right.

00:56:58.080 --> 00:57:00.060
How are we going to make sure that a cool

00:57:00.060 --> 00:57:01.960
idea is going to pass it through for the next

00:57:01.960 --> 00:57:04.100
generation, let's say 20 years later,

00:57:04.120 --> 00:57:05.860
the generation still have the good knowledge

00:57:05.860 --> 00:57:09.940
we have today. Yeah, so I mean,

00:57:09.940 --> 00:57:12.840
if you think about what does EMAX need to

00:57:12.840 --> 00:57:15.180
have staying power, so in general,

00:57:15.180 --> 00:57:17.020
they say, you know, if if when you start a

00:57:17.020 --> 00:57:19.340
company, if you have a company for 1 year,

00:57:19.340 --> 00:57:20.220
then in all likelihood,

00:57:20.220 --> 00:57:21.820
you're going to have it for 2 years because,

00:57:21.820 --> 00:57:23.680
you know, it's just so if you've had Emacs

00:57:23.680 --> 00:57:25.840
for 4 years, I'm saying that we're going to

00:57:25.840 --> 00:57:27.980
have Emacs for the next 4 years as well.

00:57:27.980 --> 00:57:30.540
Just based on that, I'm not sure the logic

00:57:30.540 --> 00:57:32.200
holds up, but you know,

00:57:32.440 --> 00:57:34.320
how does Emacs stay relevant?

00:57:34.340 --> 00:57:35.500
I think is the question.

00:57:35.500 --> 00:57:38.400
Well, I think we need to continue working on

00:57:38.520 --> 00:57:41.840
all the types of exploratory work that people

00:57:41.840 --> 00:57:43.820
are doing in the community.

00:57:43.820 --> 00:57:45.720
I think there is fundamental stuff that needs

00:57:45.720 --> 00:57:47.720
to be done. I mean, if people want to work

00:57:47.720 --> 00:57:49.400
on, you know, web rendering and Emacs,

00:57:49.400 --> 00:57:50.240
maybe that's the next,

00:57:50.240 --> 00:57:53.240
you know, revolutionary step that we need

00:57:53.240 --> 00:57:55.320
that could, you know, really showcase what

00:57:55.320 --> 00:57:57.640
Emacs, you know, as, you know,

00:57:57.640 --> 00:58:00.620
an idea, even if not Emacs as a software

00:58:00.620 --> 00:58:01.960
could be and, you know,

00:58:01.960 --> 00:58:05.000
Because there is huge potential in the idea

00:58:05.000 --> 00:58:07.100
as such. So maybe that's something.

00:58:07.960 --> 00:58:09.600
But I mean, from the point of view of core

00:58:09.600 --> 00:58:11.840
development, I think we need to just continue

00:58:11.840 --> 00:58:15.040
working on the fundamental technologies.

00:58:15.260 --> 00:58:17.980
1 thing that I would like to eventually see

00:58:17.980 --> 00:58:19.700
is a better garbage collector.

00:58:19.900 --> 00:58:22.280
We've talked about that for a long time,

00:58:22.280 --> 00:58:25.140
but I mean, we need someone to do the job

00:58:25.380 --> 00:58:27.980
really. It's not very easy.

00:58:27.980 --> 00:58:29.780
It's very hard, actually.

00:58:31.100 --> 00:58:34.000
So just continues working on stuff like that,

00:58:34.000 --> 00:58:35.180
continue with the exploration,

00:58:35.800 --> 00:58:40.260
continue using and being excited about Emacs.

00:58:40.260 --> 00:58:43.180
I think that's the best guarantee that we

00:58:43.180 --> 00:58:45.800
have. Yeah, and perhaps to echo something

00:58:45.800 --> 00:58:46.780
that you said earlier,

00:58:46.840 --> 00:58:47.960
the tools that you're using,

00:58:47.960 --> 00:58:49.920
like the emails, they've been around forever,

00:58:49.920 --> 00:58:51.100
they will be around forever.

00:58:51.500 --> 00:58:53.480
This pragmatic stance on the tools that

00:58:53.480 --> 00:58:56.240
you're using, they might look stayed from the

00:58:56.240 --> 00:58:58.880
outside, but ultimately they are what permits

00:58:59.220 --> 00:59:02.280
a sense of longevity to any kind of project

00:59:03.300 --> 00:59:05.460
you embark upon. Also,

00:59:05.460 --> 00:59:07.260
in a sense, I think that the expectations

00:59:07.740 --> 00:59:09.320
might be changing in the sense that,

00:59:09.320 --> 00:59:12.820
you know, when I started using GNU Linux,

00:59:12.980 --> 00:59:15.060
you know what the first thing I did was,

00:59:15.060 --> 00:59:16.960
because I couldn't get Xorg to run.

00:59:16.960 --> 00:59:19.040
So the first thing you had to do was you had

00:59:19.040 --> 00:59:20.820
to compile your own Linux kernel.

00:59:20.820 --> 00:59:22.960
So you sit there and make manuconfig and

00:59:22.960 --> 00:59:24.880
you'll like, try to read it and you've never

00:59:24.880 --> 00:59:26.320
done anything like this before.

00:59:26.320 --> 00:59:27.800
You know, I was just a kid.

00:59:27.800 --> 00:59:29.540
I had never been at this kind of,

00:59:29.540 --> 00:59:31.560
you know, whatever. So I had to start with

00:59:31.560 --> 00:59:34.200
that. And then you have to write the X or

00:59:34.200 --> 00:59:36.100
configuration file. And I had the patience

00:59:36.100 --> 00:59:37.100
for that. But nowadays,

00:59:37.200 --> 00:59:38.600
people have different expectations.

00:59:38.740 --> 00:59:40.460
You just install something,

00:59:40.640 --> 00:59:42.720
and it works. And we need to keep that in

00:59:42.720 --> 00:59:45.280
mind as well. So that's why I keep pushing as

00:59:45.280 --> 00:59:48.720
1 of my big things. We need to build a more

00:59:48.740 --> 00:59:51.180
cohesive experience out of the box.

00:59:51.180 --> 00:59:52.540
Of course, that can be customizable.

00:59:52.940 --> 00:59:55.240
You shouldn't shoehorn anything in just for

00:59:55.240 --> 00:59:58.760
the sake of it. But you could get some things

00:59:58.940 --> 01:00:00.920
a little bit more for free.

01:00:01.220 --> 01:00:03.080
And maybe some of us that have our own

01:00:03.080 --> 01:00:04.780
configs and we've been doing this for you

01:00:04.780 --> 01:00:07.720
know, 2, 05:10, even 20 years,

01:00:08.480 --> 01:00:09.660
we could also see, you know,

01:00:09.660 --> 01:00:11.640
from the point of view of a new user that

01:00:11.640 --> 01:00:13.780
just installs VS Code and then they click,

01:00:13.780 --> 01:00:15.680
yes I use Python, yes I use that,

01:00:15.680 --> 01:00:18.840
and then it just automatically works.

01:00:19.200 --> 01:00:20.600
You know what I mean? I mean,

01:00:20.600 --> 01:00:24.140
then could we get closer to that perhaps a

01:00:24.140 --> 01:00:26.060
little bit? I think that would also help.

01:00:26.760 --> 01:00:28.700
Yeah, I think that's what we call the

01:00:28.700 --> 01:00:30.580
configuration wizard. And we were talking

01:00:30.580 --> 01:00:32.520
about this, I think, a couple of years ago at

01:00:32.520 --> 01:00:34.200
EmacsConf. I can't remember if it was with

01:00:34.200 --> 01:00:35.740
Adam in the chat. Adam,

01:00:35.740 --> 01:00:38.240
I mean Alpha Papa, or if it was with Bastien,

01:00:38.240 --> 01:00:40.440
but I remember the idea cropping off.

01:00:40.440 --> 01:00:42.520
Like, it's either you get a tutorial for

01:00:42.520 --> 01:00:43.520
Emacs, a proper tutorial,

01:00:43.520 --> 01:00:45.640
or you get a wizard, or you get both,

01:00:45.640 --> 01:00:47.520
and then all is right for the world.

01:00:47.520 --> 01:00:49.420
But definitely cool ideas being evoked.

01:00:50.280 --> 01:00:52.280
I'm gonna say I need to decree the time when

01:00:52.280 --> 01:00:54.440
we finish because for me it is 11.15

01:00:55.080 --> 01:00:59.300
p.m. And I think my co-organizers are also

01:00:59.300 --> 01:01:01.680
willing to end the day and go rest because

01:01:01.680 --> 01:01:03.540
we've got another day to go tomorrow.

01:01:03.760 --> 01:01:06.280
So how about we take 3 minutes and 30 seconds

01:01:06.280 --> 01:01:08.300
to try to answer a little bit more succinctly

01:01:08.560 --> 01:01:09.780
the questions we've got left.

01:01:09.780 --> 01:01:10.940
How does that sound, Stefan?

01:01:11.320 --> 01:01:15.200
Sounds great. Cool, so I'll start reading the

01:01:15.200 --> 01:01:17.140
questions then that we've got left.

01:01:18.340 --> 01:01:20.840
So this 1 we've got. If you're willing to

01:01:20.840 --> 01:01:22.360
discuss it, what do you think about the

01:01:22.360 --> 01:01:24.720
recent controversy about use of CLLib in

01:01:24.720 --> 01:01:29.980
Emacs call code? Am I willing to discuss

01:01:29.980 --> 01:01:35.960
that? I have said my opinion on Emacs,

01:01:36.420 --> 01:01:40.580
Devel, I think. And I think I understand,

01:01:40.680 --> 01:01:44.820
I think, the viewpoints of both sides in that

01:01:44.820 --> 01:01:46.720
discussion. It is true that some things,

01:01:46.720 --> 01:01:49.280
I mean, we have to think about that.

01:01:49.280 --> 01:01:50.340
There is a real problem,

01:01:50.340 --> 01:01:53.520
I think, when we have 3 different APIs for

01:01:53.520 --> 01:01:55.140
doing the same thing in Emacs.

01:01:55.320 --> 01:01:57.080
And can we make that a little bit better?

01:01:57.280 --> 01:01:59.280
I mean, perhaps we could,

01:01:59.760 --> 01:02:04.040
right? So that's about as much as I'd like to

01:02:04.040 --> 01:02:06.940
say. Fair enough. I would have also accepted

01:02:06.940 --> 01:02:09.160
that CL loops are ugly to write and they

01:02:09.160 --> 01:02:10.320
don't feel very lispy.

01:02:10.320 --> 01:02:12.040
But I'll take your answer as well.

01:02:13.260 --> 01:02:15.360
Yeah, some people think that.

01:02:15.660 --> 01:02:18.400
I understand that position as well.

01:02:19.200 --> 01:02:21.220
Right. Okay, next question.

01:02:21.260 --> 01:02:23.100
When we find a bug in our Emacs,

01:02:23.100 --> 01:02:25.200
do we need to try to replicate it on our side

01:02:25.200 --> 01:02:26.780
version, on our SID version,

01:02:26.780 --> 01:02:29.340
sorry, then update all the usual list package

01:02:29.340 --> 01:02:31.480
we use, and if we succeed to replicate the

01:02:31.480 --> 01:02:33.340
bug in this version, only then go to

01:02:33.340 --> 01:02:35.420
development version 30 and do the same.

01:02:35.660 --> 01:02:37.580
Then only ask for assistance in reporting the

01:02:37.580 --> 01:02:40.260
bug we found. So I believe when they

01:02:40.260 --> 01:02:43.540
encounter a bug, are people supposed to go to

01:02:43.540 --> 01:02:47.500
master to pull main and just to make sure

01:02:47.500 --> 01:02:48.740
that they are on the latest version.

01:02:48.740 --> 01:02:49.980
Is this something that you require?

01:02:50.660 --> 01:02:51.860
We don't require that,

01:02:51.860 --> 01:02:54.940
but we do try to encourage you to reproduce

01:02:54.960 --> 01:02:57.380
it on master if we think that it matters.

01:02:57.720 --> 01:03:00.920
Yeah, so if you can, that's even better.

01:03:01.620 --> 01:03:03.940
But if the bug is there in Emacs 29,

01:03:03.940 --> 01:03:06.000
maybe we want to fix it in Emacs 29.2.

01:03:06.340 --> 01:03:09.820
So the latest point release is also fine.

01:03:10.400 --> 01:03:12.940
Bugs in Emacs 28 at this point,

01:03:12.940 --> 01:03:14.780
like the previous major version,

01:03:15.060 --> 01:03:17.720
we might ask you to try to reproduce it on

01:03:17.720 --> 01:03:19.600
Emacs 29 because we're not planning more

01:03:19.600 --> 01:03:21.600
releases of old major versions.

01:03:21.600 --> 01:03:23.660
So that's the fundamental reason for that.

01:03:24.480 --> 01:03:25.820
Great. Thank you for your answer.

01:03:25.900 --> 01:03:27.680
All right. Moving on to the next question.

01:03:27.840 --> 01:03:29.280
On branching off sub-threads,

01:03:29.680 --> 01:03:31.840
I note that they are less visible compared to

01:03:31.840 --> 01:03:33.380
starting a new thread in practice.

01:03:33.520 --> 01:03:35.680
I am wondering if it is just my impression or

01:03:35.680 --> 01:03:37.400
something devs also observe.

01:03:37.920 --> 01:03:39.780
Yeah, it's true. That's correct.

01:03:41.400 --> 01:03:42.840
I don't know what to do about it.

01:03:42.840 --> 01:03:44.160
If you want more visibility,

01:03:44.180 --> 01:03:45.920
I guess just start a new thread.

01:03:47.080 --> 01:03:48.960
I don't know. I can only agree,

01:03:48.960 --> 01:03:50.880
really. I concur. That's true.

01:03:51.720 --> 01:03:54.260
Okay. Next question. What about rewriting

01:03:54.340 --> 01:03:57.100
Emacs in Rust? Use Guile instead of Elisp.

01:03:57.260 --> 01:03:59.580
Multi-threaded Emacs. Make Emacs prettier and

01:03:59.580 --> 01:04:01.760
shiny. And of course, same defaults.

01:04:02.220 --> 01:04:04.440
Just kidding. We are spoiled children because

01:04:04.440 --> 01:04:07.780
you and Eli, Lars, and etc do an impressive

01:04:08.420 --> 01:04:10.620
work. I live in Emacs since 2001.

01:04:11.040 --> 01:04:14.220
Thanks. That was a good 1.

01:04:14.220 --> 01:04:17.880
Sane defaults. Okay, Well,

01:04:18.900 --> 01:04:20.580
thank you. Thanks for that comment.

01:04:20.580 --> 01:04:23.440
That made me chuckle. Next question by the

01:04:23.440 --> 01:04:24.520
same person, I assume.

01:04:24.520 --> 01:04:26.580
The only downside I see with copyright

01:04:26.580 --> 01:04:28.900
assignment is that 1 has to disclose their

01:04:28.900 --> 01:04:31.240
real identity. Would it be a possibility to

01:04:31.240 --> 01:04:32.860
assign a copyright under a nickname?

01:04:33.160 --> 01:04:34.840
Yeah, you don't have to say a real name.

01:04:34.840 --> 01:04:37.260
Just register some pseudonym.

01:04:37.360 --> 01:04:39.440
The FSF does need your real name,

01:04:39.440 --> 01:04:41.420
but that's kept private only.

01:04:41.500 --> 01:04:45.920
So feel free to reach out to assign at

01:04:45.920 --> 01:04:48.360
gnu.org and ask more about that.

01:04:49.860 --> 01:04:51.680
Right. All right, next question.

01:04:51.820 --> 01:04:53.400
Do you think it is possible to reach an

01:04:53.400 --> 01:04:55.240
agreement on sane defaults for better

01:04:55.240 --> 01:04:57.220
out-of-the-box experience?

01:04:57.800 --> 01:05:00.040
Yeah, so your sane is not my sane

01:05:00.060 --> 01:05:01.760
necessarily. So that's the fundamental

01:05:01.780 --> 01:05:02.960
problem that we're discussing here.

01:05:02.960 --> 01:05:03.960
I think it's a social,

01:05:03.960 --> 01:05:05.240
not a technical problem.

01:05:05.380 --> 01:05:07.580
We do change defaults sometimes,

01:05:07.640 --> 01:05:09.880
but I mean, there is also some staying power.

01:05:09.880 --> 01:05:12.260
So it's understandable that,

01:05:12.260 --> 01:05:13.940
you know, it's, we can't just change them

01:05:13.940 --> 01:05:15.920
willy nilly and then flip flop between,

01:05:15.920 --> 01:05:18.340
you know, 1 or the other kind of thing.

01:05:18.340 --> 01:05:20.060
So it does take a little bit more time.

01:05:20.060 --> 01:05:22.860
But yeah, sure, we can.

01:05:23.000 --> 01:05:25.860
We do change defaults at times.

01:05:26.380 --> 01:05:29.780
But it's perhaps more slower than what some

01:05:29.780 --> 01:05:31.420
people would prefer, for sure.

01:05:31.640 --> 01:05:36.000
So that's, yeah. Right,

01:05:36.000 --> 01:05:37.620
all right. We have 2 more questions.

01:05:37.920 --> 01:05:40.020
So will XWidgets have a future?

01:05:40.120 --> 01:05:42.180
Seeing the new bugs popping up in the latest

01:05:42.740 --> 01:05:45.280
XWidget dev. Not sure if there was the rest

01:05:45.280 --> 01:05:46.640
of the question, But on XWidgets,

01:05:46.640 --> 01:05:47.940
can you tell us a little more?

01:05:48.740 --> 01:05:50.580
I'm not really following now.

01:05:50.580 --> 01:05:52.400
I mean, I'm not seeing a lot of development

01:05:52.500 --> 01:05:54.180
on XWidgets currently.

01:05:54.480 --> 01:05:57.100
Some people have done work in fixing up a few

01:05:57.100 --> 01:06:00.320
bugs, but I think that feature really needs

01:06:00.380 --> 01:06:02.180
more love. So I think we need,

01:06:02.180 --> 01:06:03.600
you know, help is welcome,

01:06:03.600 --> 01:06:05.920
patch is welcome. That's what I can say about

01:06:05.920 --> 01:06:11.180
that. All right, and our final question of

01:06:11.180 --> 01:06:13.140
the day. Have you voted for Emacs as the

01:06:13.140 --> 01:06:15.140
software of the year on the Tuxes by Jupyter

01:06:15.140 --> 01:06:17.480
Broadcasting? I did because Emacs 29 is

01:06:17.480 --> 01:06:19.300
great. Thank you. Okay,

01:06:19.300 --> 01:06:20.580
well, good job voting.

01:06:20.580 --> 01:06:22.960
I didn't know, I don't know what Tuxy is on

01:06:22.960 --> 01:06:25.680
Jupyter broadcasting, but look it up and go

01:06:25.680 --> 01:06:28.040
vote. So I wish I could tell you,

01:06:28.040 --> 01:06:29.500
I assume with Tux, it might be something

01:06:29.500 --> 01:06:32.900
related to Linux, but that's as much as I can

01:06:32.900 --> 01:06:34.840
say. All right, well, Stefan,

01:06:34.960 --> 01:06:36.600
thank you so much for taking the time not

01:06:36.600 --> 01:06:38.000
only to do a wonderful presentation,

01:06:38.000 --> 01:06:39.640
but also for answering all the questions of

01:06:39.640 --> 01:06:41.240
the community. Do you have anything else to

01:06:41.240 --> 01:06:45.360
add? Just really thanks for all the questions

01:06:45.360 --> 01:06:46.760
and thanks for staying.

01:06:47.780 --> 01:06:49.600
It's been a long day, a long conference,

01:06:49.600 --> 01:06:51.180
so thanks for staying and listening to my

01:06:51.180 --> 01:06:52.540
talk as well. Really appreciate it.

01:06:52.540 --> 01:06:54.280
Appreciate the good work you guys are doing

01:06:54.280 --> 01:06:55.460
behind the scenes, organizing,

01:06:55.520 --> 01:06:56.740
setting everything up.

01:06:57.040 --> 01:07:00.420
And really humbled to be a part of this

01:07:00.420 --> 01:07:02.060
community. So thank you all.

01:07:02.680 --> 01:07:05.860
Well I can assure you that no 1 either in the

01:07:05.860 --> 01:07:08.040
organization team or the people watching now

01:07:08.040 --> 01:07:10.900
felt like it was tiring to stay and listen to

01:07:10.900 --> 01:07:12.760
your answers. So thank you so much Stefan.