Y**G 发帖数: 1089 | |
p*****2 发帖数: 21240 | 2 看看fan神的观点吧
Go的理念是语法必须简单,让码工写起来恶心,但不容
易写出无法维护的代码。不支持generic隐含的意义是强迫码工断绝让一段代码支持多
种类型的念头。写lib是一回事,而对app来说这显然是有利的。一段business logic如
果只处理int,出错的概率显然比既支持int又支持string小。
某种程度上generic可以通过interface实现,但实践中它主要用来做DI,test时注入
mock组件。
真正的generic语义,比如自带的sort package,很不顺手,确实不如fancy的新语言“
简洁”。我不认为这完全是坏事。swift写个运算符就能当匿名函数用,简化到极致,
但我总觉得哪里不对劲 |
w***g 发帖数: 5958 | 3 说得不错。我也挖出来了王垠的评论:
http://www.yinwang.org/blog-cn/2014/04/18/golang
关键部分:
然后由于 Go 的语法设计偷工减料,再加上由于缺乏 generics 而产生的特例(比如
Go 的 map 的语法设计)已经被大量使用,我觉得要加入 generics 的难度已经非常大。
我好久前也讨论过rob pike发明go语言的出发点
http://www.mitbbs.com/article/Programming/31446453_0.html
Generics在他们的roadmap里可能没啥priority。
【在 p*****2 的大作中提到】 : 看看fan神的观点吧 : Go的理念是语法必须简单,让码工写起来恶心,但不容 : 易写出无法维护的代码。不支持generic隐含的意义是强迫码工断绝让一段代码支持多 : 种类型的念头。写lib是一回事,而对app来说这显然是有利的。一段business logic如 : 果只处理int,出错的概率显然比既支持int又支持string小。 : 某种程度上generic可以通过interface实现,但实践中它主要用来做DI,test时注入 : mock组件。 : 真正的generic语义,比如自带的sort package,很不顺手,确实不如fancy的新语言“ : 简洁”。我不认为这完全是坏事。swift写个运算符就能当匿名函数用,简化到极致, : 但我总觉得哪里不对劲
|
f*******t 发帖数: 7549 | 4 其实可以把Go理解为改进版的C语言,很多设定留下了C的痕迹,也许会成为Go长期无法
修复的缺陷。比如绕过static type的interface{},其实等价于C里的void*,绝对是毒
瘤。
Go是由C语言爱好者开发的,从这个角度出发,我猜Go短期内不会引入generic,那样就
搞得像C++了,开发者绝对不情愿。
另外楼主说说在写啥,没有generic就要抓狂? |
n****l 发帖数: 1739 | 5 为什么用generics? Jave 1.2-1.4没有generics用的好好的, 加了只会让语言更复杂。
go更像是真正设计过的语言,不像C++/Scala, OO+FP, 就是一陀。
【在 Y**G 的大作中提到】 : 今年有戏吗?没有Generic令人抓狂阿
|
c*******9 发帖数: 9032 | 6 你的项目不需要用,不等于所有项目都不需要。作为通用的语言这些几乎必备。
【在 n****l 的大作中提到】 : 为什么用generics? Jave 1.2-1.4没有generics用的好好的, 加了只会让语言更复杂。 : go更像是真正设计过的语言,不像C++/Scala, OO+FP, 就是一陀。
|
a***n 发帖数: 623 | 7 短期内不会有generic,不过你看TiDB这么复杂的项目都用Go写出来了相信Go不会是一
门让你抓狂的语言。 |