搜索
首页后端开发PHP问题0基础学php还是java

0基础学php还是java

Oct 09, 2019 am 11:59 AM
javaphp

0基础学php还是java

PHP和Java的简单比较

现在市场上的电子商务软件基本上可归结为两大阵营,即PHP阵营和Java阵营。但对接触电子商务不久的用户来说,看到的往往只是它们的表相,只是明显的价格差异,却很难看出它们之间的实际差异。

其实,PHP MySQL高效的开发、品质优良的特性,已经让风靡大学校园的Java变的越来越难堪。而作为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的开发程序在别人拿到代码后,可以很容易的进行修改。而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的程序员都很容易转型为PHP程序员,这使得PHP程序员如同国球一样普及,同样更是高手如云,高质量的PHP软件产品也层出不穷。

服务器成本方面,PHP最经典的组合PHP MySQL Apache,Java也是经常与MySQL Tomcat、JBoss等软件配合。所有软件都是开源免费的,所以服务器端的投入都并不高。

而Java程序员的学习成本却是PHP成本的几倍,原因也很晴朗,本身Java就不是专门给WEB开发用的。所以,Java开发电子商务的成本要远远高于PHP开发出来的同类软件产品。但也正由于Java开发的成本较高,所以往往也是做一个同样的产品,达到同样的效果,Java需要付出比PHP开发多出N倍的时间及经济成本。直接的造成了巨大的时间及成本浪费。最后一回合,Java在WEB之战中,输的干干净净。

通过以上数据也可以让读者非常清楚的意识到,采购了Java类的电子商务商品,你将来后续的维护期带来多么昂贵的经济成本,及付出多少宝贵的时间。商机是稍纵即逝的,如果商业上的运作永远需要在等待漫长的技术实现后才可以施展,那恐怕真的是黄花菜都凉了。
不怕不识货,就怕货比货。PHP开发出来的产品应用普及,口碑良好,但是Java开发出来的产品,很难形成规模,直接导致产品化的少,项目类型的多。正因 为PHP开发的产品整体性能经历了万千使用者的检验与完善。Java与之相比则相去甚远,所以Java只有走政府路线,以价格落差来平衡采购方的心态,也就不足为奇了。

总结:

PHP才是的电子商务软件发展的最有力推动者,也将必然成为大势所趋,是不可逆转的,是不可被质疑的。作为程序员,无论PHP还是Java,高度这个问题上,其实对于我们而言都一样的。在这个高度上的战争其实是各大厂商之间的事情,和我们无关。但是例如WEB方面。我还是要为自己的阵营摇旗呐喊!

推荐教程:PHP视频教程

以上是0基础学php还是java的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
酸与基本数据库:差异和何时使用。酸与基本数据库:差异和何时使用。Mar 26, 2025 pm 04:19 PM

本文比较了酸和基本数据库模型,详细介绍了它们的特征和适当的用例。酸优先确定数据完整性和一致性,适合财务和电子商务应用程序,而基础则侧重于可用性和

PHP安全文件上传:防止与文件相关的漏洞。PHP安全文件上传:防止与文件相关的漏洞。Mar 26, 2025 pm 04:18 PM

本文讨论了确保PHP文件上传的确保,以防止诸如代码注入之类的漏洞。它专注于文件类型验证,安全存储和错误处理以增强应用程序安全性。

PHP输入验证:最佳实践。PHP输入验证:最佳实践。Mar 26, 2025 pm 04:17 PM

文章讨论了PHP输入验证以增强安全性的最佳实践,重点是使用内置功能,白名单方法和服务器端验证等技术。

PHP API率限制:实施策略。PHP API率限制:实施策略。Mar 26, 2025 pm 04:16 PM

本文讨论了在PHP中实施API速率限制的策略,包括诸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之类的库。它还涵盖监视,动态调整速率限制和手

php密码哈希:password_hash和password_verify。php密码哈希:password_hash和password_verify。Mar 26, 2025 pm 04:15 PM

本文讨论了使用password_hash和pyspasswify在PHP中使用密码的好处。主要论点是,这些功能通过自动盐,强大的哈希算法和SECH来增强密码保护

OWASP前10 php:描述并减轻常见漏洞。OWASP前10 php:描述并减轻常见漏洞。Mar 26, 2025 pm 04:13 PM

本文讨论了OWASP在PHP和缓解策略中的十大漏洞。关键问题包括注射,验证损坏和XSS,并提供用于监视和保护PHP应用程序的推荐工具。

PHP XSS预防:如何预防XSS。PHP XSS预防:如何预防XSS。Mar 26, 2025 pm 04:12 PM

本文讨论了防止PHP中XSS攻击的策略,专注于输入消毒,输出编码以及使用安全增强的库和框架。

PHP接口与抽象类:何时使用。PHP接口与抽象类:何时使用。Mar 26, 2025 pm 04:11 PM

本文讨论了PHP中接口和抽象类的使用,重点是何时使用。界面定义了无实施的合同,适用于无关类和多重继承。摘要类提供常见功能

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。