coffee-js / languages

编程语言学习论坛
https://github.com/coffee-js/languages/issues
112 stars 11 forks source link

变量实时刷新, 代码局部刷新, 一些思考 #64

Open tiye opened 11 years ago

tiye commented 11 years ago

最近和以前思考串在一起的东西, 不知道能适用到多大范围, 这里描述一下

面对代码会感到思维的能力是多脆弱, 以及各种 Bug 造成多少麻烦 考虑不同人智商和经验的差别, 感觉也许不同. 我的感觉是, 代码就是容易出问题 并且界面上加上异步操作, 都不知道怎么保证正确性了 于是就像用性能上的损耗换程序代码的健壮, 多覆盖状态而不是手动操作 但这个也不知道什么好的出路

看到 Functional Reactive Programming (FRP) 的时候, 就被其中一些观念打动了 比如说变量是改变的, 推测是比如 a = b + c, b c 改变 a 自动改变 说到现实中很多代码就是为了同步状态, 比如 Model 到 View, Model 到 Model 这些观点正中目标. 如果我们能把自己从同步状态的事情上解放出来多好 就像从手动内存操作到函数式编程这样, 用抽象大规模提升编程效率 而且, 写图形界面这类玩具, 升级硬件升级编译器比训练一个人要轻松多了

因此我对这方面开始有兴趣, 但 Stream 和 FRP 的概念目前并不清晰.. 目标大概是期待数据和数据, 和 View 有自动的绑定, 底层平台来进行管理 那么写应用只要定义逻辑, 做界面, 而减少 Bug 上的麻烦了 目前现实的场景真心没法搞定..

提下语言缩进的问题, 目标类似, 能不用人重复的事情就不要重复了 就算有些人很厉害, 一眼看括号就解析好了, 还是更多人不该浪费时间在上边 生命很短, 少写括号, 在运行环境编程以便完美自动补全, 想法很美好..

然后面临一个大软件调试的难题. 我想象还是赞同 emerge 说的让运行更透明 或者说, 把程序的运行转换成人们能更好理解的一个图形 比如一次动画, 把运行流程即便时间打断也完整调出, 方便调试 再有动画过程中的状态改变(首先要减少状态)提示出来, 方便调试

大软件还有运行缓慢的问题, 比如 Clojure 启动, 见过用 JVM 跑后台来解决的 我从前有设想, 让编程语言能部分地重载模块, 方便编写时重启 Chrome Devtools 似乎有一些这样的功能, 可看来又不大相同 我在想如果能自动完成更改的检测, 按需刷新, 也许开发会很有意思

纯粹逻辑操作, 大量状态记忆和操作的编程, 不适合大多数的人 未来会有大量做设计做创意的人需要使用代码, 代码就不应该停留为智者的工具 而且人们更容易出错, 应该抽象更好的模型让机器接管状态出错的部分 人们定义规则, 看执行流程和结果, 理解和调整思路.. 这样就好多了

wssccc commented 10 years ago

看到最后一条想到了prolog。我见过有人拿prolog做排课表的东西,最后因为速度太慢放弃了……