The Harms of AI-Assisted Programming
Translated from the original Arabic version using Gemini 2.5 Flash. Verified by author.
Artificial Intelligence has been introduced into many fields, and for me, one of the most important is programming. It came as an assistant for writing code, and unlike auto-completion, it doesn’t just complete code based on what you’ve previously written or complete the name of a function you’ve created. Instead, it writes new code and takes on the entire logic.
In this post, I will present my point of view regarding the use of artificial intelligence during programming.
Positives
Among the most important positives of using AI during programming are writing code faster and writing new code for the user without delving into its details (such as handling vulnerabilities when dealing with user inputs).
Negatives
- Writing code without deep thought and blindly trusting AI’s outputs.
- Difficulty in thinking, analyzing data, and writing logic after extended reliance on AI outputs.
- Loss of logical thinking and research skills for problem-solving.
My Point of View
I believe that one should not rely on artificial intelligence during programming. The benefits of its use for an individual and their programming proficiency are minimal. One of the most important aspects of programming and learning it is practice. Your use of AI does not give you the benefit of good practice, as you will not research, analyze, or think, but rather wait for AI to write the code for you and do the thinking on your behalf.
If you have been using AI as an assistant during programming for at least two months, try writing code without it. It will be difficult, and you might barely be able to think. The reason for this is that your brain has become accustomed to the readily provided information from AI and is unwilling to research, think, and analyze to write the logic.
Editing Speed
As mentioned, one of the main reasons for using AI during programming is faster writing. AI helps you write repetitive tasks that require only minor changes. There is another solution instead of using it: using an editor that enables you to write quickly. An editor that has features such as multiple selection (i.e., selecting the same text across the entire file or in a specific area) and multi-cursor (a feature that allows you to place the typing cursor in more than one place simultaneously to type or delete).
My Bad Experience with VSCode
I used AI during my time with the VSCode editor, and one of the main reasons for this was the editor’s slowness itself and the slow editing experience. You had to move the mouse to the place you wanted to type, and also move it to the file you wanted to edit and click on it.
After realizing the slowness of the development process on this editor, I thought about switching to another editor that supports full keyboard control. Editors like Vim, Neovim, and Emacs appeared to me, but all of them had some complexity, and not all the features I wanted were available in them, such as multi-cursor.
Then Helix appeared, which is a terminal-based code editor written in Rust, inspired by Kakoune. It supports multi-cursor (the ability to place the typing cursor in more than one place simultaneously to type and delete) and supports LSP (Language Server Protocol), which communicates with a program that corrects code and adds features such as jumping to a function definition and displaying its documentation. It also supports searching across all project files, and it supports displaying all project symbols (such as functions, classes, and constants). It has a feature for selecting text between various elements like texts, functions, tests, and classes. I found everything I needed in it and switched to it.
The increase in productivity did not appear immediately when I switched to Helix, due to the new control method for me, which is keyboard control. I had to memorize shortcuts and learn how to control it quickly. After three months of using Helix, I noticed the increased productivity, and I started writing code faster than during my time using the VSCode editor.
Conclusion
You must analyze your situation, understand the pros and cons, identify the obstacles preventing you from reaching your goals, and find solutions for them.