后端开发别总用熟悉的语言试试新挑战
别再被语言默认值绑住手脚
以前做桌面软件,语言基本是“被安排”的。Windows 阵营里,C++ 几乎是标配。你想换?基本没得选。
后来互联网来了,一切都变了。
现在你自己租服务器,自己选运行环境。操作系统不再管你用什么语言,竞争对手的技术栈也管不着。问题是,大多数团队还没真正意识到这点自由能带来多大好处。
你已经感受到的市场压力
技术创始人常忽略一件事:语言选择现在是竞争变量。
你团队挑了 Go、Node.js 或者 Java,觉得稳妥。但另一家创业公司可能已经在用完全不同的方式开发。他们修 bug 的速度比你开会都快,迭代功能的速度让你感觉“犯规”。
他们不是更聪明,而是跑在了不同的开发节奏上。
Paul Graham 二十多年前就说过,用 Lisp 的公司能更快地迭代产品。今天这个道理依然成立。只要你选的语言支持快速试错、能随时改动、能立刻看到效果,你就比别人多了一条赛道。
增量开发的真正优势
2024 年了,做产品还指望一次写好、半年上线?早就没人这么干了。
大家现在都是先扔个 MVP 上线,看用户反应,再慢慢调整。支持这种节奏的语言和框架,才真正有优势:
- 反馈快:写完功能马上就能测,不用等编译、不用等打包。
- 线上调试:直接在生产环境里加载代码,复现用户问题,当场修好。
- 重构轻松:产品方向变了,代码也能跟着改,不用大动干戈。
Viaweb 当年的例子很说明问题。他们从 120 行原型起步,最后把产品做到了 25,000 行,而且开发团队从来没离开过“能跑的代码”超过两天。
基础设施成了调试利器
云服务器普及后,你的数据就在自己手里。
用户反馈 bug 时,你不用再猜他们用了什么设备、什么环境。你可以直接把他们的数据状态加载进来,在交互环境中跑一遍,看哪里出了问题,然后马上修复。
有些语言需要走一整套部署流程,有些则支持即时热加载。区别就是:“下个版本再修”还是“刷新页面就能看到效果”。
宏和领域语言的好处
现在做 Web 开发,越来越多的是在搭抽象层。
你不会再手动写 HTTP handler,也不会再手写 HTML 字符串,而是用框架和模板。但如果语言本身就能帮你生成这些抽象呢?
在 Lisp 里,宏不是外挂,而是语言的一部分。你可以用它直接扩展语法,让代码结构跟数据结构对齐。写起来像在描述问题本身,而不是在“翻译”。
大多数语言都需要在代码和模板之间来回切换,有些甚至需要拼字符串。这<|eos|>