文学城论坛
+A-

我也不太晓得你的判断依据,不过我先说好了

累死算了 2009-05-12 19:01:33 ( reads)

首先C++做为提出超过25年的标准,很多方面已经跟不上时代发展了。最突出的矛盾就是C++尝试涵盖过多应用领域,却没办法让大家脱离繁琐的语言标准本身。下面分几个方面讨论一下:

1. OOP
C++作为第一个实用的OOP Language为行业进步做出了辉煌的贡献(所谓实用主要是相对于smalltalk),不过C++的OOP毕竟很不纯。我个人觉得可以用波尔的原子模型来类比,即大致上建立了可行的模式,但是当需求触及边界的时候模型就开始失效。用C++来做大项目,程序员很难专注于OO Modeling本身,需要了解太多所谓的C++ gotchas。当项目进入维护阶段的时候这种语言标准本身的先天不足更是噩梦一般的烦扰。
之前的人们是没有选择,不过现在立项的新项目大多寻求Ruby, Python之类的脚本语言来做复杂的OO Modeling,辅以C来做核心的数据结构和算法实现。比如Google就遵循C+Python的模式。

2. 语法
C++的语法严重偏向imperative。在20年前是没有任何争议的东西,不过现代语言都需要在imperative和declarative之前取得一定平衡。具体到使用上,C++太容易出所谓的human mistake,这也使得C++的维护非常困难。当然了,C也是纯粹的imperative,不过C是门简单的小语言,而且有明确的应用场合(核心数据结构/算法优化,嵌入式开发,操作系统底层,驱动等等),而C++应用无所不含却又很真正难适应需求。所以C的生命力一直顽强。

3. 易用性
这个和语法相关,当然也和别的语言特性相关。总的来说初学者不容易上手是公认的,而且熟练程序员也不容易出效率。

总的来说新项目用到C++的越来越少,cutting edge的用到的就更少了。如果不是在已有code base上开发,大家现在都不倾向于选C++。这就是为什么我判断C++已经死的差不多了。就算是0x的几个诸如smart pointer的标准出来,也很难让C++再一次具备竞争力。

跟帖(20)

乱弹

2009-05-12 19:22:59

你说得似乎都在点子上, 应该是高手。 我不太写程序。

戏雨飞鹰

2009-05-12 20:24:43

你说的很好。一看就知道是个高手。可是,尽管

戏雨飞鹰

2009-05-12 20:29:27

说明一下,我不崇尚C++。

累死算了

2009-05-13 10:52:51

感谢两位花时间看我的闲话

戏雨飞鹰

2009-05-13 12:58:57

你的闲话,让我这个连菜鸟都不如的草包子很受启发。

累死算了

2009-05-13 18:26:31

很多都说不上是我自己的话

累死算了

2009-05-13 18:29:28

上个帖子不小心发空了

戏雨飞鹰

2009-05-14 04:07:23

thanks a lot.

累死算了

2009-05-13 21:12:53

才发现有字似乎被滤掉了

我爱C++

2009-05-13 16:21:15

回复:我也不太晓得你的判断依据,不过我先说好了

累死算了

2009-05-13 18:47:33

我认为你举的例子还是有些历史原因

我爱C++

2009-05-14 10:44:45

纯属讨论

累死算了

2009-05-14 17:40:55

我们展开来讨论一下

乱弹

2009-05-14 18:23:30

可以开个主贴讨论。蛮有意思的。

累死算了

2009-05-14 18:25:42

毕竟不是专门板块,回帖里灌灌水没什么,开主贴就不合适了

戏雨飞鹰

2009-05-14 18:53:09

I highly recommend u make a new thread

戏雨飞鹰

2009-05-14 19:00:20

不过,现在的职坛跟以前不大一样了:失业的人太多了。讨论技术的话题少了。。

戏雨飞鹰

2009-05-14 19:04:06

typo: 不敢

我爱C++

2009-05-14 21:39:02

回复:我们展开来讨论一下

戏雨飞鹰

2009-05-15 04:56:20

我也说着玩吧:)。一个产品的存在与否,最终要由市场说的算。