WEBVTT NOTE Q: My biggest question with AI code editors trying to integrate with Emacs is -- are the AI code editors able to read unsaved buffers and not just saved files? 00:00:00.000 --> 00:00:01.759 So let's, I'm just going to answer 00:00:01.760 --> 00:00:04.399 the questions as I see them on the pad. 00:00:04.400 --> 00:00:07.079 So yeah, this first question is really good. 00:00:07.080 --> 00:00:09.919 And I think it's actually this great thing 00:00:09.920 --> 00:00:12.719 that I did not mention is that like, 00:00:12.720 --> 00:00:14.119 if you have unsaved buffers, 00:00:14.120 --> 00:00:17.679 which is, you know, when you're actually doing editing, 00:00:17.680 --> 00:00:21.999 most buffers are unsaved. 00:00:22.000 --> 00:00:25.959 really you need something tightly integrated with Emacs 00:00:25.960 --> 00:00:27.479 to deal with that. 00:00:27.480 --> 00:00:29.039 So things like, you know, 00:00:29.040 --> 00:00:30.239 I demonstrated Copilot, 00:00:30.240 --> 00:00:32.519 I demonstrated Gptel, 00:00:32.520 --> 00:00:35.439 things like those things, things like Ellama, 00:00:35.440 --> 00:00:38.719 these things will all work with unsaved buffers 00:00:38.720 --> 00:00:43.959 because they work via, you know, the input is the buffer. 00:00:43.960 --> 00:00:45.199 as opposed to a file. 00:00:45.200 --> 00:00:48.519 Things like Claude Code, Gemini Code, et cetera, 00:00:48.520 --> 00:00:49.519 those are working with files. 00:00:49.520 --> 00:00:51.639 They have no idea what is going on with your buffers. 00:00:51.640 --> 00:00:55.119 And it could be that you can solve this problem 00:00:55.120 --> 00:00:56.799 by using this thing called MCP, 00:00:56.800 --> 00:01:02.839 which kind of gives the coding agent 00:01:02.840 --> 00:01:05.119 a way to see anything in particular. 00:01:05.120 --> 00:01:06.799 In this case, it would be Emacs 00:01:06.800 --> 00:01:07.799 and the state of your buffers. 00:01:07.800 --> 00:01:11.319 But I think that's not a particularly great solution 00:01:11.320 --> 00:01:13.839 if that's how you want to work. 00:01:13.840 --> 00:01:15.719 But I think that's kind of like 00:01:15.720 --> 00:01:17.359 if you're in the Claude Code 00:01:17.360 --> 00:01:19.759 that kind of world where you know things are happening, 00:01:19.760 --> 00:01:24.679 basically through a terminal. 00:01:24.680 --> 00:01:26.399 It's okay, like you typically 00:01:26.400 --> 00:01:28.639 would not be doing a mix of things. 00:01:28.640 --> 00:01:30.119 You would just be doing things either 00:01:30.120 --> 00:01:32.399 in one place or the other place. 00:01:32.400 --> 00:01:33.599 You know, it could be that you switch off 00:01:33.600 --> 00:01:34.359 from one place to another, 00:01:34.360 --> 00:01:36.399 but you wouldn't be doing both at the same time. 00:01:36.400 --> 00:01:40.279 And it's kind of a, you tend to just fall into one, 00:01:40.280 --> 00:01:41.679 you know, 00:01:41.680 --> 00:01:44.759 editing outside the editor or editing inside the editor. 00:01:44.760 --> 00:01:47.039 And I find myself switching between the two 00:01:47.040 --> 00:01:48.959 when I use those kinds of tools. 00:01:48.960 --> 00:01:51.439 So David, let me interrupt you for just one moment. 00:01:51.440 --> 00:01:53.519 I want to just take care to read out 00:01:53.520 --> 00:01:55.079 the question that we're answering. 00:01:55.080 --> 00:01:58.999 The question was, my biggest question with AI code editors 00:01:59.000 --> 00:02:00.999 trying to integrate with Emacs is, 00:02:01.000 --> 00:02:04.599 are the AI code editors able to read unsaved buffers 00:02:04.600 --> 00:02:06.319 and not just saved files? 00:02:06.320 --> 00:02:11.719 Sorry. Yes. Yeah. Thank you for reminding me to. 00:02:11.720 --> 00:02:13.519 I will read the questions from now on. 00:02:13.520 --> 00:02:16.599 But yes, that's what I think about. 00:02:16.600 --> 00:02:20.319 that interesting questions about unsaved buffers. NOTE Q: Personally I don't agree with the comment you made about VS Code usage dying out because I see companies/products pushing for tightly-integrated VS-Code agents/products like Windsurf. Thoughts? 00:02:20.320 --> 00:02:22.239 The next question is, 00:02:22.240 --> 00:02:23.799 I don't agree with the comment you made 00:02:23.800 --> 00:02:25.199 about VS Code usage dying out 00:02:25.200 --> 00:02:26.719 because I see companies and products 00:02:26.720 --> 00:02:28.879 pushing for tightly integrated agent 00:02:28.880 --> 00:02:31.319 and products like Windsurf. 00:02:31.320 --> 00:02:33.239 So thoughts on that? 00:02:33.240 --> 00:02:35.879 Yeah, I mean, it's really hard 00:02:35.880 --> 00:02:36.999 to be certain of anything, 00:02:37.000 --> 00:02:38.439 like things are changing very fast 00:02:38.440 --> 00:02:40.639 and it's very hard to predict the future. 00:02:40.640 --> 00:02:47.839 But the trend I see is that um, 00:02:47.840 --> 00:02:50.919 the sort of outside editing experience 00:02:50.920 --> 00:02:53.519 where you just kind of instruct a model, 00:02:53.520 --> 00:02:56.759 what to do is getting better. 00:02:56.760 --> 00:02:58.679 And as long as that keeps getting better, 00:02:58.680 --> 00:03:00.839 I think that's going to lessen the demand 00:03:00.840 --> 00:03:04.879 for these tightly integrated editing experiences. 00:03:04.880 --> 00:03:10.839 So it could be that, um, a lot of people, 00:03:10.840 --> 00:03:12.839 especially in, you know, corporate environments 00:03:12.840 --> 00:03:14.279 just start using, 00:03:14.280 --> 00:03:15.599 they're going to use whatever is 00:03:15.600 --> 00:03:17.959 going to make the most productive. 00:03:17.960 --> 00:03:22.399 And I think right now, it's not clear that that will be, 00:03:22.400 --> 00:03:25.079 you know, the very agent-based, you know, 00:03:25.080 --> 00:03:27.359 command line-centric way of doing things. 00:03:27.360 --> 00:03:31.239 But it certainly, the trend is, if that continues, 00:03:31.240 --> 00:03:33.319 I think it probably will be like that. 00:03:33.320 --> 00:03:35.479 So I think we'll have to see. 00:03:35.480 --> 00:03:37.679 I don't think your opinion is unreasonable. 00:03:37.680 --> 00:03:40.319 I guess I'm kind of cautiously saying 00:03:40.320 --> 00:03:43.199 I think it's gonna be the opposite, but I guess we'll see. 00:03:43.200 --> 00:03:47.759 Like, let's reconvene in a year and see what happens. NOTE Q: Do you have any thoughts about the environmental cost of using LLMs - either the training of models we can download and use locally, or the larger, commercial models used from the cloud? 00:03:47.760 --> 00:03:49.159 Uh, the 3rd question answer, 00:03:49.160 --> 00:03:55.319 do you have any thoughts about the environmental costs 00:03:55.320 --> 00:03:57.079 of using either the training 00:03:57.080 --> 00:03:59.799 of the models are we can download or use locally 00:03:59.800 --> 00:04:02.359 or the larger commercial models used from the cloud. 00:04:02.360 --> 00:04:09.839 Um, I think. The, you know, I'm on social media, 00:04:09.840 --> 00:04:13.039 probably a little bit more than I should be. 00:04:13.040 --> 00:04:15.719 And I do see a lot of discussion there 00:04:15.720 --> 00:04:18.639 and a lot of concern about the environmental costs of using LLMs. 00:04:18.640 --> 00:04:22.799 I've looked into this as I'm also concerned 00:04:22.800 --> 00:04:27.199 about keeping my environmental footprint personally down. 00:04:27.200 --> 00:04:29.199 And I do this in many ways, 00:04:29.200 --> 00:04:31.319 but I certainly don't want to kind of like blow that all the water 00:04:31.320 --> 00:04:35.039 because I'm using LLMs so much. 00:04:35.040 --> 00:04:38.359 I think that the concerns are mostly overblown. 00:04:38.360 --> 00:04:41.839 There's a concern that, well, it uses a lot of energy. 00:04:41.840 --> 00:04:46.599 In aggregate, the total amount of energy 00:04:46.600 --> 00:04:50.559 used by the data centers in the US is a few percent. 00:04:50.560 --> 00:04:53.839 And this is a fraction. I think this is like LM's account 00:04:53.840 --> 00:04:56.719 for something like 20% now 00:04:56.720 --> 00:05:02.479 of all data center usage, which is a lot. 00:05:02.480 --> 00:05:03.959 But Those data centers are doing lots of things. 00:05:03.960 --> 00:05:05.239 They all need to be water cooled. 00:05:05.240 --> 00:05:08.679 Um, if you like per LLM prompt, 00:05:08.680 --> 00:05:11.399 the costs are relatively small 00:05:11.400 --> 00:05:13.239 and by relatively small, I mean, 00:05:13.240 --> 00:05:14.999 you know, people have said online, 00:05:15.000 --> 00:05:17.879 well, it's like a few bottles of water per prompt. 00:05:17.880 --> 00:05:20.119 That, that is not true. It is much, much less than that. 00:05:20.120 --> 00:05:21.359 It's a fraction of that. 00:05:21.360 --> 00:05:25.119 So, uh, I don't think the answer is nothing, 00:05:25.120 --> 00:05:28.759 but I would say it's, I would say you probably, 00:05:28.760 --> 00:05:30.799 if you want the most bang for your environmental buck, 00:05:30.800 --> 00:05:32.879 probably the best thing for you to do 00:05:32.880 --> 00:05:35.799 is take less flights and things like that. 00:05:35.800 --> 00:05:37.319 Like, yes, you can cut down on this, 00:05:37.320 --> 00:05:40.559 but I think it's pretty marginal at the moment. 00:05:40.560 --> 00:05:43.079 We do probably need to think about the total costs 00:05:43.080 --> 00:05:44.599 like of humanity using all of this. 00:05:44.600 --> 00:05:46.519 Like a lot of stuff you'll see 00:05:46.520 --> 00:05:48.759 corporations are using a lot of these things. 00:05:48.760 --> 00:05:52.079 And so like, just like if you look 00:05:52.080 --> 00:05:54.359 at water usage or energy uses in total, 00:05:54.360 --> 00:05:56.639 it's like really corporations that are using this. 00:05:56.640 --> 00:05:58.519 So there might, there's a lot of leverage there 00:05:58.520 --> 00:06:01.399 to make things more efficient as opposed to personal use. 00:06:01.400 --> 00:06:06.119 So I think it's wise to be cautious, 00:06:06.120 --> 00:06:09.079 but I think it's okay, I think, at least for personal use. NOTE Q: I must say, I liked your conclusion, but I differ insofar as you said that VS Code differ from Emacs because the former is not as easy to adapt as the latter. Why should Microsoft not adapt VS Code as we adapt Emacs for the new era of coding? And why would VS Code be harder hit? Could you please elaborate on this point? 00:06:09.080 --> 00:06:13.159 The next question is another, 00:06:13.160 --> 00:06:20.959 yeah, this is also disagreeing with me about VS Code, 00:06:20.960 --> 00:06:23.839 but it says, I must say I liked your conclusion, 00:06:23.840 --> 00:06:26.719 but I differ insofar as you said that VS Code differs from Emacs 00:06:26.720 --> 00:06:30.479 because the former is not as easy to adapt as the latter. 00:06:30.480 --> 00:06:33.559 But why should Microsoft not adapt VS Code 00:06:33.560 --> 00:06:35.759 as we adapt Emacs for the new era of coding? 00:06:35.760 --> 00:06:38.159 And why would VS Code be harder hit? 00:06:38.160 --> 00:06:43.599 Could you please elaborate on this point? Yeah, thanks. 00:06:43.600 --> 00:06:46.279 This is a good question. 00:06:46.280 --> 00:06:50.399 I think maybe I wasn't as sharp on my point as I could be. 00:06:50.400 --> 00:06:51.239 Because I think the core 00:06:51.240 --> 00:06:56.479 of what I'm saying is like, there is a going to be a trend. 00:06:56.480 --> 00:06:58.679 I believe there will be a trend away from editing. 00:06:58.680 --> 00:07:01.039 And if we are going to be editing less, 00:07:01.040 --> 00:07:04.559 I think VS Code, like people will be in editors less. 00:07:04.560 --> 00:07:06.919 And that means people will be in VS Code less, 00:07:06.920 --> 00:07:09.759 people will probably be in Emacs less. 00:07:09.760 --> 00:07:13.719 And yes, I think you can, VS Code 00:07:13.720 --> 00:07:15.399 is to some degree extensible. 00:07:15.400 --> 00:07:21.559 but I think there's less of a community, or that is, 00:07:21.560 --> 00:07:23.399 I think the people using Emacs 00:07:23.400 --> 00:07:25.319 have used Emacs for a long time. 00:07:25.320 --> 00:07:27.119 They're going to continue to use Emacs. 00:07:27.120 --> 00:07:28.279 I speak for myself, but I know 00:07:28.280 --> 00:07:30.119 a lot of people here are kind of like this, 00:07:30.120 --> 00:07:33.279 and they're going to just, like, 00:07:33.280 --> 00:07:37.759 we have a lot of momentum to keep doing things in Emacs, 00:07:37.760 --> 00:07:41.079 and especially because we have a lot of things 00:07:41.080 --> 00:07:42.799 that we already do in Emacs. 00:07:42.800 --> 00:07:45.079 We do to-do lists and, you know, with org mode 00:07:45.080 --> 00:07:47.479 and some people read email 00:07:47.480 --> 00:07:49.039 and some people are using 00:07:49.040 --> 00:07:50.959 shells in Emacs and all these things, 00:07:50.960 --> 00:07:53.959 I think will make Emacs 00:07:53.960 --> 00:07:55.559 kind of a better environment 00:07:55.560 --> 00:07:59.599 if you want to do various editing like things in Emacs. 00:07:59.600 --> 00:08:05.359 In, you know, in an editing environment, 00:08:05.360 --> 00:08:07.119 because I think just emails can edit 00:08:07.120 --> 00:08:09.239 more types of things I think will naturally 00:08:09.240 --> 00:08:10.959 be a bit more useful than VS code, 00:08:10.960 --> 00:08:14.079 which people are really just using to edit code 00:08:14.080 --> 00:08:16.799 and if people find it less useful to edit code. 00:08:16.800 --> 00:08:20.919 I think it's VS Code will be harder hit than emails 00:08:20.920 --> 00:08:24.239 because that's its whole, like, that's in the name, 00:08:24.240 --> 00:08:25.559 like the whole reason for it 00:08:25.560 --> 00:08:27.359 to be doing things as to edit code. 00:08:27.360 --> 00:08:30.839 So I think that it's it's vulnerable 00:08:30.840 --> 00:08:31.959 in a way that Emacs isn't 00:08:31.960 --> 00:08:34.519 just because Emacs is so very... 00:08:34.520 --> 00:08:40.119 you know, it's, it could do so many things 00:08:40.120 --> 00:08:42.719 and and people use it for so many different kinds of things 00:08:42.720 --> 00:08:46.079 that it's I think it's going to be 00:08:46.080 --> 00:08:46.999 a little bit more resilient. 00:08:47.000 --> 00:08:48.879 But as I said with the present. 00:08:48.880 --> 00:08:52.639 For those of us that are using Emacs, 00:08:52.640 --> 00:08:55.159 it's everywhere for us. 00:08:55.160 --> 00:08:58.359 Not necessarily everyone is an I live in Emacs person, 00:08:58.360 --> 00:09:00.279 but whatever you're using Emacs for, 00:09:00.280 --> 00:09:02.999 it is the thing you reach for to do that thing. 00:09:03.000 --> 00:09:06.639 Is that touching on the point? 00:09:06.640 --> 00:09:09.079 Yeah, that's a great way to say it. 00:09:09.080 --> 00:09:12.439 Thank you. Thank you, Corwin. Yeah. 00:09:12.440 --> 00:09:14.039 Thank you. Thank you for that question. NOTE Q: Do you think that we are falling behind in productivity as Emacs users? Compared to all these VSCode forks that have 1000 buttons and textboxes everywhere (i.e. much richer UIs which are basically webpages). 00:09:14.040 --> 00:09:18.759 Do you think we're falling behind in productivity as Emacs users 00:09:18.760 --> 00:09:19.959 compared to all these VS code forks 00:09:19.960 --> 00:09:21.799 that have a thousand button and text boxes everywhere, 00:09:21.800 --> 00:09:24.319 which are basically much richer UIs, 00:09:24.320 --> 00:09:25.719 which are basically web pages? 00:09:25.720 --> 00:09:28.799 I do think Emacs is falling behind in some ways. 00:09:28.800 --> 00:09:32.519 I mean, it's definitely showing its age a little bit, 00:09:32.520 --> 00:09:35.079 especially you mentioned richer UIs 00:09:35.080 --> 00:09:36.519 that are basically web pages. 00:09:36.520 --> 00:09:41.159 I mean, this I think is one of the big problems Emacs has 00:09:41.160 --> 00:09:46.479 is that it uses a very, you know, a much more ancient way 00:09:46.480 --> 00:09:49.799 of kind of doing UIs that is not particularly flexible 00:09:49.800 --> 00:09:55.959 and not particularly comfortable for any modern UI coder. 00:09:55.960 --> 00:09:58.639 And I think if you look at the Emacs stuff out there, 00:09:58.640 --> 00:10:01.959 like, yes, you can do a few things with UIs. 00:10:01.960 --> 00:10:04.759 You can have some amount of UI richness, 00:10:04.760 --> 00:10:06.279 but it's pretty limited. 00:10:06.280 --> 00:10:07.839 And I kind of, if there's one thing 00:10:07.840 --> 00:10:09.079 I could wish for in Emacs, 00:10:09.080 --> 00:10:12.519 it's sort of like, I kind of wish Emacs could be on a, 00:10:12.520 --> 00:10:18.199 could be built on top of basically like Atom or something like that, 00:10:18.200 --> 00:10:20.399 where it's like a web framework 00:10:20.400 --> 00:10:24.639 that allows us to write actual rich pages, 00:10:24.640 --> 00:10:29.639 rich UIs in a modern style using things like CSS 00:10:29.640 --> 00:10:33.599 instead of the kinds of things Emacs lets you do. 00:10:33.600 --> 00:10:37.199 But that said, that is an advantage 00:10:37.200 --> 00:10:38.959 of VS Code and other editors like that. 00:10:38.960 --> 00:10:45.079 I think that Emacs does a good job 00:10:45.080 --> 00:10:46.719 of eventually catching up 00:10:46.720 --> 00:10:49.759 to all sorts of things people are doing in other editors. 00:10:49.760 --> 00:10:52.599 It's often that other editors get there first, 00:10:52.600 --> 00:10:55.479 but there's a lot of momentum 00:10:55.480 --> 00:10:57.839 to kind of keep Emacs fresh, keep it modern. 00:10:57.840 --> 00:11:00.119 And it's pretty easy to- I love that. 00:11:00.120 --> 00:11:05.679 I forgot about the lag. We do have a little bit of lag, 00:11:05.680 --> 00:11:07.999 but I just, I find that very captivating. 00:11:08.000 --> 00:11:10.359 We have with technologies 00:11:10.360 --> 00:11:12.399 like Apache Cassandra in the database world, 00:11:12.400 --> 00:11:14.879 we have this idea of eventual concurrency. 00:11:14.880 --> 00:11:17.559 And you make me think with Emacs, 00:11:17.560 --> 00:11:21.279 we have this idea of eventual feature parity, right? 00:11:21.280 --> 00:11:23.919 If a feature stays desirable long enough, 00:11:23.920 --> 00:11:25.879 Emacs will eventually grow it. 00:11:25.880 --> 00:11:32.159 I think that's a very contagious idea. Yeah, yeah, thanks. 00:11:32.160 --> 00:11:35.839 I hope that idea makes sense. And I hope it's correct, 00:11:35.840 --> 00:11:39.919 because I think that I do want Emacs to continue to succeed. 00:11:39.920 --> 00:11:43.439 And I personally, using Emacs, 00:11:43.440 --> 00:11:46.479 do not feel myself falling behind in productivity. 00:11:46.480 --> 00:11:51.759 That said, there's a lot of ways that Emacs can improve 00:11:51.760 --> 00:11:53.519 and should improve on this front. 00:11:53.520 --> 00:11:56.599 And a lot of these ways are pretty fundamental. 00:11:56.600 --> 00:11:59.719 So I kind of hope people pay a lot of attention 00:11:59.720 --> 00:12:02.439 to some of these more fundamental lower-level Emacs things 00:12:02.440 --> 00:12:04.879 that really allows the packages 00:12:04.880 --> 00:12:07.599 to do more richer and better things. 00:12:07.600 --> 00:12:10.359 Sorry, you have a ton of questions. 00:12:10.360 --> 00:12:12.279 I shouldn't be doing so much active listening. 00:12:12.280 --> 00:12:17.479 No, no, I appreciate your input. NOTE Q: I've been using Claude Code extensively. I recently switched to Agent Shell with Claude Code. Have you tried it, what are your thoughts? 00:12:17.480 --> 00:12:23.079 OK, next is I've been using Claude Code extensively. 00:12:23.080 --> 00:12:25.519 I recently switched to Agent Shell with Claude Code. 00:12:25.520 --> 00:12:28.039 Have you tried it? And what are your thoughts? 00:12:28.040 --> 00:12:30.279 I actually have tried Agent Shell. 00:12:30.280 --> 00:12:34.719 And currently, I recorded this video like three months ago. 00:12:34.720 --> 00:12:38.119 So Agent Shell did not exist then. 00:12:38.120 --> 00:12:39.719 If Agent Shell did exist, 00:12:39.720 --> 00:12:41.239 I probably would have demoed it as well. 00:12:41.240 --> 00:12:45.359 Agent shell is great in the sense of it's... 00:12:45.360 --> 00:12:53.719 It does use comint, which is the way that I think all Emacs users 00:12:53.720 --> 00:12:57.039 would prefer to interact with something like Claude Code, 00:12:57.040 --> 00:13:00.199 or any of those types of tools, which is like, I don't. 00:13:00.200 --> 00:13:02.719 Um, the other, 00:13:02.720 --> 00:13:05.159 but it's a trade-off it uses like on the back 00:13:05.160 --> 00:13:06.959 and it's, it has a common buffer. 00:13:06.960 --> 00:13:08.759 And then on the back end, it's using a protocol 00:13:08.760 --> 00:13:11.759 to talk to agent, uh, to Claude Code and other things. 00:13:11.760 --> 00:13:15.399 The problem is this has a lot of problems. 00:13:15.400 --> 00:13:16.799 For example, like you don't have 00:13:16.800 --> 00:13:18.319 completion of slash commands. 00:13:18.320 --> 00:13:22.119 You don't have, um, if you ask to see the, in Claude Code, 00:13:22.120 --> 00:13:24.319 you can get a visual representation of. the context window. 00:13:24.320 --> 00:13:30.239 But you can't do this. I mean, last time I tried, 00:13:30.240 --> 00:13:31.719 I couldn't do this in agent shell. 00:13:31.720 --> 00:13:33.399 It's progressing rapidly. 00:13:33.400 --> 00:13:37.479 But it's not as rich in functionality 00:13:37.480 --> 00:13:40.119 as using Claude Code directly. 00:13:40.120 --> 00:13:44.839 On the other hand, because it's letting Emacs be Emacs 00:13:44.840 --> 00:13:49.239 and using comint, it's a much better experience 00:13:49.240 --> 00:13:50.919 to actually give instructions. 00:13:50.920 --> 00:13:56.519 I think the maximum power, though, is, to me, 00:13:56.520 --> 00:13:58.479 the best way is still like, you know, 00:13:58.480 --> 00:13:59.399 do your editing in org mode, 00:13:59.400 --> 00:14:02.359 and then just tell, you could have, 00:14:02.360 --> 00:14:06.959 you know, the richer experience of using 00:14:06.960 --> 00:14:13.639 of using Claude Code in, in it's more like shell like form 00:14:13.640 --> 00:14:15.559 where everything is, it's much, you know, 00:14:15.560 --> 00:14:17.079 designed to be used in the terminal, 00:14:17.080 --> 00:14:18.759 but you don't have to type in that much 00:14:18.760 --> 00:14:20.039 because you're really doing your typing 00:14:20.040 --> 00:14:21.439 in order to me, I think there's 00:14:21.440 --> 00:14:23.519 kind of the sweet spot that I like. 00:14:23.520 --> 00:14:26.639 Um, but agent-shell is a great step forward 00:14:26.640 --> 00:14:29.879 and I think it's, uh, it's quite good to use. 00:14:29.880 --> 00:14:32.119 And I, I personally use it a lot. NOTE Q: In terms of agent selection, what has your experience been with different agents, and have you had any success with hosting your own models and using open weights? 00:14:32.120 --> 00:14:40.479 Um, OK, so in terms of, next question, 00:14:40.480 --> 00:14:41.839 in terms of agent selection, 00:14:41.840 --> 00:14:44.639 what has been your experience with different agents? 00:14:44.640 --> 00:14:48.079 And have you had any success with hosting your own models 00:14:48.080 --> 00:14:49.439 and using open weights? 00:14:49.440 --> 00:14:54.159 I think there's, you know, many people 00:14:54.160 --> 00:14:56.519 have many different opinions on this. 00:14:56.520 --> 00:15:00.839 I think Claude Code is, most people I know 00:15:00.840 --> 00:15:03.479 would say Claude Code is probably, 00:15:03.480 --> 00:15:07.479 sorry, Claude is probably the best for coding right now. 00:15:07.480 --> 00:15:09.919 Gemini can be very hit and miss even with 3.0, 00:15:09.920 --> 00:15:12.519 but Claude is quite good. 00:15:12.520 --> 00:15:16.119 4.5 Opus is actually relatively cheap 00:15:16.120 --> 00:15:21.119 compared to the previous version of 4.1 Opus. 00:15:21.120 --> 00:15:24.239 There's other models out there, 00:15:24.240 --> 00:15:29.159 but I think most people just stick with Claude 00:15:29.160 --> 00:15:33.999 because it's very reliable, it's very good, 00:15:34.000 --> 00:15:36.479 and nothing is obviously better than that. 00:15:36.480 --> 00:15:41.039 And as far as DeepSeek is pretty good as well, 00:15:41.040 --> 00:15:42.079 and then much cheaper. 00:15:42.080 --> 00:15:46.839 I've had some good luck using that locally, 00:15:46.840 --> 00:15:50.159 but actually the problem is for my day-to-day machine, 00:15:50.160 --> 00:15:53.079 like my personal machine, 00:15:53.080 --> 00:15:55.679 it's not powerful enough to run anything locally. 00:15:55.680 --> 00:15:58.479 And my work machine, it is powerful enough, 00:15:58.480 --> 00:16:02.079 but I can spend my company's money at will 00:16:02.080 --> 00:16:03.759 on more powerful models. 00:16:03.760 --> 00:16:05.519 So there's really not a lot of incentive 00:16:05.520 --> 00:16:06.439 for me to run locally. 00:16:06.440 --> 00:16:12.199 I think, as far as I know, I haven't heard 00:16:12.200 --> 00:16:14.359 of local models being incredible, 00:16:14.360 --> 00:16:16.879 but I think you can get reasonable quality with them. 00:16:16.880 --> 00:16:19.159 That is, especially if you're doing 00:16:19.160 --> 00:16:20.279 relatively simple things, 00:16:20.280 --> 00:16:25.679 I think it's pretty reasonable to be using those. 00:16:25.680 --> 00:16:29.959 Also, they tend to be slower 00:16:29.960 --> 00:16:33.279 than the models that are elsewhere 00:16:33.280 --> 00:16:36.319 just because they just have more horsepower, 00:16:36.320 --> 00:16:38.679 they can churn through those tokens a little quicker. 00:16:38.680 --> 00:16:44.719 [Corwin]: So, I'll just break in here to say, 00:16:44.720 --> 00:16:46.239 we've got about 7 minutes left 00:16:46.240 --> 00:16:49.239 before we're cutting over this great discussion so far. 00:16:49.240 --> 00:16:50.839 I'm very happy to keep going. 00:16:50.840 --> 00:16:55.399 There's no time limit, but at a certain point, 00:16:55.400 --> 00:16:56.479 I may have to leave 00:16:56.480 --> 00:16:58.679 to jump in and prep with the next speaker, 00:16:58.680 --> 00:17:00.359 but you'll be able to keep going 00:17:00.360 --> 00:17:04.119 as long as you have the steam for it. 00:17:04.120 --> 00:17:06.159 [Andrew]: Yeah, I think we have 3 questions. Yeah, thanks. 00:17:06.160 --> 00:17:08.239 I think we have 3 questions. 00:17:08.240 --> 00:17:09.719 Let's see if we can get through them 00:17:09.720 --> 00:17:13.267 all in that time period. 00:17:13.268 --> 00:17:17.359 OK, this one is interesting talk. 00:17:17.360 --> 00:17:20.439 I'll start by asking it for everything, but is it editing? 00:17:20.440 --> 00:17:23.239 I think there's more of a comment than a question. 00:17:23.240 --> 00:17:29.719 So yes, let us all ask, but is it editing? 00:17:29.720 --> 00:17:33.439 All right. I can move on to the comment area. NOTE Q: I'm reading angst in your thinking about AI/editing. What are you excited about? 00:17:33.440 --> 00:17:40.319 I'm reading angst in your thinking about AI editing. 00:17:40.320 --> 00:17:41.839 I think that's true. 00:17:41.840 --> 00:17:44.119 It says, and the question continues with, 00:17:44.120 --> 00:17:45.159 what are you excited about? 00:17:45.160 --> 00:17:48.719 Wow, that's an interesting question. 00:17:48.720 --> 00:17:53.799 I mean, I think there are possibilities. 00:17:53.800 --> 00:17:58.719 Like, yes, people are going in sort of a relatively obvious direction 00:17:58.720 --> 00:18:01.439 with LLMs right now. 00:18:01.440 --> 00:18:04.599 And I think there's lots of opportunities, 00:18:04.600 --> 00:18:07.839 clever opportunities to do things 00:18:07.840 --> 00:18:11.079 we couldn't have thought of... Things that are useful, 00:18:11.080 --> 00:18:14.919 but in ways that are not super obvious to us, 00:18:14.920 --> 00:18:17.019 and I think I'm still excited 00:18:17.020 --> 00:18:22.939 about the possibilities of using them in ways that are super helpful 00:18:22.940 --> 00:18:29.319 and different than normal. I'll give you an example. 00:18:29.320 --> 00:18:33.199 This is something that I intend to, I think, 00:18:33.200 --> 00:18:36.479 post on Reddit in a few days, 00:18:36.480 --> 00:18:39.399 but I have a extension to eshell 00:18:39.400 --> 00:18:43.439 where you can prefix a command with at, 00:18:43.440 --> 00:18:45.199 and then just tell it what you want to do, 00:18:45.200 --> 00:18:46.919 and it will substitute the command 00:18:46.920 --> 00:18:51.919 that you are thinking of. Because often, I do not remember. 00:18:51.920 --> 00:18:56.919 I never remember, like, how do you find a file in a directory tree, 00:18:56.920 --> 00:19:00.159 you know, recursing? Who can remember how to do that? 00:19:00.160 --> 00:19:04.799 It's like a find, and there's like a dash print there somewhere. 00:19:04.800 --> 00:19:10.159 Yes. There are some smart people who remember this 00:19:10.160 --> 00:19:11.199 but I am not one of them. 00:19:11.200 --> 00:19:13.639 And so I think, like, something like this is like, you just type out, 00:19:13.640 --> 00:19:17.279 find me this file, and it will substitute 00:19:17.280 --> 00:19:18.879 the correct command. 00:19:18.880 --> 00:19:20.999 I think this is, there's a lot of little, 00:19:21.000 --> 00:19:24.319 little tweaks you could do like, you know, if you want the AI, 00:19:24.320 --> 00:19:26.679 it could be there for you, and it will help you. 00:19:26.680 --> 00:19:27.559 And if you don't want it, 00:19:27.560 --> 00:19:28.919 it's not going to get in your way. 00:19:28.920 --> 00:19:30.639 And I think this is where Emacs can really shine. 00:19:30.640 --> 00:19:33.079 It can really take advantage of LLMs, 00:19:33.080 --> 00:19:35.799 but still remain true to its kind of editing experience, 00:19:35.800 --> 00:19:39.319 because it's not forcing you to use LLMs all the time. 00:19:39.320 --> 00:19:43.919 So thank you for that great question. 00:19:43.920 --> 00:19:47.919 And then the final question. Yep. NOTE Q: Why does it matter to have a richer UI? All that is left is basically writing and getting the results. 00:19:47.920 --> 00:19:50.839 This final question is, why does it matter to have a richer UI? 00:19:50.840 --> 00:19:53.439 All this left is basically running and getting the results. 00:19:53.440 --> 00:19:56.119 I think maybe this is a response to me complaining 00:19:56.120 --> 00:19:58.479 about Emacs not having a richer UI before, 00:19:58.480 --> 00:20:03.159 but I think it does matter a lot for all sorts of things. 00:20:03.160 --> 00:20:07.159 It's hard to kind of explain succinctly, 00:20:07.160 --> 00:20:08.519 because I'm talking about UI 00:20:08.520 --> 00:20:09.759 and I'd have to show you things. 00:20:09.760 --> 00:20:14.599 But it should be just something like, oh I have an error, 00:20:14.600 --> 00:20:15.799 and I'm using flymake and I'm, 00:20:15.800 --> 00:20:17.759 I'm using the... I have options 00:20:17.760 --> 00:20:19.839 where it'll show me the error in line 00:20:19.840 --> 00:20:22.639 by underlining things and having a little message, 00:20:22.640 --> 00:20:24.079 but like, you know what, that message 00:20:24.080 --> 00:20:26.399 doesn't appear quite right a lot of the times. 00:20:26.400 --> 00:20:30.159 Or here's another one like. I program in Python a lot. 00:20:30.160 --> 00:20:33.479 And Python, it's super hard to program in 00:20:33.480 --> 00:20:35.279 unless you have these little vertical lines 00:20:35.280 --> 00:20:37.599 that shows you what the indents are. At least I find it. 00:20:37.600 --> 00:20:40.479 There are two packages that do that. 00:20:40.480 --> 00:20:43.039 None of them do it particularly well, 00:20:43.040 --> 00:20:44.599 just because Emacs at its base 00:20:44.600 --> 00:20:45.919 does not allow you to do this. 00:20:45.920 --> 00:20:47.759 And so you kind of have to hack it in. 00:20:47.760 --> 00:20:49.479 And there's lots of ways to mess it up. 00:20:49.480 --> 00:20:52.156 And when editing, you'll find yourself 00:20:52.157 --> 00:20:55.260 messing this thing up regularly. 00:20:55.261 --> 00:20:57.159 So it doesn't look quite clean. 00:20:57.160 --> 00:20:59.079 And like, there's little artifacts, 00:20:59.080 --> 00:21:01.039 or, you know, there's little ways that it, 00:21:01.040 --> 00:21:02.359 it kind of gets things wrong, 00:21:02.360 --> 00:21:03.939 or you can get things wrong with it. 00:21:03.940 --> 00:21:07.519 So I think that, like, 00:21:07.520 --> 00:21:13.619 there's a lot of issues with that sort of thing. 00:21:13.620 --> 00:21:15.759 And also, like, you know, 00:21:15.760 --> 00:21:17.719 what if you want to do something like play a video inline, 00:21:17.720 --> 00:21:19.559 like, I don't know, you might should be able to do that, 00:21:19.560 --> 00:21:21.599 you might should be able to do anything. 00:21:21.600 --> 00:21:23.799 But right now, it just can't. I think 00:21:23.800 --> 00:21:24.999 a lot of the reason as well... 00:21:25.000 --> 00:21:26.519 you know, we wanted to be compatible 00:21:26.520 --> 00:21:29.919 with TRS 80 machines or something like that. 00:21:29.920 --> 00:21:33.159 This is important, this really is important, 00:21:33.160 --> 00:21:34.719 but I hope there's some way 00:21:34.720 --> 00:21:36.079 that we can kind of eventually figure out 00:21:36.080 --> 00:21:39.279 how to get the best of both compatibility and 00:21:39.280 --> 00:21:44.879 more modern UIs. So, you know, we can have more modern UIs 00:21:44.880 --> 00:21:49.839 for people that have modern machines and other people 00:21:49.840 --> 00:21:51.959 either do without that functionality 00:21:51.960 --> 00:21:54.319 or sort of fall back to some reasonable default. 00:21:54.320 --> 00:21:59.079 So we have about 30 seconds or a minute. 00:21:59.080 --> 00:22:00.679 I know there's one more question. 00:22:00.680 --> 00:22:01.559 I'd love for you to get to it. 00:22:01.560 --> 00:22:02.839 I just want to make sure that 00:22:02.840 --> 00:22:04.239 while we're still live on stream, 00:22:04.240 --> 00:22:05.519 you get a chance to share 00:22:05.520 --> 00:22:06.799 any closing remarks you might have. 00:22:06.800 --> 00:22:10.879 Thank you for that. Um, yes. 00:22:10.880 --> 00:22:14.519 So first of all, I want to thank everyone involved for listening. 00:22:14.520 --> 00:22:18.919 And I want to thank the core when I think thanks for moderating this. 00:22:18.920 --> 00:22:21.279 And Sacha, thank you for putting that together. 00:22:21.280 --> 00:22:21.919 And I know there's more people 00:22:21.920 --> 00:22:23.319 that are working behind the scenes. 00:22:23.320 --> 00:22:25.079 So thank you all for putting this together. NOTE Wrapping up 00:22:25.080 --> 00:22:29.199 I'm so happy that we all are here. We care about Emacs. 00:22:29.200 --> 00:22:31.199 We're pushing Emacs forward. 00:22:31.200 --> 00:22:35.959 We are I think Emacs remains 00:22:35.960 --> 00:22:37.279 this really remarkable achievement. 00:22:37.280 --> 00:22:41.799 Like it's amazing that it exists. It continues to exist. 00:22:41.800 --> 00:22:42.999 It hasn't got... It's hard. 00:22:43.000 --> 00:22:45.159 It's like, really, there's a lot of work to go into it. 00:22:45.160 --> 00:22:47.559 So I think let's all just appreciate everyone 00:22:47.560 --> 00:22:50.679 who contributes and makes all of this possible. 00:22:50.680 --> 00:22:52.159 Cause it's, if you ever read 00:22:52.160 --> 00:22:53.279 the emacs-devel mailing list, 00:22:53.280 --> 00:22:55.479 it's a lot of work, a lot of deep thinking, 00:22:55.480 --> 00:22:56.679 a lot of careful thinking. 00:22:56.680 --> 00:22:58.599 And I think this is really important. 00:22:58.600 --> 00:23:02.039 So thank you, especially to the maintainers of Emacs 00:23:02.040 --> 00:23:04.199 and everyone who's contributing to the core experience, 00:23:04.200 --> 00:23:07.759 all the libraries, all the LLM stuff we mentioned before. 00:23:07.760 --> 00:23:09.839 You're all doing such a fantastic job. 00:23:09.840 --> 00:23:12.323 It's exciting to be here. 00:23:12.324 --> 00:23:13.799 [Corwin]: Thank you for your talk, Andrew. 00:23:13.800 --> 00:23:16.159 It's been just fascinating. 00:23:16.160 --> 00:23:19.759 If you don't mind, I'd love to jump 00:23:19.760 --> 00:23:23.879 right over to the last question. OK, let's do that. NOTE Q: I have 45+ years editing, programming. I'm not sure I can think about things without thinking of buffers, editors etc. Is this a handicap/should we just have people with no experience with code learn to prompt? 00:23:23.880 --> 00:23:27.599 It says, I have 45 plus years editing programming. 00:23:27.600 --> 00:23:29.239 I'm not sure I can think about things 00:23:29.240 --> 00:23:31.039 without thinking of buffers, editors, et cetera. 00:23:31.040 --> 00:23:31.959 Is this the handicap? 00:23:31.960 --> 00:23:34.239 Should we have people with no experience 00:23:34.240 --> 00:23:35.319 with code learning to prompt? 00:23:35.320 --> 00:23:38.799 [Andrew]: Well, this is something I do have a strong opinion about. 00:23:38.800 --> 00:23:42.159 I feel like I do not want to see people that have no experience 00:23:42.160 --> 00:23:44.119 with code learning to prompt. I think it's very limited 00:23:44.120 --> 00:23:46.039 what you could do right now with that. 00:23:46.040 --> 00:23:48.439 Like you could do, if you could sort of one-shot it, 00:23:48.440 --> 00:23:51.999 that is like, I have something that's relatively easy, 00:23:52.000 --> 00:23:54.879 And it could do it, and I'm going to tell it to do it, 00:23:54.880 --> 00:23:56.039 and then I'm going to give feedback. 00:23:56.040 --> 00:24:00.039 OK, as long as this is for relatively short-lived things, 00:24:00.040 --> 00:24:02.599 I think that works well. But for people who really care 00:24:02.600 --> 00:24:04.279 about the longevity of their code, 00:24:04.280 --> 00:24:06.599 really care about software engineering, 00:24:06.600 --> 00:24:09.879 which is software engineering is very different than just writing code. 00:24:09.880 --> 00:24:11.879 Software engineering is about maintainability. 00:24:11.880 --> 00:24:15.119 Software engineering is making sure everything is scalable 00:24:15.120 --> 00:24:19.599 and all sorts of things that it's unlikely, 00:24:19.600 --> 00:24:21.759 I think, that an LLM is going to get right. 00:24:21.760 --> 00:24:25.279 And I've seen a lot of bad cases 00:24:25.280 --> 00:24:27.199 where people who don't understand code 00:24:27.200 --> 00:24:31.159 are doing things and it's not working well, 00:24:31.160 --> 00:24:33.239 because they don't understand 00:24:33.240 --> 00:24:35.279 some of the complexities 00:24:35.280 --> 00:24:36.959 or some of the concerns that that you might have 00:24:36.960 --> 00:24:43.279 in maintaining a piece of code. 00:24:43.280 --> 00:24:45.759 So I think those people who have lots of experience 00:24:45.760 --> 00:24:46.959 are the best people to use this. 00:24:46.960 --> 00:24:48.119 And I think that's what we're seeing 00:24:48.120 --> 00:24:49.079 in the industry as well, 00:24:49.080 --> 00:24:51.639 where more senior people are doing quite well 00:24:51.640 --> 00:24:54.599 because they're able to use LLMs 00:24:54.600 --> 00:24:56.559 more effectively than junior people. 00:24:56.560 --> 00:25:00.999 That may all even out because LLMs get even better, 00:25:01.000 --> 00:25:03.079 but for now hasn't happened. 00:25:03.080 --> 00:25:06.319 So I think, you know, I also have a ton of experience, 00:25:06.320 --> 00:25:13.079 not 45 years, but a lot. And, and I think that it's those, 00:25:13.080 --> 00:25:14.839 those years of experience will only help you. 00:25:14.840 --> 00:25:19.639 And I think it's great to dip your toes in the water 00:25:19.640 --> 00:25:20.732 and see what you can do.