PHP与Java哪个好?如何选择适合的Web开发语言?
PHP与Java作为两种截然不同的程序开发语言,无论是技术层面还是发展空间,亦或是市场份额占比,都有着不同的表现方式,理念上的不同导致了Java和PHP在Web应用开发上显示了不同的结果。若要一定追根到底,深究PHP与Java究竟哪个更好?
简而言之:PHP是一种解释执行的脚本语言,语法和C语言类似,易学易用,不懂电脑的非专业人员稍经学习也能使用PHP;而Java要先编译成Class文件,然后在Java虚拟机上执行,Java开发需要熟悉Java语法以及一些核心的架构,从而实现一种可复用的、跨平台的软件,Java比PHP要难学的多。
一、语言比较
PHP是解释执行的服务器脚本语言,首先php有简单容易上手的特点。语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发。而java需要先学好java的语法和熟悉一些核心的类库,懂得面向对象的程序设计方法。所以相对而言,php更好学一些。
Java首先要编译成字节码.class文件,然后在java虚拟机上解释执行。Java的Web开发首先容易想到的就是JSP(现在已经到JSP2.0),原来的java的Web开发都是用servlet来实现的,用servlet来开发需要程序员在java的源文件中嵌入大量的html代码。所以后来就出现了JSP,JSP可以方便的嵌入到html文件当中,其实jsp文件在服务器上执行的时候首先会被应用服务器转换成servlet,然后再编译执行。Jsp可以通过servlet和JavaBean的支持产生强大的功能。JavaBean是一种可复用的、跨平台的软件组件。使用javabean可以方便的实现java代码和html的分离,能够增强系统的功能和软件的复用性。
Java的Web开发属于SUN公司定义的J2EE其中的规范。而且在J2EE中包括了java的Web开发的所有方面,如:JSP、Servlet、JDBC、JNDI、JAVABEAN、EJB等等。J2EE就特别适合于做大型的企业级的应用。
二、技术架构
java是纯面向对象开发,功能强大,分支众多,没有java不能做的软件。C/S也好B/S也好。从功能上讲,没有语言可以和java相比。
PHP属于后起之秀,吸收了java和c以及perl等语言优点,专注互联网领域。WEB领域PHP拥有得天独厚的优势,WEB领域没有语言可以和他比。
Java语言相比PHP有明显的优势,Java使用的是面向对象的系统设计方法,而PHP还是采用面向过程的开发方法。PHP只能实现简单的分布式两层或三层的架构,而JAVA可以实现多层架构。数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的开发框架的支持。例如Struts就是利用Java的web开发技术实现了MVC的设计模式,而在业务逻辑层也有Spring框架,数据库持久化层有Hibernate等框架。这些框架可以方便开发者高效、合理、科学得架构多层的商业应用。
三、数据库访问速度比较
Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库。访问数据库的接口比较统一。
PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强。例如:用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改,而PHP则需要做大量的修改工作。
从数学运算和数据库访问速度来讲,Java的性能也优于PHP。实际上,对于跨平台的大型的企业应用系统来讲,Java几乎已经成为唯一的选择(微软.NET不支持跨平台),但是在于Web网站应用开发来讲,Java却面临着被PHP边缘化的危险,几乎所有的虚拟主机都支持PHP+MySQL,而支持Java的却少之又少,在资源上,网上有不计其数的PHP资源,很多著名的大型网站(例如Facebook、Mediawiki等)都是基于PHP的,而成功的Java网站却寥寥无几。
尽管Java的数学计算和数据库访问都有优势,架构也相当完美,但是PHP却可以简单轻松地支持高强度Web访问,能够快速开发应用,支持PHP的虚拟主机多如牛毛,使得用PHP开发一个网站比用Java开发一个网站要快得多,容易的多。Java所拥有的优点只适合传统的以软件项目为核心的开发模式,而PHP更适合于以客户为核心的SaaS的开发模式,因此,PHP目前在Web网站开发的优势完全是因为Web网站开发的特殊性而导致的,并非编程语言特性所决定。
四、开发成本比较
PHP经典的组合就是:PHP+MySQL+Apache。非常适合开发中小型的Web应用,开发的速度比较快。而且所有的软件都是开源免费的,可以减少投入。
Java的Web应用服务器有免费Tomcat、JBoss等,如果需要更好的商业化的服务有:WebSphere和Weblogic。
五、源代码安全
PHP开发的程序的源代码都是公开的,他人拿到php开发的程序后都可以进行修改。
Java开发的程序,用户拿到的是只是一些编译好的class类,无法看到完整的源代码,安全性高。
六、发展空间对比
安卓势头很猛,但手机安装app数量有限,推广难,也是app面临的大挑战,好在安卓只有JAVA可以做,除此之外就是HTML5了。
中国人口占全球人口19.7%,中国网民占全球网民22.4%,中国网站数量占全球网站数量的0.5%,网站的可发展空间可谓巨大;发达国家互联网对GDP的贡献可达20%,中国互联网对GDP的影响仅为3%。可谓互联网的发展空间巨大,而互联网离不开WEB,WEB离不开PHP。
两者相比,个人觉得PHP的优势更加明显。
综上所述,我个人认为,PHP适合于快速开发,中小型应用系统,开发成本低、易学,能够对变动的需求作出快速的反应,在调试、发布上,PHP也较Java简单。
而Java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护、可复用性较好。Java的理念是“一次编写,到处运行”,Java在应用框架底下的架构是无与伦比的,远胜过其他任何语言,Java的框架利于大型的协同编程开发,系统易维护、可复用性较好。还有,同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高。