先说本人,俺对c,php,perl都有过几年开发经验。 说实话java我并不精通。讨论的重点java在利用spring等架构的web开发,对比php等在开发运维和性能方面有那些优势。尤其在电子商务等稍稍复杂一些的网站,java在业务实现上有那些优势。
人人都说java适合大项目,但没听说谁倒出真正原因。我先说说自己的感觉。
java优势,是适合团队开发,软件工程可以相对做到规范,这是一个很难比拟的优势。
java劣势,是j2ee的架构很完美,第一版软件可以做满意,但是很不适合互联网模式的持续不断修改。互联网软件工程管理上的不足,持续的修修补补导致架构的破坏。系统更新需要重启web服务,很难接受。
tong0245:做web开发的 不管php perl pyton ruby 都是脚本语言 java不是
野狼:这是java的优势? 是不是脚本语言根本无所谓。 虽然可以编译,我认为甚至也可理解java一样是脚本语言,不算独立运行 .
我一贯使用c写web程序, java有些好的理念, 但常常人为把事情搞复杂
艾斯尼勒:我觉得可能是这样,由于有jvm的存在,大型的系统开发起来还是象单机的程序那么简单而php……要考虑的貌似更多而且你用java就oo嘛,设计好嘛嘛……据说是能很好的提升可扩展性和可维护性
野狼 : 以前在公司,负责一套java做的系统,业务的复杂程度国内少有,最初请过sun工程师做的架构,两年多来敏捷开发,项目管理做的不算差,但业务的发展导致了100多次上线,架构破坏严重,面临重构。反思一下,在自己的项目中看不到java的优势在那里。
感觉作为成品,卖给客户的物流erp系统,能发挥java的特点。 有做运营性的互联网项目的兄弟,介绍一下开发管理经验。
javavsnet :1.静态语言 2. 有大量成熟框架 再补充一点 3. 语言简单,健壮,不容易出错,适合民工使用。
野狼:所谓静态语言,是对比脚本语言?那没有任何优势。
php,asp成熟框架不见得少,hibernate搞得程序员sql都不会写,而且复杂查询性能不好。论语言简单,好像asp最简单,php也比java容易些吧。我问的也是,java在运营性的互联网项目的优势, erp等不算。
javavsnet : 如果你只用jsp,那也不用重启,修改jsp后直接拷贝到相应目录就可以。如果你用了jsp之外的技术,那是需要重新启动。java是静态语言,有丰富成熟的框架可用。比如hibernate这样的ormapping.一般来说,Java做的东西很复杂,很强大。
野狼:单纯的jsp当然了不需要。 是否重启不是重点。
javavsnet :Java是静态语言,有静态类型检查,健壮,如你所说,java优势是适合团队开发,软件工程可以相对做到规范。对于互联网项目,可以分为两类。一类是web 2.0,需求变化快,网站的进化速度很快。比如开心网,出点什么错误用户也能忍受,用户喜欢的是炫目的功能。这方面Java没有优势,是劣势。
另一类是Java的强项,所以目前是Java的天下。就是对可靠性要求极高的互联网项目。比如ebay,绝对不允许交易出现失误,系统crash谁受得了?
还有就是Java的性能比脚本语言强,和c性能比Java强是一个道理。对大容量系统的支持比php,perl们容易。asp最简单,php也容易,但是他们谁能跟Java比健壮性?
用php+c编的系统,性能上来了,但是可靠性呢?在可靠性方面,你对php+c有信心还是对Java有信心?
综合来看,Java做互联网项目开发速度比脚本语言慢,但是可靠性和性能上要强,是各有所长吧。
野狼:之前见过淘宝的首席架构师,淘宝主营业务的确曾经考虑性能等愿意, 由php转的 java.不过我不认为java在性能上有优势、
真正意义上的web2.0极少, 不如就说普通类型网站java没有优势。 ――不过事实上现在倒是java网站越来越多,甚至招聘php工程师都不好找。
您说的可靠性,是安全还是稳定性?。 安全基本上和语言无关, 稳定性似乎和语言也没关系啊。
javavsnet :说Java性能有优势,是编辑型语言对解释型语言的优势,这是根本性的优势。不过在web应用中,这部分性能占的比重不大。我觉得对于web应用的性能来说,关键的是语言对并发的处理能力。Java有成熟的多线程模型,可以充分利用多核CPU.说Java应用可靠,是因为Java没有指针,坏代码会造成内存泄露,但是不会造成系统crash.一般来说,内存泄露需要一定时间的积累才会消耗光系统内存,这个过程给了管理员机会来发现问题,解决问题。还有Java是静态类型,这样编译器可以在编译时发现一些类型不匹配问题,在动态类型语言中只能靠程序员自己了。
野狼: 如您所说, web应用编译型语言不体现优势 .
系统的并发的处理能力和语言不是直接相关。 我理解Java有成熟的多线程模型,是用于处理复杂程序逻辑上。而比如简单的打开模板再输出,不可能超过apache+php的并发能力。
所有解释语言都没指针,都不会因为程序员疏忽造成内存泄露系统crash. 在这点上解释语言应用更可靠,甚至不会造成内存泄露。
javavsnet :并发有两部分,一部分是web server对并发request请求的处理,这里Java和其他语言一样,都依赖Apache的处理能力。
另一部分是application server对应用逻辑的并发处理,这里语言本身对并发的支持就很重要了。
野狼:java的语言能力肯定比php等强。
不过我理解java的语言能力是配合框架,体现在特殊应用上, 比如单例模式,而不是对并发能力的提升。
处理相同的业务算法,并发只和语言的处理效率,以及webserver相关。
思一克: 好像有的WEB应用不用JAVA做不出来,就是AJAX那类的,著名的是GOOGLE MAP等。AJAX技术, 将WEB页面做的可以和本地GUI一样漂亮。和PHP, CGI类的区别是本质性的。GOOGLE MAP的成功就是用这个
野狼 :
AJAX就是异步JavaScript和XML,和java毫无关系。 AJAX不是任何新的技术,也不是新的语言,协议。
算是整理了一套javascrpit 在特殊情况的应用。 其实是微软先使用的AJAX在商业产品中。也许正式这个简单而又强大的工具,让众多的程序员更加认可和信赖极限编程,从而引起了Java敏捷开发的狂潮吧。
人人都说java适合大项目,但没听说谁倒出真正原因。我先说说自己的感觉。
java优势,是适合团队开发,软件工程可以相对做到规范,这是一个很难比拟的优势。
java劣势,是j2ee的架构很完美,第一版软件可以做满意,但是很不适合互联网模式的持续不断修改。互联网软件工程管理上的不足,持续的修修补补导致架构的破坏。系统更新需要重启web服务,很难接受。
tong0245:做web开发的 不管php perl pyton ruby 都是脚本语言 java不是
野狼:这是java的优势? 是不是脚本语言根本无所谓。 虽然可以编译,我认为甚至也可理解java一样是脚本语言,不算独立运行 .
我一贯使用c写web程序, java有些好的理念, 但常常人为把事情搞复杂
艾斯尼勒:我觉得可能是这样,由于有jvm的存在,大型的系统开发起来还是象单机的程序那么简单而php……要考虑的貌似更多而且你用java就oo嘛,设计好嘛嘛……据说是能很好的提升可扩展性和可维护性
野狼 : 以前在公司,负责一套java做的系统,业务的复杂程度国内少有,最初请过sun工程师做的架构,两年多来敏捷开发,项目管理做的不算差,但业务的发展导致了100多次上线,架构破坏严重,面临重构。反思一下,在自己的项目中看不到java的优势在那里。
感觉作为成品,卖给客户的物流erp系统,能发挥java的特点。 有做运营性的互联网项目的兄弟,介绍一下开发管理经验。
javavsnet :1.静态语言 2. 有大量成熟框架 再补充一点 3. 语言简单,健壮,不容易出错,适合民工使用。
野狼:所谓静态语言,是对比脚本语言?那没有任何优势。
php,asp成熟框架不见得少,hibernate搞得程序员sql都不会写,而且复杂查询性能不好。论语言简单,好像asp最简单,php也比java容易些吧。我问的也是,java在运营性的互联网项目的优势, erp等不算。
javavsnet : 如果你只用jsp,那也不用重启,修改jsp后直接拷贝到相应目录就可以。如果你用了jsp之外的技术,那是需要重新启动。java是静态语言,有丰富成熟的框架可用。比如hibernate这样的ormapping.一般来说,Java做的东西很复杂,很强大。
野狼:单纯的jsp当然了不需要。 是否重启不是重点。
javavsnet :Java是静态语言,有静态类型检查,健壮,如你所说,java优势是适合团队开发,软件工程可以相对做到规范。对于互联网项目,可以分为两类。一类是web 2.0,需求变化快,网站的进化速度很快。比如开心网,出点什么错误用户也能忍受,用户喜欢的是炫目的功能。这方面Java没有优势,是劣势。
另一类是Java的强项,所以目前是Java的天下。就是对可靠性要求极高的互联网项目。比如ebay,绝对不允许交易出现失误,系统crash谁受得了?
还有就是Java的性能比脚本语言强,和c性能比Java强是一个道理。对大容量系统的支持比php,perl们容易。asp最简单,php也容易,但是他们谁能跟Java比健壮性?
用php+c编的系统,性能上来了,但是可靠性呢?在可靠性方面,你对php+c有信心还是对Java有信心?
综合来看,Java做互联网项目开发速度比脚本语言慢,但是可靠性和性能上要强,是各有所长吧。
野狼:之前见过淘宝的首席架构师,淘宝主营业务的确曾经考虑性能等愿意, 由php转的 java.不过我不认为java在性能上有优势、
真正意义上的web2.0极少, 不如就说普通类型网站java没有优势。 ――不过事实上现在倒是java网站越来越多,甚至招聘php工程师都不好找。
您说的可靠性,是安全还是稳定性?。 安全基本上和语言无关, 稳定性似乎和语言也没关系啊。
javavsnet :说Java性能有优势,是编辑型语言对解释型语言的优势,这是根本性的优势。不过在web应用中,这部分性能占的比重不大。我觉得对于web应用的性能来说,关键的是语言对并发的处理能力。Java有成熟的多线程模型,可以充分利用多核CPU.说Java应用可靠,是因为Java没有指针,坏代码会造成内存泄露,但是不会造成系统crash.一般来说,内存泄露需要一定时间的积累才会消耗光系统内存,这个过程给了管理员机会来发现问题,解决问题。还有Java是静态类型,这样编译器可以在编译时发现一些类型不匹配问题,在动态类型语言中只能靠程序员自己了。
野狼: 如您所说, web应用编译型语言不体现优势 .
系统的并发的处理能力和语言不是直接相关。 我理解Java有成熟的多线程模型,是用于处理复杂程序逻辑上。而比如简单的打开模板再输出,不可能超过apache+php的并发能力。
所有解释语言都没指针,都不会因为程序员疏忽造成内存泄露系统crash. 在这点上解释语言应用更可靠,甚至不会造成内存泄露。
javavsnet :并发有两部分,一部分是web server对并发request请求的处理,这里Java和其他语言一样,都依赖Apache的处理能力。
另一部分是application server对应用逻辑的并发处理,这里语言本身对并发的支持就很重要了。
野狼:java的语言能力肯定比php等强。
不过我理解java的语言能力是配合框架,体现在特殊应用上, 比如单例模式,而不是对并发能力的提升。
处理相同的业务算法,并发只和语言的处理效率,以及webserver相关。
思一克: 好像有的WEB应用不用JAVA做不出来,就是AJAX那类的,著名的是GOOGLE MAP等。AJAX技术, 将WEB页面做的可以和本地GUI一样漂亮。和PHP, CGI类的区别是本质性的。GOOGLE MAP的成功就是用这个
野狼 :
AJAX就是异步JavaScript和XML,和java毫无关系。 AJAX不是任何新的技术,也不是新的语言,协议。
算是整理了一套javascrpit 在特殊情况的应用。 其实是微软先使用的AJAX在商业产品中。也许正式这个简单而又强大的工具,让众多的程序员更加认可和信赖极限编程,从而引起了Java敏捷开发的狂潮吧。
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/2919/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
评论列表