因为不够有趣:为什么语言会失败
有人认为,编程语言的成功与其说取决于技术上的优雅,不如说取决于“有趣”程度、生态强度,以及主要平台或公司的支持等人为因素。评论者反对把一切都简化为有趣,转而指出就业前景、库和工具、社区文化,以及历史偶然性,正是这些因素帮助 C、JavaScript、Python 和 Rust 等语言繁荣起来,而更精致或更具表达力的选项(Lisp、Haskell、Scala、Objective-C)则仍停留在小众。还有人将其与 AI 辅助编码类比,认为 AI 虽然快速方便,却常产出平庸代码,这强化了这样一种观点:工具的胜出靠的是实用性与集成,而不是纯粹的复杂性。
AI 与代码生成
- 几条评论把文章里“采样器 vs 音乐家”的类比映射到 AI:AI 能快速生成代码,但缺乏“灵魂”和设计洞察。
- 有人认为 AI“非常擅长产出代码”;也有人强烈不同意,称其输出臃肿、分层不佳,而且很难引导到优雅或符合惯用风格的设计。
- 结论:LLM 代码生成很快,也适合一次性脚本或非关键组件,但目前还不能稳定地产出“好”的或架构上健全的代码。
语言为何成功或失败
- 许多人认为,成功很少只取决于语言本身的优雅;平台适配、时机和背书更重要。
- “原生于某个平台”这一点(例如浏览器里的 JS、Apple 的 Swift、JVM 上的 Java)被反复认为是决定性因素。
- 生态系统(stdlib、库、工具、文档、就业市场)被认为比核心语法更重要。
平台、生态与政治
- 厂商推动被视为关键:Apple 之于 Swift,Microsoft 之于 C#/VB,Mozilla 之于 Rust。
- 有人认为语言的流行高度政治化:由英语社区和“圈内”推广者主导。
- 商业可得性与免费可得性(例如 ColdFusion vs PHP)被认为塑造了早期 Web 语言的采用。
关于特定语言的争论
- Objective‑C vs Swift:对于 ObjC 是否“失败”存在分歧;有人认为它只是被 Apple 政策弃用,而非因为不够有趣。
- JavaScript vs Python:对于哪一个是“繁荣”还是“衰退”存在分歧;JS 依靠浏览器无处不在而胜出,Python 则凭借生态与可读性。
- Scala:有人把它的问题归因于精英主义社区、缓慢的工具链,以及一场没有解决核心痛点的漫长编译器重写。
- Lisp:因 REPL、宏和有趣而受到赞扬;但也因生态薄弱、碎片化而受到批评。
- C/C++:有人不喜欢它们的复杂性,但也承认它们在性能和历史存量上的地位。
- Kotlin vs Java:Kotlin 被认为更令人愉悦,但至今还未能取代 Java 根深蒂固的位置。
“有趣”与实用性
- 多位评论者说,“有趣”是主观的,也不足以预测成功。
- “无聊”或规则严格的语言(Go、Java、C)也能繁荣,因为它们可预测、有支持,并且是“稳妥的选择”。
- 一些维护者明确表示会雇佣真正享受编码的人;另一些则强调工作优先考虑稳定,而不是快乐。
工具链、REPL 与开发者体验
- 好的包管理器、构建工具和跨平台 GUI 被视为重要的采用驱动因素。
- 以 REPL 为中心的工作流(Lisp 及其他)与以单元测试为中心的工作流形成对比;它们被视为互补,而非可互换。
- Rust 被描述为语法上“不有趣”,但因出色的工具链(cargo、crates)而得到挽回。