Asta 谢:让你最爱的人用Go语言,让你最恨的人去创业

2024-03-03 17:40
文章标签 语言 go 创业 人用 asta

本文主要是介绍Asta 谢:让你最爱的人用Go语言,让你最恨的人去创业,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面

Asta谢

在国内提到Go语言就不得不提到一个人——Asta谢,凭借一已之力从无到有打造了全球最大的Go语言开发者社区的男人。从5年前的第一次Gopher China大会,到现如今被Go官方盖章认证的全球最大Go语言社区,很难想像这些仅仅是创业之余的兴趣爱好。

从开源的beego框架到《Go Web 编程》无不为Go语言的功能完善和布道推广发挥了重大价值。而在Asta身上依然保持着中年人少有的少年感,对创业的热情,对技术追求的极致,对新鲜事物的好奇心。现如今,加入到创业大军中的Asta,不同于众多技术创业者在互联网科技领域的突破,选择了以科技创新推动产业的互联网转型升级之路,究其根本竟也是怀有改变国内落后工业现状的梦想。

这篇专访带我们走进中国Go语言界彼得潘的世界。

关于 Go

01

最初是如何接触到 Go 的呢?在使用 Go 之前都写过哪些语言,他们的优缺点是什么?

最早接触到 Go 是2010年的时候,那个时候正好机缘巧合的在找谁能替代 C 语言的文章,发现了这方面的一篇文章是介绍 Go 是如何快速开发并保持 C 的性能,所以那个时候就开始接触Go,我记得那个时候的版本是r57,开始尝试写 Go 语言替换一部分 C 语言的任务。

在写 Go 之前我主要是使用 PHP + C 语言,大部分的时候是用PHP,那个时候我是 FleaPHP 的核心团队成员,在公司里面也是采用 FleaPHP 构建了我们整个业务平台,但是由于 PHP 并发性能方面的因素,写了一部分的 C 组件来优化性能。

PHP 确实写业务逻辑非常快,而且那个时候我们的 FleaPHP 框架非常给力,业务实现真的是非常快,但是遇到的问题就是 PHP 在高并发的情况下很难进行优化,还依稀记得当时有一个业务并发问题三天没睡觉去优化服务器,写了很多 C 的插件去优化一些并发要求很高的业务。C 语言就是对我们程序员要求太高了,就只记得malloc、free等,维护成本也很高,所以经历过那个痛苦阶段之后就开始找有没有一种语言可以集成两者优点的语言,正好就接触到了 Go。

02

目前很多大厂和创业公司都在拥抱 Go ,你觉得 Go 语言在大厂和创业公司的优越性分别是什么?

我觉得不管大厂还是创业公司大家都享受到Go的优越性,首先目前云原生生态里面 Go 语言已经完全统治,公司可以直接享受这个生态带来的好处,其次主要还是性能、部署便利和开发快捷等特性给公司带来的成本上面的节约,同时给很多程序员带来了很多编程的乐趣,有利于公司留住人才,前一段有一个公司的老板和我聊天,说他们公司主要是用Python,有一个员工向他提出离职申请,因为那个员工觉得 Go 才是未来云时代必须拥有的技能,所以想去一家用 Go 的公司,让我很是诧异,所以不管大厂小厂用 Go 可以天然的就带上云生态的光环,也帮助企业留住人才提供了很好的天然优势。  

03

目前 Go 语言更新的版本中,哪个特性是你最看好的,理由是什么?还有哪些不足是你希望后续能持续改进的?

我觉得WebAssembly的支持是最看好的特性,因为现在越来越多的 Go 项目是后端的,但是要是能把这些特性运行在浏览器上面,那肯定会有更广阔的市场,之前PingCAP分享了一篇文章,他们把他们的数据库跑在了浏览器里面,就是充分的利用了WebAssembly 的特性。而为WebAssembly可以更好的支持Go一直比较缺失的GUI领域,这一块用户群体更大,例如这个项目就是在用 Go 构建UI https://www.vugu.org/。

