欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Python 是否是下一个 PHP?为什么?

程序员文章站 2024-02-15 12:30:58
...
前几天和一个看好 Python 的 Rails 开发者聊天,他看好 Python 的原因就是 PHP 统治今天的网络应用开发。而 Python 很像下一个 PHP 。

回复内容:

python能,为什么node.js不能,为什么go不能 『下一个 PHP』如何定义?是指流行程度么?如果是的话,我觉得 Python 不会像 PHP 那样流行。根本原因在与部署难易程度。

PHP 从语言层面上讲几乎是一无是处,具体实现的质量也乏善可陈,但它胜在最要命的部署上:没有任何其他语言有像 PHP 一样适合大规模部署的方式。基本上装好 Apache/mod_php 之后,PHP 应用的部署就简化为了复制文件。即便是考虑到性能原因等采用 nginx/FastCGI 等替代方式,额外的工作也只是在于最初配置。一旦配置完成,之后的部署都是文件复制。服务器重启后通常会自动启动 apache/nginx,fastcgi manager 负责启动 php-cgi 进程等,而 PHP 应用基于文件的调用方式并不需要操心更多的维护。这对于如 Dreamhost 之类的平台来说至关重要:他们通常要一台服务器处理成千上万的低流量用户,而且这些用户没有 root 权限去运行其他进程。PHP 脚本的生命周期很短,没有常驻进程,每次调用之后就被终止,对于应用作者的要求更低,不用太多的考虑资源管理问题。

这和 Python 之流的部署有天壤之别:大部分 Python 的网络应用如 Django, Tornado 等都需要单独的常驻进程(Apache/mod_python 似乎是个杯具)。这些进程需要额外的维护工作以管理其启动、停止,也需要额外的监控进程处理意外退出后的重启。这需要用户对系统有更深入的了解。常驻进程需要占用系统内存,通常不可能在一台服务器上运行成百上千个应用,对于 Dreamhost 这样的服务提供商来说不适合用来处理诸如 WordPress 博客之类的简单应用。常驻进程也要求作者对系统资源的管理、垃圾回收机制等有更深入的了解以避免内存泄露、资源占用过度等问题。现在 Python 网络应用部署最简单的应该是 App Engine,采用了类似 PHP 的生命周期(请求处理 30 秒限制,超时被终止,无法运行常驻进程),极大简化了管理难度,但是国内无法访问…

所以从流行程度上讲,Python 不会超过 PHP,因为数量庞大的服务提供商无法用 Python 支撑现有的用户规模。但是这个流行程度对于创业公司、专业人士来说没有什么意义。很多核心的网络应用不适合用 PHP 的短暂请求处理机制实现(比如准实时 push 提醒、网页即时聊天等),而更加适合由常驻进程来处理。这些才是 Python,Ruby 等语言实现发挥其能量的地方。 Python就是Python,为什么要是下一个PHP? Python部署成问题?Python的Web应用只在虚拟主机里部署成问题,其它平台都好好的。

现在啥都缺,就不缺主机,谁还用廉价的虚拟主机? 我并不认为python可以代替php,至少目前来说还完全不可能。
原因如下:php仍然在与时俱进,同时phper和php相关程序的数量和质量仍在不断地扩大和提高。重要的一点既是,php仍然在不断维护和更新,语言各个方面在不断地提高和改善,在这个时代,被淘汰的,一直都是不与时俱进和反人类的产物 Python能干很多事情,比如数学计算、2D/3D图形处理,最近几年有很多有想法的人把Python用到科学研究、数学计算上,建立了很多科学工具、数学库,期望Python有朝一日能够像Matlab、Octave、SAGE、SciLab那样变成强大丰富的计算环境。而在Blender、GIMP等软件的背后,Python图形处理脚本已经在发挥越来越大的作用。如果你看过Blender基金会制作的三部开源动画影片,你甚至还能预期不远的未来,Python终将有一天能够进军好莱坞,成为数字电影制作的一种工具。 不同语言有不同的优势,各自擅长的领域也不同,就正如PHP对开发长时间机制的程序支持的就不是那么好,可以说就是不擅长,但是对WEB开发,快速敏捷的特别在PHP身上又体现得淋漓尽致。然而Python可以说更加强大,不单单可以做WEB开发,还可以支持开发后台数据监控,网页抓取等等长耗时应用,以及数据分析,数学计算等等高端应用。可以说各自有各自的优势,开发当中选择合适的语言就可以了,讨论谁替代谁,一点意义都没有。 apache不死,php不倒,就这么简单。 python的强大之处在于语言的简洁与优雅, 以及它强大的表达能力. hacker们愿意使用python来作为他们表达思维的方式.
在web开发上面, 正如上面Rio所言, python部署成问题, 但是对于商业网站而言, 自己处理一台vps不成问题. 而python的通用性, 能保证完成各种非常规的应用.
简单地说, 如果你只是需要web1.0的内容展示网站, 考虑php, web2.0, 可以考虑python, 以及RoR. 就python这个版本迭代速度和向前兼容性,怎么可能。。。
相关标签: Python PHP Rails

上一篇: Ubuntu 12.04下安装MySQL

下一篇: