Runtime Arguments

26: Why You'll Never Switch Editors (And What You're Missing)

Jim McQuillan & Wolf Episode 26

Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.

0:00 | 1:16:21

You already have an editor. You already love it. Nothing we say is going to change that — and we know it. But your editor shapes how you think about editing, which means there are problems it could solve for you that you've never even thought to have. We walk through the real differences between editors, IDEs, and the technologies underneath them — TreeSitter, LSPs, the Debug Adapter Protocol — and talk honestly about what actually matters: syntax awareness that doesn't break, language intelligence that works across editors, and where AI fits into all of it. No editor wars, no winner declared. Just two guys who've been doing this for decades explaining why the landscape looks the way it does.

What we cover:

  • The spectrum from Notepad to full IDE — and where VS Code actually falls
  • Modal editing (Vim, NeoVim, Helix) vs. chord-based editing (Emacs) vs. point-and-click (the entire rest of the world)
  • TreeSitter: why regex-based syntax highlighting is broken and what replaced it
  • LSPs: the protocol that turned simple editors into language-aware tools
  • Editors as complete environments — Emacs, Smalltalk, and the "world" concept
  • AI integration: editor-first (Cursor, VS Code) vs. AI-first (Claude Code)
  • Muscle memory, sunk costs, and why switching editors is like moving to Australia
  • Can JetBrains (or any company that lives on editor/IDE sales) survive when free tools keep getting better?


Links:

Hosts:
Jim McQuillan can be reached at jam@RuntimeArguments.fm
Wolf can be reached at wolf@RuntimeArguments.fm

Follow us on Mastodon: @RuntimeArguments@hachyderm.io

If you have feedback for us, please send it to feedback@RuntimeArguments.fm

Checkout our webpage at http://RuntimeArguments.fm

Theme music:
Dawn by nuer self, from the album Digital Sky

Jim McQuillan:
Welcome to another episode of Runtime Arguments, the podcast where we talk about all kinds of cool, uh, interesting, techy things.

Jim McQuillan:
Um, I, I don't have a better, a better description than that. But, uh, today is kind of exciting. This is episode.

Jim McQuillan:
Uh, 25, it's our 26th episode, because you remember episode 0 on Passkeys was.

Jim McQuillan:
That was our first episode. Uh, so anyway, we've been doing this for over a year, can you believe that?

Jim McQuillan:
April 12th, uh, 2025 is when we released our first episode.

Jim McQuillan:
And it's been, it's been a whole year and boy, what a year, eh?

wolf:
Yeah.

Jim McQuillan:
Yeah, I'm Jim McQuillan, and they're my friend who just said, yeah, is, uh, Wolf.

Jim McQuillan:
And, um, Wolf, what are we talking about today?

wolf:
Uh, I think we're gonna talk about everybody's favorite thing, for now. Editors.

Jim McQuillan:
Yeah, that won't start any religious wars, will it?

wolf:
Well, my plan is not to, uh, tell anybody what to use, it's just to talk about why they're different and how come.

wolf:
You love the one you love, and he loves the one he loves, and she loves.

Jim McQuillan:
Love the one you're with.

wolf:
And she loves, and why they're different.

Jim McQuillan:
Right, right. Okay, well, before we get into that, we've got a few things we'd like to take care of. First of all, I did mention that we've been doing this for a year, and I just want to do a really quick rundown. This will just take a few seconds.

wolf:
Yeah.

Jim McQuillan:
Uh, I'm gonna name off some of the episodes that we've done, uh, all the way back, uh, episode 0, that was Pass Keys. That was a, that was a.

Jim McQuillan:
really fun episode, our first one. Of course, we were nervous just figuring this thing out, but Wolf did a fantastic job of talking about passkeys, and it's something I use all the time now.

Jim McQuillan:
And then we did stuff about data centers and Bitcoin and WebAssembly and functional programming, and…

Jim McQuillan:
and performance in VPNs, and Wolf did a great episode back in August, episode 8, on using AI. He'd been using it for a little while, and he did a fantastic job of describing.

Jim McQuillan:
Uh, what was out there at the time and it's kind of funny because everything's changed, I think, since August.

Jim McQuillan:
Right? Everything is…

wolf:
Uh, in June, it had changed.

Jim McQuillan:
Yeah, yeah.

wolf:
Oh, wait, that was before August. Man, I don't even know. I don't know the order. Yeah.

Jim McQuillan:
Yeah, right, September. Yeah, right, right, right. Uh, so yeah, things are, uh, changing so rapidly, in fact, so rapidly that we had to do another episode on AI.

Jim McQuillan:
Um, and that was, um, uh, episode 22 in February. Uh, but besides, uh, those, we did, um, command line superpowers. Uh, we did an episode on IPv6.

Jim McQuillan:
Which, um… which I really enjoyed doing. I learned an awful lot about it, but you know what? I just heard today, I'm gonna give a little feedback on episode, um, 11, IPv6.

Jim McQuillan:
There's a proposal now in the IETF for IPv8.

Jim McQuillan:
Have you seen this? I read through the proposal, I didn't totally understand it, but you know how IPv4 is a 32-bit address?

wolf:
No.

Jim McQuillan:
IPv6 is a 128-bit address. Well, IPv8 is a 64-bit address, and what they're doing is taking the ASN.

Jim McQuillan:
And I forget exactly what that stands for. I know my friend Marlon is going to look at me really weird when I don't know the name of this, because he knows this stuff all.

Jim McQuillan:
front and back. Uh, but they're gonna take the ASN, and then they're gonna append your IPv4 address on the end of that.

Jim McQuillan:
And then there's some rules about that ASN. Like, if the ASN is all zeros, treat it just like an IPv4 address.

Jim McQuillan:
Uh, there's other things that can be in that, uh, ASN, like the familiar 127.0.0.0 can go in the ASN, and then it.

Jim McQuillan:
That's like a strictly, uh, local, uh, network.

Jim McQuillan:
I don't want to get too deep into it, because I don't really understand it myself, and, you know, we've been talking about IPv6…

wolf:
Can I, uh…

Jim McQuillan:
6 for 30 years so, yeah, do you have a question?

wolf:
Can I have a hot take? I have a hot take. This is gonna suck.

Jim McQuillan:
Yeah. Yeah.

wolf:
We're not even using IPv6 yet. Um, the idea that we would get another one.

Jim McQuillan:
I know, I know.

wolf:
It's, it's just a recreation of that.

Jim McQuillan:
I know.

wolf:
That comic from the guy I love where we invent.

Jim McQuillan:
Uh, what, the XKCD?

wolf:
Yeah, XKCD where we invent yet another standard.

Jim McQuillan:
Yeah, that's kind of what's happening. It's in the draft stage. It's just a proposal. It may not go anywhere. I just thought it was interesting.

Jim McQuillan:
Uh, when I saw that, I thought, oh geez and then I thought, this has got to be an April Fool's joke.

Jim McQuillan:
But it's not. It's an official draft proposal in the ETF.

Jim McQuillan:
So, anyway, um… what else did we do? We did stuff on GPUs and terminals and…

Jim McQuillan:
POSIX, and man, we did a lot of stuff. I've forgotten some of these things. Uh, we did a really great talk about Git.

Jim McQuillan:
Uh, we talked about databases. Um, we did one just, uh, 4 weeks ago on containers.

Jim McQuillan:
Uh, and that was a lot of fun. And then, of course, the last episode was, uh, Wolf talking about Bayes Rule, and boy, that opened up a lot of thinking.

Jim McQuillan:
Uh, about that one. Uh, actually, that wasn't the last episode. The most recent episode was the X window system in Wayland.

Jim McQuillan:
Uh, in fact, we did get just a tiny little bit of feedback on that from our friend Jim Peterson.

Jim McQuillan:
And he suggested that we do a follow-up episode on Wayland, which.

Jim McQuillan:
I think that's a really good idea. Uh, it seems to be the de facto standard now, instead of the XWindow system.

Jim McQuillan:
So, yeah, we'll probably do an episode on, on, uh, Weyland. Um, but anyway, uh, today we've, we've got a great episode coming up.

Jim McQuillan:
Um…

Jim McQuillan:
Wolf, how was your week?

wolf:
Uh, well, some of my week is yet to come. I had a great week. Uh, lots of work, and I accomplished lots of great things. That felt good.

wolf:
And then my best friend and his business partner took me out to a delicious steak dinner.

wolf:
Um, at my favorite restaurant, that was a delicious steak, which I happen to like black and blue. I know there are vegetarians out there.

Jim McQuillan:
Oh, wasn't that good?

wolf:
And I know that there are people who, um, order their steak.

wolf:
medium well or worse, and the only reason that's not carved into stone tablets was because they ran out of room at 10.

Jim McQuillan:
Yep.

wolf:
Um, I'm just telling you, medium rare is not right, uh, so, but the biggest part.

Jim McQuillan:
Hey, medium rare is just fine.

wolf:
Sure. And, uh, but the best part of my week is coming up on Sunday.

wolf:
I have an all-day-long competition that I'm super excited to be a part of. I can't wait.

wolf:
It's my first real big one. How was your week?

Jim McQuillan:
Uh, man, I had the busiest week ever. Uh, I had so many things going on. I got a new car, I'm really excited about that.