很多人可能会说错误处理,泛型等特性,但是我自己觉得 Go 可能应该更多的时间花在提升性能提升。最新发布的Go1.14 里面针对defer、time.Timer等性能的提升我觉得就非常好,而且我也认为Go Team在接下来几个版本还是会持续在runtime层面做更多的优化提升。

04

你觉得Go的下一个风口在哪里?

我觉得可能在两个方向上面都有可能,一个是IOT领域,一个是浏览器端应用,IOT领域目前我看到有边缘计算开源kubeedge,国外还有一个gobot的项目支持很多IOT设备,这一块很有可能会走出来一个生态项目。浏览器应用我觉得还是上面 WebAssembly 特性的拓展延伸,这个里面特别容易出爆款项目,很多新的idea会在这个里面实践。

05

最近有没有看到让您眼前一亮的 Go 的项目?

tinygo这个项目:

https://github.com/tinygo-org/tinygo

我第一次听说这个项目是GopherChina大会上面 Dave 告诉我的,当时我们公司想在树莓派上面做一些IOT方面的应用开发,又期望能够支持Go,正好一起聊起来这样的诉求,看到tinygo就感觉这个项目很有前途,因为越来越多的人参与到 IOT 设备开发里面来,而很多人也希望把Go跑在这个板子上面。好消息是最近Google官方支持了这个项目,也就是有了大后方支持了,后面说不定会成为 Go 的另一个分发。

关于创业

01

回答一下上一位受访 GVP 刘奇的问题吧:创业后的感受是怎样的?

没事别想不通来创业,但是创业让一个人的成长变得非常快,之前是一个程序员,现在变成一个CEO,思考方式完全不一样了,以前想着怎么写出来更好的程序,实现功能,现在想着是怎么养活一个团队,怎么样发展好公司、做好产品卖给客户产生价值。

02

你为什么出来创业做工业互联网而不是技术产品类,像云计算组件之类的?

出来创业之前其实想过两个方向:一个是沿着之前的Go开发框架方向做一个类似Spring的创业项目,一个是想随着Apple做的制造相关的项目,后来想想第一个我之前接触过了,感觉做的再成功也就是解决了技术人开发的问题,但是第二个我可以帮助到很多中国的制造业,说白了市场更大、成就感更足,但是困难也是最大,我就是喜欢挑战最大困难的人,现在就是在接受这个挑战过程中,痛并快乐着,每次看到帮助到制造业客户拿到订单、解决内部制造交期、质量等问题,内心无比骄傲。

但是选择工业互联网,从事的还是技术产品,我们现在用Go语言实现了整套的工业互联网平台,从IOT数据引擎、数据处理、流程引擎、应用开发等各方面都采用 Go 全新开发,目前已经服务了大批中小企业,也服务了像上汽、航天科技、华峰集团、核工院等大企业。

03

如何平衡创业和社区运营的关系

说实在的挺难平衡的,我目前120%的时间都是花在创业上面,基本上算是007的节奏,社区这边目前我就是逐步的在建立起来一套机制,怎么样让社区自运转,通过社区的人一起把社区建设好,所以今年最大的目标就是实现这个:所有人服务所有人!

04

向你感兴趣的下一位 GVP 提个问题吧

请教一下毛剑,B站如何一步一步从其他语言转到Go语言的,分享一下经验给其他公司做一个参考。

关于 Go 中国社区

01

当年为什么会想要发起 Go 中国社区?

最早还没有想到要搞 Go 社区,当初也是 Go 开发爱好者,想着在上海的一些 Gopher一起聚一聚,所以当时就在上海包了一个咖啡厅,第一次拉着七牛 CTO韩拓、道哥一起搞的第一次线下meetup,差不多有30几个人来参加,大家都是各自分享了各自的项目,我分享了一下beego的设计之类的,气氛融洽、交流了很多项目实战,记得还吃了个晚饭,忘记拍照了(????)

后来我就出国去了,那个时候在新加坡碰到了一批Go爱好者,特别是高超,咱们就一起去新加坡Google总部搞了一次新加坡的线下meetup,我也是第一次参加国外的这种meetup形式和方式,感觉很亲切也很flexible,后来和曹同学一起参加过好几次新加坡的线下技术meetup,在那个氛围之内确实很能启发大家的思考,也能体会到学习交流的乐趣。

