Python中整合其他语言

Integrating Python With Other Languages这篇文章来自python wiki, 介绍了在python中调用以下语言的方法:

  1. C/C++
  2. Fortran
  3. Lisp
  4. Prolog
  5. Java
  6. C#/.NET
  7. Perl
  8. R
  9. Objective-C
  10. Tcl
  11. Lua
  12. OCaml
  13. Eiffel and Haskell
  14. Other (applications)
  15. Other (standards and protocols)

———下文转自编程随想的博客—————-

很多程序员喜欢”在一棵树上吊死”——始终只用一种编程语言。俺非常反对这种倾向。要想成为一个优秀的程序员,有必要掌握不同风格的编程语言。编程语言多样化的好处在于,你可以利用不同语言的特色,以取长补短。
  而 Python 在跨语言整合方面,堪称佼佼者——你很难找到哪个语言,能像 Python 这样,跟如此多的语言进行整合。
  下面简单举几个例子:

◇跟 C/C++ 整合

  咱们常用的 Python 运行环境也称为 CPython,是用 C 语言写的。所以 Python 天生就具有跟 C/C++ 整合的能力。而且这种整合是双向的——也就是说,既可以在 Python 模块调用 C/C++ 模块,也可以在 C/C++ 模块调用 Python 模块。
  Python 跟 C/C++ 整合,可以有如下三个优点:

  1. 丰富的第三方资源
  因为 C/C++ 具有非常丰富的第三方模块(包括开源和闭源),其丰富程度超过 Java。所以 Python 可以利用这种整合能力,直接调用各种 C/C++ 的模块,来丰富自己的功能。
  举个例子
  比如 cURL 是一个C语言编写的应用层网络工具,功能非常强。而 Python 可以通过整合 cURL 直接获得 cURL 的强大功能。

  2. 性能的提升
  除了第三方模块丰富,C/C++ 开发的模块还有一个优点——性能好。所以,Python 整合了 C/C++ 模块之后,还能趁机获得性能提升。
  举个例子
  比如你要写一个 3D 游戏,其中的 3D 渲染引擎是性能瓶颈。那么你可以用 Python 整合一个 C/C++ 的 3D 渲染引擎。而 Python 只用来实现跟游戏高层应用逻辑相关的部分。这样可以一举两得:性能不差,代码不多。
  顺便说一下:如今有不少游戏都走这个开发思路——底层引擎用重型的 C或C++ 实现,以确保高性能;而高层的业务逻辑则用轻型的脚本语言开发。

  3. 跟操作系统整合
  地球上所有的操作系统,只要是有点名气的,内核都是 C 语言写的;除了操作系统内核,大部分操作系统的运行库也都是 C/C++ 编写的。所以,Python 跟 C/C++ 整合,可以带来第三个好处——跟操作系统的整合。关于这点,待会儿俺还会专门聊。

◇跟 JVM(Java) 整合

  通过 Jython 这个开源项目,Python 可以无缝整合到 JVM 环境中。如此一来,Python 能直接调用所有 JVM 标准库(比如 JDBC)和第三方库(比如 Lucene),还可以跟各种 JVM 语言(比如:Java、Scale、Groovy、等)进行互操作。

◇跟 dotNet 整合

  通过 IronPython 这个开源项目,Python 可以无缝整合到 dotNet 环境中。如此一来,Python 能直接调用所有 dotNet 的标准库(比如 ADO.NET)和第三方库,还可以跟各种 dotNet 语言(比如:C#、F#、等)进行互操作。
  顺便说一下:Jython 跟 IronPython 貌似同一个作者,牛人啊!

Written by

说点什么

欢迎讨论

avatar

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  Subscribe  
提醒