随着互联网开源潮流的迅速发展,全球IT业正迎来一个新的发展格局成长期。对全球的开源体系——LAMP(Linux、Apache、MYSQL、PHP)而言,其所代表的开源软件及应用,以其开放性、低成本、安全性、适用性以及可靠性能,正对传统软件、硬件和系统集成商产生巨大的冲击,同时,也给创新型IT企业、程序开发者创造了前所未有的机遇。作为软件行业风尖浪口的Java,几多褒贬,几多称赞。Java有能力抵挡LAMP的进攻吗?或是LAMP、.Net与Java将三分天下乎?难道昔日“酷毙了”的Java已经成为过时<nobr>技术</nobr>了吗?
LAMP宣称,在Linux系统下开发软件不再需要层的概念了,Java不再是唯一的选择了。在本文中,笔者将对LAMP和Java这两种语言进行详细的比较。比较将涉及到这两种语言的起源、特点及各自的优劣势等方面的内容。希望通过这样的比较,让读者了解这两种语言各自的特点,以便于在自己的项目中,根据实际情况,尽快的看清软件语言的发展趋势。
一、引言
1998年,Michael Kunze为德国计算机杂志c't写了一篇关于Free 软件如何成为商业软件替代品的文章时,创建了LAMP这个名词,Linux <nobr>操作系统</nobr>、Apache网络<nobr>服务器</nobr>、MySQL<nobr>数据库</nobr>和PHP (Perl或Python)脚本语言组合而成的——LAMP (四种技术的开头字母组成),随之LAMP技术成为了自由软件业的一盏真正的明灯。
LAMP 在英语中是“灯”的意思,但是在 IT 行业当然不是那么简单的一个意思。这个术语在德国十分流行。代表了 Linux 平台上的 Apache 网站<nobr>服务</nobr>器; MySQL 数据库以及 Perl 、Python 或者 PHP 编程语言的结合。笔者相信,这个术语也会在我们中国的开放源代码界,乃至整个网络界开始流行,LAMP 不仅会成为企业上网,政府上网的“明灯”,也应该会在企业内部实施的 Intranet 大有作为。
LAMP开源软件——包括Linux 操作系统、Apache网络服务器、MySQL 数据库和PHP ——正在进军主流计算市场。
Java与。Net 工具一统商业软件开发领域已数年,但是具有易于开发、更新速度快、成本低的特点,LAMP被许多开发者视为“黄金组合”,在近几年中由LAMP集体开源厂家,或者确切的说LAMP开源自由社区吹响向主流计算市场发起进攻的号角。甚至在2005年的TechEd大会上,微软总裁鲍尔默以“微软有能力抵挡LAMP的进攻”的用词,将LAMP列为Windows 和它的。Net 开发软件的竞争者。IBM、Intel、HP、SUN等众多厂家提出开源贡献口号,收购开源公司;Intel、SAP投资PHP公司Zend科技;LAMP的开源和发展潜力可见风头正盛。
LAMP 所代表的不仅仅是开放源码,它更是开发和实施高性能 Web 应用的重要平台。如果说 Apache 能代表 LAMP 的占有率的话,那么,采用 LAMP 的站点几乎就已经是占据了主要的市场,看看 Netcraft 每月的调查就可以知道 Apache 的流行程度。国外的开放源码站点,例如 Apacheweek、MySQL.com、Perl.com 等自不必说,现在国内的很多站点也开始扑向 LAMP.
LAMP 无论是性能、质量,还是价格都应该是企业/政府部门上网所必须考虑的平台,LAMP 更应该是 IT 行业,特别是系统集成商所必须选择和比较的平台。
二、Java的反应
人生的经验告诉我们,任何一种处于支配地们的主流技术,只要它显露出一点点的进展缓慢时,就有可能出现一种新概念或是技术,来一个落井下石。笔者认为,Java经历了一场场的良性竞争,并取得了良好的效果。同时,在一些其它领域如高性能的计算机上,Java正在发挥它的优势,而在某些方面如J2ME,Java正在快速的发展。
Java具有良好的开源社区支持,是如此的灵活。看一看Sourceforge,就会明白,没有任何一种语言像Java一样,有如此多的开源组件与软件可以利用。那么Java没有LAMP所宣称的优势吗?我们可以一一分析一下。
L——Java可以更加优秀的运行在Linux系统上。A——Java社区的Tomcat是最优秀的<nobr>应用服务器</nobr>之一。M——Java有非常高效的MySQL驱动。P——Java支持许多脚本语言,并且正处于快速的发展之中。同时,Java紧密整合与支持LAMP的堆栈。
也许有很多Java的反对者声称,Java使用的容易性向来是Java普及的最大障碍。而Java的应变之道不是改变语言本身使它变简单,因为如果把它变简单了,它处理高阶事务的能力也就被削弱了。Java把重点放在工具的简单性上。如果用Java Studio Creator,就可以用拖放(drag and drop)来写成AJAX元件和资料库存取等内容,订制网页也相当快。这样做的好处是工具把复杂的东西都做掉了,开发人员把应用部署在一个具有错误转移(failover)、远端管理的集成系统上,然后就无需做一大堆事情,很多事都省掉。
有太多的人说,Java写某些东西很好,但Web开发方面就没那么好,反而是其它开发语言及框架则比较强。很多开发人员采用PHP 来制作网页。PHP这类语言是完全用在Web开发上,如果想产生一个网页,PHP真的很好用,它简直就是JSP (Java Serer Page)的双胞胎。
但是,开发人员不可能只有做网页而已。一旦开始做大量分析或与其它系统整合,需要涉及到底层的数据分析时,光用PHP之类的东西就很难了,则需要采用Java代码来完成。通常的情况并不是一种技术替代另外一种技术,而是一种技术补充另外一种技术,发挥相乘相加效果。最常看到的是在网页上用PHP,在后端资料分析上用的是Java.
Java正在失去发展动力吗?笔者绝对不能同意Java正在走下坡路的观点。Java到生命尽头了吗?不!Java的火爆才刚刚开始。在大型、复杂的企业级应用领域,Java仍是主流的开发工具,此外,Java在手机平台上越来越受到欢迎。据悉,目前全球有600多款手机运行Java虚拟机,全球10大手机游戏中有7款是采用Java开发。同时,Java已经成为多数科学研究和计算使用的首选语言。在大学中有越来越多的人在使用Java语言,越来越多的尖端学术研究完全使用Java语言;各个行业的公司都有很多的Java程序员在开发他们的项目。
三、Java不倒的原因
为什么说Java在LAMP、。NET及ROR的围攻下而能处于不败呢?笔者主认为主要有以下原因:
首先,其它的语言是特定领域的语言,尤其有些只是Web应
用。而Java的应用范围更加的宽广。可以开发桌面程序,手机游戏、DVD播放器及应用服务器等。Java与某些软件有着天然的内在联系,如Database,ERP等。
其次,Java有大量的开源社区支持,看看Apache的Portfolio或SourceForge就明白这一点。这是Java发展快速的主要原因之一。采用Java作为平台而开发的软件,稳定的运行在各种操作系统上,相对竞争对手其它语言,如C++或C语言,极大的提高了人们的生产力。
第三,Java开发平台的多样性。有多种JDK可以供选择,包括Sun、IBM、Bea及开源的JDK.同时,有大量的应用服务器可供选择,如开源阵营的JBoss应用服务器、Apache的Geronimo、Sun的Glassfish等等。除此之外,还有大量的<nobr>商业服务</nobr>器平台。
第四,和Java相比,PHP 和Python等脚本语言更容易学习,它们在开发人员当中相当的流行,尤其是那些网页开发者。很多人,包括一些前Java语言的拥护者都认为,脚本语言和所谓的LAMP开源部件正在蓬勃发展,而这种发展减弱了Java的影响。但是,有一点经常被人遗忘,那就是,Java是一种两种层面上的语言:它既是一种虚拟机,同时它也是一种ASCII 语言。很多人看不到Java作为虚拟机的神奇之处,因为非常多的脚本语言就是建立在这种虚拟机之上的。
最后,Java会是一种通用型语言及平台呢,还是专门发展在行动或服务器平台上的东西呢?这里就存在一些似非而是道理。一方面开发人员得要把东西整合在一起、让环境可以在很多地方使用力量才会大,对Java来说,这正是它最强的地方之一。另一方面是开发人员也想专注在某一领域上。但如果专注在开发人员的技术上,Java社群最厉害的地方是可以把它用在应用服务器、交易服务器、一种网络协议、手机应用程序以及工厂自动化的控制程序或是智能型手机上。最后开发人员学到的是可携式的技能,而不只是一项技术。如果同CIO、CTO谈时,就会知道这相当重要。
四、LAMP组合利弊谈
LAMP组合正在逐渐获得市场认可,但是它已经具有追上非开源竞争者的实力吗?生活中最好的东西真的是免费的吗?开源支持者们当然原意让我们相信这一点。多年以来,他们已经将不断改进的LAMP组合作为构建商业系统并使之运转的一条免费之路。
但是LAMP组合也有一些潜在的缺点。开源组合和私有软件的一个明显区别在于新特性。私有软件提供商的发展依赖于增长率,也就是说需要不断增加销售额。这就使得他们要不断开发新品。另一方面,开源开发没有这样的环境,就是说创新的步伐经常要慢许多。你很少看到走在前沿的创新是开源产品。例如,在微软在SQL Server中开发XML作为一个本地数据类型的时候,开源MySQL数据库才刚刚将存储程序作为一个新‘特性,这比它的竞争对手落后了好几代。
同时扩展可能是对LAMP用户的一个挑战。使用集群计算机或<nobr>刀片服务器</nobr>和诸如Red Hat Linux这样的企业级系统扩展到LAMP系统是可能的,但是这并不容易。
在许多公司,LAMP仍然没有得到正式认可。但是在开源开发模式中,人人都可以做出贡献,这将推动LAMP比Java或。Net 更快的前进。不过,LAMP也不可能把现有的Java和。Net两大阵营消灭,因为大的公司客户都不会只采用一套软件。
应用促进开源发展,理念走向务实应用。与欧美相比,国内的LAMP架构在企业关键应用中的应用还有待提高。目前我国LAMP应用存在的问题:国内开源数据库的应用已经开始起步了,但是开发还没有和开源技术挂钩。LAMP要发展,能否做出商业软件是关键。
LAMP的商业化过程存在严重的问题。例如,PHP的产品给人留下的似乎就是,技术很好,但是客户体验服务没跟上,包括安装提示,升级以及Bug反馈等等服务都很粗糙,客户宁愿去选中商业化更浓的Java 或。Net.
五、结论
毫无疑问的是,LAMP组合拥有其自身的价值,但是要小心地使用它。它是为新兴商业系统和概念业务系统的可行性寻找证据的优秀工具,但是它也需要适当的关心和关注以变得更加高效。
在企业级开发,Java毫无疑问是完全占据优势的。Dyanimics 和Groovy 是Java 可以较大提升的一个地方,这使得Java更加动态,更适应小型应用。而EJB这些,就更不用说了,LAMP和。Net,基本上是不适用了。PHP很受欢迎,只是证明了PHP在很多简单应用上,开发者上手比较快而已。最关键的是,PHP和JAVA也不是一个层面比较的东西,如果要比较,那么就是MODE-1的JSP和PHP比较。特别是O/R、 AOP、MVC、 Patterns、XML config files、Tag libraries 等,在PHP中要实现还是要很长一段时间。
套用一句俗话“只要努力,就会更好”。Java有潜力成为从PDA到服务器任何领域都非常成功的平台。Java可以继续在其占优势的<nobr>服务器端</nobr>发展下去。还可以通过优化客户端程序的发布及安装使Java在客户端开发方面一样获得成功。不管现在的情况如何,笔者相信Java有能力成为一个完美的平台。通过不断的完善,降低开发人员入门的难度,提供对所有的平台和操作系统的支持,以及提供对更多语言的支持,Java平台将可以适应任何层次任何领域的开发。通过对客户端平台的优化Java在PC和移动设备领域中也会获得巨大的成功。
相关推荐
LAMP环境搭建以及Java环境搭建 LAMP 环境搭建是指 Linux、Apache、MySQL 和 PHP 四个组件的组合,即 Linux 操作系统、Apache Web 服务器、MySQL 数据库管理系统和 PHP Web 编程语言。下面是 LAMP 环境搭建的详细...
lamp
LAMP架构论坛支持各种网页编程语言LAMP架构论坛支持各种网页编程语言
lamp环境搭建,lamp环境搭建,lamp环境搭建,lamp环境搭建
AndroidLame是围绕LAME MP3编码器(http://LAME.SooSoCurr.net)的Android / Java的包装库,它使用NDK和ANDORID Studio与实验级插件构建。
中文手册为Java开发者提供了详细的API文档和语言指南,有助于理解和应用这些新特性。 4. **JSP2**:JavaServer Pages 2.0是用于构建动态Web内容的Java技术。JSP2手册涵盖了JSP2的核心概念、指令、标签库和EL表达式...
和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。
LAMP 环境有很多优点,包括: * 开源免费:LAMP 环境中的所有组件都是开源免费的,不需要支付任何费用。 * 高度可定制:LAMP 环境中的每个组件都可以根据需要进行定制和修改。 * 高性能:LAMP 环境中的每个组件都...
**LAMP环境配置教程** LAMP环境是Linux、Apache、MySQL和PHP的组合,这是一个流行的开源Web开发平台,常用于创建动态网站和Web应用程序。在本文中,我们将深入探讨如何在Linux系统上(以CentOS 6.3为例)安装和配置...
此文档适用于lamp环境apache虚拟主机的搭建,使用lamp环境搭建虚拟主机的新手,可以参看此文档。
LAMP架构:协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境(Linux 系统 + Apache网站服务器+Mysql数据库服务器+ PHP(Perl、Python)网页编程语言 密码1234修改123
由于其高效的数据处理能力和稳定性,MySQL成为了LAMP架构中不可或缺的一部分。 **1.4 PHP(或Perl)脚本语言** PHP是一种用于Web开发的脚本语言,主要用于动态网页的创建。Perl虽然不如PHP流行,但在某些特定场景...
lamp-cloud微服务脚手架的前身是zuihou-admin-cloud,从3.0.0版本开始,改名为lamp-cloud,它是lamp项目的其中一员。 lamp-cloud微服务脚手架是一个基于SpringCloud(Hoxton.SR10) + SpringBoot(2.3.10.RELEASE)的...
**LAMP框架搭建详解** LAMP(Linux, Apache, MySQL, PHP)是一种常见的Web开发平台,广泛用于构建动态网站和应用程序。它集合了开源软件,为开发者提供了稳定、高效的环境。下面将详细介绍如何搭建LAMP环境。 ### ...
**LAMP集成安装工具详解** LAMP(Linux, Apache, MySQL, PHP)是Web开发领域一个常见的基础架构,用于在Linux系统上构建动态网站和应用。这个“lamp集成安装工具”正是为了简化这一过程,帮助用户快速在Linux环境中...
总的来说,LAMP架构提供了完整的Web开发解决方案,从基础的操作系统到动态内容的处理,再到数据的存储和管理,都有一系列成熟的技术支持。这个"Lamp安装包"就是为了让用户能够快速便捷地搭建这样的环境,以便进行...
lamp-cloud微服务快速开发平台设计源码:该项目基于SpringCloud和SpringBoot开发,包含737个文件,主要使用Java和Shell语言。lamp-cloud是一个微服务中后台快速开发平台,专注于多租户(SaaS架构)解决方案,也可...
**LAMP架构详解** LAMP(Linux、Apache、MySQL、PHP)是一种常见的开源Web开发平台,广泛用于构建动态网站和应用程序。这个“LAMP-C7.rar”压缩包中包含的资源,很可能是为了帮助你搭建和管理基于LAMP架构的博客...