在当今专栏中,我将继续深入探讨氛围编程系列,并分析了解生成式AI或大语言模型所采用的AI编程个性类型的重要性。如果你不了解AI编程风格中这一隐藏的方面,你将会感到相当沫丧,并且很可能在成功使用氛围编程方面受到阻碍。
正如古话所说,魔鬼藏在细节中。
让我们来谈论这个话题。
氛围编程正在兴起
作为快速背景介绍,我将从氛围编程的基础知识开始。关于氛围编程的详细解读,请参见相关链接。
传统的编程代码制作方式需要手写源代码,通常使用Python、C++等传统编程语言和其他流行的编码语言。如今,生成式AI和大语言模型已经足够熟练,你可以使用AI为你生成代码。就像你向AI输入提示来生成故事或回答问题一样,AI可以代替你生成编程代码。例如,一个完整的Python程序可以在几秒钟或几分钟内生成,而不是手写代码可能需要数小时、数天或数周才能设计出来。
这表明想要开发应用程序的非技术用户可以简单地告诉AI他们希望应用程序包含什么,然后AI就会为你输出代码。这被称为"氛围编程",因为你只需用英语等自然语言表达你想要完成的氛围,AI就会完成生成所需代码的繁重工作。
每个非技术和/或技术背景的人都可以通过创建一个他们不需要费力编码的应用程序而突然变得富有和出名。
氛围编程者已经出现
执行氛围编程的用户被随意称为氛围编程者。
几乎任何人都可以声称自己是氛围编程者。这使得这个头衔有些模糊和不确定。一些人坚信应该有一个通用的认证或许可,要求你证明你真正知道如何进行适当的氛围编程,只有这样你才能自豪地宣称自己是氛围编程者。同样,关于氛围编程以及如何成为顶级氛围编程者的课程也已经出现。
目前,氛围编程和成为氛围编程者是一种临时性和凭经验的尝试。它是否会成熟为更加正式和学术的东西是一个开放的问题。赌注线是它不会经历任何严格的正式化。假设是,总的来说,大部分氛围编程将由世界人口中的手工操作者来承担,主要是临时进行的。也许我们最终会有两类氛围编程者,专业氛围编程者和业余氛围编程者,其中只有一小部分氛围编程者会在专业类别中。
时间会证明一切。
人类如何编写代码
在我们深入探讨氛围编程之前,让我们考虑一些关于人类如何编写代码的重要基础。
任何曾经选择查看他人代码的人都会告诉你,存在着很多编程或编码风格的变化。这也被称为软件开发者的编码个性。这个想法是你编写代码的方式反映了特定的风格或个性的相似性。
一些软件开发者非常精确,编写简洁而深思熟虑的代码。他们努力确保源代码易于理解,任何其他查看代码的人都能立即理解代码在做什么。代码恰好足够长来完成工作,避免臃肿或携带多余的负担。向这种编码风格或编程个性致敬。
另一方面,一些编码者制作混乱和令人困惑的代码。即使代码可能工作正常,其他人也几乎不可能辨别代码是如何运行的。代码可能处于意大利面条状,拜占庭式的循环和死胡同系列,将审查代码的任务变成了谋杀之谜般的谜题。它也可能比必要的长得多。总的来说,编码风格是糟糕的。
你通常可以将编码风格归结为少数几种或十几种主要类型,尽管在某种程度上,它变化很大,可能受到人们如何被训练编写代码的影响。此外,可能有明确的要求规定你应该如何编写代码,比如如果软件经理告诉你要以特定方式编写。
编码风格的现实世界例子
一个经验丰富的软件开发者无疑会有很多关于他们在职业生涯中遇到的其他人编码风格的恐怖故事。
根据我作为长期软件工程师的经验,我永远不会忘记被雇佣来改造一个公司完全依赖的大型程序,而他们正处于困境中。他们告诉我有一个外部承包商为他们开发了一个关键程序的所有工作,并对他们保密源代码。这使公司陷入了危险的境地,因为他们被软件开发者的每一个奇思妙想所束缚。
程序员会要求高额费用来进行最小的编码更改。当他度假时,高管们担心没有其他人知道如何调试代码或在需要时调整它。公司没有意识到他们已经让自己陷入了这种令人不快的位置,直到长期依赖程序和狡猾的程序员之后很久。
我能够在服务器上找到源代码并查看了它。
一个让我感到好笑但也让我难以置信地摇头的元素是,代码中所有命名的变量和常量都使用古典音乐家的名字。因此,一个应该代表库存物品数量的变量被命名为贝多芬。另一个跟踪日期的变量叫做莫扎特。要点是代码通过代码内对象的命名在表面上是难以理解的。他本可以轻松使用更具代表性的名称,但相反选择依赖完全无关的命名约定。这是代码体现的许多令人沮丧和令人不安的编码风格之一。
我最终弄明白了代码并重写了它。客户松了一口气,代码现在很容易供他人维护和扩展。原始编码者是故意试图写得晦涩难懂,还是那只是他自然的编码方式?这是一个开放的问题,幸运的是,不再困扰公司了。
氛围编程和生成的代码
回到氛围编程的问题,你的第一个想法可能是,如果AI要为你生成代码,就不再需要目视检查代码了。代码只会在计算机上运行。没有人需要检查代码。代码是否好看或是一团糟都无关紧要。就是这样,故事结束。
等等,让我们不要这么匆忙。
假设生成的代码很复杂并且运行得极其缓慢。你生成的应用程序将像树懒一样运行。你程序的用户不会高兴。这对你不好,对所有人都不好。
也许代码运行良好,但没有包含任何错误检查。用户输入他们的年龄是225,意外地这样做了,意思是说他们22岁。AI没有提供任何进行错误检查的代码。其余代码假设用户确实是225岁。各种其他连锁问题出现。
问题的症结是生成代码的性质确实有所不同。存在与代码在运行时如何操作相关的问题。其他方面涉及代码是否对人类可理解。
为什么人类会检查AI生成的代码?
因为目前由当代通用大语言模型生成的代码大体上往往是不完整的,包含错误,并且否则将需要人类软件开发者来审查代码并尝试使其防弹。目标是最终AI将为你做这件事。在那个时候之前,对人类可读代码的需求是一个高优先级项目。
评估现有大语言模型
在最近一项题为"领先大语言模型的编码个性"的研究中,Sonar,2025年10月,研究人员实验了各种流行的大语言模型,以衡量其AI生成代码的优势和劣势,以下是他们的一些关键发现(摘录):
"大语言模型的代码生成能力对于其在软件开发中的日益应用至关重要。"
"为了有效地在编码中利用AI,开发者需要准备好识别和补偿模型中的弱点。"
"我们的分析涵盖了两类模型:五个领先的'非推理'大语言模型(Anthropic的Claude Sonnet 4和3.7、OpenAI的GPT-40、Meta的Llama 3.2 90B和开源OpenCoder-8B)和一个新的'推理'模型GPT-5。"
"为了创建直接的、苹果对苹果的比较,我们在其最小推理模式下评估了GPT-5,这类似于其同行的非推理方法。"
"一方面,它们共享一套强大的优势,从生成语法正确的代码到解决复杂的算法问题,这使得它们的出现如此引人注目。另一方面,它们都是用相同的盲点构建的:持续无法编写安全代码,与工程纪律斗争,以及生成技术债务的固有偏见。"
如上所述,目前关于通用大语言模型生成代码的一个重要抱怨是,它们经常产生脆弱的代码,容易受到网络安全入侵,并且与真正专业的人类软件开发者可能产生的相比,通常不符合标准。
与此同时,遗憾的是,愉快地使用AI生成代码的随意氛围编程者并没有特别意识到他们正在制定的应用程序和程序可能包含与错误、错误和容易被黑客攻击的责任和暴露相关的定时炸弹。
典型的AI生成编码风格或个性
如果你收集了一些人类软件开发者,可能性是你可以检查他们的代码并将他们分组到各种总体编码风格或个性中。这样做会让你在知道哪些人会以特定方式为你编写代码方面领先一步。
引用的研究选择对他们选择检查的大语言模型集合做同样的事情,并为手头的每个AI提出了这些表达的编码个性和风格:
基线表现者 -- GPT-5-minimal
高级架构师 -- Claude Sonnet 4
平衡前任 -- Claude 3.7 Sonnet
高效通才 -- GPT-4o
未实现的承诺 -- Llama 3.2 90B
快速原型师 -- OpenCoder-8b
如果你正在使用这些大语言模型,请确保考虑编码风格是否会产生对你寻求生成的任何应用程序或程序都满意的代码。
充满曲折
任何对生成代码的生成式AI模型的探索都受到生成代码的大语言模型变化的快速步伐的影响。
例如,如果AI制造商决定在幕后调整他们的AI如何生成代码,任何先前的假设可能不再成立。当新版本的AI出来时也是如此。先前版本可能本身不是新版本将做什么的指标。新版本可能以完全不同的方式生成代码。
另一个因素是大语言模型是否已经被定制或量身定制以专门能够产生代码。本质上,你可以使用通用生成式AI来生成代码,这可能是最容易进行的方式,或者你可以使用已经专门为做代码生成而塑造的大语言模型。理论上,定制的那些希望在生成代码方面做得更好,因为那是它们被设计或塑造来做的(当然,这不是在代码生成方面更好的铁定保证)。
额外的曲折进入大图景。
AI制造商意识到人们想要使用AI来生成代码。到目前为止,大多数通用大语言模型都是在副业的基础上这样做的。这不是AI制造商非常关注的事情。意识到用户将被吸引使用可以生成严格代码的AI已经打开了朝着磨练这些能力的金钱龙头。
据推测,迟早,生成的代码将自动包含坚实的错误检查,防止包含错误,并执行更接近专业软件开发者的代码。我们还没有到那里。一罐金子坐在那道彩虹的尽头,所以AI制造商正在热切地朝那个方向推进。
你袖子里的技巧
最后,你可以保留在袖子里并在适当时考虑使用的一个技巧是告诉AI你想要生成什么样的代码。要点是这样的。如果你只是平淡地在提示中告诉AI你想要它生成代码来生产工资单程序或约会应用程序,AI将毫无疑问地使用它已经被塑造的任何默认代码生成模式。
你可能可以让AI调整其编码风格或编码个性。
在你的提示中,确保公开告诉AI你想要生成什么样的代码。你越具体,代码没有现成的陷阱和尴尬的机会就越大。我应该警告你这不是灵丹妙药。即使你告诉AI以合理和有针对性的方式生成代码,这也不能确保AI会按照指示行事。但它可以是一个显著的推动器。
在即将到来的发布中,我将分享提示AI适当生成代码的方法。请留意那个发布。
现在的最后一个想法。
贝多芬著名地说过这样的话:"音乐可以改变世界。"我会根据那个鼓舞人心的引用说AI可以改变世界,包括特别是生成代码的AI。一个巨大的震动正朝我们而来,世界将永远不再一样。
我已经可以听到音乐在播放。
Q&A
Q1:什么是氛围编程?它有什么特点?
A:氛围编程是指用户使用自然语言(如英语)向生成式AI或大语言模型表达他们想要开发的应用程序需求,AI会自动生成相应的编程代码。用户只需要描述想要的功能"氛围",AI就能完成繁重的编码工作,将原本需要数小时甚至数天的编程工作缩短到几分钟。
Q2:AI生成的代码质量如何?是否可以直接使用?
A:目前AI生成的代码往往不完整,包含错误,缺乏安全性和工程规范。研究发现现有的大语言模型都存在无法编写安全代码、缺乏工程纪律、容易产生技术债务等问题。因此仍需要人类软件开发者审查和完善AI生成的代码。
Q3:不同的大语言模型在编程方面有什么区别?
A:不同的大语言模型具有不同的编程个性和风格。研究将主流模型分类为:GPT-5为基线表现者、Claude Sonnet 4为高级架构师、GPT-4o为高效通才、Llama 3.2 90B为未实现承诺者、OpenCoder-8b为快速原型师等。选择时应根据具体需求考虑其编程风格特点。
好文章,需要你的鼓励
北京大学研究团队开发出基于RRAM芯片的高精度模拟矩阵计算系统,通过将低精度模拟运算与迭代优化结合,突破了模拟计算的精度瓶颈。该系统在大规模MIMO通信测试中仅需2-3次迭代就达到数字处理器性能,吞吐量和能效分别提升10倍和3-5倍,为后摩尔时代计算架构提供了新方向。
普拉大学研究团队开发的BPMN助手系统利用大语言模型技术,通过创新的JSON中间表示方法,实现了自然语言到标准BPMN流程图的自动转换。该系统不仅在生成速度上比传统XML方法快一倍,在流程编辑成功率上也有显著提升,为降低业务流程建模的技术门槛提供了有效解决方案。
谷歌宣布已将约3万个生产软件包移植到Arm架构,计划全面转换以便在自研Axion芯片和x86处理器上运行工作负载。YouTube、Gmail和BigQuery等服务已在x86和Axion Arm CPU上运行。谷歌开发了名为CogniPort的AI工具协助迁移,成功率约30%。公司声称Axion服务器相比x86实例具有65%的性价比优势和60%的能效提升。
北京大学联合团队发布开源统一视频模型UniVid,首次实现AI同时理解和生成视频。该模型采用创新的温度模态对齐技术和金字塔反思机制,在权威测试中超越现有最佳系统,视频生成质量提升2.2%,问答准确率分别提升1.0%和3.3%。这项突破为视频AI应用开辟新前景。