认真的问,要不要学学 go 语言?爱好级别的学习

2019-04-22 19:47:45 +08:00
 rizon
爱好级别的学习,目前已经学了很多感兴趣的东西了。
比如 python,nodejs。
所以问问大家 go 语言要不要学一下?就是他有什么好玩的地方?

比如 python,nodejs 我可以随时像 shell 那样写点脚本,而且有丰富的模块可以用,随拿随用,挺好玩的。
那么 go 呢? go 有什么好玩的点吗? go 语言的特色? 我看有些人开发的工具是 go 的,直接执行 go get ? 就可以安装。。
有点像 npm install 那样,似乎有点意思。

另外,像 b 站等一些企业,为什么会转 go 呢?可以给分析一下吗?
12526 次点击
所在节点    程序员
61 条回复
sanbenweiyang
2019-04-23 10:05:28 +08:00
学习 Golang 服务器,建议看这个项目 https://github.com/aceld/zinx
charten
2019-04-23 10:06:42 +08:00
要不来学前端吧?前端什么都能搞、、、什么机器学习 图像识别 音频处理之类的都可以搞,就是性能渣而已
myyou
2019-04-23 10:13:33 +08:00
要不要学 scheme,推荐 chez scheme,可能什么都做不了,但可以装逼。
moloach
2019-04-23 10:21:44 +08:00
想学就学呗,反正 go 语言不难,网上有大把的教程,github 上也有大把的项目开源!使用方便度上来说肯定没有 python 易用。性能还行,比起 java 这个吃内存大户,go 显得良心多了!对于写业务逻辑来说 go 语言是一个很不错的选择,虽然错误处理很恶心!
kios
2019-04-23 10:42:34 +08:00
@zonyitoo 那么请问 C 过时吗? C++ 过时吗?
lnim
2019-04-23 10:48:33 +08:00
学 Swift 啊 !!!! 支持多编程范式, 集 C# 优点,
gowk
2019-04-23 11:00:35 +08:00
我认为 Go 写起来很爽,起码比 Java 爽太多,但还是要结合业务。窃以为,把 Java、Javascript、Go 这三门语言作为你们的主力语言,你的职业生涯会变得更加得心应手一些。
but,如果 Go 添加了 Generics,我会用 Go 写所有的项目。Go for everything.
q397064399
2019-04-23 11:21:37 +08:00
@DJQTDJ #38 结果没一个能打的,C/C++ Java Python Javascript 还是常年霸居榜首
alexmy
2019-04-23 11:21:45 +08:00
昨天 B 站都被做了那么大的贡献了。我目前就在用 go 做后端服务。
JerryCha
2019-04-23 11:28:15 +08:00
学啊,其他语言有 openbilibili 这种开源的工业项目源代码么(手动狗头)
AlphaTr
2019-04-23 11:28:43 +08:00
@Canon1014 看看 B 站开源的这个框架 https://github.com/bilibili/kratos
KIMMG
2019-04-23 11:33:49 +08:00
<a href="https://imgchr.com/i/EA6gjP"><img src="https://s2.ax1x.com/2019/04/23/EA6gjP.md.png" alt="EA6gjP.png" border="0" /></a>
wtks1
2019-04-23 11:47:35 +08:00
@agdhole 我们公司的 C#已经在陆续重构成 java 了,那个工期拖延的叫一个酸爽
reus
2019-04-23 12:00:38 +08:00
@q397064399 槽点太多,还是不反驳你了,反正你装睡的。
exploreXin
2019-04-23 13:06:08 +08:00
当我们讨论编程语言优劣的时候,往往忽略一个很重要的问题:编程语言的本质,承载人类发出的控制信息,用于指挥计算机产生某种行为,从而满足人类的生产,生活等需求。如果不明确这一出发点,就不能深刻认识到我们将要讨论的问题。

从编程语言本质可以看出,编程语言的作用是承载信息用于控制计算机,那么所承载的信息是哪里来的?答案是人脑。我们几乎绝大部分工程师在参与软件开发的过程中都没有认识到一件事情,真正的终端是人脑,信息产生于人脑,网络连接的是人脑与人脑,人脑是信息产生处理的源头和终点。计算机只是量变了人脑之间的通信,至少在强人工智能实现以前,都不会质变这个过程。所以计算装置的总设计纲领产生于人脑,而软件也包括在内,编程语言就更加属于这个范畴。

