summaryrefslogtreecommitdiffstats
path: root/2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt
diff options
context:
space:
mode:
Diffstat (limited to '2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt')
-rw-r--r--2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt1652
1 files changed, 1652 insertions, 0 deletions
diff --git a/2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt b/2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt
new file mode 100644
index 00000000..7a93ee4c
--- /dev/null
+++ b/2023/captions/emacsconf-2023-devel--emacs-development-updates--john-wiegley--main.vtt
@@ -0,0 +1,1652 @@
+WEBVTT
+
+
+00:00:02.419 --> 00:00:08.480
+2 seconds. All right. I think we are live.
+
+00:00:08.480 --> 00:00:10.280
+Yes. So, hi again, everyone.
+
+00:00:10.580 --> 00:00:13.620
+I have the pleasure to welcome John Wiegley
+
+00:00:13.620 --> 00:00:15.440
+in person to this EmacsConf.
+
+00:00:15.700 --> 00:00:17.260
+Hi, John. Hello there.
+
+00:00:17.680 --> 00:00:18.820
+How are you doing, Leo?
+
+00:00:18.820 --> 00:00:21.100
+I am doing fantastic, and even more now that
+
+00:00:21.100 --> 00:00:23.540
+I am in a room with you because we've been,
+
+00:00:24.279 --> 00:00:25.640
+we were reminiscing with Sacha.
+
+00:00:25.640 --> 00:00:30.860
+So you had been there in person in 2013 And
+
+00:00:30.860 --> 00:00:32.680
+since we started doing those online,
+
+00:00:32.680 --> 00:00:35.020
+Juan, since 2019, I think you've always been
+
+00:00:35.020 --> 00:00:38.460
+online, right? Usually it's a pre-recorded
+
+00:00:38.520 --> 00:00:40.440
+video. I think this will be the first 1 I do
+
+00:00:40.440 --> 00:00:42.540
+live in a long time. You're right.
+
+00:00:42.540 --> 00:00:44.239
+I'm saying we are online right now,
+
+00:00:44.239 --> 00:00:45.920
+but I just meant pre-recorded video.
+
+00:00:45.920 --> 00:00:48.400
+So it's good to have you almost in person or
+
+00:00:48.400 --> 00:00:50.900
+at least live and we are excited to hear
+
+00:00:50.900 --> 00:00:52.360
+about some of the Emacs news.
+
+00:00:52.360 --> 00:00:54.780
+So the floor is yours.
+
+00:00:55.080 --> 00:00:56.900
+All right, well welcome everybody.
+
+00:00:57.260 --> 00:01:00.239
+This is the yearly state of the Emacs union,
+
+00:01:00.239 --> 00:01:02.860
+I guess, about how Emacs development is
+
+00:01:02.860 --> 00:01:05.379
+going. Just to note, I am not currently a
+
+00:01:05.379 --> 00:01:07.760
+maintainer of Emacs. So what I do to get
+
+00:01:07.760 --> 00:01:09.920
+these notes is I call up my friend,
+
+00:01:09.920 --> 00:01:12.040
+Eli Zaretsky, 1 of the current Emacs
+
+00:01:12.040 --> 00:01:13.820
+maintainers, and he and I sit down for an
+
+00:01:13.820 --> 00:01:17.160
+hour, and he just gives me his dump of what's
+
+00:01:17.160 --> 00:01:19.400
+been going on. So I'm sort of just the
+
+00:01:19.400 --> 00:01:22.200
+messenger here. But thanks to Eli for these
+
+00:01:22.200 --> 00:01:24.400
+notes and all of the efforts that he
+
+00:01:24.400 --> 00:01:27.400
+contributes. So what he's been telling me is
+
+00:01:27.400 --> 00:01:30.060
+that this Emacs 29 release that we had
+
+00:01:30.060 --> 00:01:31.720
+recently looks to have been very,
+
+00:01:31.720 --> 00:01:33.580
+very successful, which is some good news,
+
+00:01:33.580 --> 00:01:35.420
+because there were a lot of new features,
+
+00:01:35.660 --> 00:01:37.360
+and some of those features were actually
+
+00:01:37.360 --> 00:01:39.520
+quite radical. So far,
+
+00:01:39.520 --> 00:01:40.680
+it's been quite a success,
+
+00:01:40.680 --> 00:01:42.440
+no serious problems with it,
+
+00:01:42.440 --> 00:01:44.080
+and we have Emacs 29.2
+
+00:01:45.140 --> 00:01:46.740
+will be released very soon.
+
+00:01:47.260 --> 00:01:50.020
+They are thinking now about starting the
+
+00:01:50.020 --> 00:01:53.080
+Emacs 30 release cycle soon after 29.2
+
+00:01:53.520 --> 00:01:55.880
+is released, where the release branch,
+
+00:01:55.880 --> 00:01:58.120
+which is called Emacs-30 usually,
+
+00:01:59.060 --> 00:02:01.400
+will be cut and then development will become
+
+00:02:01.400 --> 00:02:03.960
+frozen with only bug fixes going into that
+
+00:02:03.960 --> 00:02:07.200
+branch. That may take quite some time until
+
+00:02:07.200 --> 00:02:09.639
+it actually comes to fruition as a release,
+
+00:02:09.639 --> 00:02:11.660
+but at least it means that the release is
+
+00:02:11.660 --> 00:02:13.860
+going to start taking shape in that branch
+
+00:02:13.860 --> 00:02:17.720
+soon. So, for now, Emacs 30 looks like maybe
+
+00:02:17.720 --> 00:02:19.540
+it's going to be a little less interesting
+
+00:02:19.600 --> 00:02:23.160
+than Emacs 29 was, meaning not a huge number
+
+00:02:23.160 --> 00:02:25.120
+of changing features. But there are still
+
+00:02:25.120 --> 00:02:26.820
+some new things going in.
+
+00:02:26.980 --> 00:02:29.960
+So 1 of them is that Emacs 30 is going to
+
+00:02:29.960 --> 00:02:32.300
+have Android support. So you will be able to
+
+00:02:32.300 --> 00:02:34.900
+run Emacs 30 on your Android devices.
+
+00:02:35.140 --> 00:02:37.120
+So if you've ever wanted to have native Emacs
+
+00:02:37.120 --> 00:02:39.500
+on a tablet, which I know I've always wanted,
+
+00:02:40.140 --> 00:02:42.940
+that will become possible with Emacs 30.
+
+00:02:43.140 --> 00:02:45.480
+There's also going to be much better support
+
+00:02:45.480 --> 00:02:46.780
+for touchscreen devices,
+
+00:02:47.440 --> 00:02:50.260
+coincidentally, both laptops and tablets.
+
+00:02:50.740 --> 00:02:53.240
+So that'll enhance that Android support.
+
+00:02:54.860 --> 00:02:57.180
+There will be some recently gained support
+
+00:02:57.240 --> 00:03:01.720
+for LLDB in GUD.dl. So if you're on a Mac OS
+
+00:03:01.720 --> 00:03:05.580
+machine or a machine that uses just LLVM as
+
+00:03:05.580 --> 00:03:07.060
+part of the compilation process,
+
+00:03:07.400 --> 00:03:10.180
+then you probably are familiar with LLDB as
+
+00:03:10.180 --> 00:03:11.380
+the command line debugger.
+
+00:03:11.720 --> 00:03:14.940
+And that support for using LLDB through a GUD
+
+00:03:15.040 --> 00:03:17.320
+will become possible in Emacs 30.
+
+00:03:17.320 --> 00:03:19.000
+I'm looking forward to this actually quite a
+
+00:03:19.000 --> 00:03:22.620
+bit as well. C Perl mode is being deprecated,
+
+00:03:23.200 --> 00:03:25.920
+and all future work now is only being put
+
+00:03:25.920 --> 00:03:30.660
+towards C Perl mode. Another 1 is that there
+
+00:03:30.660 --> 00:03:33.000
+are going to be some new major modes based on
+
+00:03:33.000 --> 00:03:35.780
+TreeSitter. They will be for the languages
+
+00:03:35.860 --> 00:03:38.160
+Lua, Elixir, and HTML.
+
+00:03:38.800 --> 00:03:39.980
+And if you're not familiar,
+
+00:03:40.160 --> 00:03:42.620
+I think TreeSitter was introduced in Emacs
+
+00:03:42.620 --> 00:03:46.660
+29. It's a library that allows you to specify
+
+00:03:47.460 --> 00:03:49.900
+the grammar of a programming language as a
+
+00:03:49.900 --> 00:03:53.300
+BNF file, and I think using JavaScript,
+
+00:03:53.540 --> 00:03:56.600
+and then with that file as input to Emacs,
+
+00:03:56.600 --> 00:03:59.840
+it is then able to do syntax highlighting,
+
+00:04:00.940 --> 00:04:03.080
+syntax discovery, all of those things within
+
+00:04:03.080 --> 00:04:06.140
+Emacs without having to use elisp and regexps
+
+00:04:06.460 --> 00:04:08.300
+to discover the structure of the language.
+
+00:04:08.300 --> 00:04:10.440
+It defers the structure gathering to
+
+00:04:10.440 --> 00:04:13.420
+TreeSitter and then uses that information to
+
+00:04:13.420 --> 00:04:14.560
+navigate the language.
+
+00:04:15.200 --> 00:04:17.300
+So, As time goes on, you'll see more and more
+
+00:04:17.300 --> 00:04:19.540
+languages taking on TreeSetter support.
+
+00:04:19.540 --> 00:04:21.160
+So the next 3 coming up,
+
+00:04:21.160 --> 00:04:22.660
+Lua, Elixir, and HTML.
+
+00:04:24.060 --> 00:04:26.680
+And then the last feature for Emacs 30 is
+
+00:04:26.680 --> 00:04:29.860
+that the byte compiler will now detect and
+
+00:04:29.860 --> 00:04:32.920
+warn about many more questionable constructs.
+
+00:04:33.340 --> 00:04:35.300
+Things like empty macro bodies,
+
+00:04:35.740 --> 00:04:37.160
+missing lexical constructs,
+
+00:04:37.580 --> 00:04:40.220
+or say, condition case without any handlers.
+
+00:04:40.580 --> 00:04:43.340
+Just silly stuff that might litter the code,
+
+00:04:43.340 --> 00:04:45.180
+but now you'll get a warning about it from
+
+00:04:45.180 --> 00:04:46.920
+the byte compiler to help you clean up the
+
+00:04:46.920 --> 00:04:49.160
+code and get rid of those potential sites of
+
+00:04:49.160 --> 00:04:52.740
+error. So this is the main thing that will be
+
+00:04:52.740 --> 00:04:55.160
+worked on for Emacs 30 and what's looked like
+
+00:04:55.160 --> 00:04:56.400
+shaping up for the release.
+
+00:04:56.680 --> 00:04:58.940
+And also, he wanted me to announce that
+
+00:04:58.940 --> 00:05:01.340
+Stefan Kongas is now a new co-maintainer.
+
+00:05:01.980 --> 00:05:03.260
+And Stefan is, I believe,
+
+00:05:03.260 --> 00:05:05.500
+here with us in the conference and he'll be
+
+00:05:05.500 --> 00:05:07.940
+able, I hope, to help me answer any questions
+
+00:05:08.080 --> 00:05:10.120
+about future Emacs development because I'm
+
+00:05:10.120 --> 00:05:12.240
+not in the heat of it and don't have all
+
+00:05:12.240 --> 00:05:13.600
+those answers at the moment.
+
+00:05:14.580 --> 00:05:17.180
+So That is all there is as far as a
+
+00:05:17.180 --> 00:05:18.840
+development update for now.
+
+00:05:19.340 --> 00:05:21.980
+And I am available to take any questions.
+
+00:05:24.860 --> 00:05:26.200
+All right. Thank you so much,
+
+00:05:26.200 --> 00:05:29.340
+Sean, for being the messenger of all this
+
+00:05:29.340 --> 00:05:31.820
+good news. I mean, you did start by saying
+
+00:05:31.820 --> 00:05:33.480
+this would not be as exciting,
+
+00:05:33.600 --> 00:05:36.280
+perhaps, as prior releases of Emacs,
+
+00:05:36.280 --> 00:05:38.980
+but you then proceeded to say a lot of stuff
+
+00:05:38.980 --> 00:05:40.760
+that it felt very exciting to me.
+
+00:05:40.760 --> 00:05:43.620
+So good, good. Glad to hear that.
+
+00:05:44.540 --> 00:05:47.180
+Right. So we do have questions coming in
+
+00:05:47.180 --> 00:05:50.380
+already and again people the link is on IRC
+
+00:05:50.380 --> 00:05:52.120
+and also on the talks page if you want to
+
+00:05:52.120 --> 00:05:53.260
+start asking questions.
+
+00:05:53.480 --> 00:05:54.840
+So John what I'm going to do I'm going to
+
+00:05:54.840 --> 00:05:56.580
+read you the questions and then you can
+
+00:05:56.580 --> 00:05:58.300
+answer them. Is that okay with you?
+
+00:05:58.320 --> 00:06:01.620
+Absolutely. So starting with the first
+
+00:06:01.620 --> 00:06:04.440
+question which changes in recent Emacs
+
+00:06:04.440 --> 00:06:06.540
+releases are you enjoying using?
+
+00:06:08.360 --> 00:06:11.820
+I have really liked the visual line mode.
+
+00:06:13.140 --> 00:06:15.060
+I'm not sure how recent that is.
+
+00:06:15.060 --> 00:06:16.820
+Some of these features I only discovered
+
+00:06:16.840 --> 00:06:19.580
+quite late, the new display line number
+
+00:06:19.700 --> 00:06:21.380
+functionality, where it's much,
+
+00:06:21.380 --> 00:06:23.040
+much, much faster, and of course,
+
+00:06:23.040 --> 00:06:25.320
+native compilation. Native compilation has
+
+00:06:25.320 --> 00:06:27.360
+been quite brilliant for some of the larger
+
+00:06:27.360 --> 00:06:29.480
+packages that I use. I do a lot of stuff in
+
+00:06:29.480 --> 00:06:31.820
+Emacs. I use GNU's, I use E-Shell,
+
+00:06:31.820 --> 00:06:33.540
+I use Org Mode quite a lot.
+
+00:06:33.580 --> 00:06:36.100
+So native compilation has brought the user
+
+00:06:36.100 --> 00:06:39.960
+experience much closer to a modern app than
+
+00:06:39.960 --> 00:06:42.180
+some of the lagging and slowness that I might
+
+00:06:42.180 --> 00:06:43.580
+have experienced in the past.
+
+00:06:44.340 --> 00:06:47.180
+Definitely. Moving on to the next question.
+
+00:06:47.260 --> 00:06:49.200
+What do you think the future in the area of
+
+00:06:49.200 --> 00:06:51.040
+artificial intelligence from the developer
+
+00:06:51.060 --> 00:06:53.580
+point of view? Could you say that 1 more
+
+00:06:53.580 --> 00:06:54.876
+time? Your voice broke up a little bit.
+
+00:06:54.876 --> 00:06:55.025
+Oh, sorry. What do you think the future in
+
+00:06:55.025 --> 00:06:55.141
+the area of artificial intelligence from the
+
+00:06:55.141 --> 00:06:55.208
+developer point of view?
+
+00:06:55.208 --> 00:06:55.324
+Could you say that 1 more time?
+
+00:06:55.324 --> 00:06:55.440
+Your voice broke up a little bit.
+
+00:06:55.440 --> 00:06:58.100
+Oh, sorry. What do you think the future in
+
+00:06:58.100 --> 00:07:00.580
+the area of artificial intelligence from the
+
+00:07:00.580 --> 00:07:01.560
+developer point of view?
+
+00:07:01.560 --> 00:07:02.860
+It's also a shaky question,
+
+00:07:02.860 --> 00:07:04.500
+I think, but you get the point.
+
+00:07:04.960 --> 00:07:09.220
+I do use chat-gpt-shell inside of Emacs quite
+
+00:07:09.220 --> 00:07:10.920
+a bit, actually, when doing development in
+
+00:07:10.920 --> 00:07:12.440
+other languages. Just the other day,
+
+00:07:12.440 --> 00:07:15.200
+I was working on my Ledger accounting
+
+00:07:15.220 --> 00:07:18.080
+program, and I haven't done a lot of C++ in
+
+00:07:18.080 --> 00:07:21.180
+recent years. So I had forgotten how to
+
+00:07:21.180 --> 00:07:23.760
+exactly compare 2 strings only up to the
+
+00:07:23.760 --> 00:07:25.020
+length of the shortest string.
+
+00:07:25.020 --> 00:07:26.940
+I know I could have cranked that out just
+
+00:07:26.940 --> 00:07:28.740
+writing it C style, but I didn't remember
+
+00:07:28.740 --> 00:07:30.800
+what the current state of the art is for C++
+
+00:07:30.940 --> 00:07:33.460
+and the STL. So I just asked chatGPT.
+
+00:07:33.680 --> 00:07:36.140
+I asked the exact question that I just said
+
+00:07:36.140 --> 00:07:38.220
+to you and sure enough it popped out the
+
+00:07:38.220 --> 00:07:40.080
+one-liner that was exactly what I needed.
+
+00:07:40.080 --> 00:07:42.240
+So I think in terms of developer assistance,
+
+00:07:42.800 --> 00:07:45.820
+not having to keep all of standard libraries
+
+00:07:45.860 --> 00:07:47.460
+or common idioms in memory.
+
+00:07:47.520 --> 00:07:49.460
+I don't know if other people are familiar
+
+00:07:49.480 --> 00:07:51.080
+with Rosetta Stone projects.
+
+00:07:51.460 --> 00:07:53.680
+They're projects where you have say a hundred
+
+00:07:53.680 --> 00:07:55.780
+different languages and there's a particular
+
+00:07:55.860 --> 00:07:58.640
+question, say, how do I read a file and copy
+
+00:07:58.640 --> 00:07:59.720
+it to another location?
+
+00:07:59.820 --> 00:08:01.880
+And then it has an instance of doing that
+
+00:08:01.880 --> 00:08:03.820
+activity for every 1 of those languages.
+
+00:08:04.180 --> 00:08:05.140
+That's a great database,
+
+00:08:05.140 --> 00:08:07.160
+and I've used them quite a bit in the past
+
+00:08:07.160 --> 00:08:09.260
+for remembering how to do certain things,
+
+00:08:09.440 --> 00:08:12.540
+say, converting a string to UTF-8.
+
+00:08:13.280 --> 00:08:15.660
+I think that AI does a great job of
+
+00:08:15.660 --> 00:08:17.780
+completely replacing the need for databases
+
+00:08:17.900 --> 00:08:19.920
+like that because you can just ask how do I
+
+00:08:19.920 --> 00:08:21.980
+copy a convert a string to UTF-8.
+
+00:08:23.760 --> 00:08:27.440
+Yeah exactly and you know especially with
+
+00:08:27.440 --> 00:08:30.480
+languages which are tried well tried you know
+
+00:08:30.480 --> 00:08:32.360
+it's very easy to get an answer that is
+
+00:08:32.360 --> 00:08:34.940
+correct. But sometimes what I find bothersome
+
+00:08:34.940 --> 00:08:37.460
+with this type of coding,
+
+00:08:37.460 --> 00:08:39.840
+I think it's AI-aided coding,
+
+00:08:39.840 --> 00:08:40.820
+but it's still coding,
+
+00:08:41.120 --> 00:08:43.140
+is that, especially with C languages,
+
+00:08:43.140 --> 00:08:44.240
+sometimes you're going to end up with
+
+00:08:44.240 --> 00:08:45.860
+undefined behaviors and stuff like this just
+
+00:08:45.860 --> 00:08:47.900
+because other people have been doing it,
+
+00:08:47.900 --> 00:08:50.860
+not because the algorithm or the model was
+
+00:08:50.860 --> 00:08:53.680
+trained with data that dates back to 10 years
+
+00:08:53.680 --> 00:09:00.060
+ago. At the time, C++ was a little different.
+
+00:09:00.060 --> 00:09:01.400
+Anyway, I'm not here to talk,
+
+00:09:01.400 --> 00:09:03.960
+you are here to talk. Moving on to the next
+
+00:09:03.960 --> 00:09:06.560
+question. People already get to hear my voice
+
+00:09:06.560 --> 00:09:09.640
+plenty, whereas yours are much sparser.
+
+00:09:10.520 --> 00:09:13.580
+All right. So, what is the future of Emacs on
+
+00:09:13.580 --> 00:09:16.080
+macOS? I understand that there are too few
+
+00:09:16.080 --> 00:09:17.420
+developers for the platform.
+
+00:09:17.440 --> 00:09:21.600
+Is that still true? That's a good question.
+
+00:09:21.600 --> 00:09:23.620
+I don't know what the current statistics are.
+
+00:09:23.620 --> 00:09:27.040
+I've been a user of Emacs on Mac OS for
+
+00:09:27.040 --> 00:09:29.920
+decades now. It feels like the,
+
+00:09:30.140 --> 00:09:33.480
+There's also that Mac port version of Emacs,
+
+00:09:33.480 --> 00:09:35.920
+which builds Emacs more directly using the
+
+00:09:35.920 --> 00:09:37.860
+GUI libraries on the platform.
+
+00:09:38.300 --> 00:09:40.320
+That continues to be updated with every
+
+00:09:40.320 --> 00:09:42.040
+single new release that comes out.
+
+00:09:42.620 --> 00:09:45.220
+So I'd say that the support may not be as
+
+00:09:45.220 --> 00:09:47.540
+great as it is on Linux and other platforms,
+
+00:09:47.640 --> 00:09:50.500
+but to this day I haven't suffered from being
+
+00:09:50.500 --> 00:09:55.220
+a Mac user. Great. The only thing I remember
+
+00:09:55.240 --> 00:10:00.480
+about Emacs on macOS was that emojis made it
+
+00:10:00.480 --> 00:10:03.540
+inside the GUI first before they did it
+
+00:10:03.540 --> 00:10:05.820
+anywhere else. That's the 1 anecdote that I
+
+00:10:05.820 --> 00:10:09.520
+have on MacOS. Right. And historically that
+
+00:10:09.520 --> 00:10:12.720
+feature was removed in order to prevent Mac
+
+00:10:12.720 --> 00:10:14.840
+from having features that Linux did not.
+
+00:10:15.160 --> 00:10:16.860
+I didn't want to go into that point.
+
+00:10:16.860 --> 00:10:18.340
+I just wanted to mention the beginning of the
+
+00:10:18.340 --> 00:10:19.840
+anecdote and people can find it out.
+
+00:10:19.840 --> 00:10:22.040
+But yes, that's also what it led to.
+
+00:10:24.020 --> 00:10:25.340
+Moving on to the next question.
+
+00:10:25.640 --> 00:10:28.120
+Why aren't you contributing to Emacs anymore?
+
+00:10:28.140 --> 00:10:29.360
+Lack of time, I guess?
+
+00:10:30.240 --> 00:10:31.840
+Lack of time, primarily.
+
+00:10:32.300 --> 00:10:33.840
+Work has been very consuming.
+
+00:10:33.900 --> 00:10:36.020
+There are a lot of other projects and things
+
+00:10:36.020 --> 00:10:39.000
+that I like doing. I still find Emacs Lisp
+
+00:10:39.000 --> 00:10:40.460
+very, very fun to write.
+
+00:10:40.840 --> 00:10:43.260
+Just the other day, I was hacking up some
+
+00:10:43.260 --> 00:10:45.760
+extension macros for myself for org mode.
+
+00:10:45.920 --> 00:10:48.900
+But to have the time needed to sit down and
+
+00:10:48.900 --> 00:10:51.580
+design a whole new mode and work on it.
+
+00:10:51.580 --> 00:10:53.660
+I've been spending a lot of my time now in
+
+00:10:53.660 --> 00:10:55.580
+functional languages, especially theorem
+
+00:10:55.580 --> 00:10:57.840
+provers. I just find that so intellectually
+
+00:10:58.100 --> 00:10:59.620
+satisfying and interesting.
+
+00:11:00.400 --> 00:11:01.860
+Plus it pays a lot better.
+
+00:11:01.860 --> 00:11:03.680
+Never had a paying job as an Emacs list
+
+00:11:03.680 --> 00:11:06.420
+developer. So when it comes to now just being
+
+00:11:06.420 --> 00:11:08.380
+a fun language or a hobby language,
+
+00:11:08.420 --> 00:11:10.680
+it is relegated to the time that I have free
+
+00:11:10.680 --> 00:11:13.680
+when it's available. Right.
+
+00:11:13.700 --> 00:11:15.420
+Well, the good thing is that it's kind of
+
+00:11:15.420 --> 00:11:16.360
+like riding a bicycle,
+
+00:11:16.360 --> 00:11:17.980
+you know, writing a major mode,
+
+00:11:17.980 --> 00:11:20.160
+it comes back relatively quickly and still
+
+00:11:20.160 --> 00:11:22.600
+enjoyable. You know, the other day,
+
+00:11:22.600 --> 00:11:25.200
+actually, I took notes on a mode that I
+
+00:11:25.200 --> 00:11:28.100
+wanted to write. There's an app I use on the
+
+00:11:28.100 --> 00:11:30.060
+Mac called drafts, and I really love it.
+
+00:11:30.060 --> 00:11:31.460
+I use it all the time.
+
+00:11:31.720 --> 00:11:34.600
+I wanted to mimic the interface of this app
+
+00:11:34.600 --> 00:11:37.620
+in Emacs. So I could use Emacs as my drafts
+
+00:11:37.680 --> 00:11:40.060
+application rather than this separate 1.
+
+00:11:40.440 --> 00:11:42.720
+So I noted down all the different user
+
+00:11:42.720 --> 00:11:44.580
+parameters and how it should function and
+
+00:11:44.580 --> 00:11:47.240
+everything to describe the app to myself as
+
+00:11:47.240 --> 00:11:50.320
+sort of notes to get me started on that work
+
+00:11:50.320 --> 00:11:52.460
+when I did have free time to work on it.
+
+00:11:52.540 --> 00:11:54.760
+Somebody out there on the internet just saw
+
+00:11:54.760 --> 00:11:57.040
+these notes, because I keep a lot of my stuff
+
+00:11:57.040 --> 00:11:59.680
+on GitHub. They fed it to chat GPT,
+
+00:12:00.280 --> 00:12:01.960
+going back to your AI question.
+
+00:12:02.220 --> 00:12:04.540
+And they actually sent back to me a mode that
+
+00:12:04.540 --> 00:12:06.640
+implemented everything that I had said,
+
+00:12:06.820 --> 00:12:07.740
+which was effectively,
+
+00:12:08.200 --> 00:12:10.960
+chat GPT, seeing that what I had described
+
+00:12:10.960 --> 00:12:14.500
+was clear enough for it to derive most of the
+
+00:12:14.500 --> 00:12:16.560
+code that I would have wanted to write.
+
+00:12:16.560 --> 00:12:19.200
+So maybe, maybe another thing that AI can do
+
+00:12:19.200 --> 00:12:20.880
+is it can increase the value,
+
+00:12:21.340 --> 00:12:23.400
+the efficiency of my free time.
+
+00:12:24.360 --> 00:12:26.820
+Exactly. I think that's a wonderful point.
+
+00:12:27.120 --> 00:12:29.540
+And phrasing it as efficiency of free time is
+
+00:12:29.540 --> 00:12:31.360
+great because you still have the expertise,
+
+00:12:31.360 --> 00:12:33.420
+obviously, that you're mobilizing into the
+
+00:12:33.420 --> 00:12:35.560
+design that you're formulating to charge DPT,
+
+00:12:35.860 --> 00:12:37.680
+but then this expertise is turned into
+
+00:12:37.680 --> 00:12:39.060
+something that actually works.
+
+00:12:40.080 --> 00:12:41.780
+Perhaps we're all going to become software
+
+00:12:41.780 --> 00:12:42.980
+architects at some point,
+
+00:12:42.980 --> 00:12:45.800
+and then the busy work of actually coding the
+
+00:12:45.800 --> 00:12:48.760
+library and the software will be relegated to
+
+00:12:48.760 --> 00:12:51.000
+AI. That's an interesting future where we
+
+00:12:51.000 --> 00:12:55.240
+still, however, need to acquire the skills to
+
+00:12:55.240 --> 00:12:56.660
+know what is code, I suppose.
+
+00:12:56.660 --> 00:12:58.880
+But that's an interesting future to think of.
+
+00:13:00.940 --> 00:13:02.060
+A fairly long question.
+
+00:13:02.060 --> 00:13:04.280
+So 1 of the tricky things about running Emacs
+
+00:13:04.280 --> 00:13:06.900
+on Android is do you use anything that
+
+00:13:06.900 --> 00:13:08.320
+requires extra packages?
+
+00:13:08.420 --> 00:13:11.600
+Example like PDF tools with new PDF or going
+
+00:13:11.600 --> 00:13:13.820
+with a database, playing music or video with
+
+00:13:13.820 --> 00:13:15.840
+MPD or MPV on Bonga, LFeed.
+
+00:13:16.320 --> 00:13:17.900
+Do you run Emacs Termex,
+
+00:13:18.040 --> 00:13:20.200
+Emacs APK, Emacs in virtual machine?
+
+00:13:20.200 --> 00:13:22.420
+This is also the case on Emacs for Windows to
+
+00:13:22.420 --> 00:13:23.980
+a lesser degree. So summarizing,
+
+00:13:24.280 --> 00:13:27.240
+how do you make Emacs work on Android if you
+
+00:13:27.240 --> 00:13:30.040
+do not have the synergy of stuff that you
+
+00:13:30.040 --> 00:13:32.560
+usually find on Linux systems like MPV and
+
+00:13:32.560 --> 00:13:34.420
+all the fancy applications like this?
+
+00:13:35.340 --> 00:13:38.380
+It's a good question. Since I'm not an
+
+00:13:38.380 --> 00:13:40.460
+Android user and I've never tried running
+
+00:13:40.460 --> 00:13:42.020
+Emacs on Android platforms,
+
+00:13:42.100 --> 00:13:44.920
+I'm not sure what's available out there to
+
+00:13:44.920 --> 00:13:46.440
+plug Emacs into. I mean,
+
+00:13:46.440 --> 00:13:48.160
+effectively, that question comes down to
+
+00:13:48.160 --> 00:13:50.420
+external dependencies and system support.
+
+00:13:50.940 --> 00:13:53.320
+That would be a great question for Stefan or
+
+00:13:53.320 --> 00:13:55.740
+somebody who has tried using Emacs,
+
+00:13:56.200 --> 00:13:58.600
+the development version of Emacs on Android.
+
+00:14:00.660 --> 00:14:03.980
+Great. We'll put a pin in this for Stéphane
+
+00:14:04.540 --> 00:14:07.580
+afterwards. Great, so moving on to the next
+
+00:14:07.580 --> 00:14:09.860
+question. Will Org Tech someday become the
+
+00:14:09.860 --> 00:14:11.320
+default tech mode in Emacs?
+
+00:14:11.320 --> 00:14:14.880
+And if so, when? Will Org what become?
+
+00:14:15.240 --> 00:14:17.980
+Org Tech, you know, the LaTeX mode.
+
+00:14:19.120 --> 00:14:24.840
+I do not know. It's been a while since I've
+
+00:14:24.840 --> 00:14:26.880
+done LaTeX. It must have been like 4 years,
+
+00:14:26.880 --> 00:14:30.280
+but it was a pretty, the major mode for
+
+00:14:30.280 --> 00:14:32.560
+editing documents, like the state of the art
+
+00:14:32.560 --> 00:14:34.840
+for editing latex documents in Emacs.
+
+00:14:34.940 --> 00:14:36.320
+And apparently it's not default.
+
+00:14:36.340 --> 00:14:38.360
+I assume there's latex mode or something that
+
+00:14:38.360 --> 00:14:41.580
+is doing it. So were you saying octech,
+
+00:14:41.760 --> 00:14:45.020
+like A-U-C tech? Oh, did I not pronounce the
+
+00:14:45.020 --> 00:14:48.140
+C? Octech, yes. I thought you said org tech.
+
+00:14:48.140 --> 00:14:49.620
+I wasn't familiar with that.
+
+00:14:50.280 --> 00:14:52.540
+Octech is the only 1 I've ever used.
+
+00:14:52.640 --> 00:14:55.360
+I know there is a built-in LaTeX mode,
+
+00:14:55.580 --> 00:14:57.240
+but I've never used it.
+
+00:14:57.240 --> 00:14:59.140
+I always just download whatever the latest
+
+00:14:59.140 --> 00:15:01.160
+version of Org Tech is and use that.
+
+00:15:01.280 --> 00:15:03.840
+I don't know why it's not a standard package.
+
+00:15:03.840 --> 00:15:07.360
+Becoming a standard package has its own costs
+
+00:15:07.360 --> 00:15:09.860
+for the development cycle because it slows
+
+00:15:09.860 --> 00:15:11.740
+down release cycle quite a bit.
+
+00:15:12.120 --> 00:15:14.680
+It's now you have to create PRs that are
+
+00:15:14.680 --> 00:15:17.240
+reviewed by the Emacs Devel mailing list.
+
+00:15:17.620 --> 00:15:19.340
+It is a little more inertia.
+
+00:15:19.340 --> 00:15:21.680
+Of course, it gets you more distribution
+
+00:15:21.940 --> 00:15:24.020
+because it's a default package now,
+
+00:15:24.020 --> 00:15:26.100
+and everybody can be using that.
+
+00:15:26.140 --> 00:15:28.600
+But it's not something every developer
+
+00:15:28.660 --> 00:15:31.400
+decides to do. It took a few years,
+
+00:15:31.400 --> 00:15:34.620
+in fact, to get usePackage into Emacs core.
+
+00:15:34.660 --> 00:15:37.200
+And that only happened after it was so stable
+
+00:15:37.200 --> 00:15:39.360
+that it really wasn't receiving many changes
+
+00:15:39.360 --> 00:15:44.760
+anymore. Yeah, yeah it's it's the thing when
+
+00:15:44.760 --> 00:15:46.720
+you move into core you lose a lot of your
+
+00:15:46.720 --> 00:15:49.280
+agility in terms of how you're writing the
+
+00:15:49.280 --> 00:15:50.940
+code or how you expand code.
+
+00:15:51.300 --> 00:15:54.220
+That's why you have this vibrant community on
+
+00:15:54.220 --> 00:15:57.680
+Melpa compared to core but you know it
+
+00:15:57.740 --> 00:15:59.480
+doesn't necessarily ought to be this way it
+
+00:15:59.480 --> 00:16:02.320
+could be a little different you know And it
+
+00:16:02.320 --> 00:16:04.580
+feels like there's this repetition between
+
+00:16:04.760 --> 00:16:06.820
+repartition, sorry, between people developing
+
+00:16:06.820 --> 00:16:08.600
+for the core of Emacs and people developing
+
+00:16:08.600 --> 00:16:10.760
+on Melpa, but at the end of the day those 2
+
+00:16:10.760 --> 00:16:13.020
+groups are constantly talking to 1 another
+
+00:16:13.180 --> 00:16:15.240
+and taking cues from 1 another as well.
+
+00:16:15.240 --> 00:16:17.540
+So that's great. And there's of course...
+
+00:16:18.820 --> 00:16:21.880
+May I jump in about this particular question
+
+00:16:21.900 --> 00:16:25.080
+because I think I mean You know,
+
+00:16:25.080 --> 00:16:27.540
+Org Mode doesn't really have any problems
+
+00:16:27.540 --> 00:16:29.380
+with releases Correct.
+
+00:16:29.380 --> 00:16:32.820
+Just because it's distributed with Emacs so
+
+00:16:32.860 --> 00:16:35.020
+there is a difference between being in the
+
+00:16:35.020 --> 00:16:37.960
+core proper and being distributed with Emacs.
+
+00:16:38.520 --> 00:16:40.080
+And for something like use packages,
+
+00:16:40.080 --> 00:16:42.280
+it's really necessary to be in the core.
+
+00:16:42.600 --> 00:16:44.840
+But for something like major mode,
+
+00:16:45.060 --> 00:16:48.740
+it's a bit easier. That's a very very good
+
+00:16:48.740 --> 00:16:50.400
+point. Yeah, I'd forgotten about that
+
+00:16:50.400 --> 00:16:53.000
+distinction. Org mode does advance pretty
+
+00:16:53.000 --> 00:16:55.900
+rapidly and then it makes releases into the
+
+00:16:55.900 --> 00:16:59.640
+core distribution. Gianni,
+
+00:16:59.640 --> 00:17:01.480
+I believe you also wanted to say something
+
+00:17:01.480 --> 00:17:03.840
+before someone started jumped in with a
+
+00:17:03.840 --> 00:17:08.700
+question do you happen to remember okay
+
+00:17:08.700 --> 00:17:12.020
+that's fine I lost her to lost to their time
+
+00:17:12.560 --> 00:17:14.560
+I'll be moving on to the next question then
+
+00:17:15.700 --> 00:17:17.460
+and by the way feel free to interrupt us you
+
+00:17:17.460 --> 00:17:19.619
+know The whole point of this discussion is
+
+00:17:19.619 --> 00:17:21.140
+for you to ask questions to John Wheatley.
+
+00:17:21.140 --> 00:17:23.520
+So whether it be via the other pad or via
+
+00:17:23.520 --> 00:17:26.180
+BBB, choose your weapon.
+
+00:17:27.260 --> 00:17:28.820
+All right, moving on to the next question in
+
+00:17:28.820 --> 00:17:30.520
+the meantime. And we have about 7 minutes
+
+00:17:30.520 --> 00:17:32.760
+left of Q&A and then we'll be moving on to
+
+00:17:32.760 --> 00:17:35.780
+Stéphane. So, do you use other IDEs for
+
+00:17:35.780 --> 00:17:38.040
+theorem proving work, notably VS Code for
+
+00:17:38.040 --> 00:17:42.340
+Lean? Which languages and provers can or do
+
+00:17:42.340 --> 00:17:45.920
+you use Emacs for? I've only used Emacs.
+
+00:17:46.120 --> 00:17:49.840
+I've used Emacs for working with ACL 2,
+
+00:17:49.960 --> 00:17:53.480
+Coq, Agda, and Lean, and I really love
+
+00:17:53.480 --> 00:17:55.680
+Proof-General. Coq is my favorite language to
+
+00:17:55.680 --> 00:17:57.740
+be working in. Agda has really great support
+
+00:17:57.740 --> 00:17:59.540
+as well, has a very nice Emacs mode.
+
+00:17:59.540 --> 00:18:02.920
+I'm only just now starting to get into Lean
+
+00:18:02.920 --> 00:18:05.140
+4. So I have everything installed,
+
+00:18:05.280 --> 00:18:07.240
+but I haven't really started coding in
+
+00:18:07.240 --> 00:18:08.800
+earnest. I'm still reading a lot of the
+
+00:18:08.800 --> 00:18:10.920
+tutorials and learning a bit about the
+
+00:18:10.920 --> 00:18:13.440
+language. There was a while there where I
+
+00:18:13.440 --> 00:18:17.540
+used a IDE for ACL 2 that was outside of
+
+00:18:17.540 --> 00:18:19.920
+Emacs, only because it was the same IDE all
+
+00:18:19.920 --> 00:18:22.040
+my co-workers were using and it was easier to
+
+00:18:22.040 --> 00:18:24.240
+share tips and tricks with them.
+
+00:18:24.520 --> 00:18:28.240
+But yeah, no, I found Emacs to be a great
+
+00:18:28.240 --> 00:18:29.860
+home for doing theorem proving.
+
+00:18:32.120 --> 00:18:36.580
+Right. Next question. Can we see that AI
+
+00:18:36.580 --> 00:18:40.760
+generated draft? You know what you mentioned
+
+00:18:40.760 --> 00:18:43.420
+before about the draft that you then fed into
+
+00:18:43.420 --> 00:18:45.480
+ChargPT? Do you happen to have this draft
+
+00:18:45.480 --> 00:18:51.440
+anywhere? Let me see if it's still on GitHub.
+
+00:18:51.760 --> 00:18:54.300
+Just take me 1 second to take a look here.
+
+00:18:55.260 --> 00:18:59.820
+Take your time. The problem is I don't quite
+
+00:18:59.820 --> 00:19:01.820
+remember where I made the note.
+
+00:19:04.700 --> 00:19:07.260
+But no, I don't see it on GitHub,
+
+00:19:07.340 --> 00:19:09.840
+so I don't have it readily at hand.
+
+00:19:10.580 --> 00:19:13.240
+Well, that's fine. We'll be able to...
+
+00:19:13.520 --> 00:19:15.060
+Well, if you happen to find it,
+
+00:19:15.060 --> 00:19:17.280
+we'll make sure to add it on the pad and then
+
+00:19:17.280 --> 00:19:20.940
+on the talks page. And I think we would all
+
+00:19:20.940 --> 00:19:22.440
+be interested to see what this design
+
+00:19:22.440 --> 00:19:27.160
+document that actually made something work
+
+00:19:27.160 --> 00:19:28.980
+afterwards in JudgeDPT with Elisp.
+
+00:19:28.980 --> 00:19:30.720
+I'm very interested to see what it would do
+
+00:19:30.720 --> 00:19:32.720
+because I tend to be very interested about
+
+00:19:32.720 --> 00:19:34.780
+this type of stuff I had generated but I
+
+00:19:34.780 --> 00:19:36.860
+never thought about doing it with Elisp
+
+00:19:37.040 --> 00:19:39.000
+because somehow it feels like 2 different
+
+00:19:39.000 --> 00:19:41.020
+worlds, like Elisp is kind of from the past,
+
+00:19:41.260 --> 00:19:44.040
+don't going me wrong, I love it and I use it
+
+00:19:44.140 --> 00:19:46.920
+every day But it's 2 different parts of my
+
+00:19:46.920 --> 00:19:48.820
+brain that I didn't think about linking.
+
+00:19:48.820 --> 00:19:51.100
+So I'd be very excited to see this as well.
+
+00:19:53.040 --> 00:19:54.640
+Moving on to the next question.
+
+00:19:54.640 --> 00:19:56.980
+Oh, go on, please. I did find it.
+
+00:19:57.260 --> 00:20:01.080
+I'm gonna have to give it to you as a link
+
+00:20:01.080 --> 00:20:03.380
+here. Sure, you can do it on the blue button
+
+00:20:03.380 --> 00:20:05.900
+and I'll put it on the pad.
+
+00:20:10.160 --> 00:20:12.540
+I put it into the public chat for Bibi.
+
+00:20:12.960 --> 00:20:15.920
+Yes. So if anyone is interested,
+
+00:20:15.920 --> 00:20:18.280
+I'm putting it right in the answer to the
+
+00:20:18.280 --> 00:20:20.200
+question right here on my screen.
+
+00:20:20.200 --> 00:20:22.120
+So feel free to click on it and explore it.
+
+00:20:22.120 --> 00:20:23.680
+I'm kind of curious, so I'm gonna...
+
+00:20:23.680 --> 00:20:25.560
+Can I click it on stream and can we look at
+
+00:20:25.560 --> 00:20:26.620
+it a little bit together?
+
+00:20:26.740 --> 00:20:29.020
+Sure, sure. I haven't tried running it,
+
+00:20:29.020 --> 00:20:31.680
+I can't say for its fitness,
+
+00:20:31.680 --> 00:20:34.220
+but it's definitely enough of the groundwork
+
+00:20:34.400 --> 00:20:36.660
+done that it's absolutely an assistance.
+
+00:20:38.100 --> 00:20:40.260
+Right. Okay, so it's loading up right now?
+
+00:20:41.540 --> 00:20:42.620
+You can see my webcam,
+
+00:20:42.620 --> 00:20:45.680
+right? I can see your browser attempting to
+
+00:20:45.680 --> 00:20:47.360
+load. There we go. Okay,
+
+00:20:47.360 --> 00:20:50.060
+cool. So I'm not sure what GitHub is doing.
+
+00:20:50.060 --> 00:20:51.460
+Let me give it a little more room.
+
+00:20:51.460 --> 00:20:54.360
+The reactive setup is not working too well.
+
+00:20:57.260 --> 00:20:58.840
+Oh, I see. You're viewing the...
+
+00:20:59.540 --> 00:21:02.220
+I see. Can I see the file then?
+
+00:21:02.220 --> 00:21:04.020
+I should be able to see the file.
+
+00:21:06.460 --> 00:21:09.060
+I think he just mentions the code in that
+
+00:21:09.060 --> 00:21:11.640
+comment. So if there's a way to view only the
+
+00:21:11.640 --> 00:21:14.897
+comment it would make it clear.
+
+00:21:14.897 --> 00:21:16.660
+Right. Okay. I'm loading the file separately.
+
+00:21:17.320 --> 00:21:18.500
+I'm checking the time.
+
+00:21:18.740 --> 00:21:21.340
+We have about 3 minutes left and I think we
+
+00:21:21.340 --> 00:21:22.900
+have a question. In the meantime,
+
+00:21:22.900 --> 00:21:25.760
+whilst I show this, I'm gonna launch another
+
+00:21:25.760 --> 00:21:28.820
+question, which was about Drafts.
+
+00:21:29.440 --> 00:21:30.740
+You are carrying, you're talking about
+
+00:21:30.740 --> 00:21:32.480
+Drafts, but does that mean you're not using
+
+00:21:32.480 --> 00:21:35.920
+org anymore? Oh, no, I use org all the time.
+
+00:21:35.920 --> 00:21:38.100
+In fact, the way that I've configured drafts
+
+00:21:38.160 --> 00:21:40.580
+is that after I type the thing in the note
+
+00:21:40.580 --> 00:21:43.260
+into drafts, I hit a key and it creates an
+
+00:21:43.260 --> 00:21:45.420
+org mode capture item for it.
+
+00:21:45.540 --> 00:21:48.560
+The reason why I use Drafts instead of Emacs
+
+00:21:48.560 --> 00:21:50.660
+is because it's always available.
+
+00:21:51.100 --> 00:21:53.960
+If Emacs is currently doing some job for me,
+
+00:21:53.960 --> 00:21:56.340
+say I'm running some long-running subshell
+
+00:21:57.060 --> 00:21:59.440
+and the UI is frozen up whatnot,
+
+00:21:59.700 --> 00:22:02.360
+Drafts is always 100% of the time instantly
+
+00:22:02.360 --> 00:22:04.900
+available. So that's why I tend to then lean
+
+00:22:04.900 --> 00:22:07.920
+on it a bit, but all of the destination of
+
+00:22:07.920 --> 00:22:10.240
+that data is still Org Mode and everything
+
+00:22:10.240 --> 00:22:12.460
+that I do gets tracked through Org Mode.
+
+00:22:13.080 --> 00:22:16.160
+That's also why I wanted to implement the UI
+
+00:22:16.160 --> 00:22:18.800
+scheme of drafts in Emacs so that I could
+
+00:22:18.800 --> 00:22:20.860
+drop the use of this external application.
+
+00:22:21.540 --> 00:22:23.160
+And then, I mean, I would still have the
+
+00:22:23.160 --> 00:22:25.580
+problem of sometimes Emacs being unavailable,
+
+00:22:26.060 --> 00:22:30.040
+but I would pay that price in order to have
+
+00:22:30.040 --> 00:22:32.700
+that good UI of drafts inside Emacs.
+
+00:22:34.640 --> 00:22:37.700
+Great. I think we have,
+
+00:22:38.420 --> 00:22:39.720
+we might be too tight on time.
+
+00:22:39.720 --> 00:22:41.640
+We only have about 2 minutes and I need to
+
+00:22:41.640 --> 00:22:44.180
+jump room to go into Stephane's room as well.
+
+00:22:44.440 --> 00:22:47.380
+So John, where I get to thank you so much for
+
+00:22:47.380 --> 00:22:53.160
+taking the time to answer our questions,
+
+00:22:53.260 --> 00:22:55.040
+but also doing a little bit of reporting on
+
+00:22:55.040 --> 00:22:58.380
+the state of Emacs. And now we'll get to
+
+00:22:58.380 --> 00:22:59.280
+continue this with Stéphane.
+
+00:22:59.280 --> 00:23:01.300
+So do you have any last words for everyone,
+
+00:23:01.300 --> 00:23:03.660
+John? No, no. I look forward to hearing
+
+00:23:03.660 --> 00:23:06.420
+Stéphane speak. Okay, great.
+
+00:23:06.420 --> 00:23:07.360
+And we'll look forward,
+
+00:23:07.360 --> 00:23:09.300
+potentially, to having you again next year,
+
+00:23:10.520 --> 00:23:12.680
+potentially still doing news like this,
+
+00:23:12.980 --> 00:23:15.920
+and, fingers crossed, maybe having you live
+
+00:23:15.920 --> 00:23:18.660
+again. Maybe, maybe let's see what happens.
+
+00:23:19.700 --> 00:23:20.860
+All right, John. Thank you so much.
+
+00:23:20.860 --> 00:23:22.280
+Bye bye. Bye bye.