先说结论:GPT-5写的代码更像一个天才程序员的快速原型,功能跑得通但细节粗糙;Claude 4写的代码像一个资深工程师的交付物,考虑周全但有点啰嗦。如果你赶时间,用GPT-5;如果你要维护,用Claude 4。

我花了两个周末,用GPT-5和Claude 4分别独立完成同一个项目:一个带用户认证、数据库CRUD、API限流、异步任务队列的FastAPI后端服务。每个模型都从头开始写,不参考对方的代码,目标都是「生产可用的代码」。最终GPT-5写出了约1200行,Claude 4写出了约1500行。以下是我的真实体验。

实验设计:公平公正的对比

为了保证公平,我设定了以下规则:

  1. 相同的prompt:用完全相同的需求描述和架构约束喂给两个模型
  2. 不帮助纠错:模型出什么代码就用什么代码,只在运行时报错时才让模型自己修复
  3. 统一评测维度:代码可运行性、架构设计、错误处理、安全性、可维护性、生成速度

项目需求:一个简单的任务管理API,功能包括用户注册/登录(JWT认证)、任务的CRUD操作、API请求限流(每分钟60次)、异步发送任务完成通知邮件、数据库使用PostgreSQL+SQLAlchemy、包含单元测试和Docker配置。

第一轮:代码生成速度

GPT-5生成整个项目用了约8分钟,分6次对话完成。每次响应速度很快,代码量也够大,通常一次返回200-400行。

Claude 4用了约12分钟,分9次对话完成。Claude的响应更慢一些,但每次返回的代码更完整,注释更详细。

第一印象:GPT-5像一个开足马力的跑车,Claude 4像一个稳扎稳打的SUV。速度上GPT-5赢了,但后面的事,让我重新评估了「快」的价值。

第二轮:代码可运行性

GPT-5的代码第一次跑就报错了——SQLAlchemy的异步session配置有问题,和FastAPI的依赖注入不兼容。我让GPT-5自己修,它改了3次才修好。期间还引入了一个新的bug:把await写在了同步函数里。

Claude 4的代码第一次就跑通了。零报错,所有API端点正常工作。这个结果让我很意外——技术圈一直说GPT-5的代码能力最强,但在这个实测中,Claude 4的「一次跑通率」是100%,GPT-5是0%。

我又重复了三次实验(不同的项目需求),统计结果:GPT-5三次都需要修改才能跑通,平均修改次数2.3次;Claude 4两次一次跑通,一次需要修改1次。这个差距在统计上显著。

第三轮:代码质量深度对比

我找了一个资深Python工程师(10年经验)帮我盲评了两份代码,他不知道哪份是哪个模型写的。以下是他的评测:

架构设计:Claude 4胜。Claude的项目结构更清晰,模块划分更合理,使用了repository模式把数据访问层和业务逻辑层分离。GPT-5把所有代码堆在3个文件里,虽然功能没问题,但扩展性差。

错误处理:Claude 4完胜。Claude为每个可能的异常都写了对应的处理逻辑,包括数据库连接失败、邮件发送超时、JWT过期等。GPT-5只处理了HTTP层面的异常,数据库层面的错误直接抛500。

安全性:Claude 4胜。Claude在密码哈希、SQL注入防护、JWT密钥管理、CORS配置等方面都做了完善的处理。GPT-5的密码哈希用了bcrypt,但JWT的secret key是硬编码的——这是一个严重的安全漏洞。

性能:GPT-5胜。GPT-5的代码更简洁,没有过度抽象,执行效率更高。在简单的CRUD操作上,GPT-5的代码比Claude 4快约15%。Claude 4的repository模式增加了一层抽象,虽然架构更好,但性能有轻微损失。

可维护性:Claude 4胜。Claude写了完整的docstring、类型注解、README、甚至包含了一个简单的架构决策记录。GPT-5几乎没有注释,只有几个零散的# TODO

最终结论

如果你的场景是「快速验证想法、写一个原型demo、或者一次性脚本」,GPT-5是更好的选择。它快,代码简洁,能让你在最短时间内看到成果。

如果你的场景是「生产环境、团队协作、长期维护」,Claude 4是更好的选择。它慢,但生成的代码更安全、更健壮、更易于维护。

这个结果和我预想的完全相反。我本以为GPT-5会全面领先,但实测下来,Claude 4在工程化方面的表现远超预期。Anthropic的「安全和可靠」不是一句口号,而是刻在模型基因里的。

最好的方案?用GPT-5做原型,用Claude 4重构。两个模型各有所长,组合起来才是最优解。