← Back to context

Comment by stickfigure

1 month ago

This really puzzles me. I tried Cursor and was completely underwhelmed. The answers it gave (about a 1.5M loc messy Spring codebase) were surface-level and unhelpful to anyone but a Java novice. I get vastly better work out of my intern.

To add insult to injury, the IntelliJ plugin threw spurious errors. I ended up uninstalling it and marking my calendar to try again in 6 months.

Yet some people say Cursor is great. Is it something about my project? I can't imagine how it deals with a codebase that is many millions of tokens. Or is it something about me? I'm asking hard questions because I don't need to ask the easy ones.

What are people who think Cursor is great doing differently?

My tinfoil hat theory is that Cursor deploys a lot of “guerilla marketing” with influencers on Twitter/LinkedIn etc. When I tried it, the product was not good (maybe on par with Copilot) but you have people on social media swearing by it. Maybe it just works well for specific types of web development, but I came away thoroughly unimpressed and suspicious that some of the “word of mouth” stuff on them is actually funded by them.

  • > Maybe it just works well for specific types of web development, but I came away thoroughly unimpressed and suspicious that some of the “word of mouth” stuff on them is actually funded by them.

    You can pretty easily disprove this theory by noting the number of extremely well-known, veteran software developers who claim that Cursor (or other kinds of LLM-based coding assistants) are working for them.

    Very doubtful any one of them can be bought off, but certainly not all of them.

  • I tell everyone cursor is awesome because for my use cases cursor is awesome.

    I've never thrown 1.5M LoC at it, but for smaller code bases (10k LoC) it is amazing at giving summaries and finding where in the code something is being done.

This is a great question and easy to answer with the context you provided.

I don't think your poor experience is because of you, it's because of your codebase. Cursor works worse (in my experience) on larger codebases and seems particularly good at JS (e.g. React, node, etc.).

Cursor excels at things like small NextJS apps. It will easily work across multiple files and complete tasks that would take me ~30 minutes in 30 seconds.

Trying again in 6 months is a good move. As models get larger context windows and Cursor improves (e.g. better RAG) you should have a better experience.

  • Cursor's problem isn't bigger context, it's better context.

    I've been using it recently with @nanostores/react and @nanostores/router.

    It constantly wants to use router methods from react-router and not nanostores so I am constantly correcting it.

    This is despite using the rules for AI config (https://docs.cursor.com/context/rules-for-ai). It continually makes the same mistakes and requires the same correction likely because of the dominance of react-router in the model's training. That tells me that the prompt it's using isn't smart enough to know "use @nanostores/router because I didn't find react-router".

    I think for Cursor to really nail it, the base prompt needs to have more context that it derived from the codebase. It should know that because I'm referencing @nanostores/router, to include an instruction to always use @nanostores/router.

    • I don't think you can fix this with a little bit of prompting with current models, since they seem clearly heavily biased towards react-router (a particular version even, iirc from a year ago).

      It might help if you included API reference/docs for @nanostores/router in the context, but I'm not sure even that would fix it completely.