几天光景, 还是没有钻研编程的动力, 每天看看资源, 偶尔萌生新的想法.
当然没有数学或者编程的足够功底, 说什么都白搭, 新闻升发的观点不能当做理论.
但这些想法, 同时作为困惑, 我先记下来. 还做别人走在这, 也该这样想过.
晚上 Zed Shaw 演讲对我影响不小, 人们太懈怠于迎接未来了, 缓缓推进着技术.
关于符号语法这一点, 我默认是可以在未来跳过的, 直接操作 AST, 跳过解析.
那么归结下来, 语言可以只是存在嵌套的字符串数组, 然后直接转到 AST.
格式的限制换来了很大的自由度, 想表达什么, 就定义什么, 不受语法的羁绊.
每一个表达式都由头部的字符串来决定语义, 甚至用上多个位置的字符串.
就是说用 set! 一类表示 := 符号的赋值, 完全用词汇标记表达式的意义.
Lisp 的确做了, 但那不彻底, 没扩展开对自由语义的共享和速成约定.
表达式执行需要设定相应的作用域, lispy 的例子是树状的继承的作用域.
当定义函数或者绑定一些局部变量, 对应就是在作用域上添加一些索引和内容.
进一步, 当语言能够获取和操作作用域, 那作用域就很现实地是一种工具.
严格继承就未必, 有时函数作用域根本不需要向上级索引, 如 (x,y) -> x+y .
OOP 这个模型或许是因为缺少构造相应行为的数据结构的手法和便利,
如果操纵数据限定在一定区域非常自由, 未必就有 class 严格的语法了.
自然语言重在灵活性, 比如我先说"对 A 做了什么什么", 然后说"同样对 B 做",
我们很容易讲任意的步骤当成模版, 然后在后边的表述中直接引用这套模版,
出于网络的方便, 我们还可以公用表达式首字符串的语义, 以作为共通的语言.
我不是说用自然语言操作计算机, 其精确性导致嵌套不可或缺, 而这口语不会有.
我要语言是一种能流畅部署一个设计一个想法的工具, 能描述而不受阻于语言.
就我目前接触到的, 基本都是如何设计界面到数据的交互, 然后数据的结构,
我没有找到顺手的模型去处理全部这些, 因此想着如何跳出工具寻找方案.
上边说的观点更应该是困惑, 究竟用什么样的工具去解决向计算机描述构想的问题?