注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
程序天使的个人空间 https://home.eeworld.com.cn/space-uid-43048.html [收藏] [复制] [分享] [RSS]
日志

C和C++的争执,我感觉毫无意义

已有 1202 次阅读2008-5-14 16:04

 

转载

在前些时候,Linux之父Linus Torvalds炮轰C++:“糟糕程序员的垃圾语言!”,引起了整个软件业界的战火,保C派和挺C++派打的不亦乐乎。我倒是感觉这场争论毫无疑义。

这种不搭界的争论就像厨房的大师傅和种菜的老农比试他们的家伙哪个重要一样。

厨房大师傅说:“当然是我的菜刀和锅勺重要,没有这些家伙怎么能炒出好菜呢?你的那些玩艺儿,一锄头下去,我的锅就漏了!”。
老农说:“你那些咚咚怎能种好菜啊?用菜刀挖地,一年也整不好几块地啊,用锅勺撒肥,恐怕菜都上市了,肥料还没撒完呢!当然还是我的锄头和粪勺好用啊!”。

呵呵!我的感觉就是这样,每个人都是站在自己的用途来考虑,不去想不同行业之间的区别。软件虽然作为一个行业,但是根据不同的客户和环境,实际上已经派生了很多类别,它们之间的区别非常之大。有网络工程师、应用工程师、系统工程师等等,这些大类下面又派生了细小的很多类别。

C和C++仅仅是软件工程师手中的工具而已,不同的行业用它们做不同的用途,就像军队中的士兵一样,步兵绝对不会用狙击枪打冲锋;而狙击手不能用冲锋枪打几公里之外的目标是一样的道理,虽然名义上它们都是“枪”。

我自己的习惯是:在PC机上做 UI 应用软件时,我肯定用C++,绝不用C。不是说C写不出同样的软件,我甚至可以用8086的汇编来写出同样的功能和界面。问题是:“太累了,很白痴!”。而编写PC的驱动程序,可能会用C或者C和汇编的混合,因为这需要相当精确的控制。

单片机上,我只会使用C,暂时不会用C++,在这点上Linus Torvalds的看法是和我一致的。C++的特性导致底层的时序和精度不可控制,它不适合用来做操作系统。但是,这不是永久的,目前的计算机硬件技术水平局限了可用的资源范围;在未来,内存、速度等等一旦不受目前硬件水平的局限,性能成指数级上升,C++中的很多优点就可以大大减轻系统程序员的工作量,C++的发展还是有很大潜力了。

C和C++在很长的时间内不可能互相代替,想想看:谁能发明一种从厨房大师傅到老农都可以使用的万能工具?也许,几百年后,人类发明了万能复制机,不管什么东西都可以从原子级一模一样的复制出来(参见美国的科幻剧“星际旅行”),这样什么工具都不重要了。我倒是觉得还是有问题:怎么获得够纯度的原子?呵呵!原子还是可分割的,到底还可以分割几次?怎样合成这些够纯度的原子?谁都不知道。

还有,原始的汇编语言目前还是很重要,虽然目前的软件技术突飞猛进。在一些小容量的单片机上,仅仅一个 main 函数就让它的堆栈溢出了。你说,不用汇编用什么?

所以,我最后总结一下。适用的,永远是最好的!

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章