当前位置: 首页 > news >正文

这位老哥搞了一门新的编程语言,5年烧了500万美元,最后完全转向TypeScript。

技术创业者在选择技术路线时往往面临一个根本问题:是站在现有生态的肩膀上渐进演进,还是另起炉灶创造一个全新的系统?后者听起来更有颠覆性,也更容易获得媒体关注。但 Wasp 联合创始人兼 CEO Matija Sosic 近日在一篇博客文章中坦承,团队历时五年、花费超过五百万美元之后,终于得出一个痛苦的结论:创建新的 Web 开发编程语言是个错误。

Wasp 成立于 2020 年,初心是构建一个面向 JavaScript 全栈开发的框架,定位是"JavaScript 世界的 Rails 或 Laravel"。团队认为 Web 应用中存在大量重复模式——身份认证、邮件发送、部署配置——理想情况下应该被抽象成声明式的配置而非重复的代码。2021 年获得 Y Combinator 投资后,Wasp 随后完成了超过五百万美元的融资,推出了自研的 DSL(领域特定语言)wasp-lang。

如果你好奇的话,这里有一段代码片段,展示了这个 wasp-lang 最终的形式:

app todoApp { title: "ToDo App", // visible in the browser tab auth: { // full-stack auth out-of-the-box userEntity: User, methods: { google: {}, gitHub: {}, email: {...} } } } route RootRoute { path: "/", to: MainPage } page MainPage { authRequired: true, // Limit access to logged in users. component: import Main from "@client/Main" // <-- Your React code. } query getTasks { fn: import { getTasks } from "@server/tasks", // <-- Your Node.js code. entities: [Task] // Automatic cache invalidation. }

问题在产品推向市场后很快显现。Sosic 在博客中写道,虽然开发者对 Wasp 的理念表示认可——抽象常见 Web 应用模式这个方向本身没有问题,但当他们意识到需要学习一门新语言时,态度立刻变得谨慎。自定义的 wasp-lang 中的"lang"后缀让用户本能地警觉:在职业生涯中已经需要掌握那么多编程语言,谁愿意再学一个带着"lang"标签的东西?

语言只是表象,更深层的困难在于工具链。为一门自定义语言构建完善的 IDE 支持是极其耗费资源的工作。Wasp 团队在 VS Code 扩展上投入了大量精力,但 Sosic 坦承最终效果只达到了预期的百分之八十。语言本身可以有语法提示、类型检查和编译检查,但语言之外的工具——调试器、静态分析、代码格式化、第三方库等基础设施几乎不可能靠一个初创团队独立完善。

几年实践下来,团队终于看清了真正有价值的东西到底是什么。Sosic 在博客中给出的核心观点是:语言从来不是护城河,真正的价值在于"编译时对整个应用的高层次理解"。Wasp 的核心创新——在编译时理解应用的整体结构、自动生成代码片段、理解不同层之间的依赖关系——并不依赖于一门自定义语言才能实现。这一能力完全可以建立在现有的 TypeScript 生态之上。

因此 Wasp 团队决定用 TypeScript 完全取代自定义语言。需要强调的是,这只是接口层面的变化——Wasp 的底层架构、编译器、代码生成逻辑都保持不变。开发者现在获得的是:熟悉的 TypeScript 语法、即时的 IDE 支持、类型检查、自动补全,以及 Wasp 提供的全栈抽象能力。

转向 TypeScript SDK 之后,Wasp 的采用门槛大幅降低。开发者不需要学习新语言,只需要熟悉 TypeScript——这已经是现代 Web 开发者的基本技能。代价是多写一些代码,但换来的是与整个 TypeScript 生态的完全兼容:可以用现有的编辑器、现有的调试器、现有的 NPM 包、现有的代码规范工具。这笔交易对大多数团队来说是划算的。

新语言听起来有颠覆性,但语言本身是一个高度敏感的技术决策——开发者会本能地抵触,学习成本必须在产品价值上得到充分补偿。在工具链已经高度成熟的领域尤其如此:已经存在多年的语言背后,往往有着几十年积累的编译器优化、海量的第三方库、完善的文档和社区支持。这些不是靠"设计一门更好的语言"就能快速追上的。

  • 参考来源:https://wasp.sh/blog/2026/05/13/new-language-for-web-dev-was-a-mistake

http://www.jsqmd.com/news/825975/

相关文章:

  • 大语言模型微调实战指南:从LoRA原理到工程部署全解析
  • StegOnline实战指南:5大高效图像隐写分析技巧深度解析
  • Opengrep规则编写完全教程:从简单模式到复杂逻辑
  • 2026年质量好的短视频代运营品牌公司推荐 - 品牌宣传支持者
  • ContextGit:基于上下文感知的智能代码变更分析工具
  • 正则表达式规则
  • 团队开发中 Git flow 和 GitHub flow 有什么区别怎么选
  • 多智能体强化学习实战:从AgentGym平台到协作算法实现
  • AI Prompt 工程入门:RAG 生产级 Prompt 模板与 Java 实战
  • 本地包管理器指南:实现开发环境隔离与依赖管理的工程实践
  • 如何快速配置明日方舟自动化助手MAA:3步实现游戏效率翻倍
  • 软件测试:程序员必备的质量保障技能
  • 价签吊牌厂家哪家好?2026年精选口碑好实力强的珠宝价签牌源头厂家推荐:裕达领衔 - 栗子测评
  • 基于Arduino与Circuit Playground的智能课表提醒器硬件开发实践
  • VSCode里跑通点云转换:配置PCL环境并调试bin转pcd的C++程序(避坑指南)
  • Python在TVA系统中的核心意义(系列)
  • 化学数据格式转换不求人:手把手教你用pip和源码两种方式安装Open Babel 3.1.0
  • Qwen-Code代码生成模型实战:从部署集成到提示工程与风险规避
  • 电力设备红外图像检测数据集1114张VOC+YOLO格式
  • 开源远程光标共享工具Telecursor:低延迟实时协作的技术实现
  • 建筑理论研究卡点突破:用NotebookLM自动识别《空间的生产》与《建成环境符号学》概念映射关系(附17组可复用prompt)
  • 自动化(二)之Java自动化不同类型环境的配置浅析
  • Vite+React+TypeScript+VsCode框架实战
  • fre:ac免费音频转换器:跨平台终极指南与实用教程
  • 综合能源系统多级环式一体化设计【附代码】
  • 给老人的火车票打个折,挺好,但差了点什么
  • MySQL 配置文件(my.ini/my.cnf)核心参数详解,新手必改配置
  • 令牌管理实战:从JWT原理到token-ninja库的集成与应用
  • OpenContext开源框架:模块化设计实现AI上下文管理新范式
  • 甘蓝中耕除草机器人结构与运动控制【附代码】