本文作者作为一名从事PHP开发11年的资深开发者,却放弃了PHP而改用Python。借助本文,作者与其说是解释了他做出这种选择的原因,不如说是他对 PHP和Python两种语言的性能进行了比较。以下是作者的原文翻译:

我之所以放弃PHP,原因首先是语言。PHP实际上不是一种语言,而是一种巨大的插件结构,以一种高层的形式来展示低层的库。而大部分开发者使用的 语言实际上是对C功能 (curl, mysql, gd, etc.)的包装,通常情况下它们的库展示得很简单。因而这导致了PHP的API不一致。

PHP语言的第二个问题是语言的管理问题。PHP语言实际上是由委员会来设计的,而且没有人来制定任何共识性的标准。PEAR有自己的标准,PHP有自己的标准,这导致SPL classes更具Java风格,而PEAR却截然不同。

从事PHP开发11年来,我认识了很多PHP领域的专家级开发者,它们对PHP也有很多看法。除了上文提到的委员会问题以及标准混乱问题之外,由于PHP的使用范围非常广,向后的不兼容对代码造成了很大的破坏。

还要提到的一点是PHP缺乏很多现代语言的特性。现在再来说说Python:

Python语言的创建方法几乎与PHP的完全相反。首先,Python是由Benevolent Dictator和Guido van Rossum领导的,语言的开发由单一的人员主导,因此它的开发、管理以及长期运营会保持很好的连续性。Guido和Python的核心开发者通过PEP 创建标准,而且通过公共接口展示标准是如何创建的。而且,Guido如果想到的语言特性不够好,也不会出现在语言层中(如没有++运算符,而且比较符中没 有分配)。

延续性的特点也延伸到了整个Python社区,所以你很难发现不同项目中的Python截然不同。

我最喜欢的Python的一个特点就是它的清晰。当打开Python中的一个文件的时候,我会清楚地知道里面大概有什么样子的代码,联想到很多次我被PHP的这一点搞得焦头烂额,我觉得这个特性非常有用。

总之,Python的系统级特性非常不错。

Python另外一个很棒的特性是直白性。需要namespace(命名空间)?文件的名字就是命名空间;需要模块?只需要用一个__init__.py文件代替;需要重命名功能?只需要new_func = old_func。

python与php性能比较_PHP和Python性能比较:放弃PHP改用Python相关推荐

  1. php和python对比-PHP和Python性能比较:放弃PHP改用Python

    PHP和Python性能比较:放弃PHP改用Python 来源:程序员人生 发布时间:2014-05-27 16:31:25 阅读次数:1367次 本文作者作为一名从事PHP开发11年的资深开发者,却 ...

  2. php和python-PHP和Python性能比较:放弃PHP改用Python

    PHP和Python性能比较:放弃PHP改用Python 来源:程序员人生 发布时间:2014-05-27 16:31:25 阅读次数:1364次 本文作者作为一名从事PHP开发11年的资深开发者,却 ...

  3. python可以代替php吗_PHP资深开发者谈:缘何放弃PHP改用Python

    [51CTO编者按]通览全文,作者是想通过两种语言在性能方面的比较,从而解释他为何选择放弃PHP.但我们只看到了PHP的缺点与Python的优点,这样比较是不客观的.其实不光编程语言,任何事物都有它的 ...

  4. go语言笔记——还是大爱的我的python,开发效果高,tornado的性能也很不错

    Go 自带的工具集主要使用脚本和 Go 语言自身编写的,目前版本的 Go 实现了以下三个工具: go install 是安装 Go 包的工具,类似 Ruby 中的 rubygems.主要用于安装非标准 ...

  5. python数据结构_(列表)大O性能_学习笔记(2)

    1.列表 1)一般列表操作命令的复杂度(准确来说是函数的复杂度) 2)时间计算(timeit模块和Timer对象) 要捕获我们的每个函数执行所需的时间,我们将使用 Python 的 timeit 模块 ...

  6. Python垃圾回收(gc)拖累了程序执行性能?

    起因 前段时间,在做文本处理的实验时,需要预加载大量的原始数据(100W),在Python中使用的字典(dict)类型负责保存这些数据,很快就开发完成 了一个Demo版,然而程序执行的效率不是那么令人 ...

  7. python列表去重函数_对python中两种列表元素去重函数性能的比较方法

    测试函数: 第一种:list的set函数 第二种:{}.fromkeys().keys() 测试代码: #!/usr/bin/python #-*- coding:utf-8 -*- import t ...

  8. python后台开发性能问题_《Python高性能编程》——2.14 确保性能分析成功的策略-阿里云开发者社区...

    本节书摘来自异步社区<Python高性能编程>一书中的第2章,第2.14节,作者[美] 戈雷利克 (Micha Gorelick),胡世杰,徐旭彬 译,更多章节内容可以访问云栖社区&quo ...

  9. python函数测试_python绘制评估优化算法性能的测试函数

    测试函数主要是用来评估优化算法特性的,这里我用python3绘制了部分测试函数的图像.具体的测试函数可以结合维基百科来了解.想要显示某个测试函数的图片把代码结尾对应的注释去掉即可,具体代码如下: im ...

最新文章

  1. 注意,免费的 CentOS 落幕,将于本月底终止维护!
  2. 淘宝API商家自用型应用程序全部源代码和详细的帮助文档(1元有偿提供)
  3. “睡服”面试官系列第五篇之proxy(建议收藏学习)
  4. React中refs的理解
  5. A New Beginning
  6. jar httpclient 少包,此处 区别 common-http包
  7. python基础编程语法-Python基础语法学习笔记
  8. ConceptDraw Office for mac(跨平台图表办公程序)
  9. js 从一个json拼接成另一个json,并做json数据分页table展示
  10. java如何向服务器传文件,详解Java向服务端发送文件的方法
  11. 第四章 ARMA模型的特性
  12. css音乐播放器插件,jQuery MPlayer音乐播放器插件
  13. bc547可以用8050代换吗_常用三极管代换型号
  14. 关于补天SRC新手入门详细介绍(通用漏洞篇)
  15. oem是代工还是贴牌_OEM与ODM两者之间有什么区别 如何区分代工生产和商标授权...
  16. flv文件转换成mp4格式的方法
  17. php对视频分割,如何把一个视频无损分割成多个视频片段(最好是质量和格式无变化)...
  18. 实现正方形图片dct的c++代码(使用AXAT)
  19. 出现单实例模式毁坏Destroying singletons
  20. MySQL连接、SSL加密与密码插件

热门文章

  1. 如何让任何小程序都支持在windows系统中打开?
  2. char几个字节java_java中char占几个字节?
  3. 2020-09-23~? learning
  4. [从Minecraft学游戏开发]前置知识 - 数学
  5. 分布式服务框架Dubbo集成Nacos框架实现注册中心
  6. html网页代码实现找零钱,算法训练 找零钱
  7. 大话二进制,八进制,十进制,十六进制之间的转换
  8. js向上向下取整_JS之向上取整、向下取整、四舍五入等
  9. js取整数,取余,向上向下取整
  10. HAL库版FreeRTOS(上)