AI coding tools. What I prefer and why

So this little write up is going to be about well… what the title said. “AI coding tools. What I prefer and why” so lets move on. I initially wanted to create a whole long video of me using the various coding tools to build an end to end app or platform, but I though better of it as I assume even the most nerd worthy of you will not sit through an hour long video watching some else code. Besides where are already a lot of these videos out there. I thought I would rather make this one about how I use the tools (and why) and cover the currant state of AI coding tools available out there at the moment.  Yes, this might be outdated in a month, but if one waits for the “right time” nothing will ever be written. So lest jump in shall we. 

 

So what is an AI coding assistant?

Well, in short, it helps you go from writing horrible spaghetti code to writing horrible spaghetti code with well-worded comments. I wish that was a joke, but no. AI coding assistance helps you create code by giving it a specific task, using AI to generate the code.

The real power of an AI coding assistant lies in its ability to take away the mundane parts of coding, allowing you to focus on the more creative or complex aspects of development. Whether you’re stuck trying to remember the exact syntax of a function or just need some boilerplate code to get started, AI tools can step in to fill those gaps. They provide code completions, error corrections, and even suggestions for better practices. It’s like having an over-caffeinated junior developer by your side, eager to help—but sometimes a little too eager, if you know what I mean.

Now, while AI coding assistants can make you faster, they also have a knack for making very confident mistakes. Picture that one friend who always has an answer, even when it’s completely wrong—that’s your AI buddy. They might misunderstand the context, write code that works but is about as elegant as a hippo in a tutu, or suggest something that makes you wonder if they’ve secretly been sabotaging you. This means you still need to apply your judgment and experience to refine what they produce. They’re fantastic at creating drafts and can give you a good start or a different perspective on a problem, but they’re no replacement for the human touch—logic, intuition, and the occasional facepalm included. In the end, AI coding assistants are about collaboration: they do the heavy lifting, but you’re still the one making the big calls and untangling the mess when things go sideways.

It’s also worth noting that these tools can be pretty good teachers, albeit ones that sometimes get distracted. If you’re unfamiliar with certain libraries, algorithms, or methods, you can ask the AI for help, and it’ll happily show you how things are done—sometimes correctly, even! This ability to generate examples makes AI a great educational partner, especially for developers still growing their skill set like me. Just remember, it’s like learning from a friend who cheats on the test sometimes. You have to double-check everything. So while the AI can be a huge help, it doesn’t always produce perfect solutions, and occasionally, it’ll give you code that makes you think, “Wait, seriously? THAT IS NOT WHAT I ASKED FOR” and “WHY DID YOU DO THAT!!!” That’s where your expertise comes into play, to review, adjust, and polish until it’s fit for production. And hey, at least now your horrible spaghetti code will have some charming, well-written comments to go along with it.

 

So this is the what, now how about the why?

AI coding assistants can be a great asset when debugging your code. They help identify potential issues, suggest solutions, or even point out where things might be going wrong. It’s like having an extra set of eyes that don’t get tired, though occasionally they’ll make you question their sanity with some of the suggestions. They also come in handy when you need to make quick code changes, whether it’s generating snippets, helping with syntax, or adjusting a piece of code faster than you could do on your own. This can be incredibly useful for rapid prototyping or small tweaks that need to be done on the fly.

Different types of AI coding assistance tools can further expand these benefits. Autocompletion tools, for example, help by providing suggestions as you type, saving you the time and effort of writing out common functions and ensuring accuracy. Tools focused on code review assistance can flag potential problems or suggest improvements, acting as an extra reviewer to keep your code quality in check. Refactoring assistance tools, on the other hand, help to reorganize your code for better readability and maintainability, which is a game-changer when dealing with legacy code or optimizing performance. Then there are whole codebase analysis tools. These are the heavy lifters that can understand multiple files or even the entire project, making it easier to manage complex systems by offering insights across interconnected components. They can be costly though.

Another underrated benefit is how they can act as a virtual rubber duck. Sometimes just articulating your problem clearly can lead to a solution, and AI tools are perfect for this kind of back-and-forth. They let you describe your issue, and they often end up suggesting a direction or hinting at something you hadn’t considered before.

Of course, the most obvious benefit of using AI coding assistants is saving time. From generating boilerplate code to providing syntax examples, these tools help you breeze through the repetitive, time-consuming aspects of coding, giving you more room to focus on the creative, challenging parts of development. Instead of spending your energy on the mundane, you can put your attention where it really counts, making the overall coding experience much more enjoyable.

 

Types of coding tools

Now, let’s take a look at some of the current types of AI coding tools out there. Again, these might be out of date in a couple of months, but you have to start somewhere. It’s worth mentioning that many developers now use tools like Claude, GPT, and Gemini directly in their web browsers for coding assistance. These browser-based models are great for quick tasks, like generating code snippets or debugging simple issues, without needing to switch to a dedicated IDE. This accessibility makes them perfect for rapid iterations or when you’re just exploring potential solutions. The downside though is you be can become a glorified copy pasta engineer. 

 

