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

现在 Go 环境怎么样

  •  
  •   devzhi · Sep 1, 2019 · 13788 views
    This topic created in 2621 days ago, the information mentioned may be changed or developed.

    目前大二在读,有没有必要从 Java 转到 go,坐标二线城市,有意去一线城市发展,但无意扎根,问一下 V 友,如果现在转去学 Go 有没有好的前景呢?

    64 replies  •  2019-09-03 09:26:49 +08:00
    tomato1111
    tomato1111
    Sep 1, 2019
    1
    楼主用 java 写出过产品了么
    dabaibai
    dabaibai
    Sep 1, 2019❤️3
    2
    大肠都在用。小肠都死了。
    sunriz
    sunriz
    Sep 1, 2019
    3
    学语言很快的,我刚入职的时候 go 就学了三天,用起来基本上也没什么问题,当然更深入的东西也要平时积累。先学好计算机的基础课程吧,这个才是重点,公司招人并不是很看重你用过什么语言,看重基础知识和解决问题的思路。实践方面,多做些有意义的东西,目的在于用语言的特性做出高效的东西而不是语言本身。
    reus
    reus
    Sep 1, 2019❤️4
    4
    rust 才是世界上最好的编程语言
    sls
    sls
    Sep 1, 2019❤️1
    5
    慎重,自从用了这个简单的语言后,其他复杂的语言都学不动了,但是选语言还是看使用场景和生态。所以先学其他的吧,从繁入简容易,由简入繁难啊
    iPhoneXI
    iPhoneXI
    Sep 1, 2019 via Android
    6
    大学时间那么多,当然是都学
    linsijia1002
    linsijia1002
    Sep 1, 2019 via iPhone
    7
    Go 是比较年轻的语言,直接机器码运行,效率比 java 快很多倍。编译配置方便简单,导入包很方便,相比于 java 的配置麻烦 xml 语法,极简主义者表示有点密集恐惧。
    troywinter
    troywinter
    Sep 1, 2019❤️23
    8
    无意引战,目前在 web 开发领域 go 还是没法和 java 相比,如果你是那种完全不写测试的人,认为自己写的代码都可以手工测试或者不需要测试,那你用什么语言其实都没有区别,java 语言提供的动态性以及 jvm 的 jit 和一系列的运行时优化,都使得一是做 di 非常简单快速并有庞大的库帮助你在十几分钟内构建完善的单元测试流程,二是 jit 的优化,在一些 critical path 上的性能可以达到非常高的水平。在开发关键大型系统时,良好的测试覆盖可以有效减少 bug。

    一些人总是提出直接 go 是直接机器码运行,比 java 快,其实不全对,没有 jit 加持的 java 确实性能很差,go 的方式是通过确定性的机器码的运行方式,使得性能是可预见的,不会出现 java 那种 jit 优化之后性能极速上升的例子,但性能可以维持在比较平稳的状态。

    至于配置麻烦的问题,你如果不用 di,那也不需要什么配置,反正我司都是一套 bazel 构建到底,构建也都不用操心。

    换语言时,要考虑到方方面面的问题,以及很多问题可选的解决思路,不应该迷失在别人的观点中。

    如果你决定转 go 了,那么祝你找到心怡的工作,可以多交流,我也在写 go。
    jss
    jss
    Sep 1, 2019
    9
    有人说:我们现在不是考虑要不要学 Go,而是考虑怎样挤出更多的时间了解学习 Go。
    jamesliu96
    jamesliu96
    Sep 1, 2019 via Android
    10
    去看看著名的屑 openbilibili/go-common,只要写得比它好就行(
    qinxi
    qinxi
    Sep 1, 2019
    11
    @linsijia1002 #7 9102 年了
    MMMMMMMMMMMMMMMM
    MMMMMMMMMMMMMMMM
    Sep 1, 2019❤️1
    12
    我永远喜欢 node(划掉) Python(划掉) Go(划掉) Rust(黑体 加粗).jpg
    misaka19000
    misaka19000
    Sep 1, 2019
    13
    都学,这样工作你都能胜任
    salamanderMH
    salamanderMH
    Sep 1, 2019 via Android
    14
    @troywinter 这个是正经回答
    xmge
    xmge
    Sep 1, 2019❤️1
    15
    哈哈,这个我说一下,从 java 转 go 两年,go 的应用场景呢,高并发,为什么高并发,创建的协程消耗比线程少。

    一般都是大公司在用,因为大公司目前才有高并发的场景。

    目前的岗位不是很多,面试的机会其实也不是很多,自我感觉,前几天去找来着。

    但是,未来,如果物联网发展越来越迅猛的话,感觉 go 会起来
    devzhi
    devzhi
    OP
    Sep 1, 2019
    16
    @tomato1111 写过几个比赛的项目
    tourist2018
    tourist2018
    Sep 1, 2019
    17
    头条 滴滴 微博 阿里 腾讯 小米 这些是我去面试过的公司 基本也都是核心业务部门在用了

    我觉得如果你的目标是一线二线互联网公司的话 完全不用担心现在 golang 没有工作机会 但是我感觉和语言没啥关系 只要别学特别偏的。。。比如 C# 这个是真的不好找互联网公司的工作
    tourist2018
    tourist2018
    Sep 1, 2019
    18
    补充下 面过的 小米视频业务 微博是广告业务 阿里是阿里云 腾讯腾讯视频企鹅号
    swulling
    swulling
    Sep 1, 2019 via iPhone
    19
    go 的第三方库质量和数量都不太好。如果你是业务为王,还是用 java 吧
    hst001
    hst001
    Sep 1, 2019
    20
    @MMMMMMMMMMMMMMMM #12 戏很足
    pursuer
    pursuer
    Sep 1, 2019
    21
    现在各个领域有最适合的语言,可以看看自己感兴趣的领域
    ScepterZ
    ScepterZ
    Sep 1, 2019
    22
    都学吧
    mamahaha
    mamahaha
    Sep 1, 2019❤️1
    23
    大公司用 go 可以节约服务器成本,如果进不了大公司就别瞎起哄了。
    AX5N
    AX5N
    Sep 1, 2019
    24
    @linsijia1002 胡扯,java 也就比 c/c++慢一点,你 go 能快很多倍那岂不是比 c 还要快?
    ZoolYe
    ZoolYe
    Sep 1, 2019
    25
    @linsijia1002 都什么年代了,Java 还用 XML 配置吗?你当 SpringBoot、SpringCloud 不存在吗? JVM 这么多年的优化,你敢说 Go 还比 Java 快很多倍?
    bakabie
    bakabie
    Sep 1, 2019
    26
    不是非必要,但是有时间可以学
    Srar
    Srar
    Sep 1, 2019❤️10
    27
    慢的主要原因
    akring
    akring
    Sep 1, 2019❤️3
    28
    @troywinter 像您这样有价值,态度又平和诚恳的回帖真的太少了,必须点个赞
    rb6221
    rb6221
    Sep 1, 2019 via iPhone
    29
    大二在读谈什么转?我寻思你靠他混饭吃呢。当然是都学啊
    cheesea
    cheesea
    Sep 1, 2019❤️4
    30
    我觉得最忌讳的就是给自己划定圈子,然后就只关注这个圈子的东西,这样不好。
    比如我是 java/go/python 工程师,我是后端 /前端 /运维,甚至我是程序员,然后其他领域的就什么都不懂,也不去了解,这会限制你的发展和眼界。
    你才大二,应该多去接触和了解各个领域的东西。
    ihciah
    ihciah
    Sep 2, 2019
    31
    作为一个 Golang 用户,暑假去了阿里,然后学了两个月 Java。。。
    blless
    blless
    Sep 2, 2019 via Android
    32
    @troywinter 测试我还是觉得 go 写得爽,测试文件就在对应代码一起,我觉得很舒服,因为测试用例不仅仅只是测试,其实也算使用方式教程之类的。接口测试天然 mock,自带 benchmark。
    jit 虽然快,但是也要预热外加消耗大量内存,用起来还是不如 go 爽
    ericgui
    ericgui
    Sep 2, 2019
    33
    你才大二,着急干什么

    先把 Java 学好,如果你 Java 学好了,找工作不愁,而且你再学其他任何语言,都小菜一碟
    qbmiller
    qbmiller
    Sep 2, 2019 via iPhone
    34
    @jamesliu96 #10 哈哈
    jss
    jss
    Sep 2, 2019 via iPhone
    35
    @AX5N 保守估计在相同的环境和执行目标的情况下,Go 程序比 Java 或 Scala 应用程序要快上 2 倍,并比这两门语言使用少占用 70% 的内存。如果说 Go 比 C++ 要慢 20%,那么 Go 就要比任何非静态和编译型语言快 2 到 10 倍,并且能够更加高效地使用内存。
    jonsun30
    jonsun30
    Sep 2, 2019
    36
    @jss 你的 Java 程序 JIT 优化过了吗?还有更高效的使用内存这句话真的太主观武断了吧?
    'Will your toy benchmark program be faster if you write it in a different programming language? It depends on how you write it!'
    tt67wq
    tt67wq
    Sep 2, 2019
    37
    搞 k8s 很赚,其他的一般般
    fuxiaohei
    fuxiaohei
    Sep 2, 2019
    38
    如果是二线城市,还是用的人多的语言机会更多
    keenkiller
    keenkiller
    Sep 2, 2019
    39
    都学啊

    不过写的话还是 go 比较爽,除了没泛型
    jianson2006
    jianson2006
    Sep 2, 2019
    40
    @sls 十分赞同你的观点,我是零基自学 PY,但我觉得总缺对代码的理解。现在学习 C 语言。我认真对待学习还是从 C 开始,效果确实有很大的不同。
    encro
    encro
    Sep 2, 2019
    41
    如果自认为 NB,学习 GO,写一个 NB 的开源项目,比如 NPS,frp,bleve, beego, etcd 这样的,基本找工作不会有问题了。

    如果自认为不太 NB,学习 JAVA,慢慢来,毕竟 JAVA 生态环境摆在那里,还有很多螺丝需要拧。

    打算回二线,具体是哪个城市,去搜索下看看,目前用 GO 的机会很少。
    kilen3a
    kilen3a
    Sep 2, 2019
    42
    都学啊,反正才大二,时间多的是
    0NF09LJPS51k57uH
    0NF09LJPS51k57uH
    Sep 2, 2019
    43
    目前 90%以上的程序员写的代码还触及不到语言的性能瓶颈。
    notreami
    notreami
    Sep 2, 2019
    44
    为啥总有人盯着语言呢。java 用来做业务、大数据处理。golang 用来做运维工具。
    那么你想搞业务、大数据,还是服务运维??
    no1xsyzy
    no1xsyzy
    Sep 2, 2019
    45
    除了提供新的思维方法外,新语言无意义
    一般人们所称转换语言是转换生态圈,还有就是少打几个字符(懒)
    不同语言间生态割裂其实是个问题
    唯一的纽带是 C
    no1xsyzy
    no1xsyzy
    Sep 2, 2019❤️1
    46
    @jianson2006 (但是 Python 对于代码抽象的处理程度不是比 C 高吗?
    daryl
    daryl
    Sep 2, 2019
    47
    巧了,我想从 go 转 java。
    luckRay
    luckRay
    Sep 2, 2019
    48
    推荐还是 JAVA 为主吧,毕竟体量在这里。
    jss
    jss
    Sep 2, 2019 via iPhone
    49
    @jonsun30 [转述大佬的话] Java 和 Scala 使用的 JVM,C# 和 VB.NET 使用的 .NET CLR。尽管虚拟机的性能已经有了很大的提升,但任何使用 JIT 编译器和脚本语言解释器的编程语言( Ruby、Python、Perl 和 JavaScript )在 C 和 C++ 的绝对优势下甚至都无法在性能上望其项背。
    jianson2006
    jianson2006
    Sep 2, 2019
    50
    @no1xsyzy PY 学习下来我只其用法,但不知道为什么要这样用?有很多原理我是不懂的,所以,我想从 C 中获取。就是编码到底是如何与硬件沟通的?我只是想把在提高的过程中可以把一件原理也可以搞明白。
    hyl24
    hyl24
    Sep 2, 2019
    51
    学 java 吧 以后 java 往中间件方向走 就学 GO
    DovaKeen
    DovaKeen
    Sep 2, 2019
    52
    你才大二,可以多了解一些的
    Galileo
    Galileo
    Sep 2, 2019
    53
    请谨慎考虑
    Raymon111111
    Raymon111111
    Sep 2, 2019
    55
    语言完全不是重点

    把基础知识学好吧, 比如数据结构, 操作系统
    gz911122
    gz911122
    Sep 2, 2019
    56
    @jonsun30 这个测试报告来看似乎 java 更快一些?
    jonsun30
    jonsun30
    Sep 2, 2019
    57
    @gz911122 其实我想说的是这种 assumption 是没有意义的,每个语言都有其诞生的理由。绝大部分程序员(包括我自己)所写的程序还真的触及不到语言的瓶颈,有时候是你摸不到性能的天花板,还有时候是我们的代码由于各种各样的原因真的很屎。
    richzhu
    richzhu
    Sep 2, 2019
    58
    一提语言就吵架,我真的服了,性能高能怎么地? 能高多少? 性能高的代码你能写出来?写出来了别人能看懂?你的业务多少 qps 就性能性能的....好好学学计算机基础,哪个场景就用哪个语言,个人喜欢 go 就学 go,总之就是学起来别犹豫,学会了一个再学另一个也很简单,不能因为犹豫学哪个而耽误时间。
    Keyes
    Keyes
    Sep 2, 2019
    59
    @jss 大佬求教,所以 Rust 是兼顾软件工程和原生编译的最佳选择吗?
    solaro
    solaro
    Sep 2, 2019
    60
    先学 JAVA,JAVA 能让你进银行或者国企、事业单位混日子,能混日子才有时间学 Go,然后用 Go 做东西玩,玩到一定成都又可以当成敲门砖进大公司
    securityCoding
    securityCoding
    Sep 2, 2019
    61
    上手写 , 不要想这么多
    reus
    reus
    Sep 2, 2019
    62
    @Keyes 当然啦,rust 是互联网时代的 C++语言
    zibber
    zibber
    Sep 2, 2019
    63
    新项目不出意外我感觉都会用 go 去尝试,机会还是很多
    conver
    conver
    Sep 3, 2019 via iPhone
    64
    大学的时间,都学绰绰有余
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1705 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 204ms · UTC 23:40 · PVG 07:40 · LAX 15:40 · JFK 18:40
    ♥ Do have faith in what you're doing.