| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3341 人关注过本帖
标题:c或c++,绝不是java,c#那种封装的过多的高级语言
取消只看楼主 加入收藏
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
结帖率:80.91%
收藏
 问题点数:0 回复次数:3 
c或c++,绝不是java,c#那种封装的过多的高级语言
c或c++,绝不是java,c#那种封装的过多的高级语言。
用C或c++乍看上去似乎不太占优势,好像在图像的显示上要麻烦。
但是大型的网络游戏更重要的是效率,用c或c++编写并辅之于优化的算法可以程序的效率更高,通讯的信息量减小,使相同的硬件资源可以支持更多的用户。这是其它高级语言不可比拟的。
用c或c++的另一个原因是游戏中最难制作的是图像特效的渲染,这也是java,c#等软肋。所以从事网络游戏开发人员的薪水是软件从业人员中相对较高的,也是发展前景很好。
这些信息来源于给我们上课的有十年以上工作经验的华为工程师。
搜索更多相关主题的帖子: java 语言 网络游戏 华为 薪水 
2008-06-06 10:45
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:0 
C#运行速度和效率都很低下,为什么用C#写x360游戏?
关于C#和C++问题csdn上有过一次全面的争论及比较。最终依然是C++.因为效率第一.

一直不明白为什么微软应要用C#来教导大家去开发缓慢甚至代码质量低劣的 xbox游戏???

我不是很了解实质开发中x360是用什么语言开发,但我相信C#不足够支撑高效率运行下的商业图形游戏;
2008-06-08 09:16
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:0 
...
Windows和Vista主要是使用C++写的,UNIX是用C写的,部分使用了C++。Vista编写团队拒绝使用C#或.NET写关键服务代码,原因是.NET太慢、太耗资源了,Vista自己使用的运行库仍然是CRT(C/C++运行库),而不是CLR(公共语言运行库,C#的虚拟机)。不能想象用C#或Java写的操作系统会怎样。Vista已经够慢了,如果再用C#写,可能每天要花数个小时开机吧!
再到语言。.NET虚拟机的核心本身就是用C++写的,Java虚拟机的核心虽然没有用C++(部分原因是Java不想因出生而被对手C++嘲笑),但确实是用的C写的。所以,即使C++不是必要的,C总是必要的。而只有C++可以达到近似C的效率。C能做的,C++都可以。相反,C#或Java并非无所不能,他们只不过是将该做的事留给虚拟机做而已。如果没有C/C++,没有了虚拟机,C#和Java什么都不是。在虚拟机的世界,他们只是用来编写各自供开发者的类库罢了。如果C#虚拟机本身也用C#编写,那它必须运行在另一个虚拟机上,这个虚拟机又是用什么编写的呢?
再说编译器。C++编译器可以代码生成为机器码,因而C++编译器可以编译它自己。所有的C++编译器,都是用C++编写的(当然除了史上第一个C++编译器,它是用C写的)。但是C#和Java可以吗?是的,可以,但只可以写前端,不能写后端。因为它们不能生成机器码!传统由编译后端完成的代码生成工作现在由虚拟机完成。这是虚拟机之所以那么慢的部分原因。
Java号称平台无关,C#也号称平台无关,但是他们只能再虚拟机上运行。正如C++之父Bjarne Stroustrup所说“Java不是平台无关,Java是一种平台”。离开Java平台,Java就什么也不能做了。同样的C#也离不开CLR。但是C/C++可以,它们是真正的平台无关。对于一个新的硬件或软件平台,只要用C++自己写的编译器做一次交叉编译生成,就可以在新平台上通行无阻了,以后编译器的不断改进,都在C++自己的能力范围以内。用C#,用Java,如果没有Microsoft和Sun,要你自己写虚拟机时,你不就还是要用C/C++吗?
其实效率不是关键因素,即使C#/Java象C/C++一样快,也不可能取代后者。最根本的原因,C/C++是通用语言,是系统语言。只要掌握一门这样的语言,你和机器的交流就没有问题了,想怎样都成。而C#之流,只是在特定领域其作用的专用语言而已。所以它们不可能取代一门通用语言,层次不同嘛。

当然没有贬低C#和Java的意思,它们在其特定领域还是很有用途的,特别在网络编程领域,已经和C/C++鼎足而立了。但是认清一门语言的优势、劣势及其适用范围,还是很有必要的。C/C++也许在将来会被另一门通用语言所代替,或者让出部分领域的市场,但不同层次上的争斗就不必要了。就象我们也不能指望C/C++能淘汰汇编或机器语言吧。
2008-06-08 09:16
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:0 
认同
我同意
2008-07-10 10:57
快速回复:c或c++,绝不是java,c#那种封装的过多的高级语言
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017997 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved