Programming thought experiment: stuck in a room with a PC without an OS3 months agohttps://old.reddit.com/r/programming/comments/9x15g/comment/c0ewj2c/r/programming 是一个用于讨论计算机编程相关新闻和话题的 Reddit 社区。该社区严格执行规则,禁止AI生成内容、政治帖、产品推广、调查问卷、求助问题、图片和低质量帖子。评论中不得包含机器人或不当言论,鼓励用户通过评论或相关语言特定的子版块进行互动。
OpenCode Bug: "I did not say that you did"3 months agohttps://www.williamangel.net/blog/2026/07/08/OpenCode-Bug-I-did-not-say-that-you...用户讲述了一个关于《杀戮尖塔2》模组修复的故事:多人游戏中可售卖卡牌的数量被错误地共享,而非每个玩家独立计算。用户提到,在使用Gemma4:31b模型生成Markdown计划时,Gemma的回复以波兰语'dokładnie i zwięźle.'结尾,意为'准确且简洁地'。当用户询问Gemma为何这样说时,Gemma在思考过程中解释了该短语的含义,但最终否认说过这些话,反而将其归因于用户。用户怀疑是OpenCode框架存在漏洞,但觉得有趣的是,自己首次用波兰语说的话竟是'准确且简洁地'。故事还包含OpenCode版本(1.14.28)、所用模型(Gemma4:31B)等细节,并提到完整记录已保存在一个Markdown文件中。
Rust 1.97.03 months agohttps://blog.rust-lang.org/2026/07/09/Rust-1.97.0/Rust 1.97.0 稳定版发布公告,包含通过 rustup 的更新说明。符号重整 v0 默认启用,取代了传统的基于 Itanium 的方案。Cargo 现在支持拒绝警告,改善了 CI 工作流程和缓存效率。链接器输出不再默认隐藏,为调试显示警告信息。已稳定的 API 包括整数和 NonZero 类型的方法,以及常量上下文更新。
Almost Always Unsigned3 months agohttps://graphitemaster.github.io/aau/使用无符号整数通常更为合适,因为程序中的大多数整数值并不表示负数。针对无符号整数的常见反对意见,如安全性和反向循环问题,可以通过正确的编程习惯来规避下溢问题。相比于有符号整数,无符号整数在计算差值、中点以及进行溢出检查时允许进行更安全的计算。在C和C++等语言中默认使用有符号整数是历史遗留的选择,而使用无符号整数可以简化代码并提高诊断效率。即使对于定义了有符号整数回绕行为的语言,安全问题依然存在,而无符号整数能强制考虑所有输入范围。
The Art of Computer Programming by Donald E. Knuth3 months agohttps://www-cs-faculty.stanford.edu/~knuth/taocp.html《计算机程序设计艺术》(TAOCP)系列图书在1999年被评选为世纪最佳十二部自然科学专著之一。电子PDF版本是经过授权且推荐的;非PDF格式的电子书(例如Kindle)被告知可能存在兼容问题,可能会被替换。第1-4B卷已经出版,并有多国语言译本;第4C卷及后续卷(第5-7卷)正在规划或准备中。更新和纠错通过勘误列表进行管理,并为报告错误的读者提供奖励。TAOCP采用名为MMIX的RISC机器替代了旧版的MIX,尤其是在新版及第4A卷中。
Guest Post: Atari Origins – By Mark Miller3 months agohttps://www.goto10retro.com/p/guest-post-atari-origins1988年,马克·米勒购买了一台Atari 130XE电脑,他主要用它配合AtariWriter Plus软件来撰写学校论文,而他周围的人则在使用更先进的16位PC或Mac电脑。尽管他的Atari电脑没有官方的终端软件,但米勒创造性地使用了一个名为VT10Squared的VT-100模拟器和一个终端程序,从宿舍访问并使用校园超级计算机的全屏编辑器(FSE)进行Pascal编程。他探索并利用了Atari电脑上的多种编程工具,包括Kyan Pascal和一个名为CC8的PD C编译器,并成功通过自编的256字节堆管理器将数据结构作业移植到C语言中。米勒后来在1992年通过创意融资方式购得一台Mega STe电脑,并在大学最后一年使用它,不过他当时并未用其编译作业,而是选择在毕业后移植项目。
Clojure 1.13 adds support for checked keys3 months agohttps://clojure.org/news/2026/07/02/clojure-1-13-alpha1Clojure 1.13.0-alpha1 版本发布,现已提供下载信息新增受检查的映射解构指令 :keys!/:syms!/:strs!,确保所需键被绑定,缺失时抛出异常PersistentArrayMaps 现在最多可容纳 64 个关键字键后才转换为 PersistentHashMaps,提高效率和优化CLJ-2891 从静态初始化器常量中移除 ACC_FINAL,为 Java 字节码基线更新做准备运行库和测试依赖项已更新至最新版本
Scheme Is a Hoot3 months agohttps://gracefulliberty.com/notes/scheme-is-a-hoot/作者正在学习Scheme语言,并尝试在其中实现物理概念,使用Hoot工具将代码编译为Web格式。Hoot目前尚不稳定(版本0.9.0),其文档较为详细但错误信息较为隐晦。不过它允许在不依赖Emscripten的情况下,通过自定义的WebAssembly将Scheme代码运行在Web环境中。起初对Hoot的兼容性有误解;曾将代码移植为使用Hoot特定的函数,后来发现通过手动导入,它能支持更多Guile的特性。现已设置代码以同时支持原生Guile和通过Hoot的WASM环境运行,并为两种环境设置了自动化测试,使大部分代码无需关心运行时环境。目前专注于后端设置和基础物理逻辑的开发,已取得一些进展,包括发布了原型版本和开源代码。未来计划探索用Hoot将Zig + Scheme的组合编译到Web环境,尽管这可能带来一定的复杂性,但仍想尝试这一组合的可能性。
Programmers need to start meditating now3 months agohttps://jacob.gold/posts/programmers-need-to-start-meditating-now/编程曾提供了冥想的流动状态,通过减少默认模式网络的活动来平静心灵,这一网络与反复思考和担忧相关。现代编程角色涉及持续的上下文切换和多任务处理,这减少了处于心流状态的时间,并可能影响心理健康。程序员应采用新的冥想实践,如爱好或类似Calm或Waking Up的应用,以弥补工作中固有冥想的缺失。
AI has torched the market for junior programmers3 months agohttps://seldo.com/posts/ai-has-torched-the-market-for-junior-programmers/人工智能显著减少了初级程序员的工作机会,22-25岁开发人员的就业自2022年底以来下降了19%。从2022年5月到2025年5月,软件开发人员总数增长了10%,但由于初级职位在劳动力中所占份额较小,其下降趋势在汇总数据中被掩盖。专注于按规范编写代码的传统编程工作正在萎缩,而需要判断力的角色,如数据科学家和系统分析师,正在增长。新开发人员激增,GitHub在2025年增加了3600万个账户,应用商店提交量增长了24%,但其中许多人不自称为程序员。高级开发人员的职业管道面临风险,因为人工智能现在处理初级任务,打破了就业中传统的学徒模式。安全担忧正在上升,因为人工智能生成的代码经常无法通过基本测试,许多新应用程序存在关键缺陷,突显了监督的缺乏。一些公司如IBM正在重新设计入门级职位,专注于客户接触和规范制定,而其他公司如Salesforce已暂停招聘。入门级职位的招聘信息在2025年5月开始复苏,表明市场可能出现修正,但重建职业阶梯对该职业的未来仍然至关重要。
OCaml 5.5 Released3 months agohttps://discuss.ocaml.org/t/ocaml-5-5-0-released/18265OCaml 5.5.0 引入了模块依赖函数,允许模块作为函数参数,实现轻量级函子功能。编译器现在可重定位,无需重新编译即可克隆开关,以加速设置过程。高阶多态函数可直接通过函数参数中的显式类型注解定义。新增了用于搜索和替换子字符串的字符串函数,采用常量空间算法。广义局部定义允许在局部定义类型、类或模块类型。外部类型增强了FFI互操作性,通过使类型可区分来改进GADT行为。垃圾回收改进包括在主要GC开始时引入仅清理阶段和空闲阶段,以实现更平滑的性能。Windows实现不再依赖Winpthreads,并进行了许多增量更改和错误修复。
Tiny-C Reference Manual Excerpt3 months agohttps://permacomputer.solarpunk.au/?p=204本手册将tiny-c介绍为一门受BASIC启发的语言,其重点是通过单一计算环境来降低学习难度。它描述tiny-c是一种结构化编程语言,支持if-then-else条件语句、while循环、函数、变量(全局与局部)、指针和数组,既适合教学训练,也足够强大以应对实际应用。通过示例程序“猜数字”的逐步讲解,展示了关键特性,如注释、函数、复合语句、变量声明以及if和while循环等控制结构。它强调了结构化编程原则,包括模块化、可预测的程序流程、局部变量以及有意义的变量命名,以增强程序的清晰度和简洁性。手册还涵盖不同系统的安装指南,并面向包括初学者和经验丰富的程序员在内的多类读者群体。
Stroustrup's Rule (2024)4 months agohttps://buttondown.com/hillelwayne/archive/stroustrups-rule/斯特鲁普斯特鲁普法则:初学者需要显式语法,而专家偏爱简洁语法。Rust的错误处理从显式的匹配语句演变为?运算符。Python的'海象'运算符争论突显了专家青睐的简洁性与初学者需求的清晰性之间的张力。教学需在专家偏好的简洁语法与适合初学者的显式示例之间取得平衡。TLA+的例子对比了教学清晰度方面:显式不变式与更简洁的函数集合。