ACM Queue 技术杂志

ACM Queue — ACM 面向资深工程师的软件工程实践期刊。

与 Arthur Whitney 对话:代码可以过于简练吗?(2009)

Arthur Whitney(K/Q 语言设计者)与 DTrace 开发者 Bryan Cantrill 的对话。Whitney 11 岁接触 APL,后在 Morgan Stanley 用自研 APL 变体处理 T 级交易数据,最终收敛出 K、Q。 核心观点:语言词汇保持在 ~50 个操作、无库、代码即注释;他自认为常把代码写得太短,但每行不超过 7 个操作仍可读。调试靠插入 print 而非调试器;20 年 Wall Street 客户中仅 1 次不可复现 bug(出在 C 底层)。 认为优雅=短且清晰,短证明类比短代码;语言影响思考方式(Ken Iverson “符号即思维工具”)。Q 相对 K 用词法增加可读性,但销售价值大于实际学习成本。 文章是一手技术人访谈,信息密度较高,适合语言设计、数据系统、性能工程读者。
评论点赞收藏9 天前

管理技术债的不道德手段:装看不见就不道德吗?

DevOps专家Thomas Limoncelli提出:「technical debt」这个说法本身就有问题——MBA出身的管理者认为债务是好事,因为债务能带来利润。 他建议用「operational drag」替代。文章列举了六类管理技术债的手段:改名、装看不见、绑到大项目上、电工规则、20%规则、藏起会产生债务的方案,并给出Crawl/Walk/Run和反向农夫法则等正面做法。 文中穿插AT&T Wireless因CRM升级跳过导致崩溃的真实案例。
评论点赞收藏16 天前

无需MMU,CHERIoT如何实现强隔离与易用性

微软研究院2019年启动的CHERIoT平台在不使用MMU的情况下提供强内存安全。基于RISC-V架构,通过CHERI能力系统实现空间/时间内存安全和类型安全。 采用分舱架构替代传统进程模型,内存分配跟随共享规则——被调用方从调用方的配额中分配内存,实现流隔离。硅片面积开销仅约1%。
评论点赞收藏19 天前

C 并非低级语言

C 不是一种低级语言。现代处理器为维持 C 的串行抽象机模型,引入了大量复杂机制,直接导致了 Meltdown 和 Spectre 漏洞。Clang/LLVM 编译器约 200 万行代码,其中优化相关近 20 万行——C 的性能并非来自语言本身,而是靠编译器强行榨取。 现代 CPU 同时飞行 180 条指令,而 C 抽象机期望每条指令串行完成。GPU 通过显式并行而非 ILP 获得高性能,Erlang 等语言通过不可变对象简化缓存一致性协议。 作者认为应重新思考处理器设计,而非继续为 C 妥协。
评论点赞收藏23 天前

C并非低级语言

Meltdown和Spectre漏洞的根源在于处理器试图维持C语言抽象机器的假象。现代CPU的推测执行、寄存器重命名、多级缓存等设计,都是为了在运行C代码时模拟PDP-11的串行执行模型,这带来了巨大复杂性和安全隐患。 Clang编译器约200万行代码,其中近20万行专门用于C优化。36%的C程序员对结构体填充位是否为零存在误解。文章主张应放弃让处理器迁就C语言,转而设计专为速度优化的新架构。
评论点赞收藏28 天前

划清界限:哪些决策不该交给大语言模型

AI正在接管代码编写,但软件工程师真正不可替代的工作是决定做什么、判断结果是否达标、为失败负责。文章基于一线团队观察提出:工程师角色将转向行为规格定义、工程化异议机制和持续仪器化监控。 一个尖锐后果被指出——我们在用AI消除培养 senior judgment 的必经之路(写大量平庸代码、亲历失败),却同时要求更多 senior judgment。
评论点赞收藏40 天前

软件工程与生成式AI的八大迷思

微软研究团队基于大规模数据,系统拆解了生成式AI在软件工程中的八个常见迷思。开发者实际编码时间仅占14%,AI提升编码速度对整体生产力影响有限;代码行数不是有效指标,反而可能激励刷量行为;AI对不同任务和工程师效果差异显著,有经验开发者使用AI反而平均增加18%实现时间;企业受合规、遗留系统和可靠性约束,无法像初创公司那样快速创新。 研究认为,AI生产力提升需要组织层面重新设计工作流程,而非仅给工程师发放工具许可。
评论点赞收藏56 天前

根基从何而来?AI 时代的工程能力培养路径

AI 能提升效率,但不能替代工程师的判断力根基。波士顿大学教授 Ed Solovey 在 Digits 公司的实习项目中发现,直接让新人使用 AI 工具会导致产出泛滥但理解缺失。 他提出三阶段渐进式上手:先手动编码建立词汇表,再用 AI 作为导师构建心智模型,最后才进入 AI 协同阶段。文章强调评估体系必须考核“输出无法证明”的能力——如问题拆解、系统解释和设计辩护,而非仅看最终成果。 这对高校课程改革和企业新人培训都有实操参考价值。
评论点赞收藏64 天前

不要“赢”,要解决冲突

ACM Queue 专栏作者 Kate Matsudaira 分享职场冲突处理经验。核心观点是放弃“赢”的心态,转而寻求共识与推进项目。建议包括:寻找共同目标、控制情绪避免爆发、聚焦事实而非主观臆断、复述对方观点以确认理解,以及坚持到底直到达成结论。 文章强调在技术决策中,对齐和妥协比证明谁对谁错更重要,这是成熟工程师和管理者的关键软技能。
评论点赞收藏68 天前

