也许P a s c a l 编译器最著名的特点就是速度快,而D e l p h i 正是建立在这种编译器的基础之上的。事实上,它可能是针对Wi n d o w s 的最快的高级语言本地代码编译器。以往速度很慢的C + +编译器在近年来取得了很大的进步,增加了链接和各种缓存策略,尤其是在Visual C++和C + + B u i l d e r 中。但即便如此,C + +的编译器还是比D e l p h i 的慢了几倍。
编译速度一定能与运行效率成正比吗?当然不是。D e l p h i 和C + + B u i l d e r 共享同一种编译器后端,因此生成的代码等效于由一个优秀的C + +编译器生成的代码。根据最新的可靠评估标准,Visual C++在许多场合都被认为在编译速度和生成代码长度方面是最有效的,这得益于一些极为有力的优化措施。虽然对通常的应用程序开发来说,这些细小的优越性难以被注意到,但如果你正在编写复杂的计算代码,那么它们就会发挥作用。
Visual Basic 的编译技术有点特别。在开发过程中,V B 以一种集成的方式运作,而且反应相当敏锐。这种编译器速度比较慢,生成的可执行代码的效率也远远不及D e l p h i 和C + +工具。
J a v a 是另一种有趣的语言。最新的基于J a v a 的工具语言J B u i l d e r 和Visual J++自称其编译速度能赶 得上D e l p h i ,但是生成代码的执行效率却不尽人意,因为J a v a 是一种集成语言。虽然J a v e 在稳步地前进,但在大多数场合,其运行速度却仍与D e l p h i 和C + +相距甚远。
C + +是另一种极为有力的语言。在它的潜在功能(如预处理器宏、模板、操作符加载等等)的帮助下,你几乎可以使用C + +设计你自己的语言。只要合理地使用其丰富的功能选项,就可以开发出简洁直观、易于维护的代码。然而,问题是,许多的开发者总滥用这些功能,这就很容易导致发生重大错误。事实上,写出糟糕的C + +代码反倒比写出好的C + +代码更容易。因为这种语言自己不会朝着好的设计方向前进—这由开发者决定。
Object Pascal 和J a v a 给我们的感觉很相似,因为它们很好地把握住了复杂性和功能性的平衡。它们都采取了这样一种途径,即限制其可用功能以加强开发者的逻辑设计。例如,两者都避免了完全面向对象但却容易被滥用的多重继承的观念,而是实现了一个执行多重接口功能的类。两者都不支持美观却危险的操作符加载。两者都有一些强大的功能,诸如异常处理、运行期类型信息( RT T I )和生存期内存自管理字符串。同时,两种语言都不是由专门的编委会写出来的,而是来自于单个组织中对这种语言有着共同理解的的个人或小组。
Visual Basic 最初是为了使编程初学者入门更容易、进步更快而设计的(名字也由此而来)。但是作为一种语言,V B 也要不断地取长补短,这使得它近年来也变得越来越复杂了。为了对开发者隐藏这些细节,V B 仍然保留了一些向导以创建复杂的项目。