热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php:web编程界的巨无霸目标直指java.net等大腕

草根出身的php语言挑战的对象是java、.Net这样的大腕。Zeev这位30岁的以色列小伙子看起来一点也不像有权势的人物,可是他共同创始的PHP语言,却成为网络时代异军突起的一个传奇。最新的消息是,Sun公司已决定把免费公开Java源代码提上日程,而微软的脚本语言asp.net也只得一直实行免费赠送。这个小个子PHP及其同伙linux、Apach
草根出身的php语言挑战的对象是java、.Net这样的大腕。

Zeev这位30岁的以色列小伙子看起来一点也不像有权势的人物,可是他共同创始的PHP语言,却成为网络时代异军突起的一个传奇。最新的消息是,Sun公司已决定把免费公开Java源代码提上日程,而微软的脚本语言asp.net也只得一直实行免费赠送。这个小个子PHP及其同伙linux、Apache、MySQL掀起的开放源代码浪潮影响了整个Web世界,给程序编写及发布方式带来了革命性的变化。重要的是,PHP两不耽误,一边保持着开源的真谛,另一边则取得了商业上的成功。

就在最近,PHP商业化公司Zend又 获得了2000万美元的投资,投资人包括Intel Capital和SAP Ventures。IBM也将与Zend合作,把PHP引入到IBM的中级服务器平台,以支持访问DB2数据库,这笔交易价值数百万美元。而Zend的下 一步很有可能是进行首次公开募股(ipO)。

在今天,全球已有2000万个网站使用PHP,包括最流行的雅虎、Google、百度、YouTube、Digg,也包括像汉莎航空电子订票系 统、德意志银行的网上银行、华尔街在线的金融信息发布系统,甚至军队系统这类五花八门和苛刻的环境。PHP究竟是怎样炼成的?  

源于草根

作为目前全球最流行的网站应用软件编 程语言,PHP的成长历程和Linux有异曲同工之妙。1994年,它由Rasmus Lerdorf最早创建,Lerdorf只是想记录自己的在线简历,后来许多人都向他要程序的拷贝。1995年6月,Lerdorf在加入了一些介绍文档 之后,在Usenet新闻组发布出去,这就成了最早的PHP 1.0。

这期间,两位大学生Zeev Suraski和Andi Gutmans需要能做一个基于Web的软件项目,需要能很好地支持Linux,但当时的ASP并不完善,jsp又比较复杂,所以就选择了PHP。其后他们在工作中发现PHP还有些不足,便自愿加入PHP语言开发工作组,并重新编写了底层的解析引擎。1998年6月,有着历史意义的PHP 3.0发布,用户数开始飞涨。1999年,他们两人又创建了Zend公司,开发了Zend Engine,大大提高了PHP的性能。

雅虎是PHP语言最早的使用者之一,随着雅虎的兴起,大量的站点开始学习雅虎背后的语言—PHP。此时,软件开始从传统模式向基于Web模式转变,几大势力一一长成:Linux操作系统、Apache网络服务器、MySQL服务器,以及以PHP语言为代表的“P”族语言(PHP、Perl、Python),一本德国计算机杂志把它们共同称为LAMP(明 灯),也由此与J2EE架构(以Java为编程语言,Sun公司主导)、.Net架构(微软公司主导)形成了三足鼎立之势。在Evans Data公司的一份统计资料中,PHP使用者比Java及.Net的使用者稍有差距,但预计2007年的增长率将达37%,超过Java的16%和. Net的27%,这场草原上燃烧的星火正越来越旺。  

从革命者到务实者

PHP成功的两大秘诀,第一条就是简单。PHP简单到让喜欢卖弄技巧的程序员感到羞愧,但让那些渴望进入Web开发领域的初学者欣喜若狂。PHP像是一条鲶鱼,与xml、Web Services融合无间。即使历次的版本升级,也无需担心PHP会丧失这种简单的特性。无疑,这个特点给需要快速开发、交互应用的Web2.0潮流极大的带来了方便,有超过半数的Ajax-enabled和Web2.0站点都选择了PHP。

PHP的第二个秘诀,就是“Community(强大的社区)”。Discuz!软件的开发者,25岁的康盛创想公司CEO戴志康就是这个特性 的受益者。他说,不像其他的开发者需要从零开始,大量的PHP程序都有开放源代码可供学习,后人站在前人的肩膀上加以改进,又将这种知识积累的结果回馈给 社区。这曾被比喻为“大教堂和集市”,在集市中,知识得到了最大化的利用,效率提高、错误减少、成本降低。而大教堂只能越垒越高,不断延迟发布时间。