学会放手:何时该切断对工作的过度情感依恋

资深技术领袖 Kate Matsudaira 结合自身及微软、亚马逊等大厂管理经验,探讨工程师如何克服对代码和项目的“情感依恋”。文章指出过度投入会导致沉没成本谬误和非理性决策,并给出六条管理策略:对齐目标、保持开放、询问故事而非方案、认可经验并提出新解读、寻求第三方帮助以及练习同理心。 内容偏向软技能与团队管理,适合处于技术管理岗位或面临跨团队协作冲突的读者。
评论点赞收藏68 天前

再见,感谢所有的“ bikeshed ”(闲谈)

FreeBSD 核心开发者 Poul-Henning Kamp 宣布告别 ACM Queue 专栏,并抛出关于 FOSS 未来的激进预测:他认为在年龄验证和数字主权压力下,FOSS 将走向终结。 文章指出,LLM 代码审查只是短暂泡沫,但强制合规将迫使软件转向“可信计算平台”和签名机制,导致开源维护者从个人转向公司委员会,最终形成类似 App Store 的围墙花园模式。
评论点赞收藏73 天前

手动操作就是Bug:迈向全自动化的四步法

Sysadmin专家Thomas Limoncelli提出“手动操作即Bug”理念,主张将每次手动执行视为自动化迭代的机会。文章详细拆解了从文档记录、命令行片段到脚本及自助系统的四阶段演进路径,强调通过持续改进降低团队认知负荷与单点故障风险。 对于长期被重复性工作困扰的运维和后端工程师,提供了极具实操性的工程化思维框架。
评论点赞收藏76 天前

网关外的野蛮人:高频交易与交易所技术内幕

前高频交易员详解HFT底层技术栈,从微秒级延迟优化、FPGA硬件加速到交易所网络架构。文中包含大量工程细节,如实时内核绕过、交换机定制代码及排队论在撮合中的应用,揭示了自动化交易如何逼近物理极限。
评论点赞收藏81 天前

你对形式化验证一无所知

文章以权限系统漏洞为例,说明传统测试无法覆盖所有边界情况,而形式化验证能确保代码逻辑绝对正确。 作者认为随着大模型能自动生成证明,形式化验证的成本大幅降低,正从航空芯片领域走向主流软件开发。
评论点赞收藏93 天前

跨语言互操作性面临的挑战

本文深入分析了不同编程语言之间进行互操作时面临的核心技术挑战。 作者从对象模型差异、内存管理模型冲突、异常处理机制的不兼容以及函数式与命令式语言的副作用问题等多个维度, 详细阐述了跨语言调用的复杂性。 文章特别指出了现代硬件异构化和软件复杂度提升背景下,单一语言难以覆盖所有场景的现状。通过对比C++、Java、Smalltalk、Objective-C等语言的具体实现案例,揭示了在对象继承、垃圾回收确定性、异常传播及并行模型等方面存在的深层矛盾与工程难题。
评论点赞收藏127 天前

注释比代码更重要

Jef Raskin 指出代码无法自文档化,自动文档生成器也无效。他强调注释应解释“为什么”而非“是什么”,主张先写文档再编码。 这一观点挑战了“自文档化代码”和极限编程的主流理念。 虽然文章发表于2005年,但其关于维护成本和工程严谨性的论述依然具有强烈的现实意义。
评论点赞收藏137 天前

AI原生开发者:重构工作、身份与技艺的未来

微软研究院基于大规模调研,揭示开发者虽使用AI却感到工作意义下降。研究发现开发者并非抗拒AI,而是保护具有身份认同的核心工作。 文章提出开发者正向“代码创意总监”转型,通过愿景、指挥和验证来管理AI代理。同时探讨了中级开发者的技能退化焦虑及初级工程师的培养难题。
评论点赞收藏138 天前

开源与冰山理论:为何“依赖管理”已不够

文章以冰山理论比喻开源依赖风险,指出企业过度依赖看不见的底层代码。通过 Log4j 等案例说明维护者倦怠和漏洞带来的系统性危机。 Bloomberg 分享了其应对策略,包括建立安全基线、评估社区健康指标,以及通过长期投入支持 pandas 等项目,强调从被动修补转向主动维持开源生态健康。
评论点赞收藏160 天前

迷失在开源集市的一代:质量源于责任

FreeBSD 核心开发者 Poul-Henning Kamp 批评开源“集市”模式导致软件质量下降。他以 FreeBSD 端口集为例,指出过度模块化造成依赖混乱和代码重复。 他认为 Unix 的衰落源于缺乏单一责任人,呼吁回归精心设计的“大教堂”模式,强调质量需要专人负责。
评论点赞收藏160 天前

KV 的叛道:信仰式计算与人工科学

Kode Vicious 专栏作家 George Neville-Niel 批评当前 AI 开发中的“信仰式”狂热。他认为编程是理解系统构建逻辑的工程科学,而非盲目依赖 LLM 生成代码。 文章强调开发者必须保持怀疑精神,深入理解代码原理,警惕因过度使用 AI 工具而产生的“认知债务”和代码质量下降风险。
评论点赞收藏165 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。