Cursor IDE: Not Quite Ready for Prime Time

bosleybosley
3 min read

As a developer with seven years of experience in C++ for embedded systems and real-time encrypted communications, I decided to explore Cursor IDE to see how well AI handles code generation. There's been a lot of buzz about AI replacing developers, and I wanted to see where the technology actually stands.

The Good:

  1. Effective Prompting: I discovered that approaching the AI as if it were human yielded better results. By asking Claude (the AI) which languages it knew best and structuring my requests like emails to a developer, I got more coherent and useful responses.

  2. Structured Development: Breaking down tasks into smaller components and providing clear guidelines led to better code generation. For example, when I requested a Flask app with a standard landing page, the results were satisfactory.

  3. Continuous Review Cycle: Having the AI constantly review the code against the original specifications helped maintain focus and consistency. This process kept me on track and ensured the implementation matched the initial requirements.

The Bad:

  1. Cursor IDE Instability: The editor frequently crashed or became unresponsive, requiring multiple reinstalls. While I understand it's pre-1.0 software (around version 0.45), the frequency of these issues was frustrating.

  2. Limited Keyboard Control: The lack of comprehensive keyboard shortcuts was a significant drawback for me as a power user.

  3. Context Limitations: As projects grew more complex, the AI struggled to maintain context. I had to break the code into multiple files (e.g., session, users, web_handlers, and accounts) to keep the context manageable on what I would consider to be a very small program.

  4. Hallucinations: In some cases, the AI would generate code that wasn't applicable to the language or framework being used. For instance, it tried to mock functions in Go by reassigning static functions to closures. You can’t do that in Go.

Key Takeaways:

  1. Domain Expertise is Crucial: As tasks become more complex, you need deep understanding of the context to effectively guide and correct the AI. This tool isn't a replacement for skilled developers but rather an assistant for those who already know what they're doing.

  2. AI Excels at Specific Tasks: While not ready for end-to-end development, AI tools like Cursor show promise in areas such as:

    • Code reviews (As-in a running Continuous-Review-System)

    • Ensuring adherence to specifications

    • Generating tests

    • Assisting with poorly documented libraries

  3. Continuous Improvement Needed: Tools like Cursor IDE need significant refinement before they're ready for professional use. Better stability, improved context management, and more accurate language-specific code generation are essential.

  4. Community Management: Cursor could do a better job supporting its user base. As a paid product ($20/month), having dedicated community representatives to address user concerns would go a long way.

Future Possibilities: I'm now considering developing a command-line application that leverages AI for tasks like code reviews, documentation assistance, and analyzing complex systems. The end goal would be to have an AI assistant that can help track user actions across multiple systems with various logging formats, and to give me a tool that can do a “Continuous Review.”

Conclusion: While AI coding assistants like Cursor IDE show promise, they're not quite ready to replace skilled developers. They can be valuable tools when used correctly, but they require significant domain knowledge to be truly effective. As these tools evolve, they may become indispensable for certain aspects of development, but for now, they're best viewed as assistants rather than replacements for human developers.

0
Subscribe to my newsletter

Read articles from bosley directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

bosley
bosley

I am a C++ developer by day, working on an old C/C++ trying to get it up to speed for my current employer. We work in real-time push-to-talk encrypted systems! In my spare time (every second I can get) I like writing Go. Biggest passion is compilers, and representing new constructs of computation (the act of executing rules given some assumptions and restrictions to achieve calculation on physical media.) Really into reading about "alternative" types of computers (neuromorphic, water-based, etc) I would LOVE a job as a compiler engineer, but alas, I have no PhD and I have not wanted to attempt tackling the libraries that exist (gcc, llvm, etc.) I'd love to make a new compiler backend though... if only I had the time and it paid-out.