現在のブログ
ゲーム開発ブログ (2025年~) Gamedev Blog (2025~)
レガシーブログ
テクノロジーブログ (2018~2024年) リリースノート (2023~2025年) MeatBSD (2024年)
【Research】AI Slows Down Programmers
A research paper (English only) has been published, showing that developers using AI are 19% slower than those who don't.
For most trend-followers in today's tech industry, this is shocking news.
However, for actual developers like us, this was obvious from the start.
Let me explain why.

The Purpose of LLMs
LLMs, or Large Language Models, are designed to process and generate human-like text, excelling in tasks like translation, summarization, and conversation.
They weren't originally built for programming, but their code generation capabilities have been widely adopted.
However, they have limitations.
It turns out they can be used for coding too.
Anyone who understands programming can immediately spot flaws in generated code, but honestly, most people today, including many who call themselves "developers", don't understand programming.
This isn't entirely AI's fault—it stems from the fundamental complexity we've been piling up since the 1990s, but that's a topic for my next blog, which will probably upset a lot of people.
That said, if you're the type to get easily offended, you probably aren't reading this blog anyway.
My Experience as a Programmer
AI isn't inherently bad for programming.
It's helpful for learning new programming languages clearly, often better than online tutorials, and you can fully understand concepts by asking for feedback or further explanations.
For example, I used AI to learn Go programming.
It's similar to C, C++, and PHP, but the code syntax is quite different.
For instance, instead of i := 0 or var i int, it's int i = 0;.
This style, where the type comes after the value, feels familiar to Zig or Rust developers for some reason.
The key point is that you eventually move away from AI assistance and use your new skills to build real software.
However, what's common is people relying on AI for everything, outsourcing their entire thought process.
On the flip side, these developers often land high-paying jobs because HR departments know as little about programming as these "vibe coders" do!
I've been saying for years that AI won't replace humans and that AI is not the future but a passing hype.
Even now, most people think I'm crazy.
Well, sorry for not blindly repeating everything like a brain-dead TikTok idiot...
Key Points of the Research
The research doesn't definitively conclude the cause of the productivity drop, but it confirms the drop exists.
The time spent crafting prompts, waiting for generation, and reviewing and fixing AI-generated code outweighs the time saved by automation.
In mature open-source repositories with high-quality standards, AI suggestions require significant manual oversight and refinement, reducing efficiency.
If you're unfamiliar with specific tools (e.g., Cursor), you'll be inefficient even with LLM experience.
Real-world tasks in large repositories require deep context, which AI struggles to handle effectively, increasing debugging time.
Frequent rejections or fixes due to inaccuracies in AI-generated code add to the overall workload.
"I only use AI to reduce boilerplate code"
My solution to that? Copy-paste.
I get that you don't want to do this every time:
#pragma once
class MyClass {
public:
MyClass();
~MyClass();
private:
};
But this can easily be automated even in editors like Neovim.
For example:
vim.keymap.set("n", "ch", function()
local className = vim.fn.input("クラス名:")
local namespace = vim.fn.input("ネームスペース(任意):")
local lines = { "#pragma once", "" }
if namespace ~= "" then
table.insert(lines, "namespace " .. namespace .. " {")
table.insert(lines, " class " .. className .. " {")
table.insert(lines, " public:")
table.insert(lines, " " .. className .. "();")
table.insert(lines, " ~" .. className .. "();")
table.insert(lines, "")
table.insert(lines, " private:")
table.insert(lines, " };")
table.insert(lines, "} // namespace " .. namespace)
else
table.insert(lines, "class " .. className .. " {")
table.insert(lines, " public:")
table.insert(lines, " " .. className .. "();")
table.insert(lines, " ~" .. className .. "();")
table.insert(lines, "")
table.insert(lines, " private:")
table.insert(lines, "};")
end
local curline = vim.api.nvim_win_get_cursor(0)[1]
vim.api.nvim_buf_set_lines(0, curline, curline, false, lines)
vim.cmd("normal! ggdd")
end, { noremap = true, silent = true })
Here's a video showing the result after pressing "ch":
Another handy snippet:
vim.keymap.set(
"n", "co", 'istd::cout << "" << std::endl;<Esc>3Ba'
)
With this, you can save tons of time writing std::cout << "" << std::endl; in C++ by just pressing "co".
Look, you just saved on AI subscription costs!
What Should You Do?
The best way to avoid over-reliance on AI is to learn programming.
If you're already using AI, don't let it write code for you.
Instead, show it code and ask it to explain how it works, then type it yourself, compile it, and check the results.
Ask "why" instead of "how".
If you're a programming beginner, learning linear algebra will greatly help in any programming field.
That's all