Node.js

搜索文档
2 万程序员签名!Node.js 之父炮轰 Oracle,这事对行业有重大影响。网友直呼:它就是寄生虫
程序员的那些事· 2025-06-29 19:31
最新进展 - 商标审判和上诉委员会(TTAB)驳回了对甲骨文公司的欺诈指控,但相关方对此裁决持不同意见 [3] - 指控称甲骨文在2019年商标续展时故意提交Nodejs网站截图作为JavaScript商标使用证据,而Nodejs与甲骨文无任何关联 [4] - 案件核心主张转向商标的通用性和放弃使用,而非欺诈指控 [5] - JavaScript已成为全球通用的编程语言名称,而非特定品牌或甲骨文产品 [6] - 案件加速推进,甲骨文需在8月7日前回应撤销申请,9月6日启动证据开示程序 [7][8] - 已有20455人在javascripttm网站联署支持撤销商标 [8] JS商标恩怨由来 - 2024年11月Deno Land公司向USPTO提交请愿书要求撤销甲骨文对JavaScript商标的所有权 [12] - 商标最初由Sun Microsystems于1995年注册,2009年随Sun被甲骨文收购而转移 [14][15] - 甲骨文被指控长期闲置商标且未用于实际产品开发,唯一关联产品JET工具包市场影响力微弱 [15] - 2019年甲骨文商标续展时使用Nodejs官网截图作为证据,而Nodejs是独立开源项目与甲骨文无关 [17][18] - 2024年9月行业领袖发起联名公开信,联署人数从2024年11月的14万增至2025年6月的20万 [20][21] 法律程序与行业影响 - Deno Land指控甲骨文三项违规:商标通用化、欺诈行为和放弃使用 [22] - 技术命名混乱导致业界被迫使用ECMAScript替代JavaScript,部分企业收到甲骨文律师函 [25] - 甲骨文坚持商标被解读为法律威慑策略,类似其对Java商标的长期诉讼历史 [26] - 开源社区认为JavaScript应作为公共产品而非企业资产,Nodejs和Deno项目的成功佐证这一观点 [27] - 案件结果将决定JavaScript是否成为首个回归公共领域的主流编程语言名称 [28] 网友观点 - 网友质疑甲骨文在JavaScript商标上无实际利益却坚持诉讼的合理性 [32][33]
不到 2 个月,OpenAI 火速用 Rust 重写 AI 编程工具。尤雨溪也觉得 Rust 香!
程序员的那些事· 2025-06-06 08:32
OpenAI 用 Rust 重写 Codex CLI - OpenAI 已用 Rust 语言重写其 AI 命令行编程工具 Codex CLI,目的是提升性能、安全性并避免对 Node.js 的依赖 [1] - Codex 是一款实验性编程代理工具,可在 ChatGPT 网页浏览器环境或本地通过 CLI 运行,支持交互式和非交互式模式 [1] - 2025 年 4 月 17 日 Codex CLI 在 GitHub 上开源,支持 macOS、Linux 和 Windows 系统 [1] - 原版本基于 TypeScript 和 Node.js,现已用 Rust 完成重写,但 TypeScript 版本仍会维护至 Rust 版本功能对等 [1] 选择 Rust 重写的原因 - 零依赖安装:原版本要求 Node.js 22 及以上,可能成为用户门槛 [2][4] - 沙盒化需求:macOS 使用 Apple Seatbelt,Linux 默认不启用沙盒,Rust 版本实现了 macOS 的 sandbox-exec 和 Linux 的 Landlock 沙盒机制 [4] - 性能优化:Rust 无垃圾回收机制,内存需求更低 [5] - 可复用现有 Rust 版 MCP 实现:Codex CLI 将同时具备 MCP 客户端和服务器功能 [5] - 截至 6 月 6 日,Rust 在项目中占比 46.7%,超过 TypeScript 的 44.7% [5] 行业对 Rust 的认可 - Vue 创作者尤雨溪推出基于 Rust 的 Rolldown-Vite,替代原 Rollup.js 打包工具 [6] - 采用 Rust 后生产构建时间缩短 3 到 16 倍,内存使用量最多减少 100 倍 [6]
没有防御性编程,Rust服务稳定到不需要维护,然后老板说不需要我们了...
菜鸟教程· 2025-06-05 20:05
技术选型与性能表现 - 公司原有技术栈以Ruby和Node.js为主,面临支持10万并发用户的实时服务需求时,Ruby被确认不适合该场景 [2][3] - 团队进行四种语言概念验证(Elixir、Rust、Ruby、Node.js),Rust版本由新手开发者编写但仍以显著性能优势胜出:速度最快、内存占用最少 [5][8] - Elixir在并发处理中表现优异,Node.js受限于单线程需分布式部署,Ruby性能垫底 [9][10] Rust的采纳与开发过程 - 团队最终选择Rust因其通用性潜力,包括网络编程、Web服务及多语言SDK开发等战略价值 [10] - 项目时间紧张,由单一开发者采用极简架构实现:基于WebSocket的API,内存哈希表存储,事件推送至Kafka [13][14] - 开发效率极高:2周完成第一版,1-2周部署,一个月内扩展功能,稳定运行零故障 [15][18] 性能优化与管理层冲突 - 服务在50万并发用户活动前招聘3名Rust开发者优化,最终单台64核机器支持100万并发(P99延迟10ms)、200万并发(P99延迟25ms) [19][21] - 管理层因服务过于稳定质疑团队价值,强制要求转用Ruby/Node.js,导致3名Rust开发者离职 [20][22] - 禁用Rust后尝试Node.js重写失败,因单线程无法处理高负载,最终依赖第三方服务仍性能不足 [24][25][26] 结果与行业启示 - 原Rust服务持续在生产环境稳定运行但无人维护,成为"被遗忘的英雄" [28][29] - 技术决策受管理层变动显著影响,人力资源倾向主流技术栈(如Node.js/Ruby)与性能需求存在矛盾 [22][23] - 极端稳定性反成团队风险,揭示技术成功与管理预期错位的悖论 [1][29]
程序员:在 8 家公司当工具人后,终于明白“有用”和“被重视”差了 10 条街
程序员的那些事· 2025-06-04 10:13
职场价值认知 - 职场中"有用"与"被重视"存在本质差异:"有用"指高效完成特定任务,成为可靠执行者,但工作内容可能非战略核心[6];"被重视"则体现为参与战略决策和核心对话,获得明确晋升路径[6] - 两者外在信号相似(晋升/奖金/股票奖励),但"被重视"在危机时刻更显著(如裁员时获得留任奖金)[5][10] - "有用"可能导致角色停滞:案例显示员工虽持续获得奖金,但长期未被赋予战略职责或成长机会[12] 行业案例实证 - 数字化转型中技术人才价值凸显:某数据分析师在裁员期间因技能契合公司数字化方向,获得50%年薪的留任奖金[10] - 科技行业普遍现象:资深技术人员反映多数情况下仅被视为"有用"资源,仅少数获得战略角色机会[14][16] - 行业波动性影响:即使曾受重视的技术骨干(如10年TypeScript开发者)也可能因业务调整被裁[19] 职业发展模式 - 个人贡献者(IC)定位:工程师/分析师等专业岗位可通过技术能力获得认可,但需主动突破执行者角色[9] - 外包模式选择:部分技术人员倾向合同工形式,规避公司政治,专注技术问题解决[17] - 职业路径分异:商业导向者易获晋升,而纯技术导向者可能面临成长瓶颈[16][17] 行业现状观察 - 科技企业人才管理现实:多数员工被视为可替换资源,真正战略重视案例罕见[14][15] - 技能价值动态变化:数字化技术等新兴领域人才短期内更受重视[10][19] - 绩效评价局限性:高绩效执行者可能长期未被纳入战略梯队,反映人才评估机制缺陷[12][18]
公司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]
公司Rust团队全员被裁,只因把服务写得「太稳定」:“项目0故障、0报警,那养着3个Rust工程师没用啊”
36氪· 2025-05-30 17:32
技术选型与项目背景 - 公司是一家疫情期间快速成长的独角兽初创公司,主力应用采用Ruby on Rails编写,视频处理工具使用Node.js实现,初期未采用高性能编译型语言如Rust或Go [2] - 公司计划开发实时服务以显示用户在线状态和操作行为,初期需支撑10万并发用户,团队普遍认为Ruby不适合实现此类系统 [2] - 技术选型阶段团队倾向Rust,但管理层要求进行多语言原型对比测试,最终测试语言包括Elixir、Rust、Ruby和Node.js [3] Rust技术表现 - 基准测试结果显示Rust版本速度最快、内存占用最低,Elixir次之,Node.js受限于单线程运行时,Ruby表现最慢 [3] - Rust原型虽存在小bug(高负载下阻塞运行时几秒),但对熟悉Rust的开发者来说易于修复 [3] - 团队综合考虑性能、易用性和公司适配性后最终选择Rust实现实时服务,原本偏好Elixir的开发者实际使用后也投票支持Rust [4] - Rust服务MVP版本仅用两周完成,再花两周部署上线,稳定支撑10万并发用户无压力,后续功能扩展也未出现故障 [5] 项目发展与团队变动 - 公司战略调整导致实时功能被搁置,Rust服务转入维护模式,原开发团队解散 [6] - 公司筹备大型活动时预计需支撑50万并发用户,管理层招聘3名Rust工程师优化服务,调整系统配置后性能显著提升:支持100万并发(p99延迟10ms)和200万并发(p99延迟25ms) [6] - 服务过于稳定导致Rust工程师无事可做,新管理层上任后认为团队冗余,强制要求Rust工程师转岗或离职 [7][8] - 3名Rust开发者全部离职,公司放弃推广Rust的宝贵机会,尽管存在多个业务场景亟需高性能组件 [8] 技术重写与行业反响 - 管理层决定将Rust服务重写为Node.js版本以便现有团队维护,但首次重写尝试失败 [9] - Node.js受限于单线程运行时,需重构架构(多进程、多节点、队列或数据库中转)才能支撑百万连接,实现复杂度远高于Rust方案 [9][10] - 目前Rust服务仍在运行但缺乏维护团队,扩展需求被放弃或改用次优方案替代 [10] - 开发者社区普遍反映类似情况在各公司常见,新管理层常因不理解技术价值而做出破坏创新能力的决策 [10]