论坛首页 编程语言技术论坛

是时候大举进军rails了。

浏览 31064 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-08-12  
robbin 写道
Java企业应用为什么那么复杂,其实都是自找的!事情本来没有那么复杂,可是Java就是要有骨气,我偏偏不用你操作系统的东西,我就非要自己一砖一瓦的自己搭起来,那焉能不复杂?

好家在你还没用Java写进程库呢……杀掉一个线程不保证它生出来的子进程也杀死。这个bug都好几年了现在也没进展……Linux上面只要往pipe扔一个Ctrl+C就行了……
0 请登录后投票
   发表时间:2006-08-13  
robbin 写道
Java这样做的一个好处就是平台无关性,但是似乎这个好处到现在来看体现的并不明显,因为企业应用高端还是清一色的Unix。


企业应用高端也许是清一色的Unix,但是更多的企业用的是windows.
我觉得可能是你接触的多是Unix,就觉得所写的程序没必要支持windows.
0 请登录后投票
   发表时间:2006-08-13  
引用

1、难以利用操作系统和C/C++的底层库
由于JVM的隔离作用,使得Java语言不论做什么事情都必须从头开始,而无法利用现有的C库。有人戏称:Java 是自己操纵磁头和马达来读写文件的。

2、不得不做的很复杂
正因为无法直接利用底层库,所以在异构系统的整合上就不得不采用很复杂的方案来搞定。

举个例子吧:在web系统中实现异步任务,本来Unix操作系统就提供了crontab,就是干这个的,ruby的做法就是直接使用crontab,生成一个task丢给crontab就OK了,既简单又robust。但是Java偏偏不要去用现成的东西,非要自己搞java.util.TimerTask,结果难用,功能还差,不得已,又有人搞出来Opensymphony Quartz,这玩意功能是够强的了,还提供了crontab风格的schedule,但是一个web app他就启动10个线程自己玩,嘿嘿,你tomcat想shutdown都难呀。


前面讲高端企业应用,对于这种系统,我想Quartz就算启动10个线程也不是什么问题。

你一个小web应用,如果只是跑在自己的服务器上,也可以使用crontab的呀。

java可以做到跨平台,但这并不代表一定要跨平台。
0 请登录后投票
   发表时间:2006-08-13  
ylt 写道
robbin 写道
Java这样做的一个好处就是平台无关性,但是似乎这个好处到现在来看体现的并不明显,因为企业应用高端还是清一色的Unix。


企业应用高端也许是清一色的Unix,但是更多的企业用的是windows.
我觉得可能是你接触的多是Unix,就觉得所写的程序没必要支持windows.


从可管理性,安全性,稳定性,可持续工作能力上面来说,我确实觉得不应该用Windows做Server。
0 请登录后投票
   发表时间:2006-08-13  
ylt 写道
引用

1、难以利用操作系统和C/C++的底层库
由于JVM的隔离作用,使得Java语言不论做什么事情都必须从头开始,而无法利用现有的C库。有人戏称:Java 是自己操纵磁头和马达来读写文件的。

2、不得不做的很复杂
正因为无法直接利用底层库,所以在异构系统的整合上就不得不采用很复杂的方案来搞定。

举个例子吧:在web系统中实现异步任务,本来Unix操作系统就提供了crontab,就是干这个的,ruby的做法就是直接使用crontab,生成一个task丢给crontab就OK了,既简单又robust。但是Java偏偏不要去用现成的东西,非要自己搞java.util.TimerTask,结果难用,功能还差,不得已,又有人搞出来Opensymphony Quartz,这玩意功能是够强的了,还提供了crontab风格的schedule,但是一个web app他就启动10个线程自己玩,嘿嘿,你tomcat想shutdown都难呀。


前面讲高端企业应用,对于这种系统,我想Quartz就算启动10个线程也不是什么问题。

你一个小web应用,如果只是跑在自己的服务器上,也可以使用crontab的呀。

java可以做到跨平台,但这并不代表一定要跨平台。


我没说Java一定要跨平台。我说的是Java什么事情都要自己的Pure Java解决方案,这是造成Java企业应用如此复杂的一个重要原因。

Java是可以用crontab,但是为啥你们都不简单的使用crontab,非要那么复杂的用Quartz呢?

其实道理很简单,那就是Java本身没有提供便利的使用操作系统的手段。你Java要用crontab,只能自己用Runtime和Process类去启动一个新的进程,调用操作系统的crontab shell命令,同时也缺乏必要的监控和管理手段,这当然无法令人接受。

所以Java就不得不用复杂的Quartz去解决本来可以很简单搞定的事情。
0 请登录后投票
   发表时间:2006-08-13  
是的,JAVA设计用来跨平台,所以自己搞一个虚拟机。
虽然从现在来看虚拟机有很多限制,但JAVA有今天的广阔局面是跟这个虚拟机密切相关的。

BORLAND如果更早意识到这一点,也不会被MS套牢。

这也是现在角本语言兴起的原因吧。

但关于SERVER是不是用MS,我觉得是这样的:
在用户数较少,数据库不是太大,对稳定性的要求级别不是太高(不要求不间断执行)等情况下,MS还是性价最高的平台。维护相对容易,技术门槛低。

并且因为WEB容器越来越成熟,在不同的平台上的表现不会有太大的差距。
0 请登录后投票
   发表时间:2006-08-13  
fyol 写道
在用户数较少,数据库不是太大,对稳定性的要求级别不是太高(不要求不间断执行)等情况下,MS还是性价最高的平台。维护相对容易,技术门槛低。