Jim McQuillan:
Um, it took me a little while to… I placed an order, the order never really made it, then another car came in that was all that I wanted and more, so I got that, so I'm real happy about that.

Jim McQuillan:
We had a mug, a Michigan Unix user group meeting on Tuesday.

Jim McQuillan:
And it was a great meeting, um, we, um, we, we gave away an award.

Jim McQuillan:
Uh, you know, we lost our leader of that group a couple of years ago, he died of cancer.

Jim McQuillan:
And, uh, we decided to create an award in his honor. Uh, and the award is called.

Jim McQuillan:
The, uh, I want to get this right. I lost it here. Okay, the award is called the Craig S. Maloney.

Jim McQuillan:
Award for Excellence in Community Contributions. And it's a beautiful award.

Jim McQuillan:
Uh, and we're gonna give it out every year, and this year, our first recipient was our dear friend, Michael Lucas. Michael is an author, and he writes fiction and technical books. He's a great, great technical book writer.

Jim McQuillan:
And, uh, he was a good friend of Craig's, and he was the first award winner, and everything went according to plan. It was fantastic. We gave him a really nice Lucite trophy.

Jim McQuillan:
And everybody's happy about it, although we still miss Craig. Um…

wolf:
We do, in fact, can I say something?

Jim McQuillan:
Yeah.

wolf:
Uh, I often, uh, it's not really a joke, but I often say that I wish I was the man my dog thought I was.

Jim McQuillan:
Yeah. Yeah.

wolf:
Craig was the man, my dog thinks I am. Yeah, he was, he was a great guy. I wish I could be more like him.

Jim McQuillan:
He sure was. He he sure was.

Jim McQuillan:
Yeah, so that was, that was our… the main content of that meeting was, uh, containers. Remember.

Jim McQuillan:
We did an episode on containers, I don't know, 6 or 8 weeks ago, and uh… I had promised that there would be a mug meeting about it.

Jim McQuillan:
Uh, and this was a nice interactive presentation, and I had a lot of fun doing it, and I hope the people had fun listening to it.

Jim McQuillan:
Uh, but anyway, that was Mug, and I encourage you, if you don't know about Mug, go to MUG.org.

Jim McQuillan:
And check us out, uh, because it's a great group.

Jim McQuillan:
Um…

Jim McQuillan:
Yeah, yeah, so a lot of things going on this week.

Jim McQuillan:
Um…

Jim McQuillan:
What do you think? Should we just get right down into it? I know we have a lot to talk about.

Jim McQuillan:
Why don't we just get moving right into it? What do you think?

wolf:
I think that'd be a good idea. Um, I think the most interesting thing, first of all.

wolf:
Everybody has an editor already. Everybody who's listening to us, anyway.

wolf:
Um, they know what they like, and absolutely nothing I say is gonna make them change.

Jim McQuillan:
Sure.

wolf:
Um…

wolf:
It might be that, um, you or I say something that makes them.

wolf:
try something else, but, uh, nobody's gonna move. They like what they like.

wolf:
And, uh, that is one of the truths about editors. A couple of things, uh, one is, you like what you like.

wolf:
And two is that you have muscle memory. Everybody says those words, muscle memory.

wolf:
Um, I'm not gonna change because I've invested so much in such and such an editor.

wolf:
Um, that's a thing.

wolf:
Uh, and, and often you can't even be given a reason to change.

wolf:
Because you can't even think about problems that other editors might solve for you.

wolf:
Because the editor you're using doesn't give you the language to think about problems like that.

wolf:
If you are a Notepad user.

wolf:
The idea of switching to an editor with syntax coloring doesn't make any sense to you, because you've never seen syntax coloring.

wolf:
Why would you even want that? It sounds stupid. But once you're using a syntax coloring editor, then you're like.

wolf:
Uh, why would I ever use Notepad? But you don't care that it knows what language you're using.

wolf:
And then you use an IDE that knows what language you're using and what files are in it, and suddenly it's a whole different ballgame.

wolf:
So, I think the way to start is to just talk about our daily drivers. What do you use every day, Jim?

Jim McQuillan:
Well, predominantly, I use Vim. You know, I've been… in 1984, when I.

Jim McQuillan:
Got into professional software development my editor was VI.

Jim McQuillan:
Um, and then, um… and that was great. I learned it, and I used it. And then in the early 90s, Vim came on the scene, and uh… so I've been using it ever since. And I'm… I think I'm pretty good at it, you know, there's…

Jim McQuillan:
People say there's like over 300 commands in Vim, and you really use about 10 of them, and I'm really, really good at that 10.

Jim McQuillan:
And I'm fast, and I can figure out some of the others, and if I can't, I ask you, because you know more about Vim than anybody I've ever met.

Jim McQuillan:
Uh, and you've answered questions for me. Um, I do, however, uh, do some iOS development.

Jim McQuillan:
And, uh, of course, with that, you have to use Xcode, so I'm stuck in that world.

Jim McQuillan:
for that, and recently I've been starting to use VS Code for some things. I'm not using it for my daily driver, but there are some files.

Jim McQuillan:
Uh, if you ever have to edit an openapi.yaml file.

Jim McQuillan:
VS Code knows YAML really well, and is a great editor for that, so I've been doing that.

Jim McQuillan:
So yeah, I guess I've got 3 daily drivers.

wolf:
Uh, so you hit on some really interesting things. Uh, each one of those is kind of a king in its own way.

wolf:
For instance, um, VS Code, market share leader.

wolf:
Um, about 76% of people who use editors in the category that we're talking about, programming editors.

wolf:
Um, use VS Code. Uh, Vim is a leader.

wolf:
Because Vim is astoundingly fast, one of the very fastest editors that you can get in terms of.

wolf:
Uh, responsiveness, how fast you can type, and in how big a file you can open.

wolf:
Um, it turns out that Xcode is a leader.

wolf:
In a field of 1.

Jim McQuillan:
Yeah.

wolf:
Xcode is an app that if you want to do a thing, that's the only game in town.

wolf:
Um, and that expresses one of the concepts that I think is worth talking about.

wolf:
Sometimes you choose your editor, like you chose Vim, like you chose VS Code.

wolf:
And sometimes your editor chooses you like.

wolf:
Xcode chose you. So, I think those are all interesting choices and quite worthy.

wolf:
Some of those, uh, do some really good things, like them, uh, you want to say something? Go ahead and say something.

Jim McQuillan:
Yeah.

Jim McQuillan:
Okay, um, you know, we were gonna do this episode a long time ago, like December.

Jim McQuillan:
And other things, other ideas came up, and we thought, well, you know, AI is more interesting than editors, right? So we did a lot of other episodes, so we didn't do.

Jim McQuillan:
the editor episode in December. But when I was actually starting to prepare for that episode. I knew you wanted to talk about it, and I wanted to hear about it, so I did a little homework.

Jim McQuillan:
Uh, I did 2 things and I think you'll be surprised and both and happy.

Jim McQuillan:
I tried Helix.

wolf:
Oh my god!

Jim McQuillan:
I did. Uh, uh, not… I didn't do much, but I opened it, you know, I installed it, I opened it, I edited some files, I moved around a little bit, and I thought, you know.

Jim McQuillan:
That muscle memory is a.

Jim McQuillan:
I know how to do exactly what I want to do quickly in Vim. So, I tried it.

Jim McQuillan:
I should give it a more fair shake. Uh, and then here's one that'll probably really surprise you.

Jim McQuillan:
I tried Emacs.

wolf:
Ouch.

Jim McQuillan:
I I.

Jim McQuillan:
I have, you know, our friend Ron has been an Emacs user for a long time, and I thought, I gotta give it a try, just to see what this thing's all about.

Jim McQuillan:
And, um, I don't see myself switching to Emacs.

wolf:
Those are both actually incredibly exciting pieces of information.

Jim McQuillan:
Yeah.

wolf:
The thing I have to say about, uh, Vim is when you get VIM.

wolf:
When you install it, uh, you actually get about maybe 7 or 8.

wolf:
links. They all point to the same binary, and Vim knows by which binary name you launched it, like, some certain configuration ideas.

Jim McQuillan:
Yeah.

wolf:
And one of the.

Jim McQuillan:
For instance, I use View.

Jim McQuillan:
That's one of the names, yeah, yeah, I use that occasionally.

wolf:
Right, that's, that's read-only them.

Jim McQuillan:
I did it today.

wolf:
And there is, uh, one that is technically not an April Fool's joke.

wolf:
It is called Easy Vim, it might be called Evim, I don't, nobody uses it.

wolf:
Well, maybe somebody uses it, I don't know, I don't know why they would. But, uh, easy them is VIM, but backwards.

Jim McQuillan:
Yeah, maybe.

wolf:
It's entirely in visual mode, essentially, and you have to get out of it.

wolf:
So, the thing about Vim, here's the thing that makes Vim different.

wolf:
Then, whatever you're using, which… I'm talking to the listener now, whatever you're using, which is almost certainly VS Code.

wolf:
Uh, them…

wolf:
uh, is backwards from what you do, and also them is modal. And those two things, uh, have these implications. First.

wolf:
In Vim, instead of selecting the word you delete.

wolf:
You type a D.

wolf:
to be about to delete something, and then you tell it you want to delete the next word by saying W.

wolf:
And it deletes that word.

Jim McQuillan:
So it's verb, verb noun.

