文章摘要
作者使用Codex CLI和GPT-5.2工具,仅用4.5小时就将JustHTML项目从Python成功移植到JavaScript,创建了通过9200项测试的无依赖HTML5解析库justjshtml。整个过程消耗大量计算资源,最终生成9000行经过测试的代码。
文章总结
标题:使用Codex CLI和GPT-5.2在4.5小时内将JustHTML从Python移植到JavaScript
主要内容: 作者Simon Willison在2025年12月15日发表文章,详细描述了他如何利用AI工具Codex CLI和GPT-5.2,仅用4.5小时就将Emil Stenström开发的Python版HTML5解析库JustHTML成功移植到JavaScript,创建了名为justjshtml的新库。
关键细节: 1. 项目背景 - JustHTML是一个用纯Python实现的HTML5解析器,能通过html5lib-tests测试套件的9200项测试 - 作者使用Codex CLI和GPT-5.2进行自动化移植,期间还完成了装饰圣诞树和看电影等私人活动
- 技术实现
- 仅通过2个初始提示和少量后续调整就完成移植
- AI共处理了1,464,295输入token和625,563输出token
- 最终生成9,000行通过测试的JavaScript代码,包含43次提交
- 新增了流处理、CSS选择器查询和Markdown转换等API功能
- 开发过程
- 首先让AI分析原项目并制定移植规范
- 采用分阶段实现策略,从简单解析开始逐步完善
- 配置GitHub Actions实现持续集成
- 最后添加了浏览器交互式演示页面
- 引发的思考
- 现代AI已能完成复杂的多小时编程任务
- 完善的测试套件是自动化开发的关键保障
- 代码生产的成本已大幅降低
- 但由此产生的法律和伦理问题尚未解决
遗留问题: - 这种移植是否侵犯原项目版权? - AI生成的代码版权归属如何界定? - 这种开发方式对开源生态的影响? - 是否应该发布此类自动化生成的库?
注:原文中关于具体命令行操作和技术细节的部分内容有所精简,保留了项目核心过程和关键数据。时间标记显示这是2025年的未来技术场景,但文中描述的方法论对当前AI辅助开发仍有参考价值。
评论总结
评论内容总结
1. 关于测试套件的重要性
- 主要观点:拥有独立于实现的测试套件(如html5lib-tests)使得库移植项目变得可行,并能验证代码的正确性。
- 引用:
- "The big unlock here is...a collection of 9,000+ HTML5 parser tests"(simonw)
- "specs + tests are the new source of truth, code is disposable and rebuildable"(visarga)
2. 关于AI辅助移植的可行性
- 主要观点:AI可以在测试套件的指导下高效完成代码移植,但实际效果可能因项目而异。
- 引用:
- "This meant that I could set a coding agent loose to crunch away on porting"(simonw)
- "Not all AI-assisted ports are quite so successful"(cjlm)
3. 关于版权和伦理问题
- 主要观点:对于使用AI生成代码的版权和伦理问题存在争议,尤其是涉及开源许可证时。
- 引用:
- "It is in the spirit of open source to produce better code by iterating on existing code"(minimaxir)
- "Ethics and responsibility should guide one’s actions, not just be engagement fodder"(mirthturtle)
4. 关于AI对开发工作的影响
- 主要观点:AI可能显著降低开发成本并替代部分开发工作,但人类理解代码的能力仍然关键。
- 引用:
- "Using a random LLM cost calculator, this amounts to $28.31... pretty reasonable"(ethanpil)
- "the cost of code wasn’t necessarily the cost of typing...but having a human actually understand it"(aster0id)
5. 关于测试与开发体验的平衡
- 主要观点:测试套件虽然重要,但可能减少开发者的编码乐趣。
- 引用:
- "I’d rather have ‘had fun’ doing the coding, and get AI to create the test cases"(xarope)
- "this impressive output could have been achieved...without running the code against tests"(orange_puff)
6. 关于AI生成代码的局限性
- 主要观点:AI生成的代码可能在复杂场景下表现不佳,仍需人工干预。
- 引用:
- "you’ll inevitably hit a hairy bug...that the LLM just cannot solve"(aster0id)
- "LLM’s default behavior is to spit out new code...vs adding an import to some library"(mNovak)