而作为PHP+ MySQL为什么在历史的进程中,后来居上。独领风骚呢?为什么基于Java架构的的电子商务除了高额的开发成本,而变的前途暗淡呢?首先得明确PHP和Java之间的差异才行。
1、 出身
Java本来的设计初衷是为了家用消费电子产品开发一个分布式代码系统。
PHP就是为了互联网的应用而生的。
2、系统的技术架构比較
分层是将系统进行有效组织的方式。分而治之的思想是计算机领域中很重要的思想。在好的分层思想引导下,便能实现“高内聚、低耦合”,也能将详细的问题割裂开来,易于控制、易于延展,更易于分配资源。从PHP5版本号之后,PHP对于系统架构方面也有了质的飞跃。ShopNC 採用PHP语言开发,能够完美的实现多层架构分布。
运用MVC的设计模式,可使电子商务软件具有更加高效、合理的系统架构。使得系统在可拓展性、需求应变性上与Java编写的电子商务软件系统的毫不逊色。
Gutmans 在前年发表过一篇文章,当中也阐述了多核环境中多线程(JVM)与多进程(LAMP)的比較。当中就提到了多核系统很适合LAMP架构的多进程方式。
随着芯片业如今把主要精力都放在了多核而不是超线程技术上,JVM这种多线程环境的长处在今天的硬件上将无法充分发挥。而多进程方式将提供很多其它稳定性和可靠性。
这一回合。PHP旗开得胜。
3、数据库訪问比較
PHP可编译成具有与很多数据库相连接的函数。
将自己编写外围的函数去间接存取数据库。通过这种途径当更换使用的数据库时。能够轻松地改动编码以适应这种变化。
同一时候如今的PHP提供了数据库统一接口PDO,对Oracle,MySQL,SQL2000等不同数据库的訪问都能够通过桥来完毕,而不用考虑数据库接口方面问题。同一时候为了更好支持MYSQL数据库,PHP还推出了MySQLi的数据库连接,更加高效,安全。
而Java是通过JDBC来訪问数据库,通过不同的数据库厂商提供的数据库驱动訪问数据库。而没有特别的针对性优化。假设相同是将开发的web应用从MYSQL数据数转到ORACLE数据。PHP通过PDO的接口。差点儿不用做程序方面的改动(ShopNC中已经通过自主研发的封装数据库层,已经能够非常好的完毕对多种数据库的支持,甚至无需通过PDO)。而Java开发的须要一定的的更改才干实现。数据库訪问方式的差异,奠定了PHP开发出的电子商务软件和Java开发出来的电子商务软件是2个时代的差距,Java是传统的一代。PHP却是新科技发展的成果,PHP不仅能够包容万物并且速度上稳步提升。效率比Java强悍的多。
这一回合,Java稍逊风骚。
4、安全性对照
开源是安全的最大优势,LIUNX 就是一个非常成功的佐证。PHP的开发程序在别人拿到代码后,能够非常easy的进行改动。
而Java开发的程序因为无法看到完整的源码,仅仅能看到一些编译好的类文件.class,所以底层架构的诸多隐患都无法提前预知,一旦发生灾难性的错误。后果必将及其严重。而PHP假设想要加密代码。也能够使用Zend 公司的权威产品zend guard 进行加密。以保证产品的知识产权。
假设非要将PHP和Java在安全性上做个比較的话,仅仅能说伯仲之间。假设出差距。也是由开发程序猿的水平来决定的。
这一回合,两者依然平分秋色。
5、互联网应用方向上的前瞻性和拓展性
从总体来说,PHP适用于互联网应用,而Java语言设计之初。并非以WEB为中心,而是以通用服务为中心。
PHP可以将互联网的应用发挥到淋漓尽致,Java在通过标准的或者非标准的一些框架在迎合WEB应用的需求。
为什么说PHP适合互联网的应用呢?
首先。PHP对于大型系统负载方面。能够採用分布式部署。将数据库、应用逻辑层和表示逻辑层彼此分开。并将同层的依据流量分开。PHP在这个方面做的很优异。
其次,PHP提供的数据库接口众多且还有统一的接口,要将多个不同的数据库数据统一。不须要花费非常大的力气。而Java也能够通过Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的ApplicationServer获得结构支持。而与即有老的Java或者.NET 应用程序通讯方面,PHP能够通过即有的API接口进行通讯。
至于数据的通讯所使用的数据无非也都是XML,JSON等。
假设将PHP比作互联网中的最佳表现奖。具备独挡一方的能力。那么Java应该获得的是最没有创新奖,就如同欧洲中世纪武士,唯有沉重的框架,笨重的效率。
难怪连当年的SUN也在其J2EE方案上支持了JRuby及Jython。而IBM Websphere意识到J2EE在WEB方面的不适应而开启了Project Zero项目。 结果呢? Project Zero 的首席架构师也是非常无奈的公开承认“Java如今能够觉得仅仅是一种系统语言而不适合构建Web应用”。
事实上Java已经在企业级E化和关键业务应用中根深叶茂。可是在Web应用上。Java语言市场份额急剧下降,颓势尽显。
所以这一回合,Java输的哑口无言。
6、产品化程度
用Java做开发,差点儿没有一个程序猿会从底层写起,由于都是即有封装的类。这事实上是导致Java非常难产品化的一个重要原因。由于差点儿全部的程序猿能够做的都是比較浅层的应用开发。而就Java的类而言,放到互联网上,那仅仅有一个沉重能够形容。而唯一让Java一直宣称的跨平台的优越性,事实上那也是对于初学程序者的一种宣传。对于资深程序猿那就是一个笑话,一条鸡肋。经历了非常多大项目的资深开发人员都知道,开发伊始,程序须要跑在什么平台上,都是确定的了。越是大型项目。越是确定的明白,并且轻易不会考虑平台的移植。即便须要在其它平台架设新服务,也是在新平台上进行增项的开发。与即有产品之间也能够通过Webservice解决。
而数据库是无所谓的。我想不会有人用ACCESS来做大型商业程序的开发吧!
随着大多数业务应用程序包含CRM、ERP、报表、文档管理等等也都转向了Web。放眼望去,PHP的产品,琳琅满目。在互联网应用方面。能够负责的说,涵盖率在99%以上。
尽管众多产品的质量也是參差不齐。可是每一个方向及领域都是有那么一些代表产品的。能举出范例的有Wordpress, Drupal, mediaWiki, osCommerce, SugarCRM,Discuz, QeePHP,ShopNC等等。
产品化程度是直接佐证了工业化程度的一个关键数据。
不能工业化的工具,事实上其本身是有着很大的悲哀的。
这一回合,Java输的体无完肤。
7、开发及兴许维护成本比較
既然PHP在互联网应用诸多方面都强于Java,那么Java开发出的电子商务产品何以与PHP产品竞争呢?这在于Java阵营普遍走的是政府路线,而PHP阵营走的是全民路线。
Java在互联网方面靠的是大学老师的言传身教。才得以在互联网世界狺狺狂啸。而PHP是靠得是自身品质而得民心,所以才一路赞歌。
软件价格的高低非常大程度上和自身成本和功能相挂钩。
PHP的入门门槛较低,可是不论什么方面成为高手,都是万里挑一。
绝大多数学过c的程序猿都非常easy转型为PHP程序猿。这使得PHP程序猿如同国球一样普及。相同更是高手如云。高质量的PHP软件产品也层出不穷。
server成本方面。PHP最经典的组合PHP+ MySQL + Apache。Java也是常常与MySQL + Tomcat、JBoss等软件配合。全部软件都是开源免费的,所以server端的投入都并不高。
而Java程序猿的学习成本却是PHP成本的几倍。原因也非常晴朗。本身Java就不是专门给WEB开发用的。所以。Java开发电子商务的成本要远远高于PHP开发出来的同类软件产品。但也正因为Java开发的成本较高,所以往往也是做一个相同的产品。达到相同的效果,Java须要付出比PHP开发多出N倍的时间及经济成本。直接的造成了巨大的时间及成本浪费。
最后一回合,Java在WEB之战中,输的干干净净。
通过以上数据也能够让读者很清楚的意识到。採购了Java类的电子商务商品。你将来兴许的维护期带来多么昂贵的经济成本。及付出多少宝贵的时间。商机是稍纵即逝的,假设商业上的运作永远须要在等待漫长的技术实现后才干够施展。那恐怕真的是黄花菜都凉了。
不怕不识货,就怕货比货。PHP开发出来的产品应用普及。口碑良好,可是Java开发出来的产品,非常难形成规模。直接导致产品化的少。项目类型的多。
正由于PHP开发的产品总体性能经历了万千使用者的检验与完好。Java与之相比则相去甚远,所以Java仅仅有走政府路线。以价格落差来平衡採购方的心态。也就不足为奇了。
总结全部一切,PHP才是的电子商务软件发展的最有力推动者,也将必定成为大势所趋。是不可逆转的,是不可被质疑的。
作为程序猿。不管PHP还是Java。
高度这个问题上,事实上对于我们而言都一样的。在这个高度上的战争事实上是各大厂商之间的事情,和我们无关。可是比如WEB方面。我还是要为自己的阵营摇旗呐喊!