Jim McQuillan:
Yeah. Maybe an adjective in there.

wolf:
Right. Um…

wolf:
Uh, so that's the backwards part, and the other thing is that VIM is modal.

wolf:
Uh, there's the mode where you're inserting every letter you type.

wolf:
it goes into the document. If you type DW, you see DW in your file.

wolf:
And then there's normal mode, and in normal mode, if you say DW, a word gets deleted.

wolf:
Um, those are two different modes. There are a lot of editors where you're always in insert mode, and if you want to.

wolf:
Uh, make some thing happen that isn't you typing code.

wolf:
Um, you probably pick a menu command, or, or you use a special control key.

wolf:
But normal keys or a mouse always insert. And they're not backwards.

Jim McQuillan:
Or a mouse.

wolf:
You select the word that you want to delete, and then you hit the backspace key, and the word goes away.

wolf:
Easy mode in Vim.

wolf:
Essentially, puts you in a way of running VIM.

wolf:
that makes it the exact opposite of what any VIM user would normally expect. And they can't quit.

wolf:
So this is like what Vim is to somebody who's not a VIM user. Everything works opposite of what you want, and you can't quit. That's the joke everybody tells about VIM, is that you can't quit.

wolf:
Um, because to quit Vim, you have to be in normal mode, and then you have to hit colon so that you can enter a command line command.

Jim McQuillan:
And you're not in, and you're not in normal mode.

wolf:
You're not, and you can't get into normal mode in any, you know, typical way anyway.

Jim McQuillan:
Right. Right.

wolf:
So, um, helix is not unlike.

wolf:
uh, normal mode, um, I'm sorry, easy VIM, uh, because helix is not backwards. In Helix.

wolf:
It's not a verb-noun, it's noun-verb. But it is modal, so it's kind of an interesting combination.

wolf:
I really dig the modal part of them. I really love them. For me to even say.

wolf:
Uh, that Vim is not good, it would be a complete lie. I love them. I would be happy to live with them. I don't actually use them, I use, uh…

wolf:
NeoVim, typically NVIM. But if all that's on the machine is actual VIM, that's not a problem either. And usually across SSH.

wolf:
All that's on the machine is regular VIM. Um, although there's a couple.

wolf:
Plugins for Vim that I just cannot live without. I absolutely love them.

wolf:
Uh, one of those is surround.

wolf:
Um, which I think anybody who sees surround wants it instantly.

wolf:
Um, surround takes whatever mechanism you normally use to specify.

wolf:
what you want it to apply to. So in Vimy, you'll do the surround thing, and then say what you want it to apply to.

wolf:
Whereas in…

wolf:
helix or Xcode, or whatever, first you make the selection, and then you do the surround thing.

wolf:
But surround will take whatever you've selected and turn it into something that's parenthesized, or quoted, or a function call, or…

wolf:
Things like that, can't live without that. And then there's a thing in Vim called easy motion.

wolf:
And what easy motion does is you say whatever the keys are that make it start.

wolf:
And suddenly, uh, but you were looking at the place on the screen you wanted to go.

wolf:
You do the easy motion keys, and now everything turns gray?

wolf:
Except the first two letters of every word are brightly colored.

wolf:
Maybe orange or something, um, and they're unique. They're letter pairs all over the screen.

wolf:
You know, 120, 200, a different one at the beginning of every word.

wolf:
And you were looking right at the word you wanted to go to, and maybe it starts with MN.

wolf:
You type MN.

wolf:
Screen goes back to normal, but now you're on that word.

Jim McQuillan:
Okay, so, so every word on the screen has some prefix inserted in front of it?

Jim McQuillan:
Like MN, MN is part, or is MN part of the word that you searched for? I don't, I don't get it.

wolf:
Nope.

wolf:
If the word… so you're looking at the screen, and it's the normal text.

wolf:
It's just exactly the program you are working on and one of the words is dog.

Jim McQuillan:
Yeah.

Jim McQuillan:
Yeah.

Jim McQuillan:
Yeah.

wolf:
And it's whatever… I don't know whether you like light on dark or dark on light, but whatever it is, you do the magic, I'm gonna make easy motion happen.

Jim McQuillan:
Okay, what keystroke do you hit?

wolf:
And suddenly all the text on the screen goes gray, and where you were looking at the word dog.

wolf:
Now it says bright colored M, bright colored N.

wolf:
Very dim G.

wolf:
The D and the O are replaced by MN.

Jim McQuillan:
Okay, so it replaces… okay, and what, uh, what is the, uh, keystroke that you use to invoke easy motion?

wolf:
I don't remember exactly what I said.

Jim McQuillan:
Your fingers know, but you're, you're… yeah.

wolf:
I think what I used to say in Vim was like, space.

wolf:
G or something? It was a custom combination, but it's built into, um…

Jim McQuillan:
Okay, alright.

Jim McQuillan:
Okay.

wolf:
Helix. You just say GW, and it does the same thing. Um, so I use that all the time. Like, why use any kind of.

Jim McQuillan:
Okay.

wolf:
Go 5 words, or scroll to line 10. Nope. GW. Go there. Go straight to the place I want to go.

Jim McQuillan:
Sure.

Jim McQuillan:
You've been talking about, you know, you've been talking about easy motion, I swear, for 20 years.

Jim McQuillan:
Because you've been talking about, you know, you and I have known each other for, like, more than 25 years.

Jim McQuillan:
And years and years ago, you gave a talk at Mug on Vim, and plugins and extensions and stuff.

Jim McQuillan:
And you mentioned Easy Motion way back then, and I'm glad you're still passionate about it.

wolf:
Yeah, uh, although I…

wolf:
I'm a Helix user, that's my daily driver but, uh, yeah, I like that easy motion thing. So, them, good if I can have those 2 plugins. Those are, those are my favorite.

Jim McQuillan:
Sure.

wolf:
But my daily driver, Helix, doesn't even show up on the list of market share.

wolf:
Like, um, Emacs is around 8 or 9% market share.

wolf:
Windsurf.

wolf:
Which I've never even heard of, got 5%, and… and I don't see Helix anywhere. Notepad++.

wolf:
is 25%, 27%, something like that. And Helix doesn't show up. So.

wolf:
I totally, totally don't get it.

wolf:
But I, I do have.

wolf:
Things I think editors need.

wolf:
Um, for instance, I think the jump from an editor that.

wolf:
Is just, um, black and white to one that knows what language you're using and does syntax coloring.

wolf:
Is a big deal. Um, now I don't use any kind of super fancy.

wolf:
theme, I use a theme called alabaster, which is, um, it only highlights the things that are actually important.

wolf:
Um, and the things I think are important are probably not the things other people think are important.

wolf:
Like, I don't think the keyword deaf or function or for, I don't think any of those are important.

wolf:
I think comments are super important, and that is exactly the opposite of what most people think.

wolf:
But Alabaster agreed with me.

Jim McQuillan:
And so you're…

Jim McQuillan:
Yeah, so your, your theme, uh, sets that up for you.

Jim McQuillan:
Um, right, okay.

wolf:
Yes, now I am not the inventor of this theme, Tonsky is.

Jim McQuillan:
Yeah, okay. So, uh, hang on just a second, let's backtrack just, just a minute or two. Uh, you were talking about some of the, uh.

Jim McQuillan:
market share of some of these editors, and I think you mentioned VS Code is, like, almost 76%.

Jim McQuillan:
And, uh, Emacs was 8 or 9%. Uh, you didn't mention where VIM was at.

Jim McQuillan:
And I see in this chart.

wolf:
VIN's around 25%.

Jim McQuillan:
Um, just straight VIM, but you kind of have to add NeoVim into that, because.

Jim McQuillan:
You know, if you're a Vim or a Neo Vim.

wolf:
Yeah, and the thing to know about Vim, yeah, Vim and Neo Vim are.

wolf:
They're so close, they're siblings, that you do have to combine those numbers.

Jim McQuillan:
Yeah, and then you're, you're closer to 40% at that point.

wolf:
And the interesting thing…

wolf:
Yeah, and Neovim.

wolf:
Has an 83% admiration rating.

wolf:
The people who use NeoVim absolutely love it.

Jim McQuillan:
Okay.

wolf:
Um, they think it's fantastic.

Jim McQuillan:
Hmm.

wolf:
Um, so that, that's a big thing, I really think that's big.

Jim McQuillan:
Yeah. Yeah.

Jim McQuillan:
Yeah, so I'm sorry, we're… I interrupted you.

wolf:
I think syntax coloring is a big thing. Do you use syntax coloring?

Jim McQuillan:
Yeah. Sure, sure. Now, I'll confess, I am a bit colorblind, so it might not be as important for me as it is for a lot of people.

Jim McQuillan:
But I, yeah, I definitely have it on, and I notice it, and it's, and it's better. As, you know, we were at lunch last week, and I, and I mentioned I changed my, my environment.

Jim McQuillan:
I've always been a black screen with white text guy. It's just always the way I've been doing it. Except way back in the 80s, when it was a green screen.

wolf:
80% 80% of the people are like that.

Jim McQuillan:
Yeah, it was a green screen with white lettering, or it was, like, green with a light green lettering. I switched my colors, my whole color theme on every terminal that I open now, it's more of a gray.

wolf:
Uh-huh.

