The optional parenthesis kills it for me. It makes scanning the code impossible: you have to understand each line context.
I understand this coming from a newcomer but after a while it felt like second-nature to me. I was curious about parent poster, because they said they are using Ruby for years.
You might say:
foo().bar().baz()
Ah well these are clearly method calls, they have ().But this is Ruby:
foo.bar.baz
These are clearly method calls too, because in Ruby there’s nothing else they could possibly be. The ()s don’t actually disambiguate anything. Unlike C or Java or some other languages with some notion of bare access to internal fields, there are always and only method calls.It just makes things less readable, with not other benefits than making the code look more clever than it is.