免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Artist
打印 上一主题 下一主题

[C++] Linux之父炮轰C++:糟糕程序员的垃圾语言 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-09-16 18:56 |只看该作者
从编LINUX类的操作系统 的人看,C++的确无法使用.
还是因为效率和无法控制的原因.

有人说,
现在硬件快了,不用考虑效率.
这话对于编写应用的来说,是正确的. 为20%的效率提高用了一个"编写"效率很低的语言是不合适的.

但对于OS来说是错误的.而且在可以看见的未来都是错的.
比如在LINUX网络底层函数中, 如果一个FUNC的效率低了20%那么系统就几乎会慢的不动了.

然而C++不适合OS, 也不代表不好用. 许多大的应用都是C++做的.

论坛徽章:
0
12 [报告]
发表于 2007-09-16 20:20 |只看该作者
顶楼上,

论坛徽章:
0
13 [报告]
发表于 2007-09-16 21:46 |只看该作者
因为C++的编译器太难做
用来做OS很多C++特性超前了些,比如模版

论坛徽章:
0
14 [报告]
发表于 2007-09-17 09:13 |只看该作者
编译器太难做是一方面,还有就是 大多数C++人  不知道到底它的程序会发生什么不可遇见的事情,损失多少效率。 (牛人的书总是告诉我们,什么地方有效率损失,可是我们大多数还是不很清楚,完全清楚的就更没多少了)
而且就像思一克说的,就算你清楚效率问题,操作系统也不能损失20%甚至更少的效率。

有的软件比如qq,就是等待消息,然后做些操作,这种东西我个人觉得任何语言,只要能实现出来,都是可以接受的。

论坛徽章:
0
15 [报告]
发表于 2007-09-17 09:16 |只看该作者
原帖由 flw2 于 2007-9-17 09:13 发表
编译器太难做是一方面,还有就是 大多数C++人  不知道到底它的程序会发生什么不可遇见的事情,损失多少效率。 (牛人的书总是告诉我们,什么地方有效率损失,可是我们大多数还是不很清楚,完全清楚的就更没多少 ...

所以有用C++写的QQ,有用java写的qq

论坛徽章:
0
16 [报告]
发表于 2007-09-17 09:43 |只看该作者
你看这个程序,c 定义了,什么也没有做呢,就调用一大圈了(初始化)。可以估计和C比效率丢失多少。

还有C++为什么允许在在任何地方定义变量(而不象C都要放到{}的开始)?
如果没有这一点就更惨了:


  1. func(int i)
  2. {
  3. A a, b, c;
  4. B b1, a1, c1;
  5.     if(i < 0) return 0;
  6.     .....
  7. }
复制代码

这样的程序 还叫程序吗?大部分时间i <0 应该直接返回0的,可他都做了什么?



  1. #include <iostream>

  2. using namespace std;

  3. class Base
  4. {
  5. public:
  6.         int i[16];
  7. public:
  8.         Base() {i[3] = 10; printf("enter Base %d\n", 12345678); };
  9.         ~Base(){printf("leave Base"); };
  10. };

  11. class A:virtual public Base
  12. {
  13.         public: int a;
  14. public:
  15.         A()  {a = 1; printf("enter A\n"); };
  16.         ~A()  {printf("leave A\n"); };
  17. };

  18. class B:virtual public Base
  19. {
  20.         public: int b;
  21. public:
  22.         B()  {b = 2; printf("enter B\n"); };
  23.         ~B()  {printf("leave B\n"); };
  24. };

  25. class C:virtual public A, public B
  26. {
  27.         public: int c;

  28. public:
  29.         //C()  {c = 3; printf("enter C\n"); };
  30.         ~C()  {printf("leave C\n"); };
  31. };

  32. int main(void)
  33. {

  34.        C c;
  35.        printf("sizeof c = %d, %d\n", sizeof(c), c.i[3]);
  36.        return 0;
  37. }



复制代码

[ 本帖最后由 思一克 于 2007-9-17 09:44 编辑 ]

论坛徽章:
0
17 [报告]
发表于 2007-09-17 12:02 |只看该作者
原帖由 jetico 于 2007-9-17 11:55 发表
国际上颇具声望的ComputerWorld (国内《计算机世界》的美国原版)两天前由一位女记者撰写的“The top 10 dead (or dying) computer skills”(十大已死和垂死IT技术和职业)一文成了目前的网站头条。此文被Sol ...

如果只知道C的语法,当然很难找到工作
不知道为何列出了C确没列出汇编?

[ 本帖最后由 cugb_cat 于 2007-9-17 12:03 编辑 ]

论坛徽章:
0
18 [报告]
发表于 2007-09-17 12:26 |只看该作者
没想到,被当成火星人了,汗~

我还是喜欢C, C++也没必要贬啊,存在自有其合理性。
不过感觉如果你在大学里一路学过c->c++->java,毕业后还真难得到份C开发公司的offer(可不是因为这样的公司少,其实不少)。

论坛徽章:
0
19 [报告]
发表于 2007-09-17 12:41 |只看该作者
原帖由 Artist 于 2007-9-17 12:26 发表
没想到,被当成火星人了,汗~

我还是喜欢C, C++也没必要贬啊,存在自有其合理性。
不过感觉如果你在大学里一路学过c->c++->java,毕业后还真难得到份C开发公司的offer(可不是因为这样的公司少,其实不少)。

我知道有的公司只用C写CGI,坚决不用别的

论坛徽章:
0
20 [报告]
发表于 2007-09-17 13:39 |只看该作者
楼上,那间公司在那我去。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP