3 ms·
> why not just modify the ruby syntax The Ruby syntax is too complicated to allow for changes like this to be backwards-compatible. For example, `attr_reader
by rattray 6y ago
> why not just modify the ruby syntax
The Ruby syntax is too complicated to allow for changes like this to be backwards-compatible.
For example, `attr_reader token: String` is valid ruby today – that's the same as `attr_reader(:token => String)` which somebody might be doing in the wild, since you can override `def self.attr_reader`.
Similarly, `def initialize(token: String` clashes with the definition of keyword arguments.
- jrochkind1 6y agodoh! good point. I am not able to spin that into "And besides it's better to force it to be in two files anyway!", I don't think it is, but I guess it's not so easy to do different.
- TylerE 6y agoHeader files suck. Anything is better than a separate file.
- dragonwriter 6y ago> Anything is better than a separate file. I dunno. Massive breakages of backward compatibility in an established language may not be better than that.
- Lio 6y agoIf we could write tests in .rbs files it would more naturally fit into existing 2 file workflows. Mind you, if we could write tests in .rbs then I guess .rbs could form the basis of a new ruby syntax without breaking compatibility with old code in .rb files.