Jim McQuillan:
And… and it's like I… it's like I have a new computer. But, you know, of course, when I do that, then the syntax coloring changes and stuff, and.

Jim McQuillan:
It changed my, my feeling when I look at it. I like it. Like, I'm really happy.

wolf:
Oh, you do like it. I was waiting for you to have an actual opinion.

Jim McQuillan:
I do!

Jim McQuillan:
No, no, I really, I really do like the fact that I, I got away from that dark black because it was just so dark.

Jim McQuillan:
And now, and I can't do white cause that's just way too much white, but this, this, it's on the.

Jim McQuillan:
You know, it's closer to black than, than white, you know, it's, and I'm, I'm, boy, I'm happy with it.

wolf:
Um…

wolf:
Well, let me talk a little bit more about syntax highlighting.

Jim McQuillan:
Yeah.

wolf:
Uh, a lot of editors supply it.

wolf:
And there are essentially two major different ways that they do it.

wolf:
Uh, the old way is they had regular expressions that defined.

Jim McQuillan:
Yeah.

wolf:
Exactly what a language looked like, and those regular expressions were fragile.

wolf:
And not always correct, and took a long time to apply.

wolf:
And when you had some kind of input text in your file that didn't.

wolf:
That wasn't quite right. Suddenly, the whole rest of your file was marked up as a.

wolf:
String and it didn't look good at all. That was bad. We didn't like those days.

Jim McQuillan:
Okay, welcome to my day.

Jim McQuillan:
Right.

Jim McQuillan:
I get that all the time.

Jim McQuillan:
For the, you know, from a certain point in my document on, it's all the same color because I've got a wrong quote.

wolf:
Uh-huh. Well, the modern scheme, uh, that a lot of these editors use.

wolf:
is a thing called Treesitter, and Treesitter knows what languages.

wolf:
Uh, you are using, and it knows that because it has an actual grammar.

wolf:
Um, and if you combine that with an LSP, which is a thing we definitely want to talk about later.

wolf:
Um, it has a, it doesn't just know that, oh, by the way, this is a statement, and this is a comment.

wolf:
It knows things like, this is a variable, stuff that it couldn't know just from.

wolf:
typical parsing. It knows better because it understands the language itself.

wolf:
It is way more robust, it's way faster, um, and you don't get a screen that's full of orange, and it's more performant.

wolf:
Um, because when you're using TreeSitter, it's smart enough to.

wolf:
Uh, understand scopes, and just do the stuff that changed, and notice that it can't, you know, spill out of this block.

wolf:
Um, you definitely want to move up from anything that's using, uh, regular expressions to something that's using tree sitter.

Jim McQuillan:
Does… okay, does Vim use TreeSetter? Is there a plug-in to do TreeSetter stuff?

Jim McQuillan:
Or if if I'm.

wolf:
There is.

Jim McQuillan:
So if I'm using Vim, I'm not stuck with the old regex way of doing syntax highlighting.

wolf:
Well… you are.

Jim McQuillan:
I am.

Jim McQuillan:
Thanks, Wolf.

Jim McQuillan:
You know, interesting though, I've heard you talk about tree sitter for a little while now.

Jim McQuillan:
months, or maybe a year or two, you've brought it up, and I always had this concept that tree was like a directory tree.

wolf:
Uh-huh.

Jim McQuillan:
And it's, like, for navigating files, and I thought, why? Right? But I just got to understand, when you're talking about tree sitter and trees, you're talking about, like, the parse tree.

wolf:
No.

wolf:
Right, that is exactly right.

Jim McQuillan:
Uh, when parts, yeah.

Jim McQuillan:
Okay, blow my mind. Now I get it, right? I did not get it before when I thought it was some file system thing. Okay, okay.

wolf:
So, Treesitter is available for Vim. I think it might be built into NeoVim.

Jim McQuillan:
Okay.

wolf:
Uh… yeah.

wolf:
Maybe, uh, definitely.

wolf:
If you get it, it's a plug-in. I haven't paid attention. It is built into Helix.

wolf:
Um…

Jim McQuillan:
Right.

wolf:
So, I strongly recommend any editor that uses Treesitter, um, and I strongly recommend against anything that's using regular expressions. There are probably things in between, I don't know what Xcode is using.

Jim McQuillan:
Right, and um.

Jim McQuillan:
And.

Jim McQuillan:
Uh, VS Code is using TreeSetter, right?

wolf:
I think so.

Jim McQuillan:
I think, I think they're like the people that created it or.

Jim McQuillan:
came out of the origins of VS Code, I think.

Jim McQuillan:
Um, yeah, and okay, you, you're you're saying.

Jim McQuillan:
Regexes aren't good, let's just make it clear, regexes are freaking awesome.

wolf:
As a tool for a human being to use, when you are the person behind the keyboard.

Jim McQuillan:
Uh, it's, it's.

Jim McQuillan:
Yes. Yeah.

Jim McQuillan:
Yeah.

Jim McQuillan:
Yeah.

wolf:
And you are solving a problem, and you are going to type a regex, yes.

wolf:
They are one of the most powerful tools in your toolbox.

Jim McQuillan:
Yeah, they're there.

Jim McQuillan:
Yeah, they're just not the right tool for this problem.

wolf:
When somebody else.

wolf:
Right, when somebody else hands you one, that is almost certainly wrong.

Jim McQuillan:
They hand you one because they can't understand it and they want you to help.

Jim McQuillan:
And now you have to figure out what it is that they're trying to do.

wolf:
Yeah, um, it turns out that tree sitter was invented.

wolf:
At GitHub for Adam.

Jim McQuillan:
Oh, okay, okay.

wolf:
And then it… it spread.

Jim McQuillan:
Yeah, yeah, it's, I'm gonna, I'm gonna, I'm gonna check it out.

Jim McQuillan:
But it sort of changes the whole syntax coloring.

Jim McQuillan:
Mechanism, right? So it could be all my syntax coloring that I'm used to now could change a little bit, or maybe a lot.

wolf:
It does.

Jim McQuillan:
If I, if I switch to that plugin.

wolf:
Definitely the performance, robustness.

wolf:
and the ability to make it make the right things be marked up? Yes. Will it change the colors that you see?

Jim McQuillan:
Right, right.

wolf:
Um, that's all about themes and, um, that's all a matter of A, personal taste and B, visual capabilities.

Jim McQuillan:
Okay. Alright.

Jim McQuillan:
I think I need to dig in and look at that. It sounds interesting.

wolf:
um…

wolf:
Yeah, but this brings us to LSPs.

wolf:
Which are a huge, huge deal, um, and LSPs.

Jim McQuillan:
Yeah.

wolf:
are, um, I guess from, uh, the Microsoft world, I think. Let me, let me look at my notes. I've got this written down somewhere.

wolf:
But the idea about LSPs is that they.

Jim McQuillan:
Yeah, it came from the VS Code team.

wolf:
They know what language you're writing. It used to be that every single editor.

Jim McQuillan:
Mm-hmm.

wolf:
Um, had code in it, or a plugin, or something, that knew the language you cared about.

wolf:
So, it was an M times N problem. M editors, n languages, M times N little parsers.

wolf:
That those editors knew how to use. Um, and then the VS Code guys.

wolf:
decided, oh, well, we're gonna make this thing, it's gonna be private, we're not gonna share it, that lets you, uh, write arbitrary.

wolf:
Uh, little libraries, modules, that can do the job of this language, because you always want the same things.

wolf:
I'm on a variable. Take me to its definition. Um, I'm calling a function. Do the same thing. Take me to its definition.

Jim McQuillan:
Yeah.

wolf:
Um, find the users of this.

wolf:
What, you know, operations, they actually rely on knowing the, the thing, like.

wolf:
Reverse the Boolean expression and hoist this and do that and.

Jim McQuillan:
Yeah.

Jim McQuillan:
These are, yeah, these are all things I love in Xcode. That was my first introduction with that type of editing environment.

Jim McQuillan:
Uh, all those things. You know, show me the callers, show me the definition.

Jim McQuillan:
And that's all because of LSPs.

wolf:
Yes.

wolf:
And when you take an editor, a plain old editor that's fast enough.

wolf:
And, um…

wolf:
You combine that editor with.

wolf:
tree sitter, and the fact that it understands LSPs, and then a good LSP.

wolf:
For the language you want to write in.

wolf:
That is almost as good as an IDE that somebody custom an integrated development environment.

wolf:
That someone custom wrote for that language, and probably better.

wolf:
Because, for instance, um, JetBrains, or Xcode, or, uh, blah blah blah, whatever, all these IDEs.

wolf:
They want to do the things, all the things. They want to sort.

wolf:
For you, and they want to, um, search, find all the things that you want to find, and they want to.

wolf:
Filter and all the things but.

wolf:
If you're using an editor that is built on the Unix philosophy.

wolf:
You can leverage all the tools that exist, all the tools that ever existed, all the tools that are going to exist.

wolf:
The combination of.

wolf:
A great editor that you already like, that you know how to use, that just wants to be great at editing.

wolf:
Plus, Tree Center.

wolf:
for the language you care about, so that you can get robust and fast parsing. And an LSP.

wolf:
That turns it into something that knows the language you're working on.

wolf:
Plus, all the, uh, tiny little tools that do their one job great.

wolf:
You put all those things together.

wolf:
I'll take that over an IDE any day. And there's some great IDEs out there.

Jim McQuillan:
Yeah.

wolf:
Um, I happen to think that the JetBrains IDEs are fantastic.

wolf:
Uh, but the combination of, for me, helix.

wolf:
plus Python or Rust.

wolf:
uh, as a tree sitter and an LSP, plus using, uh, DAP, which is the Debug Adapter Protocol.

wolf:
Um, the combination of all those things together and calling existing Unix tools.

wolf:
I can't have that any other way.

wolf:
So, I love that stuff.

wolf:
Um, so we talked about LSPs. Go ahead.

Jim McQuillan:
So, so, hang on a second, you're doing this with Helix, how much of that can I get with them?

wolf:
Them can run Unix commands.

Jim McQuillan:
You mentioned there's a TreeSetter plugin.

Jim McQuillan:
Obviously.

wolf:
Uh, there is a plugin for NeoVim for sure, and maybe there's one for Vim.

wolf:
to use an LSP, so you could have that. Um, Neovim, for sure, gives you Tree Sitter.

Jim McQuillan:
Okay.

wolf:
Um, in my notes here, it doesn't say that Vim gives you tree sitter.

wolf:
And I don't know if that's because Vim doesn't really, or I just didn't find it.

Jim McQuillan:
Well I I.

Jim McQuillan:
I can I I I can.

Jim McQuillan:
I'll figure that out.

Jim McQuillan:
I do want to try this.

wolf:
There's a bunch of editors we didn't bring up yet. Really popular ones. The editors I never heard of, by the way.

Jim McQuillan:
Yeah.

wolf:
As well, I happen to have an editor called Zed.

wolf:
on my Mac, um…

wolf:
A lot of people really like Zed. There's.

Jim McQuillan:
I installed that one too.

wolf:
There is, of course, a lot of people use Sublime. I used to be a Sublime user, that's cross-platform.

wolf:
That's a very traditional editor, um, you know, visual.

wolf:
Selection first, not modal at all.

wolf:
um…

wolf:
And that's still around, it's kind of old, it doesn't see a lot of growth. Uh, there was Adam, people thought Adam was great.

wolf:
And then.

wolf:
GitHub got bought and I think Adam got killed.

wolf:
Uh, but then the community sort of took over Adam.

wolf:
and built something called Pulsar, uh, that a lot of people really, really like. I have never seen it, I don't know anything about it.

wolf:
But a lot of people love that. Um, there's Visual Studio, we didn't talk about that. There's a super popular.

wolf:
Uh, cross-platform editor that, um, it's called Slick Edit.

wolf:
It's… it's paid, uh, it comes in a standard and a pro edition.

wolf:
It knows, gosh, maybe 70 different languages.

wolf:
And it specializes in emulating keyboard layouts.

wolf:
for other editors…

Jim McQuillan:
Hmm.

wolf:
Um, and it's fast, it's a very fast editor, um.

wolf:
and it can open huge files, like 2TB files. Um, the editor that I use, Helix.

wolf:
Uh, does all this parsing up front, so big files it kind of chokes on. My personal feeling is.

wolf:
If you are looking at a big file.

wolf:
Probably an editor that shows you the text in it.

wolf:
is not the answer to your question. That's my feeling, but who am I to tell somebody how to do something? Maybe they want to edit a.

wolf:
terabyte, uh, long, log file. I'm not gonna tell them no, do what you want, be you, you be you.

Jim McQuillan:
I use Vim for log files all the time.

Jim McQuillan:
They're not terabytes, but they can definitely be multi-gigabyte.

wolf:
Yeah.

wolf:
Yeah, I actually met these slicked guys when I worked at Trolltech. They've been around for a long time.

Jim McQuillan:
Wow.

wolf:
The people who use Slick Edit.

wolf:
absolutely love it. Um, they just don't make a big deal out of it. Um, but again, that's another group of people, like Emacs users and VIM users.

wolf:
Who will never switch. They've got what they want, it does what they want, they can't get what they want anyplace else.

Jim McQuillan:
Mhm.

Jim McQuillan:
Yep.

wolf:
That, that's where they're gonna be.

wolf:
I totally left out notebooks.

wolf:
Um, you know, there's a zillion.

Jim McQuillan:
Oh, the the the.

wolf:
Like Jupiter, and…

Jim McQuillan:
Jupiter notebook, yeah.

wolf:
There's actually, gosh, maybe 20 different kinds of notebooks.

wolf:
Not just Jupiter, but Jupiter Lab, and…

wolf:
I would even call, um…

wolf:
Um, Mathematica a notebook and.

wolf:
Oh, there's others. That's a totally different way of editing. Um, I think.

Jim McQuillan:
Hmm.

wolf:
Combining an editor.

wolf:
With the ability to.

wolf:
Run and debug, which is what a notebook is all about.

wolf:
Uh, is a really powerful combination. Uh, and that's why IDEs in general are good.

wolf:
Because they give you that. A graphical debugger.

wolf:
Combined with running and seeing stuff in your editor, full size, just the way you always see it.

wolf:
That's… that's a different world than you and I grew up in.

wolf:
Um, right up until maybe we got to Turbo Pascal, um.

Jim McQuillan:
Yeah.

Jim McQuillan:
Yeah.

Jim McQuillan:
Yeah, okay, so let me ask you this. Um, I'm using Xcode, that's an IDE. That gives me all those things.

Jim McQuillan:
Right? It's like, it manages the whole project.

wolf:
Right, except…

wolf:
Except really slow.

Jim McQuillan:
um…

Jim McQuillan:
Yeah, it is kind of slow.

Jim McQuillan:
And as I found out, as I found out this week, it's getting slower.

Jim McQuillan:
So JetBrains, that's an IDE.

wolf:
Okay, JetBrains is a company.

Jim McQuillan:
Okay, but their product…

wolf:
and.

wolf:
They have one.

wolf:
primary editor called IntelliJ.

Jim McQuillan:
Oh. Okay.

wolf:
And IntelliJ takes a zillion different kinds of plugins, and with specific plugins, it's a really good editor for a specific language.

Jim McQuillan:
Mhm.

wolf:
And, based on that.

wolf:
They have refined, specialized versions that are smaller and faster and aren't.

wolf:
IntelliJ with a plugin, which is essentially a Java editor. And they're all written in Java, by the way.

Jim McQuillan:
Mm-hmm.

wolf:
But don't let that fool you, for this might be the best Java program I've ever seen.

wolf:
Um, so, PyCharm is the IntelliJ.

wolf:
Python editor. Um…

Jim McQuillan:
Okay, is it an editor or an IDE?

wolf:
There.

wolf:
It's an IDE, sorry, I should have said IDE. So, it has an integrated debugger, it can run, it works. It's everything that you think.

Jim McQuillan:
Okay. Okay. Um…

Jim McQuillan:
Right.

Jim McQuillan:
Okay. Okay, and then, uh, Visual Studio, that's a big IDE.

wolf:
Uh, and when you get it.

Jim McQuillan:
It does all that stuff. But what about VS Code itself? Is that an IDE?

wolf:
It is.

Jim McQuillan:
It's got a debugger.

wolf:
Boy, that's… that is a tough call. Um, I am gonna go… I'm gonna land on the side that VS Code is an IDE.

Jim McQuillan:
Is it maybe on the, on the, uh, on the fence?

Jim McQuillan:
Okay, it… okay.

Jim McQuillan:
The little bit that I've done with it, it's full-featured, that's for sure.

Jim McQuillan:
And it does have a debugger in it, so, uh, I don't know if it does the whole project management thing, you know?

Jim McQuillan:
Like, well, what I'm used to in Xcode, where it manages the.

Jim McQuillan:
Project file that sort of says what everything is.

wolf:
Mm-hmm. See, my problem with IDEs, one of my problems.

Jim McQuillan:
Yeah, okay.

wolf:
Is, uh, that it just by their very nature, IDEs are super opinionated.

wolf:
Um, nobody says, well, I'm using PyCharm to.

Jim McQuillan:
Yeah.

wolf:
uh, do this kind of project or that kind of project. You're, you're working on a PyCharm project. I mean, it turns out there is stuff underneath that you get to control.

Jim McQuillan:
Yeah.

Jim McQuillan:
Sure.

wolf:
But the pie charm part?

wolf:
It's a pie charm thing, you have a pie charm, there's a dot, um.

Jim McQuillan:
Yeah.

wolf:
idea folder inside your PyCharm project. Um…

Jim McQuillan:
Okay, yeah.

Jim McQuillan:
Yeah.

wolf:
there's an Xcode project, blah blah blah. PyCharm actually, now that I'm thinking about it, is a little less opinionated than these other things.

Jim McQuillan:
Sure.

wolf:
Like, in Python, which I'm super familiar with, you could be using.

wolf:
UV to manage your project, or poetry, or pixie, or… those are all different shapes of projects, and there's reasons for picking.

Jim McQuillan:
Okay.

Jim McQuillan:
Right.

Jim McQuillan:
Mhm.

wolf:
a particular one. Uh, and it turns out PyCharm does work with those, but it does have its opinions, and it sticks that idea directory in there.

Jim McQuillan:
Right, right, okay, but like VIM VIM is definitely not an IDE.

wolf:
Uh, but that's not how Xcode is.

wolf:
Right.

Jim McQuillan:
Yeah.

