进行类比思维。对于在电脑上显示字符,需要字符集。曾经有人研究算法,希望编出一个神奇的程序,能够显示所有字符。但最终的结果是,需要字符集,人工地把所有字符收集起来,让电脑一个个记住,这样便解决了在电脑上显示字符的问题。
现在开始思考,在电脑上实现自然语言编程,该怎么办?《编译原理》的书很复杂,靠这本书,已经造出了许多计算机语言,它们都不是自然语言编程!有人研究算法,希望编出一个神奇的程序,解决自然语言编程的难题。但最终的结果很可能是,需要像填充字符集一样,填充「公共命名空间」。让电脑记住每一个句子,这样便能实现自然语言编程。
公共命名空间是一个供程序员讨论的空间,程序员在这里讨论语言应该是什么样子。填充公共命名空间的一个忌讳,就是用月薪几万元雇佣许多程序员进行填充,这会消耗太多的钱。
完全免费的进行填充,难以保证质量;完全收费的,又太贵。最终的结果是,多数人免费填充,少数人拿着工资整理公共命名空间。所有将要使用计算机语言的人,都可以加入进来,填充公共命名空间。
再次进行类比思维。汽车是一项发明,许多人都会开汽车,但不一定懂得汽车的原理,这就是工人和司机的区别。发明汽车后的一百年,甚至有未成年人靠模仿和自学,掌握了驾驶汽车的方法。所以,需要考张证书才能合法的开车。
电脑也是一项发明,会用电脑的人不一定懂得电脑的原理,这是程序员和电脑操作员的区别。发明电脑已经70多年了,在一百年的时候,有未成年人靠自学掌握了给电脑编程序的方法。到那时,需要考证才能合法编程?到那时,会编程序的人不一定是程序员,可能他是一个电脑操作员。
分级是可以的,给电脑操作员命名为"初级程序员",这需要考证才能获得。继续考证,或进入大学,学习计算机专业,获得更高等级程序员的称号。
究竟是否要将电脑操作员命名为初级程序员,有待推敲。或许像汽车那样,区分司机和汽车工程师,是最好的方法。这么一来,电脑操作员将永远是操作员,而不是工程师。操作员也需要考证上岗。
填充公共命名空间应该能在手机上进行,这样一来,能有更多人参与进来,而不是必须买台电脑才能填充。之前的博客中说到,公共命名空间是一个网站,方便所有将要使用计算机语言的人来填充。在其中,人们可以进行讨论,并把自己对于计算机语言的想法表述出来。
然后,语言的制造者看着公共命名空间进行工作,把人们期望的语言制作出来。这就避免了一个"XX语言之父"单打独斗,开发出来的东西总有这样或那样的不合适。
在公共命名空间的作者看来,语言没有统一,是因为修改语言的难度太大。如果语言可以被轻松地修改,它将趋于统一。另外,从软件工程的角度看,应该先设计、再施工。填充公共命名空间的过程,包括大量讨论、取舍,这正是设计语言的过程;之后的施工,交给更专业的团队来完成。