hax.github.com icon indicating copy to clipboard operation
hax.github.com copied to clipboard

关于exclusive range运算的符号

Open hax opened this issue 10 years ago • 8 comments

大概去年这个时候 Swift 语言把 half-open range operator .. 改为了 ..<,引起了一些讨论。

实际上..<运算符的最早先例是 Groovy 语言

而Groovy在初创之时,使用的是和 Ruby 一样的 range operator(.....),在2005年4月左右将 ... 改为了 ..<

而最早提出以 ..< 符号作为 exclusive range 运算符的,其实正是本人。这10年前的邮件记录可在此查看:http://marc.info/?l=groovy-dev&m=113684773506831

其实在 Swift 做了这个改进后,还是有很多人吐槽这个符号的,比如 1..<3 有点像“I love”?

不过我个人认为,如果一定要使用多个点来作为 range operator,那么 Swift 的这组符号选择是看下来最合理的——实际上我开发的 Jedi 在三年前就使用了 ... 作为 inclusive range op,..< 作为 exclusive range op,应该是世界上最早使用这个组合的了——幸好有git记录,后来人就不会以为我是抄 Swift 的了——实际上是 Swift 的开发者在10年后终于选择了我当初的设计……

不管这个符号的好坏如何,这应该是迄今为止我个人对整个编程界最大的影响了,而且随着Swift的流行,还会有更多的开发者使用我创造的这个符号,想想好像也挺有成就感的。

hax avatar Jul 15 '15 21:07 hax

赞,这个可比神棍厉害多了

xufei avatar Jul 16 '15 01:07 xufei

有没有个字体在设计的时候考虑过让 <3 更像个心形

amio avatar Jul 16 '15 02:07 amio

@amio 不知道啊。不过OpenType理论上是可以直接把<3替换为单独符号的,比如:heart:

hax avatar Jul 16 '15 02:07 hax

贺老的睡觉时间太感人……话说 <3 合体应该很轻松的,比如这两个个字体里全是这种组合:HaskligFiraCode

Justineo avatar Jul 16 '15 03:07 Justineo

@hax 保重身体啊

luqin avatar Jul 16 '15 03:07 luqin

@Justineo 还真有!城会玩…

amio avatar Jul 16 '15 04:07 amio

赞!

确实,对于没有 Ruby 背景的人来说,..... 的区别很不直观,每次看到都要查一下,或者想半天。语言所采用的操作符在字面上给人的直观感受非常重要。原来在十年前,贺老就已经对语言的设计如此关注了。

cssmagic avatar Jul 16 '15 05:07 cssmagic

贺老快给我签名

yisibl avatar Oct 26 '15 15:10 yisibl