虽然本帖子是讨论rails的,现在变成叻windows vs linux,哈。不忍心继续在错误的路线上继续错误,不过实在忍不住这个所谓的“性价最高”,请老兄你先去了解一下Windows的售价再来说这句话。

fyol 写道

并且因为WEB容器越来越成熟,在不同的平台上的表现不会有太大的差距。


是吗?呵呵
0 请登录后投票
   发表时间:2006-08-13  
fyol 写道
是的,JAVA设计用来跨平台,所以自己搞一个虚拟机。
虽然从现在来看虚拟机有很多限制,但JAVA有今天的广阔局面是跟这个虚拟机密切相关的。

BORLAND如果更早意识到这一点,也不会被MS套牢。

这也是现在角本语言兴起的原因吧。

没看出来这前后两件事有什么关系。
脚本语言很少会拿“跨平台”说事。比如说Ruby就明目张胆的歧视Windows用户阿……想要fork一个进程的时候就告诉你“这个我们用pipe做的,在window上不支持”……不过同样的事情在Java上面就是我说的那个bug,spawn出来的进程根本杀不掉。所谓跨平台,要么是一个漂亮的幌子,要么是最大公约数,就是这样了。
0 请登录后投票
   发表时间:2006-08-13  
这个跨平台问题,其实要看java刚诞生时候的情景.开始java根本就没想什么企业级开发,什么web开发,那就是设计来用在嵌入式环境的,而且老外那时是五花八门的平台,什么都有,有一个跨平台的环境,那是很吸引人的.另外就是正好赶上了ms座大,各家厂商互相看对方不爽,java正好也符合了他们的政治需要.

windows server其实如果不是拿来做web服务器,很好用的.管理方便,功能多,管理员容易找,企业内部用很合适.N多的跨国企业都是用windows的,没有域和lotus或者exchange,他们简直不能工作

在国内的环境,没有遗留系统,没有历史包袱,如果是企业内部用软件,用.net其实还是很不错--如果不怕捆绑ms的话.
0 请登录后投票
   发表时间:2006-08-14  
无明 写道
这个跨平台问题,其实要看java刚诞生时候的情景.开始java根本就没想什么企业级开发,什么web开发,那就是设计来用在嵌入式环境的,而且老外那时是五花八门的平台,什么都有,有一个跨平台的环境,那是很吸引人的.另外就是正好赶上了ms座大,各家厂商互相看对方不爽,java正好也符合了他们的政治需要.

windows server其实如果不是拿来做web服务器,很好用的.管理方便,功能多,管理员容易找,企业内部用很合适.N多的跨国企业都是用windows的,没有域和lotus或者exchange,他们简直不能工作

在国内的环境,没有遗留系统,没有历史包袱,如果是企业内部用软件,用.net其实还是很不错--如果不怕捆绑ms的话.


那你知不知道n多跨国公司用的都是Unix来跑Lotus Notes,n多跨国公司用的都是Unix来跑Novell GroupWise呢?

那你又知道不知道n多跨国公司都是用Novell Netware来管理他们的域的呢?嘿嘿,不才n年前正好是某跨国公司中国区软件开发经理,我们Server就没有Windows,整个中国区600多人,乃至全球所有内部网络全部都是用Novell的Netware来管理,比Windows的AD性能好多了,安全性也好多了。

这里大家可能有个误区,总是以为Netware有多没落,其实不然,Novell这些年就一直很强,他的Netware也有Windows版本的,安装在Windows Server上面的,图形界面,比Windows AD在功能和性能上面都强很多。

所以,不要动不动用跨国公司举例。我知道的,好像只有HP和Dell用的是Exchange Server,其他没有听说用Microsoft的。目前看来,还是以Lotus Notes居多。

拿我以前曾经亲身经历过的事情讲个小故事吧:

在2001年我在一家软件公司上班,公司大概有七八十号人,公司服务器大概有七八台,做网关的,email的,CVS的,文件服务器的,终端服务器,打印服务器,主域控制器什么的。

后来公司网管跳槽了,这个事情就被我兼任了。可是兼了一段时间就不胜其烦,文件服务器上面病毒成堆,主域控制器经常一天重起几次,要不然大家都登录不上去,终端服务器也是三天两头出问题。

过了些天,新的网管招来了,这个网管文化水平比较低,工资也比较少,主要做helpdesk的事情。但是我就逐渐开始把服务器维护的事情都交给他了,我基本上不管了,过了段时间他也烦了。我就和他说,干脆换成Linux吧,他为难的说,Linux我根本不会,我说我配置好了,你不需要做什么的。

就这样,把网关,email,cvs,文件服务器,主域控制器都换成了Linux,最终也就打印服务器和终端服务器还是windows,其他服务器全部换成Linux。这下整个世界清静了,再也不用为服务器烦恼了,那网管小伙还由此迸发了学习Linux的高度热情,后来还整天缠着我说,咱们把打印服务器也换成Linux吧。

我估计你可能没有怎么做过公司网管,做过网管的,恐怕都是谈Windows Server色变的。论坛的Quake Wang同学在中芯国际的IT部门,他们那可惨了,Windows统一升级一次补丁,他们都要忙到死。

那Linux Server配置好以后,你丢在那里几年都不用去管它,那TCO不知道比每天折腾补丁重起的Windows低多少,也不要把网管都想的都有多白痴,以为人家连个Linux都不会玩。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics