转向Python的PHP开发者,体验是否更好?

21 投票
8 回答
9905 浏览
提问于 2025-04-16 01:44

我打算转到Python编程,想问几个问题:

  1. 你觉得用Python编程更有趣吗?
  2. 用Python编程的效率和用PHP时一样吗?
  3. 是什么原因让你转向Python的?
  4. 你还会再用PHP做项目吗?如果会,为什么?

你的回答对我们这些想要更多选择的PHP开发者来说真的很有帮助 :)

提前谢谢你!

8 个回答

3

我自己开发了一个私人的社交网站,用户超过100个。用Python来制作和运行这个网站真是太棒了。

  1. 你觉得用Python编程更有乐趣吗?

绝对是的。

  1. 用Python编程的效率和用PHP一样吗?

大部分情况下是的。对我来说,Python的编程风格要快得多,也简单得多。不过,有时候Python在自带的库和文档方面不如PHP那么丰富。(不过在这方面,PHP确实是无与伦比的。)此外,在Apache上运行Python需要稍微多花点功夫。

  1. 是什么让你选择了Python?

因为管理代码更简单,开发速度更快(好的开发环境很重要,我用的是WingIDE来写Python),而且这也能提升我在非网页项目中使用Python的技能。

  1. 你会再用PHP做项目吗?如果会,为什么?

也许会,如果我在做一个大规模的专业项目。因为PHP在网络上非常普遍,找一个替代的PHP程序员对公司来说会容易得多。

4

我会尽量用简单的方式回答你的问题:

  1. 你觉得用Python更有乐趣吗?

我真的很喜欢Python的简洁性,它的模块命名方式也很直观,这让我在阅读和调试别人代码时特别方便。

我还喜欢Python的一些技巧,比如用一行代码就能做出很优雅的功能,比如列表推导式和itertools库。

我通常用mod_wsgi来开发我的应用,刚开始写线程安全的网页应用时有点难,但最终觉得非常值得。

我发现用Python处理Unicode字符要轻松得多,尤其是在Python 3中。

  1. 你用Python的效率和用PHP时一样吗?

对于简单的网站,Python的设置和使用可能没有那么有趣。我觉得PHP有个不错的特点就是可以在同一个文件中混合PHP和HTML,而这个在Python中就不太方便。虽然Python也有很多好用的模板语言可以做到这一点,但需要先安装。

  1. 是什么让你转向Python的?

我对PHP的一些小细节感到很沮丧,比如奇怪的整数和字符串转换等。我还觉得PHP变得越来越臃肿,很多方法的命名也不一致。尽管我记住了很多PHP库的内容,但我还是经常需要查阅PHP的文档。

  1. 你会再用PHP做项目吗?如果会,为什么?

我会再开发一个PHP项目,它有很多不错的功能和一个很棒的社区。而且我对PHP也有很多经验。我更喜欢用Python,但如果客户想用PHP,我也不会强迫他们用不想要的东西。

19

我之前做了大约五年的PHP开发,去年几乎完全转向了Python。这个经历大部分是积极的;我会回答你的问题,同时也会列出一些我遇到的小问题。

  1. 绝对是的。我不断发现Python中有一些非常强大的功能和表达式,可以用少量的代码完成很多事情(而且比Perl更容易读懂)。
  2. 生产力提高了很多。这可能是因为我的风格,但Python的函数式编程工具、生成器表达式、列表推导等,让我用更少的代码和时间完成任务,效果也更好。
  3. 我有一个需要强大统计功能的分析项目,所以我选择了Python和numpy。后来我发现了Turbogears,喜欢上了它的语法。最终我发现了协程和协作式多任务处理,这让我再也回不去了。我使用bottlegeventgunicorn,可以快速高效地开发出轻量、快速、可扩展的网页应用。
  4. 如果可以的话,我不想再用PHP。PHP那种冗长的“每个东西都是一个长名字的函数调用”的语法现在让我看着很费劲。我觉得优化起来也很麻烦(每次加载页面都要重新解释源代码,使用默认配置)。

这里有一些需要注意的小问题:

  1. 对于便宜的、流量不大的网站,找到一个好的Python环境的网络主机会比较困难。
  2. 在我看来,Apache并不是Python的典型设置。Python的网页应用通常是作为守护进程运行,前面会有一个反向代理的网络服务器(nginx非常常见)。很多公司环境对像nginx这样的新技术持保留态度。把你的网页应用视为守护进程也需要一些调整,刚开始时让你的守护进程正常工作可能会有些困难。
  3. 如果你使用mysql,切换的时候会有一些麻烦。没有一个与PHP风格的mysql查询高度兼容的Python mysql库。例如,大多数库不使用简单的“?”语法来进行参数化查询,所以你不能直接复制你的查询(你必须使用printf风格的“%s”等等)。而且,你还必须选择并安装一个mysql库,这比PHP多了一步。这对我来说现在已经不成问题了,因为我现在根本不再使用mysql了。

这是一个广泛的话题,还有很多可以说的,但我希望这些信息对你有帮助。

撰写回答