wolf:
That's right.

Jim McQuillan:
Okay, okay.

wolf:
Um, so, the main thing to get from all this, I think, is that.

wolf:
It's interesting to talk about and hear about, but it's a lot like.

wolf:
Travel.

wolf:
A lot of people talk about, oh, what's it like in Japan? Oh, what's it like in Greece? Oh, what's it like in Australia?

wolf:
But the number of people who actually go to Australia is small.

wolf:
And the number of people who move to Australia from here, or from, you know, wherever you are, Michigan.

wolf:
Um, is vanishingly small. And it's the same with editors. Oh, it's interesting to hear about Helix. Oh, it's interesting to hear about Emacs.

Jim McQuillan:
Sure.

wolf:
But the number of people who try Helix, you put yourself in a very rarefied atmosphere.

wolf:
You did not go so far as to move to Australia.

Jim McQuillan:
Right. Right.

wolf:
Do you have, um, other thoughts on editors?

Jim McQuillan:
Okay.

wolf:
I guess we didn't talk about AI.

Jim McQuillan:
Uh, yeah, let's get to that, but, but first, um.

Jim McQuillan:
Some editors, like Vim, have a rich programming language.

wolf:
That's right.

Jim McQuillan:
Um, uh, you know, Vim script and now VimScript 9, you can.

Jim McQuillan:
You can do anything in those languages, and they help you extend the editor.

Jim McQuillan:
Um, other, other editors, uh, what have you said? Emax is not an editor, it's a, it's a language.

Jim McQuillan:
That, yeah.

wolf:
Yeah, um, I actually, this is super, super important.

wolf:
Um, in history, a couple worlds existed.

wolf:
That weren't just a language, they were the whole world. They weren't they, like, um.

wolf:
For instance, small talk.

Jim McQuillan:
I was gonna say that.

wolf:
And…

Jim McQuillan:
That is a world.

wolf:
Small talk and the original Lisp environment.

wolf:
And Oberon, and a couple others, um, and.

wolf:
Emacs is the… almost the closest thing you can get to that. The truth about Emacs is…

wolf:
that Emacs is an entire environment, um, that can live in whatever OS you like.

wolf:
that is programmed in a special version of Lisp called ELISP.

wolf:
And interestingly, you can embed Lisp in other things, but it's not ELISP, it's Guile. Anyway, forget that for a second.

wolf:
These worlds are so much more powerful than.

wolf:
The idea of using Vim or Notepad or any of these things.

wolf:
Because you're not just writing things to help you edit a file.

wolf:
You are controlling the OS you are working in.

wolf:
Like, this is what it means to start up. This is what it means to open something.

wolf:
This is what it means when I have a calendar event. All those things I named, Small Talk and Emacs.

wolf:
They're not about editing, they're about your whole world, your whole OS.

Jim McQuillan:
Hmm.

wolf:
Um, people will ask me, um, you know, compare Vim and Emacs. Well.

wolf:
Between Vim and Emacs, I'm a VIM user. I like the way VIM thinks.

wolf:
But in terms of.

wolf:
Which is a better.

wolf:
thing, overall.

wolf:
Emacs is a better.

wolf:
Thing?

wolf:
But Vim is a better editor.

Jim McQuillan:
Yeah, yeah, uh, Emax sounds like sort of an elegant way to do something.

Jim McQuillan:
But I need to edit.

wolf:
Vim, or Emacs is vastly more powerful than Vim.

Jim McQuillan:
Yeah.

wolf:
And the primary application that Emacs gives you is an editor.

wolf:
Uh, but yeah.

wolf:
Emacs is about crazy control key sequences to make things launch.

Jim McQuillan:
Yeah.

wolf:
It's not modal, it doesn't think the way I think.

wolf:
Emacs is 100% great, and if you're an Emacs user, you should feel good about yourself.

wolf:
Because it's an investment, and it's a worthy investment. And you are absolutely productive with it.

wolf:
And, and I would say those same things about Vim. Vim is a giant accomplishment.

Jim McQuillan:
Right.

wolf:
There's a lot to learn, and once you have learned it, it's a sunk cost, and you don't want to switch. Um…

wolf:
But yeah, some of these editors are super programmable.

wolf:
And some of them aren't, and some of them happen to be, but coincidentally.

wolf:
Um, like, you can make Xcode do things, but not because Xcode is programmable, you can only do it through.

Jim McQuillan:
Yeah…

wolf:
Automator, or Shortcuts, or AppleScript, or… and the connection between those features and Xcode.

Jim McQuillan:
Yeah, it's… yeah.

wolf:
are very tenuous. Getting Xcode to be automated is insane.

wolf:
Um, so, there's that.

Jim McQuillan:
Yeah, so, so Vim has Vim script Neo Vim has Lua, is that what they're using?

wolf:
That is correct.

Jim McQuillan:
Helix. What do you do there?

wolf:
On the main branch, Helix is not programmable.

wolf:
There are macros, um, like, you can say if this set of keys means this command, or maybe this collection of commands.

Jim McQuillan:
Okay.

Jim McQuillan:
Mhm.

wolf:
But, um, there is a plan, but things move pretty slow with Helix.

wolf:
And that plan is actual plugins, there aren't plugins right now.

Jim McQuillan:
Hmm.

wolf:
That… that is on a branch, and there is an actual language to program Helix in on that branch.

wolf:
Um, a lot of people run that branch.

wolf:
the language to program Helix in, and write those plugins in on that branch.

wolf:
is a variant of scheme.

wolf:
That is named…

wolf:
Steele STEE L.

Jim McQuillan:
Okay, and Scheme is a variant of Lisp, isn't it?

wolf:
Uh, scheme is a family of of lisps, yeah, lisp is like.

Jim McQuillan:
Okay.

wolf:
A parent family, and then scheme is a sub-family, and steel is one. It's a lisp. It's a kind of lisp, yes.

Jim McQuillan:
Okay, but it's in that, it's in that world.

Jim McQuillan:
Yeah, okay, okay.

Jim McQuillan:
Um, uh, VS Code, uh, that's got a really good programming language, it's TypeScript, TypeScript.

Jim McQuillan:
You can, you can, TypeScript and JavaScript, you can, you can do anything you want, because it's written in TypeScript.

wolf:
Uh-huh.

Jim McQuillan:
Uh, you can do all that stuff and extend it. I think that's pretty cool. I don't have a lot of need for that.

Jim McQuillan:
For, for actually creating, uh, extensions or programming the editor, but…

Jim McQuillan:
I think it's nice that some of those editors have that.

Jim McQuillan:
So, yeah.

wolf:
Yeah, so…

wolf:
Did you want to talk about AI? Because there's 3 things now.

Jim McQuillan:
Yeah, let's, uh, cause everybody, you know, you can't…

Jim McQuillan:
You can't walk down the street without somebody talking about AI these days. So, how does AI play into the editors?

wolf:
But that.

wolf:
Well, I think there's a couple things to say. First, there is a super popular editor whose name I didn't even say yet.

wolf:
that has AI built in, and uh… that's not the important part about it. The editor is named Cursor.

Jim McQuillan:
Yeah.

wolf:
And the important part about… it's super popular, people who use cursor love cursor.

wolf:
Um, I think an engineer on your team is a cursor user. I don't remember if that's true or not.

Jim McQuillan:
Yeah, yeah, yeah, he, he, he works, he's doing more clawed code now, but.

Jim McQuillan:
Yeah. He's done some cursor stuff.

wolf:
Um, well, it turns out that um.

wolf:
the, uh…

wolf:
Cursor invented the way to.

wolf:
Connect an editor to.

wolf:
an AI provider. Um, if I'm thinking of the right thing.

Jim McQuillan:
Is that, uh, was that A CP or ASP?

wolf:
That is A/C… uh, no, ACP, the Agent Client Protocol.

Jim McQuillan:
Okay. Yeah, okay.

wolf:
Is it, isn't Cursor that invented that?

Jim McQuillan:
I don't know.

wolf:
Or was it Zed?

wolf:
So hard to keep track anyway.

wolf:
So, that is the idea that the editor is your world.

wolf:
But it knows about your AI, whatever AI it is that does the job you like it to do.

wolf:
Uh, so you get the autocomplete when you're just typing things, but you can also go into a mode where it plans or does things, and then it.

Jim McQuillan:
Mm-hmm.

wolf:
edits files by itself, so that's AI in your editor, and that connector protocol is important.

wolf:
And then there's the other way around, where you're running the AI, and then you're looking at stuff that it's done or plans to do.

wolf:
In an editor. But the edit, it's the reverse of that relationship.

wolf:
AI on the outside, editor on the inside. So, if you're using.

Jim McQuillan:
AI's doing the work.

wolf:
If you're… if you're a Cloud Code user, then you're in the terminal.

wolf:
Um, and whatever you've set dollar editor or dollar visual to, that's what Ctrl-G is gonna get you when you're looking at a plan or whatever.

Jim McQuillan:
Yeah.

Jim McQuillan:
Sure. Sure.

Jim McQuillan:
Okay, okay. Like, I'm, um, uh, the newest versions of Xcode.

wolf:
Um…

Jim McQuillan:
They've kind of gone all in on AI integration. I've got Claude plugged into my Xcode.

Jim McQuillan:
So it's handling, um, um, all the… what used to, you know, if you had an error, it popped up a little, uh, symbol, you click on it, it'll…

