@
InkStone #38
> 事实上,里面提到的 Go 的优点就是一条:并发编程支持好。
所以现在你的观点里增加了一条 Go 的优点,我多少欣慰了一点。。。
> 其它的都只能说是“特点”。比如本身支持底层操作(底层语言不支持底层操作这像话吗?),有 GC ,编程范式和 tsc 原有的实现方式接近等等。
支持和好用是两码事,其他很多语言也都有“协程”之类的,但是好不好用?我个人从早期的 lua 、erlang ,到现在的一些语言的 async await 或者 virtual thread 大概都了解过一些,只能说 erlang 的进程和 goroutine 是一样好用的、但 erlang 本身比较拉,其他的,让我实际工作中去用我是不会去这样糟蹋自己去用的
> 当然,真说起来,说 JS 和 Go 像确实也没那么贴近事实,更贴近事实的是:Go 和 tsc 里使用的那一部分 ts 语法子集(接近于带 typehint 、不怎么玩 prototype 等花活的 js )很像。
“真说起来”,那肯定是不像,但人家只要有采访中提到的这部分相像就已经足够作为多个语言中选型的重要理由之一了。
实际上这个选型主要是两个维度:
1. 是否能实现性能优化和体验的提升:为了达到这个目的 c/c++/rust/go/c#等语言都可以
2. 在满足 1 的前提下,重写编译器的工程效率,因为考虑到已有的 ts/js 的可重用性,go 与 js“相像”这个优势就凸显出来了
> 你喜欢 Go 的心情我能理解,但自始至终你都没说出什么 Go 什么优点来,这实在有点难绷……
我从没有因为自己喜欢 Go 而去盲目吹嘘 Go 的好或者贬低其他语言的不好:
1. 我说 Go 的好的时候完全就是因为我认为这些点真的好、并且是我亲身体验的好
2. 我说其他语言的不好的时候完全就是因为我认为这些点真的不好、并且是我亲身体验的不好
我自己干这样差不多二十年了,学习、体验过十多种语言,实际项目中用到过的至少写了几千几万行的代码的包括 c/c++/lua/py/c#/js nodejs/as/go 各种,好和不好都是亲身体验和总结,不是站队性质也不是跟风性质的观点输出