写更少的代码,承担更多的责任。
Write less code, be more responsible

原始链接: https://blog.orhun.dev/code-responsibly/

## AI辅助编程:开发者视角 AI辅助编程工具如Copilot和Claude的快速兴起是不可避免的,甚至仅仅*讨论*它也在助长炒作。作者最初对此抵触,完全依赖AI进行代码生成时感到迷失和“文盲”——感觉像是在不断地代码审查,而不是创造。他们通过使用AI处理繁琐的任务,同时保留对核心逻辑和质量的控制,找到了平衡。 然而,这种开发便捷性的提高也带来了挑战。大量快速构建的“氛围代码”项目引发了对长期可维护性和代码质量的担忧,并对开发者的责任提出了伦理问题。AI生成代码的许可仍然是一个灰色地带。 最终,作者提倡负责任地使用AI。它是一种工具,而不是技能和努力的替代品。实验是找到适合个人需求的流程的关键,开发者应该优先考虑质量和责任,无论代码如何生成。核心信息是:继续“努力”——专注于构建伟大的事物,不要害怕将AI作为*过程的一部分*来拥抱。

一篇由一篇倡导编写更少代码的文章引发的 Hacker News 讨论,凸显了关于软件开发瓶颈的争论。一位独立游戏开发者分享了使用 C 和 raylib *不使用* 编码助手构建游戏的积极体验,认为流程可控且进度令人满意。他们认为真正的挑战不是*快速编写*代码,而是代码*背后的思考*。他们批评“更多、更好、更快”的追求在经济上是不可行的,指出增加代码通常会导致更多错误和开发者倦怠。 然而,另一位评论者,过去五年参与招聘 40 多名软件工程师,强烈不同意。他们表示,根据他们的经验,招聘的主要原因*始终*是提高编码产出——代码编写*就是*瓶颈。这次交流揭示了对现代软件开发中最大挑战所在的基本分歧。
相关文章

原文

My thoughts on AI-assisted programming.

"AI-assisted programming?
Nah, I have a rat under my hat"

These days, the discourse on AI-assisted programming, vibe coding and LLMs is getting a bit overwhelming and sometimes we are overexposing ourselves to it, whether we want it or not.
The irony is, "not talking about AI" is still "talking about AI", so we might as well talk about it.

Wait, what? I can very much "not talk about AI". I mean, I don't do vibe coding. But I see more vibe coded projects coming out and I sometimes see cool stuff. People seem to use Claude these days, probably becaus-

You are talking about AI right now!

You got me! Well, with this blog post, you are becoming a part of this whole AI over exposure anyways.

Probably. But recently I realized that I might have some opinions to share while I was talking to my friends on this podcast. Also, I should mention, these thoughts probably have an expiry date of 6 months since things are changing fast!

Accepting the change 💊

Programming is fun. Or should I say "was fun"?

It can still be fun! Just because the tools have changed and you can now one-shot a SaaS project that would have taken 3 months to build in 2018 doesn't mean that the joy from crafting something is gone. It's just that the process might be different, but you are still responsible for the end product. There is still a value that you are providing there.

I'm in the basket of developers that think that AI has forced us to change and adapt, in the sense of utilizing AI-assisted programming tools. For a while I was already using GitHub Copilot for better completions and code generation, but I first experimented with proper AI-assisted development with Codex, during this livestream series. Long story short, I was building a terminal user interface for cargo's tree command (cargo-tree-tui), which required me to design a tree data model and a compatible render layer with caching, without compromising the performance.

At first, I gave Codex the full power. Then I felt lost, confused and illiterate. Quickly realized it was a mistake, so I switched to a "commit-by-commit quality-checked AI-assisted" approach, where I solve a certain problem with AI, then read everything to the last semicolon and verify that I understand it fully. This made everything much better and I felt less dumb, but after a while I got bored. I was not writing code anymore but constantly doing code reviews.

Ok I feel depressed listening to that. Maybe it would take the same or less amount of time and it would be more fun if you just don't use AI and write everything yourself?

Yes, but I'm lazy. Even though I do that, I will probably use Codex for the other boring tasks...

I think the key is to find a balance, like everything else in life. So these days I'm trying a mixed approach where I use AI for boring things or things that I can't do quickly, and just write the fun parts myself and do a final pass to make sure everything is up to the quality I want.

⚠️ I think it's important to experiment and find what works for you, and not to feel guilty about it. I skipped doing some livestreams because of this exact reason (since the process would likely involve AI and I don't want to stream a prompting session), but I think it was a mistake. From now on I would like to be more open about my use of AI and don't treat it like a bad habit.

As a bonus, see this interview in which I further talked about how I use AI and other related things.

Quality problem 💯

I post about the cool stuff that I found on my social media every day. This process involves following certain sources and maintaining a list of material actively. What I have recently realized is, I no longer can catch up with the new tools and my list is getting larger and larger everyday. My guess is, this is due to the influx of vibe-coded apps, since now it generally takes less time and effort to build things.

So you are saying that the quality of the projects is going down?

Not necessarily, but I think there is a risk of that. It's also related to the maintainability of those projects. Sometimes I discover a project that is truly wonderful but visibly vibe-coded. I start using it without the guarantee of next release not running rm -rf and wipe my system.

Can we blame the developers for that?

It's something ethical that I don't know the answer to. In my case, it was the guy's first ever open source project and he understandably went for the quickest way of creating an app. While I appreciate their contribution to open source, they should be responsible for the quality of what they put out there.

I think this applies to everyone though. Nowadays many people are pushing AI-assisted code, some of them in a responsible way, some of them not. So... what do we do?

Like I said, I don't know. The only thing that I can do is to be responsible myself and advise others to be responsible as well.

License question ⚖️

There are obviously licensing questions as well. Can we use AI-generated code in an X licensed project? What will be the license of the generated code? How ethical is it to use AI-generated code in the open source context?

I recently witnessed someone call the LLM industry toxic toward the FOSS movement.

Well I don't know about that. In my internet experience, licensing disputes mostly lead to nowhere and I don't think this will be an exception. However, I would still be interested in hearing different opinions on this topic, that's why I'm putting this out there.

Look, I ain't no lawyer as well. I'm just a rat.

Wrapping up 📝

I adopted "Grinding" a while ago as my motto and started a community around it last year. I think it applies to this situation as well.

We should keep grinding, keep building cool & high quality stuff, and how we got there shouldn't be that important. AI is just another tool, and not a replacement for creativity and hard work.

Be responsible. Don't drink and drive / don't vibe code and commit.

🧀

联系我们 contact @ memedata.com