学习 Chrome 扩展程序开发并大概写个 demo 验证下在浏览器中进行本地文件操作的可行性——本来想用 FS 相关 Web API 去做,但感觉比较复杂、不稳定且有所限制,初步决定使用在 Chrome 扩展程序中调用本地服务的策略。
这些年来我逐渐形成了「唯信息论」的世界观,一个重要观点就是万物都处于变化之中,那些被常规视角所认为不变的实际上一直在变,也就是「信息」一直在转化。
「信息」的某个节点是啥样以及它如何转化到下个节点都是被事先「定义」好的,那么是谁「定义」的?这我不知道。但知道的是,或者说我所认为的,用来观测变化的是「时间」,即「时间」是「信息」在不同节点之间的差量集合。
每个程序员都是数字世界的「造物主」,因此软件设计就是自己世界观的体现——真正的好软件,除了能够满足业务需求之外,还应当符合现实世界的规律。
我的世界观令我想要探索一种可以去「定义」数字世界里「信息」在某个阶段的样子及它如何去转化的简易方式,这种方式不是基于枚举这种有限的方式,而是基于几种简单原子规则组合的无限生成。
「定义」是在描述「信息」在某一刻的实体,而「时间」这个差量集合表示着「信息」是在演化的——体现在实际的软件开发当中就是以声明式与响应式为基础进行软件设计与开发。
虽说我有这样的意识,但有些模糊,尚未形成明晰的体系化理论。
最近跟大佬 Canonical 交流较为频繁(与之前相比😅),再通过视频会议听他对可逆计算与 Nop 平台的讲解后,更令我隐约觉得他的理论很可能就是我思想理念要抵达的前方!
我需要尽快找时间好好研究学习下可逆计算理论,统合并验证我的思想理念,没准儿日后就成为我构造一切软件的指导思想,在此之上构建出自己具备推导能力的智能化软件生产线!
在听 Canonical 的分享时,对一句话感触比较深,大意是:「我已解决过的问题,别人就不需要再去解决了。」
这点在我理解的科学界确实是这样,也就是后续的任何研究都去以前人证明过的结论为前提,都往那上面去靠,而不是自己重新证明一遍;基本只有在前人的理论无法解释了的时候才会去质疑并探索更适合的理论。
而在软件开发中,至少我看到的、经历过的几乎都是在重复建设,重新去解决前人或别人解决过无数遍的问题,感觉这是一种病……也许也是因为缺少像可逆计算这样泛用性很强的理论模型。
其实,反混沌想要解决的问题的一方面就是减少软件开发中的重复建设,至少是减少整个链条的重复建设。
另外,这几天我一直有个疑问,但还没有深入去思考——LUI + DSL + 可逆计算理论的实现做代码生成并成为日后主流软件构造范式的话,还需要有那么多种编程语言么?感觉就留一种(或者说不再出现新的语言)给人做微调用就行了。