首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
宝塔
V2EX  ›  程序员

现在 Go 环境怎么样

  •  
  •   y0bcn · 80 天前 · 7558 次点击
    这是一个创建于 80 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

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

    先把 Java 学好,如果你 Java 学好了,找工作不愁,而且你再学其他任何语言,都小菜一碟
        34
    qbmiller   80 天前 via iPhone
    @jamesliu96 #10 哈哈
        35
    jss   80 天前 via iPhone
    @AX5N 保守估计在相同的环境和执行目标的情况下,Go 程序比 Java 或 Scala 应用程序要快上 2 倍,并比这两门语言使用少占用 70% 的内存。如果说 Go 比 C++ 要慢 20%,那么 Go 就要比任何非静态和编译型语言快 2 到 10 倍,并且能够更加高效地使用内存。
        36
    jonsun30   80 天前
    @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!'
        37
    tt67wq   80 天前
    搞 k8s 很赚,其他的一般般
        38
    fuxiaohei   80 天前
    如果是二线城市,还是用的人多的语言机会更多
        39
    tairan2006   80 天前
    都学啊

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

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

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

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