wangnannan 发布留言 2008-6-6 10:45
c或c++,绝不是java,c#那种封装的过多的高级语言
c或c++,绝不是java,c#那种封装的过多的高级语言。
用C或c++乍看上去似乎不太占优势,好像在图像的显示上要麻烦。
但是大型的网络游戏更重要的是效率,用c或c++编写并辅之于优化的算法可以程序的效率更高,通讯的信息量减小,使相同的硬件资源可以支持更多的用户。这是其它高级语言不可比拟的。
用c或c++的另一个原因是游戏中最难制作的是图像特效的渲染,这也是java,c#等软肋。所以从事网络游戏开发人员的薪水是软件从业人员中相对较高的,也是发展前景很好。
这些信息来源于给我们上课的有十年以上工作经验的华为工程师。
pacocai 发布留言 2008-6-7 18:22
看你打算用来干什么……做那方面开发所选择的语言就不相同。选择语言往往都有针对性的,而相对来说薪水高低这个根本没办法去定论,有什么样的水平就能拿到什么样的薪水。从事网络游戏开发要对数学有相对更为深入的了解。不是你学会了语言就能做游戏开发的,呵呵!看这话我感觉就像是在骗人。
夜风依旧 发布留言 2008-6-7 19:24
最近研究c++比较深,花费了很多时间,刚刚还怀疑是否值得,现在我更有信心了![em14]
我要做高手!
wangnannan 发布留言 2008-6-8 09:16
C#运行速度和效率都很低下,为什么用C#写x360游戏?
关于C#和C++问题csdn上有过一次全面的争论及比较。最终依然是C++.因为效率第一.
一直不明白为什么微软应要用C#来教导大家去开发缓慢甚至代码质量低劣的 xbox游戏???
我不是很了解实质开发中x360是用什么语言开发,但我相信C#不足够支撑高效率运行下的商业图形游戏;
wangnannan 发布留言 2008-6-8 09:16
...
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++能淘汰汇编或机器语言吧。
sswin0922 发布留言 2008-6-8 21:08
我觉得一个程序第一位的是稳定,其次才是速度效率,程序老挂掉估计在快也没用。C#这种语言相对于不能熟练运用C\C++程序员来说是安全的稳定,任何事物都是两面性的,所以我觉得一个好的程序员应该熟练运用一门高级语言和一门低级语言
朗朗 发布留言 2008-6-9 19:18
讨论基本上没有意义
野比 发布留言 2008-6-9 19:43
仅做常识了解。
用C#,用Java,如果没有Microsoft和Sun,要你自己写虚拟机时,你不就还是要用C/C++吗?
|
如果没有编译器,连汇编都是废物。
如果没有操作系统,连编译器都是废物。
如果没有计算机,连操作系统都是废物。
如果没有人,什么都是废物。
killer_l 发布留言 2008-6-10 08:28
幽默.............
野比 发布留言 2008-6-10 12:28
说句公道话 对一般人来说 C/C++ 也是封装了的
DOS 下谁不用那一堆 #include?谁敢说不用编译器自带的库?
Win32 下谁不用 API?谁能离开 MFC?
VC6 写的程序拿到 Win98 第一版下不是照样找不到 mfc42.dll 没法运行
所以说编程语言一深究下去就发现都是同源的。
pacocai 发布留言 2008-6-10 15:21
现在的计算机上讨论效率说实话,意义不大……就我们目前而言如果不涉及到底层的硬件环境,只需要做桌面应用的话,我感觉选择一门快速易用的语言最为重要,仅只是桌面应用而言说实话,那么一点点的速度差距你能感觉得出来吗?我想就目前而言很难得去感受出来这些细微的差距。可是开发的速度却完全不同,用C++又或是C来写一个桌面应用程序又或是网络应用程序所花费的时间相对于C#和JAVA来说绝对是几何倍数的增长。其次就是做为桌面应用程序来说C++是不安全的,而且你根本不知道你所读取的内存指针什么时候就出错,最终导至整个系统崩溃。所以做为桌面应用更应该选择的是一个开发效率高,并且稳定的语言,而对于虚拟机上开发出来的系统或许对资源的占用率相对来说要高,可是在虚拟机上的程序却比在真实的计算机环境中写的程序要稳定很多。相对而言,有利有弊,对于C++又或是C等语言个人认为目前主要是针对底层开发又或是驱动设备开发,再不就是针对游戏及手持设备等方面的开发要优于C#或是JAVA,可是在于应用开发上,我认为C#和JAVA要优于C++或是C。而且我不太同意非得要了解一门高级语言和一门低级语言,做为一个程序员我们应该了解的是算法和数据结构以及编译原理这些东西,对于语言所需要了解的是以自己发展的方向为主,如果是应用开发,那就把数据库及C#(或JAVA)这些东西弄明白,弄精通那就已经很不错了。业有专精嘛~~~~~~~好了,很久没来了,写了一堆的废话!各位海量,别发火,别生气,会犯嗔戒滴![em12]
[ 本帖最后由 pacocai 于 2008-6-10 15:23 编辑 [/it]]
野比 发布留言 2008-6-10 19:26
傲慢与偏见
pacocai 发布留言 2008-6-10 22:40
逼上梁山=B上梁山
[em12]
报告连长:一群女兵向我们B近,我们出J吧…………
[ 本帖最后由 pacocai 于 2008-6-10 22:42 编辑 [/it]]
cwinxp 发布留言 2008-6-12 11:33
以后CPU都是128核心,电脑都是CPU了,C#的优势就显出来了
以后CPU都是128核心,电脑都是CPU了,C#的优势就显出来了
以后CPU都是128核心,电脑都是CPU了,C#的优势就显出来了
以后CPU都是128核心,电脑都是CPU了,C#的优势就显出来了
shiweifu 发布留言 2008-6-12 21:24
顶泡菜~
binbin_88115 发布留言 2008-6-21 11:16
顶顶顶、
页: [1]