V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xstress
V2EX  ›  程序员

听朋友说很多公司用 go 写的业务系统写不下去,现在都开始用 Java 写了,是真的吗??

  •  2
     
  •   xstress · 2022-02-14 13:49:20 +08:00 · 29712 次点击
    这是一个创建于 1031 天前的主题,其中的信息可能已经有所发展或是发生改变。
    211 条回复    2022-02-17 10:29:01 +08:00
    1  2  3  
    yuekcc
        101
    yuekcc  
       2022-02-14 23:57:59 +08:00
    js 成最后赢家
    XCFOX
        102
    XCFOX  
       2022-02-15 00:01:54 +08:00   ❤️ 1
    有一说一,Go 语言设计的真不怎么样
    ClericPy
        103
    ClericPy  
       2022-02-15 00:11:39 +08:00   ❤️ 1
    现东家对 go 的评价就是: 好学是好学, 但煞都木有啊... 再磨合两年吧, 大厂即生态, 小厂跟着看就好了

    老生常谈了, 写业务系统首选最擅长的, 其次是 Java
    seakingii
        104
    seakingii  
       2022-02-15 00:16:37 +08:00
    业务系统首选 JAVA,C#啊,GO 适合网络相关的中间件或者相对小的独立项目
    1more
        105
    1more  
       2022-02-15 00:18:04 +08:00
    是的,赶紧都搞 java ,不要来卷 go 了( doge
    sagaxu
        106
    sagaxu  
       2022-02-15 00:30:57 +08:00 via Android
    不要慌,只是技术性调整,福报厂和福报系公司输送了一大堆 P5/P6/P7 大佬,把小微厂土老板唬住了。
    ch2
        107
    ch2  
       2022-02-15 00:43:53 +08:00 via iPhone
    @x940727 阿里的跑过去了移花接木
    iseki
        108
    iseki  
       2022-02-15 01:22:46 +08:00
    别说了,一会儿又打起来了···
    drackzy
        109
    drackzy  
       2022-02-15 01:45:15 +08:00
    go 适合中间件,不适合拼业务。二线以下基本没有 go 职位。
    prnews
        110
    prnews  
       2022-02-15 04:40:08 +08:00
    @q1angch0u 笑死~
    wellsc
        111
    wellsc  
       2022-02-15 05:00:19 +08:00 via iPhone
    @Building 不都是 c like ,oo 模式?怎么就不同的编程思维了。fp 和 oo 才是不同的思维,你去对比下 erlang golang akka 的思维再来说话
    cassyfar
        112
    cassyfar  
       2022-02-15 05:40:17 +08:00
    人云亦云是真的可怕,云计算这么多后端服务都在用 Go 写。你们提到的业务应该只是局限在 web server 吧。
    securityCoding
        113
    securityCoding  
       2022-02-15 07:49:34 +08:00 via Android
    很多公司包括腾讯吗?
    GTim
        114
    GTim  
       2022-02-15 08:27:26 +08:00
    @drackzy 用 Go 那将是灾难
    MrSheng
        115
    MrSheng  
       2022-02-15 08:35:28 +08:00
    是真的,不过不是因为业务,而是因为 K8S 。
    snowlyg
        116
    snowlyg  
       2022-02-15 08:36:02 +08:00
    真的,都开始用转汇编语言了。
    opengps
        117
    opengps  
       2022-02-15 08:36:14 +08:00
    业务代码只是逻辑的处理,虽然不同语言有各自的参数差距。但是写不下去这个词过于笼统,是不能成为切换技术理由的
    ClarkAbe
        118
    ClarkAbe  
       2022-02-15 08:44:08 +08:00   ❤️ 1
    啊对对对......我们已经写不下去了,php 真好用啊
    cookgo
        119
    cookgo  
       2022-02-15 08:56:45 +08:00   ❤️ 1
    公司是考虑招人成本的,1W 块的 JAVA 程序员能做的业务系统,1W 块的 go 程序员不一定能做
    5sheep
        120
    5sheep  
       2022-02-15 09:04:53 +08:00   ❤️ 1
    这个我信。原因不是因为语言不行。是生态的问题。
    java 有丰富的第三方库,开源项目,并且这些东西已经经过了时间检验,大多数人都在用。
    在项目中一个 Ctrl+V 就能解决的问题,放到 go 这边恐怕要重复造轮子好久,有可能造出来的一堆 bug ,或者干脆就造不出来。
    amwyyyy
        121
    amwyyyy  
       2022-02-15 09:23:50 +08:00
    我最近刚用 Go 写了个小项目,写业务确实繁琐了不少
    nitmali
        122
    nitmali  
       2022-02-15 09:27:27 +08:00
    假的 现在都是用 js [doge]
    pythonee
        123
    pythonee  
       2022-02-15 09:35:12 +08:00
    @iwdmb Scala 的语法实在劝退
    shiganwuguo
        124
    shiganwuguo  
       2022-02-15 09:57:51 +08:00 via Android
    Go 业务方面实在拉跨 对于这么多年了连个像样的 web framework 都没有 连个像样的 orm 都没有
    laravel
        125
    laravel  
       2022-02-15 10:00:17 +08:00
    我都开始转 wordpress 了
    lysS
        126
    lysS  
       2022-02-15 10:02:23 +08:00
    @oIMOo 大哥这两你是怎么把他们放一起的?
    sanggao
        127
    sanggao  
       2022-02-15 10:06:25 +08:00
    golang 设计天生缺陷,写复杂业务痛不欲生,本质 go 对标的就是 c/c++ 你非要让 go 写 web?
    gongquanlin
        128
    gongquanlin  
       2022-02-15 10:09:34 +08:00   ❤️ 3
    go 生态不行就是不行,但是无状态应用写起来香的一批,启动快、部署快、无环境依赖,我想跑个 java/php 还得装环境先。。
    论写业务还是 laravel 快,快的一批,我现在本职 java ,公司写 spring
    单说 collection ,哪个工具包能比 laravel 的 collect 强大??哪个包能比 laravel 的工具包全??
    但是 laravel 慢就是慢,被 spring 吊着抽打,性能差了不是一点半点

    真正不行的不是语言,是人,生态不好那就自己造轮子啊,语言是死的人是活的,编程开发重要的是思想和逻辑,不是语言

    现在公司项目独立部署 srpingboot ,因为公司老哥们都只会 java 。
    自己和朋友做的项目全部 laravel + go ,香的一批,laravel 处理业务逻辑,go 处理爬虫、计算、websocket

    慢怎么办,慢就堆服务器啊,甲方爸爸有钱(狗头)
    oscaryc
        129
    oscaryc  
       2022-02-15 10:11:19 +08:00   ❤️ 2
    “很多公司”还是进化慢了点,我司 java 写的业务系统都已经写不下了去了,已经开始转汇编了,你们加油!
    sanggao
        130
    sanggao  
       2022-02-15 10:20:43 +08:00
    @gongquanlin php 的所有框架开发都不慢,本质还是 php 快速,因为 array 大杀神器,独步天下
    springmarker
        131
    springmarker  
       2022-02-15 10:25:55 +08:00
    https://blog.jetbrains.com/zh-hans/go/2021/02/19/the-state-of-go/

    统计里面中国人用的最多,其次日本
    还有很多人说 Go 适合中间件,然后还是写 web 的最多
    roundgis
        132
    roundgis  
       2022-02-15 10:28:15 +08:00 via Android
    C 都可以寫業務

    Go 有什麼不行的

    只要錢給夠
    gollwang
        133
    gollwang  
       2022-02-15 10:30:02 +08:00
    有句话叫啥来着:人不行怪路不平?
    huage2580
        134
    huage2580  
       2022-02-15 10:30:03 +08:00
    怎么还没吵起来,语言话题不行啊 还得上 IOS 和华为
    gongquanlin
        135
    gongquanlin  
       2022-02-15 10:30:14 +08:00
    @sanggao php 的 array 无敌
    springmarker
        136
    springmarker  
       2022-02-15 10:31:33 +08:00   ❤️ 1
    从体验上来看,Go 写 web 跟 java web 没法比,根本不是一个级别的。写 Go web 感觉回到了 java 裸写 servlet 的时代。
    虽然我接触的语言不算多,但是 GO 这种“大道至简”,在业务面前用着显得反而简陋。
    x940727
        137
    x940727  
       2022-02-15 10:32:38 +08:00
    @ch2 为什么头条都要阿里的人,甚至还使用阿里那套技术栈,甚至说管理风格?总归有原因的。就像上面的人说的把小微厂土老板唬住了,阿里的人不单单是去小公司能混的风生水起,去同级别的公司也一样很强势,创业成功率也相对来说高不少,福报+政委这套还是有点东西的。
    silentsky
        138
    silentsky  
       2022-02-15 10:44:09 +08:00
    业务上 go 还真比不上 java 写一些中间件还行
    hO0O0
        139
    hO0O0  
       2022-02-15 10:44:27 +08:00
    C 我选钝角
    sanggao
        140
    sanggao  
       2022-02-15 10:52:41 +08:00
    用 go 写 web 的那帮家伙,你们为什么不用纯 c 写 web ?
    LosLord
        141
    LosLord  
       2022-02-15 11:00:04 +08:00
    @sanggao #140 可以看楼上 jb 家的统计,都说 go 不适合写 web ,但是现在的 go 反而是 web 占比最多
    1016
        142
    1016  
       2022-02-15 11:00:14 +08:00
    你这个帖子 多少有点搞事情
    creanme
        143
    creanme  
       2022-02-15 11:00:56 +08:00
    @sanggao shopee 的人说他们在用 go 写业务啊,听说字节,腾讯,小米也是用 go 写业务
    superchijinpeng
        144
    superchijinpeng  
       2022-02-15 11:04:27 +08:00
    @LosLord 你从哪里看出来的,我怎么没看到
    LosLord
        145
    LosLord  
       2022-02-15 11:05:10 +08:00
    @creanme #143 既然这么火,肯定有人选择 Go 写业务,但是大厂用了,不代表他就是最适合的,每个语言都有大厂用。
    superchijinpeng
        147
    superchijinpeng  
       2022-02-15 11:10:37 +08:00
    @LosLord 这里哪里写了 Go Web 占比最多?
    ccppgo
        148
    ccppgo  
       2022-02-15 11:11:33 +08:00
    @gongquanlin laravel 的 collection 不就是 java 的 stream 么, 有啥区别
    LosLord
        149
    LosLord  
       2022-02-15 11:12:00 +08:00
    superchijinpeng
        150
    superchijinpeng  
       2022-02-15 11:14:06 +08:00
    @LosLord 这只是说 Go 开发的软件中,有 36% 是 Web 服务吧,不是 Go 在所有语言 Web 服务的占比吧
    Hanggi
        151
    Hanggi  
       2022-02-15 11:14:53 +08:00
    https://github.com/gin-gonic/gin
    https://github.com/labstack/echo
    https://github.com/beego/beego
    ...

    Go 写不了业务,这里起码 10 几万人不知道在干什么。。。可能在练习打字吧。
    LosLord
        152
    LosLord  
       2022-02-15 11:16:38 +08:00
    @superchijinpeng #150 我表达的就是这个意思啊,不然你以为呢
    superchijinpeng
        153
    superchijinpeng  
       2022-02-15 11:17:48 +08:00   ❤️ 1
    “都说 go 不适合写 web ,但是现在的 go 反而是 web 占比最多”

    可能是我阅读理解能力太差
    superchijinpeng
        154
    superchijinpeng  
       2022-02-15 11:18:10 +08:00
    Hanggi
        155
    Hanggi  
       2022-02-15 11:23:52 +08:00   ❤️ 2
    @superchijinpeng
    @LosLord
    很清楚啊,楼上很多人说 GO 不适合写 web ,但实际统计下来,写 Go 的人中写 web 的反而占比最高。
    也就是大部分写 Go 的人( 36%)都在写 web 。
    有啥不理解的? jb 统计数据写的啊。
    p23XnFNH1Wq953rV
        156
    p23XnFNH1Wq953rV  
       2022-02-15 11:27:47 +08:00
    不至于写不出来, 就是进度会慢一些, 除非新手乱写了
    cocong
        157
    cocong  
       2022-02-15 11:33:49 +08:00
    做业务的用啥语言都行,工具而已,业务写不下去多半是公司没钱了。
    newmlp
        158
    newmlp  
       2022-02-15 11:36:23 +08:00
    go 不行,java 更辣鸡,我们已经成立 cpp 组从核心业务开始重构
    twing37
        159
    twing37  
       2022-02-15 11:37:43 +08:00
    - go 里面有时候有些东西需要自己去实现, 对于动手能力不强的同学可能要抓瞎.
    - 当前位置卡在了不上不下的地方,追求极致性能,会考虑用 rust 这种,业务逻辑用 java/erl/python 不会便秘
    - java 这种开发起来就是很舒坦. 不用担心语言带来的影响.
    - go 总是自己玩自己的.go 参数类型那个真的一言难尽
    - 概念上的东西,有时候并不能够在 go 上套用 ,要么碎片化严重
    -
    liquid207
        160
    liquid207  
       2022-02-15 11:45:17 +08:00
    @gongquanlin @sanggao 方便是方便,但是没有详细的注释支持,维护者都不知道这 array 里都有啥,是 1d 的还是 2d 的。
    liquid207
        161
    liquid207  
       2022-02-15 11:47:26 +08:00
    # 128
    了解下 C# 中的 Linq?
    Sh4p
        162
    Sh4p  
       2022-02-15 11:56:45 +08:00   ❤️ 1
    让我看看这次吵得起来不
    thevita
        163
    thevita  
       2022-02-15 12:07:15 +08:00
    GO 的成功,最大的优势就是人.
    ----
    能以很低的成本快速培养“能写” GO 的人,GO NB 的地方就在于, 你就算瞎糊,只有逻辑上不出什么大问题,性能都还不错(对于业务代码来说),(参见身边很多 PHP 转 GO 的人的代码)

    但是这解决不了业务复杂后带来的可维护性问题,如果团队或者架构师这 GO 上没找到比较好的解法,Java 可能是一种 reasonable 的选择了
    -----
    说到底,业务的需求不同
    zzfly256
        164
    zzfly256  
       2022-02-15 12:16:31 +08:00
    @ipwx 还真有,我司也是,一个日常使用不超过 30 人的内部信息管理系统,强行上了微服务+K8S ,关键数据库还使用的同一个。。
    yazinnnn
        165
    yazinnnn  
       2022-02-15 12:18:23 +08:00
    为啥每次都能吵起来呢。。。。
    dany813
        166
    dany813  
       2022-02-15 12:19:41 +08:00   ❤️ 1
    哎,小项目还是 nodejs 香啊
    qiumaoyuan
        167
    qiumaoyuan  
       2022-02-15 13:16:27 +08:00
    @DuDuDu0o0 哈哈哈也可能是腾讯百度的
    NodeSans
        168
    NodeSans  
       2022-02-15 13:43:30 +08:00
    @sanggao go 好歹自带 gc ,有现代化包管理器,这都比 c 舒服多了
    paouke
        169
    paouke  
       2022-02-15 14:07:49 +08:00
    哎,现在这些公司真是太让人失望,我司现在都用 VHDL 写业务系统,上线直接薅 cpu 。
    SlipStupig
        170
    SlipStupig  
       2022-02-15 14:17:58 +08:00
    我还在用 python 呢,我是不是早就被时代淘汰了啊🤕
    springz
        171
    springz  
       2022-02-15 14:29:22 +08:00
    为啥不讨论 Rust ,Rust 写 API 我感觉比 Java 和 Go 都舒服。生态现在也很好,随便写写暴打 Go 的并发。
    AnonymousM
        172
    AnonymousM  
       2022-02-15 14:31:22 +08:00 via Android
    为啥不用 kotlin
    springz
        173
    springz  
       2022-02-15 14:31:35 +08:00
    建议可以先看看 Rust ,个人感觉比 Go 无论各个方面都更好一点。
    springz
        174
    springz  
       2022-02-15 14:37:08 +08:00
    C 写 API 其实体验很不错。我就用 C 写过 N 个。
    iyaozhen
        175
    iyaozhen  
       2022-02-15 14:38:57 +08:00
    @Chinsung 是说泛业务场景。一些特定领域肯定还是 java 适合

    字节还有很多其它业务,不仅仅是推荐,比如飞书 哈哈哈
    silentsky
        176
    silentsky  
       2022-02-15 14:40:59 +08:00
    用 go 开发业务系统可以提供多些就业岗位 何尝不是坏事 哈哈
    springz
        177
    springz  
       2022-02-15 14:43:04 +08:00
    C 如果用 Kore 这种 Web 框架,写的当时还觉得蛮爽的。
    springz
        178
    springz  
       2022-02-15 14:51:13 +08:00
    Rust 的基于 hyper 的 async 框架搭配 Pg 异步驱动,实际开发场景中轻轻松松 wrk 能跑到 Requests/sec: 60000 左右。实际开发场景哦。不是对 benchmark 优化。用 Kore 就更高了,看 Kore 的官网 benchmark 单纯输出 Requests/sec: 1000000 以上。
    springz
        179
    springz  
       2022-02-15 14:53:48 +08:00
    熟悉 C 或者 lua 的话,碰到一个公司直接 lua 写业务逻辑,直接 Nginx 插件。性能+好用。
    Jwyt
        180
    Jwyt  
       2022-02-15 15:18:00 +08:00
    @superchijinpeng 你以为用 go 写中间件的有多少,肯定大部分都是写 web 啊
    nekoyaki
        181
    nekoyaki  
       2022-02-15 16:12:30 +08:00
    是真的,我听说有好多朋友当男人当不下去了,改当女人去了
    wowbaby
        182
    wowbaby  
       2022-02-15 16:26:01 +08:00
    用 go 写业务,个人觉得是没事找事。
    NeoZephyr
        183
    NeoZephyr  
       2022-02-15 16:54:58 +08:00
    我看 B 站的业务也是 GO 写的,但是拆得真的很细,一个 app 里面代码不多,感觉挺好维护
    THESDZ
        184
    THESDZ  
       2022-02-15 17:28:06 +08:00
    个人感觉 Go 不适合业务复杂的情况,但适用于业务多但不复杂的情况。
    fromdark
        185
    fromdark  
       2022-02-15 17:37:26 +08:00
    很多区块链项目都是用 go 写的啊
    airport0930
        186
    airport0930  
       2022-02-15 17:48:16 +08:00
    是真的
    wentx
        187
    wentx  
       2022-02-15 17:49:15 +08:00
    什么时候打起来?
    zhixi
        188
    zhixi  
       2022-02-15 21:54:15 +08:00
    C++的祖传业务都活的好好的呢。go 写业务再难受总不会比 C++难受
    MarlonFan
        189
    MarlonFan  
       2022-02-15 23:33:57 +08:00
    是真的
    lxml
        190
    lxml  
       2022-02-16 00:38:46 +08:00
    看见前面说 java 有丰富的第三方库,开源项目,并且这些东西已经经过了时间检验,大多数人都在用。

    这是真不拿 log4j 和 fastjson 等当菜啊……

    Java
    neoblackcap
        191
    neoblackcap  
       2022-02-16 01:21:05 +08:00
    @springz 写 Rust ,能通过编译都挺不错了。
    dayeye2006199
        192
    dayeye2006199  
       2022-02-16 02:04:25 +08:00
    我在前公司观察下来,go 最有吸引力的一帮人是
    1. 在公司做基建产品 -- 网络、存储、计算三大件
    2. 往往用的都是 C++,天天和 c++ battle ,挖内存泄露
    3. 招人痛不欲生,候选人全跑去选产品组,没人想来和 C++battle

    这些人听说 go 之后都很开心的在新项目上开坑。

    感觉这个用户群里转语言很合理;写产品和业务逻辑的,抛弃了一个很好用的轮子( java ),转一波就有点不太能理解
    ihciah
        193
    ihciah  
       2022-02-16 02:07:59 +08:00 via iPhone
    @neoblackcap 遇事不决 Arc Clone Mutex ,不就行 Box::leak ,再不行就裸指针了🌚
    Zy143L
        194
    Zy143L  
       2022-02-16 04:59:40 +08:00 via Android   ❤️ 1
    是真的 我司 go 都写不下去了 开始用易语言写后端了
    qfdk
        195
    qfdk  
       2022-02-16 05:27:01 +08:00
    java 写业务,后来转到 node.js 了现在 自己测试 go 发现还是 node.js 最方便了
    FightPig
        196
    FightPig  
       2022-02-16 09:30:35 +08:00
    @springz rust 啥都好,一是学习曲线 陡,二是,编译实在太慢了,
    gongquanlin
        197
    gongquanlin  
       2022-02-16 09:37:30 +08:00
    @ccppgo collection 有很多非常方便的函数,stream 没有,比如 pluck ,之类的
    gongquanlin
        198
    gongquanlin  
       2022-02-16 09:41:07 +08:00
    @liquid207 这就是写代码的人的问题了,和语言或者框架木得关系~;
    像在我们公司,我和领导提的是开发规范按照阿里巴巴那套去做。我比较刚,凡是写代码不写注释的,不按规范命名变量的,全部打印出来 git 历史,截图发群里给所有开发看。多发几次就知道写注释了,哈哈

    好习惯是用绩效养成的 haha~
    ccppgo
        199
    ccppgo  
       2022-02-16 12:05:34 +08:00
    @gongquanlin pluck 这种 stream map 一下拿字段然后转 list 就是了, 感觉没有区别, 那些都是基于 map 再封装一次的函数, 还好吧, 毕竟这个是 jdk 本身的包, 不可能那么详细
    liquid207
        200
    liquid207  
       2022-02-16 12:14:54 +08:00
    @gongquanlin 可以使用工具 (PHPStan) 检查一部分,review 解决一部分。比如
    ```
    function test(): array
    {
    return [[1]];
    }
    ```
    这样的代码是过不了工具检查的,必要写成
    ```
    /**
    * @return array<int,array<int,int>>
    */
    function test(): array
    {
    return [[1]];
    }
    ```
    1  2  3  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   809 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 22:06 · PVG 06:06 · LAX 14:06 · JFK 17:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.