DevLink与Go语言北京用户组联合举办的X to Go的“小课桌”技术分享活动,将于9月3日在上地福道大厦举办,会前我们对本次活动的主持人、Go语言北京用户组发起人、Go语言布道师——郝林老师进行了文字专访。
郝林老师您好,能否简单介绍一下自己?
大家好,我是郝林。我首先是一个Go语言的爱好者和软件工程师,其次我也是Go语言北京用户组的发起人,还是《Go并发编程实战》这本书的作者。我目前在北京的“微赛时代”任职,做一些针对电商的通用工具和服务系统,也负责Go工程师团队的组织和管理。目前我团队的规模在公司内部也算数一数二的了。
我们知道,您此前的主力编程语言是Java,是什么样的契机让您转换到Go语言的呢?
是的,我之前使用了8年多的Java,也很喜欢这门编程语言。但是,我在这期间也在不断寻觅更轻量级、更高效的语言。客观的说,Java有些太重了。尤其是涉及到Web系统开发的时候,Java EE甚至是Spring都会给工程师带来很多心智负担。当然,这是相对于Python、Go来说的。Python语言我也使用过一段时间,并用它来开发过一些高并发的软件系统。Python给我的感觉就是轻和快。但是说实话,在处理高并发场景的时候性能就有些跟不上了,虽然可以通过Tornado这类框架解决一些问题,但是治标不治本。话说回来,大多数软件系统的性能问题都可以通过底层配置、系统架构和集群结构的调整得到一定程度的解决。但是,谁不愿意轻轻松松就搞定问题呢?那怎么来搞定?我给出的正是使用Go语言。Go在语法的简约使大多数软件工程师都能在极短的时间内上手。Go的设计哲学会让你做任何常规任务都能单刀直入并快速完成。Go的强大标准工具,能让你轻松掌控Go项目的方方面面。更不用说它直逼C/C++语言的程序运行性能了。说一个真实案例,在我这里,跑有PHP程序的十几台机器也赶不上跑Go程序的一台机器的性能。当然这可能会存在程序设计上的问题,但肯定不是主要原因。
作为Go语言在国内最大的地方性组织GopherBeijing的创办人,您觉得现在Go在国内的普及趋势是怎样的?
我从2013年就开始筹划成立一个Go语言用户组,不过直到2014年才成行。但是,让我感到惊奇的是,这样一个年轻的语言竟然得到了那么多软件开发者的青睐。在最近这两年,Go语言在关注度和使用率方面提高了很多。北京也成为了国内Go语言用户最多和最活跃的地方。从我在近期的Go语言推广、培训以及相关合作的经历来看,越来越多的社区、公司和培训机构开始关注Go语言,同时毫不犹豫的迈入Go语言生态圈。如此种种都说明了一点,那就是Go语言的上升势头非常明显,并且持续性非常好。不论从技术投资还是从实际使用的角度讲,学习和使用Go语言都是非常好的进步。
作为《Go并发编程实战》的作者,您觉得Go语言在并发性能方面,与其他语言相比,其显著优势是什么?
Go语言在并发性能方面的优势我已经提到过。Go语言本身追求的是在单机上的程序性能。它会充分利用计算机和操作系统的各种资源,并尽量让程序跑得更快。之前很多人说Go的GC是个问题,但是那已经成为了过去,从去年开始发布的几个版本次次都在GC停顿时间方面有数量级级别的改进。Go语言本身的并发编程模型已经十分先进和高效,而现在的Go语言更是不可同日而语,确实是快上加快,尤其是在拥有多核CPU的计算机上。我不想引起语言争论,但是在并发性能方面,Go在同级别编程语言中是绝对的佼佼者。当然,像C、Rust这类系统级的编程语言,Go在有的应用场景下是不及的。但是Go的目标领域严格来讲并不在于此。
您觉得目前Go还存在哪些亟待解决的缺点?
我个人认为在语法方面自定义泛型是一个。这个问题很多爱好者和使用者都提出过。自定义泛型真的可以减少很多代码量。但是Go在找到一个比较完美且高效的解决方案之前还不会支持它,据说是在Go的2.0版本时会得到解决。另一个就是完整的依赖包管理。其实现在通过很多第三方的工具可以解决这个问题,但是我们终归希望Go官方能发布一个完整方案。把go get命令、vendor机制等等这些组合串起来并提供一站式方案是我个人很希望看到的。不过即使没有,我也无所谓,因为使用组合工具也照样可以搞定。
对Go开发者和希望了解Go的同学们有什么要说的么?
希望大家使用Go语言,用起来之后你就会感受到它的优势。现在网上已经有很多免费的教程,中文图书也有好几本了,社区也非常活跃。所以只要你想学就能很轻松的学会。Go本身也是很适合作为编程入门的第一门语言。实践出真知,马上用起来才是正道,多说无益。
DevLink与Go语言北京用户组联合举办的X to Go的“小课桌”技术分享活动,将于9月3日在上地福道大厦举办,本次活动旨在面向Golang的初学者,从Go语言的独有特性,到入门上手、性能优化,为他们制定了一个下午的分享议题,希望能够帮助到其他开发者快速了解、接触到Go这个新时代的编程语言。
Go 作为一个相对较新的语言,在网络编程、并发能力、部署方便性上有其自身的优势。有很多开发者在持续关注 Go 语言的进展,并正在考虑是否利用 Go 写一些东西,试着接触下这个人称“网络时代的 C 语言”的神器。
特别感谢本次活动的联合主办方,Go语言北京用户组(GopherBeijing),该用户组由《Go并发编程实战》的作者郝林发起,并有多位业界公认的Go技术大牛领衔。成立至今,我们主办的活动以每年两场中型聚会和一次小型特色竞赛或会议的频率进行。GopherBeijing的主旨是推广Go语言以及相关技术,帮助Go语言用户更好的使用相关技术和服务,促进Go语言用户及相关公司之间的交流和接洽,凝聚社区的力量,并服务于社区。
您可以扫描下面的二维码加入Go语言北京用户组:
更多市场合作请发邮件至hushuqi@devlink.cn或致电13752002090
此次活动正在火热报名中,您可以点击阅读原文了解更多详情并购票参会。
DevLink(devlinkcn)