- 论坛徽章:
- 2
|
原帖由 everlasting_188 于 2009-3-24 12:52 发表 ![]()
我觉得这个回复也有点偏了,就一个多继承就否定java?c++好
我否定java是因为很多很多方面, 只是楼主只说了interface, 我也就只回答了interface到底是怎么回事。
原帖由 everlasting_188 于 2009-3-24 12:52 发表 ![]()
我们有多少人用的好呢?评价一个语言,要考虑它的效率,这个效率指的是运行的效率,开发的效率.如果你用c++10年写一个东西,用java一年就写出来,速度上java比c++慢2到3倍,绝大多数客户会选择扩大硬件来使用java来处理.
是, 要用好C++确实需要比用好java花更多, 多得多的功夫。
C++的开发效率确实不及java。
我赞同。 也承认如果是按开发效率来评价语言的优劣, java确实比C++牛。
除了这点, java仍然是一门很糟糕的语言。
同时, 你举的例子明显不对。
c++的开发效率不会比java慢10倍这么多。
java的运行效率(在cpu相关的地方)也不会只差c++2,3倍。
硬件, 硬件就能无限扩大么? 单核cpu周期已经到头。 再想吃硬件必须要靠并行运算。
这又是c++的领域, 而非java。
java是可以用synchronous这些东西。 但是这些东西最终是靠谁实现的?
原帖由 everlasting_188 于 2009-3-24 12:52 发表 ![]()
你要说你写的很底层,说说我们国家有多少人写过多少底层的东西,操作系统,编译器,中间间,基本上没有,有也是更改被人opensource后的加工品.
国内就这环境。 如果你愿意被java培养成“代码工人”, 那是你的自由。
原帖由 everlasting_188 于 2009-3-24 12:52 发表 ![]()
如果只是效率问题的话,我会选择汇编而不会选择c或者c++,如果你说c++编译器可以优化的接近于汇编或者c?
是,你可以汇编。
btw:你写的汇编是否真的比编译器生成的代码效率高,希望你能实际测试一下
反正我从来没有写出过比编译器更优秀的汇编代码。 嗯, 我很菜。
但是你怎么不全部用汇编? 你也知道这是不现实的:
——你需要语言来给你提供抽象机制, 从而构建更大的软件。
那么, 语言设计在某一方面就是抽象于效率之间的权衡。
做得最好的, 就是C++。
原帖由 everlasting_188 于 2009-3-24 12:52 发表 ![]()
那么你为啥就否定jvm不能做到可以接近于c++的速度?你对jvm了解多少?写jvm与写编译器的人的水平的差距?
很简单, 因为java的内存模型, 它注定比C++慢,慢不止一个数量级, 无论sun或者IBM如何吹嘘JVM。
有人会在C++中把
vector< int* > 当作 vector< int > 来使用么? 因为前者更加面向对象?
java里面, 没有,在引入真正的范型机制之前也不可能有后者。
原帖由 everlasting_188 于 2009-3-24 12:52 发表 ![]()
从我们公司来说,c++组将近有20多万行的代码,很少有用到多重继承的.从人的角度来说,这个世界,绝大多说人不是男人就是女人,半男半女的有,我的认识范围,还是少.
我就问一句, 你们公司用流吗? std::iostream 是怎么来的?
即使你们公司不用, std::iostream用得是广泛, 还是不广泛?
别的我也不想多说了 ……
原帖由 everlasting_188 于 2009-3-24 12:52 发表 ![]()
c++新的标准在出,从<<C++语言的设计和演化>>中可以看到,多继承这个东西,即时成为标准,标准委员会也有不一致的声音,自动垃圾回收,新的标准也考虑加入可选.标准委员会作不了的东西,不一定商业公司做不了.
有些东西是对世界的认知的哲学的东西,谁对谁错,实践证明,我们只能无线接近于事物的真相.
java的设计者发现, 大多数开发其实只需要“单继承+多实现”。
他那时也许不懂mix-in。
ruby的设计者懂, 所以它放宽了限制。
那谁能知道以后会不会出现多继承支持的另外的优良编程风格? 你敢说绝对不会出现吗? 显然不敢。
为什么C++作为一个前辈, 能把这一切看透?
既然你真的看过<<C++语言的设计和演化>>, 你应该懂, 我不想再重复一次。
[ 本帖最后由 OwnWaterloo 于 2009-3-24 14:11 编辑 ] |
|