< 返回博客

编程语言能带来什么?


一门语言做的事情,其实是为硬件赋予思维对象,建立一种对硬件的抽象,或者说是对某些基本形式的假设与总结;
一门语言做到类型完备,只是语言做的抽象达到了完备,它的“功能”并未被提升,甚至一定会减弱;
当做出抽象时,一定会为原本自由、难以被人类驾驭的基本形式做出假设和约束,这种约束使得形式能在思维的领域被应用,但同时,这种约束也使得原本随意自由的形式变得固化,也因此会丧失一些功能;
能实现的功能由其抽象中仍然保留的形式决定,但易用性则由抽象时对形式做的假设总结的合理性决定,这些假设总结越是符合人类的习惯,就越是易用;
当抽象出现的时候,其实也创建了新的形式,或者说“发现”了新的形式,这种新的形式在原本的基本形式中很难被人类发现;

因此,几乎所有语言都无法做到比汇编语言“更多”,而只能做到“更好”,语言层面的各种模型与概念,决定了它有多好用、多“强大”。

这种由约束形成易用性的形式在计算机的世界到处都是,所谓“增加一层就能解决问题”大多数时候都指的是这种情况。

这种现象也能为了解直觉与思维的关系提供一些启示。人类的直觉是强大又弱小的,强大是因为这个词语是在思维范畴中作用的,而直觉作为思维的源泉必定难以、或者说无法描述直觉,所以会感到“强大”;而弱小是因为,人类的直觉能告诉我们的形式太少了,我们大多数时候能做到的,只是“发现简单的形式,然后做出抽象,进一步发现抽象出来的形式”,因为直觉做不到,所以我们需要作为理性的思维来辅助我们感知因果。从上述的过程中,我们可以发现,思维其实是理性为弱小的人类提供的工具,但因为其根本是抽象,抽象的过程是假设和总结的过程,所以思维也会称为我们的桎梏,这种现象与我之前描述的“当我拿起锤子,就不再能用手指拿捏”是一个道理。也正是因为这种现象,时常工作在创造性的直觉活动中的爱因斯坦会觉得“越符合直觉的东西就越是难以思考”。
思维带来的,是我们对形式的更敏锐的感知,它能带来更多的直觉可用的客体,因此能够扩充我们的直觉,但这种直觉客体不够纯粹,它一定已经被某种程度地特化了。
有了更多的直觉,我们就可以将它们用于对客体的改造上,我们就能够有机会获得更强的意志。