注意:标题是故意挑衅的(让你点击它并想要关闭投票的问题),我不想看起来全神贯注。
我一直在阅读和听到越来越多关于PyPy的内容。这就像一个线性图。
为什么PyPy如此特别?据我所知,用语言编写的动态语言的实现并不是那么罕见,或者我没有得到什么?
有些人甚至称PyPy为“未来”[python],或者在此实现中看到某种深层潜力。这究竟是什么意思?
答案 0 :(得分:46)
答案 1 :(得分:22)
让我们这样看...... 假设您想要实现自己的动态语言,并希望快速实现。 你有两种选择:艰难的方式和pypy。
困难的方式意味着在c中编写解释器,然后在c中使用混合非常复杂的技术(例如方法jit,thread-jit,跟踪jit,多态内联缓存)来实现jit,循环不变运动等等...花了好几年的时间来调整它,如果你坚持不懈而且不放弃,你可能最终得到一个快速动态的语言实现。
或者,您可以使用pypy框架。 这意味着,用python而不是c编写解释器(实际上,它将是rpython,一个可以编译为c的更有限的python子集)。 一旦你编写了解释器,pypy就会自动生成一个免费的jit。 你基本上完成了。
听起来不错,是吗?
答案 2 :(得分:10)
关于PyPy的一个很酷的事情(除了快速编写RPython(Python语言的一个子集),所以基本上是自举的,它可以提供自动创建的JIT (及时编译器) )对于你在PyPy中编写的任何程序:这使得快速实现你自己的语言非常理想,并且速度非常快。
了解更多here
答案 3 :(得分:5)
更不用说他们最近刚刚在某些基准测试中超过了CPython的速度。我想,请看他们的博客。我无法从这里得到它:
答案 4 :(得分:4)
由于我们大多数人都同意编写Python比使用C语言更容易,因此使用Python编写的Python解释器(技术上是RPython)应该能够比CPython更容易修改并且错误更少。