Python免费开源,可移植到多种操作系统,只要避免使用依赖于特定操作系统的特性,Python程序无需修改就可以在各种平台上面运行,这点大大的提高了Python操作语言的全面应用性。
相比之下,Python提供的解决方案就少多了。Python语言的分发版中确实包含了一些扩展的类库,越来越多的程序员也在致力于开发等价PHP的Python工具。但是考虑到市场的时间紧迫性,而且你所面临的问题已经有现成的PHP解决方案可以对付,那么PHP自然会成为你的首选。
大多数开发经理几乎很少了解Python。在现代IT领域的高压力环境下,项目管理人员缺乏对Python及其工具的了解、缺乏其软件开发方面的知识自然成为Python获得接受的死穴。
毕竟,CIO或者开发主管受到最终胜利完成开发任务的沉重压力。在可能的收益却缺乏具体和诱人的证据这一现实条件下,大多数开发经理宁肯选择他们知道的东西。所以很少有人了解Python操作语言也就不奇怪了。
相比现有的成熟技术,比如ODBC和JDBC,Python的数据库访问层看起来就过于原始了。虽然这一方面也在发生变化。但是,开发部门需要平滑地接合现有的复杂遗留数据,同时需要快速的SQL数据库访问。
所有这一些使其在短时期内难以对Python表现出什么太大的兴趣。 不过,Python在这一领域发展的也很快,在半年左右的时间里,Python完全可能在其中踏上一只脚, 相比其对手语言。
比如Perl、Java,在某种程度上再算上PHP,Python确实深受文档缺乏之苦,Python没有广泛、易于获得的文档和图书。市面上冠以PHP标题的图书数量几乎是Python的两倍多;而Prel就更多了,它有400多种呢!
Python的在线文档 倒还组织得比较好,但是这些文档几乎全是些参考资料。幸而Python相当容易的学习曲线减轻了对图书资料的过多需要。 给Python应用程序创建图形用户界面未必复杂。Python分发版本随带的Tk就是Python开发人员最常用的工具。但是Tk就缺乏可访问、易用的GUI工具。
刚启动的PythonCard项目目前虽然还处于原型阶段,但可能在将来填补这一鸿沟。boa-constructor这种产品已经吸引了某些Python程序员,但是用它来创建全功能的IDE确实太复杂了。
相比GUI工具的缺乏更要命的是Python操作语言几乎没有支持团队开发的协议工具。 Java在这些工具领域可谓相当丰富,至少和C++可比。在企业软件开发市场上,这一缺陷简直可视为致命的要害。没有这类工具要让很多程序员共同开发同一项目几乎是不可能的。
Python操作语言利用其模块化和命名空间分析等特性减轻了这一方面的需求,这些特性可以让多个程序员开发项目时不可能发生代码冲突的情况。但是,这同样改变不了其协同性能缺乏的严重性。
通常认为,Python是一种解释性的语言,但是这种说法是不正确的,实际上,Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine来执行这些编译好的byte code。
这种机制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。
或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。基于C的Python编译出的字节码文件,通常是.pyc格式。在实际开发中,python常被昵称为胶水语言,这不是说他会把你的手指粘住。
而是说他能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C++重写。
小结
说也说了做也做了,是否在企业中尝试或接受Python仍然是一个复杂的问题,具体问题具体分析。咱们把各种争论先放一边,至少可以得到下面的一些共识:
如果你已经拥有大量的PHP代码或者PHP应用程序,那么迁移到Python不可行。
◆如果你的Java代码基础雄厚但你需要大量的小型应用程序、小程序和代码接口,那么Python/Jython可能会为你节约大量开发时间。
◆如果你正好手下有一到两个程序员工作比较清闲,那么我建议你不妨让他们研究下Python看能不能在将来派上用场。
【编辑推荐】