If I had to describe the reasons succinctly I would say:
Lack of understanding and risk.
The first should be obvious. LLMs provide an appearance of understanding, when, in reality, they have no clue. I don’t think this is a matter of context window. This exists at a more fundamental level. A dog, with far less reasoning capability than human, understands things in a way LLMs cannot even approximate. When it comes to software development, this is a real problem because LLM's don't really understand the codebase.
Risk. Because of a lack of understanding, I watched as it entered into some pretty crazy "loops of confusion", as I’ve come to call them, where you are going in circles for some of the dumbest things. It will rename variables, restructure code and add a bunch of files…just because.
In general, code and application structure are pretty bad. As an experienced Django developer, I almost would not expect to see some of what Cursor has produced from someone who is starting a Django project after having gone through one or two good courses on the framework.
Code pollution is remarkable. File pollution as well. As it rewrites code to deal with issues you might highlight, it leaves behind all kinds of dead code.
It will happily replicate code across Django apps, violating the most fundamental DRY rules. It will violate separation of concerns. Etc. And then, when you try to run cleanup passes, it breaks existing, fully-tested functionality with some of the dumbest mistakes. It will do things like remove reams of valuable comments, even when you told it in the rules to not alter comments unless code was removed or material changes in functionality were implemented.
It does not understand. And to write good, reliable code you must understand.
And then, access to git cannot be turned off. I can accept some of the above so long as I know that I can create lots of protective commits and branches to safeguard what works. Not being able to hard turn-off access to git is, in my opinion, a solid deal-breaker right now. Sure, there are those who are OK with this. Understood. Not me. Remove it from the IDE? Well, what’s the point of an IDE if you have to lobotomize it. I generally run git from the console, but I do like IDE integration for parts of the workflow.
This doesn’t mean I am done with Cursor. I just need to get done with these projects, and it got to a point where I spent three days chasing my tail to deal with things Cursor was breaking in this "loop of confusion". That’s when I decided to move on. I’ll come back and check it in a few months. Not cancelling my paid subscription. I think it could be a good tool…with time.
To be fair, I have also been using ChatGPT to experiment with AI coding. In this case, there's not IDE integration at all. Just working with ChatGPT in the browser and then grabbing what makes sense. It, too, gets trapped into truly laughable circles of confusion. It, too, changes variable names at random, completely destroys functionality (like removing half the functions in a JS script), etc. The only difference is that it does not have direct access to my code --and no access to git. You often have to give it the same task multiple times before it will produce something acceptable. And, in some cases, you have to delete the conversation, give it the files again, point out that this is the new starting point and that no prior work should be considered. That, along with the same instructions you provided before can often deliver better results. Yet, it always breaks into some level of confusion due to a real lack of understanding.
Good news is: This is the worst this technology will ever be. I am still very much positive about all of it.
techpineapple•1h ago
Ye of little imagination.
https://en.wikipedia.org/wiki/Enshittification