采访:Go语言编程


Go语言是由Google在2009年11月份公布的,它的目标是要应对软件开发所面临的最新挑战。Go语言特别被设计为快速(包括在编译时)、支持多核的语言,并且兼顾了动态语言的简单性和静态类型语言的安全性。Mark Summerfield最近出版了《Go语言编程》一书,目的是要帮助当前的程序员学习Go语言。InfoQ最近有幸和Mark一起讨论了Go语言和他的著作。

InfoQ:你喜欢Go语言的哪些特点?

Mark Summerfield:Go语言有很多特点我都非常喜欢,其中最主要的是:

  • 像闪电一样快的编译。这使得编辑/编译/运行的周期和Python的编辑/运行周期一样快。
  • 非常高级的并发。你可以很轻松地使用Go语言编写并发程序,而不会有任何显式的锁。另外,goroutine通过操作系统线程多路传输的方式,这意味着,如果你的算法最好以成千上万个并发线程来表示,那么你就可以创建那么多goroutine——而对于线程,通常最好不要创建过多。
  • 无初始化和垃圾回收。这让我们避免了整整两类错误的发生,让编码更简单。
  • 语言本身非常小,让一般的程序员就可以掌握。当考虑模板语言的时候,C++98/03已经不是一般程序员所能接受的, 而C++11更大,也更复杂。与它们相比,Go语言:
  • 使用了新奇的方式来实现面向对象。我发现这种方法很有趣。
  • 对Unicode的支持。我非常喜欢Go语言让你可以使用原生UTF-8或者使用根据你想要的来使用Unicode字符的方式。

InfoQ:你不喜欢Go语言的哪些特点?

Mark:最初我不喜欢它的错误处理方法(返回错误值作为唯一或者最后一个返回值),因为我不习惯使用这样的异常处理方式。然而,现在我非常乐于使用它了。

我还忘了说操作符重载。IMO这个大程序包(针对big.Int和big.Rat类型)很难使用,因为你无法对操作符重载。另外,尽管Go缺少泛型,但那只是针对于类库编写者的问题。由于Go拥有其它语言特性,所以不太需要泛型,比方说它对“<”的操作符重载对于定义自定义的数据类型就非常好。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn