贴子已被锁定
随着互联网开源潮流的迅速发展,全球IT业正迎来一个新的发展格局成长期。对全球的开源体系——LAMP(Linux、Apache、MYSQL、PHP)而言,其所代表的开源软件及应用,以其开放性、低成本、安全性、适用性以及可靠性能,正对传统软件、硬件和系统集成商产生巨大的冲击,同时,也给创新型IT企业、程序开发者创造了前所未有的机遇。作为软件行业风尖浪口的Java,几多褒贬,几多称赞。Java有能力抵挡LAMP的进攻吗?或是LAMP、。Net与Java将三分天下乎?难道昔日“酷毙了”的Java已经成为过时技术了吗? LAMP宣称,在Linux系统下开发软件不再需要层的概念了,Java不再是唯一的选择了。在本文中,笔者将对LAMP和Java这两种语言进行详细的比较。比较将涉及到这两种语言的起源、特点及各自的优劣势等方面的内容。希望通过这样的比较,让读者了解这两种语言各自的特点,以便于在自己的项目中,根据实际情况,尽快的看清软件语言的发展趋势。
一、引言
1998年,Michael Kunze为德国计算机杂志c't写了一篇关于Free 软件如何成为商业软件替代品的文章时,创建了LAMP这个名词,Linux 操作系统、Apache网络服务器、MySQL数据库和PHP (Perl或Python)脚本语言组合而成的——LAMP (四种技术的开头字母组成),随之LAMP技术成为了自由软件业的一盏真正的明灯。
LAMP 在英语中是“灯”的意思,但是在 IT 行业当然不是那么简单的一个意思。这个术语在德国十分流行。代表了 Linux 平台上的 Apache 网站服务器; 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,就会明祝挥腥魏我恢钟镅韵馢ava一样,有如此多的开源组件与软件可以利用。那么Java没有LAMP所宣称的优势吗?我们可以一一分析一下。
L——Java可以更加优秀的运行在Linux系统上。A——Java社区的Tomcat是最优秀的应用服务器之一。M——Java有非常高效的MySQL驱动。P——Java支持许多脚本语言,并且正处于快速的发展之中。同时,Java紧密整合与支持LAMP的堆栈。
也许有很多Java的反对者声称,Java使用的容易性向来是Java普及的最大障碍。而Java的应变之道不是改变语言本身使它变简单,因为如果把它变简单了,它处理高阶事务的能力也就被削弱了。Java把重点放在工具的简单性上。如果用Java Studio Creator,就可以用拖放(drag and drop)来写成AJAX元件和资料库存取等内容,订制网页也相当快。这样做的好处是工具把复杂的东西都做掉了,开发人员把应用部署在一个具有错误转移(failover)、远端管理的集成系统上,然后就无需做一大堆事情,很多事都省掉。