想请问一下现在的服务端程序使用java的比例是多少呢,难道现在还都是在使用c++开发服务端吗

62 views
Skip to first unread message

stefan

unread,
Jul 31, 2009, 6:48:36 AM7/31/09
to 高性能服务器研发与运营邮件列表
相比java的开发效率更高,而现在的产品上市时间越来越重要,不知道各位前辈怎么看这个问题?

Franklin Coolfiry

unread,
Jul 31, 2009, 7:03:57 AM7/31/09
to dev4s...@googlegroups.com
用java开发的网游服务器端比较少,还是C++占大多数。
在成行的框架和引擎的支持下用C++开发效率也很高。

2009/7/31 stefan <pengl...@gmail.com>
相比java的开发效率更高,而现在的产品上市时间越来越重要,不知道各位前辈怎么看这个问题?


Dogvane

unread,
Jul 31, 2009, 10:52:38 AM7/31/09
to 高性能服务器研发与运营邮件列表
未来的趋势可能是底层结构用c++,游戏逻辑用脚本语言。

qing yin

unread,
Jul 31, 2009, 12:08:49 PM7/31/09
to dev4s...@googlegroups.com
显然不是未来,现在就是啊

2009/7/31 Dogvane <dog...@gmail.com>
未来的趋势可能是底层结构用c++,游戏逻辑用脚本语言。


老犁

unread,
Aug 2, 2009, 10:41:10 PM8/2/09
to dev4s...@googlegroups.com
用mina来开发,也是一个不错的选择。
 
希望楼主开一个先例出来。

2009/8/1 qing yin <qing1...@gmail.com>

lincoln

unread,
Aug 3, 2009, 12:49:33 AM8/3/09
to dev4s...@googlegroups.com
openfire就是用mina开发的

2009/8/3 老犁 <pyp...@gmail.com>:

--

Sent from Fuzhou, 35, China

Message has been deleted

beck917

unread,
Aug 3, 2009, 9:32:28 AM8/3/09
to dev4s...@googlegroups.com
确实有长连接的webgame服务器端在用mina开发

但是我还是担心性能

Linker

unread,
Aug 3, 2009, 9:34:15 AM8/3/09
to dev4s...@googlegroups.com
Mina不错!

--
Sent from my mobile device

Regards,
Linker Lin
linker...@gmail.com

涂纯

unread,
Aug 3, 2009, 8:51:41 PM8/3/09
to dev4s...@googlegroups.com
这个游戏就是用JAVA开发的后台。。。 前期是用自己些的nio socket ,发现开发难度大,效率也不理想。后期采用MINA改善很多,开发也容易很多。

2009/8/3 Linker <linker...@gmail.com>

Nil

unread,
Aug 11, 2009, 2:25:16 AM8/11/09
to 高性能服务器研发与运营邮件列表
服务器端用java开发效率会高多少?底层接口c++一般都有类封装了,上层的架构有的人需要这种有的要那种,这些java也没有提供现成的吧。

On 7月31日, 下午6时48分, stefan <pengli.h...@gmail.com> wrote:
> 相比java的开发效率更高,而现在的产品上市时间越来越重要,不知道各位前辈怎么看这个问题?

Linker

unread,
Aug 11, 2009, 4:12:29 AM8/11/09
to dev4s...@googlegroups.com
java的性能已经很好了。
不比C++慢太多。


2009/8/11 Nil <nil....@gmail.com>

服务器端用java开发效率会高多少?底层接口c++一般都有类封装了,上层的架构有的人需要这种有的要那种,这些java也没有提供现成的吧。

On 7月31日, 下午6时48分, stefan <pengli.h...@gmail.com> wrote:
> 相比java的开发效率更高,而现在的产品上市时间越来越重要,不知道各位前辈怎么看这个问题?




--
Regards,
Linker Lin
linker...@gmail.com

jiang li

unread,
Aug 11, 2009, 4:17:57 AM8/11/09
to dev4s...@googlegroups.com
java语言对于并发控制的支持也要比C++好很多,特别羡慕java中的wait(),notify()

2009/8/11 Linker <linker...@gmail.com>

Kouga

unread,
Aug 11, 2009, 4:55:33 AM8/11/09
to dev4s...@googlegroups.com
这种控制C++比Java多一打吧?还不包括C……

2009/8/11 jiang li <li.ji...@gmail.com>



--
签名是什么东西??

jiang li

unread,
Aug 11, 2009, 5:08:07 AM8/11/09
to dev4s...@googlegroups.com
是么,我一般都是用条件变量来达到wait,notify的效果,老麻烦了。

2009/8/11 Kouga <ncw...@gmail.com>

Linker

unread,
Aug 11, 2009, 5:10:33 AM8/11/09
to dev4s...@googlegroups.com
貌似用消息即可。
好像用到这些。

2009/8/11 jiang li <li.ji...@gmail.com>

deng zhengping

unread,
Aug 11, 2009, 10:02:41 AM8/11/09
to dev4s...@googlegroups.com
java的优势在于跨平台和有众多的中间件支持。
c/c++在于速度和对底层的支持。

使用什么语言主要需要根据业务特点,团队对该语言的熟悉程度来选择。

java使用大户如阿里巴巴,搜狐,校内等,内部也有很多系统在使用c/c++。
c/c++加php使用大户如百度,新浪等,也有不少使用java的项目。

java的速度现在已经不比c/c++差多少,估计2-5倍差距吧,这些完全可以使用硬件升级来解决的。
更重要的是,大部分系统的性能瓶颈不是源于语言,而在io,网络和架构是否设计合理。

就个人来说,不在乎使用你会什么语言,在乎你对语言的精通程度。

2009/8/11 Linker <linker...@gmail.com>

jrckkyy

unread,
Aug 11, 2009, 1:05:51 PM8/11/09
to dev4s...@googlegroups.com
我是一个初学者,在此谈下自己的感觉,请不要见笑,现在的网络应用向“桌面”应用靠近,富客户端,富表现力,实时,逻辑增多,交互频繁,数据量大,CPU计算多,特别是做web类的某种意义上开发难度在趋向于网络游戏了,在大型多人在线网络游戏这种类高端游戏中基本上是用C++加脚本语言,对比可得服务器类研发也应该趋向于使用c++加脚本语言,因为当复杂程度达到一定程度时所面临的问题就类似于研发传统意义上的网络游戏了。例如一些flash 的 webgame 如果是采用java除了开发效率上高些外,一个服务器估计就承受不了多少玩家在线(提高了服务器成本),服务器利用效率和运行效率上应该不及C++,而且做这类应用开发不是必须要求跨平台和大量的复用,弱化了java的优点,况且c++及其stl、boost等丰富的跨平台标准库和脚本语言(一个执行效率高,一个组织灵活而且不需编译实现逻辑方便开发效率高)组合起来各尽其长的运用的思路大大提高了服务器端的开发效率和降低了服务器运行成本。

2009/7/31 stefan <pengl...@gmail.com>
相比java的开发效率更高,而现在的产品上市时间越来越重要,不知道各位前辈怎么看这个问题?

--
http://hi.baidu.com/jrckkyy

Lei Gu

unread,
Aug 11, 2009, 9:56:21 PM8/11/09
to dev4s...@googlegroups.com
Java本身就可以当C++加脚本用,大家可以看看最新的关于jdk6 u14和jdk7的性能评测,综合性能还是非常喜人的。C++做服务器好多东西都需要自己重新实现一边,比如线程池,内存池,网络层,数据库访问层,消息队列,并发的一些结构,需要一个C++专家对这些内容都有较深的了解,都要能够做到最优,才能达到Java库的水平,这点挺难的,尤其对于一些刚启动的小公司,死在服务器端的游戏也是一大把一大把的。
Java的好处在于你可以降低系统的潜在复杂度,降低对人员的依赖。这是C++永远无法比拟的。
C++把很多东西上升到哲学层次了,弄得大家非常不统一,有喜欢类C的,有喜欢面向对象的,有喜欢模版的,有喜欢宏的,有喜欢函数的,库和库之间风格差异都很大,一个字符串类每个库都重造一遍轮子。C++对于工程的挑战远大于Java。


2009/8/12 jrckkyy <jrc...@gmail.com>

iXh

unread,
Aug 11, 2009, 10:01:05 PM8/11/09
to dev4s...@googlegroups.com
我觉得用c更好,c比c++简洁多了,象ACE这么复杂的框架太学院派了,用libevent可以达到同样的效果,java的mina也用过算是轻量级的,可是在性能应该是不如libevent

2009/8/12 Lei Gu <jack...@gmail.com>

qiaojie

unread,
Aug 11, 2009, 10:06:21 PM8/11/09
to dev4s...@googlegroups.com
这里的关键是C++不是一个安全的语言,越界、野指针、内存泄漏等等问题随时会困扰程序员,这些问题在java里是不存在的。而脚本语言的问题在于可读性不佳,因为没有静态的类型信息,程序一旦写大了就难以搞清楚了,对于中大型的项目来说,我是不喜欢去用脚本语言的。
 

 
2009/8/12 jrckkyy <jrc...@gmail.com>

Lei Gu

unread,
Aug 11, 2009, 10:07:27 PM8/11/09
to dev4s...@googlegroups.com
现在的服务器很强劲了,作为业务逻辑服务器,CPU大头应该在逻辑上,这年头Linux下只要是epoll,就不需要考虑网络层了。
已经是C100K的年代了,网络层不管ace还是libevent还是mina,处理5k的连接都很轻松,服务器的逻辑层能支持到5k才是挑战。
C10K的年代是因为TCP协议栈的处理都在CPU上,内存也小,CPU也忙不过来。现在服务器的千兆网卡,TCP协议栈的处理都在网卡自带的处理器上,跑3w并发连接的简单服务,服务器负载都接近0,网络层现在基本不需要太多考虑了,找个现成的库用就行了。


2009/8/12 iXh <ixh.x...@gmail.com>

Kouga

unread,
Aug 11, 2009, 10:13:57 PM8/11/09
to dev4s...@googlegroups.com
嘛~C++是双刃剑,不安全也仅仅只是因为没有用好导致的。

越界、野指针、内存泄漏问题请使用容器和智能指针完美解决,顺带说一下,C++的内存回收工作绝对比Java好——前提是设计的好。

脚本的可读性也是非常好的,最近我就在将LUA集成到我的一个现场检测项目中;因为硬件配置等缘故,现场的配置会有很多种组合,一开始我是通过宏定义编译不同版本来解决,后来发现LUA原来才是最好的方式啊~顺带说,是全C++项目,模块之间耦合度低得只需要像拧水管一样拧上就可以工作了——LUA现在正在担任水管工的工作。(啥?瓦里奥大叔?您来干嘛?

2009/8/12 qiaojie <qia...@gmail.com>



--
签名是什么东西??

Franklin Coolfiry

unread,
Aug 11, 2009, 10:15:19 PM8/11/09
to dev4s...@googlegroups.com
严格的说,越界、野指针、内存泄漏对一个java程序员来说也是要考虑的,这些问题,特别是内存泄漏也一直困扰这java程序员,除非你做的都是一些小项目。
"对于中大型的项目来说,我是不喜欢去用脚本语言的。",大中型项目中用脚本语言的目的看来你没有明白哦

2009/8/12 qiaojie <qia...@gmail.com>

Lei Gu

unread,
Aug 11, 2009, 10:24:14 PM8/11/09
to dev4s...@googlegroups.com
java类似的问题,要解决,要定位都比C++容易太多了
不怕任何人写出有越界,也指针,内存泄漏,通过静态分析工具,线上动态分析工具,随时可以定位解决,比C++容易很多

2009/8/12 Franklin Coolfiry <cool...@gmail.com>

Lei Gu

unread,
Aug 11, 2009, 10:26:58 PM8/11/09
to dev4s...@googlegroups.com
脚本作为粘合剂,配置,最叶端(非底层,中间层)的开发,还是很适合。

2009/8/12 Lei Gu <jack...@gmail.com>

Sparkle

unread,
Aug 11, 2009, 11:41:16 PM8/11/09
to dev4s...@googlegroups.com
现在java已经不用wait、notify了,lock、condition更好

2009/8/11 jiang li <li.ji...@gmail.com>:

qiaojie

unread,
Aug 12, 2009, 12:09:40 AM8/12/09
to dev4s...@googlegroups.com
没错,在java里一旦越界或者空指针引用了,立马就会抛出异常,而C++则不会立刻暴露错误,程序会进入不受控状态,使除错变得困难。而内存问题运用java的动态分析工具也很容易找出问题,用C++就没那么幸运了。至于性能问题,大部分的服务器都是IO密集而不是计算密集型的,在IO调用上C++相比java并没有多大优势。

 
2009/8/12 Lei Gu <jack...@gmail.com>

avcoder

unread,
Aug 12, 2009, 3:38:58 AM8/12/09
to 高性能服务器研发与运营邮件列表
“想请问一下现在的服务端程序使用java的比例是多少呢,难道现 在还都是在使用c++开发服务端吗?”

一看到提这种愚蠢的问题我的心头就掠过一阵悲凉,随之而来时是心酸!

搞开发的人难道都走火入魔了

Java这种走下路的语言,自己搞得不同版本之间都不兼容,还有什么值得留恋?

不要拿Java和C/C++比,Java做服务端开发与C/C++相比差好几个数量级!

qiaojie

unread,
Aug 12, 2009, 3:56:36 AM8/12/09
to dev4s...@googlegroups.com
java虽然是在走下坡路,不过C++下滑的更厉害。java语言发展的确实弱了点,比C#要差好多,不过总的来说JVM还是位好同志,如果不喜欢java语言的话,可以尝试一下Scala。Scala有取代java的潜质。

 
2009/8/12 avcoder <ffm...@gmail.com>

张立冰

unread,
Aug 12, 2009, 4:10:01 AM8/12/09
to dev4s...@googlegroups.com
 这个贴子该停止讨论,不然老让我看到新邮件来,很没劲!

2009/8/12 qiaojie <qia...@gmail.com>



--
The time you enjoy wasting is not wasted time!

Hailong Shu

unread,
Aug 12, 2009, 4:21:48 AM8/12/09
to dev4s...@googlegroups.com
   只懂得C++或者只懂得JAVA的人才会乐尔不疲的去讨论哪种语言更高明。   
   JAVA和C++各有各的优势,各有各的特点。谁也不可能去取代谁的。
   C++的运行效率比JAVA要快的多,一般电信网管(EMS)的后台程序都是用C++来做,用JAVA来做实时检测肯定不能达标。网游的后台也没有听说谁用JAVA的。
   JAVA的好处在于开发效率高,而且被广泛的支持。虽然运行效率低了点,但是对于大多数企业级应用来说都足够了,而且对于开发人员的要求不是那么高,有很好的框架体系来提高开发效率,这点是比C++强多了的。语言的对象化做的比C++彻底,泛型的支持也很好。
    
    具体到做开发的人,其实最重要的是根据情况来决定用哪个语言哪种开发工具,如何构架这个体系最重要。强调语言如何如何都是半吊子,只知道自己手里做的点ABC而已。
    
  
2009/8/12 张立冰 <zhang....@gmail.com>

qiaojie

unread,
Aug 12, 2009, 4:46:46 AM8/12/09
to dev4s...@googlegroups.com
评价和比较语言的目的在于选择合适的语言以提高R软件生产效率。软硬件环境一直在发展,10年前java的性能比C++差了1、2个数量级,而现在随着JVM的不断优化,这个差距已经被大大缩小了,所以一味的认为“C++的运行效率比JAVA要快的多”就落伍了。目前的硬件环境正朝着多核以及分布式方向发展,C++低下的生产效率完全赶不上时代的发展,被逐步的淘汰也是可以预见的事情。在分布式服务器方面,java比C++更具有优势,不过现在java也正在被Erlang/Scala等语言逐步的取代。
架构固然重要,但是语言决定了可行性,用Erlang可以轻松实现的分布式程序用C++做起来就会很困难。
 
 
 
2009/8/12 Hailong Shu <shuha...@gmail.com>

Hailong Shu

unread,
Aug 12, 2009, 4:57:16 AM8/12/09
to dev4s...@googlegroups.com
 
   做程序不是搞学术,你这些话去讲讲课,宣传宣传产品可以,坛子里面讨论问题就不要误导初学者了。
   就算10年前就连VB这样的环境我都认为它在做小型的MIS方面是很高效的,绝不会一把否定它。看了你"C++低下的生产效率完全赶不上时代的发展,被逐步的淘汰也是可以预见的事情。"这么掷地有声的论断,嘿嘿。我看我也可以断言你完全不懂C++,JAVA也就是个新手罢了。      
 

 
2009/8/12 qiaojie <qia...@gmail.com>

sunway

unread,
Aug 12, 2009, 5:03:08 AM8/12/09
to 高性能服务器研发与运营邮件列表
语言之争可以休矣,
JAVA在企业级市场有非常重要的地位。
C++/C在底层开发、高性能场所有自己不可或缺的优势。
经此而已,根据实际情况选择开发语言。

语言相轻没有必要~

jiang li

unread,
Aug 12, 2009, 5:15:58 AM8/12/09
to dev4s...@googlegroups.com
同意,现在很多人一碰到语言比较的话题就会认为没必要,不值得讨论。但事实上,语言之间的差异是确确实实存在的。
没有哪种语言比另外一种语言更高明,但是,因此而否定了语言之间的差异性,也是不可取的。

我个人观点,在分布式方面,java确实比c++支持得好,相同的架构,C++实现起来就是更麻烦一些。

2009/8/12 qiaojie <qia...@gmail.com>

Franklin Coolfiry

unread,
Aug 12, 2009, 5:30:43 AM8/12/09
to dev4s...@googlegroups.com
这个贴子该停止讨论,讨论哪种语言更高明没有意义,不符合本坛子的文章高质量性。

2009/8/12 jiang li <li.ji...@gmail.com>

qiaojie

unread,
Aug 12, 2009, 5:41:39 AM8/12/09
to dev4s...@googlegroups.com
既然你也认为应该“根据实际情况选择开发语言”,那么讨论一下服务器端程序是选用java还是C++有没有意义呢?
我们现在就是在讨论实际情况了,跟语言相轻有什么关系?
 
 
 

 
2009/8/12 sunway <sunh...@gmail.com>

Lei Gu

unread,
Aug 12, 2009, 6:56:31 AM8/12/09
to dev4s...@googlegroups.com
我的想法
1. 就是不要一棍子把java拍死
2. 具体用什么语言,要看你的人适合什么语言

2009/8/12 qiaojie <qia...@gmail.com>

王辉

unread,
Aug 12, 2009, 11:52:06 AM8/12/09
to dev4server
停!刹车!这种邮件删起来都烦!
 
 
2009-08-12

王辉

发件人: Lei Gu
发送时间: 2009-08-12  18:56:57
收件人: dev4server
抄送:
主题: Re: 想请问一下现在的服务端程序使用jav a的比例是多少呢,难道现在还都是在使用c++ 开发服务端吗

liangyaotang

unread,
Aug 12, 2009, 9:07:51 PM8/12/09
to dev4server
同意,这种争论太无聊了,浪费大家的时间和空间。
请版主把这个帖子锁了吧。
以后也尽量不要有这种无意义的争论。
 
 
2009-08-13

liangyaotang

发件人: 王辉
发送时间: 2009-08-12  23:54:12
收件人: dev4server
抄送:
主题: Re: Re: 想请问一下现在的服务端程序使用jav a的比例是多少呢,难道现在还都是在使用c++ 开发服务端吗

Franklin Coolfiry

unread,
Aug 12, 2009, 9:45:56 PM8/12/09
to dev4s...@googlegroups.com
赞同!

2009/8/13 liangyaotang <liangy...@gmail.com>

ehuangmy

unread,
Aug 13, 2009, 4:26:27 AM8/13/09
to 高性能服务器研发与运营邮件列表
mina非常不错,性能很高

Linker

unread,
Aug 13, 2009, 10:54:06 AM8/13/09
to dev4s...@googlegroups.com
大一统思想是最坏的思想!!!
参差多态幸福本源!

--
Sent from my mobile device

Regards,
Linker Lin
linker...@gmail.com

浩毛

unread,
Sep 23, 2009, 10:41:55 PM9/23/09
to 高性能服务器研发与运营邮件列表
类unix平台下的话,用C吧。

neou

unread,
Sep 27, 2009, 6:12:33 AM9/27/09
to 高性能服务器研发与运营邮件列表
要务实, 哪种能把产品弄出来就用哪种。 java的一点性能完全可以用硬件搞定,人也好招,价格也比搞c++的低,培养起来也快,这些都是优
势。 加机器比加人爽啊。

On Aug 12, 10:26 am, Lei Gu <jackf...@gmail.com> wrote:
> 脚本作为粘合剂,配置,最叶端(非底层,中间层)的开发,还是很适合。
>

> 2009/8/12 Lei Gu <jackf...@gmail.com>


>
>
>
> > java类似的问题,要解决,要定位都比C++容易太多了
> > 不怕任何人写出有越界,也指针,内存泄漏,通过静态分析工具,线上动态分析工具,随时可以定位解决,比C++容易很多
>

> > 2009/8/12 Franklin Coolfiry <coolf...@gmail.com>


>
> > 严格的说,越界、野指针、内存泄漏对一个java程序员来说也是要考虑的,这些问题,特别是内存泄漏也一直困扰这java程序员,除非你做的都是一些小项目。
> >> "对于中大型的项目来说,我是不喜欢去用脚本语言的。",大中型项目中用脚本语言的目的看来你没有明白哦
>

> >> 2009/8/12 qiaojie <qiao...@gmail.com>


>
> >>> 这里的关键是C++不是一个安全的语言,越界、野指针、内存泄漏等等问题随时会困扰程序员,这些问题在java里是不存在的。而脚本语言的问题在于可读性不佳, 因为没有静态的类型信息,程序一旦写大了就难以搞清楚了,对于中大型的项目来说,我是不喜欢去用脚本语言的。
>

> >>> 2009/8/12 jrckkyy <jrck...@gmail.com>
>
> >>>> 我是一个初学者,在此谈下自己的感觉,请不要见笑,现在的网络应用向"桌面"应用靠近,富客户端,富表现力,实时,逻辑增多,交互频繁,数据量大,CPU计算多 ,特别是做web类的某种意义上开发难度在趋向于网络游戏了,在大型多人在线网络游戏这种类高端游戏中基本上是用C++加脚本语言,对比可得服务器类研发也应该 趋向于使用c++加脚本语言,因为当复杂程度达到一定程度时所面临的问题就类似于研发传统意义上的网络游戏了。例如一些flash


> >>>> 的 webgame
> >>>> 如果是采用java除了开发效率上高些外,一个服务器估计就承受不了多少玩家在线(提高了服务器成本),服务器利用效率和运行效率上应该不及C++,而且做这类 应用开发不是必须要求跨平台和大量的复用,弱化了java的优点,况且c++及其stl、boost等丰富的跨平台标准库和脚本语言(一个执行效率高,一个组织 灵活而且不需编译实现逻辑方便开发效率高)组合起来各尽其长的运用的思路大大提高了服务器端的开发效率和降低了服务器运行成本。
>

> >>>> 2009/7/31 stefan <pengli.h...@gmail.com>

Jacky Huang

unread,
Sep 27, 2009, 10:10:47 PM9/27/09
to dev4s...@googlegroups.com
我原来所在的公司使用的是:C++负责建立socket,java负责做业务逻辑处理。



2009/9/27 neou <gensh...@gmail.com>



--
Best regards,

Jacky

CDC GuangZhou
MSN: jackyhu...@gmail.com

杨光

unread,
Sep 28, 2009, 1:49:12 AM9/28/09
to dev4s...@googlegroups.com
不同的服务应用,使用不同的技术。很久没见到还在讨论语言的优劣的人了。多说一句,还真没见到过大型服务程序是用JAVA作的。游戏,QQ,MSN。。。这些是用JAVA吗?

2009/9/28 Jacky Huang <jackyhu...@gmail.com>

Kula

unread,
Oct 4, 2009, 9:26:39 AM10/4/09
to dev4s...@googlegroups.com
我觉得这样的争吵很有意义..只要大家有拿得出手的对比资料。有拿得出手的使用场合。这样的争吵很容易让我们这些旁观者认识到哪种语言适用于什么场合,这样当今后自己面临项目的技术选择的时候,就能够选择最适用的技术去完成一件事情。


Jonathan Swift  - "May you live every day of your life."

2009/8/13 liangyaotang <liangy...@gmail.com>
Reply all
Reply to author
Forward
0 new messages