卡片召唤师
精华
|
战斗力 鹅
|
回帖 0
注册时间 2006-11-15
|
能有多少大型软件的规模能比os内核,通信系统开发还大呢?
这些无一不是用c来做的哦
算法固然是编程之美的最佳体现,但这是编程思想不是语言特性,任何语言都能用算法武装自己
另外面向对象也是编程思想不是语言特 ...
八神 发表于 2009-7-14 06:47 
我承认os内核和通信系统是很巨大,但如果你以为其他系统比如AAA级游戏的规模就不大那完全是一种误解。
os内核和通信系统很巨大,但这巨大来源于其提供的功能非常繁多而细小。所以对于单个功能来说,代码既不多,层次也不深(linus曾说过OS代码超过三个for就是不好的代码),阅读相对容易。
但对于AAA级游戏来说,其实功能并不多,模块只能划分成AI, Engine, 3D Rendering, Physic, Sound等几个功能,每个功能都是一个整体而且其规模非常巨大。对于这种系统,不用OO思想来进行设计完全就是不可能的。甚至即使用了OO的思想,不用private, namespace来进行保护也是不可能的——程序员能力参差不齐而这类项目需要在一个比较短的时间内完成,这使得从技术角度来保障安全的代码成为一件必要的事情。
至于不能取代C,只是因为C更适合和OS沟通——事实上在《Efficient in C++》一书(或许是另外一本,记不清了)中,作为通讯行业电子工程师的作者就成功将C++引入通讯设备开发中,所以更可能的只是惯性使然罢了。
而基于虚拟机,有着完善保护机制和垃圾回收器的Java,直接编译成危险的native code的C++无论如何也不可能被超越其安全特性吧(虽然无论是msvc还是g++都在安全性上下了很大功夫)。如果真要比,也只能和.net framework下的语言比了……
其实,我比较喜欢的却是基于运行时虚拟机的C++/CLI,既有C++特性又是.net framework CLR,可惜我觉得不会成为主流(貌似连mono也没搞这个),真可惜。 |
|