`
yipsilon
  • 浏览: 244732 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

PHP会倒掉吗?

php 
阅读更多

最近有不少文章讨论PHP如何如何不好,如何如何不适应企业应用,如何如何会倒掉的问题。我也发表一下我的看法。

 

我认为PHP的最成功之处在于以下几点:

 

1. 相对简单的语:PHP的语法构成囊括了C、JAVA、PERL等,这使得熟悉这些语法的人可以很轻易地入门PHP语言,而其他语言则不同,除非用户在一门语言中有了一定的经验,再去学另一门语言能稍微轻松些,但是对于毫无经验的初学者,那是一个痛苦的过程。

 

2. 丰富的类库支持:PHP内置了非常多的函数,而且都使用统一的命名环境,这样PHP开发人员只需要打开PHP参考文档就可以查询到,不必像其他语言那样(如Java),不断地加入第三方类库及学习其使用方法。

 

3. 低廉的部署成本:因为PHP本身就是开源的,因此它使用的环境大多是开源或免费的,况且市面上集成产品很多,如XAMPP,一解压运行个自动安装程序,就可以使用了。再看其他的语言,Java产品中免费的有tomcat,它还是需要进行一些手工配置,且性能非常一般;而ASP.NET的它本身就是收费的,这里就不说了。

 

再者就是,PHP是专门针对网站的,这使得它把全部精力投入到如何优化网站上面,不管是语法结构还是解释引擎。而其他语言如Java或.net,他们是一套通用的语言,网站应用只是其一部分,网站快速开发和应用能力确实没有PHP强。

 

上面几点总结出一句话就是:不用高价的开发人员,不用配置很高的硬件服务器,就可以非常快速地构建网站应用。而这个速度,是其他语言所不能匹敌的。最简单的测试不过是拿一个同样功能的网站,让一帮初级程序员分别用PHP、JAVA、ASP.NET进行开发,看看开发和部署速度的差距就知道了。

 

你会发现,这应该就是PHP的魅力所在。

 

至于OOP,我觉得对于网站的应用来说,只要能以最快的速度满足客户要求就行了,任何产品如果无法满足客户的需求,那使用再好的技术也是扯淡,更何况如果不是大中型项目,OOP是会拖累开发进度的,而目前大部分网站应用来说,基本都是小型项目。

 

而企业应用,我觉得PHP完全可以胜任,因为PHP它内置了支持调用Java和.NET组件,如果自身不行,那就用别人的嘛,只要快速开发的本质不变就行。

 

至少,从我接触PHP的这段时间来看,个人认为它不会垮掉,因为网站应用还没有能像它一样简洁快速的语言出现。(不要说ruby了,它的学习门槛不低啊,而且运行环境配置起来也比较复杂,大部分常用类库也都是外置的)

分享到:
评论
197 楼 yipsilon 2009-12-09  
最近事儿多,没怎么来,也不辩论啦,因为目的已经达到了。大家继续讨论哈。

murainwood 写道
看完了,发现yipsilon对Java技术基本上不怎了解,很多的理解就是错误的。


都有哪些理解错误的问题呢?我向来做事都是有理有据有引用有数据,请赐教,如果我所说的话真有问题,肯定会改正滴。但老兄这么笼统地说有问题而不举证,偶实在是不知如何是好呀。
196 楼 smiletuna 2009-12-08  
scala 的 functional paradigm确实很吸引人。而且运行在jvm上。这点比较有优势。

java语言本身虽然不咋样。jvm的实现还是很好的。

以前有些复杂的几何运算原来还想用c++做,现在发现没这个必要。
195 楼 icewubin 2009-12-07  
smiletuna 写道
twitter现在 的 message server 用scala.. 应该说

恩 scala不错...

哇,这样的话就多了去了,大网站只要内部使用某个技术,都能说,XXX语言不错。。。
194 楼 smiletuna 2009-12-07  
twitter现在 的 message server 用scala.. 应该说

恩 scala不错...
193 楼 icewubin 2009-12-06  
xxxu 写道

http://www.dbanotes.net/arch/facebook_php.html

可笑还在讨论使用哪种语言。

把twitter搬出来:恩,ruby不错。
把live搬出来:恩,.net不错。
把豆瓣搬出来:恩,python不错。
把google搬出来:恩,java不错。
贴一个链接就有意义了么?
如果要说架构重要,那是有意义的。
192 楼 xxxu 2009-12-06  

http://www.dbanotes.net/arch/facebook_php.html

可笑还在讨论使用哪种语言。
191 楼 murainwood 2009-12-06  
mathgl 写道
icewubin 写道
hittyo 写道
icewubin 写道


有人说erlang并发能力更强,不过没亲眼见过真实案例,总觉得虽然erlang理论并发能力强,但是实际运行会有其他瓶颈,而且erlang的虚拟机能否充分利用多核,也是个问题。



发现你很欠抽,erlang在生产环境的应用历史远长于java、php

是啊,最终被爱立信给抛弃了(如果不被抛弃,还不能对外公布资料),然后某些程序员不死心,才又拿出来。

我倒想问了,为什么erlang会被爱立信抛弃?既然这门语言so strong。



说说看这个 被抛弃是怎么回事? 我才第一次听说。。有没有link?

Erlang嘛,爱立信确实不怎么理了。上次同学聚会,碰到爱立信里面的,还专门问了一下...
190 楼 murainwood 2009-12-06  
看完了,发现yipsilon对Java技术基本上不怎了解,很多的理解就是错误的。
189 楼 icewubin 2009-12-06  
mathgl 写道
说说看这个 被抛弃是怎么回事? 我才第一次听说。。有没有link?

http://erlang-china.org/misc/simplified_erlang.html

引用
虽有 AXD301 项目的大获成功,但 Erlang 仍被 Ericsson 禁止在新的项目中使用。


引用
而另一方面,此次事件也大大打击了 Erlang 团队的士气,使得 Erlang 的发展一度停滞,直到今天,事件的一些影响仍在持续(比如,在此之后发展出来的一些库和工具仍然散落在历史的秘辛之中,不为人知)。


我是这么认为的,目前的erlang的运作并不是太理想,很担心最终的结局仍然会和当年在爱立信中的结局类似,历史上不少优秀语言都是这么消亡的。

一个语言要获得成功,不能仅仅是自己本身优秀,相关很多配套的都必须要跟上的。

例如虚拟机的稳定性是要在大量各种不同硬件平台上,不断的在生产环境中使用、用户反馈bug、虚拟机改进、优化的基础上逐步成熟、稳定的。
188 楼 icewubin 2009-12-06  
mathgl 写道

在ubuntu 64 bit下 也fork过 2000+ php interpreter process..还正常了。

windows下甚少用php

fork在windows下不能用的。

而且你这个是2000个进程,和2000个线程的开销、效率是不一样的。
187 楼 mathgl 2009-12-06  
icewubin 写道
smiletuna 写道
icewubin 写道
突然想八卦一下,看看即可。

黑莓的OS和GPhone的Android都是Linux+Java的,尤其是Android,虽然JVM是定制的,但是基本和J2SE一致。

我突然很八卦的想,在ARM这么“弱”的CPU上跑应用,不知道跑PHP会怎么样(牛头不对马嘴啊)。


php的解释器 占资源很小。能移植就问题不大。

以前我常用 php写脚本 做爬虫。最近才改用python...

如果我写爬虫,往往会搞个10-2000个网络并发线程不等(当然前提跑爬虫的服务器网络带宽足够),PHP如何写?



在ubuntu 64 bit下 也fork过 2000+ php interpreter process..还正常了。

windows下甚少用php
186 楼 mathgl 2009-12-06  
icewubin 写道
hittyo 写道
icewubin 写道


有人说erlang并发能力更强,不过没亲眼见过真实案例,总觉得虽然erlang理论并发能力强,但是实际运行会有其他瓶颈,而且erlang的虚拟机能否充分利用多核,也是个问题。



发现你很欠抽,erlang在生产环境的应用历史远长于java、php

是啊,最终被爱立信给抛弃了(如果不被抛弃,还不能对外公布资料),然后某些程序员不死心,才又拿出来。

我倒想问了,为什么erlang会被爱立信抛弃?既然这门语言so strong。



说说看这个 被抛弃是怎么回事? 我才第一次听说。。有没有link?
185 楼 xieye 2009-12-05  
坚决支持ice!我怎么招人都招不到,招程序员难,招php程序员更难,招有名的php程序员难上加难。。
184 楼 icewubin 2009-12-05  
syre 写道
其实php程序员比java程序员便宜这件事本身也挺不符合市场经济的。完成同样的东西,花的时间少才是php这类语言更大的优势。php社区和java社区的差别也在于此。php社区更多的是关心怎么多快好省地快速完成需求,以及解决大流量网站的问题,java社区更多的是关心软件工程,怎么解决复杂的业务逻辑以及研究各种框架。

照你的逻辑,ruby应该最贵了。

不过我还是想说,中高端的人才绝对是PHP的贵,只不过中高端人才java的比较好找,PHP有钱都有可能招不到。

然后还是那句话,即使是社区,也不要和java的比,java的社区本来就是相当一部分针对的应用场景不一样。请和ruby、python的社区比。
183 楼 icewubin 2009-12-05  
axgle 写道
icewubin 写道

php每次请求全部加载相关的资源,请求结束然后全部释放

php的这个特征挺好的,不用重启服务器。把php文件,放上去就OK了,不用担心用户那边抱怨,怎么访问不了了?我的数据怎么丢失了之类的问题。

PHP的双刃剑啊,既是PHP的优点,又是缺点(缺点其实是PHP实现热部署的方式不能自定义,不能有其它方式)。

热部署的特性很多语言都有,JSP运行环境也有,java自定义classloader,OSGI,SCA都能实现热部署。

但是在集群(负载均衡)的情况下,热部署相对的来说没有太大的价值,本来都是SNA的架构,升级的时候也都是脚本全自动,一台一台的升级的,对于单台有没有热部署的特性没有太大的区别。
182 楼 icewubin 2009-12-05  
hittyo 写道
icewubin 写道


有人说erlang并发能力更强,不过没亲眼见过真实案例,总觉得虽然erlang理论并发能力强,但是实际运行会有其他瓶颈,而且erlang的虚拟机能否充分利用多核,也是个问题。



发现你很欠抽,erlang在生产环境的应用历史远长于java、php

是啊,最终被爱立信给抛弃了(如果不被抛弃,还不能对外公布资料),然后某些程序员不死心,才又拿出来。

我倒想问了,为什么erlang会被爱立信抛弃?既然这门语言so strong。
181 楼 hittyo 2009-12-05  
icewubin 写道


有人说erlang并发能力更强,不过没亲眼见过真实案例,总觉得虽然erlang理论并发能力强,但是实际运行会有其他瓶颈,而且erlang的虚拟机能否充分利用多核,也是个问题。



发现你很欠抽,erlang在生产环境的应用历史远长于java、php
180 楼 axgle 2009-12-04  
icewubin 写道

php每次请求全部加载相关的资源,请求结束然后全部释放

php的这个特征挺好的,不用重启服务器。把php文件,放上去就OK了,不用担心用户那边抱怨,怎么访问不了了?我的数据怎么丢失了之类的问题。
179 楼 axgle 2009-12-04  
syre 写道
其实php程序员比java程序员便宜这件事本身也挺不符合市场经济的。完成同样的东西,花的时间少才是php这类语言更大的优势。php社区和java社区的差别也在于此。php社区更多的是关心怎么多快好省地快速完成需求,以及解决大流量网站的问题,java社区更多的是关心软件工程,怎么解决复杂的业务逻辑以及研究各种框架。

是的。
//php5.3
echo "一眨眼的功夫就完成了!";
goto 陪老婆;
陪老婆:
豁然开朗=看电影("蜗居","2012");
echo 豁然开朗;//买什么房子嘛,迟早是要塌的~~ 
178 楼 axgle 2009-12-04  
icewubin 写道

有人说erlang并发能力更强,不过没亲眼见过真实案例,总觉得虽然erlang理论并发能力强,但是实际运行会有其他瓶颈,而且erlang的虚拟机能否充分利用多核,也是个问题。

觉得golang怎么样?

相关推荐

    秒盾代码 PHP5秒盾代码_5秒安全检查源码.zip

    隔一二天不能访问,网站的排名收录会掉的很厉害而且影响以后 正因为这样,出现了很多网络黑客专门以攻击他人网站谋生 今天就给大家分享一个能有效防止一下小 CC. 用过百度云加速服务的网站都知道,在第一次打开后...

    开源php搜索引擎-蜘蛛程序

    4. **索引建立**:将提取的关键词和对应的URL存储到MySQL数据库中,形成倒排索引,便于快速查找。 5. **查询处理**:当用户输入搜索词时,搜索引擎会根据这些词在索引中的位置返回相关网页。 在实际应用中,为了...

    php-poo:练习一些遵循SOLID原则PHP POO

    7. **SOLID原则的实际应用**:项目中可能会有各种示例,如使用接口来实现开闭原则,通过策略模式应用SRP,利用抽象类或接口实现LSP,以及如何在设计中避免违反ISP和DIP。 8. **面向对象设计模式**:SOLID原则通常与...

    php之75道经典逻辑思考题

    3. 将5升水壶中的水倒掉,然后将6升水壶中剩下的1升水倒入5升水壶中; 4. 再次将6升水壶装满水; 5. 用6升水壶中的水继续向5升水壶中倒水,直至5升水壶满,此时6升水壶中会剩下恰好3升水。 通过这种方式,我们可以...

    PHP读取文件内容后清空文件示例代码

    如果文件不存在,`fopen`会返回false。 接着,为了保证文件内容读取和清空操作的原子性,我们需要对文件加锁。在PHP中,可以使用`flock`函数来加锁,该函数同样需要文件句柄作为参数,并指明要加的锁类型。在示例...

    php 猴子摘桃的算法

    问题描述了一只猴子在连续十天内吃桃子的过程,每天吃掉剩下桃子的一半再加一个,到第十天时仅剩一个桃子。我们需要通过编程计算出猴子最初摘了多少个桃子。 解决这个问题的思路是从第十天开始往回推算,每次根据...

    Sphider-plus 2.2

    同时,它可能会过滤掉广告、重复内容和非正文部分。 4. **关键词提取与索引**:Sphider-plus 会分析网页内容,识别关键词,并建立倒排索引,这是一种快速查找文档中包含特定词的高效方法。索引过程可能包括词干提取...

    ecshop中如何添加限时抢购功能可以看到一个倒计时

    要实现ecshop中的限时抢购功能并展示倒计时,我们需要对ecshop系统的模板、后台管理文件以及数据库进行一些修改和添加相应的代码,以实现抢购倒计时的效果。以下是详细的实现步骤: 1. 修改商品详情模板文件,以便...

    代码解耦之道_黄朝晖_PHPCON2019.pdf

    里氏替换原则(Liskov Substitution Principle):子类型必须能够替换掉它们的父类型。 5. 开闭原则(Open/Closed Principle):软件实体应当对扩展开放,对修改关闭。 6. 最少知识原则(Least Knowledge ...

    grub4dos-V0.4.6a-2017-02-04更新

    --timeout=[x]=[y]=[color] 倒计时位置、颜色。单位:列,行,24位色彩。 2015-05-14(yaya) 改进 NTFS 文件系统: 对于驻留属性文件(小文件),可以写,也可用 blocklist 显示信息。 对于非驻留属性列表,...

    TU-training

    【标题】"TU-training" 指的可能是一个关于软件开发的培训项目,重点是讲解SOLID原则和Test-Driven ...通过参与这个项目,学员不仅会学习到理论知识,还能获得实际操作的经验,从而提高其作为专业PHP开发者的技能。

    JavaScript应用177例

    5.3.htm 倒计时效果 5.4.htm 模拟时钟 5.5.htm 显示农历日期 5.6.htm 温度计样式时钟 5.7.htm 位置固定的时钟 第6章(\cha06) 6.1.htm HTML事件绑定 6.2....

    就要来娱乐论坛动网7.1 SP1 1114修改版

    我不想就这么放弃掉了,不然心血白白浪费,发布完了,过几天就改PHP了,这个可以算是终结版吧,但如果大家有问题,只要我能帮忙的我一定尽力,希望大家能支持!管理员帐号:ID: admin PASSWORD:admin888音乐后台帐号...

    23种 设计模式---面向对象的基本原则

    3. 里氏替换原则(Liskov Substitution Principle, LSP):子类型必须能够替换掉它们的基类型。这保证了继承不会破坏原有的程序行为。 4. 接口隔离原则(Interface Segregation Principle, ISP):不应该强迫客户端...

    gdkp

    在GDKP中,团队成员通过击杀游戏内的高级首领获得金币,这些金币随后被用于竞拍首领掉落的稀有物品。这种方式旨在优化团队资源分配,提高玩家参与度和游戏体验。 在HTML方面,虽然GDKP本身与HTML(超文本标记语言)...

    Excel百宝箱8.0

    【禁止重复值】:可以指定某列不允许重复,指定后该列输入重复值时会自动提示 【标示重复值】:将重复出现的数据用不同颜色分别标示出来,不同重复值用不同颜色 【删除空白单元格所在行】:输入1则删除空白行(整行...

Global site tag (gtag.js) - Google Analytics