现在,全球已有450万名PHP开发工程师,被称为“PHPer”,他们成为了软件世界中最有影响力的社区之一。有趣的是,开源的浪潮经过数年的发展,早已经走向庙堂,无论是Intel、IBM、Oracle,甚至是微软,都成为鼓吹甚至主导开源的力量。11月初,微软与Zend公司达成了一项长期合作的伙伴关系,共同推动PHP语言的发展。

与其说开源运动是个颠覆者,不如说更像是粘合剂。中国开源软件推进联盟主席陆首群说,LAMP也可以派生出WAMP(W代表Windows)。 事实上,PHP与.Net是并存的,PHP也可以和Windows捆绑在一起,两者并没有冲突,可以因地致宜地使用开源与闭源混合架构(Mix)。

目前PHP社群和Zend公司的目标,是将PHP推广到企业级应用。在这一点上,欧洲和北美远远领先于中国。Zend(中国)技术支持中心总监耿志军说,PHP已经在金融、政府、交通、电信、媒介、娱乐等各大行业被广泛使用,完全脱离了一个简单网络语言开发工具的境界。而在中国, PHP只应用于门户网站和部分的专业网站,严谨的政府和金融网站难以看到它的身影。

即便如此,PHP正在崛起,这一点毫无疑问。正如Red Hat推动了Linux的发展,Zend也正努力将PHP带入黄金时代。Zend于2005年在慕尼黑新开设了一家子公司;今年在法国也将设立一个子公 司;在中国,Zend公司与康盛创想公司建立了合作关系,并成立了Zend(中国)技术支持中心。有很多像耿志军这样的年轻人正加入到这个队伍中,这些围 绕着PHP的力量和这个语言本身一样充满了朝气。   

PHP是一个简单而有生命力的语言

—专访PHP语言创始人之一Zeev Suraski

2006年10月23日,作为PHP语言核心缔造者之一的Zeev首次来到中国,本刊记者对他进行了独家专访。

《互联网周刊》:随着PHP版本的升级,软件包会不会越来越复杂,以致偏离它的原始设计目标?

Zeev(Zend公司创始人、CTO、PHP的创始人之一):这个问题确实有可能存在,但我们一直在尽量避免。十年前,当我和Andi Gutmans进行PHP开发时,就已经非常注意保持简洁这个核心要素。比如说,PHP 5就比PHP 4更为简化。当然我们会支持一些新的技术,但简单是我们最根本的一个特点。

《互联网周刊》:我们知道商业公司的决策人会是董事会或CEO,但在像PHP这样的开源社区里,重大决策是如何形成的?

Zeev:做决策时我们有一个社区的基础,并不是由1个人拍板就能决定的。有一个大概20人的团队,都可以对决策过程施加影响,包括我,包括 Andi Gutmans,还有一些研发人员。通常我们会对讨论的问题有一个共识,在此基础上再进行决策。但如果没有共识,就会有一些麻烦了,讨论的时间也会比较 长。经过10年的发展,我们基本形成了一套机制。不过在决策方面,我们的确会比一般的商业公司占用的时间要长一些。

《互联网周刊》:这样会不会出现一个问题,PHP会不停的有补丁释出,导致软件的发布时间被拖长,比如从PHP 5到PHP 6。

Zeev:你说的这种情况有时的确会发生。但是我们有一个底线,就是尽早确定一些最主要的特征。比如PHP 6中的Unicode特性。我们会定义一个目标,就是这个产品本身必须是高质量的,即使发布拖的时间比较长,但总体能保证它是一个好产品。

《互联网周刊》:许多公司因为PHP的使用而受益并且发了大财,但语言和体系的创始人却往往不是最富有的,比如Java的创始人、Linux的创始人。你对金钱怎么看待?

Zeev:未来总是不可预测的。目前虽然我不是百万富翁或亿万富翁,但是我对生活非常满意,而且非常喜欢。

我首先是为Zend公司工作。Zend已经价值数亿美元,但我们的主要目标还是推进PHP语言的发展。当然我们仍是一个公司,而不是一个非盈利 性的组织,但我们的关注点并不只是赚钱。如果有一个公司对我们说,我们想收购你或想和你合作,我们不会立刻就说同意。因为我们看重的不光是钱,关键是要看 我们是不是有共同的目标,能够推进PHP语言的发展。


推荐阅读
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 本文介绍了iOS开发中检测和解决内存泄漏的方法,包括静态分析、使用instruments检查内存泄漏以及代码测试等。同时还介绍了最能挣钱的行业,包括互联网行业、娱乐行业、教育行业、智能行业和老年服务行业,并提供了选行业的技巧。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • .htaccess文件 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
author-avatar
嘟嘟酱
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有