Workflow
Ruby on Rails
icon
搜索文档
对话 Ruby on Rails 之父:发自内心恨透 Copilot,手凿代码才是程序员的乐趣
AI科技大本营· 2025-07-14 14:36
编程哲学与技术选择 - Ruby on Rails 创始人 DHH 认为 Ruby 的设计目标是优化程序员幸福感,其语法更接近人类语言而非机器指令,如 `5.times { ... }` 的写法 [10][11] - 动态类型语言(如 Ruby)相比静态类型(如 TypeScript)更能保持代码简洁和创造力,静态类型系统捕捉的通常是浅显错误且阻碍元编程能力 [14][15] - 微服务架构被过度兜售,99% 的公司更适合"宏伟的单体应用",避免引入网络延迟、分布式事务等复杂性,小团队选择微服务是"自寻死路" [17][18] 开发工具与 AI 编程 - DHH 坚持使用纯文本编辑器而非 IDE,拒绝自动补全功能,认为手动输入代码能培养肌肉记忆和设计思维 [19] - GitHub Copilot 等 AI 编程助手可能导致核心技能退化,生成冗长平庸的代码并打断深度思考,但可作为学习工具快速获取示例代码 [21][22][23] - AI 作为教育工具潜力巨大,能快速解答"愚蠢问题"(如 Unix 命令),但创造模式需关闭 AI 以保持专注 [25] 商业与开源理念 - 37signals(Basecamp & HEY)拒绝风险投资,采用"拉面盈利"模式,用客户付费而非外部资本驱动增长 [26][27] - 公开挑战苹果 App Store 30% 分成政策,认为平台滥用垄断地位,最终迫使苹果让步 [29][30][31] - 开源软件应是纯粹礼物而非交易,反对 Automattic 因使用 Stimulus 框架而提出股权补偿的提议 [32][33][34] 职业建议与行业观察 - 编程应围绕真实问题而非技术热度,为自己构建工具能提升学习动力,如 DHH 早期为游戏新闻网站开发自动化工具 [8][35] - 行业教条需批判性看待,鼓励发展个人风格,最创新工作常来自挑战传统智慧的人 [35] - 开发者需平衡技术趋势与核心技能,警惕过度依赖工具导致能力流失 [21][22]
公司Rust团队全员被裁,只因把服务写得「太稳定」:“项目0故障、0报警,那养着3个Rust工程师没用啊”
猿大侠· 2025-06-02 12:22
项目背景与技术选型 - 一家快速成长的独角兽初创公司主力应用采用Ruby on Rails和Node.js,未使用高性能编译型语言如Rust或Go [3] - 公司计划开发实时在线状态服务,初期需支撑10万并发用户,团队认为Ruby不适合此场景 [3] - 技术选型阶段,团队用Elixir、Rust、Ruby和Node.js编写原型进行性能测试,Rust因灵活性和性能脱颖而出 [4][6][7] Rust项目开发与性能表现 - Rust版本在基准测试中速度最快、内存占用最低,Elixir次之,Node.js受限于单线程,Ruby最慢 [10] - MVP版本仅用两周开发完成,两周部署上线,采用内存哈希表和Kafka事件推送的极简设计 [8][9] - 服务稳定支撑10万并发用户,后续扩展功能也未出现故障 [11] - 优化后性能显著提升:支持100万并发(p99延迟10ms)和200万并发(p99延迟25ms) [12] 管理决策与Rust团队解散 - 公司战略调整导致实时功能搁置,Rust团队解散,服务转入低维护状态 [12] - 新管理层认为Rust工程师"冗余",要求其转岗至Ruby/Node.js或离职,3名Rust开发者全部离开 [14][15] - 决策层未采纳推广Rust的建议,尽管已有成熟服务、工程师和多个适用业务场景 [15] 技术重写与后续影响 - 管理层强制用Node.js重写Rust服务,首次尝试因架构复杂性失败,需依赖第三方平台Ably但性能不达标 [16] - 最终Rust服务虽仍在运行,但因缺乏维护团队,扩展需求被放弃或采用次优方案 [17] - 开发者社区反馈此类事件普遍存在,管理层常因不理解技术价值而抵触非主流技术 [18] 行业现象与开发者观点 - 类似案例常见:技术成功反导致团队被裁,因"无维护需求"难以向管理层证明价值 [17][18] - 企业扩张中管理更替易破坏技术创新,决策者倾向选择主流技术而非最优方案 [18] - Rust等高性能语言面临推广困境,尤其在非技术驱动型组织中 [15][18]