compatibility of IronPython

IronPython 1.0 的发布,在邮件列表中引起了很多 争论 ,有的人担心 IronPython 会污染了 CPython 标准的纯洁,也有人希望 IronPython 的兴起会给 Python 社区注入新的力量。
而在我看来,这些争论归根到底,就是一个兼容性的问题。在 .net 程序员看来,它是 IronPython 和 .net 的兼容性,和其它 .net 程序的互操作性如何;而在 python 程序员看来,它就是 IronPython 和 CPython 的兼容性了,和 其它 python 程序互操作性如何。

在 IronPython 与 CPython 2.4.3 的兼容性问题上,有这么一份详细的比较文档 官网下载 啄木鸟下载 。其中除了众多细小的区别外,在我看来比较重要的几点有:

Some CPython built-in extension modules do not exist in IronPython:

_bisect

_codecs_hk

audioop

_multibytecodec

parser

array

msvcrt

_codecs_kr

_heapq

_codecs_jp

imageop

mmap

_subprocess

_codecs_tw

regex

 

zipimport

xxsubtype

_codecs_cn

md5

_codecs_iso2022

rgbimg

_csv

signal

_hotshot

sha

cmath

_symtable

_winreg

strop


The doctest module does not run in IronPython.
IronPython doesn’t support the select module.
IronPython has no os.system function.

看来库的问题还是最大的,而且 CPython 中除了标准库还要那么多第三方的“事实上"的标准库!况且 .net 本身有那么一个庞大的库资源(包括官方的、第三方的等等),也没有必要非得使用 CPython 的标准库了。

不管兼容问题如何,我都不同意所谓 IronPython 污染 Python 之类的说法。是说 IronPython 会让 本来的 python 程序员转向 IronPython 从而导致 Python 社区的分离吗?不管 IronPython 和 CPython 在语法上是如何的接近,让一个不了解 .net框架的 CPython 程序员转向 IronPython ,其难度怎么也算得上是学习半个语言了。因为这就是 .net ,.net框架 对多语言支持好,但实际上众多语言写出的 .net 程序都是一个模子里出来的。
所以 python 程序员的选择应该是很明确的:如果你需要在 .net框架下工作,那 IronPython 是你的不二选择,否则,就完全没有必要使用 IronPython 了,使用 CPython 还有个跨os平台的优势,何乐而不为呢。

至于 IronPython 和 .net 之间的问题应该不大,不是很清楚,也不想做评论。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值