- 主题:python提速这事情还有下文吗?
python 本身很难。但是可以弄出新的编程语言,专用于提速 python. 类似于 cython
我说说我的想法,看看你们资深用 python 的觉得有没有意义:
我正在弄一个 python 语法的静态编译语言。披着 python 语法是什么意思呢,就是这门语言的源代码直接可以在 python 解释器里面运行,完全符合 python 的语言规范。不过反过来就不行了,python 的代码不一定在这个新的语言里面运行。
这思路跟 cython 差不多。但 cython 语法是 python 语法的超集。学起来很难。而我打算弄的新语言,语法是 python 的子集。
def add(x: int, y: int) -> int:
return x + y
用 cython 编译,以上会编译成两个 PyLong 的相加,调用 PyLong 的 __add__ 方法,但是在新语言里面,完全可以直接编译成两个 int64_t 的相加。
需要支持容器:
def sum(l: list[int]) -> int:
r = 0
for i in l:
r += i
return r
对象采用引用计数管理,没有 gc
def update(d: dict[str, int]):
d["key"] = 2
碰到类型不定的情况:
def add(x, y):
return x + y
此时的编译结果和 cython 一样,调用 PyObject x 的 __add__() 方法。
这个语言还可以脱离 python 独立,变成一个类似于 go 那样的语言。
这种语言你觉得有意义吗?
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 很难。
: 希望不大,不过其实现在意义也不大了。
--
修改:hgoldfish FROM 110.85.22.*
FROM 110.85.22.*
现在 nuitka 和 cython 可以最可用,最接近这个目标的。
https://nuitka.net/
【 在 hyperLee (醉里挑灯看剑) 的大作中提到: 】
: 提个速很难吗?
--
FROM 110.85.22.*
哈。这个好办。大不了搞个 c 语法的版本。
【 在 finlab (挨踢卢瑟) 的大作中提到: 】
: 没意义。
: 静态类型的语言, 还是C++系的语法更容易接受。
: int main(){}
: ...................
--
FROM 110.85.22.*
这些都是虚拟机的。
不过我觉得还是 python 皮好。因为我主要想加速 python 程序,只要稍微修改一下 python 程序就能实现速度 * 100 倍那多好啊。
【 在 finlab (挨踢卢瑟) 的大作中提到: 】
: 但是已经又java,c#了, 动态类型的还有javascript
--
FROM 110.85.22.*
v8 不太行。只比 python 快 10 倍吧。
c++ 随便写正常都能比 python 快 100 倍。
【 在 finlab (挨踢卢瑟) 的大作中提到: 】
: 那就把python翻译成javascript, 在v8上跑
--
FROM 110.85.22.*
我现在是半个产品经理。所以做东西之前习惯先调查一下。没什么目标用户就不做了。
维护开源项目很消耗精力。我现在维护一个 qtng,正在打算发布 1.0 版本。最近花了不少力气写文档。很难想象再做一个更难的。
【 在 MetalSlugX (冰天雪地敲冰块,春光灿烂挖臭虫) 的大作中提到: 】
: 能做出来给自己或人用,就有意义
: 否则啥都不是
--
FROM 110.85.22.*