历史总是相似?- Python & PHP

2017-04-10 07:18:49 +08:00
 deepreader

先前 PHP 性能不太行, Facebook 搞出了 HipHop PHP (HPHPc), transpile 到 C++代码。最终演化成 Hack & HHVM 。

现在 Python 性能也不太行( CPU-bound ),科学计算的工程师们搞出了 Cython , transpile 到 C/C++代码。不知道最后会演化到什么?当然现在 Cython 还是依赖 Python interpreter memory management and GIL 。

历史总是相似?对于 CPU-bound 的运算,果然众多动态语言最后都会演变成静态语言, C/C++成为最后归宿?

个人想法而已,我什么都不确定。。。

7470 次点击
所在节点    程序员
42 条回复
janxin
2017-04-10 07:58:04 +08:00
cython 历史比 hhvm 久吧…而且也不是为了科学运算
cchange
2017-04-10 08:01:48 +08:00
C++能发挥硬件性能是真的
但实在是太难驾驭了 不是说 c 用不好会砸到自己的脚 C++用不好能废掉整个一条腿
j5shi
2017-04-10 08:04:19 +08:00
首先, Cython 不是什么科学分析师搞出来的, python 的最早是用 C 实现的,为了区分 Jython , IronPython 和 PyPy ,所以叫 Cython 。其次 Python 的最终归宿不会是静态语言,否则很多动态语言的特性都会丢失,要不然也没必要发明 Python 了,你理解的静态只是底层的实现语言而已。
XIVN1987
2017-04-10 08:13:06 +08:00
@j5shi
你把 Cython 和 CPython 搞混了
j5shi
2017-04-10 08:16:13 +08:00
@XIVN1987 不好意思是的
jianmingforpc
2017-04-10 08:17:52 +08:00
cython 是不是被放弃交给社区维护那个?
levn
2017-04-10 08:25:50 +08:00
处理不确定性也是刚需
BingoXuan
2017-04-10 08:34:41 +08:00
python 一开始就是用 c 写出来的。其实性能不够,大多机器来凑。
pyufftj
2017-04-10 08:52:55 +08:00
@BingoXuan 而且大数情况下性能劣势根本显现不出来,瓶颈都在网络还有 IO 上。
clino
2017-04-10 08:53:43 +08:00
python 的运行效率一直都是比较低的
这也说明 py 的使用范围扩展到了 cpu 密集型的领域,或者这些领域的人用静态语言已经用烦了
xyjtou
2017-04-10 08:54:49 +08:00
据说 Python 转成 pypy 来运行,平均提升的效率也只有 2~4 倍。对于绝大多数场景,扩容 2~4 倍硬件就能解决的事情,都没必要在转码了。

遇到用超级计算机都还要考虑到性能优化的活,那还是不要用 Python 写吧。
cy18
2017-04-10 09:02:20 +08:00
PHP 这块不是很清楚, Python 最开始的定位就有点胶水语言的意思,其优点就是容易跟 C 集成, Python 很多模块都是用 C 写的。 Cython 只是进一步简化了这个过程。
lalalakakaka
2017-04-10 09:14:10 +08:00
python 1991~
php 1995~

明明 python 资格更老来着,为什么需要借鉴 php 的历史?
Zzzzzzzzz
2017-04-10 09:17:12 +08:00
Cython 衍生自 Pyrex, 后者流行时 FB 还没开张呢....
rogerchen
2017-04-10 09:19:08 +08:00
真正要性能的时候 python 就是个超级 wrapper 罢了。
deepreader
2017-04-10 11:54:57 +08:00
@janxin 好像是 Cython 历史更早。现在主要是为了科学吧?最早是来拿干什么呢。

@cchange C/C++难度不是一般,但是用到后面的大牛们都回归 C/C++, Google, Facebook 大面积的 C/C++。

@levn 好逻辑!

@BingoXuan 虽然 C 写的,但是比如 python a + b 因为 dynamic type 就内含了太多 Python 内部 C 的 operations 了,就慢了。

@pyufftj 主要还是说 CPU-bound. IO-bound py3.6 coroutines 挺好用的,还有 uvloop 。

@clino 好逻辑!

@xyjtou Cython 主要是写 C-extenion ,并不是用来 replace PyPy

@cy18 同意。

@lalalakakaka 哈哈,可能是 php 借鉴 python 吧。

@Zzzzzzzzz 好像是 Pyrex 资历要老点., 2002.

@rogerchen 巨 Wrapper.
wangxn
2017-04-10 12:07:21 +08:00
Python 做个胶水语言也挺好的。内在的弱点使得它很难上 JIT 。
di94sh
2017-04-10 12:15:40 +08:00
io 密集型 用 python
deepreader
2017-04-10 12:24:50 +08:00
@wangxn 动态语言的病根

@di94sh 是呀。但是各种科学计算还是 CPU-bound 的。
sagaxu
2017-04-10 13:34:43 +08:00
@wangxn 是 CPython 的 JIT 不好做, pypy 早就做了, Jython 也是天生带 JIT

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/353694

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX