用Java做互联网开发优势何在?

开发 后端
这篇文章是网上一个java程序员发表比较早的一篇的文章,文章通过作者与他人的探讨,详述了现如今用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就高级,设计也好。据说是能很好的提升可扩展性和可维护性

  野狼 : 以前在公司,负责一套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在商业产品中。

【51CTO观点】JAVA与PHP ,二者的开发成本都不低。不过由于Java开源,所以代码重用率很高,在网上就可以找到很多开源的技术、框架,在有些时候可以降低很多成本。java 的扩展库特别多,开发起来相对比较容易。不过Java对服务器性能的要求高,因为Java虚拟机和连接池都是比较耗资源的。单看纯运用时,理论上JAVA的性能及安全可靠性也稍逊PHP。总之,JAVA与PHP都有各自的优势,大家在做互联网开发时,还是具体情况具体分析吧。

【编辑推荐】

  1. 中国移动互联网开发者生存现状调查
  2. Java开发之道
  3. 必读!Java开发人员的十大戒律
  4. 讨论未来的Java开发者
  5. Java开发程序员必知的Java编程的10种错误
责任编辑:韩亚珊 来源: 中国开发论坛
相关推荐

2015-10-28 15:18:45

2015-04-20 13:40:14

CIO时代网

2015-06-10 09:54:46

联想互联网+TechWorld

2013-07-12 12:29:33

今目标oa

2019-09-23 11:10:31

HTML静态页面互联网

2015-06-24 15:35:54

2015-05-28 13:58:33

2016-10-09 16:17:10

硬件开发嵌入式

2017-08-20 08:15:45

互联网农业农产品

2015-02-06 17:15:42

正益无线AppCan

2018-12-24 15:50:29

Windows 10互联网应用程序

2017-10-26 14:03:30

互联网教育京津冀

2015-05-28 16:11:07

互联网+

2014-01-15 14:35:35

云计算

2011-05-19 09:57:56

2014-07-01 18:00:01

互联网思维移动化

2015-10-08 15:20:34

互联网物联网

2013-05-30 17:04:04

2015-10-30 17:50:18

互联网金融

2018-08-15 09:02:59

产业互联网工业互联网物联网
点赞
收藏

51CTO技术栈公众号