说到发起 Go 中国社区就是回国之后发现国内线下交流的氛围不足,所以就想着要不就搞一下第一次的GopherChina大会,那个时候就找了老许一起讨论说要不要咱们搞一次线下的大会,我就去联系了Go 三大作者之一的Robert来中国分享,Robert很爽快的答应了,这样就开始搞起来了第一次的大会,第一届大会非常火爆,完全出乎我的意料,也就是那个时候开始感觉Go在中国真正火爆起来了。

后来就开始做微信公众号(Go中国)、发起了GopherChina社区(https://gocn.vip) 、GopherChina大会,Gopher Meetup等各种线上线下的活动,第一实现我们当初成立社区的目标:宣传Go,让更多的人知道和使用Go。第二让中国的Go开发者链接世界。

02

社区运营过程中最有成就感和最困难的事是什么

社区运营最有成就感是社区帮助到了很多Gopher,还有就是来自社区Gopher的认可和表扬,我开心的时候是遇到一个人和你说:“Asta,你的社区带我入了Go的门“,“Asta,你们社区的很多分享让我见识了Go的应用之广”,“Asta,社区的很多资料对我学习带来了很大的帮助”,诸如此类的话对我是最大的认可和激励。

遇到最困难的事情就是要搞持续不断的付出时间来运营,大家也知道我这两年开始创业了,其实时间真的非常少,这里就要感谢社区里面所有热心的Gopher们,是你们一起把社区支持下来了,而且是真的越做越好,GoCN新闻小组的同学坚持了三年一天不拉的发新闻,GoCN翻译小组同学抽出休息时间给大家带来国外最新的咨询,Go中国公众号运营小组给我们社区带来最实在的干货,所以说困难都是相对的,只要有你们的支持,我相信社区的明天会更好。

03

Go中国社区的愿景和发展规划是什么

Go 中国社区的愿景是成为全球上最专业、最活跃、最有趣的Go社区。我其实还想加一句成为最有艺术设计的社区(大家想想我们每一年的GopherChina吉祥物????)

接下来Go社区的主要发展规划是为Go开发者打造全方面的线上线下分享、学习平台。现在特殊时期,导致每年四月定期和 Gopher 们的大聚会——Gopher China 推迟到了今年下半年,但是我们会用其他形式来陪伴大家——下周我们会公布一档非常有趣的线上直播栏目“Mr.Go 的会客厅”,大家尽请期待。

聪明又努力的 Gophers,让我知道你“在看”

这篇关于Asta 谢:让你最爱的人用Go语言,让你最恨的人去创业的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/770406

相关文章

Go语言使用select监听多个channel的示例详解

《Go语言使用select监听多个channel的示例详解》本文将聚焦Go并发中的一个强力工具,select,这篇文章将通过实际案例学习如何优雅地监听多个Channel,实现多任务处理、超时控制和非阻... 目录一、前言:为什么要使用select二、实战目标三、案例代码:监听两个任务结果和超时四、运行示例五

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

go动态限制并发数量的实现示例

《go动态限制并发数量的实现示例》本文主要介绍了Go并发控制方法,通过带缓冲通道和第三方库实现并发数量限制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录带有缓冲大小的通道使用第三方库其他控制并发的方法因为go从语言层面支持并发,所以面试百分百会问到

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

使用Go实现文件复制的完整流程

《使用Go实现文件复制的完整流程》本案例将实现一个实用的文件操作工具:将一个文件的内容完整复制到另一个文件中,这是文件处理中的常见任务,比如配置文件备份、日志迁移、用户上传文件转存等,文中通过代码示例... 目录案例说明涉及China编程知识点示例代码代码解析示例运行练习扩展小结案例说明我们将通过标准库 os

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

go中的时间处理过程

《go中的时间处理过程》:本文主要介绍go中的时间处理过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 获取当前时间2 获取当前时间戳3 获取当前时间的字符串格式4 相互转化4.1 时间戳转时间字符串 (int64 > string)4.2 时间字符串转时间

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化