社区
教程
Wiki
注册
登录
创作新主题
社区所有版块导航
Python
python开源
Django
Python
DjangoApp
pycharm
DATA
docker
Elasticsearch
分享
问与答
闲聊
招聘
翻译
创业
分享发现
分享创造
求职
区块链
支付之战
aigc
aigc
chatgpt
WEB开发
linux
MongoDB
Redis
DATABASE
NGINX
其他Web框架
web工具
zookeeper
tornado
NoSql
Bootstrap
js
peewee
Git
bottle
IE
MQ
Jquery
机器学习
机器学习算法
Python88.com
反馈
公告
社区推广
产品
短视频
印度
印度
一周十大热门主题
ChatGPT 新功能:"ChatExcel" 已灰测
CAA模式识别与机器智能专委会:首届深度学习模型压缩与部署技术会议
在 Python 中使用连接池提升性能
【node-mlx:为 Node.js 设计的机器学习框架,基于-20240515215702
销赞云创始人兼CEO陈爱华:数字化,智能化| TopDigital 2024评委说
如何快速理清复杂Python代码?
革新未来教育?OpenAI全能模型ChatGPT for o震撼发布:教育质量的颠覆者?股市与政策新...
黛优佳创始人兼CEO尚丽丽:差异化技术,品牌核心竞争力的真正基石 | TopDigital专访
【AI最新资讯】美国管制AI大模型出口,ChatGPT将引入iPhone,OpenAI新品周二发布
天与空广告集团CEO邓斌:坚持品牌长期主义| TopDigital 2024评委说
关注
Py学习
»
chatgpt
用 ChatGPT 写 “Hello, world!”,首席资深工程师要写 40+ 行代码?
程序员好物馆
• 2 周前 • 36 次点击
让 ChatGPT、Gemini 等大模型辅助代码编写已是多数程序员的日常,但本文作者提出一个观点:LLMs 和缺乏经验的开发人员一样,面对复杂代码往往只会再度增加复杂性。
原文链接:https://hachyderm.io/@vnglst/112135583244850791
作者 | Koen van Gilst
翻译 | 郑丽媛
出品 | 程序人生(ID:coder_life)
尽管 Github CoPilot、ChatGPT 等许多大型语言模型(LLM)大大提高了我作为开发人员的效率,但我也亲身体验到了它们的局限性。为此,我想出了下面这个实验。
就像人类的许多活动一样,当小组开始工作时,本应轻松简单的任务往往会变得困难复杂。如果不积极抵制,你就会发现自己所处的系统和组织几乎不可能完成任何事情。
通过下面的实验,我想要探索 LLMs 的兴起是加剧还是缓解了这种复杂性。
“Hello, world!”
我们从一个简单的任务开始:让计算机显示“Hello, world!”。
我问 ChatGPT:作为一名初级开发人员,我要怎么用 TypeScript 输出“Hello, world!”?ChatGPT 给出的答案简短且正确:
初级开发人员往往不了解编写代码的复杂性,所以我又问 ChatGPT 能否像中级开发人员那样重构代码:
为了增加复杂性,我又问 ChatGPT 能否从高级开发人员的角度重构代码,于是生成了如下代码:
接下来是资深工程师:
然后是首席资深工程师:
经过以上几次迭代,我逐步提升了开发人员的资历水平,从初级工程师到高级工程师,最后到一家大型公司的首席资深工程师:
进行到这一步,仅用来显然“Hello, world!”的代码已经过于复杂了,但对于在大公司工作过的人来说并非不切实际。
学会“退一步”
在开发生涯中,我认识到了退一步的重要性,即首先了解程序、函数或类的目标,然后设想如何从头开始构建它。当一个程序看起来过于复杂时,这种策略尤其有用。如果发现问题比最初想象的还要复杂(可能是由于缺乏经验),这种方法也有助于理解复杂性背后的原因。
在我早期的工作中,我曾一丝不苟地遵循现有代码,认为别人对当前问题有更深刻的理解,只是我还没有掌握全局。但后来我了解到,简单地“顺其自然”,试图让复杂的程序发挥作用,并不是增强软件的最佳方式,往往还会导致代码进一步复杂化。
LLMs 似乎缺乏这种本能,它们倾向于维持现状,尽可能保持现有代码不变,却导致复杂的程序变得更加错综复杂。
为此,作为本次实验的最后一项,我要求 ChatGPT“退一步”,评估代码的目标,提出更好的解决方案。这一尝试起初并不成功,因为 ChatGPT 一直在调整现有程序并保留“现有架构”,只有当我提示它从头开始设想时,它才提出了一个新的解决方案,如下所示:
结论
从我使用 LLMs 的经历中,我发现它们倾向于在已经很复杂的程序上再叠加几层复杂性,而不是退一步考虑创新的解决方案——这表明,LLMs 解决问题的方法和创造力存在局限性。因此在我看来,LLMs 和缺乏经验的开发人员一样,往往会通过增加复杂性来“拥抱”复杂代码。
当然,以上内容均来自于我对于 ChatGPT 的使用经验,可能会以偏概全,没有全面了解 LLMs 的功能。另外,我还在 Claude 和 Gemini 上进行了类似实验,它们也更倾向于生成复杂的代码,并将其进行扩展,而不建议使用更简单的版本。
好啦,今天的内容分享就到这,感觉不错的同学记得分享点赞哦!
PS:
程序员好物馆
持续分享程序员学习、面试相关干货,不见不散!
点分享
点收藏
点点赞
点在看
Python社区是高质量的Python/Django开发社区
本文地址:
http://www.python88.com/topic/169742
36 次点击
登录后回复