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

相关文章

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

Go Playground 在线编程环境

For all examples in this and the next chapter, we will use Go Playground. Go Playground represents a web service that can run programs written in Go. It can be opened in a web browser using the follow

go基础知识归纳总结

无缓冲的 channel 和有缓冲的 channel 的区别? 在 Go 语言中,channel 是用来在 goroutines 之间传递数据的主要机制。它们有两种类型:无缓冲的 channel 和有缓冲的 channel。 无缓冲的 channel 行为:无缓冲的 channel 是一种同步的通信方式,发送和接收必须同时发生。如果一个 goroutine 试图通过无缓冲 channel

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

C语言:柔性数组

数组定义 柔性数组 err int arr[0] = {0}; // ERROR 柔性数组 // 常见struct Test{int len;char arr[1024];} // 柔性数组struct Test{int len;char arr[0];}struct Test *t;t = malloc(sizeof(Test) + 11);strcpy(t->arr,

C语言指针入门 《C语言非常道》

C语言指针入门 《C语言非常道》 作为一个程序员,我接触 C 语言有十年了。有的朋友让我推荐 C 语言的参考书,我不敢乱推荐,尤其是国内作者写的书,往往七拼八凑,漏洞百出。 但是,李忠老师的《C语言非常道》值得一读。对了,李老师有个官网,网址是: 李忠老师官网 最棒的是,有配套的教学视频,可以试看。 试看点这里 接下来言归正传,讲解指针。以下内容很多都参考了李忠老师的《C语言非

C 语言基础之数组

文章目录 什么是数组数组变量的声明多维数组 什么是数组 数组,顾名思义,就是一组数。 假如班上有 30 个同学,让你编程统计每个人的分数,求最高分、最低分、平均分等。如果不知道数组,你只能这样写代码: int ZhangSan_score = 95;int LiSi_score = 90;......int LiuDong_score = 100;int Zhou