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语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块

使用Go调用第三方API的方法详解

《使用Go调用第三方API的方法详解》在现代应用开发中,调用第三方API是非常常见的场景,比如获取天气预报、翻译文本、发送短信等,Go作为一门高效并发的编程语言,拥有强大的标准库和丰富的第三方库,可以... 目录引言一、准备工作二、案例1:调用天气查询 API1. 注册并获取 API Key2. 代码实现3

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Go之errors.New和fmt.Errorf 的区别小结

《Go之errors.New和fmt.Errorf的区别小结》本文主要介绍了Go之errors.New和fmt.Errorf的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考... 目录error的基本用法1. 获取错误信息2. 在条件判断中使用基本区别1.函数签名2.使用场景详细对

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Go中select多路复用的实现示例

《Go中select多路复用的实现示例》Go的select用于多通道通信,实现多路复用,支持随机选择、超时控制及非阻塞操作,建议合理使用以避免协程泄漏和死循环,感兴趣的可以了解一下... 目录一、什么是select基本语法:二、select 使用示例示例1:监听多个通道输入三、select的特性四、使用se