Go 为啥没 Python 火 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
glacier2002
V2EX    Go 编程语言

Go 为啥没 Python 火

  •  
  •   glacier2002 2019-05-14 09:00:22 +08:00 9815 次点击
    这是一个创建于 2345 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在做量化时,会严重的发现,Go 基本没有一个完备的量化框架,如回测,分析,报表,实盘展示等.仅仅一些 web 服务端很多框架。

    在做量化时,速度还是很大的因素,python 作为解释性语言还是没 go 快,但为啥就发展不起来呢?

    67 条回复    2019-05-24 10:13:14 +08:00
    weo0
        1
    weo0  
       2019-05-14 09:03:06 +08:00
    主要还是看培训班
    chenset
        2
    chenset  
       2019-05-14 09:04:11 +08:00
    python 90 年代初的语音, 怎么能比. GO 也主打网络开发吧. 数据分析是 python 主场吧.
    ace12
        3
    ace12  
       2019-05-14 09:04:53 +08:00
    时间
    fhsan
        4
    fhsan  
       2019-05-14 09:06:37 +08:00
    Go 不就是为了网络并发诞生的吗?
    XIVN1987
        5
    XIVN1987  
       2019-05-14 09:08:00 +08:00
    Go 是用来做基础设施和高并发网络应用的,,有这种需求的公司没那么多,,
    xpresslink
        6
    xpresslink  
       2019-05-14 09:15:16 +08:00
    Go 的设计目标是代替一部分 C 言开发场景,说白了就是有垃圾回收的 C 语言。
    Imr
        7
    Imr  
       2019-05-14 09:22:03 +08:00 via iPhone
    容器周边都是 go 写的东西,py 火,我觉着一个是系统自带普及率高,加上类似脚本语言简单好用
    thfurior
        8
    thfurior  
       2019-05-14 09:23:14 +08:00
    python 的库多吧,方便编码
    konakona
        9
    konakona  
       2019-05-14 09:24:44 +08:00
    我感觉完全不是一个东西了,2333 深入学习 GO 和 Python 以后。
    另一个是 Go 没什么培训班,而且 package 比较少,造轮子比较多,意味着分配工作后的快速适应性不强。
    specita
        10
    specita  
       2019-05-14 09:25:14 +08:00   7
    go get timeout
    hareandlion
        11
    hareandlion  
       2019-05-14 09:46:51 +08:00 via Android
    go 的生态还没有 py 全吧
    Constellation39
        12
    Constellation39  
       2019-05-14 09:54:26 +08:00
    go get timeout
    Muninn
        13
    Muninn  
       2019-05-14 09:59:25 +08:00
    所以才有机会造轮子呀……

    数据方面 n 多几十几百星的轮子正在制造中
    janxin
        14
    janxin  
       2019-05-14 09:59:44 +08:00
    量化框架支持比 Py 完善的本来也不是很多吧...
    zarte
        15
    zarte  
       2019-05-14 10:01:33 +08:00
    就像你想要的没有,轮子少,毕竟发展时间比 py 晚。
    lithiumii
        16
    lithiumii  
       2019-05-14 10:04:25 +08:00
    数据分析很多不是程序员在做,Go 对非科班人士有 py 友好吗……
    mingqing
        17
    mingqing  
       2019-05-14 10:06:19 +08:00
    每种语言都有它存在的意义,以及专注的领域。
    SaintDan
        18
    SaintDan  
       2019-05-14 10:11:56 +08:00
    GO 还没到火的时候,而且火不火首先看场景,其次看社区
    Leigg
        19
    Leigg  
       2019-05-14 10:16:54 +08:00 via iPhone
    不太懂,量化是 cpu 密集型任务吗?
    hiouyuu
        20
    hiouyuu  
       2019-05-14 10:19:18 +08:00
    数据回归、拟合,绘图等等最重要的功能,python 只需要一行代码就能实现,而 golang 甚至没有一个很好的科学绘图库。
    rockyou12
        21
    rockyou12  
       2019-05-14 10:29:41 +08:00
    一般做原型还是 python 这些写着快把,毕竟有 repl 可以事实看过程和结果,而且 python 上的各种计算密集的库底层一般都是 c,c++写的,也不会慢
    GitHub123456
        22
    GitHub123456  
       2019-05-14 10:31:27 +08:00
    场景的问题,还有就是公司的问题,技术经理的喜好问题
    flyingghost
        23
    flyingghost  
       2019-05-14 10:43:12 +08:00
    量化的前提不是已经完备的框架,而是更细节更原子更重要的数据分析、处理库。这些库确保可用性和易用性。然后才是并行、GPU 等库确保效率。
    这些领域,python 有着超过 20 年的生态积累。go 有什么?只有中间件和 web 服务。go 是一种工程化语言,而 python 不但有工程界的喜爱,更重要的是科研界的基础。这是 go 连想都不敢想的。
    casaca
        24
    casaca  
       2019-05-14 10:46:35 +08:00   1
    Go 为啥没 Python 火?
    因为 GO 那个 LOGO 太变态太恶心了。
    qq976739120
        25
    qq976739120  
       2019-05-14 10:48:31 +08:00
    go 的包管理可以劝退一大部分新人...现在有了 go mod 也只是稍微友好了点
    flyingghost
        26
    flyingghost  
       2019-05-14 10:51:24 +08:00   1
    lz 也只提到一点优势,速度。相对于生态,速度真的是权重非常小了。
    而且 python 做原型做科研做探索,根本不太介意速度。教授和学生们选择 matlab 和 R 需要认真考虑速度吗?
    真要到生产环节,速度也有多种弥补方式,架构对速度的影响远大于虚拟机和 GIL。
    再具体化到功能或者指令级的速度优化,也有太多的选择。c/c++做 python 的底层已经是业界常规,框架、系统级开发 go 的面前还横着一个 rust 插队,旁边一个 julia 横空出世打着 python 继任者的旗号。
    go 在 python 的领域实在看不到啥机会。
    looplj
        27
    looplj  
       2019-05-14 10:54:09 +08:00
    你这个太片面了。
    量化主要看的策略,还有一些数据处理,这方面 Python 的积累是最多的。
    Python 现在确实很火,主要还是用来做一些机器学习,深度学习方面的东西。
    在普通的后端领域,很多公司都在用 Go 替换 Python 的。
    qlhai
        28
    qlhai  
       2019-05-14 11:09:06 +08:00
    王垠:对 Go 语言的综合评价 http://www.yinwang.org/blog-cn/2014/04/18/golang
    reus
        29
    reus  
       2019-05-14 12:03:36 +08:00
    几年前 ruby/rails 火吧?现在怎样了?
    python 在 web 开发方面也曾经火过,现在呢?
    再往前的 PHP、perl,现在还火吗?

    不进则退,不要以为有什么护城河,也不要言之凿凿 go 就一定不能占据这个领域
    dabaibai
        30
    dabaibai  
       2019-05-14 12:07:57 +08:00
    领域不同吧 go 后端为主
    python 工具化为主
    zhucegeqiu
        31
    zhucegeqiu  
       2019-05-14 12:12:20 +08:00
    数据分析 python 就是个壳,底层都是 c++之类的,速度绝对比纯 go 写快,coding 起来又爽,没有 go 的生存空间
    q397064399
        32
    q397064399  
       2019-05-14 12:19:55 +08:00
    同理 你可以问 Java 为什么在量化领域 没有 Python 火..
    rzti483NAJ66l669
        33
    rzti483NAJ66l669  
       2019-05-14 12:20:28 +08:00
    跑得快不如写得快
    davelm
        34
    davelm  
       2019-05-14 12:21:04 +08:00 via iPhone
    python 量化库很少是纯 py 写的,底层很多还是 c/c++/fortran,并且 py 库很完善,策略 /回测上,py 开发效率比 go 还是要快的,所以相关团队没动力去迁移
    tomoya92
        35
    tomoya92  
       2019-05-14 12:22:31 +08:00 via iPhone
    @ace12 go 都多少年了。。
    largecat
        36
    largecat  
       2019-05-14 12:28:11 +08:00 via Android
    python 库实在是太多太多太多了,
    不要觉得 python 性能不好,他的库底层都是 c 这些写的,性能很好,操作层面用 python 也非常好的效率。

    对比造全部自己造的 go,强不少
    orm
        37
    orm  
       2019-05-14 12:29:38 +08:00 via iPhone
    最早 go 第三方依赖,反人类
    blless
        38
    blless  
       2019-05-14 12:55:50 +08:00 via Android
    写得爽不就好了,毕竟工程语言,王垠的文章看了半天实际感觉还是负面评价居多…在我看来 go 无非就是在 c 和 python 中间取了一个权衡,而且这个权衡我觉得还是很划算的,80%python 开发效率换取 80%c 的性能。又多了一种选择不是吗
    inframe
        39
    inframe  
       2019-05-14 12:56:19 +08:00 via Android
    就库而言,go 生态还差得远呢
    murmur
        40
    murmur  
       2019-05-14 12:56:59 +08:00
    因为 jetbrains 给 go 的 ide 起名叫 golang,就是够烂的意思,所以可以证明是 jetbrains 把 go 坑了
    ipwx
        41
    ipwx  
       2019-05-14 12:59:04 +08:00
    楼上说的都对。

    我选择 Python。
    cookey39
        42
    cookey39  
       2019-05-14 13:02:46 +08:00 via Android
    关键还是生态吧。在数据科学领域有 python,web 领域有 java,高性能领域有 c 艹。编程语言三巨头短期内还是难以撼动。顺便一提 go 在国内比国外还火。
    azhw
        43
    azhw  
       2019-05-14 13:04:10 +08:00
    量化? 量化是撒?
    量化宽松... 量化投资?
    v2nika
        44
    v2nika  
       2019-05-14 13:06:41 +08:00
    go 没有 python 那么多语法糖,比如装饰器,继承等,加上要编译运行,强类型,对于习惯用 Jupyter 的搞经济,数学的人来说不一定很适用。就像 matlab, mathematica, comsol 对于不同领域的人一样。
    LokiSharp
        45
    LokiSharp  
       2019-05-14 13:07:09 +08:00
    Go 的 Logo 太丑了啊
    27
        46
    27  
       2019-05-14 13:26:33 +08:00
    golang = 够浪
    www5070504
        47
    www5070504  
       2019-05-14 13:28:50 +08:00
    太好了 培训班还没盯上 golang
    8a9a09dw12
        48
    8a9a09dw12  
       2019-05-14 14:46:17 +08:00
    @murmur replace("golang","goland")
    stream
        49
    stream  
       2019-05-14 14:55:33 +08:00
    python 库多,培训班三两行代码拉个东西,“ awesome"!
    ArianX
        50
    ArianX  
       2019-05-14 15:10:16 +08:00 via Android
    Python 这一波主要是数据分析人工智能带起来的吧,后台领域感觉渐渐式微了,很多用 python 的公司都转 go、java
    kiddingU
        51
    kiddingU  
       2019-05-14 15:48:50 +08:00
    现在 go mod 管理包很方便
    kwanzaa
        52
    kwanzaa  
       2019-05-14 15:50:00 +08:00
    go get timeout
    qcts33
        53
    qcts33  
       2019-05-14 16:04:41 +08:00
    不说别的,Python3 都比 Golang 早发布,你总得考虑历史原因吧……
    另外 Python 有 Numpy 这样非常成熟的数值运算库,通过 BLAS 的加速,跑起来不一定比你用 Golang 手撸数值运算要慢
    6d6f33
        54
    6d6f33  
       2019-05-14 16:05:41 +08:00
    楼上说的都对。

    我选择 Python。
    SwagXin
        55
    SwagXin  
       2019-05-14 16:54:18 +08:00
    go 年龄小,现在发展已经算不错了。
    helica
        56
    helica  
       2019-05-14 17:08:59 +08:00 via iPhone
    @reus 问一下今年 web 开发什么语言最火?
    shisang
        57
    shisang  
       2019-05-14 17:23:06 +08:00
    moby (摸逼) 生态没有什么可以取代 golang (够浪)
    lolizeppelin
        58
    lolizeppelin  
       2019-05-14 17:42:39 +08:00
    要手动泛型的 go 在需要写灵活代码的时候很痛苦的
    ruyuejun
        59
    ruyuejun  
       2019-05-14 18:02:24 +08:00
    Go 的年纪相比 Python 实在太小了,在积累上自然有劣势。
    但是不能说 Go 没有 Python 火,要看具体的场景,
    Python 基本都是用在一些科学运算等场景中,其火在于运维工程师、一些非 IT 从业中,
    市场上 Web 开发仍然是程序员大军中比例较大的,Python 在这里并没有多少席位,不要提 flask 等,差距很大。
    Go 在微服务、中间件、云原生应用领域虽然不及 Java,但是和 Python 对比,其体量还是秒杀 Python 的。
    来一起学 Go 吧,热乎的笔记等你 clone:
    https://github.com/overnote/Golang
    icylogic
        60
    icylogic  
       2019-05-14 18:04:28 +08:00 via iPhone
    准备学学 julia …… go 就算了

    另外很多 nvidia 的计算库就两个官方 API
    C++ 和 Python,有些东西你手撸就是没有它提供的库快
    FrankHB
        61
    FrankHB  
       2019-05-14 18:07:36 +08:00
    @qlhai 几年了都搞不清什么叫自动的过气用户(亏他下文还有脸提“资源泄漏”)的说法看看笑过就好。
    说实话,这个还不如“新的都不是好的,好的都不是新的”这个他自己之前对 Go 的特性的评价来得干脆(和准确)。
    虽然里面说的 Go 的坏话很多也没多大毛病,不过还是有不少东西是欺负大多数读者外行吧……
    比如说所谓通常被叫做“进程”或者“线程”的东西,是要支持抢占式多任务的,自带调度(和 goroutine 实际上更接近)。就算是 building block,那也叫 engine (像 timed-lambda )什么的,“系统级 continuation ”是什么鬼……
    还有除去调度,也不提 CPS 会有怎么样的 ABI 或者其它幺蛾子麻烦(跟他吹 checked exception 时如出一辙),undelimited continuation 在资源上无论怎么实现都是要炸的……所谓“函数式语言只要支持 continuation,就会很容易的实现大并发”基本就是痴心妄想。
    看看,这般扯的批评都能被人当真,就知道并不能指望这些语言有多少靠谱的用户了。
    (顺便,Scheme 的 cond 和多返回值也有照着 Scheme 自己的设计原则来讲一眼看过去就能发现烂的地方,可能他用的仍然不够多,并不清楚明显能改进的地方。)
    glacier2002
        62
    glacier2002  
    OP
       2019-05-15 09:12:34 +08:00
    @lolizeppelin #58 2.x 的 go 即将支持泛类型
    wonderingray
        63
    wonderingray  
       2019-05-15 14:21:10 +08:00
    如果 go 和 python 同时出来就不定谁火了吧?_
    glacier2002
        64
    glacier2002  
    OP
       2019-05-15 17:58:46 +08:00
    @wonderingray #63 神解
    glacier2002
        65
    glacier2002  
    OP
       2019-05-15 17:59:20 +08:00
    看完各位的评论,看样子我需要把 python 撸一把。
    谢谢各位看官了
    lidongyx
        66
    lidongyx  
       2019-05-24 01:42:22 +08:00 via iPhone
    可能在程序员的世界里,Python 只是花拳绣腿,花架子很多,但是在非程序员的世界里,Python、SQL、前端三贱客虽然已经很流行,但是还远远不够。
    zvall
        67
    zvall  
       2019-05-24 10:13:14 +08:00
    人生苦短,我用 python
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2953 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 14:05 PVG 22:05 LAX 07:05 JFK 10:05
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86