那些木块,有方的,有圆的,有三角形的,还有一些,奇形怪状的,像是齿轮一样的,拼接块。
王小虎没有说话,只是在用那些木块,搭建着什么。
他先是,用几块方形的木块,搭了一个底座。
然后,他又在底座上,放上了一块圆形的木块。
接着,他拿起一块三角形的木块,想要放到那块圆形的木块上。
可是,他试了一下,三角形的木块,根本放不稳,一放上去,就滑了下来。
“哥哥,放不住。”
王小花奶声奶气地提醒道。
王小虎点了点头。
他没有强行去放,而是,从旁边拿起了一块,中间有凹槽的,特殊形状的木块。
他先把这块有凹槽的木块,卡在了圆形的木块上。
然后,再把那块三角形的木块,稳稳地,插进了凹槽里。
一个,由“方-圆-三角”组成的,稳定的小塔,就搭好了。
“看,”王小虎指着那个小塔,对弟弟妹妹说,“不是所有的木块,都能随便放在一起的。”
“圆的上面,不能直接放尖的。”
“它们之间,需要一个‘转换’的东西,来把它们,连接起来。”
“每一种形状的木块,都有它自己的‘规则’。”
“比如,方形的木块,它的上面,可以放方形的,也可以放圆形的。”
“但是,圆形的木块,它的上面,就只能放,带凹槽的‘转换块’。”
“我们只要,记住这些最简单的‘规则’。”
“然后,按照‘规则’来玩,就永远不会把塔,搭倒了。”
“我们不是在‘随心所欲’地搭积木。”
“我们是在,学习和运用,这些木块本身的,‘秩序’。”
规则……
转换……
秩序……
这几个词,像一道道闪电,瞬间,劈中了门外李兴华的天灵盖!
轰隆!
他的大脑,再一次,一片空白!
李兴华感觉自己,好像被一柄无形的大锤,迎面砸中。
整个人,都懵了。
他呆呆地,趴在门缝上,一动不动。
脑海里,反复回响着王小虎刚才说的那几句话。
“不是所有的木块,都能随便放在一起的。”
“它们之间,需要一个‘转换’的东西……”
“每一种形状的木块,都有它自己的‘规则’。”
“我们不是在‘随心所欲’地搭积木。”
“我们是在,学习和运用,这些木块本身的,‘秩序’。”
这些话,拆开来,每一个字他都认识。
可是,当它们组合在一起,再结合眼前这“搭积木”的一幕。
李兴华感觉,自己好像,又一次,窥探到了,某种,天地间最根本的,大道的运行法则!
他们之前,犯的错误,是什么?
是“随心所欲”!
他们以为,“人性化”就是可以随便来。
他们设计了++,设计了省略括号,设计了各种灵活的语法。
就像,妄图把一块三角形的积木,直接放到一块圆形的积木上!
结果是什么?
是“放不稳”!是“歧义”!是“崩溃”!
那正确的做法,是什么?
是“规则”!是“秩序”!
是去发现和定义,每一种“语法构件”本身,所应该遵循的,最严格,最清晰的“规则”!
比如,IF语句,就是一个“构件”。
它的规则,就是后面必须跟一个THEN,然后才能跟别的语句。
这就是它的“秩序”!任何人都不能破坏!
再比如,A++这种,会产生“先加还是后加”歧义的,不稳定的“构件”,就根本不应该存在!
他们要做的,不是去创造一门,“聪明”到能理解人类模糊语言的语言。
而是要创造一门,“笨拙”到只认识最严格,最没有歧义的“规则”的语言!
这才是,真正的“大道至简”!
“简”,不是形式上的简单!
是“规则”的简单!是“秩序”的清晰!
想通了这一层,李兴华感觉自己浑身的鸡皮疙瘩,都冒了出来。
他再次,被老师这种,润物细无声的,点化方式,给震撼到无以复加。
上一次,是教妹妹画画,点出了“编译器”的本质。
这一次,是陪弟妹搭积木,点出了“形式化语言”和“语法规范”的,核心!
老师……