Zlatko Đurić

Intrusive AI IDEs

Created on

I was running a little experiment on using various AI assistants in my IDEs.

I got an opportunity to use Cursor at work, so I decided I’ll fully commit to using Cursor during March, to see the tradeoffs between intrusiveness and helpful additions. I already use Zed and IntelliJ and neovim interchangeably at home, integrating them with Claude, Gemini, and local ollama-served models. They have AI plugins, but Cursor seems to offer a bit deeper integration then WebStorm and I wanted a comparison.

TL;DR: I don’t like Cursor at all, and I’ll go back to WebStorm/IntelliJ for work.

The longer version is that I found Cursor:

As an added bonus, it just made some incorrect extrapolations (someone spotted it in code review), but this is on me - I should have checked the code better.

For intrusiveness - it often interrupts my flow - I’m typing code, and suddenly I realize there’s a new block that I didn’t and didn’t want to put in there. This happened often to me, I don’t know if I’m just using the wrong key bindings or is it a real fault.

I had a git integration issue twice. I wanted to pull remote changes from origin into my branch, but I ended up losing my last commit and actually having some weird state where 700+ files were changed (it was a merge from origin/develop, but to some weird state, not my target branch). I thought I did something wrong, but this happened to me twice.

The biggest tradeoff is that it is really good at guessing where I want the next code change - I change a method signature, and it automatically offers to me to go to places where it’s called and offers to update the call arguments. Also, it helped with boilerplate a lot. I write a function, it just helps me import/export/move it around with a few quick clicks.

But when I asked it to help me refactor some code, it got inference wrong, (e.g. I had a simple config interface with { prod: boolean, live: boolean }. It was very convincing in the fact that it was fully interchangeable and the same in the few places where it was used, and I let it remove one of these for me. But on code review, I learned it’s not true. It was not often, but it was often enough to be more of an annoyance then assistance.

Anyway, a mix of factors is there - I prefer JetBrains IDEs over VSCode, I prefer to ask for help imperatively, not having it barge in and pop up intrusively over my work and my thoughts.

It’s not you, Cursor, it’s me, but it’s simply not working between us.