今天,我的一个好朋友问我最新的Go语言和Cython之间的主要区别是什么,后者是Python的一组C扩展。我对Python的了解不多,有人可以告诉我为什么Go比Cython更好/更差吗?
Cython并不是传统意义上的语言。它是构建Python扩展程序的预处理器,该扩展程序采用类似Python的语法(实际上,他们力求完全兼容Python)并生成C代码(使用Python C API)。这样做可以包含一些特殊情况的优化,但是真正的好处是,当您添加Cython特定的静态类型信息时,该信息已合并到C代码中,从而绕开了这些操作的Python运行时并提高了速度。
Go是一种编译的编程语言。Go可以做的第一件事是生成一个不包含Python运行时的可执行文件/启动Python解释器- 这在Cython中是不可能的。(在技术上可能并非不可能- 但是,如果您不使用Python,则实际上没有必要使用Cython)。由于Cython仅产生C语言,因此您在注释中的大多数问题实际上并不适用- 您可以使用任何C语言调试器(尽管Python扩展这一事实使事情变得更加复杂)。