2009年8月31日星期一

Python

Python

----------------------
LinFeiYu 2009,08,29

Python 目前是我的工作程序语言。这个程序语言以简洁、优雅著称。
使用 Python 是让人愉快的。好像技术界的很多大牛都给了 Python 很高的评价。
然而,最近我却有些不大开心。
首先是版本的兼容问题。虽然 Python 2.x 大部分时候是向后兼容的,但是还是有一些地方让人比较难受。特别是新的版本中新增或者改进的功能在旧版本中几乎完全不能使用。而 Python 3.x 更是一下子去掉了向后兼容,大家几乎都要从头开始!当很多应用还停留在 Python 2.x ,甚至是 Python 2.4 的时候,Python 3.1 在 Python 3.0 刚发布不久之后就马上发布了。这个速度也太快了!
另外一个是性能问题。最近看《Unix编程艺术》,其中提到,不仅相对与编译语言,而且相对于其他脚本语言,Python 也是效率低下、速度缓慢的。
现在的 *nix 系统管理程序越来越多的看到 Python 的身影。这似乎是一件很鼓舞人心的事情。然而几个事情还是让我有些担忧。有一次我把 Ubuntu Server 从 6.06 升级到 8.04 ,中间出现了一个小问题,这个小问题直接导致了这个系统完全无法使用。这个问题是这样的:Debian/Ubuntu 最强劲的包管理系统 apt 是基于 Python 语言的,升级过程中,与 apt 相关的某个 python 脚本可能由于文件系统的逻辑错误导致无法使用,结果升级安装在这里失败了,整个安装升级到此为止。而此时我比较傻,重启了系统,结果进入不了系统,提示整个系统处于 Read Only 状态什么乱七八糟的。使用 single 模式进入最基本的系统还是提示缺失某些重要的命令,而这命令就跟 apt 有关。修复了 apt 软件包之后把整个系统重新升级,重启之后就完全恢复正常了。然而却浪费了我几个小时的时间。当然这似乎不能怪罪于 Python 了。然而这么重要的系统功能依赖于 Python 这样的脚本语言,我总觉得不大合适。
相信很多人都很不乐意于使用 Java 开发的应用程序,然而现在 Linux 下的很多应用程序使用的是 Python 语言。我已经看到过很多的问题,都是 Python 脚本引起的。比如 Fedora 的安装程序 Anaxxx 在分区阶段偶尔会出现一些问题,这些问题从出错的提示看都是 Python 脚本。Magic Linux 使用的 smart 程序是基于 Python 开发的,使用中也出现一些奇怪的问题。我的 Arch Linux 使用 wicd 程序管理网络,按照 Arch Linux 官方建议的设置,现在和 dbus 的通讯还是存在权限的问题,这个 wicd 也是用 Python 开发的。 PyQt 、 PyGTK 、 wxPython 等被广泛应用与 Linux 发行版的桌面程序开发,然而他们的运行缓慢,效率低下!也许 Python 真的非常适合于快速开发,然而性能问题不能不面对啊!

Python 现在是很多 Linux 发行版的一个必须的系统级脚本语言,就像 Perl 一样。这也不见得是一件好事情。Fedora 11 默认的 Python 安装了 Paste 、 setuptools 、 simplejson 等 Python 包,然而某些 Python 包,比如 Paste 和 setuptools 似乎被削去了很多东西,导致开发中出现问题,结果只能把这些包卸载了,重新从各自的源码安装。而由于 Python 版本升级的兼容问题,发行版面临另外一个问题,就是一旦 Python 版本需要升级,其他很多系统相关的包都需要重新调整编译等。一个很典型的例子是 Magic Linux ,他们在 2.0/2.1 版本中均使用 Python 2.4 版本。然而,当想将 Python 2.4 升级到 Python 2.5 的时候,他们发现好多好多的依赖,这个依赖太多了,所以他们打算等待下一个发布版本 2.5 再升级到 Python 2.5 。然而当他们开始发布 2.5 的 alpha 版本的时候他们已经将 Python 2.4 升级到 Python 2.6 了,而 Python 2.5 不见踪影。

相信我们都对“依赖”感到不爽,从 Windows 的 dll hell 到 Linux 发行版中各种软件包的依赖问题,简直不能忍受!然而,这个问题,的确很难解决啊!

想想 C/C++ 非常的稳定,根本不在乎新技术如何迅猛的发展,多年过后你还是可以用回你原来的技术创建非常高效的应用程序!

不久前,google 宣布了一项计划,将为 Python 提速。这是一件非常让人欣喜的事情。然而几个月过去了,我们没有看到 google 这项计划的半点进展。等待是痛苦的。。。

没有评论:

发表评论