我总是听到PHP用于中小型网站,而.NET和Java用于企业应用程序。我的问题是关于PHP的。为什么PHP不是企业Web应用程序的好选择?是否因为Web应用程序变得更大而使PHP变慢,因为它是一种解释语言?
我知道企业界会选择.NET或J2EE,因为它们与其产品集成在一起,并且由于后端服务等原因。但是,如果我们只有PHP来构建站点和Web应用程序,那么我们如何使用它来实现良好的性能呢?大网站?
简而言之,PHP的性能和网站的大小之间是否有关系?什么因素使PHP不适合用于大型站点?
我总是听到PHP用于中小型网站,而.NET和Java用于企业应用程序。我的问题是关于PHP的。为什么PHP不是企业Web应用程序的好选择?是否因为Web应用程序变得更大而使PHP变慢,因为它是一种解释语言?
我知道企业界会选择.NET或J2EE,因为它们与其产品集成在一起,并且由于后端服务等原因。但是,如果我们只有PHP来构建站点和Web应用程序,那么我们如何使用它来实现良好的性能呢?大网站?
简而言之,PHP的性能和网站的大小之间是否有关系?什么因素使PHP不适合用于大型站点?
Answers:
性能可能不是因素之一。对于动态语言,PHP实际上表现很好。根据任务,它可能会或可能不会击败其他技术。应用程序模型完全不同,无法直接将其与Java或ASP.NET进行比较。即使存在可测量的速度差异,它也不大,并且可能是线性的,这意味着可以通过添加更多硬件来解决它。而且,编程语言本身很少成为瓶颈-除非您正在编写确实占用大量CPU的内容,否则算法,数据库访问,网络带宽和I / O通常是常见的罪魁祸首。
在PHP上使用ASP.NET或Java的原因更可能包括:
产生这种效果的另一个原因是,PHP是免费的(如啤酒中一样)并且无处不在-每个便宜的共享Web托管公司的标准软件包中都包含PHP,但是.NET或Java服务器的成本要高得多。因此,大量的小型网站都使用PHP,不是因为它是完成工作的最佳工具,而是手头的唯一工具。
并不是说PHP不适合大型项目-只是与“企业级”编程不兼容。它的优势在其他地方,如果您可以利用它们,则可以像使用任何其他Web技术一样轻松地构建大型应用程序。
您会在业务逻辑复杂程度(简单网站与企业解决方案)之间混淆流量(“中小型网站”通常是指中小型流量的网站)。在第二种情况下,性能不是关键因素。
例如,Facebook是高流量网站,但它不是企业应用程序。另一方面,基于Java应用程序服务器的Intranet过多,甚至无法处理中型网站的流量。
性能方面的PHP并不是最好的选择,但是也不错。特别是与其他动态语言相比。但是,同样,原始性能不是最重要的因素。创建高流量的网站更多是关于在体系结构级别上优化可伸缩性。
为什么企业如此鄙视PHP?原因很少,首先是它的糟糕的安全声誉。其次,它被视为业余爱好者创建丑陋,难以管理的HTML-PHP意大利面条代码的语言。即使存在成熟的MVC框架,这种看法仍然存在。我猜想PHP的原始作者认为您不需要框架无济于事。这些无精打采,几乎没有编程技能的业余爱好者称为“ PHP程序员”的事实也无济于事。第三个原因是,任何有经验的程序员都会同意,PHP只是被错误地设计为一种语言。您可以清楚地看到它是由网站站长设计的,
是的,在企业中,一切都与系统集成有关,PHP也不起作用。通过足够的努力,您可以创建C模块。有PHP-Java桥,使用起来很繁琐。除此之外,您没有太多。创建Boost :: PHP(与C ++集成)的尝试失败。在JVM上运行的PHP克隆与PHP的兼容性几乎没有100%的兼容性(请注意,没有正式的PHP语言定义,唯一的参考是默认实现)。
不知道为什么人们声称PHP适用于中小型网站。就我所知,这是不正确的。我知道一些PHP支持的网站从小开始,然后发展成为我国的前100个网站。他们仍然使用PHP,并且没有计划对其进行任何更改。
可能促使人们得出这样的结论的事情是,在Java(我猜也是.NET)的情况下,应用程序缩放是在文档和文献中经常提到的一个术语。那里的大多数应用程序服务器都支持某种形式的集群,这种集群可以随着“受欢迎程度”的增长而迅速增加“马力”。如果使用PHP,则必须自己构建集群。您可以使用不同的组件以多种方式进行操作,并且您必须对PHP的内部运作知识有所了解。这可能使人们认为,使用PHP单一服务器(以及中小型网站)对于PHP来说是死胡同。
我要说的是,PHP的问题源于性能,而不是安全漏洞的历史。毫无疑问,可以用PHP编写任何特定大小或复杂性的网站,并且仍然可以维护安全性,但是随着复杂性的增加,维护安全性将变得更加困难。
另一方面,从第一天开始,Java就至少具有一些关于安全性的想法。尽管这些并不完全适合大多数当前的部署(最初的想法主要是针对applet,而不是服务小程序),但是强调的确意味着其功能更适合于生成安全代码。而且,当然,它也没有停滞不前-由于小程序现在主要是一个死问题,因此Java已被重新定义以强调它现在(大部分)所占据的服务器端角色。
由于.NET至少尝试与Java几乎直接竞争,因此在这方面它提供了几乎相同的特性。你可以说(和拥护者两个阵营做的)太阳或微软在是否确实在这方面做得更好,但一个简单的事实都有人队真的想在其上的工作给他们带来了相当严重的优势PHP在这尊重。
1)表现:在这一点上,有几个答案被误导了。
Phalanger项目(我过去曾经成功使用过)允许您在PHP中使用C#代码,反之亦然,或者完全从一种语言切换到另一种语言。您可能需要进行一些更改,但是随着他们的不断努力,它会越来越好。
我的观点是,他们发现使用C#的平均速度是2.5倍(或者说.NET,VB也会这样做,最后是MSIL)。
使用Wordpress查看他们的测试,它吸引了很多开发人员。
现在我们还没有看到他,但是总有家伙会告诉你FaceBook是用PHP编写的。错误。直到他们意识到自己的错误,才写了HipHop将其转换为C ++。
编辑:显然,最后一块尚不清楚,所以我的意思是FaceBook 是用PHP编写的,但是HipHop使它作为C ++ 运行,以提高整体速度,因为 PHP很慢。
2)安全性:如前所述,PHP具有悠久的安全性问题历史。
3)开发时间:用PHP制作网站通常会更容易,尤其是使用框架和所有可用的“网站构建器”时。制作一个良好,可靠和安全的PHP网站是另一回事。