People debate AI while I debate IDE
The lesson of True Strength means rejecting strength that is not your own.
Meditate on this.
- Kreia
People debate whether AI is good or bad for programming while I'm still refusing to use even basic IDE features like autocompletion or goto definition. I'm not forcing this on myself, it happens naturally. I have an observation on why and how this might be.
LLM, the toy
But first let me share list of reasons why I think Large Language Models are no good for professional programming work:
- LLM recreates what's already been created, I want to make new things.
- LLM produce average results, we should aim higher.
- LLM is not a precision tool, engineering requires precision.
- AI chats rapidly increase entropy of code base.
- AI reduce effort of certain tasks stealing your growth.
- Legality of LLM input/output is questionable and sketchy.
- If AI makes your code better then you are still an amateur.
- Danger of leaking data when pasting stuff to online AI chat prompt.
In short, AI can't be even consider in serious software product development because of legal issue, security concerns and quality reasons. Seems to me that most programmers have no ambition.
Bedtime story
I recently saw someone posting a document, with data analyse of some sort, on company chat saying: "Please review it, BTW I made it with AI". To that person and many others this was a something to be proud of. But I saw it as an insult because he put no effort into his work. Asking other people for review was disrespectful to say the least. He should have be meet with response: "Here is a review of your document written by AI". He is now a slow and inefficient messenger between AI prompts. Congratulations.
Same when someone copy code from internet and make me review it in Pull Request. It's just that no one brags about being incompetent in that scenario. But when it comes to using AI people thinks they are clever. Where is our pride?
Tools, not toys
OFC tools are great, but when they are extension of your skill, not a replacement of it. When a project is created with mighty tool then all the praise goes to the tool and user of it is forgotten. When a project is created by a great man, then tools are irrelevant. You can be either the user, or creator. The choice is yours. If you can't write code without internet connection then what kind of programmer you are?
Mastery
I see this eastern philosophy popping out in many forms and places. It talks about achieving mastery saying that the better you are the less important is the tool that made you powerful in the first place. Stories about archer without a bow, swordsman that never drew his sword, all a big contrast to west culture where protagonist will get almost magical tool or gift to achieve his goal.
In the first stage, man and sword become one and each other.
Here, even a blade of grass can be used as a lethal weapon.
In the next stage, the sword resides not in the hand but in the heart.
Even without a weapon, the warrior can slay his enemy from 100 paces.
But the ultimate ideal is when the sword disappears altogether.
The warrior embraces all around him.
The desire to kill no longer exists, only peace remains.
- From movie "Hero"
I don't think of this as philosophy created by man, but rather an observation of natural phenomenal. When one develops himself this will occur naturally. I think that this is why with time I gradually simplified my workflow removing tools and reducing configurations. Because I focus my efforts on leaning programming and not on producing company product. OFC in day job I do contribute to company goal all the time, but this is only a side effect of my training.
But now I'm afraid it is time for me to go kids. Someone is trying to increase software quality just by adding more tests.
EOF