最近一直在CU讨论java做互联网开发的优势在那里, 还会再讨论,本文将持续更新。
先说本人,俺对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的特点。 有做运营性的互联网项目的兄弟, 介绍一下开发管理经验。
:1.静态语言 2. 有大量成熟框架 再补充一点 3. 语言简单,健壮,不容易出错,适合民工使用
野狼:所谓静态语言,是对比脚本语言? 那没有任何优势。
php,asp成熟框架不见得少,hibernate搞得程序员sql都不会写,而且复杂查询性能不好。论语言简单, 好像asp最简单,php也比java容易些吧。我问的也是,java在运营性的互联网项目的优势, erp等不算。
: 如果你只用jsp,那也不用重启,修改jsp后直接拷贝到相应目录就可以。如果你用了jsp之外的技术,那是需要重新启动。java是静态语言,有丰富成熟的框架可用。比如hibernate这样的ormapping。一般来说,Java做的东西很复杂,很强大。
野狼:单纯的jsp当然了不需要。 是否重启不是重点。
: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工程师都不好找。
您说的可靠性, 是安全还是稳定性?。 安全基本上和语言无关, 稳定性似乎和语言也没关系啊。
:说Java性能有优势,是编辑型语言对解释型语言的优势,这是根本性的优势。不过在web应用中,这部分性能占的比重不大。我觉得对于web应用的性能来说,关键的是语言对并发的处理能力。Java有成熟的多线程模型,可以充分利用多核CPU。说Java应用可靠,是因为Java没有指针,坏代码会造成内存泄露,但是不会造成系统crash。一般来说,内存泄露需要一定时间的积累才会消耗光系统内存,这个过程给了管理员机会来发现问题,解决问题。还有Java是静态类型,这样编译器可以在编译时发现一些类型不匹配问题,在动态类型语言中只能靠程序员自己了。
野狼: 如您所说, web应用编译型语言不体现优势 。
系统的并发的处理能力和语言不是直接相关。 我理解Java有成熟的多线程模型, 是用于处理复杂程序逻辑上。而比如简单的打开模板再输出,不可能超过apache+php的并发能力。
所有解释语言都没指针, 都不会因为程序员疏忽造成内存泄露系统crash。 在这点上解释语言应用更可靠, 甚至不会造成内存泄露。
:并发有两部分,一部分是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在商业产品中。
阅读(721) | 评论(0) | 转发(0) |