为什么80%的网站都用PHP写,PHP实用性有多强?
yuyutoo 2024-11-11 16:48 2 浏览 0 评论
成都PHP培训:为什么80%的网站都用PHP写,PHP实用性有多强?
在高速发展的时代,个种各样的程序语言不断出现,怎样去辨别他们的使用效果呢?PHP写的网站占所有网站的大概 80%了。这个网站的数据我觉得还是比较信服的。你黑跟不黑,他们都在那儿用php。
PHP流行无外乎:
简单、性能足够好
热部署、易修改
部署方案简单、各种独立的php空间商好找
php官方够给力、性能提升比较大, Facebook出的HHVM更是反映了PHP的兴盛
PHP的极强的兼容性:
PHP的极强的兼容性,这个也是稳定、高效的最好的佐证,PHP5.2到现在的PHP7、hhvm有多少的不兼容么?反观Python Python2跟Python3是裂变,ruby每个版本的兼容性其实很大的,甚至一些gem比如rails之类的 ,兼容性很差的。
Php的灵魂Hash Table很精妙,php的简单我觉得绝大多数构筑在hash table设计精巧上, 用了那么多的语言,php的数组、对象操作真是最简单最得心应手的,这个就是Php hash table的强大了,关于hash table的C实现,可以大概瞅瞅PHP C源代码, http://www.php-internals.com/book/?p=chapt03/03-01-02-hashtable-in-php
四大web语言(仅仅web上用的比较多,比较类似的4大语言) PHP跟python、ruby java 我都学过(C#粉勿怪,我是linux脑残粉,只用linux下用的比较广的东西,ms系列的东西我都不看的。)
其中php ruby python算是同类C实现的脚本语言这一类的。java自成一类字节码半编译基于强大JVM的伟大语言。
php、ruby、python比较
在php、ruby、python里面,虽然我觉得python、ruby比较省代码,但我不觉得在web上 python、ruby有机会击败php。不要因为少数开玩笑的、低级的黑PHP就觉得PHP不行了,那些黑PHP的多少黑到点子上去了。
别的我不知道,学校里一些玩儿python的自以为python很厉害,整个php群体比较菜的,这其实是python小众群体的优越感了。真比起来,python在纯web上比不过php跟ruby。
以前十年前大概,挺多初高中生搞ACM、OI 会一点pascal 就那种很优越的经常说,“别跟我提C++,我是写pascal,不懂C++啦”,就是那种自黑狂妄的秀优越的那样说出来的, "不懂C++都拿出来秀优越一样",真是可笑。
python、ruby的类库比php多一些, 但是在纯web跟web相关这方面,php的成熟类库比ruby、python多的,这就是php为什么现在在web上比python、ruby强。perl的没落也不是没有原因的。1995-1998年大概, lamp就开始提出来,盛行天下。当时很强大的雅虎在内部全部推广php, 最后才引起php的盛世啦。
java跟(php ruby python) 这两大类:
java综合来说,写起来复杂一点,不要跟我扯java敏捷开发(java的敏捷开发是相对于java以往的开发例子的敏捷开发),嵌进去预言的语法是你的一个便捷的框架能改变的么?真想逆天改命呢。
jvm经过sun orcale IBM 等等花重金堆人才、堆技术、堆黑科技,堆出来的超强性能,惊世罕见。已经在很多地方java不比c++ 慢了。
java的一些工业级的强大类库、php ruby python只有看着的份儿,这个是事实,得认。apache基金会下面一票的伟大的java项目: tomcat 、 cassdra、POI 、strust 、lucene、solr、hadoop、hbase、zookeeper 等等。
在web方面, java堆机器、堆集群是可以把一些性能堆上去的,还有一些像站内搜索引擎方面事实标准是solr 、lucence, 这一块基本只能用java。
还有一些复杂的后台任务啊、之类的都用java不断的跑。写到cache、队列里面去,供其他语言调用。
java一个很好的特点就是工程性特别规范特别强、简直是标准的工业级语言。虽然写起来有点点繁琐,但是配合伟大的jetbrains idea 系列IDE的智能提示,基本不麻烦。java的安全性、线程锁、同步啊、Exception等等是别的语言很难达到的。所以淘宝、当当、京东有用到java的,哪一步比如读文件、数据库连接、IO、网络等等所有地方的 异常都可以捕获,万一发生诡异的异常都可以找出来的。其他语言(php ruby python)目前基本没这样的能力的。
所以一些大企业java / c++ + php混用的,其实挺好的。个人觉得“PHP是最好的语言”,这话即使不对,也是最好语言之一。分数越高越好,我把各大语言我认识的 常用的web框架,标出来了。
框架的具体介绍:
大家也可以自己看看自己在用的框架在什么位置
看到没php-raw , 也就是纯php, 在很高的位置。在纯php之上的,除了纯java的servlet-raw, 其他我都不认识。注意php-raw 比 python django flask、ruby rails sinatra、go 、go revel 等等好多都要高,有的还高很多很多。
php的流行,必然有很大的一方面就是性能很强的原因。配合简单、稳定、容易部署。
我还在百度实习的时候,百度用的比较普遍的一个php统一解决方案,核心就是ap框架。可以说 ap框架 约等于 yaf框架。几乎一模一样的。是鸟哥还在百度的时候,他们一起为百度的基础架构写了一个php c语言框架。
AMP组合已经集齐一套完整的带CGI功能,数据库的网页服务器套装,而且相近的技术(JSP/*或者sevrlet*/,ASP)当时出现晚了(PHP2是95年,引入Zend引擎的PHP2是97年,PHP3是98年,JSP是99年,/*sevrlet是97年*/,ASP是96年,http://ASP.NET是02年),其实只是最近一些年才发现PHP的语言特征太“粗犷”了,才认为不太适合。(毕竟原设计只是给作者自己更新网页用的)
相关推荐
- jQuery VS AngularJS 你更钟爱哪个?
-
在这一次的Web开发教程中,我会尽力解答有关于jQuery和AngularJS的两个非常常见的问题,即jQuery和AngularJS之间的区别是什么?也就是说jQueryVSAngularJS?...
- Jquery实时校验,指定长度的「负小数」,小数位未满末尾补0
-
在可以输入【负小数】的输入框获取到焦点时,移除千位分隔符,在输入数据时,实时校验输入内容是否正确,失去焦点后,添加千位分隔符格式化数字。同时小数位未满时末尾补0。HTML代码...
- 如何在pbootCMS前台调用自定义表单?pbootCMS自定义调用代码示例
-
要在pbootCMS前台调用自定义表单,您需要在后台创建表单并为其添加字段,然后在前台模板文件中添加相关代码,如提交按钮和表单验证代码。您还可以自定义表单数据的存储位置、添加文件上传字段、日期选择器、...
- 编程技巧:Jquery实时验证,指定长度的「负小数」
-
为了保障【负小数】的正确性,做成了通过Jquery,在用户端,实时验证指定长度的【负小数】的方法。HTML代码<inputtype="text"class="forc...
- 一篇文章带你用jquery mobile设计颜色拾取器
-
【一、项目背景】现实生活中,我们经常会遇到配色的问题,这个时候去百度一下RGB表。而RGB表只提供相对于的颜色的RGB值而没有可以验证的模块。我们可以通过jquerymobile去设计颜色的拾取器...
- 编程技巧:Jquery实时验证,指定长度的「正小数」
-
为了保障【正小数】的正确性,做成了通过Jquery,在用户端,实时验证指定长度的【正小数】的方法。HTML做成方法<inputtype="text"class="fo...
- jquery.validate检查数组全部验证
-
问题:html中有多个name[],每个参数都要进行验证是否为空,这个时候直接用required:true话,不能全部验证,只要这个数组中有一个有值就可以通过的。解决方法使用addmethod...
- Vue进阶(幺叁肆):npm查看包版本信息
-
第一种方式npmviewjqueryversions这种方式可以查看npm服务器上所有的...
- layui中使用lay-verify进行条件校验
-
一、layui的校验很简单,主要有以下步骤:1.在form表单内加上class="layui-form"2.在提交按钮上加上lay-submit3.在想要校验的标签,加上lay-...
- jQuery是什么?如何使用? jquery是什么功能组件
-
jQuery于2006年1月由JohnResig在BarCampNYC首次发布。它目前由TimmyWilson领导,并由一组开发人员维护。jQuery是一个JavaScript库,它简化了客户...
- django框架的表单form的理解和用法-9
-
表单呈现...
- jquery对上传文件的检测判断 jquery实现文件上传
-
总体思路:在前端使用jquery对上传文件做部分初步的判断,验证通过的文件利用ajaxFileUpload上传到服务器端,并将文件的存储路径保存到数据库。<asp:FileUploadI...
- Nodejs之MEAN栈开发(四)-- form验证及图片上传
-
这一节增加推荐图书的提交和删除功能,来学习node的form提交以及node的图片上传功能。开始之前需要源码同学可以先在git上fork:https://github.com/stoneniqiu/R...
- 大数据开发基础之JAVA jquery 大数据java实战
-
上一篇我们讲解了JAVAscript的基础知识、特点及基本语法以及组成及基本用途,本期就给大家带来了JAVAweb的第二个知识点jquery,大数据开发基础之JAVAjquery,这是本篇文章的主要...
- 推荐四个开源的jQuery可视化表单设计器
-
jquery开源在线表单拖拉设计器formBuilder(推荐)jQueryformBuilder是一个开源的WEB在线html表单设计器,开发人员可以通过拖拉实现一个可视化的表单。支持表单常用控件...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)