Some online code editors:

 

GPT Canvas:

Speaking of in browser coders. It’s the new kid on the block, only released recently as of the time of the publication of this blog. So it still needs to be put through its paces, but so far it shows a lot of potential. It seems to handle long code blocks well and defiantly had a look at Anthropic’s way of doing things as, if you are lucky the code will be shown in a separate block and window that you can then edit more like editing a work document than code. This shows a lot of potential, but I would still prefer something that can have access to my whole codebase at the same time. Also GPT is, according to me still one below Claude so I mostly use this for validating code than actually writing anything substantial with it. But the feature where you can edit inline and also jump back to previous version is useful. Especially if GPT gives you garbage and you have to go back and try again. 

 

 

\*\*Claude DEV\*\*: Claude, developed by Anthropic, uses proprietary LLMs that are tailored for safer and more aligned AI outputs. It can assist in multiple development contexts, particularly for natural language processing tasks and generating code, making it a solid choice for those who prioritize safety and alignment.

 

\*\*Pythagora\*\*: Pythagora allows developers to build apps by describing what they want in natural language. It uses both GPT-4 and Claude as its backend models, but emphasizes human interaction for managing the development process rather than being fully autonomous. This makes it ideal for projects where guidance and human oversight are key.

 

\*\*Cursor\*\*: Cursor is a code editor similar to VS Code but enhanced with AI features for autocompletion and interactive coding. It integrates with Claude models and GPT-4 to assist developers with debugging, code writing, and navigation across codebases, making the whole process more intuitive and efficient.

 

\*\*Codeium\*\*: Codeium is an AI-powered code completion tool that offers autocomplete suggestions and context-aware code generation. It supports multiple languages and relies on custom LLMs optimized specifically for code generation, which sets it apart from tools that primarily use OpenAI models.

 

\*\*Zed AI\*\*: Zed is a high-performance code editor with integrated AI features that provide smarter code suggestions. While it doesn’t use any specific mainstream LLM like GPT-4 or Claude, it aims to enhance productivity through its unique implementation of AI.

 

\*\*Aider\*\*: Aider utilizes GPT-4 models to assist in code refactoring, code reviews, and debugging. It’s especially focused on making complex code maintenance tasks easier by leveraging LLMs to understand and suggest changes across codebases, perfect for developers maintaining legacy systems or cleaning up messy projects.

 

\*\*Continue.dev\*\*: This tool, powered by GPT-4 and integrated with VS Code, focuses on interactive coding and generating real-time suggestions. It’s aimed at streamlining the development process, offering on-the-fly suggestions to keep you coding smoothly without much interruption.

 

\*\*Tabnine\*\*: I played with this one when AI code devs was still starting out and I think it lead to the development of a lot of the ones we see today. Originally relying on GPT-based models, Tabnine has since shifted to custom-built LLMs optimized for code generation. These models are specifically tuned for developer use cases, providing context-aware completions and code suggestions that integrate seamlessly into your workflow.

 

\*\*Replit\*\*: Replit uses OpenAI’s GPT models for code generation, with additional features like real-time collaboration, autocompletion, and debugging. It’s designed for both solo developers and collaborative projects, making it versatile and easy to use.

 

\*\*GitHub Copilot\*\*: Developed in collaboration between GitHub, Microsoft, and OpenAI, GitHub Copilot uses OpenAI’s Codex models based on GPT, likely a custom fine-tuned version of it. It’s not the most powerful tool out there, but its major use seems to come from being integrated into Windows and Git, which is why people tend to use it. Personally, I do not prefer it, but that is just my opinion. 

 

\*\*Amazon CodeWhisperer\*\*: I added this more for completion’s sake than anything else. I have nothing against it; it just seems that AWS wanted to be part of the AI coding revolution, and this seems to be their hat in the ring of coding assistants. As far as I know it’s only available if you have an AWS account, even if you want to use it on your local computer. 

These should not be confused with multi-agent workflow tools like n8n and Flowise, which are designed for automating workflows by connecting different applications and services. While AI coding assistants help generate or refine code, workflow tools are more about orchestrating tasks and data flows across different systems to create efficient, automated pipelines.\
\
So what is the tools you prefer to use? Well I’m glad you asked. Well before I answer that I would just want to mention the types of LLM I prefer to use for coding. First being Claude 3.5 Opus, followed by GPT4-o and 01-preview. For me Claude seems to be better at coding simple to medium tasks while GPT 01-Preview seems to better at understanding the bigger picture. Sometimes I would use 01-preview to layout the files and structure of the code and the use Claude to fix all the bugs. 

Right as for the AI coding tools. My go to at this point in time is Claude-Dev to build the layout of the projects structure along with some basic coding. I would then use Cursor to further define the code and fix any runtime issues introduced by Claude Dev. I also use git to keep track of all the changes should I wish to revert or go in another direction with the project without deleting existing code. For interest take I prefer SourceTree (if you can get it working with your repo) else GitHub desktop due to it’s good integration with GitHub.