标题:c或c++,绝不是java,c#那种封装的过多的高级语言
只看楼主
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
结帖率:80.91%
 问题点数:0 回复次数:16 
c或c++,绝不是java,c#那种封装的过多的高级语言
c或c++,绝不是java,c#那种封装的过多的高级语言。
用C或c++乍看上去似乎不太占优势,好像在图像的显示上要麻烦。
但是大型的网络游戏更重要的是效率,用c或c++编写并辅之于优化的算法可以程序的效率更高,通讯的信息量减小,使相同的硬件资源可以支持更多的用户。这是其它高级语言不可比拟的。
用c或c++的另一个原因是游戏中最难制作的是图像特效的渲染,这也是java,c#等软肋。所以从事网络游戏开发人员的薪水是软件从业人员中相对较高的,也是发展前景很好。
这些信息来源于给我们上课的有十年以上工作经验的华为工程师。
搜索更多相关主题的帖子: java 语言 网络游戏 华为 薪水 
2008-06-06 10:45
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
得分:0 
看你打算用来干什么……做那方面开发所选择的语言就不相同。选择语言往往都有针对性的,而相对来说薪水高低这个根本没办法去定论,有什么样的水平就能拿到什么样的薪水。从事网络游戏开发要对数学有相对更为深入的了解。不是你学会了语言就能做游戏开发的,呵呵!看这话我感觉就像是在骗人。

浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2008-06-07 18:22
夜风依旧
Rank: 2
等 级:论坛游民
帖 子:42
专家分:20
注 册:2008-5-13
得分:0 
最近研究c++比较深,花费了很多时间,刚刚还怀疑是否值得,现在我更有信心了!
我要做高手!

[b]男人,就要对自己很一点。[/b]
2008-06-07 19:24
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分: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
帖 子:2545
专家分: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
sswin0922
Rank: 2
等 级:论坛游民
帖 子:25
专家分:10
注 册:2008-3-10
得分:0 
我觉得一个程序第一位的是稳定,其次才是速度效率,程序老挂掉估计在快也没用。C#这种语言相对于不能熟练运用C\C++程序员来说是安全的稳定,任何事物都是两面性的,所以我觉得一个好的程序员应该熟练运用一门高级语言和一门低级语言
2008-06-08 21:08
朗朗
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2007-10-2
得分:0 
讨论基本上没有意义
2008-06-09 19:18
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
得分:0 
仅做常识了解。

用C#,用Java,如果没有Microsoft和Sun,要你自己写虚拟机时,你不就还是要用C/C++吗?


如果没有编译器,连汇编都是废物。
如果没有操作系统,连编译器都是废物。
如果没有计算机,连操作系统都是废物。
如果没有人,什么都是废物。

女侠,约吗?
2008-06-09 19:43
killer_l
Rank: 2
等 级:新手上路
威 望:3
帖 子:1139
专家分:0
注 册:2007-5-25
得分:0 
幽默.............

2008-06-10 08:28
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
得分:0 
说句公道话 对一般人来说 C/C++ 也是封装了的
DOS 下谁不用那一堆 #include?谁敢说不用编译器自带的库?
Win32 下谁不用 API?谁能离开 MFC?
VC6 写的程序拿到 Win98 第一版下不是照样找不到 mfc42.dll 没法运行
所以说编程语言一深究下去就发现都是同源的。

女侠,约吗?
2008-06-10 12:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-217909-1-1.html




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

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