开发语言的选择:Java or C++

when
开发语言的选择:Java or C++

目前有一个基于unix开发的项目,涉及到网络通讯,数据库操作等业务。基于此,目前是选择java还是C++一直在犹豫,各位能给分析java,c++的优缺点并给出一些建议吗?

[[i] 本帖最后由 when 于 2008-6-19 10:46 编辑 [/i]]

UnixStudier
我来学习,等着看大家的分析

zzxiaoma
看你是做b/s还是c/s

when
c/s,主要涉及文件信息传输、数据库批量更新。很多时候要让系统作自动job,比如监控系统某个文件的变化,并把变化传递到client所在的机器上。

zzxiaoma
感觉c++好一点

when
回复 #5 zzxiaoma 的帖子

但c++的通用性能是否会差一些,本次开发针对AIX的用户,下次的用户可能是HP unix或者window server,这样情况下,c++的系统是否需要做相对较多的程序修改。

zzxiaoma
牵扯到跨平台就比较复杂了,如果用java做c/s会比较麻烦

UnixStudier
可以考虑apache apr库,对各个平台的底层 接口进行了封装

zzxiaoma
关键是页面的东西不好继承吧

when
回复 #7 zzxiaoma 的帖子

其实,初期要实现两个主要功能:
1. 服务器程序要再服务器上(主要为unix,linux)上运行一个监控程序,监控一个文件的变化,并把变化信息通过网络传输到另外一台机器的client程序,并存储在client本地;
2. client根据文件系统对本地数据库库做批量更新。

基于此,我原先的感觉,C++在服务器端运行效率、程序编写复杂度上应该优于java;但是数据库操作上,感觉Java效率和程序复杂度上应该更好,同时java可以在不同平台上运行。

UnixStudier
用什么数据库?

sunnyfun
如果对效率不敏感的话当然是java了,或者可以混合编程,AIX下用C++做界面也不是件容易的事。

when
oracle数据库
其实界面无所谓,文字的也可以。

UnixStudier
这个服务器程序如果我做的话我倾向于使用c或者c++来做,理由如下:
一、
'1. 服务器程序要再服务器上(主要为unix,linux)上运行一个监控程序,监控一个文件的变化,并把变化信息通过网络传输到另外一台机器的client程序,并存储在client本地'
这个程序其实就做了两个工作:监视文件,传送文件的变化信息。
这个程序涉及到的api其实估计就是文件的、socket的。socket在各个平台都一样的,文件在windows跟unix之间是有一些差别,我估计用到的也不多,自己封装一下也就跨平台了。当然也可以使用apr库。
使用c语言与系统打交道比较方便。
二、我对c语言,unix系统比较熟悉,java只能算是有所了解。如果楼主对java更熟悉,使用java也许更好一些。

[[i] 本帖最后由 UnixStudier 于 2008-6-19 19:34 编辑 [/i]]

UnixStudier
涉及到甲骨文数据库的是client端吧?使用c/c++访问甲骨文,是有点麻烦,学习过,感觉挺复杂的。c这里用于java这种高级语言来写似乎比较好

hitsubunnu
[quote]原帖由 [i]when[/i] 于 2008-6-19 12:00 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8619140&ptid=1164415][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
其实,初期要实现两个主要功能:
1. 服务器程序要再服务器上(主要为unix,linux)上运行一个监控程序,监控一个文件的变化,并把变化信息通过网络传输到另外一台机器的client程序,并存储在client本地;
2. cli ... [/quote]

怎么看都觉得  用perl 更方便

perl支持aix

1.FTP模块
2DBI模块  

感觉都是很轻松就搞定的

jackwonder
通信软件我参与过,客户端SWT, 服务端spring,中间使用jms,ejb就差不多咯,而且跨平台性比较好,效率用户基本接受。

zhoukun
看好java,跨平台

UnixStudier
昨天看到楼主在c/c++版也发了一篇,看来楼主对java更熟悉一些,似乎java为宜.

when
谢谢各位兄弟姐妹的热心支持!
后面有问题再向各位请教。