译 | 我是如何爱上Go语言的


我和编译型编程语言 : 火花不再

在攻读博士学位的时间里,我对用python、R语言和unix shell脚本解决问题和编写代码感到得心应手。为了提高自己的技能,我想,学习用较低级的编译型编程语言进行编程应该是一个好注意。这样一来我可以用它们为需要快速运行代码的大型生物信息学工程开发快速的低级别处理工具。我还觉得它可以帮助我提高对新算法和设计模式的理解(并最终使我在未来更能胜任工作)。你可以在我的博客上找到更多类似的文章。

带着这样的想法,去年夏天我开始利用业余时间潜心学习C语言。为什么C语言?它是一种广泛使用和成熟的语言,加上我最喜欢的语言(python)是用C编写的!我读了一些教程书(新的和旧的),听了一些在线讲座,用C语言做了一些练习。

我学到了很多,但坦率地说,我对C很不感兴趣。我可以用C语言解决练习题中出现的问题,但日常工作中都不会遇到这样的问题,我常常期望,‘嘿,如果能用C语言来解决这个问题多好呀!’是什么阻碍了我激起对在C语言的兴奋,我列出了主要不满:

混乱和语法复杂

我用C语言解决问题时,需要花两倍的时间来思考语法和算法。显然,随着时间的推移,这将会有所改进,但我花了太多的时间和精力去思考语法上的细微差别,以至于我永远无法完全沉浸在问题本身中。我太专注于害怕把语法弄得一团糟了。

编译器

为什么要有许多不同的编译器选项?我应该用哪一个?这些神秘的命令行标志是什么?make文件吗?我找不到这些问题的答案,找不到令人满意的。

编译器的工作流程

在学习一门新语言时,我犯了很多错误。我不得不编写、编译、失败、调试和重复,这使想快速解决问题的意愿变得困难。我需要它能更快地反馈我的错误。

最终,这些挫折导致我放弃了学习C编程的旅程。它没有达到让我对用这种语言编程感到兴奋的程度。我并不认为这是一个失败,因为它教会了我很多关于python内部的知识,并让我接触到新的工作流和设计模式,帮助我成为一名更好的程序员。

在我对C语言的短暂尝试后,我继续学习python和R语言,同时我也一直在关注一些有趣的项目或新语言,它们有时会激起我的兴趣。几个星期前,我偶然发现了一些关于Go编程语言的在线讨论,这让我有了足够的兴趣开始探索Go语言的想法。我去了golang.com,一个傻得可爱的gopher蹦出来欢迎我!我看到了一个用golang写出hello world程序的例子(看起来很容易理解),一个下载我需要的所有东西的链接——让我能够在本地启动go语言,还有一个非常详细的语言教程。我需要的所有信息都在这里很容易找到,而且很容易理解。一想到要开始学习它,我开始兴奋了。

go语言有多棒?

这是跟我学习C语言完全不同的经历。当我决定开始用C语言编程时,仅仅是让我的电脑能够建立起可以编写hello world所需要的所有东西,这就已经让我感到恐惧和不知所措了。go语言搭建很容易,让我很高兴。

我的golang宝宝学步 : 第一次约会

在几分钟内建立了运行环境之后,我开始了Go语言的研究。作为一个python程序员,我发现学习golang是有优势的,go语言代码也不需要结尾的分号;Golang的数据结构很清晰,我可以相对轻松地掌握strings, arrays, slices, maps 和 structs的基本知识。将这些新知识与我从其他语言中了解到的知识结合起来,就可以轻松地在Go中应用正确的设计模式。我很开心!

当我开始学习时,最让我吃惊的是run命令行选项。不需要编译然后运行,我可以使用go run xxx.go。快速测试我正在编写的简单脚本。这很好,因为我可以避免编写、编译、错误、咒骂、调试和重复循环。我可以在一个命令中进行小的修复并检查它们。对于初学者来说,这真的很有帮助,我可以专注于debug,并得到关于我是否解决了问题的相对即时反馈。

Go语言可以让我专注于学习它的语法和设计模式,而不会陷入太多的细节。我从错误中吸取了教训,很快就发现自己沉浸于其中。我决定坚持下去,而且越来越痴迷。这是一种我发现很容易让人兴奋的编程语言。这种使用新获得的技能解决问题的感觉,是我从学习python的时候就渴望得到却无法捕捉的。最令人惊奇的是,我想告诉你,此时我几乎只是触及golang的皮毛。我还没有接触到goroutines,这是go语言的主要卖点之一。还没掌握了它基本原理,我就期待着将尽快将这一技术添加到我的工具箱中!

感谢它的设计者,设计精美,简单的语法,快速启动和运行。我将继续练习,将来我希望加入高级的gopher程序员的行列!

英文原文:GoLang A LOve Story

余下全文(1/3)
分享这篇文章:

请关注我们:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注