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

Go 语言怎么样? 与Python,C++相比 有何异同呢

  •  
  •   acheng · 2013-12-02 08:13:00 +08:00 · 5853 次点击
    这是一个创建于 4039 天前的主题,其中的信息可能已经有所发展或是发生改变。
    据说很牛逼。。。。
    26 条回复    1970-01-01 08:00:00 +08:00
    acheng
        1
    acheng  
    OP
       2013-12-02 08:17:08 +08:00
    总感觉被公司控制的语言 似乎都不太敢用 比如C# java Objective-C
    initialdp
        2
    initialdp  
       2013-12-02 08:19:30 +08:00
    不是吧?java和Objective-C都不敢用??

    golang据说服务器侧编程很不错,从语言层次就支持并发。我们下一个小产品估计会尝试golang。
    jybox
        3
    jybox  
       2013-12-02 08:20:21 +08:00   ❤️ 1
    Google 只是 Go 的靠山而已,Go 并不完全受 Google 控制。

    可以算是把 Python 和 C++ 结合了起来,让静态类型的编译型语言有了脚本语言的一些特征,另外简化了传统的面向对象模型。
    标准库里网络和编码相关的库比较全,比较适合底层(HTTP之下)的服务器端编程。
    RIcter
        4
    RIcter  
       2013-12-02 08:22:38 +08:00
    @jybox 一提到Go精子就出来了
    acheng
        5
    acheng  
    OP
       2013-12-02 08:29:27 +08:00
    @initialdp 好像七牛也大量使用了Go

    Mozilla的 rust 似乎也很牛逼。。。 这些语言理念是先进的 只是还不够成熟 如果贸然跟进学习 会不会浪费大量时间 而收获却不多

    另外想尝试学习下Python 不过版本好像比较分裂 新手从py2 还是py3 学起呢?
    @jybox
    zhouquanbest
        6
    zhouquanbest  
       2013-12-02 08:39:57 +08:00
    认识一些线上用Go的 他们说Go优势很明显 用起来也很坑
    毕竟不像Python Java这类出道已久 各方面比较完善的
    jjx
        7
    jjx  
       2013-12-02 08:53:52 +08:00
    不应该同python 比,应该同c /c++比

    对于害怕c/c++的人来说可以一试. 能够快速做东西,不像c/c++刚学习想做一个东西出来很难
    missdeer
        8
    missdeer  
       2013-12-02 08:55:39 +08:00
    rust貌似语言特性都还没稳定,每个版本会有不少变化
    acheng
        9
    acheng  
    OP
       2013-12-02 08:59:16 +08:00
    @jjx 我用C++做了一个系统 确实花了不少时间 但做成之后 感觉还是很愉悦的 等最终做好了 发到这里给大家参观一下 绝对给力
    kevinv
        10
    kevinv  
       2013-12-02 09:08:59 +08:00
    正在用go写项目,对比之前用的java,语法方面有进步,用起来比java爽;其次go在生产环境部署完全不成问题,很方便;并发方面我个人没有测试过,但是如果从goroutine角度来看应该并发量较牛B且写起来较方便。
    所谓的贸然跟进学习浪费时间的思想我不赞同,如果你把业余时间放在上面学习,可能会有意外的收获,多学点东西眼界不一样。
    vavava
        11
    vavava  
       2013-12-02 09:11:38 +08:00   ❤️ 1
    @acheng py2坑少些,我去年也是先学了py3,浪费好多精力后开始用py2
    sqbing
        12
    sqbing  
       2013-12-02 09:15:14 +08:00
    @jjx 不是因为c/c++很难做东西出来,是因为学习c/c++的时候,你的水平还在初级,做开发两年之后,再回头用c/c++做东西,就很简单了
    ericls
        13
    ericls  
       2013-12-02 09:46:32 +08:00 via Android
    @vavava 确实是这样的
    ivenvd
        14
    ivenvd  
       2013-12-02 09:59:12 +08:00
    现在看到 Go 我就想说 Rust。
    ForgotFun
        15
    ForgotFun  
       2013-12-02 10:42:35 +08:00 via Android
    不怎么样,很多库有bug
    icyalala
        16
    icyalala  
       2013-12-02 10:50:13 +08:00   ❤️ 2
    Google官方项目是4种主力语言:C/C++、Java、Javascript、Python,分别对应 底层、后端、前端、脚本。

    然后Google不太爽C/C++的某些问题和开发效率,所以设计了golang;Google又对JS不太爽,所以设计了Dart。Google对Java和Python基本还算满意,所以还没打算太折腾。。

    所以说,Golang是为了作为C/C++的替换和补充、为更底层的开发而设计的,与Java、Python没有直接的竞争关系。

    另外,Google对官方项目的开发语言进行限定,可以避免人力浪费、方便协同工作、方便管理等,至于说非官方项目,那就随便折腾了。
    clino
        17
    clino  
       2013-12-02 12:57:10 +08:00
    @icyalala "Google对Java和Python基本还算满意,所以还没打算太折腾"
    我记得以前看过的资料说 google 用 java 应该用得最多,python 其实没那么多, 但估计 python的性能对 google 来说是不满意的,拿 go 来部分替代 java和python应该也是目的之一
    xiaoxuxu
        18
    xiaoxuxu  
       2013-12-02 13:38:33 +08:00
    Goroutine做并发异步IO非常爽。IO本身的性能很给力,我在linux上测go的HTTP Server并发和Nginx快差不多了(单进程),非常惊艳。个人认为用来做有一定复杂逻辑的、重度IO的服务器端应用,很合适。
    wumch
        19
    wumch  
       2013-12-02 14:02:55 +08:00
    我看 go只是很好地解决了 复用、并行、routine之间通信 三个问题,其它方面全都不如c++。
    ivenvd
        20
    ivenvd  
       2013-12-02 15:10:41 +08:00
    @icyalala Google 对 Python 不满意的,不然就不会有 Unladen Swallow 了,虽然挂了。
    darklowly
        21
    darklowly  
       2013-12-02 15:38:58 +08:00
    1 go的语法比较简洁

    2 语言层面有的地方有小坑

    3 库方面有的地方有大坑

    4 我觉得是结合了c/c++ 和 脚本的有点,所以可以取代c++用来提高效率,可取代脚本用来提高运行速度, 但是都不是直接竞争对手, 反而我觉得,可以取代java, 这才是直接的竞争对手,因为java作为服务端后端开发能够做的,golang也都可以做,但是现目前还不行,因为很多地方都还不成熟
    bombless
        22
    bombless  
       2013-12-02 19:27:59 +08:00
    最近学了Clojure,感觉go从表达能力上来说就是个严重阉割版的Clojure
    bombless
        23
    bombless  
       2013-12-02 19:30:32 +08:00
    谷歌这几年一直都是把性能没那么敏感的部分改成Java来做
    Dart,go这些,只是它的员工搞的小项目而已,还不至于真是花力气去推广
    jasontse
        24
    jasontse  
       2013-12-02 19:34:35 +08:00 via iPad
    别的不清楚,我运行 Go 的东西的时候很容易莫名 Kernel panic。
    smalltalk
        25
    smalltalk  
       2013-12-02 21:16:05 +08:00
    go跟C#一样,开始的时候扭扭捏捏打着跟C++竞争的旗号,其实对手还是java。

    话说C++0x出来后,我怎么觉得用C++写东西很爽了。。
    wang2191195
        26
    wang2191195  
       2013-12-03 11:00:29 +08:00   ❤️ 1
    @smalltalk auto&for 功不可没 hahaha
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1383 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:18 · PVG 01:18 · LAX 09:18 · JFK 12:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.