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

Go 到底优势是在哪里?

  •  
  •   upday7 · 2019-10-17 17:24:00 +08:00 · 22091 次点击
    这是一个创建于 1865 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们现在的项目是用的 django+restful 做接口,最近接触到很多 go 的内容,被网络上的讨论有点弄晕了。如果做接口后端,为什么 go 比 python 有优势,除了速度这些还有什么?

    第 1 条附言  ·  2019-10-17 23:02:26 +08:00
    感觉这个帖子突然开始引战了。。。我们现在就是 gunicorn 裸跑在阿里云的 docker 里,😂,前面有用阿里的负载均衡,其他的都还好感觉再来几万用户都不是问题,所以才有这疑问,就是比较一下 go 和 django/python 的应用场景。
    153 条回复    2019-10-24 19:11:27 +08:00
    1  2  
    kidlj
        1
    kidlj  
       2019-10-17 17:39:22 +08:00
    说一个吧,几年前尝试 Django + Nginx 配置差点疯掉。Go 甚至 Nginx 都不需要扔服务器上就跑了。
    iPhoneXI
        2
    iPhoneXI  
       2019-10-17 17:40:13 +08:00 via Android
    速度就是优势,省了一堆优化的时间
    还有静态编译好部署
    静态类型,方便重构 /避免一些类型错误
    wafm
        3
    wafm  
       2019-10-17 17:42:08 +08:00
    说实话把,我觉得 GO 挺像易语言的

    那种做好编译就能用的
    zy8848
        4
    zy8848  
       2019-10-17 17:42:17 +08:00
    纸面上的性能优势不是真的性能优势
    我日常写一些文件读取匹配处理等功能的时候,通常 php 比 go 快
    但凡涉及多线程,go 的优势就体现出来了
    go 的协程使用起来非常方便,是一门优秀的语言
    ClericPy
        5
    ClericPy  
       2019-10-17 17:44:09 +08:00
    速度就够了... golang 随便十万并发, Python 不借助 C 的话, starlette 也就三四万... Django 的速度就不提了...

    其实感觉 golang 就是一种压榨机器性能和程序员友好之间的另一个折中, 和 python 比, 前者又稍微向机器性能侧重了一点点, python 则是像程序员侧重一点点. 实际场景里 golang 主要做对比的是跟 java 比压榨性能, 跟 C 比初级程序员友好. 和 py 这种脚本语言, 性能一项就足以... 不是一个量级, 至于很多人提的可读性, 平时真没感觉比 py 好...
    wangyzj
        6
    wangyzj  
       2019-10-17 17:44:24 +08:00
    计算密集型和 io 密集型都还算挺快
    语法简单
    google 背书
    docker 流主力
    国内跟的快
    hwdef
        7
    hwdef  
       2019-10-17 17:48:25 +08:00
    抛开领域谈语言,就是耍流氓。
    现在的趋势是什么?
    微服务,分布式,
    这些领域什么框架火?
    这些框架都是什么语言写的?
    fishofcat
        8
    fishofcat  
       2019-10-17 17:48:30 +08:00
    谷歌背书,etcd,k8s,docker 主流的云原生时代的宠儿都是 go 的,我要是说他没优势,你信不,你要是问我具体好在哪,除了感觉写线程再也不用 pthread_create,其它真没什么太大感觉。。。。
    dif
        9
    dif  
       2019-10-17 17:49:25 +08:00
    不用在乎被反编译吧。
    BruceAuyeung
        10
    BruceAuyeung  
       2019-10-17 17:53:15 +08:00 via Android
    协程使得并发编程超级简单,性能还杠杠的,就这一条非常适合微服务开发,真香!
    hkitdog
        11
    hkitdog  
       2019-10-17 17:53:15 +08:00 via iPhone
    @dif 运行下服务器还怕过个?
    yvescheung
        12
    yvescheung  
       2019-10-17 18:03:10 +08:00
    交叉编译,静态编译,高并发,方便的线程进程,面向接口
    index90
        13
    index90  
       2019-10-17 18:05:33 +08:00
    没有 generic
    Hanggi
        14
    Hanggi  
       2019-10-17 18:09:31 +08:00
    @index90 那又如何呢?
    reus
        15
    reus  
       2019-10-17 18:10:42 +08:00   ❤️ 1
    @index90 泛型已经有提案,还是第二版了,在做了,在做了
    upday7
        16
    upday7  
    OP
       2019-10-17 18:16:40 +08:00 via iPhone
    接口项目的话很多性能上的问题还是数据库和网络上吧? go 带来的收益如何扩大呢?
    BubbleNoodle
        17
    BubbleNoodle  
       2019-10-17 18:18:51 +08:00
    他妈的 kubernetes 用 go 写的 还不够吗
    lbp0200
        18
    lbp0200  
       2019-10-17 18:23:42 +08:00
    没有了
    yoshiyuki
        19
    yoshiyuki  
       2019-10-17 18:24:04 +08:00
    语法简单,只有 20 多个关键字
    强类型,有静态检查,计算性能高
    适合针对多核 CPU 服务器编程,有效利用多核 CPU 带来的单机性能优势
    编译后二进制包易分发
    Aether
        20
    Aether  
       2019-10-17 18:31:27 +08:00
    我听说,绝大部分项目都远远不到谈性能这个阶段……
    upday7
        21
    upday7  
    OP
       2019-10-17 18:37:26 +08:00 via iPhone
    @Aether 我好像也是这么听说的。😄
    BBCCBB
        22
    BBCCBB  
       2019-10-17 18:37:35 +08:00
    原生协程,docker,k8s, etc... 云产品开发的霸主。 生态上去了
    index90
        23
    index90  
       2019-10-17 18:37:42 +08:00
    @upday7 举个例子,搜索。100 万条数据找 10 条匹配度最高的。
    一台服务器+一个数据库,基本上瓶颈会出现在数据库,因为你要在 100 万条记录的数据库中寻找 10 条数据。

    换个做法,一台服务器,100 个数据库,每个数据库存 1 万条数据,那么一次搜索查询,需要并发出 100 个数据库请求,那么这时候瓶颈就会出现在应用服务器的并发性能上了。

    所以 go 要扩大收益,架构也要跟着改变。
    zarte
        24
    zarte  
       2019-10-17 18:41:00 +08:00
    交叉编译后可以不用考虑环境问题。
    各种文章说协程有优势,不过自己也没跟 c#的多线程对比过。
    小项目功能开发简单,建立 main.go 文件,引入库,写方法或者定义几个结构体就 ok 了。以上步骤比 c#简单没有未知异常。
    neverfall
        25
    neverfall  
       2019-10-17 18:50:09 +08:00
    @index90 对的
    fuxiaohei
        26
    fuxiaohei  
       2019-10-17 18:52:47 +08:00
    多试试,就会知道,随便就可以撸小东西用,真方便
    MengQuadra
        27
    MengQuadra  
       2019-10-17 19:10:12 +08:00
    我个人感觉最大的优势还是在不改动代码的情况下,go 编译后的并行 /流水优化实在是相当厉害
    简单省事
    gamexg
        28
    gamexg  
       2019-10-17 19:25:19 +08:00
    性能可能没大感觉,但是动态一时爽,重构火葬场...
    复杂接口,维护时间一长,文档不一定准确了,修改一处结构不知道会影响到哪些地方
    测试覆盖不了所有流程,虽然看似测试通过,但是还有可能运行中崩掉。
    MonoLogueChi
        29
    MonoLogueChi  
       2019-10-17 19:28:02 +08:00 via Android
    效率高,静态编译。
    效率一条就足够了
    Leigg
        30
    Leigg  
       2019-10-17 19:28:21 +08:00 via Android
    跟我学 vlang 吧
    jacketma
        31
    jacketma  
       2019-10-17 19:31:39 +08:00 via Android
    go 在 Java 之前出现,不是完美了?
    kaneg
        32
    kaneg  
       2019-10-17 19:33:09 +08:00 via iPhone
    接近 C 的性能加现代语言的优雅
    janus77
        33
    janus77  
       2019-10-17 19:35:00 +08:00 via iPhone
    简单和性能的折中吧
    c 性能好但不简单
    py 简单但性能不够
    java 性能也算好,但是依然比 go 复杂了点
    v2exchen
        34
    v2exchen  
       2019-10-17 19:35:41 +08:00 via Android
    optional
        35
    optional  
       2019-10-17 19:38:47 +08:00
    并没有用特别的优势,只是天下苦 java 久矣,被 java/jvm 搞得心力憔悴,看到一个性能 ok,写起来有没有 c/c++这么痛苦的语言,就觉得很不错。
    zicla
        36
    zicla  
       2019-10-17 19:42:15 +08:00   ❤️ 2
    看大伙讨论 go,也来凑个热闹,这是我用 go 开发的开源云盘 https://github.com/eyebluecn/tank 性能非常好,访问速度很快,这其实就是得益于 go 的语言特性
    zzlettle
        37
    zzlettle  
       2019-10-17 19:53:07 +08:00 via iPhone
    人家说用 django 开发网站跟 go 比较
    我反正感觉一般项目用 django 开发神速。用 go 费劲。
    小项目特别是 web 开发.go 的那些框架还有第三方库整合起来不就是 django 啦,然后用起来还没 django 顺手
    dosmlp
        38
    dosmlp  
       2019-10-17 19:57:51 +08:00
    当然是性能,python 那点速度真是够受的了,Java 也是慢的一比
    Tink
        39
    Tink  
       2019-10-17 20:09:02 +08:00 via iPhone
    并发
    TangMonk
        40
    TangMonk  
       2019-10-17 20:11:50 +08:00   ❤️ 4
    .net core 的出现, go 的地位应该慢慢要下滑了.
    zzlettle
        41
    zzlettle  
       2019-10-17 20:25:52 +08:00   ❤️ 16
    别撤那些运行效率
    比如开发个人 web,公司小的网站,就算是一个中小型的商城
    我觉得 django 完全能对付
    哪有那么多并发啊
    你们公司做什么的啊
    有那么大的需求吗?
    但开发效率完胜 go
    现在 go 有哪个框架能跟 django 这样开箱即用匹敌的
    一大堆第 3 方开源的库,自己慢慢组合起来
    这就是为什么你在网上看到最多的关于用 go 开发的文章
    都是写 api,restful
    因为用它来开发个传统 web
    真要人命
    反观 django,开发一个传统型,也就是说不是那种前后端分离的网站
    太轻松了
    所有的工具 django 都帮你做的好好的
    只要把数据模型构建好
    基本网站就算做完了
    就算写接口
    不复杂的话,django 也是能很轻松完成
    复杂的话,go 一样做起来麻烦
    本来写逻辑,用 python 就是有优势
    所有 go 的优势就是在大并发的时候
    哪有那么多大并发
    全国才几个淘宝,微信啊
    一般的需求我完全不知道 python django 哪些不能满足
    其实一大部分用 go 的情况
    都是那些人在炫耀
    炫耀自己用上了所谓的高大上的 go
    因为现在 python 太普及了
    自己也跟着用,感觉不能提现自己的实力
    反正老板也不懂技术
    看到那些大公司很多用了 go
    自己也要用
    都是有病
    l4ever
        42
    l4ever  
       2019-10-17 20:32:48 +08:00
    @kidlj 所以你以为 Django 不能单独跑?
    zzlettle
        43
    zzlettle  
       2019-10-17 20:36:55 +08:00   ❤️ 5
    用 python
    9 层以上的逻辑基本可以很轻松用
    for in 循环来搞定
    字符串,数据处理,就像玩一样
    反观 go
    几个数据类型,变来变去,参数写的死死的
    函数方法
    接口
    一个简单小逻辑
    变着方的折磨人
    然后写出来还觉得自己多了不起
    看我用这么复杂的方式写出来的代码
    你看不懂吧!!!!!

    go 大家都在说学起来简单,关键字就那么几个
    但是用起来,你就知道了
    同样实现一个逻辑
    我靠,它的语法思考方式真的
    反人类

    上面 import 了一个库
    下面修改下,没有用到
    就在那里报错

    真是有病


    反正你的项目要不是真的所谓百万并发
    用 go 真的是嫌你睡眠时间太长
    还是你加班时间太短


    如果用来写个小小的 10 几行代码就能用的 server
    用 go 确实有优势
    一旦是那种.不大不小的中小型项目
    go 就处于不上不下的尴尬处境
    恰恰这种中小型项目是最多的
    hitrust
        44
    hitrust  
       2019-10-17 20:37:00 +08:00
    @zzlettle 说的不错。
    效率是相对而言的
    bingmang
        45
    bingmang  
       2019-10-17 20:44:44 +08:00
    技多不压身
    TangMonk
        46
    TangMonk  
       2019-10-17 20:49:52 +08:00
    @zzlettle #43

    的确,

    1. import 的包如果不使用, 他要报错. define 的变量 not use 也要报错.

    我现在先 import 或者定义好, 一会儿用不行么?

    或者 debug 的时候要注释掉一些代码, 还得找到之前定义的地方再注释一遍

    2. 没有 exception, 每个 err 都要去 check and panic 一下

    等等...

    golang 只能写点小工具挺合适, 大型项目还是用 C#(dotnet core), java 之类的
    abcbuzhiming
        47
    abcbuzhiming  
       2019-10-17 21:03:21 +08:00
    @TangMonk 不会,.net core 会和 java 抢占地盘,go 的特点和他们不同
    TangMonk
        48
    TangMonk  
       2019-10-17 21:13:47 +08:00
    @abcbuzhiming #47 现在 go 能做的, .net core 基本都能做啊
    Reficul
        49
    Reficul  
       2019-10-17 21:17:41 +08:00
    争啥,爱用啥用啥。都 9102 年了还在争,我要来说一句,PHP 是最吼的!
    qile1
        50
    qile1  
       2019-10-17 21:28:58 +08:00 via Android
    python 和 go 对比吧

    python 还有个 tk 做界面,go 想开发个 c/s 程序 现在好像不好弄
    python 对比于 pb 程序慢很多,我处理检验设备传过来的结果数据,存到数据库慢的不行,不过可以接受
    dbskcnc
        51
    dbskcnc  
       2019-10-17 21:44:41 +08:00
    语言简单,不管谁写出来的代码,只要稍稍用心就可以看得懂在干什么,不需要烧脑解码某些天书语法
    交叉编译,部署都超级方便
    最主要的是基本会点编程的只要稍加学习都能用它干活,做好 review 和 ci,体验还是不错的,搭配 go mod,goland 使用效果出奇的好
    hakono
        52
    hakono  
       2019-10-17 21:58:20 +08:00
    从来发布置的角度来讲
    你要 django 能跑起来
    至少必须得有 django + uwsgi + nginx/Apache。

    那么问题来了,uwsgi 的配置你要不要学着写? 写完后 nginx/Apache 的配置是不是也得要写?
    这三者之间的交互搞错点东西就炸,初学者能在上面折腾死你,即便有经验的每次新环境配起来也是让你蛋疼

    啥,你不会用 Docker 简化配置过程? 那么你 docker 用法要不要学? Dockerfile 怎么写要不要学? docker-compose 怎么写要不要学? 而且正重要的是 Dockerfile 这东西你写完必须得 build 跑起来才知道有没有写错有没有 bug。 相性我,你在没有前人项目的基础上徒手写个 Dockerfile,大部分的时间全都是消耗在了 build - run - 出错 回头改 继续 build 的循环中。
    而且这特么还没考虑到你写 docker-compose 配置也有可能会有坑。。。。



    然后这时候我们来看看 go,服务写好了? 编译出来,可执行文件直接扔到服务器,`./hello_world` 成了,跑起来了,不用 nginx 不用 uwsgi, 不用搞破 docker, 并发,性能极好,你说,哪个爽?
    okampfer
        53
    okampfer  
       2019-10-17 22:08:10 +08:00
    @TangMonk .NET Core 现在也可以编译为单个可执行文件了是吧?我的意思就是跟 golang 一样,不需要单独安装运行时,扔到服务器上就能跑。
    back0893
        54
    back0893  
       2019-10-17 22:19:14 +08:00
    @zzlettle 那我为啥不用 php?php 写 web 比 py 还轻松
    back0893
        55
    back0893  
       2019-10-17 22:19:45 +08:00
    简单,方便不就好了
    clino
        56
    clino  
       2019-10-17 22:33:12 +08:00 via Android
    感觉 groutine 是杀手锏,其他的特点都没啥稀奇的
    zzlettle
        57
    zzlettle  
       2019-10-17 22:35:16 +08:00   ❤️ 11
    可以这么说
    一个用 go 能开发出来一个哪怕是很简单网站的人
    他对网络这块的知识要求就已经很高了
    你说的那些什么配置
    nginx
    uwsgi
    这些
    相信如果你是个用 go 做开发的人
    早就过了需要专门抽出时间还要去学习的阶段了
    因为 go 做 web 开发是非常底层的一步一步组建起来的
    你如果对底层这些不懂
    你根本无法用 go 来开发

    相反
    一个用 python django 开发的人
    真的对底层网络这些需要的知识不是那么高
    因为所有的都封装好了
    导致了
    很多人,用框架开发了很多网站
    其实他对网络的很多底层东西,懂得并不多
    因为并不需要

    然后你这个时候出来说
    go 开发完了以后,配置时多么的简单
    你看直接传上服务器,就能跑起来

    那是因为你需要对跑起来之前很多的底层,自己处理

    你说同样是一个人
    目的是开发一个网站
    到底是是哪个对开发人员友好

    用 go 的话,你先要学习很多基础知识
    有功夫学这些
    我用 django,都已经开发完了
    那些你所谓的配置
    你真的是每次都写吗
    不都是一套配置文件,全部项目都一样用
    就是修改下里面 ip 和 web name
    这个你说学起来有多难
    或者说根本不用学,在网上找个案例,原样 copy 就可以了
    很多人开发了很多网站
    真的对 nginx 搞懂拉?
    不都是用一份不知道哪里找的别人的配置修改下就能用了
    跑一个网站,用的配置都是一样的

    一个中小型项目,我就不明白
    你搞出来这么多幺蛾子
    又是 docker 又是 build 的
    需要吗?
    只要在环境里面安装了 python 还有数据库还有 nginx
    数据库你用 go 开发就不需要装拉?
    nginx 不就是一行代码就安装好了,配置文件修改下参数就行了

    这就
    就完事了

    你说这些很难吗
    比起学好那些 go 的 net http 底层的库
    自己要处理好 cookie session 各种注入的预防
    到处找第 3 方库,各种修改,把这些第 3 方的库整合起来

    oh my god

    人家 django 都是开箱即用
    orm 完全傻瓜化
    不是我说
    你用 go 开发
    用的是原生的 sql 库还是 gorm xorm 这些?
    你自己说当初学这些用了多长时间?

    学完了,用起来有 django 的 orm 方便吗?

    我还没说 go 里面的模板了
    有一个好用的吗?

    现在 github 里面排名最高的一个模板处理库 pongo2,api 用法开发目标就是要完全和 django 的模板 api 一致
    结果用起来还是各种 bug

    你说到底哪个开发效率高
    哪个对人友好?
    wqxuan
        58
    wqxuan  
       2019-10-17 22:36:34 +08:00 via iPhone   ❤️ 2
    后端,同样经验,go 钱多
    est
        59
    est  
       2019-10-17 22:40:44 +08:00
    python 其实也可以不要 nginx 的。 只是大家都无脑 gunicorn 了。。

    golang 的优点还是很突出,快。
    eoo
        60
    eoo  
       2019-10-17 22:42:57 +08:00
    php 是世界上最好的语言 不接受反驳{滑稽脸}
    dhssingle
        61
    dhssingle  
       2019-10-17 22:48:28 +08:00
    @okampfer #53 .net core 3.0 可以打包成单文件,2.0 就可以不用单独安装运行时了。
    TangMonk
        62
    TangMonk  
       2019-10-17 22:55:25 +08:00 via iPhone
    @okampfer 3.0 开始就可以了,和 go 一样跨平台编译。
    stevenbipt
        63
    stevenbipt  
       2019-10-17 22:58:08 +08:00   ❤️ 1
    我是来泼冷水的~
    1. 并发很容易,但是你确定团队里面的每个初级程序员都能够写好并发代码?不会出现数据竞争,死锁这些问题?就算有 go race 辅助检查,一旦出现幺蛾子这玩意儿调试起来也够呛的
    2. 静态编译单文件执行,只要改动一点硬编码东西就得重新交叉编译上传启动,服务器多了就算使用 ansible 上传和跑起来也是够麻烦的,有时候觉得热部署也挺香的~
    guonaihong
        64
    guonaihong  
       2019-10-17 23:05:14 +08:00
    看目标人群,如果以前用 c 不停 malloc, free 内存。用了 go 之后感觉真爽。。。很多函数名和系统调用相同, 也会有一种新切感。
    okampfer
        65
    okampfer  
       2019-10-17 23:06:42 +08:00
    @TangMonk @dhssingle 想问一下两位平时开发.NET Core 都是用的什么 IDE 呢?
    dodo2012
        66
    dodo2012  
       2019-10-17 23:15:25 +08:00
    @Leigg valng 不就是 c 的语法糖么?现在改进了?最开始看的时候就是转成 c,还有用字符 串替换的方法转,
    back0893
        67
    back0893  
       2019-10-17 23:15:26 +08:00
    反正都是写网页考虑下 php?
    反正加个 nginx 就能跑
    第三方库也多,写法看个人意愿
    从原生到复杂的框架都能写
    (其实 go 的工资高,反正都是面向工资编程为啥不用)
    jessun1990
        68
    jessun1990  
       2019-10-17 23:17:30 +08:00
    我觉得这么一个道理: 使用相同的时间成本和学习成本, Go 的收益更大.
    jessun1990
        69
    jessun1990  
       2019-10-17 23:18:13 +08:00
    热烈欢迎 LZ 把我的慕课网课程买走学习, 贼好的课程.
    okwork
        70
    okwork  
       2019-10-17 23:22:04 +08:00 via Android
    @upday7 裸跑 gunicorn,static 静态文件放哪里的?都走 cdn 吗?

    --------

    Python 项目部署也是可以递进的。最原始就是直接纯裸跑,高级一点套个 uwsgi/gunicorn,再高级一点前面套 nginx,再高级一点前面套负载均衡,后面分布式数据库。这四层套下来,什么并发都不是事啦
    pipi32167
        71
    pipi32167  
       2019-10-17 23:25:25 +08:00
    @zzlettle 说的对,用 python 太简单了,不利于增加码农的薪资水平
    AmrtaShiva
        72
    AmrtaShiva  
       2019-10-17 23:27:23 +08:00 via Android
    @okampfer 有 IDE ?
    mamahaha
        73
    mamahaha  
       2019-10-17 23:44:07 +08:00
    大企业用 go 是为了省钱;小企业用 go 是为了起哄。
    hu8245
        74
    hu8245  
       2019-10-17 23:44:14 +08:00 via Android
    为什么不问 Rust 有什么优势? 不配有姓名吗
    Pythondr
        75
    Pythondr  
       2019-10-18 00:55:11 +08:00 via Android
    开发不仅仅只有 web 开发,多扩展知识面吧。
    多了解了解基础设施的设计开发,不要将眼光和思维局限在接口开发
    index90
        76
    index90  
       2019-10-18 01:15:51 +08:00
    @stevenbipt #63
    1. 水平不足就不写并发代码了?水平不足就可以不解决性能了?不止一次见到有人以水平不足去怪一项技术垃圾了。
    2. 即使 Java 的热部署也是有要求的,不是所有更新都能够热部署,以前巨石架构用热部署还情有可原。都 9102 年了,微服务都快淘汰了,还不知道蓝绿部署,滚动发布。go 编写服务,配合容器化+k8s 编排,发布是很轻松的事情。
    dreampuf
        77
    dreampuf  
       2019-10-18 02:34:02 +08:00
    - 强类型
    - 并发便捷且轻量
    - 部署方便,依赖管理


    ORM 不是全部工作内容,倾向于手写语句。Docker 引入一个更大的问题,容器化不比换语言简单。正如 Python 在科学计算届的火热,Golang 在容器化和 K8s 的背景下也得到长足发展。

    > 做接口后端
    取决于开发者本人,熟悉什么用什么。两边差距达不到质变。
    qqxx520
        78
    qqxx520  
       2019-10-18 03:03:35 +08:00 via iPhone
    脚本语言和编译语言,各有千秋,脚本语言要不是开发效率快,要他何用,编译语言要不是运行性能高,要他何用!
    用编译语言来和脚本语言比开发效率,天生不足,反之亦然。
    等到将来那一天 python 等那些脚本语言都绝迹了,
    cnnblike
        79
    cnnblike  
       2019-10-18 06:47:01 +08:00
    部署真的很烦人
    charlie21
        80
    charlie21  
       2019-10-18 06:53:29 +08:00 via Android
    省钱

    以前要堆机器(物质资源)才能解决的事,现在换个会某编程语言的人(劳力资源) 就解决了。便宜资源 换 贵资源,达到同样效果
    TangMonk
        81
    TangMonk  
       2019-10-18 07:42:56 +08:00 via iPhone
    @okampfer 最好的是 visual studio,非常非常好用,次之就是 vscode
    crella
        82
    crella  
       2019-10-18 08:30:27 +08:00 via Android
    @qqxx520 就 py 那个打少一个空格就出错、网上复制代码经常乱格式的设定,我说 perl5 都不会灭绝,何况 php、ruby,别忘了微软的古怪 powershell 可以引用.net 对象
    KaynW
        83
    KaynW  
       2019-10-18 08:47:23 +08:00
    @wqxuan 对啊, 管他那么多,面向工资编程就完事了
    ericgui
        84
    ericgui  
       2019-10-18 08:51:18 +08:00
    @mamahaha 说得对
    NaVient
        85
    NaVient  
       2019-10-18 09:03:24 +08:00
    就三个字 go 最重要的就是云原生 看到没人提
    encro
        86
    encro  
       2019-10-18 09:03:59 +08:00
    1,一次开发,交叉编译,到处使用。( windows,linux,arm,物联网 )
    2,没有魔法( Python 有多少让你惊奇,仍不住叫 WTF 的)
    3,性能好(原生协程,编译速度快)
    4,社区开源产品丰富( package 数目,GIT 开源项目数目上,除了 npm,pip,go 应该快赶上 composer 了)
    5,背靠 GOOGLE,官方包质量高(相比 python 的 HTML 解析包你就得学 4 个)

    看看 Github 上得 package star 排行,我认为 go 高质量库已经超过 Python 了。
    Why?
    Cellei
        87
    Cellei  
       2019-10-18 09:10:48 +08:00
    说个与贴子主题无关的:vert.x+kotlin
    gramyang
        88
    gramyang  
       2019-10-18 09:11:12 +08:00
    go is god,30 分钟 5 万!(指同等逻辑下 java 的代码字数)
    weer0026
        89
    weer0026  
       2019-10-18 09:12:32 +08:00
    单纯是逃不开,最近学 docker,k8s,顺手学了 golang,生态在这里的。
    find456789
        90
    find456789  
       2019-10-18 09:13:32 +08:00
    本来打算换 go,看完各位的回答,我还是坚持 python, 因为我的网站,瓶颈应该在数据库上,而不是并发上, 等哪天我有 10w 并发 在考虑换 go
    XIVN1987
        91
    XIVN1987  
       2019-10-18 09:22:48 +08:00
    @encro

    "看看 Github 上得 package star 排行,我认为 go 高质量库已经超过 Python 了。"

    这个在哪里看?
    chenqh
        92
    chenqh  
       2019-10-18 09:40:36 +08:00
    @find456789 我觉得有 2k 并发都可以换了 golang,但是直连数据库 2k 并发有点难呀
    blless
        93
    blless  
       2019-10-18 09:43:38 +08:00 via Android
    @find456789 纯 python 100 并发 P99 就很难看了,再加 GIL,你就信那些吹 python 的嘛。再加 GIL 额外进程消耗,几百的时候你就要开始折腾优化。这功夫下来 go 版本瞎写都几千 qps。
    jdlau
        94
    jdlau  
       2019-10-18 09:53:40 +08:00
    这种东西只有自己用过才能体会到吧。。
    jydeng
        95
    jydeng  
       2019-10-18 09:57:46 +08:00
    围观一下
    xmge
        96
    xmge  
       2019-10-18 09:59:14 +08:00
    1、go 简单(但不简陋)
    2、go 中协程序是轻量级的线程(占用资源少),同等性能的服务器中可以并发更多的处理单元。
    kran
        97
    kran  
       2019-10-18 10:01:11 +08:00
    把一部分工作交给编译器, 这是很好的.
    Hanggi
        98
    Hanggi  
       2019-10-18 10:03:59 +08:00
    @find456789 就算瓶颈在数据库上,跟并发一点关系也没有,那也是 go 更快。
    tt67wq
        99
    tt67wq  
       2019-10-18 10:10:37 +08:00
    如果只是 crud 的业务,go 没啥明显优势,看看 go 的明星项目,都是容器,网络中间件相关的,
    比底层操作系统上层一些的领域是 golang 主场
    micean
        100
    micean  
       2019-10-18 10:21:55 +08:00
    go 的优势只有 docker 吧
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   888 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 83ms · UTC 21:40 · PVG 05:40 · LAX 13:40 · JFK 16:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.