Exploring AI Coding Options
While I've been in Product Management for nearly 15 years now, it doesn't mean I've left my Computer Science and Software Development roots behind. I've always had a few projects, whether it was building my own blog from scratch, exploring different languages and frameworks like Python and Django, or experimenting with various servers and tools in my homelab.
And as AI-coding tools are becoming more refined, I thought this would be a good time to start comparing an contrasting some of the options. For this initial dive, I explored three different combinations of tools and models.
1) Cursor application/IDE and their Composer 2.5 model
2) VSCodium with the Cline extension using a locally hosted Qwen3 Coder model hosted in LM Studio
3) VSCodium with the Cline extension using the OpenAI gpt-5.5 model
Now, to be fair, this isn't a 1:1 test, as I was looking to both learn and be productive with my time and my projects while seeing how different methods worked, rather than locking myself into one. Granted, there's a lot more out there, but this was a good place to start.
A Cursor Approach
I started with the Cursor setup, and decided that, rather than meddle with what I had built so far myself, I would try and recreate it through Cursor. It was already a python application using Django and a database, so it seemed like a reasonable task. I started by planning out my feature set, which I listed as about two pages of features and requirements for them, gave it a UI template to follow.
First, based on the language and frameworks I requested, it was able to set up my dev environment quickly and cleanly. And since I was starting this version of the project on a laptop that hadn't been set up for development, this was a nice win.
As for the code, while the initial results were a bit raw, with some misinterpretations of what I was asking for and oversimplified implementations, they were a solid starting point. From there, I was able to refine my requests and specifications, and within a few hours I was about where I had left off coding from the ground up. There was definitely a bit of a curve in learning how to interact with the AI model to get what I wanted, but that's also similar to working with other people.
I'll also add that I found adding a cursorrules file to be important as well. What I found was that it kept the AI model more focused, since you're basically limiting the realm of options that may be explored without those rules in place. In this case, I was able to specify that I wanted it to focus it's expertise on python, Django and MySQL, and to follow established best practices as much as possible.
Overall, I was impressed with how quickly it was able to come together, especially for a project I was just doing for fun. While I'd want to set up more of a test framework and work on optimizing code if I was going to move something to production, this feels like it was a good place to start.
A Local Approach with Qwen and Cline
Since I was in an experimenting mood, and curious how some of the local models might stand up and what computing power they'd require, I looked into a few different coding-oriented models, and settled on starting with Qwen3 hosted in LM Studio.
Withe the hosted model, I decided to set things up on my desktop, a machine I built in 2020, powered by a AMD Ryzen 9 3900X, Radeon RX 5700 XT 8GB and 32 GB of RAM. Not top of the line anymore, but still a decent home box. While I could have hosted the model on one machine and coded on another, I figured I'd keep things simple to start.
LM Studio was nice as a framework for loading different models, making them easy to get working, and even providing tools that if I wanted to access it from other machines on my network, I could do so. The longest part of setting up the Qwen3 model on it was downloading the model.
Using the Qwen3 model, I decided to leverage the Cline plugin for the VSCodium (a VS Code fork). I started out by pulling my repository I created with cursor (after committing it to Git) and having the model analyze what it did and what resources would need to be set up locally to get it running in a dev environment on this computer. While it did run a bit slower, which I expected, it did identify everything I expected (with the option that I could run the application with SQLite instead of MySQL), and it seemed like a good start.
So I then asked it to help me set up the dev environment for me, which started off well, with it getting python, Django, and a virtual environment set up, and then helping me install MySQL and get it configured. I then moved on to getting the application running and I noticed a ton of files being added to the code base. And when I say "a lot", there were over 1400 new files added to a repository with about 170 files to start.
I paused and took a look at what was going on, and noticed that in addition to adding about every language pack support it could find, it also made a bunch of, at best, unexpected and, at worst, questionable formatting and functional changes to the code. Admittedly, I was disappointed at this point as the model appeared to not be reasoning with the code base, but throwing different things at it until it worked. It felt more like a new junior developer applying whatever they could find on Stack Overflow hoping it would work and seemed to be making more of a mess than helping.
Maybe I gave up too quick, but this struggle with a fairly menial task broke my trust in it, so I moved on.
Back to the Cloud with OpenAI and Cline
After removing the local repository with a lot of changes I didn't want, I came back to Cline and VSCodium, and changed my model to the OpenAI gpt-5.5 model. I then went through about the same steps as I had with my local Qwen3 model, but this time I only got one code change suggestion, and a few installation scripts that were created to smooth future setups. Overall, a much better result.
So, I decided to do more of an apples-to-apples comparison. I had another project I wanted to get started on, using a very similar framework. Since I didn't already have something up and running, I only had about one page of features and requirements prepared to start and was going to build from there. This approach was much more in line with my initial experience in Cursor, except it detected what had already been set up (python and MySQL, in particular), and then got the rest in place without much fanfare, having both environments working side-by side serving from different ports.
Any Takeaways?
Overall, I came away fairly impressed with both the Cursor and OpenAI models for coding with my projects. Neither had a very high level of complexity, and were with well-established and well-documented tools and frameworks, so I'm sure that helps. As a former developer, it felt primarily like the level of abstraction had just been pushed up a level (as it once had from binary to assembly, assembly to early programming languages, and again to object-oriented programming languages. Each step has been towards making interactions with computers less complex and more powerful, and this step really is no different.
When it comes to the tools, while they are both equally powerful and capable, from my experience, the Cursor approach felt more user-friendly and geared more towards vibe-coding. Even the file structure is buried a layer in their IDE view (which was my preferred view in the tool), and most of the interactions are summarized in more of a discussion format than specifics of what changes were made.
However, the Cline approach in VSCodium felt more like an AI assistant for coding. While I gave it many of the same kinds of plain-English commands, the summaries were more along the lines of "Added query from database table in `pages/views.py'" and details of the test results. This allows for more review and oversight of the changes in the code that I think most developers would prefer.
From here, I'm going to continue with both and probably explore some more options as well as I work through my projects. I'm eager to see how the local models evolve, though they weren't a fit for me yet, and how these tools can help me continue to bring my projects to life more effectively.
Comments ()