现在再来看要不要学某门语言的问题,编程语言之间的最大区别其实是底层编译器的区别,编译器的区别在于编写编译器的开发人群之间的区别,所以最终产生区别的发源地是开发人员对于世界认知的不同,导致不同的编程映射方式,有的语言语句不用分号结尾,有的语言可以有分号,也可以没有分号,这些区别都不是浑然天成的,他们产生于软件作者的不同世界观,才产生了不同的语言差别。一个开发者如果融入符合自己世界观的开发者社区,将会如虎添翼,如果进入了与自己世界观不同的社区,将犹如进入地狱一样,极端的例子例如:Linus 极度讨厌 C++。

当然了,世界观也是一点一点养成的,早年的经历,工作当中接触的技术会影响我们的世界观,再加上自身性格与对世界的认知,最终形成我们对于编程语言的口味,使你在用某个语言时特别舒服,而某些语言让你生不如死,但是对于别人,也许这生不如死的语言正是他们的最爱,这也是编程语言战争的导火索,我们都倾向我们喜爱的语言,痛恨另自己难受的语言。所以产生语言战争的根本原因不是语言的优劣,而是我们人脑的偏见导致的。

有人说,我这么多年也没有过热爱什么语言,也没有痛恨过什么语言,这是为什么呢?这是因为,我国信息产业还处在初级阶段,国家层面上的研发还停留在应用开发的阶段,我们的底层研发人员凤毛麟角,这切断了我们产生自主软件世界观的源头,我们只是拿国外开发的系统,语言来用,融入别人的世界观,然后贡献自己的代码,而我们东方特有的世界观极少有机会能够产生自己的软件生态,知乎上无数人追问为什么国内没有产生伟大的编程语言,就是因为这些原因,想来甚是可惜。不过随着国家的不断发展,我相信总有一天国人能够拥有自己的软件生态,不再受制于人。

那么问题来了,到底要不要学 Go,不同的人答案不同,如果你的底层世界观和 Go 语言社区相一致,那么果断融入,也许将来能够赶上下一波潮流,以后升职加薪那是少不了的。如果自己所在领域,以前的语言与 Go 的哲学差异很大,那就要慎重一些,毕竟不同世界的事物想要融合,将需要巨大的时间去催化,而开发人员的时间又是及其宝贵的,所以建议慎重选择。如果单纯想提高哦收入,学一套自己所用语言的新的框架,时间利用率会高的多。

最后,如果你读了上面的文字,觉得像神仙打架,不知所云,那么说明你还停留在代码搬运的表层阶段,闲暇之余多读一些计算机科学方面的书籍,有助于改善这个问题,底层知识的力量就在于能够让你彻底认知一个问题,而不是流于表面,人云亦云,别人说的就一定对吗? No,要我自己审视推敲证明是对的,才能说是对的,否则我们就只能像个路由器一样,接收转发,没有一点自主权利。对于 Go 呢,我还是推荐了解一下 Go 语言的,国内不流行不说明就不优秀,看看 Go 语言创始人都有谁你就会知道,至少冲着大神们的招牌,应该错不了,具体怎么样,等细细研究过 Go 语言之后,相信定会受益匪浅。
iceheart
2019-04-23 13:25:17 +08:00
跟其他语言比,Go 的协程极其好用。
如果说硬挑点毛病,那就是协程没有局部存储。
ntop
2019-04-23 13:48:39 +08:00
我司现在整个后端都是用 Go 写的,以前用过 ROR/Spring/Django 之类的,感觉还是 Go 爽一些... 前面 3 个框架需要背、记很多东西,但是 Go 的很多东西都是一个库,比较符合我们这种不爱学习的同学,看看 API 就可以演绎出各种用法,满足各种需求。部署也很方面,直接在本地交叉编译得到一个二进制扔到服务器就行了。我司的产品:卡哇微社区( kawaapp.com )刚上线,有兴趣的可以关注下,哈哈.
pursuer
2019-04-23 14:03:00 +08:00
目前学到过的语言中,带自动 GC 的,我喜欢 Kotlin,不带的,我推荐学习 C/C++,Rust 也可以试试,开发网络相关项目,我推荐 GO,因为可以很容易开发高并发服务。其实很多语言之所以出现都是因为在特定的应用场景中会更好用
HarrisonZ
2019-04-23 17:43:28 +08:00
golang 是工程语言,不用来写项目就不用学了也没啥学的。兴趣还是学 c++或者 rust
sailing0505
2019-04-23 23:16:37 +08:00
@Belmode 可能你误会我的意思了。我只是建议从算法,数据结构入手,然后对应选择一门喜欢的语言,语言这个东西属于熟能生巧的。不要花太多精力在无法上面。当你写熟了,bash 都能写出面向对象的感觉。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/557654

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX