Python 是调用LLM的逻辑语言,TypeScript是AI应用里的王者语言
编程语言是软件工程师(software engineer)与计算机(computer)交互的方式,通过编程语言指挥计算机完成某些计算任务的同时,也创建(create)一些伟大的产品,而这些产品是当今互联网世界存在的根基。作为一个非计算机科学专业(CS)出身的人,我为什么要写这篇文章?是因为我最近几个月在研究AI应用产品的时候,发现了一件让我觉得意外,但是有趣的事:
在调用云端LLM的时候,我由于熟悉python,会更喜欢使用它来构建项目;但深入研究最好的开源AI应用产品,我发现他们更多的是使用TypeScript(TS)。这与我已有的认知不符,所以我就花时间研究起了TS。
你可能会有疑问,现在都什么时代了,为什么还要讨论这么老掉牙的问题。我在写文章的时候,也是思考再三,觉得这个有必要拿出来与各位讨论一番。
虽然我知道,现在vibe coding大行其道,学不学编程语言在这个时刻好像显得不重要了。就比如我们熟知的英伟达CEO就在最近的一个采访视频里说,未来人不需要去学习Python,因为English就是最好的编程语言。我想了一番,既然大佬都这么说了,也许我的做法是错误的,可我自己这一年的vibe codeing体验却又与此恰恰相反,所以我还是冒着被议论的风险把这篇文章写出来。
过去一年时间,我vibe coding的项目主要是使用Python,因为我对其学习过一段时间,能够大致看得懂相关的代码片段。但即便如此,在小型的项目面前,我对其依然无法把控,不知道如何优化,我对AI tools 说得最多的一句话是,你检查一下整个项目架构,并告诉我哪些地方需要优化。做这件事情多了之后,我发现LLM只是在翻过来倒过去的弄通一件事,token在疯狂燃烧,而我的项目依然没有什么动静。在经历过这样的事许多次后,我决定回归基础,不在跟风去尝试新的模型,也不再构建新的无用玩具项目,只是偶尔会让新模型优化一下上一代模型遗留的buge。
后来由于开源项目OpenCode的出现,我尝试将其克隆到本地研究。在不断尝试的过程中,我逐渐熟悉了项目架构,了解到它是使用TypeScript来构建的终端交互编程助手,是继Claude code之后,最好用的TUI编程工具,关键在于它是开源的,你可以随便修改项目,使其符合自己的需求。
我首先是做最基础的修改,在配置文件中添加了medical skill 和 subagent,让它成为一个具有医学专业知识的AI assistant。后来又做了一些更大的修改,我给OpenCode添加了新功能,让它可以自由浏览我Zotero里的文献,成为更加隐私的医学文献助手。我分别对OpenCode的tool模块做了2个修改,一是添加zotero工具,二是让opencode能够自由阅读pdf文档,最后让subagent能够基于我的临床指南回答问题。这些构建的方向是基于我之前折腾了几个月的RAG(检索增强生成),让我发现它存在很多劣势,即使我现在知道RAG+Graph可能是知识库最好的形式,但是目前对我来说已经不重要了。
在研究Opencode一段时间后,OpenClaw在AI圈又火爆起来了,这时候我由于收到FOMO的影响,不得不停掉手里的东西,打起了研究OC的主意。由于有过研究OpenCode的经验,这次研究OC的过程就顺利很多了,它是使用Gateway和Pi agent来构建的项目,也是以TS语言为主。通过Pi,AI agent能够自主阅读文档(read)、编辑(edited)、执行任务(excite),就是这样简单的创新,就让现有的agent能够自主的做事,而不是被动的等待命令。
通过对OpenCode和Openclaw的研究学习,我发现他们都是使用TypeScript语言来设计的TUI产品。也就是真正执行的并不是terminal里的Opencode or Openclaw,而是云端的LLM。 我以前有一个疑问,为什么Python被称为AI里的胶水语言,但是在AI应用产品里却很少见? 经过学习我才知道,原来Python 是 计算密集型 (CPU-Bound) 任务的首选,负责 AI 模型的底层驱动;而 TypeScript 是 并发密集型 (I/O-Bound) 任务的最优解,负责管理复杂的 UI 状态与高频的云端 API 流式交互。 在 OpenCode 这种产品里,大脑(LLM)在云端,本地端更需要的是极致的流式交互和并发处理。Python 负责把 AI 跑通,而 TS 负责把 AI 变得好用、好看、好分发。这就是为什么现代 TUI 纷纷倒向 TS 生态。 可惜我对TypeScript了解甚少,很多源码根本看不懂,要是Python也有这样的优势就好了。
现在你可能听说,在AI时代,不会编程也可以做app,构建网站······
是的,确实可以,但是构建出来了,然后呢?
我自己就构建了2个iOS app,但是到现在也没有上架app store。如果不懂基础,构建出来的东西(demo)很难过渡到拿给别人使用(product),因为如果出现问题,你需要为你的基础知识负债承担责任,也就是人们常说的AI只负责执行,不负责承担执行后的结果。结果有好,自然存在坏处,如果你看不到AI做出的东西存在的问题,这个产品盲盒就会一直存在。所以不要相信什么基础不重要,有AI就行,即使未来AI普及到和EXCEl一样,那你是不是也会一些基本的计算,不然被坑了都不知道,至少小数点这些要会数的嘛!
If this post was useful, share it with someone who might need it.