本帖最后由 类下托泣匹 于 2026-8-3 10:53 编辑
我最近在web上重写minicraft经过我多天的努力,终于成了现在这个样子: 当我看到肉眼可见的卡。我知道,接下来的几个小时不好过。于是我插入了一个fps面板,并进行了多方的性能优化。终于
notch写的原版java源码有一个特点,依赖地狱,AI说,这“其实不是函数 A 调用了函数 B 那种依赖,而是"谁有权修改全局状态"的依赖”
“Java 里所有东西都在同一个对象肚子里,就像蜘蛛网:拉一根丝,整片网都跟着颤。
但cljs(ClojureScript”就像一根水管,某一个环节出了问题,后面就不能运行了”
根据AI总结,我同时遇到3个问题,而这些问题在java中是被隐式处理的。他们是“世界坐标和屏幕坐标、状态在谁手里、数据怎么组装”。
尤其是数据怎么组装。在java这种面向对象的语言中,数据是交给每一个对象处理的。但在cljs这类函数式语言中,数据得交给函数,相当于没有“对象”作为“沙箱”。况且cljs中需要考虑清楚数据是否可变。否则写到后面发现根本没法修改数据。
或许好处是,每一帧的状态都是明明白白,不会有某个对象在暗地里把数据改得乱七八糟。
所以对于编程语言来说,最折磨人的是"所有权"。没错,不是只有rust有这个痛苦。
说一下辩论。我之前一直在逐行翻译,尝试用oop的结构写函数式编程。结果写出来越来越乱。重写也需要“信达雅”。
|