Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby与Python:哪一个更容易跟踪不同的语言版本?_Python_Ruby - Fatal编程技术网

Ruby与Python:哪一个更容易跟踪不同的语言版本?

Ruby与Python:哪一个更容易跟踪不同的语言版本?,python,ruby,Python,Ruby,我听说较新版本的Python(3.x?)存在一些问题,导致采用速度较慢。这是真的吗?如果是的话,当不同的人使用不同版本的语言时,这是一个问题吗?哪种版本的Python应用最广泛 Ruby是否也有类似的问题,或者大多数人是否切换到1.9 请注意,这根本不是一般的“对”问题,而是关于这个特定问题的问题。就Python而言,大多数人都在使用最新版本的2系列。对于混合版本(至少以前是这样),Python通常是一场噩梦,但解决方案只是用它所依赖的整个Python环境来交付软件。问题不在于Python 3.

我听说较新版本的Python(3.x?)存在一些问题,导致采用速度较慢。这是真的吗?如果是的话,当不同的人使用不同版本的语言时,这是一个问题吗?哪种版本的Python应用最广泛

Ruby是否也有类似的问题,或者大多数人是否切换到1.9


请注意,这根本不是一般的“对”问题,而是关于这个特定问题的问题。

就Python而言,大多数人都在使用最新版本的2系列。对于混合版本(至少以前是这样),Python通常是一场噩梦,但解决方案只是用它所依赖的整个Python环境来交付软件。

问题不在于Python 3.x,而在于缺乏从2.x到3.x的合理转换路径,这导致大多数人都停留在2.x上


这是一个严重的错误,但也是一个孤立的错误:除此之外,Python更新非常简单。

让我想起了我为Python 1.5.2编写代码的日子,因为2.x的部署不够深入,无法使用任何更新的功能——这是客户和优秀功能之间的选择

在我看来,Ruby用户更习惯于同时安装多个版本,以实现其软件中不同级别的支持——有些需要新的1.9功能,有些则无法在较新的世界中使用
rvm
使管理多个代码库、解释器和模块变得更加容易

在我看来,Python用户更依赖于发行版提供的Python安装,在运行不同版本时灵活性较低。(当然,在
/usr/local
中下载和编译一个新版本不是不可能的,甚至不是很难,但是有多少人可以呢?

从Python的wiki上:

简短版本:Python2.x是 目前,Python3.x是最闪亮的 新事物

Python3.x与2.x并非100%向后不兼容。这只是在某些方面,但他们碰巧是相当大的问候。在Python3中做出的决定是试图修复过去的一些核心架构错误,可以追溯到Python1.x。尽管如此,几乎所有的语法更改都已被移植到Python2.6.x及更高版本中


这并不是一个全面的列表,但Python 3中有几个关键的区别:

  • 打印
    现在是一项功能,而不是 陈述这允许
    print()
    打印 可以扩展并接受参数。 您可以在Python2.6.x中访问它 与来自未来的
    __
    导入打印功能
    。在Python 2.7中,这两种方法都受支持(语句:
    print'hi'
    ,函数:
    print'hi')
  • 异常处理现在需要
    除了Foo as Foo_err之外
    语法。(修订) 前者
    除了Foo,Foo_err
    语法 如果您 正在捕获多个异常 因为逗号分隔 Python 2.6+接受这两种格式
  • 所有类都由继承自
    对象
    默认情况下,不再需要
    要显式地子类化
    对象
    创建新类时。看见 (Python的)
采用Python3.x的一个核心问题是由于这些类型的更改,这些更改是主要特性。许多生产环境仍然在Python2上运行,除非我们在Python3中有广泛的第三方库支持,否则采用速度将会很慢

如果您刚刚开始使用Python,请尝试最新的可用版本。目前是3.2版。如果您发现没有获得所需的库支持,请退回到Python2.7.2,并敦促库维护人员移植到Python3


Python2.7将存在很长一段时间,是Python2.x的最后一个主要版本。这给了我们足够的时间来习惯Python 3,因为默认情况下已经包含了所有主要的语法更改。

如果您的操作系统是linux,您可能已经安装了Python(我的是Python版本2.6.5)。由于linux(在我的例子中是Ubuntu)实际上使用Python,而且Python 3.2不向后兼容,所以我最好不要删除2.6版。但是,我可以安装python3.2.6并使用“python3”调用它


Ruby通常不是标准linux的一部分,操作系统也不依赖它,因此系统管理员和用户更倾向于升级,尽管Ruby 1.9也不向后兼容。使用rvm(),您不必等待操作系统包管理器,并且可以轻松地切换版本

为什么人们不切换到3?编程语言总是这样,人们采用更新的迭代需要时间吗?3对语言进行了一些较大的更改,因此需要将库移植到它(即,它与大多数代码库不向后兼容)。对于想做实际工作的人来说,这意味着使用2。这意味着,任何人都没有太大的压力来移植他们的库。有时候,这只是意味着没有人真正关心新的语言版本,而且它不会起飞。举个例子:Perl6.Stuff正在被移植到Python3,只是速度不快。这正是你所期望的。但是像numpy这样的核心库已经做到了。当然,但是会有人移植其他库吗?只有时间能证明一切。用应用程序打包Python?非常糟糕的建议。任何人都不需要20个单独的Python安装。Python 3.x的唯一问题是它与Python 2.x不向后兼容,人们不喜欢更新代码并重新学习该语言。Ruby 1.9.x的采用似乎正在加快,而Python 3.x仍然没有得到广泛使用。一个很好的指标就是图书馆支持。例如,Django不支持Python3.x,而Rails在Ruby 1.9.x上运行。我不同意让它向后兼容是一个严重的错误。如果你是