2026-05
2026-05
警告
本页面不是严谨的学术论文,也不是成熟的技术教程。
它是我个人的自留输出地,纯粹为了满足我“装逼”与“表达”的私欲而生。
里面充满了 ENTP 式的直觉跳跃、未经严密考证的跨学科缝合、以及不可避免的虚饰与傲慢。
我没有精力也不会去把它打磨成完美的闭环。
如果你在这里看到了逻辑漏洞且感到虚伪,恭喜你,你是对的;如果你在这里看到了启发,那我们就完成了同频共振。
欢迎在评论区讨论和发表意见,但恕我玻璃心,请嘴下留情。
10
速进
在许多人和政府还沉浸在十几年的惯性之中时,现实正在以每年、每月、甚至每天进行着改天换地的变化
泛洪
唯一重要且关键的问题是:如何让经验可复用?如何让以后不要重复造轮子?如何让现在的经验能为以后所用?这其实是一个问题
你注意到了吗?当我们写下if else时,如果软件强行要求我们补全剩下的分支——这似乎被认为是正确和高效的——但如果我们此时尚不清楚它应该怎么样,它其实添加了错误的信息,要求我们提前做出决策——它破坏了未知,并且可能导致以后的不可组合性——我们未来有的新想法将不得不面对过去的这些额外结构——即使它们只是为了让程序运行所必须的
意图是重要的,而且更重要的是察觉到自己的意图——区分事实和意图 你可以注意到,虽然我们往往将经验描述为应该怎么做,但经验的底层是不应该怎么做——这才是真正有可组合性的结构
如果我们真的想这么做——我们需要认真考虑如何写出不朽的代码,至少在100年后还可复用——在这个变化愈来愈快的、甚至以天为单位变化技术的世界中
区分事实和意图,并且只写约束——然后构造一种能让它们交互的语言
程序的本质是
- 程序员创造一个生命体
- 程序员与生命体对话
- 程序员让生命体去与其它人对话
其代价就在这里,因为程序本身难以从现实中学习,程序员之后也难以修改程序本身,为了让程序能与其它人对话(上线变得可用),程序员必须引入足够多的假设,为程序构造一个世界,才能让意图连接到现实
在绝大多数时候,我们表达出来的意图本身也包含大量的假设——它必然会在之后的某个时刻产生矛盾
我们不能忽视它,而认为意图和事实描述就是绝对正确的
这就是为什么需要设计语言——让隐式变得显式,这是有必要的,但之前的编程语言搞错了方向
我们应当让溯因变得显式,让条件和环境变得显式,而不是让实现变得显式
你可能意识到了,有条件的约束虽然更好,但终究是约束,只要是约束,就终究会矛盾
但可惜的是即使是人类本身,我认为99%的人类也陷入了这个逻辑陷阱
唯一不会矛盾的是信息本身,是事实本身,是当前正在发生的事件本身——不管是外部观测还是内部日志
这是一个关于抽象本质的思考,我们如何从信息本身构造权衡?
需要额外小心的是,你说”自动在这个连续的梯度上滑向阻力最小、最能维持系统存活的方向。“
这暗示了最优方向和梯度下降,但是正如我所言,这是没有可组合性的
它最终需要一个方向,决策需要大量的信息才能正确,但这种假设暗示了一种局部可判定的来源——它最终会因为信息论而绝对无法做出正确的行动
是啊,如何设计一个这样的语言呢?
约束就像河岸,执行流就像河水,河岸不是坚不可摧的,它会在最脆弱的地方决堤
我前面说了,意图本身带有预设,即使约束带上了条件,约束本身就意味着必然会发生矛盾
如果我们想要利用约束本身,那么必然要面对约束崩溃的情况——实际上如何正确处理约束崩溃并以此重建,才是这个语言的绝大部分工作
它应当如何正确地收集和分析原因,并反馈给程序员,如何通过程序员不断与现实交流,让程序员给出符合条件的约束,甚至自主收集信息,用更多的信息来构筑新的河岸,解决问题
这个语言应该叫决堤或者泛洪()
它写不了hello world,这需要的前置太重了,但是它恐怕比以往任何函数式语言都持久和正确
如果硬是要写,我们必须定义它与其它语言的交互边界,将交互抽成原子本身
构造一个
开始运行 -> 调用某程序打印hello world
的逻辑
它不需要把后面的原子拆开,因为当拆开需要的预设过大时,最好的方案就是硬编码
或者说,我们可以这样构造一个逻辑:当这个程序在任何操作系统上运行时,如何找到命令行窗口、网络环境和可执行文件,去在用户终端上打印hello world,又如何提示用户补全意图,以防止意外创建文件或者执行操作
或者,构造一个网络查询库,,当用户输入”打印helloworld“的意图时,通过查询得知事实,并寻求任意一种可能的方式去做(这可能导致不同人执行会通过不同的路径)
当用户打开这个代码时,发现它声明的是各种约束,比如是否要在打印前询问用户等
这就是预设的力量,任何程序都包含大量假设/意图,但是决堤/泛洪让它们和它们的关系显式了起来
定义如何交互本身就是程序要做的事情
就如同我说,程序员和程序交流,程序和用户交流,本身没有明确的分界线
而且程序的边界会变得模糊——只要抽象了如何交互、程序之间如何通信的问题
消解了可组合性的问题,也没有了库的概念,基础的事实约束能直接通用
程序的编译和运行态也会模糊
如果有什么东西是最不值得关注的,恐怕就是用什么底层去跑了
所有……它可能会彻底消灭编程语言和改变人类社会
我在想怎么搓出来……它的最核心原则或者卷首语是什么
系统死于惯性
察觉你的预设
唯一不变的是变化