Jim McQuillan:
One of the choices is fix the code, and now it's using Claude.

Jim McQuillan:
as the back end to go fix the code or offer suggestions. It's, um… and you don't have to use Claude. You can use ChatGPT, you can use… I think there's several.

wolf:
Um, yeah, so I guess it's possible not to use Claude. I'm trying to think of why you wouldn't.

Jim McQuillan:
Yeah. Well, you know, you and I are using Claude. I'm using Claude because you use it.

Jim McQuillan:
But, uh, what is it, Codex from, from the chat GPT people?

wolf:
I hear there are people who think Claudex is good, yeah.

Jim McQuillan:
People are liking that.

Jim McQuillan:
Yeah, people are really liking that, but, um, I'm.

Jim McQuillan:
I'm overwhelmed with Claude. I have no reason to switch, I'm still… I'm using 1% of it.

Jim McQuillan:
Um, but, uh, VS Code has, uh, support for, you know, working with Claude and, and, uh.

Jim McQuillan:
Codex. Um, Helix, does that have any plug-in or any ability to do any AI stuff, or is it…

Jim McQuillan:
Completely separate.

wolf:
Well, I use it the other way around. Um, I start at Cloud Code, and I launch Helix. Um, so I generally have multiple tabs open.

Jim McQuillan:
Yeah, you're in Cloud Code.

Jim McQuillan:
Yeah, in a terminal.

Jim McQuillan:
Right.

wolf:
Um, and of course, dollar visual for me is set to HX, which is the binary for helix.

Jim McQuillan:
Sure.

Jim McQuillan:
Okay.

wolf:
So, when I'm looking at a plan in Claude Code, when I say Ctrl-G.

wolf:
Suddenly, I'm looking at the plan, but I'm in Helix. Um…

Jim McQuillan:
Right, I think it would work the very same way with Vim.

Jim McQuillan:
I mean, I run my VIM session, and I run my Cloud Code session, and they don't even know about each other.

wolf:
Yeah.

wolf:
Yeah, that's frustrating.

Jim McQuillan:
Yeah, so what else can we say about AI?

wolf:
Anyway…

wolf:
Not not too much, but I think it's more and more the case that.

wolf:
Um…

wolf:
It's very hard to sell an editor anymore.

wolf:
The thing that people are trying to sell is the combination of an editor with an AI.

Jim McQuillan:
Oh, I mean, sell, like, like, sell for money sell or sell the idea of an editor, yeah.

wolf:
And I think…

wolf:
That's what I'm saying.

wolf:
sell for money. It used to be that people sold editors for money.

Jim McQuillan:
Okay.

Jim McQuillan:
Yeah.

wolf:
Um, and now, you know, VS Code took that away, uh, just like…

Jim McQuillan:
Yeah.

wolf:
Git took away, well, I guess there's several things that took away the idea of.

wolf:
You could sell a source code control system, or… there's a zillion free things that took away the idea that you could sell.

Jim McQuillan:
Sure.

wolf:
A thing that, that actually costs money but, um, I think the combination of.

wolf:
the editor you want, and the AI that is helping you.

wolf:
And live debugging, um, and understanding the language you want to use, and being able to use tools.

wolf:
I think that combination where all the parts except paying for the AI service.

wolf:
Are free, I think that's gonna put, um, otherwise.

Jim McQuillan:
Mhm.

wolf:
Um, on.

wolf:
What what's the word when subsidized? Unsubsidized IDE is out of business.

Jim McQuillan:
Mhm.

wolf:
So, um.

wolf:
I, I'm, I'm worried for jet brains because that's what they do, they sell NIDE.

wolf:
Um, and they make, as far as I'm concerned, PyCharm is probably the.

wolf:
The best or one of the best.

wolf:
Python IDEs that you can get.

wolf:
Um, I think.

wolf:
They're, they're gonna go out of business because the combination of these other tools.

Jim McQuillan:
Mhm.

wolf:
is just as good as an IDE, but Xcode is not going to go out of business.

wolf:
Because nobody pays for Xcode, it's subsidized by Apple from phones.

wolf:
Um, nobody, uh, Microsoft is not gonna go out of business because.

wolf:
Um, VS Code is subsidized by them selling Windows.

wolf:
Uh, or, or whatever. Um, so there, there are IDEs that are not gonna go out of business, and did you notice that none of them are good?

Jim McQuillan:
Right.

wolf:
Oh wait, I wasn't gonna express opinions, I'm sorry.

Jim McQuillan:
That's right, that's right.

Jim McQuillan:
Uh, so if PyCharm were to go away, do you think, like, VS Code is a reasonable, uh, uh, editor to use for…

Jim McQuillan:
For doing Python.

Jim McQuillan:
You know, it's got the debugger and the LSPs and the AI integrations and stuff.

Jim McQuillan:
Is that a good way to go?

wolf:
Um, I have opinions, I have opinions, but I.

Jim McQuillan:
I know you don't use it.

wolf:
Um, to be completely candid, I don't think my opinions about VS Code.

wolf:
are worth a darn, and the reason I don't think they're worth a darn is because, um, I kinda have this unwarranted dislike for it. I don't know why.

wolf:
I have it. Maybe I have feelings about Microsoft, or applications written in TypeScript, or… is VS Code an Electron app?

wolf:
Um, I can't remember.

Jim McQuillan:
I think so? I think it is.

wolf:
Uh, but that combination of opinions has made it be that I haven't given VS Code a fair shake.

Jim McQuillan:
Sure, sure.

wolf:
Every time I have used VS Code, it absolutely did the job I needed to get done.

wolf:
So it never let me down. But I don't think I have enough experience to say.

Jim McQuillan:
Yeah.

wolf:
This is bad, or this is good. I do know, I have plenty of experience with PyCharm.

Jim McQuillan:
Okay, okay.

wolf:
And I can absolutely tell you that if somebody said today, it's pie charm for you from now on out, I would have no complaints.

wolf:
I would be 100% happy as long as the machine underneath was fast enough.

Jim McQuillan:
Hmm. Okay.

Jim McQuillan:
Sure. That's my problem with Xcode.

Jim McQuillan:
My machine underneath is just not fast enough, and I'm afraid if I buy the biggest, uh, Apple Mac that I can get, it might still not be fast enough.

wolf:
Uh-huh.

wolf:
Let's not find out.

Jim McQuillan:
You know, I'm used to the response I get from Vim. It's immediate, always.

Jim McQuillan:
I don't have to wait, uh, 45 seconds for the storyboard editor to load.

Jim McQuillan:
I don't have to worry about that.

Jim McQuillan:
But, um…

Jim McQuillan:
Yeah, but there's a lot of choices out there.

wolf:
I will say this.

wolf:
Um, keystroke latency, which is one of the things that people care about.

Jim McQuillan:
Yeah.

wolf:
How fast can I get letters into the text? Um…

Jim McQuillan:
Yeah.

wolf:
JVIM and IntelliJ?

wolf:
They top that chart. GVIM is, um, like 0.9 milliseconds for a key.

Jim McQuillan:
Really?

wolf:
And IntelliJ, one of the engineers at the, the JetBrains.

wolf:
Uh, engineering team.

wolf:
Just went nuts on this, said, listen, we absolutely cannot have a product.

wolf:
With anything greater than zero latency. So I'm gonna… I'm gonna write… I'm gonna do whatever it takes to give us the lowest latency possible. On average.

wolf:
The latency for, uh, getting a keystroke into any of the IntelliJ IDEs.

wolf:
is under 3 milliseconds. Um, it's fast. Now, there's other things that are fast or slow about various editors.

Jim McQuillan:
Okay.

Jim McQuillan:
Sure.

wolf:
But.

wolf:
You know, speed is one of the things you care about.

Jim McQuillan:
Yeah, well, you know, Vim is fast. It's plenty fast for me. In fact, I don't see it.

wolf:
Well, G Vem, JVM Thompson.

Jim McQuillan:
Yeah, yeah, uh, it's, it's, it's nice and snappy, so I'm, I'm happy with that and then I, when I, when I do go over.

wolf:
A lot of people care about philosophy, the license, some people care about.

Jim McQuillan:
Sure.

wolf:
who wrote it? And who wrote it is a big deal, like, if it's a single maintainer. Like, Brad Molinar was the guy behind Vim, and he, uh, unfortunately passed away.

Jim McQuillan:
Mm.

wolf:
About 3 years ago, he, um, he was.

wolf:
Absolutely, um, one of the icons of the software world.

wolf:
He did it all right. He ran a project, he was responsive, he took care of it.

wolf:
And, uh, he was, he was a genuinely good human being who did good things.

Jim McQuillan:
Yeah, he sure did.

wolf:
Um, and without Brad.

Jim McQuillan:
And he wrote quite an editor.

wolf:
He really did, without Brad, um.

Jim McQuillan:
Yeah, yeah.

wolf:
I, I think that puts them at a disadvantage.

wolf:
Um, so, uh, the number of central contributors.

Jim McQuillan:
Yeah, yeah.

wolf:
The mechanism for how they run the project, the philosophy behind what they want.

wolf:
Um, whether they think that it's.

wolf:
Free software, or open source software, or ad supported software, or.

wolf:
Uh, you know.

Jim McQuillan:
Shareware.

