或许 ruby 社区会分裂,一部分保守派会拒绝 rbs,继续使用编辑器。
ide 党的福音来了,rbs 将彻底解决 ruby 太灵活导致的 ide 提示不准确的问题。
当然 rbs 施行类型标注以后,返回类型的灵活性要做一些牺牲,虽然 ruby 仍然支持动态类型,显然使用 rbs 的开发者会更注重确定类型,而放弃使用 ruby 灵活的那部分。
所以我说,ruby 社区会因此分裂为两个派别。
是福是祸呢?我们拭目以待。
RBS & Solagraph
看不出来为何使用编辑器=拒绝 RBS,Matz 在 19 年的 RubyConf China 都点名 Solargraph 了。
我现在就用 Emacs+TIDE 写 TypeScript
ruby 的速度也许能在将来硬件弥补。但 ruby 的失败早已命定。比如对冒号的乱用导致代码可读性极差,比如 rails 里验证函数是那样恶心和丑陋以至于我不想再看第二眼。ruby 成也语法,败也语法。时代已经过去,只可惜继任者还没上来
代码贴出来看看。主要问题是没有 type 检查吧。
想象一下,ruby 冒号能加在标签前面,又能再加在标签后面。一个 ruby 函数多参数不需要加括号,然后参数有符号又有散列,有的有默认词,有的没有默认值,有的键和值都是符号。这不的的确确是语法 bug。但 Ruby 语法 Bug 不光光是冒号问题,其他的问题也同样严重。这也是为什么很多人用 Python 原因
同样都是做类型声明,Python 的方案是在原文件里操作,做类型注解,Ruby 却是新开一个文件。rbs 出来这么久大家都不感兴趣不使用,自然是 rbs 设计本身出了问题。 在过去 20 年,日本一直在点错科技树,rbs 不外乎也是日本人又一个"杰作"罢了。
rbs 新开一个文件,的问题,完全可以由 ide 来弥补,我相信将来 rubymine 就会解决这个问题。
对 IDE 来说实现这样的功能并不难:
让类型声明看上去在同一个文件中,实际上在 rbs 文件单独保存
冒号在 ide 里面丝毫没有违和感
关于函数不加括号,现在 python 也加上这个语法了,不过 python 实现的还是有些保守,需要用 property 装饰器(https://docs.python.org/3/library/functions.html#property),并且加上这个装饰器后,就不能再加参数了。
关于多个参数不加括号,我原则上是自己实现的函数只要有参数都加括号,没参数的一律不加,不加括号会看上去赏心悦目很多,不然 python 也不会加这个功能。
多个参数还不加括号的,一定是作者在定义方法的时候已经考虑到不加括号了,比如 rails 的 migration,确实不加括号读起来更优雅。
ahsh shxhh, sjfrhs::iht, shu:, ihc: hhv, gggs: :xjhg ,tjc :jh 冒号辨识度低对人的功耗很极大,另外双冒号里有类名常量名的歧义,点连冒号忘说了。面向对象编程是为了让交互更便捷,但 ruby 反而比 C 语言麻烦多了,走火入魔典型
但 ruby 反而比 C 语言麻烦多了,走火入魔典型 这是在行业经历了什么才说出这样的话