近日, Mastra AI 创始人 Sam Bhagwat 在 X 上发布了一条推文,称其中提到大约 60~70% 的 YC X25 Agent 公司正在使用 TypeScript 构建他们的 AI Agent。
这个数据让人很惊讶,因为像 LangChain 这样的早期框架最初都是 Python 优先的。那么,为什么现在要转向 TypeScript 来构建 AI Agent?
外界猜测,造成这一局面的原因可能是许多早期项目专注于整合工具和 API,这吸引了大量已加入 TypeScript 生态系统的前端 / 全栈开发人员。此外,原因还包括:
的确,TypeScript 最近几年的受欢迎程度日渐上升。
去年年底,JetBrains 在《2024 年开发者生态系统状况报告》中引入的 “编程语言前景指数(是一个用于评估编程语言未来潜力的综合指标)”显示,微软的 TypeScript 编程语言前景指数位居榜首。
JetBrains 在报告中对 TypeScript 进行了相当深入的考察,将其与 JavaScript 进行了比较,结果表明,JavaScript 仍然是全球最受欢迎的编程语言,拥有庞大的开发者社区和丰富的资源。然而,TypeScript 正在迅速崛起。它的采用率已从 2017 年的 12% 飙升至 2024 年令人印象深刻的 35%。
60~70% 的 YC X25 Agent 公司在使用 TypeScript 构建应用程序,这一数据在网上引发热议,因为 TypeScript 在市场上的扩张步伐太快了,快得让人不得不去深挖下这背后的原因。
在 Hacker News 上,有用户认为,TypeScript 之所以能被开发者广泛用于 AI Agent 的开发,是因为该语言自身的一些先天优势——TypeScript 让开发者能快速获得跨平台开发能力:它使用的 HTML 界面经过 30 年互联网发展的考验,天生就支持屏幕阅读器等辅助工具;而且它的类型系统能让代码编辑器提供超强的智能提示。
“如今,基于网页技术(内置 JavaScript)的界面方案,已经成为各大科技公司公认的唯一跨平台界面解决方案。像苹果这样的科技巨头对其他界面开发工具一直持抵制态度——比如 Flash 就因为可能破坏苹果封闭的生态系统而被集体封杀;Java 的图形方案也被以"安全风险"为由拒绝支持。而网页技术之所以能生存下来,正是因为它的普及程度已经让科技巨头无法打压,否则会伤及自身利益。
TypeScript 让开发者能快速获得跨平台开发能力:它使用的 HTML 界面经过 30 年互联网发展的考验,天生就支持屏幕阅读器等辅助工具;而且它的类型系统能让代码编辑器提供超强的智能提示。
更重要的是,用 JavaScript/TypeScript 开发时,修改代码后立刻就能在浏览器中看到效果,这种即时反馈的开发体验,目前只有这个技术栈能做到(虽然比不上 Lisp 语言那么完美,但已经比其他选择好太多)。TypeScript 虽然需要转译成 JavaScript,但借助自动编译工具,修改后几乎能立即看到变化。
这些特点跟 AI 开发有关系吗?直接关系不大。但正是这些优势,让开发者很自然地选择 TypeScript 来开发 AI 应用。”
曾经在一个项目中经历过用两种语言写前后端的工程师表示,这种情况很正常,因为如果是个很小的团队,除了 TypeScript 几乎没什么其他选择。
“这其实很好理解——这种开发效率问题不仅存在于 AI 领域,区块链等其他技术领域也一样。很多人没意识到,哪怕你是个精通多门语言的老手,在不同编程语言之间来回切换,其实要耗费大量精力。
举个实际例子:假设你们是个 2~3 人的小团队要开发个带前端的项目,那 JavaScript/TypeScript 基本就是唯一选择。如果能用同一种语言搞定前后端,所有代码都放在一个项目里,效率绝对能翻倍。虽然肯定有人会说‘某某团队用不同语言也很快’,但实际数据显示,超过六成的团队统一语言后开发速度明显提升。
我自己就深有体会:第一次创业时我们用 PHP 写前端,Python 写后端,结果两个工程师被迫分头干活,一个搞前端一个搞后端,光是协调沟通就浪费大量时间。后来创业时我们全用 TypeScript,同样是两个人,却能一起维护所有代码,效率高多了。(说明下:我平时主要用 Rust 和 C,算不上前端专家,也不是 TypeScript 粉丝,纯粹是觉得这样效率更高)”
甚至有用户认为,Anthropic 就是押宝押对了 TypeScript,才让 Claude 成为顶尖编程模型。
越来越多开发者表示,在 AI 应用开发中,TypeScript 的优势非常明显。对于想要集成大语言模型(如 ChatGPT、Claude 等)的 Web 开发者来说,TypeScript 自然成为了首选语言。
大语言模型数据管道公司 Smol AI 的创始人 Shawn Wang 在他的《潜在空间》时事通讯中写道,
传统上,数据科学和人工智能领域一直以 Python 为核心,早期的 AI 工程工具如 LangChain、LlamaIndex 和 Guardrails 都诞生于 Python 生态圈。但随着技术发展,一个显著的趋势正在形成:由于 JavaScript 开发者群体规模至少与 Python 开发者相当(甚至更大),新一代 AI 工具正开始积极适配这一更广泛的开发者群体。
人们仍然将 Python 视为 AI 训练和开发工作流程的首选语言,因为 PyTorch 和 TensorFlow 等 ML 框架和库都是面向 Python 开发人员的,这种情况目前可能不会发生改变——AI 工程师生活在这些语言中。
但对于 AI 应用程序开发,我们也有理由相信 TypeScript 正在成为领跑者。
为什么这么说?
因为在 AI 应用开发场景中,TypeScript 展现出独特优势:其异步编程能力和严格的类型系统(相较 Python 的松散类型)使开发者能够构建高性能的面向用户应用,特别是在处理大语言模型的思考过程时保持应用响应能力。
典型的 AI 应用往往需要执行耗时操作,如调用外部服务 API。TypeScript 的异步编程模型允许任务并发执行,并在收到响应时即时处理,为解决这类问题提供了优雅方案。虽然 Python 同样提供 async/await 功能,但开发者社区普遍认为这是后期添加的特性,而非语言的核心设计元素。
此外,还有一个主要原因,就是开发人员使用 TypeScript 编程时,它能够在编译时而不是运行时捕获错误。由于 AI 算法复杂且数据集庞大,在开发过程中尽早发现并修复错误至关重要。TypeScript 的静态类型有助于确保代码质量,并降低错误进入生产环境的可能性。
TypeScript 的应用范围已不仅限于浏览器环境。随着 Cloudflare、Vercel 和 Lambda@Edge 等平台推出“边缘服务器”解决方案,TypeScript/JavaScript 正成为原生应用和服务器端开发的重要选择。
这些平台对 TypeScript 的原生支持进一步巩固了其在全栈开发中的地位。行业观察显示,越来越多的 AI 工程工具开始提供 TypeScript 支持,反映出技术生态正在向更广泛的开发者群体扩展。
就在上周,OpenAI 刚宣布了对其 AI Agent 开发工具进行一系列重大升级。OpenAI 称已在其 Agents SDK 中添加 TypeScript 支持。此举使 JavaScript 和 Node.js 环境中的开发人员能够参与 Agent 开发。
LangChain 联合创始人兼首席执行官 Harrison Chase 强调了使用 TypeScript 进行 AI 开发日益增长的趋势。“我们看到很多 AI 开发都是用 TypeScript 进行的。评估是 AI 开发的关键环节,能够进行评估能让你更有信心快速行动。 ”他补充道。
Airbnb 高级软件工程师 Brie Bunge 在 2019 年夏威夷 JSConf 上分享了有关以前的错误和问题的事后分析报告时证实,使用 TypeScript 可以避免 Airbnb 38% 的错误。
显然,TypeScript 与 TensorFlow.js 和 Brain.js 等流行的 AI 库的兼容性使开发人员能够利用现有的 JavaScript 工具和框架,同时受益于 TypeScript 的类型安全性和增强的开发人员体验。
这种兼容性允许与庞大的 JavaScript 生态系统无缝集成。
此外,TypeAI 和 Axilla.io 等 TypeScript 优先的 AI 开发框架的推出,也是社区致力于让 TypeScript 成为 AI 生态系统一流公民的良好例证。
这些工具为开发人员提供了必要的抽象和实用程序,以便更高效、更少错误地构建 AI 应用程序。
除了人工智能开发之外,TypeScript 作为一种简单的语言,还能帮助用户理解概念。一位 Reddit 用户说道:“TypeScript 让我在编写每个函数和变量之前就明白了它们的实际用途……此外,它还能让我更轻松地理解对象结构,并更深入地了解某些对象。”
TypeScript 作为一种编程语言,非常适合创建快速、用户友好的 AI 应用程序。它的异步编程功能允许多个任务同时运行,这在处理可能运行缓慢的 AI 模型调用时至关重要。这意味着即使 AI 在后台运行,应用程序也能保持响应。
因此,关于 TypeScript 是否会取代 Python 用于人工智能开发的讨论很多。
但业内普遍认为,Python 不能被任何用于 AI 和 ML 开发的编程语言取代——至少目前不能。
一位 Reddit 用户表示:“Python 在数据可视化、ML/DS、CI/CD、通用脚本和其他方面有很多用例,而 TS/JS 目前还没有真正用于其中一些用例” ,这表明数据科学和机器学习任务的生态系统非常庞大。”
我们不能否认 Python 在人工智能领域的主导地位,但有些用户同时使用这两种语言并且更喜欢 TypeScript。
一位支持 TypeScript 的 Reddit 用户说道:
“这里大多数人都坚信 Python 是唯一的选择。我用 Python 写过好几年代码(主要是 Django API 服务器,还有一些 Pytorch),现在又用 TypeScript 写了几年代码,包括构建 RAG 后端。我非常喜欢 TypeScript,原因如下:用 npm 管理包要好得多……TypeScript 的类型系统比 Python 类型好得多,而且得到了更广泛的包支持。”
最终,尽管 Python 目前仍然是 AI 开发的主导语言,但 TypeScript 正逐渐受到关注,并为某些用例提供了极具吸引力的替代方案。因此,TypeScript 社区未来将如何努力使其更适用于 AI 开发,将会非常有趣。
参考链接:
https://p72.vc/perspectives/typescript-popular-enterprise-ready-and-an-ideal-option-for-ai-application-development/
https://twitter.com/gethackteam/status/1818021430035873818
https://visualstudiomagazine.com/articles/2024/12/11/typescript-tops-new-jetbrains-language-promise-index.aspx
https://www.aibase.com/news/18607
文章来自于“InfoQ”,作者“冬梅”。
【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。
项目地址:https://github.com/n8n-io/n8n
在线使用:https://n8n.io/(付费)
【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。
项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file
【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。
项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file
在线使用:https://vectorvein.ai/(付费)
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI