In this talk, John Wiegley will briefly summarize important developments on the road to Emacs 30. He will not be able to answer questions right now, but you can post questions in the pad and he can
follow up after the event.
Discussion
Questions and answers
Q: Which changes in recent Emacs releases are you enjoying using?
A: I have really liked the visual-line-mode. I'm not sure how
recent that is. Some of these features I've discovered quite
late. The new display-line-number-mode, much faster. Native
compilation. I do a lot of stuff in Emacs. Native compilation
has brought the experience much closer to a modern app.
Q: What do you think the future in the area of artificial
intelligence from the developer point of view?
A: I do use xinside Emacs quite a bit when doing development in
other languages. Ex: working on ledger, haven't done a lot of
C++ lately. Ex: comparing strings only up to the length of the
shortest string. I think in terms of developer assistance, not
having to keep all the libraries in memory... Like Rosetta Code
(https://rosettacode.org/wiki/Rosetta_Code). That's a great
database - code in different languages.
Q: What is the future of Emacs on macOS? I understand that there are
too few developers for the platform. Is that still true?
A: I do not know exactly what the state of Emacs development on
macOS is, but I have never suffered in any way, using Emacs on
the Mac for decades.
Q:Why aren't you contributing to Emacs anymore? Lack of time, I
guess?
A: Lack of free time
Draft? (story about describing what he wanted, and then someone
ran it through ChatGPT and sent him Emacs Lisp code) <- ChatGPT
example, may increase the efficiency of my free time
What was the language that you code in now?
Q: One of the tricky things about running emacs on android is do you
use anything that requires extra packages ex, pdf-tools with
mupdf? - org-roam with a database - playing music or video with mpd
or mpv and bonga, elfeed. Do you run emacs turmux, Emacs apk, emacs
in virtaul machine??? This is also the case on Emacs for windows but
to a lesser degree
A: (zaeph) We'll put a pin in this for Stefan afterwards.
Q: Will AUCTeX some day become the default TeX mode in Emacs? And,
if so, when?
A: The downside of moving to core is that your release cycle is
slowed down because you have to go through emacs-devel and the
devel team. So it seems to be up to AUCTeX developers. This can
be troublesome if a package develops rapidly.
Q: Do you use other IDEs for theorem proving work, notably VS Code
for LEAN? Which languages and provers can/do you use Emacs for?
A: I have always used Emacs.
Q: Can we see that AI-generated "Drafts"-like code anywhere?
Q: Wait, just a quick search over "Draft". Does that mean you're
not using Org anymore?
okay, I am good now
Q: Speaking of which, do you ever hit the walls in terms of
multithreading issues, and if so when doing what / in what cases?
Q: was [perl-mode] just abandonned or did cperl bring a new design ?
Not the speaker: I think someone just started a separate cperl-mode (based on c-mode) and many of us found it worked better, so switched to it.
Notes
Emacs 29 has been quite a success so far, 29.2 to be released soon
Thinking about starting Emacs 30 release cycle (emacs-30 will be cut
and development will be frozen with only bugfixes going in); could
take some time
Not a huge number of changing features, but still some interesting
things
Android support - native Emacs on a tablet, etc.
Much better support for touchscreen devices (laptops and tablets)
Interesting, the original design of Hyperbole anticipated iPad-like
devices with each node of information represented by a rounded
square and interconnected in a knowledge graph like Org-roam does,
so maybe we'll do some work in that direction.
There will be some support for LL(?)
perl-mode -> cperl-mode
byte-compiler will warn about more questionable constructs: empty
macro bodies, etc.
Stefan Kangas is a new co-maintainer (and he'll be giving the next
talk live)
Thanks John for all the news on Emacs and informative answers.
Transcript (unedited)
2 seconds. All right. I think we are live.Yes. So, hi again, everyone.I have the pleasure to welcome John Wiegleyin person to this EmacsConf.Hi, John. Hello there.How are you doing, Leo?I am doing fantastic, and even more now thatI am in a room with you because we've been,we were reminiscing with Sacha.So you had been there in person in 2013 Andsince we started doing those online,Juan, since 2019, I think you've always beenonline, right? Usually it's a pre-recordedvideo. I think this will be the first 1 I dolive in a long time. You're right.I'm saying we are online right now,but I just meant pre-recorded video.So it's good to have you almost in person orat least live and we are excited to hearabout some of the Emacs news.So the floor is yours.All right, well welcome everybody.This is the yearly state of the Emacs union,I guess, about how Emacs development isgoing. Just to note, I am not currently amaintainer of Emacs. So what I do to getthese notes is I call up my friend,Eli Zaretsky, 1 of the current Emacsmaintainers, and he and I sit down for anhour, and he just gives me his dump of what'sbeen going on. So I'm sort of just themessenger here. But thanks to Eli for thesenotes and all of the efforts that hecontributes. So what he's been telling me isthat this Emacs 29 release that we hadrecently looks to have been very,very successful, which is some good news,because there were a lot of new features,and some of those features were actuallyquite radical. So far,it's been quite a success,no serious problems with it,and we have Emacs 29.2will be released very soon.They are thinking now about starting theEmacs 30 release cycle soon after 29.2is released, where the release branch,which is called Emacs-30 usually,will be cut and then development will becomefrozen with only bug fixes going into thatbranch. That may take quite some time untilit actually comes to fruition as a release,but at least it means that the release isgoing to start taking shape in that branchsoon. So, for now, Emacs 30 looks like maybeit's going to be a little less interestingthan Emacs 29 was, meaning not a huge numberof changing features. But there are stillsome new things going in.So 1 of them is that Emacs 30 is going tohave Android support. So you will be able torun Emacs 30 on your Android devices.So if you've ever wanted to have native Emacson a tablet, which I know I've always wanted,that will become possible with Emacs 30.There's also going to be much better supportfor touchscreen devices,coincidentally, both laptops and tablets.So that'll enhance that Android support.There will be some recently gained supportfor LLDB in GUD.dl. So if you're on a Mac OSmachine or a machine that uses just LLVM aspart of the compilation process,then you probably are familiar with LLDB asthe command line debugger.And that support for using LLDB through a GUDwill become possible in Emacs 30.I'm looking forward to this actually quite abit as well. C Perl mode is being deprecated,and all future work now is only being puttowards C Perl mode. Another 1 is that thereare going to be some new major modes based onTreeSitter. They will be for the languagesLua, Elixir, and HTML.And if you're not familiar,I think TreeSitter was introduced in Emacs
It's a library that allows you to specify
the grammar of a programming language as aBNF file, and I think using JavaScript,and then with that file as input to Emacs,it is then able to do syntax highlighting,syntax discovery, all of those things withinEmacs without having to use elisp and regexpsto discover the structure of the language.It defers the structure gathering toTreeSitter and then uses that information tonavigate the language.So, As time goes on, you'll see more and morelanguages taking on TreeSetter support.So the next 3 coming up,Lua, Elixir, and HTML.And then the last feature for Emacs 30 isthat the byte compiler will now detect andwarn about many more questionable constructs.Things like empty macro bodies,missing lexical constructs,or say, condition case without any handlers.Just silly stuff that might litter the code,but now you'll get a warning about it fromthe byte compiler to help you clean up thecode and get rid of those potential sites oferror. So this is the main thing that will beworked on for Emacs 30 and what's looked likeshaping up for the release.And also, he wanted me to announce thatStefan Kongas is now a new co-maintainer.And Stefan is, I believe,here with us in the conference and he'll beable, I hope, to help me answer any questionsabout future Emacs development because I'mnot in the heat of it and don't have allthose answers at the moment.So That is all there is as far as adevelopment update for now.And I am available to take any questions.All right. Thank you so much,Sean, for being the messenger of all thisgood news. I mean, you did start by sayingthis would not be as exciting,perhaps, as prior releases of Emacs,but you then proceeded to say a lot of stuffthat it felt very exciting to me.So good, good. Glad to hear that.Right. So we do have questions coming inalready and again people the link is on IRCand also on the talks page if you want tostart asking questions.So John what I'm going to do I'm going toread you the questions and then you cananswer them. Is that okay with you?Absolutely. So starting with the firstquestion which changes in recent Emacsreleases are you enjoying using?I have really liked the visual line mode.I'm not sure how recent that is.Some of these features I only discoveredquite late, the new display line numberfunctionality, where it's much,much, much faster, and of course,native compilation. Native compilation hasbeen quite brilliant for some of the largerpackages that I use. I do a lot of stuff inEmacs. I use GNU's, I use E-Shell,I use Org Mode quite a lot.So native compilation has brought the userexperience much closer to a modern app thansome of the lagging and slowness that I mighthave experienced in the past.Definitely. Moving on to the next question.What do you think the future in the area ofartificial intelligence from the developerpoint of view? Could you say that 1 moretime? Your voice broke up a little bit.Oh, sorry. What do you think the future inthe area of artificial intelligence from thedeveloper point of view?Could you say that 1 more time?Your voice broke up a little bit.Oh, sorry. What do you think the future inthe area of artificial intelligence from thedeveloper point of view?It's also a shaky question,I think, but you get the point.I do use chat-gpt-shell inside of Emacs quitea bit, actually, when doing development inother languages. Just the other day,I was working on my Ledger accountingprogram, and I haven't done a lot of C++ inrecent years. So I had forgotten how toexactly compare 2 strings only up to thelength of the shortest string.I know I could have cranked that out justwriting it C style, but I didn't rememberwhat the current state of the art is for C++and the STL. So I just asked chatGPT.I asked the exact question that I just saidto you and sure enough it popped out theone-liner that was exactly what I needed.So I think in terms of developer assistance,not having to keep all of standard librariesor common idioms in memory.I don't know if other people are familiarwith Rosetta Stone projects.They're projects where you have say a hundreddifferent languages and there's a particularquestion, say, how do I read a file and copyit to another location?And then it has an instance of doing thatactivity for every 1 of those languages.That's a great database,and I've used them quite a bit in the pastfor remembering how to do certain things,say, converting a string to UTF-8.I think that AI does a great job ofcompletely replacing the need for databaseslike that because you can just ask how do Icopy a convert a string to UTF-8.Yeah exactly and you know especially withlanguages which are tried well tried you knowit's very easy to get an answer that iscorrect. But sometimes what I find bothersomewith this type of coding,I think it's AI-aided coding,but it's still coding,is that, especially with C languages,sometimes you're going to end up withundefined behaviors and stuff like this justbecause other people have been doing it,not because the algorithm or the model wastrained with data that dates back to 10 yearsago. At the time, C++ was a little different.Anyway, I'm not here to talk,you are here to talk. Moving on to the nextquestion. People already get to hear my voiceplenty, whereas yours are much sparser.All right. So, what is the future of Emacs onmacOS? I understand that there are too fewdevelopers for the platform.Is that still true? That's a good question.I don't know what the current statistics are.I've been a user of Emacs on Mac OS fordecades now. It feels like the,There's also that Mac port version of Emacs,which builds Emacs more directly using theGUI libraries on the platform.That continues to be updated with everysingle new release that comes out.So I'd say that the support may not be asgreat as it is on Linux and other platforms,but to this day I haven't suffered from beinga Mac user. Great. The only thing I rememberabout Emacs on macOS was that emojis made itinside the GUI first before they did itanywhere else. That's the 1 anecdote that Ihave on MacOS. Right. And historically thatfeature was removed in order to prevent Macfrom having features that Linux did not.I didn't want to go into that point.I just wanted to mention the beginning of theanecdote and people can find it out.But yes, that's also what it led to.Moving on to the next question.Why aren't you contributing to Emacs anymore?Lack of time, I guess?Lack of time, primarily.Work has been very consuming.There are a lot of other projects and thingsthat I like doing. I still find Emacs Lispvery, very fun to write.Just the other day, I was hacking up someextension macros for myself for org mode.But to have the time needed to sit down anddesign a whole new mode and work on it.I've been spending a lot of my time now infunctional languages, especially theoremprovers. I just find that so intellectuallysatisfying and interesting.Plus it pays a lot better.Never had a paying job as an Emacs listdeveloper. So when it comes to now just beinga fun language or a hobby language,it is relegated to the time that I have freewhen it's available. Right.Well, the good thing is that it's kind oflike riding a bicycle,you know, writing a major mode,it comes back relatively quickly and stillenjoyable. You know, the other day,actually, I took notes on a mode that Iwanted to write. There's an app I use on theMac called drafts, and I really love it.I use it all the time.I wanted to mimic the interface of this appin Emacs. So I could use Emacs as my draftsapplication rather than this separate 1.So I noted down all the different userparameters and how it should function andeverything to describe the app to myself assort of notes to get me started on that workwhen I did have free time to work on it.Somebody out there on the internet just sawthese notes, because I keep a lot of my stuffon GitHub. They fed it to chat GPT,going back to your AI question.And they actually sent back to me a mode thatimplemented everything that I had said,which was effectively,chat GPT, seeing that what I had describedwas clear enough for it to derive most of thecode that I would have wanted to write.So maybe, maybe another thing that AI can dois it can increase the value,the efficiency of my free time.Exactly. I think that's a wonderful point.And phrasing it as efficiency of free time isgreat because you still have the expertise,obviously, that you're mobilizing into thedesign that you're formulating to charge DPT,but then this expertise is turned intosomething that actually works.Perhaps we're all going to become softwarearchitects at some point,and then the busy work of actually coding thelibrary and the software will be relegated toAI. That's an interesting future where westill, however, need to acquire the skills toknow what is code, I suppose.But that's an interesting future to think of.A fairly long question.So 1 of the tricky things about running Emacson Android is do you use anything thatrequires extra packages?Example like PDF tools with new PDF or goingwith a database, playing music or video withMPD or MPV on Bonga, LFeed.Do you run Emacs Termex,Emacs APK, Emacs in virtual machine?This is also the case on Emacs for Windows toa lesser degree. So summarizing,how do you make Emacs work on Android if youdo not have the synergy of stuff that youusually find on Linux systems like MPV andall the fancy applications like this?It's a good question. Since I'm not anAndroid user and I've never tried runningEmacs on Android platforms,I'm not sure what's available out there toplug Emacs into. I mean,effectively, that question comes down toexternal dependencies and system support.That would be a great question for Stefan orsomebody who has tried using Emacs,the development version of Emacs on Android.Great. We'll put a pin in this for Stéphaneafterwards. Great, so moving on to the nextquestion. Will Org Tech someday become thedefault tech mode in Emacs?And if so, when? Will Org what become?Org Tech, you know, the LaTeX mode.I do not know. It's been a while since I'vedone LaTeX. It must have been like 4 years,but it was a pretty, the major mode forediting documents, like the state of the artfor editing latex documents in Emacs.And apparently it's not default.I assume there's latex mode or something thatis doing it. So were you saying octech,like A-U-C tech? Oh, did I not pronounce theC? Octech, yes. I thought you said org tech.I wasn't familiar with that.Octech is the only 1 I've ever used.I know there is a built-in LaTeX mode,but I've never used it.I always just download whatever the latestversion of Org Tech is and use that.I don't know why it's not a standard package.Becoming a standard package has its own costsfor the development cycle because it slowsdown release cycle quite a bit.It's now you have to create PRs that arereviewed by the Emacs Devel mailing list.It is a little more inertia.Of course, it gets you more distributionbecause it's a default package now,and everybody can be using that.But it's not something every developerdecides to do. It took a few years,in fact, to get usePackage into Emacs core.And that only happened after it was so stablethat it really wasn't receiving many changesanymore. Yeah, yeah it's it's the thing whenyou move into core you lose a lot of youragility in terms of how you're writing thecode or how you expand code.That's why you have this vibrant community onMelpa compared to core but you know itdoesn't necessarily ought to be this way itcould be a little different you know And itfeels like there's this repetition betweenrepartition, sorry, between people developingfor the core of Emacs and people developingon Melpa, but at the end of the day those 2groups are constantly talking to 1 anotherand taking cues from 1 another as well.So that's great. And there's of course...May I jump in about this particular questionbecause I think I mean You know,Org Mode doesn't really have any problemswith releases Correct.Just because it's distributed with Emacs sothere is a difference between being in thecore proper and being distributed with Emacs.And for something like use packages,it's really necessary to be in the core.But for something like major mode,it's a bit easier. That's a very very goodpoint. Yeah, I'd forgotten about thatdistinction. Org mode does advance prettyrapidly and then it makes releases into thecore distribution. Gianni,I believe you also wanted to say somethingbefore someone started jumped in with aquestion do you happen to remember okaythat's fine I lost her to lost to their timeI'll be moving on to the next question thenand by the way feel free to interrupt us youknow The whole point of this discussion isfor you to ask questions to John Wheatley.So whether it be via the other pad or viaBBB, choose your weapon.All right, moving on to the next question inthe meantime. And we have about 7 minutesleft of Q&A and then we'll be moving on toStéphane. So, do you use other IDEs fortheorem proving work, notably VS Code forLean? Which languages and provers can or doyou use Emacs for? I've only used Emacs.I've used Emacs for working with ACL 2,Coq, Agda, and Lean, and I really loveProof-General. Coq is my favorite language tobe working in. Agda has really great supportas well, has a very nice Emacs mode.I'm only just now starting to get into Lean
So I have everything installed,
but I haven't really started coding inearnest. I'm still reading a lot of thetutorials and learning a bit about thelanguage. There was a while there where Iused a IDE for ACL 2 that was outside ofEmacs, only because it was the same IDE allmy co-workers were using and it was easier toshare tips and tricks with them.But yeah, no, I found Emacs to be a greathome for doing theorem proving.Right. Next question. Can we see that AIgenerated draft? You know what you mentionedbefore about the draft that you then fed intoChargPT? Do you happen to have this draftanywhere? Let me see if it's still on GitHub.Just take me 1 second to take a look here.Take your time. The problem is I don't quiteremember where I made the note.But no, I don't see it on GitHub,so I don't have it readily at hand.Well, that's fine. We'll be able to...Well, if you happen to find it,we'll make sure to add it on the pad and thenon the talks page. And I think we would allbe interested to see what this designdocument that actually made something workafterwards in JudgeDPT with Elisp.I'm very interested to see what it would dobecause I tend to be very interested aboutthis type of stuff I had generated but Inever thought about doing it with Elispbecause somehow it feels like 2 differentworlds, like Elisp is kind of from the past,don't going me wrong, I love it and I use itevery day But it's 2 different parts of mybrain that I didn't think about linking.So I'd be very excited to see this as well.Moving on to the next question.Oh, go on, please. I did find it.I'm gonna have to give it to you as a linkhere. Sure, you can do it on the blue buttonand I'll put it on the pad.I put it into the public chat for Bibi.Yes. So if anyone is interested,I'm putting it right in the answer to thequestion right here on my screen.So feel free to click on it and explore it.I'm kind of curious, so I'm gonna...Can I click it on stream and can we look atit a little bit together?Sure, sure. I haven't tried running it,I can't say for its fitness,but it's definitely enough of the groundworkdone that it's absolutely an assistance.Right. Okay, so it's loading up right now?You can see my webcam,right? I can see your browser attempting toload. There we go. Okay,cool. So I'm not sure what GitHub is doing.Let me give it a little more room.The reactive setup is not working too well.Oh, I see. You're viewing the...I see. Can I see the file then?I should be able to see the file.I think he just mentions the code in thatcomment. So if there's a way to view only thecomment it would make it clear.Right. Okay. I'm loading the file separately.I'm checking the time.We have about 3 minutes left and I think wehave a question. In the meantime,whilst I show this, I'm gonna launch anotherquestion, which was about Drafts.You are carrying, you're talking aboutDrafts, but does that mean you're not usingorg anymore? Oh, no, I use org all the time.In fact, the way that I've configured draftsis that after I type the thing in the noteinto drafts, I hit a key and it creates anorg mode capture item for it.The reason why I use Drafts instead of Emacsis because it's always available.If Emacs is currently doing some job for me,say I'm running some long-running subshelland the UI is frozen up whatnot,Drafts is always 100% of the time instantlyavailable. So that's why I tend to then leanon it a bit, but all of the destination ofthat data is still Org Mode and everythingthat I do gets tracked through Org Mode.That's also why I wanted to implement the UIscheme of drafts in Emacs so that I coulddrop the use of this external application.And then, I mean, I would still have theproblem of sometimes Emacs being unavailable,but I would pay that price in order to havethat good UI of drafts inside Emacs.Great. I think we have,we might be too tight on time.We only have about 2 minutes and I need tojump room to go into Stephane's room as well.So John, where I get to thank you so much fortaking the time to answer our questions,but also doing a little bit of reporting onthe state of Emacs. And now we'll get tocontinue this with Stéphane.So do you have any last words for everyone,John? No, no. I look forward to hearingStéphane speak. Okay, great.And we'll look forward,potentially, to having you again next year,potentially still doing news like this,and, fingers crossed, maybe having you liveagain. Maybe, maybe let's see what happens.All right, John. Thank you so much.Bye bye. Bye bye.