WEBVTT 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. 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. 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. 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, Colin. Yeah. 00:09:12.440 --> 00:09:14.039 Thank you. Thank you for that question. 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. 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 Hell is great in the sense of it's 00:12:45.360 --> 00:12:53.719 It does use comment, 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 quad 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 comment, 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 HHL 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. 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, Cloud 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 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:02.599 as long as you have the steam for it. 00:17:02.600 --> 00:17:06.159 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:17.359 all in that time period. 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. 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:18.519 and I think I'm still excited 00:18:18.520 --> 00:18:23.839 about the possibilities of using them in ways that are super helpful 00:18:23.840 --> 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 eMath 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. 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 you know 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 like 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.799 And when editing, you'll find yourself messing this thing up. 00:20:52.800 --> 00:20:57.159 regularly. 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:06.279 or you can, you can get things wrong with it. 00:21:06.280 --> 00:21:10.039 So I think that, like, 00:21:10.040 --> 00:21:11.879 there's a lot of issues with that sort of thing. 00:21:11.880 --> 00:21:15.759 And, 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:20.839 you might should be able to do anything. 00:21:20.840 --> 00:21:23.799 But right now it just can't and 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 we you know we wanted to be compatible 00:21:26.520 --> 00:21:29.919 with you know TRS 80 machines or something like that 00:21:29.920 --> 00:21:33.159 and it's 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 you know 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. 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 who, 00:22:47.560 --> 00:22:50.679 who like 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 Develop 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:13.799 It's exciting to be here. 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. 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 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 LM 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 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:16.919 And I think it's, it's, it's a great, 00:25:16.920 --> 00:25:19.639 it's great to kind of dip your toes in the water 00:25:19.640 --> 00:25:20.732 and see what you can do.