wolf:
a shareware or a product supported by cash, how they think about it, those things.

Jim McQuillan:
Yeah.

wolf:
What language it's written in, what file sizes it can open.

Jim McQuillan:
Mm-hmm.

wolf:
Um, all of those make a difference to users.

Jim McQuillan:
Mm-hmm.

Jim McQuillan:
Yeah, they're all factors that are important.

wolf:
Oh.

Jim McQuillan:
Yeah, well, that's, um… should we wrap it up? I think that's a lot of great information.

Jim McQuillan:
Um, what did we learn here?

wolf:
Uh, I think the number 1 thing we learned is the first thing you think about editors is.

Jim McQuillan:
Right.

wolf:
It's not worth even looking at some other editor.

wolf:
Until you're in a place where that's the only editor that you can run, like you're logged into.

wolf:
your Docker container.

wolf:
So, in your Docker container.

Jim McQuillan:
Yeah.

wolf:
Maybe your editor is Nano.

wolf:
Or maybe you install the Rust toolchain and build Helix.

Jim McQuillan:
Or maybe your editor is, maybe your editor is Kat.

wolf:
It just depends.

wolf:
That can be as well.

Jim McQuillan:
Or echo.

wolf:
Um, I think the idea that there is a different way of syntax coloring, that there is syntax coloring.

Jim McQuillan:
Yeah, that, that tree sitter thing, yeah.

wolf:
And that tree sitter is a thing.

wolf:
I think that could make you look at something else, maybe not switch, but look.

Jim McQuillan:
Yeah, yeah, I'm, yeah, I'm gonna look at the trees that are, I'll try the plug in for.

wolf:
I.

Jim McQuillan:
for, uh, VIM. And, you know, if I had to move to NeoVim, I could do that.

wolf:
I think the idea that there's a thing called an LSP.

Jim McQuillan:
um…

wolf:
It's a big deal.

Jim McQuillan:
Yeah.

wolf:
Um, the idea of looking at LSPs, I think people care about that.

wolf:
Um, maybe it makes a difference to some people whether your editor is modal or not.

wolf:
Uh, or programmable or not, I don't know.

Jim McQuillan:
Yeah.

wolf:
I think mostly people have what they want, and the only time they're tempted to look at something else is when they face a new problem.

Jim McQuillan:
Yeah.

wolf:
Because everything they're looking at right now, they've already framed it in terms of the tools they have.

wolf:
But you faced a new problem. I need to write an iOS app.

Jim McQuillan:
Mm-hmm.

wolf:
And when you had a new problem, you had to get a new toolkit to do it.

Jim McQuillan:
Yeah.

Jim McQuillan:
Yeah, yeah.

wolf:
It turns out you do have problems that could be addressed by other editors, but your editor makes you think in a particular way.

Jim McQuillan:
And I'm, you know…

wolf:
Such that those things that could have been thought of as problems by somebody else.

wolf:
They're invisible to you, you don't see them.

wolf:
It doesn't bother you that, for instance, you can't open a 16TB file.

wolf:
That's not a problem.

Jim McQuillan:
Yeah, it's not a problem I need to solve, yeah, yeah, but the biggest thing for me is the muscle memory.

wolf:
Right, uh…

Jim McQuillan:
You know, the fact that I've been using a VIM or VIM like.

wolf:
Yep.

Jim McQuillan:
Editor for, uh, 42 years now. I've got a lot of muscle memory built up.

Jim McQuillan:
It's hard to change. In fact, when I use VS Code, I've got the VIM keybindings turned on.

Jim McQuillan:
Uh, just, just so that I can navigate, uh, the way I'm used to. Um, but yeah.

wolf:
I gotta ask, what the is wrong with me? First of all, 85%.

Jim McQuillan:
Yeah.

wolf:
of software engineers.

wolf:
Have dark themes with light tags.

Jim McQuillan:
Yeah.

wolf:
You've known me. I have a light background and dark text.

wolf:
And when people come to my screen, they put on sunglasses. They don't want to see it.

Jim McQuillan:
Yeah.

Jim McQuillan:
That's what I would need to do.

wolf:
And so there's that, and number 2 is I'm constantly evaluating.

Jim McQuillan:
Yeah.

wolf:
Does this tool change the equation for ROI?

wolf:
Will I get more out of this tool than it costs to switch?

Jim McQuillan:
Well, you've got a…

Jim McQuillan:
You've got a more open mind than anybody I know.

Jim McQuillan:
And I'm… I'm not that much. I stick with what I've got because I'm happy and it.

Jim McQuillan:
You know, I can get my work done just fine with what I know.

Jim McQuillan:
I don't feel like I have time to learn things, even though those things might.

Jim McQuillan:
overall make my job better. Uh, and I do. You know, you convinced me to use Git, you've convinced me to use all kinds of things, and now I think you've convinced me to look at TreeSitter.

Jim McQuillan:
And LSPs, because I think that is a, is a, uh, uh.

Jim McQuillan:
A big enough gain that is worth doing, so yeah, I'll look at it.

wolf:
And AI, the combination, the combination of.

Jim McQuillan:
Oh yeah, you got me using AI.

wolf:
All of the things that I do to make me faster.

wolf:
To make me better at my job.

wolf:
Um, how I automate ticket creation and analysis and measurement and how I let AI help me with tasks.

wolf:
And how I plan things, and how I pick what's the most important thing to focus on.

wolf:
And if you add up all of those things, and I'm not just making this crap up.

wolf:
I measure every single one of these things, as you know, because I have forced you to read my measurements.

Jim McQuillan:
Mm-hmm. Yeah. Yeah.

wolf:
Um.

wolf:
Uh, for instance, AI. Um…

wolf:
The real world numbers for AI use, uh.

wolf:
If you listen to the AI companies, they will tell you that somebody who's good at AI.

wolf:
Gets 1 point out of it. AI will make you a 50% more efficient programmer.

wolf:
The reality is, a lot of people who use AI get less done overall. It is a hindrance.

wolf:
Um, it gets in their way. It makes their code worse.

wolf:
Um, the combination of all the things that I do, along with the caliber of, um.

wolf:
code that I have the experience to be able to write the knowledge that I've accumulated.

wolf:
The numbers say that I do about 2.5x.

wolf:
Of what a normal engineer does.

Jim McQuillan:
That's pretty good.

wolf:
So, to me, um, there's the thing that you just said, which is good.

wolf:
The thing you said is, they helped me get my job done.

wolf:
Um, and you and I have had the talk where you have.

wolf:
Um, admonished me. You have said things to me about, you focus too much on trying the latest tools instead of getting your job done.

wolf:
Um, and my response is, guess what?

wolf:
Not only do I get my job done, I get another guy and a half's job done.

Jim McQuillan:
2.5%.

Jim McQuillan:
Yeah, okay, okay. I haven't said that in quite a while.

Jim McQuillan:
Because I, because I could see.

Jim McQuillan:
What you're doing. I finally figured out what you're doing, and it's amazing.

Jim McQuillan:
But, uh, well, why don't we wrap it up then? This has been a lot of fun.

wolf:
Yeah, I really liked this.

Jim McQuillan:
This is a, this was a really good conversation on editors. I'm glad we did this. I'm, I'm gonna take some of that and, and try to use it.

Jim McQuillan:
Um, you know, we do this, uh, podcast every 2 weeks. Uh, this was episode number 26, we're gonna keep on going. Uh, we.

Jim McQuillan:
really value your feedback, so if you would like to send us feedback, uh, the email address is feedback at runtimearguments.FM.

Jim McQuillan:
Of course, we've got a website, uh, at runtimearguments.FM.

Jim McQuillan:
You can go there and see ways of contacting us, and of course, there will be show notes on this episode, and we always include the links there.

Jim McQuillan:
um…

wolf:
Transcript.

Jim McQuillan:
Yes, we'll have a transcript we.

Jim McQuillan:
We even do the chapter markers and all that kind of stuff.

wolf:
I, I am gonna say this, you, you said this was episode number 26.

Jim McQuillan:
Yes.

Jim McQuillan:
I'm sorry, did I say, it's 25, it's the 26th episode, yeah.

wolf:
And it's not. It is the 26th episode, but it's number 25.

Jim McQuillan:
Yeah, and off by 1 error, sorry.

Jim McQuillan:
Anyway, thank you everybody for coming along and listening. Uh, thank you, Wolf, for being my partner in this. I really appreciate it.

wolf:
Yeah, this is, even if you me and.

wolf:
The guy I, uh, pass in the kiosk at the mall were the only 3 people who listen to this, I'd still do it just to spend an hour and a half.

wolf:
And on Zoom menu.

Jim McQuillan:
Sure, well, thanks. Okay, goodbye, everybody.

wolf:
Bye!

Podcasts we love

Check out these other fine podcasts recommended by us, not an algorithm.

CoRecursive: Coding Stories Artwork

CoRecursive: Coding Stories

Adam Gordon Bell - Software Developer
Two's Complement Artwork

Two's Complement

Ben Rady and Matt Godbolt
Accidental Tech Podcast Artwork

Accidental Tech Podcast

Marco Arment, Casey Liss, John Siracusa
Python Bytes Artwork

Python Bytes

Michael Kennedy and Brian Okken
Talk Python To Me Artwork

Talk Python To Me

Michael Kennedy