php为什么是最好的语言

两仪
  • 9.6k

老听见同事说php是最好的语言,求解答.(没有语言之争的意图,旨在欢乐一下)

回复
阅读 21.6k
8 个回答
王子亭
  • 11.5k
✓ 已被采纳
  • 部署简单

    很多其他行业的公司,希望有一个网站,他们并没有多少预算在网站上,可能只是随便买了一个虚拟主机,这时恐怕最好的选择就是 PHP 了。支持 Ruby, Python 之类的语言的虚拟主机很少,ASP 需要 Windows 的服务器,只有 PHP 可以运行在任何一家虚拟主机上。

  • 学习门槛低

    一开始 PHP 是专为 Web 设计的语言(虽然现在已经在向通用编程语言靠拢了), 学习和使用门槛很低,建一个 .php 文件就是网页,用 $_GET['XXOO'] 就可以获取到 GET 参数。而其他通用编程语言,原生并不支持这些与 HTTP 协议相关的功能,这时就需要选择并学习一款 HTTP 框架才能编写 Web 应用,例如 Tornado(Python), Ruby on Rails 等。

  • 语法简单

    PHP 一开始是弱类型的(现在只是不那么弱了而已,还算不上强类型),几乎不需要考虑类型转换的事情,甚至在一开始很长的一段时间里,都没有支持面向对象。PHP 可以非常简单地从数据库中存取数据,而一半的网站也无非是从数据库中读写数据。
    因为 PHP 是以 CGI 或 FastCGI 的形式运行的,因此也不必考虑内存管理的问题,反正每次请求后,内存都会被释放。
    PHP 的错误处理机制也很简单——如果出错就在页面上打印错误信息。想要关闭错误提示也同样简单。

  • 很多重量级的开源项目

    如 WordPress(博客), Typecho(博客), Drupal(CMS), MediaWiki(WIKI), DiscuzX(论坛) 等等,可以说想要不折腾地部署一个网站 PHP 就是最佳选择。

  • 经过了历史考验

    PHP 毕竟也算是老牌 Web 编程语言了,能踩的坑已经被前辈踩过了,大量的库可以重用,要招会 PHP 的开发人员也很容易,而 Node.js, Golang 等等新语言则会遇到技术储备,人才储备方面的问题。而 Python, Ruby 也不要高兴得太早——虽然你们很早就被发明出来了,但那时候还没多少人搞 Web 开发。

PS: 本人并不认为 PHP 是最好的 Web 编程语言,以上只是解释为什么有人认为 PHP 是最好的。

题叶
  • 17.3k

因为是个极容易引起编程语言之争的语言, 特意来吐槽的. 我可以罗列一些以前搜集的资料.
(全部的搜集入口在这里: https://github.com/coffee-js/languages/wiki)

我不写 PHP 所以不能从语言功能上分析到底好不好了.
按照编程语言的历史, Oreilly 上有文档做了整理: http://cdn.oreillystatic.com/news/graphics/prog_lang_poster.pdf
大致给人的感觉, PHP 是从 sh 和 Awk 这些 Shell 环境的脚本语言启发或者演化来的.
跟 Java 类似, 到后边成了流行语言, 有频繁的更新跟迭代,

当然世界上还不止这些语言, 除了没记录的, 从下面的列表里还能找到很多:
http://en.wikipedia.org/wiki/Lists_of_programming_languages
http://rosettacode.org/wiki/Category:Programming_Languages
这么多编程语言, 很难看出 PHP 在什么位置, 还不如从上边的历史看出来多.

换一个角度我们去看编程范式: http://en.wikipedia.org/wiki/Programming_paradigm
平常网上讨论比较容易遇到的, 比如面向对象, 函数式, 声明式, 事件驱动...
PHP 支持哪些编程范式? 通过这些支持获得了什么好处?

再看看编程语言社区建设如何, 开发者质量, 模块分享的工具, 社区文档质量如何,
线下的活动如何, 有哪些著名的应用, 哪些大公司采到了该语言而且出于什么考虑,
出现在其他编程语言当中的新技术是否能引进? 语言调试工具如何?

然后对比一下其他语言当中标新立异的功能, PHP 对比如何?
比如某个语言说自己是纯函数天生支持并行, 比如某个语言随手写 Macro 改变自身语法,
比如某语言宣称自己语法非常漂亮, 比如某语言说自己可以直接调用 Java 社区现成的类库,
比如某语言性能在动态语言当中数一数二, 比如某语言说自己非常适合科学计算,
比如某语言说自己编译非常快, 比如某语言只的正则非常强大...

世界上已经有这么多语言了, PHP 在当中是在什么位置?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