3 ms·
A lot of 'unnecessary' syntax is comming from the fact that block forms 'do..end, {}' are not objects in Ruby. I wish Ruby implemented them the same way as in
by zya 16y ago
A lot of 'unnecessary' syntax is comming from the fact that block forms 'do..end, {}' are not objects in Ruby.
I wish Ruby implemented them the same way as in Smalltalk, to be used as objects passed to a method's arguments.
All the 'do..end, {}', '&', 'yield', block_given?, etc. would have been gone. And there would be just one unified way to construct and call a block.
This is the only part of the language I find wrong in Ruby.
Any Rubyists share the same feeling?
- chc 16y agoYes. I have a feeling it's not even an uncommon sentiment among Rubyists. Ruby's implementation of blocks was a huge chunk of technical debt that it incurred early on when it kind of wanted to be Perl, and all the attempts to patch it up while maintaining backwards compatibility have made it a hugely complex corner of the language. Ruby would be vastly less confusing if they threw out all the current syntax and semantics of blocks, straight-up aped Smalltalk's, and unified them with methods.