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

不要再拿 Golang 与 Java 作比较

  •  1
     
  •   josephok · 2021-09-12 11:55:56 +08:00 via Android · 17562 次点击
    这是一个创建于 1172 天前的主题,其中的信息可能已经有所发展或是发生改变。
    以下是我从《 Go 语言高级编程》一书中摘录的部分内容,简述了 Go 语言开发的初衷。

    Go 语言最初由谷歌公司的 Robert Griesemer 、Ken Thompson 和 Rob Pike 这 3 位技术大咖于 2007 年开始设计发明,设计新语言的最初动力来自对超级复杂的 C++11 特性的吹捧报告的鄙视,最终的目标是设计网络和多核时代的 C 语言。到 2008 年中期,在语言的大部分特性设计已经完成并开始着手实现编译器和运行时,Russ Cox 作为主力开发者加入。到 2010 年,Go 语言已经逐步趋于稳定,并在 9 月正式发布并开源了代码。
    Go 语言很多时候被描述为“类 C 语言”,或者“21 世纪的 C 语言”。从各种角度看,Go 语言确实是从 C 语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等诸多编程思想,并彻底继承和发扬了 C 语言简单直接的暴力编程哲学等。


    从上面的描述可以看出,Go 语言的目标是占领一部分 c 和 c++的市场,和 Java 语言毫无关系,再拿来作比较就有点牵强附会了。
    102 条回复    2021-11-10 18:26:02 +08:00
    1  2  
    Bazingal
        1
    Bazingal  
       2021-09-12 12:01:06 +08:00   ❤️ 28
    既然很多人拿 Go 做 web 业务,为什么不能比
    Al0rid4l
        2
    Al0rid4l  
       2021-09-12 12:01:27 +08:00
    初衷(指某种主观意愿而非客观事实
    尽信书则不如...
    wd
        3
    wd  
       2021-09-12 12:02:46 +08:00 via iPhone   ❤️ 1
    应该比不过 java
    momowei
        4
    momowei  
       2021-09-12 12:03:49 +08:00
    一般中小型 curd 应用 go 大概占用内存是多少
    josephok
        5
    josephok  
    OP
       2021-09-12 12:06:55 +08:00 via Android
    @Bazingal 做 Web 业务的又不是只有这 2 个语言,几乎所有的语言都可以拿来做 web 吧,语言做比较得看他们的相似性。
    stimw
        6
    stimw  
       2021-09-12 12:08:12 +08:00 via Android   ❤️ 16
    js 的设计初衷还是解决'简单'的网页互动呢...
    python 的设计初衷是为了打发无聊的时间,继承 ABC...

    初衷不能说明什么问题
    SuperManNoPain
        7
    SuperManNoPain  
       2021-09-12 12:08:53 +08:00
    确实
    josephok
        8
    josephok  
    OP
       2021-09-12 12:10:28 +08:00 via Android
    @stimw 抛开初衷不讲,Go 语言更像 c 语言吧,除了使用 gc,就这点和 Java 类似,其他的地方好真没什么相似点。
    echo1937
        9
    echo1937  
       2021-09-12 12:12:56 +08:00
    可能 Go 语言的目标是占领一部分 c 和 c++的市场,初衷是成为系统级编程语言,
    https://www.imooc.com/read/87/article/2320

    但实际上这个“系统级”慢慢从“(操作)系统级”变成了“平台系统级”,

    到现在又变成了“应用系统级”,总体上是在往上层走,目标开始占领 Python 、Java 的一部分市场。
    josephok
        10
    josephok  
    OP
       2021-09-12 12:16:59 +08:00 via Android
    @echo1937 有 gc 的语言,操作系统级不太可能,平台系统级我是赞成的,但写业务应用还真不是 Go 的强项,有这需求就用 Java 去了。
    echo1937
        11
    echo1937  
       2021-09-12 12:20:54 +08:00
    @josephok #10 我也认同你的看法,但是社区里最多的就是 中小型开源 Web 应用二次开发者,自然有大量的人拿来写业务。GO 最合适的场景应该是用来写“平台系统级”的中间件。
    Mohanson
        12
    Mohanson  
       2021-09-12 12:22:32 +08:00 via Android   ❤️ 1
    网络和多核的 c, 一种文艺复兴,go 的流行是有相当大一部分开发者已经无法忍受无穷无尽的语法糖,封装,特性和黑魔法而选择直接用 c 的思想去开发应用,less is more, 另外我坚决反对泛型,如果 1.18 后 go 像 rust 那样出现滥用泛型的趋势会考虑选择新的语言
    ahmcsxcc
        13
    ahmcsxcc  
       2021-09-12 12:22:49 +08:00
    感觉没多少人从 c/c++转到 go

    大部分都是从 python,php,java 转的
    Jooooooooo
        14
    Jooooooooo  
       2021-09-12 12:29:36 +08:00
    谁在用 c 写服务端后台啊?
    hronro
        15
    hronro  
       2021-09-12 12:39:45 +08:00 via iPhone
    除了历史遗留项目,现在哪家公司在用 C/C++ 写 web 后端?用 Go 来写的公司却有很多。所以为啥不能和 Java 比?
    charlie21
        16
    charlie21  
       2021-09-12 12:42:07 +08:00
    大胆一点。golang 带来的革命性 ... 编程语言就是工具 ...

    屠刀也是工具 那么要图图谁呢 这掌握在拿工具的人的头脑里,不掌握在被图图的人的手里
    josephok
        17
    josephok  
    OP
       2021-09-12 12:51:17 +08:00 via Android
    @hronro go 并不适合写 web 应用,更适合写平台系统级的中间件,你可以看我的回复。
    hronro
        18
    hronro  
       2021-09-12 12:53:49 +08:00 via iPhone
    你觉得不合适,可还是有公司这么干了。所以有人拿来比较也是很正常的
    janus77
        19
    janus77  
       2021-09-12 12:55:36 +08:00
    之前看到过一句话 java 的最大优势就是让良莠不齐的人也能写出差不多的代码 这是作为企业级开发无可替代的 能大大降低你的成本。其他的一切都是围绕这个点展开的 无论是完善的生态 还是各种各样的设计模式、架构和范式。
    至于对比之下的那些缺点 比如速度慢 编译慢、工具链复杂 优化有限 不够优雅 这些差距再大也不至于让一整个团队乃至公司切换语言 反而会因为越来越完善的生态 说不定某个框架的版本号改一下就可以缩小。
    EPr2hh6LADQWqRVH
        20
    EPr2hh6LADQWqRVH  
       2021-09-12 12:56:14 +08:00
    毕竟 21 世纪 PHP
    TypeError
        21
    TypeError  
       2021-09-12 12:57:30 +08:00 via Android
    @Mohanson 什么叫滥用泛型,go 的泛型提案看起来还是蛮简单的吧,不像其他语言还要纠结什么逆变协变
    aloxaf
        22
    aloxaf  
       2021-09-12 12:57:39 +08:00   ❤️ 2
    我觉得你误解了上面那段话
    「设计网络和多核时代的 C 语言」不代表对标 C 语言,更多的是表达希望在网络时代取得 C 语言在「旧时代」(姑且这么称呼)的地位
    真和 C/C++ 语言对标那不自找没趣吗,请问 Go 占领了多少 C/C++ 的市场?
    fiypig
        23
    fiypig  
       2021-09-12 12:58:14 +08:00 via iPhone
    哈哈哈,有点 PHP 的意思了,反正我全部语言就喜欢 go,但 Java 是我未完成的梦,我尊敬 Java 。
    zjsxwc
        24
    zjsxwc  
       2021-09-12 13:02:53 +08:00 via Android
    不要再拿 Java 与 PHP 作比较了,PHP 毫无疑问是目前主流语言中写业务是最快的。
    limbo0
        25
    limbo0  
       2021-09-12 13:27:49 +08:00
    主要还是生态的问题, 语言从来不是问题
    iseki
        26
    iseki  
       2021-09-12 13:31:49 +08:00 via Android
    确实,Go 取代的应该是某些场景下的 C,而不是动不动就搞 CURD 的 Web
    Mohanson
        27
    Mohanson  
       2021-09-12 13:34:07 +08:00 via Android
    @TypeError 我指第三方库,泛型滥用 /模板地狱都是这种类型语言的老问题了
    WhoMercy
        28
    WhoMercy  
       2021-09-12 13:41:14 +08:00
    不成熟的一点见解,两者在 web 开发的比较,

    Go 的优势是快,运行快、开发快、控制力强

    Java 的优势是稳,性能稳、架构稳、工具多、黑盒多、设计多

    至于两者的优劣对比嘛。。。
    倒不如说是根据开发人员来做选择,
    老手开发的新项目、短期项目可以考虑 Go,
    新手但又需要长时间迭代开发、复杂功能多可以准备 Java

    如果有不同意见默认你对:-)
    Cbdy
        29
    Cbdy  
       2021-09-12 13:47:05 +08:00   ❤️ 2
    巧了,Java 的目标也是占领一部分 C++的市场
    danc
        30
    danc  
       2021-09-12 13:58:21 +08:00
    为啥要比???比也是 Javaer 在比,正经的 Gör,眼里没有 Java 的,目中无人的那种状态,懂吧
    h280254082
        31
    h280254082  
       2021-09-12 14:01:32 +08:00
    @aloxaf 实际运用中还是占了不少的。。。比如大厂里面 C/C++的腾讯转了大量的 Go 吧
    wangxn
        32
    wangxn  
       2021-09-12 14:04:22 +08:00
    @aloxaf 至少在 Docker 这种云计算场景,和区块链场景,它是确确实实侵蚀了一部分 C/C++ 的应用场景。
    比特币的代码是 C++,但新的山寨币几乎没有是用 C++ 实现的,基本都是 Go 和 Rust 。
    zhoudaiyu
        33
    zhoudaiyu  
       2021-09-12 14:25:40 +08:00 via iPhone
    @josephok 平台系统级中间件指的是?类似 SSO 这种?
    ke1e
        34
    ke1e  
       2021-09-12 14:26:28 +08:00
    带 GC 的语言,怎么可能替代 c,Rust 还差不多
    cnbattle
        35
    cnbattle  
       2021-09-12 14:26:31 +08:00
    lz 能发出这样的内容,说明自己已经比较过了,那为啥也不用别人的比较,有点迷 0.0
    6IbA2bj5ip3tK49j
        37
    6IbA2bj5ip3tK49j  
       2021-09-12 15:21:34 +08:00   ❤️ 8
    分享分辨 Go 吹的一个方法:声称 Go Web 开发快。
    要么压根没写过 Go,要么只写过 Go 。
    x940727
        38
    x940727  
       2021-09-12 15:26:51 +08:00   ❤️ 6
    其实大部分用 Go 写 Web 的,都是 Java 卷不动去卷 Go 了,认为自己用 Go 就能和大神一样的起跑线(因为 Java 大神太多了,起步就晚了)。
    Zien
        39
    Zien  
       2021-09-12 15:54:23 +08:00
    因为应用,才会比较。
    谁管你初衷是什么。。。
    Froyo9
        40
    Froyo9  
       2021-09-12 15:56:40 +08:00
    go web 开发感觉还是挺好的呀
    fkdog
        41
    fkdog  
       2021-09-12 16:26:52 +08:00
    如果就谈业务逻辑的话,公司小、业务简单、架构不复杂,你用 go java php python ruby node 甚至 asp 都没问题。
    如果业务复杂、人员多、流动性强、架构需求稳定,我觉得时间自然会说明一切,各大公司都会用脚投票选择什么语言。

    前几年淘系的人很喜欢在网上布道 nodejs,nodejs 也的确是火了一阵。2021 nodejs 怕是基本已经萎缩成 webpack 、npm 一类的平台工具了。
    littlewing
        42
    littlewing  
       2021-09-12 17:14:41 +08:00
    想要占领 C/C++也轮不到 Golang,Rust 还在排队等着呢
    okampfer
        43
    okampfer  
       2021-09-12 17:53:58 +08:00
    @fkdog #41
    确实,估计是尝试了一波 nodejs 之后,发现还是 Java 、Spring 最成熟。

    话说现在“大前端”这个概念还火吗?
    golangLover
        44
    golangLover  
       2021-09-12 17:57:10 +08:00 via Android
    @okampfer #43 你们觉得 node 缺了什么使得不如 spring. 有用上 ts 吗?
    Keyes
        45
    Keyes  
       2021-09-12 18:00:35 +08:00 via iPhone
    锤子拧螺丝不好用->螺丝刀拧螺丝好用—>结论:锤子是垃圾->讨论为什么锤子不好用->既然有人用锤子拧螺丝为什么不能把锤子和螺丝刀比
    witcherhope
        46
    witcherhope  
       2021-09-12 18:49:56 +08:00 via iPhone
    Java 强大的是 JSR 那套社区规范,规范成就生态,尽量避免重复造轮子,即使重复造的轮子共用一套规范也能无缝切换。
    chevalier
        47
    chevalier  
       2021-09-12 19:03:18 +08:00
    小孩子才争论语言优劣,成年人只选择赚钱多的语言
    herozzm
        48
    herozzm  
       2021-09-12 19:07:12 +08:00
    web 选 java php 等
    运维级,小工具,爬虫类,轻量级 api 选 golang
    完事了
    2kCS5c0b0ITXE5k2
        49
    2kCS5c0b0ITXE5k2  
       2021-09-12 19:21:14 +08:00
    起码 Golang 看起来没那么啰里啰唆.. Java 看起来真的太罗嗦了.
    liuhan907
        50
    liuhan907  
       2021-09-12 19:22:23 +08:00   ❤️ 1
    @Mohanson 那我觉得你很可能找不到适合的语言,主流语言里除了 Go 现在似乎没有不支持泛型的得了。
    chenyu0532
        51
    chenyu0532  
       2021-09-12 19:41:34 +08:00
    哪个能赚到更多的钱用哪个,争论个毛线。
    薪资才是王道
    xuanbg
        52
    xuanbg  
       2021-09-12 19:54:17 +08:00   ❤️ 1
    Java 也可以写得一点都不啰嗦。
    dcoder
        53
    dcoder  
       2021-09-12 23:16:15 +08:00
    然而结果是, Go 就是在抢占 Java, Python, Ruby, Node 等等的市场
    XIVN1987
        54
    XIVN1987  
       2021-09-12 23:29:49 +08:00
    Go 带 GC,,只能干 Java 的工作,,C/C++的工作 Go 干不了
    icy37785
        55
    icy37785  
       2021-09-12 23:53:14 +08:00
    本来我并不觉得 Go 和 Java 有啥好放一起比较的
    但是楼主从设计最初目的是对 C++ 的不满而认为,Go 应该是对标 C 和 C++。
    那么楼主可以看看 Java 的设计目的,巧了,Java 的设计目的也是对 C 和 C++ 的不满,甚至不止是 Java,市面上大部分的语言设计之初都是因为出于对 C 和 C++ 的不满。
    都是处于对 C 和 C++ 的不满设计出来的语言,互相之间比较一下也正常吧。
    有人比就是因为两个语言在同一个使用场景之中出现了,你硬说两者毫无关系,感觉你的说法比较牵强。
    w3cll
        56
    w3cll  
       2021-09-13 00:04:22 +08:00   ❤️ 4
    PHP:这个时候我声都不敢奏
    wunonglin
        57
    wunonglin  
       2021-09-13 00:51:24 +08:00   ❤️ 2
    @w3cll #56 PHP:“我始终是最好的语言”
    westoy
        58
    westoy  
       2021-09-13 00:51:45 +08:00
    然而 go 一直到 1.5 才支持编译成动态链接库
    Jwyt
        59
    Jwyt  
       2021-09-13 01:05:19 +08:00
    现阶段 go 对比的就是 java php 的传统后端语言吧
    Rust 对比 c/c++更为合理一些
    Hanggi
        60
    Hanggi  
       2021-09-13 07:33:11 +08:00
    如果 Go 语言没有诞生现在大部分云原生项目( K8s...)可能就是 Java 写的,如果 Go 语言没有诞生 Docker 可能就是 Python 写的。
    如果没有 Go 语言国内一些厂家( B 站,头条...)说不定就用 Java 做服务端语言了。

    所以不要再拿 Golang 与 Java 作比较了,Go 跟 Java 毫无关系。
    因为用了 Go 就没 Java 什么事了。
    respawn
        61
    respawn  
       2021-09-13 08:01:57 +08:00   ❤️ 1
    先抛开语言特性与语言生态层面,
    单讲背后的 Google,Sun 和 Oracle,就必定会有故事,
    并且你发的帖子里有 Golang 的几个时间点,有趣的是对应时间 Java 阵营都发生了些什么?
    Google 缺少一种自家主导的主流编程语言,那时那刻那情形下 Golang 诞生,两者便避不开要被"比较".
    paoqi2048
        62
    paoqi2048  
       2021-09-13 08:23:09 +08:00
    然而事实上就是 Go 已经在和 Java 交火……
    sagaxu
        63
    sagaxu  
       2021-09-13 08:25:59 +08:00 via Android
    @Hanggi 字节服务端招聘,Java 比 Go 多
    lonenol
        64
    lonenol  
       2021-09-13 09:17:26 +08:00
    我总感觉是 go 的使用者在和 java 比较。。。
    java 程序员都在专心 crud 。。
    cocoabeans
        65
    cocoabeans  
       2021-09-13 09:30:52 +08:00
    能撼动 Java 地位的,只有生态和 Java 的新特性。
    darknoll
        66
    darknoll  
       2021-09-13 09:47:10 +08:00
    我当初还想学 rust 呢,不比这个 java 强多了,最后还是学了 go,要吃饭啊
    fox0001
        67
    fox0001  
       2021-09-13 09:50:02 +08:00 via Android
    纯粹语言之间的对比,确实没意思。但是考虑到需求、开发、部署等场景进行技术选型,为什么不能对比?

    比如开发后端 api,可以选择 Java 、Go 、PHP 、Python 等等。要采用哪个语言,就要从各方面做对比吧?
    qwerthhusn
        68
    qwerthhusn  
       2021-09-13 09:53:31 +08:00
    别拿初衷说事,我的初衷还是瑟辉逐一接班人呢,
    keepeye
        69
    keepeye  
       2021-09-13 10:04:38 +08:00
    go 写 crud 也很容易啊,为什么总有人说不适合呢?现成的 web 框架、orm 库直接拿来用就是了。
    ylsc633
        70
    ylsc633  
       2021-09-13 10:05:21 +08:00
    JAVA 天下无敌, 但是选择 go

    语言很多, 就看你有没有决定权,决定在公司用什么语言进行开发, 每个人都有自己的考量

    最近我在找工作,看了不少面试题

    我发现了一个问题

    Java 因为生态丰富,组件甚多, 所以,java 面试题很多都会在自己的圈子里卷, 不断的内卷,比如 java io, jvm 调优 等等, 更有甚者, 还得考 协议,网络,操作系统,算法,设计模式等等

    而 go 语言,因为简单,生态不够丰富, 所以 go 语言的面试题 考自己本身的 很少, 无非 gmp, 切片,map, 锁机制,管道 这几项而已, 问的问题绝对不超过十分钟, 剩下的 就会问到 协议 网络 操作系统 算法, 基本没有考设计模式的

    就面试这点, 越简单越好..
    lancelock
        71
    lancelock  
       2021-09-13 10:06:52 +08:00
    go 都能吹开发快的吗
    chouchoui
        72
    chouchoui  
       2021-09-13 10:08:13 +08:00
    go 吹别往脸上贴金了
    yamasa
        73
    yamasa  
       2021-09-13 10:10:59 +08:00
    go 替代 c 和 cpp,真是笑了
    GaoYL
        74
    GaoYL  
       2021-09-13 10:15:41 +08:00
    然而更多的 PHP 市场被 Go 取代了
    jiayong2793
        75
    jiayong2793  
       2021-09-13 10:16:53 +08:00
    都是语言,为什么不能比较?
    KaynW
        76
    KaynW  
       2021-09-13 10:27:46 +08:00
    如何获得流量?
    微博: 男女撕逼
    V 站: 语言圣战, 系统对比
    beexu
        77
    beexu  
       2021-09-13 10:27:55 +08:00
    替代也是事实。“Java 把 C/C++从业务逻辑的领域彻底赶出去了,而在中间件控制逻辑的领域,Java 也把 C/C++也赶到了还有一丝需要高性能的地方,然而 Go 语言的进入,带着 Docker 和 K8s 的云原生的大旗,把 C/C++在高性能中间件的这一块领域也吞噬的所剩无几了。C/C++被赶到了最后一块阵地——系统底层。然而,Rust 的出现可能要把最后这一块 C/C++还有存在感的地方也要收走——Linux 内核开始支持 Rust 了,而且 Android 项目指定 Rust 成为 C/C++的替代方案……”
    siyehua
        78
    siyehua  
       2021-09-13 10:30:01 +08:00
    记得之前有句话:王老吉和加多宝打架,然后和其正消失了
    qbhy
        79
    qbhy  
       2021-09-13 10:30:39 +08:00
    @GaoYL 这是一个悲伤的故事,神仙打架,凡人遭殃
    liuyibao
        80
    liuyibao  
       2021-09-13 10:31:20 +08:00   ❤️ 5
    用 Go 去取代 PHP 的很多都是小公司瞎折腾,你说你开发个 SAAS 系统为啥用 Go ? 平滑重启都没做? Panic 后进程都没了? SQL 你写原生 SQL? Gorm,xorm,xo? 真有 laravel 好用么? fpm+opcache 满足不了并发么? 你要是说换 Java 我倒啥都不想说了。

    上面就是我看到一些小公司瞎折腾的结果,就像前几年折腾 nodejs 一样。你说你要是大公司有人力就算了,就那几个人还 BB 搞“微服务”
    qbhy
        81
    qbhy  
       2021-09-13 10:31:39 +08:00
    @yamasa 没说代替,只是说占领一部分市场
    zoharSoul
        82
    zoharSoul  
       2021-09-13 10:32:34 +08:00
    @momowei #4 几十 mb,多的上百
    MoYi123
        83
    MoYi123  
       2021-09-13 10:39:36 +08:00
    我最喜欢的 if err!=nil 环节怎么还没开始
    Torpedo
        84
    Torpedo  
       2021-09-13 10:41:22 +08:00
    说白了,选 java 和选 go 的基本是两种人。

    go 的市场基本是吃掉了 python 和 php 的。毕竟 php 太随意,py 性能有瓶颈
    dinfeo
        85
    dinfeo  
       2021-09-13 10:45:00 +08:00   ❤️ 1
    个人认为 Go 语言的特性,其实更适合做工业嵌入式这块这块,毕竟下位机大部分都是用 C 或者 C++写的,Go 语言去构建边缘计算、工业网关我觉得比 python 、java 更适合
    但不知道为啥大家都用来对标 java 做后台?
    可能是个人小型项目或者中间件之类的用 Go 可能更好,但是多人大型项目和企业级的业务平台用 Go 似乎不是个好选择。
    前端要做后台,搞了 node.js
    系统、嵌入式要做后台,搞了 go
    写算法的要做后台,搞了 python
    = =为啥所有语言发明了都要用来写后台服务?
    Rooger
        86
    Rooger  
       2021-09-13 10:45:21 +08:00
    大学毕业前选择培训,C++ 或者 Java,我选择了 C++,进入的公司我也是极其幸运,做的是游戏服务端,工作四年后,回老家西安进入另外一家公司负责游戏后端工作。但是在西安的确招不到合适的 C++ 职位,即使是毕业生也很难招到,而且即使招到了,C++ 的开发效率不高。如今我们已经全面使用 Go 语言了,开发效率相比 C++ 肯定是提升很大的,Java 从来没有在工作中遇到过,不做评价。如今 Go 用了三年,我又想换成 Rust 了。生命不息,折腾不止。
    araraloren
        87
    araraloren  
       2021-09-13 10:58:28 +08:00
    @dinfeo 因为有 GC.. 怎么嵌?
    fovecifer
        88
    fovecifer  
       2021-09-13 11:01:00 +08:00   ❤️ 1
    我觉得楼主的阅读理解能力稍微有点问题
    yuchenyang1994
        89
    yuchenyang1994  
       2021-09-13 11:01:45 +08:00
    两个语言都写过,现在在写 go,我就随便说说了。
    1. 有关 go 与 java 的比较
    首先,u1s1,从语言设计上,go 其实是开历史倒车的,java 基本没啥大毛病,所以如果单论语言本身的话,java 是比 go 好的,这毋庸置疑。
    2. 为啥 go 跟 java 交火
    首先,现在 go 开始慢慢动了 java 的部分利益了,很多公司业务开发都转向 go,势必有反弹啊。这很正常
    3. go 这么破为啥不用 java
    这就有得说了,80% java 的特性大部分都被人滥用,还有莫名其妙的设计,譬如 xml,又比如说繁琐的设计模式,没了 idea,写代码都困难,与其大部分人用不明白,不如用 go 了,就这么简单。问 go 哪里强了,就是简单,一共 24 个关键字。就比如搞多线程吧,就算写的再烂,go 也不会出太大篓子。java 就不一样了,经常陷入 to be or not to be 的问题
    James369
        90
    James369  
       2021-09-13 11:05:06 +08:00
    Go 其实就是想蹭一蹭 Java 的热度,提高下自己的知名度。
    cassyfar
        91
    cassyfar  
       2021-09-13 11:06:39 +08:00
    go 只是继承了许多 c 和 cpp 的优点。最重要的一点,个人觉得,不盲目迷恋 oop,另外对多线程支持非常好。特别适合现在微服务,分布式的格局。易上手,出活快,对码农本身素质要求比 java 或 cpp 低了太多。

    所以目前蚕食了很多微服务的市场,经典就是 go + protobuf 写 rpc service 。但是 go 无法取代 java + spring,go 也无法取代任何对性能要求极高的部件,比如 load balancer 。
    southsala
        92
    southsala  
       2021-09-13 11:14:54 +08:00
    然后抢了 PHP 的饭碗
    Mac
        93
    Mac  
       2021-09-13 14:33:34 +08:00
    PHP 表示你们先抢,我再躺会儿
    Akiya
        94
    Akiya  
       2021-09-13 14:55:58 +08:00
    你说的没错,应该拿 C#比
    YvesX
        95
    YvesX  
       2021-09-14 00:17:02 +08:00
    要把 Zen of Python 当场 import 出来大再表演一次才知道这种初衷是什么含金量吗
    makia98
        96
    makia98  
       2021-09-14 10:06:45 +08:00
    @qbhy 这就有一位从 PHP 转 Go 的大佬
    byte10
        97
    byte10  
       2021-09-14 10:31:21 +08:00
    @Bazingal 因为很多蠢猪头强行写 web,其实不是特别适合写业务,python,nodejs, php 都适合。java 也适合。go 相对这几个语言没有太多的优势。
    @Jooooooooo 所以类似 C 语言的 go 语言不应该去写服务端后台,写业务不太适合
    @zjsxwc 但是不稳,容易乱。虽然 java 也容易乱。
    @x940727 这个跟 php 一样,跟 nodejs 一样,因为入门简单,随手就可以写一套系统,所以喜欢它。
    @fkdog 赞同。我还是挺喜欢 nodejs,写的点玩具简直不要太爽。go 也是不错,单独部署无依赖 也是更爽的。
    @golangLover 应该是生态比不上 java,不是 TS 比不上 java,既然都用 TS 了,我为啥不直接上 java,一样啰嗦。
    @herozzm 是的,go nodejs 都适合写轮子,写轮子成就高,所以大部分人都喜欢 go,我也是 nodejs 。
    Rorysky
        98
    Rorysky  
       2021-09-14 14:56:16 +08:00
    @lancelock 不就是 没个全家桶框架么,java 生下来 spring 就坐在旁边看着么
    Rorysky
        99
    Rorysky  
       2021-09-14 15:43:46 +08:00
    再添加个 游戏开发领域 C#; 游戏服务器 c++
    lfzyx
        100
    lfzyx  
       2021-09-14 20:23:37 +08:00
    java 快入土为安了,是没有啥可比的
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1178 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 23:04 · PVG 07:04 · LAX 15:04 · JFK 18:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.