`
yipsilon
  • 浏览: 244767 次
  • 性别: 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了,它的学习门槛不低啊,而且运行环境配置起来也比较复杂,大部分常用类库也都是外置的)

分享到:
评论
157 楼 yipsilon 2009-11-30  
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">
<p>1. 恩?上百兆?举个例子先?我刚才随便找了个典型应用,看了下类库lib目录下总共才35MB,而且有不少是开发辅助、或者是编译优化、或者是JUnit相关,发布出来的war只有12MB都不到。</p>
<p>几百兆?你是从哪里看来的?举个例子先?</p>
<p> </p>
<p>2. 这是一方面,另一方面,java类库加载的时候,只会加载用到的class和其相关的class,是按需加载的,不是你认为的一个类库直接加载到内存(执行环境),这方面你应该多了解一下java的ClassLoader机制。</p>
<p> </p>
<p> </p>
</div>
<p>1. 我说的是J2EE容器,比如像最流行的JBoss,4.2版就有147M,商业版的那几个就更不用提了。你说的GlassFish社区版还好些,不过企业版也超百了。打开每个项目页里的下载栏目就可以看到。</p>
<p> </p>
<p>2. 类加载这块儿貌似在官方网站上看的吧,说Hotspot Server是会把所有可需要用到的类加载到内存中,然后进行优化的。至于ClassLoader,我觉得自己还算熟悉吧,因为公司兼容OSGi R4.2规范的OSGi运行环境是我主持开发的,blog里提到过。</p>
156 楼 icewubin 2009-11-30  
<div class="quote_title">yipsilon 写道</div>
<div class="quote_div">
<p> </p>
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">我之前那家公司也算是IBM合作单位,公司的CEO和CTO以前也是IBM的资深员工(什么级别忘了),合作的好几个项目,采购的都不是IBM的硬件,当时我了解的主要的客户是上海证券交易所下属的信息公司,基本都是HP的硬件。<br><br>后来又问过我在IBM的同学,得知了IBM内部的怪现象,所以才这么说的。<br><br>题外话,SB的政府部门也不是没有,例如当时给北京财政部做预算,列的巨贵的IBM服务器,北京财政部那个SB说:“硬件预算要和软件预算1:1”,然后我们就只能照做了。<br><br>相比之下,上证所的信息公司、北京证监会还是相对比较务实的。</div>
<p> 是IBM拿活儿给你们公司做还是你们公司拿活儿给IBM做?一个是客户角色,一个是附属角色,这待遇可不一样啊。</p>
<p> </p>
<p>不过如果你公司做的都是政府或相关企业的项目,那只能说你的环境是我说的那一小部分条件,因为在中国没人敢得罪政府吧,当然是他们想做什么就做什么了。</p>
</div>
<p><br>当时是是IBM拿活儿,给我们做。我们公司这个例子确实是和政府有关,但是我们国家电子政务的市场是很庞大的。</p>
<p> </p>
<p>但是像上证所信息公司、外汇交易中心,这种角色算不算政府部门,我也不清楚啊。</p>
<p> </p>
<p> </p>
155 楼 icewubin 2009-11-30  
<div class="quote_title">yipsilon 写道</div>
<div class="quote_div">
<p> </p>
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">有钱的话,就偏题了,因为你最开始说的是廉价。<br><br>而且这种优化仅仅是解决了一些算法上的性能问题,在多线程编程方面,仍然没有什么强有力的工具。</div>
<p> 有何冲突呢?就像你说的那需要一堆堆服务器做事情似的,如果只有几个人访问,至于用那么多服务器么?那这个时候廉价的才是最重要的,因为还没到有钱的时候。</p>
<p> </p>
<p>php在于你用最小的投资可以快速地开发网站应用,打个比方说,你做个企业网站,人员成本不说,需要租虚拟主机吧?看看现在PHP主机多少钱,再看看JSP主机多少钱。</p>
<p> </p>
<p>多线程问题,对于PHP来说就完全取决于web server了,但大部分web server是c开发的,系统执行效率不成问题。其实Java原生多线程模式弊端挺多的,这也是后期版本出来了NIO和并发库的原因。</p>
</div>
<p><br>廉价当然是PHP的优势啦,但是廉价也是讨论的前提啊,讨论的时候不能随随便便就把不廉价的优化方案拿进来吧。</p>
<p> </p>
<p>asp或asp.net的虚拟主机也不贵吧,还有就是虽然讨论常说JSP,目前无论企业项目还是互联网项目,JSP基本没人用了,所以也不应该有什么JSP虚拟主机的说法。</p>
<p> </p>
<p>一般是这样的,现在有很多虚拟主机,其实就是虚拟机,而不限定什么语言的,自己随便怎么整,我感觉(当然我的感觉可能不对)还是asp.net整起来,最快最方便。</p>
<p> </p>
<p>不明白你说的“弊端”指什么?如果是多线程模型的话,java早期版本就是很强的,相比其他语言(erlang这种不算),1.5新加入的包只是进一步增强而已吧,不代表以前的java多线程编程就很弱,如果说是网络IO模型的话,之前已经详细分析过了,牵涉到Linux的epoll模型的发布,c版的webserver先用上了,JVM跟进的稍晚而已。</p>
154 楼 yipsilon 2009-11-30  
<p>
</p>
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">有些我也不回了,感兴趣的再继续说说吧,如果砸掉的占少数,我当然不会把个案当普遍性来说,是向好几个IBM的同学求证后才得出的结论的,IBM的失败案例很多。之所以外人知道的少,要看这个失败如何定义了,延期一年以上可以算失败项目的话,真的有很多,最终虽然对外宣布项目成功上线,但是其实都是失败的。而且相当一部分,不仅仅是延期那么简单,质量和功能和当初的规划相差甚远。<br><br>IBM、毕博、埃森哲、普华永道、德勤的不少咨询公司或部门,都是忽悠占主要的,原因多种多样,有的是公司方案部门为了那些竞标,不择手段,夸大其辞(这个例子下一段说)有的是其他原因。<br><br>正好上个月,我的那个做售前的同学在南京出差,说做方案的部门扔给他们一个烂摊子(我一开始不是很清楚我同学售前到底是干什么的,没想到做方案的另有部门),夸夸其谈N多实现不了的特性和功能,而且因为是烂摊子,最终的实施相关的部门也以各种理由推说不肯做,结果这个烂摊子我同学的部门接下了,接下的不是example project,而是项目实施了,结果,一个烂摊子还没结束,第二个烂摊子项目又从方案相关部门扔了过来,我同学极其愤怒,说为什么这个黑锅要他们部门背,和他的顶头上司杠上了,说不做,一定要做的话,也不会认真,反正最终一定做砸。<br><br>再来个例子就是埃森哲的,恩,好像没啥好说的,就此打住。</div>

<p> 谁让他们有钱呢,没办法的。IT行业就这样,有钱人会越来越有钱,没钱的人想有钱就得看天上掉馅饼了,比如来个风投看重你的项目了什么的。</p>
<p> </p>
<p>如果单纯的做软件项目,个人感觉根本就不怎么赚钱,因为一没有技术沉淀,二没有技术产品,每次都是不停地循环投资,攒不下钱。</p>
153 楼 yipsilon 2009-11-30  
<p>
</p>
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">我之前那家公司也算是IBM合作单位,公司的CEO和CTO以前也是IBM的资深员工(什么级别忘了),合作的好几个项目,采购的都不是IBM的硬件,当时我了解的主要的客户是上海证券交易所下属的信息公司,基本都是HP的硬件。<br><br>后来又问过我在IBM的同学,得知了IBM内部的怪现象,所以才这么说的。<br><br>题外话,SB的政府部门也不是没有,例如当时给北京财政部做预算,列的巨贵的IBM服务器,北京财政部那个SB说:“硬件预算要和软件预算1:1”,然后我们就只能照做了。<br><br>相比之下,上证所的信息公司、北京证监会还是相对比较务实的。</div>

<p> 是IBM拿活儿给你们公司做还是你们公司拿活儿给IBM做?一个是客户角色,一个是附属角色,这待遇可不一样啊。</p>
<p> </p>
<p>不过如果你公司做的都是政府或相关企业的项目,那只能说你的环境是我说的那一小部分条件,因为在中国没人敢得罪政府吧,当然是他们想做什么就做什么了。</p>
152 楼 icewubin 2009-11-30  
<div class="quote_title">yipsilon 写道</div>
<div class="quote_div">
<p> </p>
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">那当然是的啊,因为前两者占内存很小啊,你想想,一个小应用,代码不压缩才几百K,能占多少内存,占内存(需要回收的)的是对象的实例,而不是对象代码本身。<br> </div>
<p>你要知道,装入内存的不仅仅是你的网站代码,还有各种application server所用到的类库,现在哪个J2EEcontainer不都是上百兆的?!</p>
<p> </p>
</div>
<p>恩?上百兆?举个例子先?我刚才随便找了个典型应用,看了下类库lib目录下总共才35MB,而且有不少是开发辅助、或者是编译优化、或者是JUnit相关,发布出来的war只有12MB都不到。</p>
<p>几百兆?你是从哪里看来的?举个例子先?</p>
<p> </p>
<p>这是一方面,另一方面,java类库加载的时候,只会加载用到的class和其相关的class,是按需加载的,不是你认为的一个类库直接加载到内存(执行环境),这方面你应该多了解一下java的ClassLoader机制。</p>
<p> </p>
<p> </p>
151 楼 yipsilon 2009-11-30  
<p>
</p>
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">1. 我对这方面不是很了解,你说的“自己开发个好的”、“开发连接池模块”、“修改PHP源代码优化”,都是用PHP实现的么? <br><br>(因为在java中,自己开发jcbc驱动、自己开发任何连接池模块,自己修改java的各种包的源代码,都是用java就能搞定的,而且都很简单,尤其是自己写一个连接池,非常简单)</div>

<p>这话题是针对你说的是PHP某些模块有问题,我用C实现然后在PHP调用,算是变相实现了吧?而且我已经说过了实现过程比较复杂(毕竟C写的嘛),难道我说错了?当然是不简单啊。哈哈</p>
150 楼 icewubin 2009-11-30  
<div class="quote_title">yipsilon 写道</div>
<div class="quote_div">
<p> </p>
<p>4. 现在哪家大公司都多多少少有一些砸掉的项目,据我所知好像还没有100%成功的,但是由于业务量大,总体利润还是很高的。</p>
</div>
<p><br>有些我也不回了,感兴趣的再继续说说吧,如果砸掉的占少数,我当然不会把个案当普遍性来说,是向好几个IBM的同学求证后才得出的结论的,IBM的失败案例很多。之所以外人知道的少,要看这个失败如何定义了,延期一年以上可以算失败项目的话,真的有很多,最终虽然对外宣布项目成功上线,但是其实都是失败的。而且相当一部分,不仅仅是延期那么简单,质量和功能和当初的规划相差甚远。</p>
<p> </p>
<p>IBM、毕博、埃森哲、普华永道、德勤的不少咨询公司或部门,都是忽悠占主要的,原因多种多样,有的是公司方案部门为了那些竞标,不择手段,夸大其辞(这个例子下一段说)有的是其他原因。</p>
<p> </p>
<p>正好上个月,我的那个做售前的同学在南京出差,说做方案的部门扔给他们一个烂摊子(我一开始不是很清楚我同学售前到底是干什么的,没想到做方案的另有部门),夸夸其谈N多实现不了的特性和功能,而且因为是烂摊子,最终的实施相关的部门也以各种理由推说不肯做,结果这个烂摊子我同学的部门接下了,接下的不是example project,而是项目实施了,结果,一个烂摊子还没结束,第二个烂摊子项目又从方案相关部门扔了过来,我同学极其愤怒,说为什么这个黑锅要他们部门背,和他的顶头上司杠上了,说不做,一定要做的话,也不会认真,反正最终一定做砸。</p>
<p> </p>
<p>再来个例子就是埃森哲的,恩,好像跑题很远了,没啥好说的,就此打住。</p>
149 楼 yipsilon 2009-11-30  
<p>
</p>
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">1.那当然是的啊,因为前两者占内存很小啊,你想想,一个小应用,代码不压缩才几百K,能占多少内存,占内存(需要回收的)的是对象的实例,而不是对象代码本身。<br><br>2.你说的“慢的可怕”是毫无依据的,最新版本的JVM的垃圾回收效率远比你想象的要高。例如从JDK 1.4开始,支持多线程垃圾回收,直接就使得swing运行效率提高40%(当你拖动窗口的时候,就是个不断新建窗口对象,回收原有位置对象的过程),到JDK 6之后,原生swing写的netbeans的速度都能接近甚至超过经过本地二进制优化的Eclipse了。 这方面在你不了解JVM之前,不要主观臆断说什么“瞬间内存也够受的”这种话。<br>返回顶楼 </div>

<p>1. 你要知道,装入内存的不仅仅是你的网站代码,还有各种application server所用到的类库,现在哪个J2EEcontainer不都是上百兆的?!</p>
<p> </p>
<p>2. 那你就找个内存小一点儿的服务器(让它用到虚拟内存)跑一下JAVA应用,测试一下吧,看看是快是慢。我这里深有感触,硬盘狂转,等待时间很长。</p>
148 楼 yipsilon 2009-11-30  
<p>
</p>
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">有钱的话,就偏题了,因为你最开始说的是廉价。<br><br>而且这种优化仅仅是解决了一些算法上的性能问题,在多线程编程方面,仍然没有什么强有力的工具。</div>

<p> 有何冲突呢?就像你说的那需要一堆堆服务器做事情似的,如果只有几个人访问,至于用那么多服务器么?那这个时候廉价的才是最重要的,因为还没到有钱的时候。</p>
<p> </p>
<p>php在于你用最小的投资可以快速地开发网站应用,打个比方说,你做个企业网站,人员成本不说,需要租虚拟主机吧?看看现在PHP主机多少钱,再看看JSP主机多少钱。</p>
<p> </p>
<p>多线程问题,对于PHP来说就完全取决于web server了,但大部分web server是c开发的,系统执行效率不成问题。其实Java原生多线程模式弊端挺多的,这也是后期版本出来了NIO和并发库的原因。</p>
147 楼 yipsilon 2009-11-30  
<p>
</p>
<div class="quote_title"><span style="font-weight: normal;">需要看的帖子太多了,某些觉得严重偏题的就不回了。</span></div>
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">1. 随需应变啦、智慧地球这个是统一的理念,但是和对日外包子公司有关系么?<br><br>2. 我了解到的IBM的做方案的部门就是因为IBM的独立核算还不给优惠的怪现象,就无所谓用不用IBM的硬件,如果用户提出不使用IBM的硬件,做方案的人的态度是很重要的,做方案的人既可以说:“我们的软件只能用IBM的硬件”,也可以说:“HP或DELL的硬件我们的软件方案都能做”。<br><br>我就是问了IBM的同学,才知道这个怪现象,问之前我也认为,他们内部么采购一定是有优惠的。算是一个IBM内部的一个问题吧。<br><br>3. 除了少数大项目,没有太多的所谓整体利益的,尤其是子公司,例如对日外包的子公司,在理念上都是非常独立的,而且一个对日的外包公司,和母也没什么太大的直接关系,宣传的时候,台面上会有N的理由,说如何如何好,做起来都是重新搞一套的。<br><br>4.(IBM?呵呵,不少超大项目都是做砸掉的,例如浙江电信的一个超大项目,延期1年以上。IBM广告做得好,实际做起来实在不敢恭维,公司内部忽悠的人多,做实事的人少。)</div>

<p>1,3. 你知道IBM为什么做对日的么?比如说IBM给日立出了个解决方案,硬件部分交给硬件子公司处理,软件部分通过ISSC做完了交给客户验收,这就完事了?No,后期还有技术支持、咨询维护等工作,这些都是方案的一部分,那这些交给谁做呢,还是ISSC,ISSC大连这边大部分业务就是搞对日的。</p>
<p> </p>
<p>2. 之前已经说了关于公司的一些利益关系。</p>
<p> </p>
<p>4. 现在哪家大公司都多多少少有一些砸掉的项目,据我所知好像还没有100%成功的,但是由于业务量大,总体利润还是很高的。</p>
146 楼 icewubin 2009-11-30  
<div class="quote_title">yipsilon 写道</div>
<div class="quote_div">
<p> </p>
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">4.IBM的标书很多种的,超过1000万的或者规模达到一定程度的超大型项目是这样的,但是更多的中小项目的IBM的标书你都没见过吧。我再来说一个IBM典型的做某一个项目的例子,他们做总包,然后把各个方面,软件、硬件数据仓库全部分包出去,自己啥都不干。(客户还不清楚,这种项目做的,我的评价是这部门可以算是咨询部门了,真会省精力啊) <br>
</div>
<p>4. 貌似,我们公司的系统集成部门没发现这种现象,一般如果拉IBM进来做出的方案,都是用IBM的硬件设备,我所接触的其他公司也是这样的。你确认这不是个别现象?</p>
</div>
<p><br>我之前那家公司也算是IBM合作单位,公司的CEO和CTO以前也是IBM的资深员工(什么级别忘了),合作的好几个项目,采购的都不是IBM的硬件,当时我了解的主要的客户是上海证券交易所下属的信息公司,基本都是HP的硬件。</p>
<p> </p>
<p>后来又问过我在IBM的同学,得知了IBM内部的怪现象,所以才这么说的。</p>
<p> </p>
<p>题外话,SB的政府部门也不是没有,例如当时给北京财政部做预算,列的巨贵的IBM服务器,北京财政部那个SB说:“硬件预算要和软件预算1:1”,然后我们就只能照做了。</p>
<p> </p>
<p>相比之下,上证所的信息公司、北京证监会还是相对比较务实的。</p>
145 楼 icewubin 2009-11-30  
yipsilon 写道
如果OCI不好,可以自己开发个好的呀;如果没有数据库连接池,可以开发连接池模块啊;如果长连接性能不够好,也可以修改PHP源代码优化呀,反正都是开源的,一切都可以手工实现,不是么?就是复杂了点儿而已。

我对这方面不是很了解,你说的“自己开发个好的”、“开发连接池模块”、“修改PHP源代码优化”,都是用PHP实现的么?

(因为在java中,自己开发jcbc驱动、自己开发任何连接池模块,自己修改java的各种包的源代码,都是用java就能搞定的,而且都很简单,尤其是自己写一个连接池,非常简单)
144 楼 yipsilon 2009-11-30  
lightsaber 写道
始终没搞清楚lz为何要拿js和php比较。
后面有些人的回帖也在比较前端和后端
两者比较有意义吗?还是有些朋友本身刚入门php?

哈哈,我的初衷其实也没想比较什么,只是说出了PHP不会倒掉的一些优势而已,讨论讨论就变味儿了,哎哎。

正如你说的,确实没有意义,萝卜白菜各有所爱嘛。
143 楼 icewubin 2009-11-30  
<div class="quote_title">yipsilon 写道</div>
<div class="quote_div">
<p> </p>
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">1.不会大涨的,JIT技术应用在JVM反而是不会增加内存的使用量的,因为JVM本来就是都加载到内存中,进行统一的内存管理(包括垃圾回收)的。 <br><br>2.即使真的占内存,也不会大涨,原因如下:JVM中吃内存最主要的是对象,也就是类的实例,例如一个User类,随着你创建100个用户类到创建1000个用户类,内存使用量会逐渐上升,但是对于user类本身的运行代码,就是再copy一份,占用内存也是很小的,因为无论user类的实例有几个,user类本身的代码只有1份或2份,所以绝对不会内存大涨的。 <br>
</div>
<p>1. 第一次用到类的时候,已经是加载到内存里了,如果把类数据转换成机器码,还是要缓存的,而垃圾回收据我所知是回收对象的,而不会回收前两者的。</p>
<p> </p>
<p>2. 你知道每次访问一个只打印 hello world 页面的时候,app server创建了多少个对象么?虽然后来大部分是会被垃圾回收的,但瞬间内存也够受的,一旦用虚拟内存了,那一段时间慢得也是很可怕的。</p>
</div>
<p><br>1.那当然是的啊,因为前两者占内存很小啊,你想想,一个小应用,代码不压缩才几百K,能占多少内存,占内存(需要回收的)的是对象的实例,而不是对象代码本身。</p>
<p> </p>
<p>2.你说的“慢的可怕”是毫无依据的,最新版本的JVM的垃圾回收效率远比你想象的要高。例如从JDK 1.4开始,支持多线程垃圾回收,直接就使得swing运行效率提高40%(当你拖动窗口的时候,就是个不断新建窗口对象,回收原有位置对象的过程),到JDK 6之后,原生swing写的netbeans的速度都能接近甚至超过经过本地二进制优化的Eclipse了。 这方面在你不了解JVM之前,不要主观臆断说什么“瞬间内存也够受的”这种话。</p>
142 楼 yipsilon 2009-11-30  
<p>
</p>
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">2.当然得谈历史,大厂商对产业的推动是很重要的,如果微软不发展.net技术,专心的继续优化和进化asp的话,asp也不会逐渐退出舞台,对不对,就像java和php,随着版本的提升,目前的版本和各自早期版本PHP 3.0和java 1.2都已经有很大的差异了(java相对来说差异最小,jdk 1.2的代码在最新的JDK6上也能跑,而且不少IO的API自动获得高性能的好处)。 <br><br>3.这个我前面说过了,各自独立核算,你所谓的“目标”(购买IBM服务器的目标)是不存在的,真的买了IBM的服务器,对于做方案的部门来说,基本没有什么好处。 <br><br>4.IBM的标书很多种的,超过1000万的或者规模达到一定程度的超大型项目是这样的,但是更多的中小项目的IBM的标书你都没见过吧。我再来说一个IBM典型的做某一个项目的例子,他们做总包,然后把各个方面,软件、硬件数据仓库全部分包出去,自己啥都不干。(客户还不清楚,这种项目做的,我的评价是这部门可以算是咨询部门了,真会省精力啊) <br><br>5.看样子你对硬件代理不是很了解,我也不是非常的了解,但是知道一点,不是你想的那样的,国内的硬件想要便宜,某些代理商更容易拿到便宜的价格,而不是靠合作伙伴关系。 </div>

<p>2. 是啊,官方支持和发展是很重要的。</p>
<p> </p>
<p>3. 前文提到了,这是整体利益,再跟你说一个例子,IBM在股票交易所只有一家公司上市的(收购的上市企业不算),财报数据的统计是所有子公司利润的按照一定的算法算出来的,虽然他们都是独立核算的。</p>
<p> </p>
<p>4. 貌似,我们公司的系统集成部门没发现这种现象,一般如果拉IBM进来做出的方案,都是用IBM的硬件设备,我所接触的其他公司也是这样的。你确认这不是个别现象?</p>
<p> </p>
<p>5. 呵呵,就连IBM做的方案,硬件都是通过代理商走的,因为他们要维护经销商的利益,但是,不管通过什么渠道走,最终都是IBM在赚钱,那你认为我想的是哪样呢?</p>
141 楼 icewubin 2009-11-30  
<div class="quote_title">yipsilon 写道</div>
<div class="quote_div">
<p> </p>
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">问一句,Zend Performance Suite 企业版是不是要收费的? <br>非企业版,只能加速,不能缓冲,功能是有限制的吧。 <br><br>如果说到优化的话,JVM还有收费版本的JRocket呢,某些情况下性能提升也是1倍左右。</div>
<p> Zend Platform是可以缓冲的。虽然是收费的,但是如果“有钱的话”,买一套来提高性能何尝不可?</p>
<p> </p>
<p>JRocket据我所知只对BEA的产品线支持最好(如Weblogic),如果你用JRocket运行Glassfish,性能未必会提升。</p>
</div>
<p><br>有钱的话,就偏题了,因为你最开始说的是廉价。</p>
<p> </p>
<p>而且这种优化仅仅是解决了一些算法上的性能问题,在多线程编程方面,仍然没有什么强有力的工具。</p>
140 楼 icewubin 2009-11-30  
<div class="quote_title">yipsilon 写道</div>
<div class="quote_div">
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">
<br>1.你怎么还在说“一揽子全包”的问题呢?从的语言上来看,你也应该知道IBM有很多子公司和部分,各部门和子公司都是独立结算的,不要把IBM想象成一个大的利益共同体,公司大到他们这个人员规模,这也是不可能的。例如某一个部门做某一个类型的方案,在实施的时候如果要用到websphere或者DB2,是要向websphere和DB2的相关部门花钱买的,因为这牵涉到websphere和DB2的相关部门的独立财务方面的问题,而且购买的价格也没有什么太大的优惠(听起来非常奇怪,实际就是如此)。所以各部门和各子公司都有自己的规划,而不是你说的“分出细节分发给不同的子公司处理”,不可能的事。你的想象力真丰富啊。<br><br>而且有的部门是做智能大厦(通俗点就是布网线的)的,有的子公司是做展会方案的,有的子公司是做对日外包的,有的子公司是做国内银行的,有的专做售前方案的,有的专做数据仓库的,等等等等,都是各管个的。<br><br>3.websphere产品系列中整合了apache里很多子项目,这里的“很多”和IBM所有支持的开源项目比起来,零头都没有,各个子公司和部门有各自的利益,这方面上一段有说明。<br>
</div>
<p>1. 呵呵,独立结算并不意味着独立拿项目的,这个一定要去分开,因为只要是独立法人的公司,都是独立核算的。就像我之前说的开发软件需要配硬件一样,你可以问问IBM的朋友们,一个项目要是不多多少少用IBM的服务器,大部分情况下IBM会干么?呵呵。卖服务器的子公司和开发软件项目的子公司还是独立核算的,但是他们都是打包拿项目的。</p>
<p> </p>
<p>像IBM这样的公司,业务涉及的行业太多了,因此有很多子公司做各自不同的事情是正常的。但你看,为什么IBM不会为每个子公司做单独的广告?比如ISSC做外包业务的广告?而是统一的理念,随需应变啦、智慧地球啦什么的。它在客户看来做的就是整体解决方案,而不是各顾各的。</p>
<p> </p>
<p>3. 基本上IBM产品线所用的大部分开源项目都有IBM的人,而这些人都是总部根据市场环境制定开源政策,然后由各个子公司来执行的,子公司的利益是必需要屈服于整体利益,因为解决方案这个行业,整体利益是最赚钱的。</p>
<p> </p>
</div>
<p><br>随需应变啦、智慧地球这个是统一的理念,但是和对日外包子公司有关系么?</p>
<p> </p>
<p>我了解到的IBM的做方案的部门就是因为IBM的独立核算还不给优惠的怪现象,就无所谓用不用IBM的硬件,如果用户提出不使用IBM的硬件,做方案的人的态度是很重要的,做方案的人既可以说:“我们的软件只能用IBM的硬件”,也可以说:“HP或DELL的硬件我们的软件方案都能做”。</p>
<p> </p>
<p>我就是问了IBM的同学,才知道这个怪现象,问之前我也认为,他们内部么采购一定是有优惠的。算是一个IBM内部的一个问题吧。</p>
<p> </p>
<p>除了少数大项目,没有太多的所谓整体利益的,尤其是子公司,例如对日外包的子公司,在理念上都是非常独立的,而且一个对日的外包公司,和母也没什么太大的直接关系,宣传的时候,台面上会有N的理由,说如何如何好,做起来都是重新搞一套的。</p>
<p> </p>
<p>(IBM?呵呵,不少超大项目都是做砸掉的,例如浙江电信的一个超大项目,延期1年以上。IBM广告做得好,实际做起来实在不敢恭维,公司内部忽悠的人多,做实事的人少。)</p>
139 楼 yipsilon 2009-11-30  
<p>
</p>
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">问一句,Zend Performance Suite 企业版是不是要收费的? <br>非企业版,只能加速,不能缓冲,功能是有限制的吧。 <br><br>如果说到优化的话,JVM还有收费版本的JRocket呢,某些情况下性能提升也是1倍左右。</div>

<p> Zend Platform是可以缓冲的。虽然是收费的,但是如果“有钱的话”,买一套来提高性能何尝不可?</p>
<p> </p>
<p>JRocket据我所知只对BEA的产品线支持最好(如Weblogic),如果你用JRocket运行Glassfish,性能未必会提升。</p>
138 楼 yipsilon 2009-11-30  
<p>
</p>
<div class="quote_title">icewubin 写道</div>
<div class="quote_div">1.不会大涨的,JIT技术应用在JVM反而是不会增加内存的使用量的,因为JVM本来就是都加载到内存中,进行统一的内存管理(包括垃圾回收)的。 <br><br>2.即使真的占内存,也不会大涨,原因如下:JVM中吃内存最主要的是对象,也就是类的实例,例如一个User类,随着你创建100个用户类到创建1000个用户类,内存使用量会逐渐上升,但是对于user类本身的运行代码,就是再copy一份,占用内存也是很小的,因为无论user类的实例有几个,user类本身的代码只有1份或2份,所以绝对不会内存大涨的。 <br><br>3.不过其他语言的JIT就不好说了,因为场景不一样,例如chrome的JS引擎,也用了JIT优化技术,但是因为场景是页面每大概一个,就有一个小的微环境,就会构建一套JIT环境或者是一颗优化树,页面打开越多,内存占用也越多。 </div>

<p>1. 第一次用到类的时候,已经是加载到内存里了,如果把类数据转换成机器码,还是要缓存的,而垃圾回收据我所知是回收对象的,而不会回收前两者的。</p>
<p> </p>
<p>2. 你知道每次访问一个只打印 hello world 页面的时候,app server创建了多少个对象么?虽然后来大部分是会被垃圾回收的,但瞬间内存也够受的,一旦用虚拟内存了,那一段时间慢得也是很可怕的。</p>
<p> </p>
<p>3. 赞同。</p>

相关推荐

    秒盾代码 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