Python正在变成拼音吗?
我刚从PyCon美国回来。那真是令人愉快;我见到了老朋友,结识了新朋友,进行了关于装饰器的教程,并在教育峰会上发言。我是PyCon美国的赞助商,这意味着我还有一个展位,发放T恤、书籍、贴纸和关于LernerPython平台的传单。当然,大家关注的话题是人工智能。从教育峰会(我在上面的发言主题是“氛围教学”)到新的AI专场,再到走廊里的谈话,我觉得没有十分钟会有人不提起这个话题。每个人都同时感到兴奋、困惑和担忧。正如我在其他地方所写,我相信代理编码(又称AI编码,也称“氛围编码”)不是未来,而是现在。这引发了许多合理的问题,包括代理编码在哪里(以及不应该)适用,如何最佳配置它以确保产生高质量软件,AI令牌所需的预算越来越大,发送给商业LLM的数据的隐私和安全,以及我们将如何培训下一代软件开发者。这些都是合理且重要的问题。但是我一直在思考另一个问题:Python与代理编码的未来有多大关联?担心Python的未来可能看起来很荒谬。毕竟,Python在所有处理数据的人中都是非常流行和重要的。数据分析、数据工程和机器学习在很大程度上都是由Python实现的。在标准库和PyPI之间,Python提供了几乎让人感到尴尬的大量包,处理从数据到日历到包裹投递的所有内容。Python编码者的社区,包括对这门语言和第三方包的贡献者,庞大且不断壮大。而且由于Python已经存在了很长时间,在线上有大量的Python代码供LLM在训练中使用。换句话说:AI是通过Python实现的。很多人都在使用Python,LLM也很容易生成Python。这对AI(它有更多经验/培训可供借鉴)和阅读和检查代码的人来说都是好事。但是在过去几周,我开始思考几个问题。为什么要让AI用一种相对执行速度较慢的动态语言(即Python)来写其输出?为了让AI用Python编写代码,就需要有人在维护这个语言、标准库以及PyPI上的热门包。既然“客户”将是AI,那谁来做这些?如果编码会通过AI来完成,那么谁会学习Python?我想逐一讨论这些问题,描述现状以及可能的未来发展。为什么输出Python?在我上大学的时候,使用编译语言编写代码已经很常见。但是仍然有聪明、有经验的工程师,其汇编语言技能比任何编译器输出的都要好。因此,当然,在日常任务中,你会使用编译器。但如果你真的需要紧凑、优雅的代码,你就会把它交给那些超级牛的工程师。到我毕业的时候,编译器显著提升,能够编写比任何人类更好的代码。知道这一点后,芯片制造商改变了它们的指令集,知道它们现在是为编译器提供目标,而不是人类编码者。我感觉我们现在正在经历类似的过程。我相信我编写的Python代码仍然比AI生成的更优雅、可读、可维护、高效和符合习惯。但我是一个有30年经验的优秀Python编码者。此外,在几年内,AI生成的Python将会比我的更好。甚至现在,我发现这往往无关紧要:即使Claude的Python只有我代码的80%好,但它在大多数情况下仍然足够好,因为它能够比我更快地编写代码和测试。但我为什么要让Claude编写Python呢?我常说Python是一个完美的语言,适合计算机便宜而人类昂贵的时代。但这个说法假设人类在进行编码。如果计算机便宜而且也在进行编码,那么这个方程就会改变。现在人类在做工程,而不是编码。如果是这样,我为什么让Claude编写Python?最明显的是,我在想我们可以让AI输出Rust,而不是Python。Rust的执行速度与C相同,这已经是对Python的一个优势。但它还有一个著名的安全、严格的内存管理范式,同时提供诸如线程等现代功能。而且它的编译器以严格著称,显著减少了内存和安全问题的潜在可能性。当然,Rust并不是唯一的选择;开发Pandas库的Wes McKinney最近一直在宣传他用Go编写的程序,尽管他并不熟悉Go。他在他的博客中写道(https://wesmckinney.com/blog/agent-ergonomics/),“我在用Go构建很多新软件。但实际上我并没有真正写过Go。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