2026年9月25日。十行代码,它们以各自的方式对我意义重大:有的出自我手,有的是我大段抄来的,有的让我发笑,有的让我落泪。第一段是 BASIC 里的 Hello World:10 PRINT "HELLO, WORLD!" 与 20 GOTO 10。作者已记不清第一次敲下它是什么时候,也记不清是否就是这个版本,也许少了逗号,也许多了几个感叹号。但计算机还是照办了,欢快地向世界问好,尤其是向那个第一次与计算机对话、瞪大眼睛的孩子问好。
正文
十行代码,不知怎地对我意义重大——要么自己写的,要么大段抄的,要么让我笑过或哭过。
Hello World
10 PRINT "HELLO, WORLD!" 和 20 GOTO 10 不记得首次敲下的精确版本,也许没逗号或多些感叹号。但电脑听话地不停向世界问好,尤其是那个第一次与电脑交流、瞪大眼的孩子。第二行让人明白电脑唯命是从,永远问好!
Holy JavaScript weirdness, Batman!
Array(16).join('wat' - 1) + ' Batman' 粘进浏览器控制台,是老派影视文化与极客幽默的交叉,还顶着“JavaScript 真蠢”的味儿。经典,初次跑时真心大笑。
Self modifying 6502 assembly code
机器语言最贴硬件,无警告无日志无护栏,甚至允许运行时代码自改。像这例:用 LDX #$00 置零,循环里 LDA $2000,X 读、STA $0400,X 写、INX 加一、BNE .loop 未零跳回;之后 INC .loop+2 和 INC .loop+5 改地址高字节(6502小端故用+2/+5),循环从 $2000 到 $20FF 后升地址重来。低级硬核略危险,让人深知贴着硬件编程时无所不能。
touch.bat
type nul > .\"%*" 这小批处理在 Windows 上充当穷人版 touch,从 NT 到 Win7 我常用。在 Total Commander 迷你壳敲 touch filename.txt 速建空文件,没它不行。
CSS debugger
border: 10px solid hotpink; 层叠里的 console.log、样式界的 var_dump!且永远 hotpink。
Infinite lives
POKE 9450,173 把特定字节戳进内存正确位置,突然得无限生命能量钱。不仅能作弊,更让人有力领悟:任何游戏一切皆可调,只要知去哪 PEEK POKE。
The speed-up loop
for(i=0;i<1000000;i++) {;} Wayne 说主意是:慢周没修 bug 没改动,就去掉循环一个零,告诉经理最新需求致速度问题,但经深度优化显著提速,下周再做。好笑故事,对熬过无聊无目标项目的人有吸引力。
RTFM or rm -rf /
# rm -rf / 2000年代遇 Linux 问题常上 IRC 求助,总见万能药:root 跑 rm -rf /。包治百病,问题瞬间消失!
SKAN2.PAS
90年代初学校刚建局域网,我和极客伙计探索,知用户名皆三字母,未用者留默认密码。用 Borland Pascal 撸出极糙用户名扫描器 SKAN2.PAS({$M $4000,0,0} 设栈,a/b/c 三字符从 a 增到 z 拼串 exec('z:\public\full.exe',str))。bug 比代码多但勉强干活(都 v2.00 了!)。开心黑完休眠账户就撤了。
CSS280
*{transform:translateY(24vh);text-align:center}*>:before{animation:a 9s 1e+9 linear;content:'Roses are #F00'}@keyframes a{...} 仅280字符 CSS 的动画诗,无 JS 无 HTML,空文档加 style 块就跑。限制从推特140升280,可贴片段去 CodePen 看效果。尤傲 1e+9 时长比 infinite 短(时间字符数皆短)。
评论
社区成员广泛分享自身难忘的代码片段与早期编程回忆,并对原文中 CSS 调试方式及 Windows touch 脚本的语义偏差提出修正,整体氛围怀旧且兼具技术考据。
认为 CSS 调试应用 outline 而非 border 以避免布局破坏
- 多名开发者指出用 outline 加负偏移可在不重排内容的前提下高亮元素,而原文若用 border 会破坏布局(较多人) > 调试 CSS 该用 outline 而非 border,因为后者会毁掉排版(@chris_engel)
怀念早期用 BASIC 与 poke 制造的屏幕特效和恶作剧
- 不少用户回忆在八九十年代用 BASIC 的 print+goto 循环、poke 随机字符或改按键重复率捉弄同伴,认为这些比标准的 Hello World 更有趣(较多人) > 我的第一个程序绝不是 Hello World,而是用 poke 把屏幕填满各种幼稚短语(@dahart)
惊叹于 Lisp 宏与 Smalltalk 动态类变更带来的认知突破
- 部分读者从 Lisp 宏的代码自生成、Smalltalk 对象动态改类保留变量的特性中,体会到语言设计对编程思维的启蒙(少数人) > Lisp 的宏在执行前重写程序,展现了代码制造代码的深层能力(@andsoitis)
指出文中 Windows touch 脚本违背原命令语义
- 有读者挑剔原文用批处理模拟 touch 创建空文件,而真正的 touch 意在更新已有文件时间戳,该脚本会破坏性失效(少数人) > touch 本用于更新时间戳,文中脚本却会惨烈地破坏原有文件(@layer8)
认为这些小代码片段有纹身般的极简美感
- 个别用户收集适合纹身的代码,认为文中部分片段可加入收藏,但也偏好用 red 代替 hotpink(少数人) > 我在收集适合纹身的代码碎片,这些片段挺够格,不过我更爱用 red 而非 hotpink(@probably_wrong)
有价值的补充
- 资深研究者分享多个“顿悟”片段:fork 炸弹、从 crt0 发现 main 之下还有 C 代码、Yacc 构建语法树、汇编位置无关引用技巧,以及用文件 seek 实现 TCP 重组的巧思(@tptacek)
- 用宏定义 true 为随机数使条件偶尔失败,可制造调试恶作剧(@beanaroo)
- 将 CSS 调试片段封装为书签脚本切换,并支持阴影边距填充,可提升实用性(@throw34889)
- 早期在 C64 上用 poke 随机字符并无限循环的艺术代码曾被商场展示,印证创意代码的传播(@analog8374)
- 用 BASIC 画圆循环给朋友展示,是早期可视化编程的简单乐趣(@metanonsense)
- 在 Atari 800 上 poke 内存将按键重复延迟调至零,可让打字者无法避免字符重复,需重启才能修复(@dahart)