

Towards a Common Ruby definition - sandal
http://elmcitycraftworks.org/post/37849197797/towards-a-common-ruby-definition

======
kmf
Ruby Newbie here.

Is this pretty common in programming languages? It seems like there's been a
lot of Ruby-specific drama in the last couple months (refinements come to
mind) - does this happen in Python, JS, etc. as well? It seems like most BDFLs
create the _canonical_ version of the language without much debate, but maybe
I'm just coming into it fairly late.

~~~
sandal
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.

------
amalag
How has Python avoided this? Is it because GVR has been accepted as the
dictator because there are no language barriers? I can see how the language
issue can cause a major disturbance.

