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

一直在说 go 相比 Java 生态上还差的很远,那么具体差在哪些地方呢?

  •  
  •   Sniper416 · Dec 6, 2019 · 14873 views
    This topic created in 2528 days ago, the information mentioned may be changed or developed.
    80 replies  •  2020-11-26 14:02:15 +08:00
    Leonard
    Leonard
    Dec 6, 2019❤️8
    1
    差在找不到工作
    Raymon111111
    Raymon111111
    Dec 6, 2019
    2
    举个例子说, 各种中间件的交互

    java 都是非常成熟的
    Sniper416
    Sniper416
    OP
    Dec 6, 2019
    3
    @Leonard 这倒是
    zunceng
    zunceng
    Dec 6, 2019
    4
    k8s 云原生这套 早已超出语言的范畴了 所有语言都一样 我都不知道他们说的生态是指什么
    392039757
    392039757
    Dec 6, 2019
    5
    java 各种轮子都很多,很多项目里面都有代码生成的插件,开发效率很高
    Citrus
    Citrus
    Dec 6, 2019
    6
    Java 想要干什么,基本上都有 1 ~ 2 个最成熟的,用的人非常多的库可以选择。而 Go,先不说库不多,经常还会出现找到一堆库,Star Commit Watch 都差不多,不知道用什么好。
    另外依赖管理这个用过的都懂,也没啥好说的了。。。
    sonxzjw
    sonxzjw
    Dec 6, 2019❤️1
    7
    指的是各个领域(鉴权、数据库操作、api 等这些领域)的可选度和成熟度没有 java 的好
    在某些所谓的“x 级架构师”角度看,就是在找“架子”的时候不能像方便面一样随手拿随手就能吃得香
    wangxiaoaer
    wangxiaoaer
    Dec 6, 2019
    8
    我就想问一下,go 能不能在不提供源码的情况下提供类库供第三方调用并支持跨平台?
    manami
    manami
    Dec 6, 2019 via Android
    9
    对比 java,移动端生态这个软肋明显
    raincode
    raincode
    Dec 6, 2019
    10
    web 上没 spring 这种量级的框架,大多数程序员还是做 web 居多吧
    DelayNoMore
    DelayNoMore
    Dec 6, 2019
    11
    java 是调包语言,go 是造轮子语言
    Yoock
    Yoock
    Dec 6, 2019 via iPhone
    12
    大数据这块 go 很弱,而且深度学习方面 go 也几乎为 0
    fengjianxinghun
    fengjianxinghun
    Dec 6, 2019
    13
    @Yoock 大数据就算了,深度学习不都是调 c++/cuda so 么,什么语言有啥区别。
    wuwukai007
    wuwukai007
    Dec 6, 2019
    14
    现在处于造轮子阶段,java 处于优化轮子阶段,品一下
    murmur
    murmur
    Dec 6, 2019
    15
    go 还在造轮子,java 已经开始布局立体车库了
    gamexg
    gamexg
    Dec 6, 2019 via Android
    16
    @wangxiaoaer 可以作为第三方库
    Vegetable
    Vegetable
    Dec 6, 2019
    17
    @wangxiaoaer 可以吧,不过还是通过 c 来做,类似这种 http://snowsyn.net/2016/09/11/creating-shared-libraries-in-go/
    Vegetable
    Vegetable
    Dec 6, 2019
    18
    @Vegetable https://medium.com/@shijuvar/using-binary-only-packages-in-go-667bd7b123c8 这个文章也再说,不过自己没试过,好像有 //go:binary-only-package 的编译标签
    fengjianxinghun
    fengjianxinghun
    Dec 6, 2019
    19
    @Vegetable 不能跨平台,都编译成 so 二进制了,那显然平台架构相关。
    hijoker
    hijoker
    Dec 6, 2019
    20
    就一句话,大数据相关,你看看基本都是 Java 的天下
    Java 的生态是最完善的,这一点毋庸置疑
    hijoker
    hijoker
    Dec 6, 2019
    21
    @Leonard 哈哈哈,的确
    javapythongo
    javapythongo
    Dec 6, 2019 via iPhone❤️1
    22
    kafka 没一个好用的客户端...
    Vegetable
    Vegetable
    Dec 6, 2019
    23
    @fengjianxinghun 这倒是,不过这个对于没有 vm 的非脚本语言来说,不是很现实的样子
    kernelpanic
    kernelpanic
    Dec 6, 2019❤️1
    24
    库的质量,java 的很多库都是经过大厂验证过的
    hongzz
    hongzz
    Dec 6, 2019
    25
    @Leonard 真实
    lhx2008
    lhx2008
    Dec 6, 2019 via Android
    26
    做 web 的话,java springboot 搭架子方便点,其他配件也就那样,随便用用也都是坑
    robot1
    robot1
    Dec 6, 2019
    27
    宁愿光脚,我也不愿缠裹脚布
    aeli
    aeli
    Dec 6, 2019
    28
    大批量便宜的基础码农
    zunceng
    zunceng
    Dec 6, 2019
    29
    k8s docker 是 golang 开发的 java 的程序就不能跑上面了?
    tensorflow 也有提供 golang 和 java 的 language bindings

    给自己划了个圈子 还说在这个圈子里别人生态上还差很远 真实黑人问好脸了
    Sendya
    Sendya
    Dec 6, 2019
    30
    可能是一行代码跑个 world 和一行代码跑个 "hello world" ?
    Mohanson
    Mohanson
    Dec 6, 2019 via Android
    31
    最美不过夕阳红
    fox0001
    fox0001
    Dec 6, 2019 via Android
    32
    spring 已经超过 10 年的验证,go 没有这种库
    gvinaxu
    gvinaxu
    Dec 6, 2019
    33
    宁愿光脚,我也不愿缠裹脚布
    reus
    reus
    Dec 6, 2019
    34
    @Citrus 2019 年了还拿依赖管理说事,只能说是知识过时。
    zjsxwc
    zjsxwc
    Dec 6, 2019 via Android
    35
    思考了下嗯~~ golang 相比 java 不能写安卓程序
    HuHui
    HuHui
    Dec 6, 2019
    36
    开发用的 ide 都不是很成熟
    Moker
    Moker
    Dec 6, 2019
    37
    @wangxiaoaer golang 的 plugins 功能 不过现在支持有限
    uxstone
    uxstone
    Dec 6, 2019❤️2
    38
    说句难听的,nodejs 的包管理做的都比 golang 的好用
    secondwtq
    secondwtq
    Dec 6, 2019
    39
    我猜是差一堆历史包袱?
    gowk
    gowk
    Dec 6, 2019 via Android❤️1
    40
    宁愿光脚,我也不愿缠裹脚布
    Foreverdxa
    Foreverdxa
    Dec 6, 2019
    41
    看看大家的评论的就行了,哈哈
    yixinlove
    yixinlove
    Dec 6, 2019
    42
    @javapythongo 我现在用的 Shopify/sarama 库感觉还可以,也比较成熟,start 数不少
    qoras
    qoras
    Dec 6, 2019
    43
    组件成熟度相差较大, 基本所有业务场景 java 都有现成经过检验的方案
    guokeke
    guokeke
    Dec 6, 2019
    44
    @uxstone npm: 难听的???
    gimp
    gimp
    Dec 6, 2019
    45
    举一个例子吧,最近工作用遇到的

    组里项目需要对接一个平台 HTTPS 接口,因为是私网,证书是自签的,我用 Rust 写的中间件调用,各种问题,最后没办法,用平台提供的 Java 示例并修改 JDK 相关安全配置解决了

    不是说其它语言解决不了,而是如果我继续用 Rust ( Python,Node.js 同理)需要花费很长的时间来验证,在私网调试很麻烦的前提下,老老实实用平台提供的例子完成功能对接,就是最正确的选择
    InkAndBanner
    InkAndBanner
    Dec 7, 2019
    46
    本来还打算等自己技术成熟了开始搞搞 golang,看了大家的评论有点劝退啊哈哈哈哈哈
    Trim21
    Trim21
    Dec 7, 2019 via Android
    47
    @uxstone npm 能算是差的例子吗…
    lxml
    lxml
    Dec 7, 2019 via Android
    48
    @uxstone 没懂,能举个例子,差在哪儿?
    blless
    blless
    Dec 7, 2019 via Android
    49
    @zjsxwc gomobile 了解下
    ppphp
    ppphp
    Dec 7, 2019❤️1
    50
    依赖社区的程度主要是取决于程序员的能力和乱七八糟的需求的复杂程度,比如鉴权代码,有的程序员只能调官方 sdk,有的能撸一份,但是其中的加密解密库需要依赖标准库,有一些程序员可以从矩阵加加减减开始写,还有的直接拿针在光盘上戳戳就好了。
    工作里学 sdk 库和开发库的效率,需要程序员能力的工资始终是很复杂的问题,举例 sdk 改改就不能用了,deprecated 了。
    cosmtrek
    cosmtrek
    Dec 7, 2019
    51
    @HuHui 你可以试下 goland 2019.3
    okwork
    okwork
    Dec 7, 2019 via Android
    52
    #45 楼提到的这个问题是普遍的,不是大厂的话,多少都会依赖第三方 sdk,厂商大多提供 JAVA,PHP,Python 等语言的 sdk,其他语言的很少,只能自己写。
    passerbytiny
    passerbytiny
    Dec 7, 2019
    53
    Spring @ Pivotal @ 戴尔 /EMC/VMware
    Hibernate @ Jboss @ Red Hat @ IBM
    在提 Red Hat 之前,IBM 就是 Java 社区的重头贡献者,并且 IBM 的商用方案有不少是用 Java 实现的
    Oracle 是不是 Java 的重头贡献者另说,但它确定是 Java 的重度依赖者

    而 Go 呢,就一个 Google。就这还有人有“Go 是 Google 的,不是社区的”的怨念。
    wpf375516041851
    wpf375516041851
    Dec 7, 2019❤️1
    54
    Java 的圈子人多,声音大,工作多,低中高档都有,golang 十年圈子还那么大,未来是云的天下,但开发云的人就那么多,程序员正在杀死程序员
    rophie123
    rophie123
    Dec 7, 2019 via Android❤️1
    55
    golang 招不到人啊,我们慢慢改 Java 了
    66Zi2nJk5Z6mdtzj
    66Zi2nJk5Z6mdtzj
    Dec 7, 2019
    56
    初学 go,但是用了 Java 好多年。go 有 go 的好处,自从用了 go,我好多的插件,首选是 go,不用装各种依赖,配置各种环境,丢更新别人直接就可用,这个是让我最开心的。说说,最近用 go 还不习惯的地方:
    1. 缺乏好用和统一的版本依赖管理。go modules 的版本管理( gomobile 还不支持),严重依赖 tag,好多旧的项目不规范,用起来还是不好用。
    2. 第三方类库,Java 有 Apache 和 guava, go 我还没有找到类型这样的比较全面的类库用(初学,如果有人推荐,先谢谢啦)。

    其它的不是太麻烦,就是需要了要在网上找一找就行了。至于框架的选择,确实没办法,我想选个 orm,就发现有好多: beego orm、gorm、sqlx、gorp、xorm,也没有很官方或者权威的推荐,朋友都说不要用,让我改改我的思维了。
    charlie21
    charlie21
    Dec 7, 2019
    57
    C 语言和 Java 差在哪里呢?

    慌个屁
    reus
    reus
    Dec 7, 2019❤️3
    58
    差在没人给巨婴喂饭,差在南郭先生没法混下去。
    苍蝇才需要屎山做生态。
    Nazz
    Nazz
    Dec 7, 2019
    59
    @wangxiaoaer WASM 了解下
    mz02005
    mz02005
    Dec 7, 2019 via iPhone
    60
    无非就是轮子的多少,java 轮子多,很多功能都有人帮你写好了,你的工作量不就少了
    zibber
    zibber
    Dec 7, 2019
    61
    统一天下的框架
    jeffh
    jeffh
    Dec 7, 2019
    62
    java 码农便宜,并且有很多成熟的解决方案,社区里的东西很完善,不会有解决不了的问题
    fanpei0121
    fanpei0121
    Dec 7, 2019
    63
    用 go 一年多,没觉得生态差,该有的都有。
    SpiderXiantang
    SpiderXiantang
    Dec 7, 2019
    64
    都没到点子上 java 牛在 JVM 我现在做得 scala 用的全是 java 的类库
    594duck
    594duck
    Dec 7, 2019
    65
    不出所料,GO 们上线开始喷了,连工程都不懂的 K8S 们也上来了。看戏
    hangszhang
    hangszhang
    Dec 7, 2019
    66
    Spring 就是 Java 最强的护城河
    iyaozhen
    iyaozhen
    Dec 7, 2019
    67
    最明显的就是大数据这块,只能用 Java。

    web 这块也缺少 spring 这种大统的框架
    blless
    blless
    Dec 7, 2019
    68
    @hangszhang 稍微大点的厂自写一个框架也不算难事,而且如果真的用现在云原生趋势来看,原本很多框架集成的功能,正在慢慢从语言层面剥除,比如现在火热的服务网格。业务只需要按照接口标准完成请求,其余安全、流量、监控等很多原本语言强大生态带来的优势,在新的云原生框架下荡然无存。并不是说 JAVA 也不能用这些特性,但是很大程度上其实是进一步削弱了语言生态优势。尤其是在 web 开发领域,我并不觉得 JAVA 有任何优势,我上次看 Dubbo 已经有 Go 的实现了。
    wzwwzw
    wzwwzw
    Dec 7, 2019❤️1
    69
    招人不容易吧,毕竟 Java 马上上千人投简历。
    gejun123456
    gejun123456
    Dec 8, 2019 via iPhone
    70
    @blless 大厂基本都用的 spring,dubbo 加 springboot 用起来更方便。
    useben
    useben
    Dec 8, 2019
    71
    哪个东西不是逐渐发展起来的
    nicevar
    nicevar
    Dec 8, 2019
    72
    Java 程序稳定的东西太多了,目前 go 这方面还很欠缺,比如第三方库,Java 能找出一大堆,Go 很多都没有,或者有那么几个还到处都是 bug,根本无法用于生存环境
    fuyufjh
    fuyufjh
    Dec 8, 2019
    73
    其实并没有高下之分,只是后端程序员们用惯了 spring 之类的框架不愿意换而已
    default7
    default7
    Dec 8, 2019
    74
    @wpf375516041851 「程序员正在杀死程序员」确实如此!
    wingoo
    wingoo
    Dec 8, 2019
    75
    还是要看中趋势
    趋势是 大一统的框架会被弱化, 最终会当做基础设施, 就像虚拟机一样, 只需考虑你的负载需求
    实现的语言层面随意, 但冗余的最终会被替代
    Rorysky
    Rorysky
    Dec 8, 2019
    76
    谈生态,我 C#服过谁?
    jrtzxh020
    jrtzxh020
    Dec 9, 2019
    77
    @Trim21 npm 虽然缺点很多,至少上手简单,能解决 90%以上日常开发依赖包问题。
    cco
    cco
    Dec 9, 2019❤️2
    78
    Go 项目组很难招到 Go 开发者。
    Go 开发者很难找到 Go 语言开发的工作。
    另外,上面大批 Go 吹大约没脑子,我又会写 Java,又会写 Go,差了啥了?还是说你们就只会 Go,作为既得利益者,死命喷其他语言,来提高你们的利益?
    编程语言是工具,并且大多都相通的,不清楚有什么好喷的,有这时间去给 Go 造造轮子不好么?
    另外,回答题主问题,差哪了?举个栗子,参考 AWS 和 VPS 的差别。
    liuyibao
    liuyibao
    Nov 26, 2020
    79
    Go 做 web 开发生态确实差,都自己造轮子,轮子还很差劲。不说别的,就说数据操作这块,有 mybatis,jpa 这种稳定好用大家共识的库么
    liuyibao
    liuyibao
    Nov 26, 2020
    80
    都 2020 年了啊。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1443 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 147ms · UTC 04:47 · PVG 12:47 · LAX 20:47 · JFK 23:47
    ♥ Do have faith in what you're doing.