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.