面向对象的语义能力

面向对象具有非常强的语义能力。

试想用面向过程的方法写的代码,所有的代码目的只是为了命令机器工作,所以能从中看到的也是机器的工作。这个理解过程非常漫长,因为你必须不停地在机器码与自然逻辑中作映射。不停地映射。

有一种方法是形式化方法。真正的“形式化”开发方法,因为它把自然逻辑转变成形式逻辑,然后使用形式逻辑的方法进行程序开发。这种方法也是一种形式化手段,从本质上讲跟面向对象一样。只是其“形式化”的阶段不同:面向对象在机器上直接形式化,而“形式化”方法在人脑中完成了形式化。因为它是先把人的自然逻辑转变成了形式逻辑再映射到计算机中去的,而面向对象是先把人的自然逻辑直接映射到计算机。中间没有形式逻辑这个东西。少了一步!

大家都知道形式逻辑是非常生涩的东西。其实国内的教育在这一点上犯了非常严重的错误。国内的教育是,就算是计算机专业的学生,也很少开逻辑这门课。我们中国人喜欢直接的东西,不喜欢拐弯抹角。只有研究生教育才会开逻辑与哲学的课程。这个很实用,但到了关键点就会吃亏 。比如面向对象。

你不开形式逻辑的课程,结果不只是不懂形式逻辑,你根本就不懂形式化的本意。也就更别提哲学了。而一切都是哲学。

不修逻辑的结果就是,大家都变成了工具。变成了死记硬背的工具。没有思维能力。总是说国外人有独立思考,为什么,因为他们有逻辑这门课。逻辑就是教你思考的,或者说至少让你意识到思考的存在。

面对什么语义,是程序员的根本问题。

采用“形式化”的方法,面对的是一堆形式符号,你必须先把这些东西翻译成形式逻辑,然后再翻译回自然逻辑。而采用面向对象的方法,面对的虽然同样是一堆“形式”符号,但是这些符号是自然逻辑的直接对应品,非常容易理解。在这个基础上,很容易看出系统是不是具有完整的逻辑,或者说具体实现是否完整与正确地实现了我的逻辑。因为我的大脑就是这么构建的。

这是自然逻辑的价值。

所以说,面向对象最大的价值就在于其充分利用了自然逻辑的价值。自然逻辑不是指形式逻辑中的自然演绎法,而是指真正自然的人类思考模式。

我自始至终认为,只有真正的自然逻辑,才是“正确”的逻辑。因为一切其它的逻辑都存在着扭曲现实的现象。我认为,自然语言是一切的根本。而从它,越往上走越离奇,越扑朔,越不知道到底对不对,越有可能出错。

我认为真理在人的自然常识中。

并且这并不是对形式化方法的否认,恰恰相反,我强调的是逻辑本身而不是对逻辑的形式化。我认为形式化始终是一种非常好的思维与研究工具,但仅仅是工具。真理始终,从来也没有,出过人类的大脑。

这么说吧,你面对着一堆JDBC的接口,能从中悟出什么?是吧!这就是为什么我们需要面向对象。为什么我们不能面向过程。因为过程是紧贴着计算机的,是机器的,是没有办法承载语义的。我们自然不能从中读出语义。因为它没有名词,没有主语,不符合人类的思考习惯。并且一旦你开始采用它,你的下一个读者也只能跟着采用它,下下一个读者同样,如此以往......最后的阅读者便只能从对内存分析得出东西了。

 

 

 

你可能感兴趣的:(面向对象的语义能力)