• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xstress
V2EX  ›  程序员

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

  •  2
     
  •   xstress · Feb 14, 2022 · 32860 views
    This topic created in 1579 days ago, the information mentioned may be changed or developed.
    211 replies    2022-02-17 10:29:01 +08:00
    1  2  3  
    yuekcc
        101
    yuekcc  
       Feb 14, 2022
    js 成最后赢家
    XCFOX
        102
    XCFOX  
       Feb 15, 2022   ❤️ 1
    有一说一,Go 语言设计的真不怎么样
    ClericPy
        103
    ClericPy  
       Feb 15, 2022   ❤️ 1
    现东家对 go 的评价就是: 好学是好学, 但煞都木有啊... 再磨合两年吧, 大厂即生态, 小厂跟着看就好了

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

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

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

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

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

    Go 有什麼不行的

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

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

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

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

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

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

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

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

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

    好习惯是用绩效养成的 haha~
    ccppgo
        199
    ccppgo  
       Feb 16, 2022
    @gongquanlin pluck 这种 stream map 一下拿字段然后转 list 就是了, 感觉没有区别, 那些都是基于 map 再封装一次的函数, 还好吧, 毕竟这个是 jdk 本身的包, 不可能那么详细
    liquid207
        200
    liquid207  
       Feb 16, 2022
    @gongquanlin 可以使用工具 (PHPStan) 检查一部分,review 解决一部分。比如
    ```
    function test(): array
    {
    return [[1]];
    }
    ```
    这样的代码是过不了工具检查的,必要写成
    ```
    /**
    * @return array<int,array<int,int>>
    */
    function test(): array
    {
    return [[1]];
    }
    ```
    1  2  3  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   903 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 208ms · UTC 21:46 · PVG 05:46 · LAX 14:46 · JFK 17:46
    ♥ Do have faith in what you're doing.