本文系数月前随手写下的,没有起承转合与段落章法,观点更是未经推敲。仅供参考。
------------------------------------------------------------------------------------------
C++的表面困境来自两方面,一是开发效率低,而是容易犯错,维护难度大。此二者俱是表象,本质就是一个——过度复杂。或有人说C++之关键缺陷是没有统一完整的类库支撑,Bjarne Stroustrup即强调此因素。然而这其实只不过是一个结果,而不是原因。正是因为语言太复杂,才无法在有效期内开发出高质量的大一统的类库。
C++的复杂,并非是其体积庞大之必然结果。复杂是对结构混乱无序程度的描述,规模大,结构不见得必然复杂。
C++的复杂,也并不是如很多人所认为,是若干种编程范式(paradigms)的并存而至。事实上,现代实用编程语言至少有2-3种范式才能登大雅之堂。以范式数量论,Python和Ruby等新型动态语言的范式甚至多于C++,然而它们却以简单和开发效率高著称。
C++复杂的根源在于三大约束:与C的完全兼容、静态类型检查、最高性能。在三大约束下,C++未能完善对于面向对象思想的支持,未能建立强大的动态能力,从而使得C++在OO这个单项上存在本质缺陷。事实上,C++的过程、OB模型相当成熟和稳定,而泛型模型,就单项来说,除了语法丑陋之外也没有大的问题。缺陷