一段过程式程序(procedural program)包含了数据定义和函数调用。如果你想要搞清楚这种程序究竟做了什么,就必须仔细研究,比如查看它的函数调用以及底层代码等,以便在你的脑海中勾勒出一幅完整的蓝图。而这就解释了在设计过程式程序时,为什么还需要中间表示(intermediate representation,IR)。实话实说,过程式程序的理解成本确实很高,因其设计的表达方式更多是面向计算机,而不是你要解决的问题。
因为面向对象编程在过程式编程语言的基础上增加了许多新特性,所以你可能会想当然地认为同等效果的Java程序会远比过程式程序复杂。然而你会惊喜地发现,编写良好的Java程序通常比过程式程序更简单,也更易于理解。这是因为在Java中,对象的定义所呈现的是问题空间(而非计算机式的呈现)的概念,而发送至对象的消息则代表问题空间的具体活动。面向对象编程的一个令人愉悦之处在于,那些设计良好的程序,其代码总是易于阅读的。另外,因为许多问题都能够通过复用已有的库来解决,所以通常来说代码行数也不会太多。
面向对象编程和Java不一定适合所有人。有一点非常重要,那就是你必须仔细评估自己的需求,然后再判断Java是不是满足这些需求的最佳方案,也许使用其他编程语言是更好的选择(说不定就是你现在使用的编程语言)。如果在可预见的将来,你的需求非常专业并且具有一些Java无法满足的特殊条件,那么你就有必要研究一下其他可代替的编程语言(我尤其推荐Python)。这样一来,就算你依然选择Java作为你的编程语言,至少你清楚还有哪些可选项,以及为什么选择它。