2 ms·
The language didn't have keyword arguments at the time it was originally created (nor did many other languages). The use of hashes as a way of simulating them w
by djur 3y ago
The language didn't have keyword arguments at the time it was originally created (nor did many other languages). The use of hashes as a way of simulating them was popular at the time (I've seen the same in Perl) but it was a good idea to eventually make them a full-fledged feature. It took a while to complete that transition without causing a serious backwards-incompatible disruption. Ruby has generally favored avoiding such things, which sometimes means finding some inelegant solutions.
- throwanem 3y ago> it was a good idea to eventually make them a full-fledged feature Why so?
- gls2ro 3y agoPositional arguments creates a dependency on the position of the argument. And this is a cause of bugs when calling a method with the arguments in the wrong order. Keyword arguments remove the depedency on the position.
- vidarh 3y agoBecause it provides a clearer way of enforcing calling conventions. Calling a method with the wrong keyword argument raises an error automatically. Calling a method with hash arguments the method expect replies on the method manually checking for unexpected keys. In Ruby as in other languages it was error prone.