2 ms·
I'm the author of the article, but it's worth noting that I'm not involved in any implementation efforts. That said... The overall way that Ruby is developed c
by sandal 14y ago
I'm the author of the article, but it's worth noting that I'm not involved in any implementation efforts. That said...
The overall way that Ruby is developed causes these issues to happen, because major language experimentation happens very close to feature freeze dates. Because MRI is the defacto-standard (and the ISO standard defines a Ruby which simply does not exist in reality), contention happens because of the lack of coordination between the core Ruby team and the alternative implementers.
So for example, something like refinements are controversial because they are very challenging to implement and create all sorts of additional complexity. Under the current way of doing things, alternative implementers would be forced to either implement this feature or to not be able to fully claim they are "compatible" with whatever Ruby version they're released in.
Matz is generally a good BDFL, and the alternative Ruby implementers are generally very reasonable as well. But the tight time cycles, informal arrangements, and the communication barriers between a Japanese-speaking and Japanese-cultured core team and a more globalized language community combined lead to a lot of heated debates and frequent turbulence.
But all that having been said, compromises are almost always made sooner or later and the community moves forward together. They just often come at a high cost, and I wish that cost were lower. After all, the list of things we agree on is miles longer than that which we disagree about.