+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.
-I have the pleasure to welcome John Wheatley +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,
-we were reminiscing with Sasha. +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. -- cgit v1.2.3