我为什么选择Go语言(Golang)

Golang

作为一个以开发为生的程序员,在我心目中编程语言如同战士手里的武器,好与不好主要看使用的人是否趁手、是否适合,没有绝对的高低之分。

从2013年起,学习并使用Golang已经有4年时间了,我想叙述一下我选择Go语言的一些经历,希望能给考虑使用Go的开发者们做些参考。

Golang和其他语言一样并非完美,它有很多优点,也当然有很多缺点

为了避免无谓的语言争论,提前说明一点:Golang并不完美。

我在许多讨论场合中都表达过这样的观点,选择适当的编程语言非常重要,甚至会影响一个程序员的职业发展历程,但是编程语言本身确没有绝对的高低之分。一名武术大师使用狙击枪不仅不能发挥枪的优势,而且可能会影响自己的招式,最重要的是,武术大师可能根本没有使用狙击枪的场景,一把精良的剑可能更适合他。

一些经历

我并非计算机专业科班出身,我学习的是土木工程专业,在学校曾经简单的学习过C语言,但是学校的计算机教育并没有引起我学习编程的兴趣(国内学校的教育方式不扼杀学生的兴趣就算是万幸了)。学习编程的原因是我当时很想搞清楚怎么搭建一个漂亮平面设计网站和论坛,有一个朋友推荐我学习了ASP(用VB语言),在我大学那个时候,搭建一个网站对于大多数人来说还是一个挺神秘的事情。后来又因为懒惰,不想和其他同学一样手绘图纸,于是专心学习了一段时间Lisp,以便于在AutoCAD(一款工程绘图软件)自动绘制图纸。对于编程,我一向是实用主义

大学毕业后,放弃了土木专业的就业方向,正式以编程作为自己的职业,学习不同的编程语言也成为了工作必备的要求。

选择CSharp

一开始,我选择了C#以便于开发.net框架下的应用和网站,这次选择非常有意义,在.net框架下不仅可以开发动态网站,还可以开发各种Windows系统下的视窗程序、控制台和动态链接库,微软提供了非常好用的IDE,对于一个非科班出身的程序员,在.net框架完整的解决方案的帮助下,我尽可能快的接触到了软件开发领域的各个方面。

选择PHP

随着Web2.0概念的提出,我的工作几乎完全是Web开发。在这个领域最被人们津津乐道的语言就是PHP。本来我并不以为然,直到我发现很多优秀的项目都是用PHP开发后,它成功的吸引了我的注意;另一个原因是微软的服务器操作系统和IIS在当时的版本下确实有许多问题,我希望能摆脱微软的控制,将软件部署在Linux或Unix服务器上,LAMP(Linux+Apache+MySQL+PHP)组合方案就是我所需要的。PHP除了拥有学习快,上手容易这些基本的优势外,PHP开源社区非常活跃,你可以轻松的找到各种开源的PHP项目,几乎所有Web相关的开源项目中最著名的都是PHP语言开发的,比如 WordPress、Drupal、PrestaShop、Joomla、Opencart等,数不胜数。

选择Java

后来,我开始带领团队,成为了公司开发团队的小头目,我不能只专心于自己的开发工作,需要考虑整个团队的工作需要。PHP开发公司经营的网站非常有效,但是团队里有一些项目的需求方会要求使用他们指定的开发语言,比如Java。在当时,Java被认为是最稳定、最安全、最标准的解决方案,许多开发领域的大神们也非常推崇Java,J2EE几乎是政府、金融等领域大型项目的标准解决方案。出于市场需要,我不得不让自己和团队学习和掌握Java以便于能够有更多的项目机会。

选择Python

Java本身很优秀,再加上活跃的社区、完善的第三方框架和库,但是总让我觉得太麻烦(或者是我越来越懒),团队常常会有一些简单的工作任务,于是我选择了Python来做这些简单的工作。Python的简单出乎预料,刚开始学习的一段时间,我非常迷恋Python,它让编程变得如此简单,并且它历史悠久,拥有非常丰富的开源资源,Web、桌面、服务器领域的开发都有它的身影。

Python是我非常喜欢的语言,但是它的性能问题是我的心结,尽管如《黑客与画家》作者所说,程序的运行性能往往不是编程语言导致,而且未来计算机硬件的发展速度会让编程语言的性能差异越来越微不足道,但如果能有一门语言能够像Python那么简单又同时具备静态语言的性能岂不更好。

很幸运,我在那段时间,遇到了Golang

选择Go

我非常看重一门语言的入门门槛。我所在的团队并不大,我们需要精打细算每一个时间成本的投入,学习和进步是必须的,但是也需要切实的考量成本问题。

Golang入门非常快,当时我独自学习大概花了一周时间(我还要保持其他工作正常完成),然后我收集整理学习资料,再组织团队的其他成员学习,整个开发团队学习Golang非常的快,无论他们以前擅长Java、C++或是其他语言,都能很快的上手。

我有一个好朋友,曾经共事过一段时间,后来这位朋友专心于前端开发领域。有一次我们讨论团队配合的问题,讨论到前后端API开发的一些事情,当时我提到了Golang,我朋友看了一些简单的介绍和范例后问了我一个问题 “作为脚本语言,Golang与Python、NodeJS比起来有什么优势?”。听到这个问题,我非常高兴,原因是我的朋友把Golang当作了脚本语言(我的这位朋友也有多年的开发经验,而且在前端领域也是相当厉害的大神了),这至少说明作为静态语言的Golang给人的初步影响是简单清晰的,如同脚本语言(动态语言)一样。

Golang的性能很好,根据官方的描述以及其他人的测试结果来看,它的运行性能仅次于C/C++。当然,会有很多人认为这并不绝对有用,性能问题还是得根据具体的代码环境而言,纯粹的循环IO没有意义。不过一个语法上像脚本语言一样简单的高性能静态语言,对程序猿来说还是很有吸引力的。

最后

  • 随着团队和我的成长,我们的项目需要能够运行在不同操作系统的服务器上,甚至有一些需要运行在客户机上,而不需要让用户安装额外的虚拟机或解释器;
  • 现在的需求提供方也更加理性、专业,不再把指定开发语言放在需求清单中;
  • 我们的团队依然不大(就算大,也没有必要浪费),所以我们需要一种编程语言可以同时胜任大型项目开发、日常维护工具开发、Web服务端API开发;
  • 我们需要一种可靠的编程语言,开源、社区发展迅速、有像Google这样的科技巨头的支持

所以,我选择Golang

欢迎大家简书或我的个人博客与我交流

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,460评论 25 707
  • 一、异同对比选择1、Python和ruby的相同点: * 都强调语法简单,都具有更一般的表达方式。python是缩...
    沃伦盖茨阅读 4,134评论 2 24
  • 首先,GTD 的核心观念: 清空大脑中的待办事项; 任何一个 idea 必须有明确的安排和完成标志,而不能是简单的...
    百毒阅读 1,361评论 0 5
  • 双节心不爽 好友呼远行 去看大山河 快乐心中吟
    海语天籁阅读 339评论 3 2