From Cursor, GitHub Copilot, to Windsurf: these are still not built for the Rest of Us.
A comparison of the pros and cons of these three products
Unfortunately, that currently there still isn't a single AI coding product that allows someone with no technical background to build even a slightly complex product from scratch.
I've been using @cursor_ai for about three months; initially, I only had very limited programming skills, but I'm nearly at the point of becoming a full-stack engineer capable of coding, testing, and debugging. From this perspective, it's less an AI programming product and more an AI-assisted tool for learning programming🤣.
Cursor
The only praiseworthy feature of Cursor is that it can directly add terminal logs to the chat and lets you easily copy and paste screenshots. With @windsurf_ai and @github Copilot, you have to copy logs manually, and there’s no straightforward way to send screenshots.
However, what's most frustrating is that over the three months I’ve used Cursor, it has never been able to properly read project documentation. In fact, in its most recent versions, it often can’t even read files. For instance, if I send it five files, it might see only one. Screenshots I send either don’t show up correctly or get misread frequently.
Windsurf
What I find most satisfying about @windsurf_ai is that it continually and automatically reads the project directory and related files while working on a problem. You don’t have to feed it each file yourself. Also, in your messages, you can directly “@” a specific filename to focus its attention on that file.
In contrast, with Cursor and GitHub Copilot, you have to dump all the files at once, and then in your message, re-copy the exact filenames and paths to specify which file you’re talking about.
The downside of @windsurf_ai is that it doesn't let you directly apply updated code; you have to compare its updated code with your original code yourself and then manually copy and paste whatever changes are needed.
While @cursor_ai does have a feature that directly applies changes, it frequently modifies other, previously correct parts of the code. Because of that, even though this feature exists, you basically have to review and manually copy over the updates anyway to prevent new errors from being introduced.
Github Copilot
The most commendable aspect of @github Copilot is that its “apply” feature seems far more accurate than @cursor_ai 's. In the dozen or so hours I’ve used it, it has always updated exactly what needed to be changed without any errors.
Also, like Windsurf, Github Copilot can read your project documentation and directory, though it won't actively seek out and review additional files on its own the way Windsurf does when solving problems.
In all three products I’ve been using Claude 3.5 Sonnet. So as I mentioned before, compared to pure llm products, the core for “AI to C” products is whether product designers have an in-depth understanding of the workflows involved in the use case. Moreover, the product should be designed from a non-technical user's perspective so that the AI’s capabilities can be integrated seamlessly into the product workflow, down to the last detail.
Nevertheless, one thing is very clear:
In one to three years, we will no longer need to hire programmers. The profession of “programmer” will vanish, replaced by “AI Product Engineers” who understand product design and know how to leverage AI.
How to Solve Long-Term Memory Challenges in AI-Assisted Programming
One of the biggest obstacles for non-technical users working with AI programming is that it struggles to complete even slightly more complex projects because it often forgets which files were created, what code was written, and what technical architecture was established.
In slightly more complex projects, one approach is to have the user proactively initiate the creation of a RAG (a record of important project information and code) during the process, so the AI doesn’t keep forgetting what was previously done. Even if this were offered as a paid feature by itself, it could be worth it.
More importantly, though, I think it’s necessary to establish a Collaborative Memo System between the user and the AI—similar to how teams document or comment on code when dealing with more complex business logic or details that require extra attention.
Now whenever I complete a complex task, I have the AI write up a memo. Then, if a similar problem arises later, I instruct the AI to review this memo before executing specific commands, which drastically reduces the error rate.
These are the kinds of user experience issues that require rethinking the workflow in light of the specific use case in order to be resolved like I mentioned before.