Hi,
I’ve spent a lot of time trying to fix Ruby’s bad handling of the “%s
%z” time format that is used in every Git commit. It’s now fixed for
Time and in Rubinius both Time and DateTime without affecting anybody
negatively.
The only one remaining is DateTime, and as you can see in the bug
report[1], the rationale is perfectly sensible, the fix simple, clean,
and unobtrusive.
Yet this guy, Tadayoshi F., closes it immediately without any
reason given. After I complained he gives what is probably a bullshit
reason, it’s hard to know because it’s in Japanese, but the code in
the explanation is most definitely a red herring. This is probably due
to an earlier discussion [2] in which he didn’t explain anything
either.
So my question is: who the f*uck is this guy? And why can he just
reject sensible patches like that?
After a private discussion with somebody heavily involved in Ruby, I
was enlightened to the fact that Ruby development is heavily
influenced by Japanese culture, so every component has a clear
maintainer, and he has the final word, regardless of their bullshit
reasons.
This model is clearly wrong. The most successful projects out there
(e.g. Linux, Git) do not have maintainers making decisions
unilaterally, but rather discussion and consensus are more important
than authority. This ensures that if the maintainer is wrong (we are
all wrong sometimes (some more than others)), the project doesn’t
suffer as a result.
If you must have a maintainer that makes decisions unilaterally,
shouldn’t it be a sensible person able to communicate properly? This
is something Tadayoshi F. is not. Apparently he cannot even speak
English, so what is he doing maintaining a module of such an important
project as Ruby?
I believe this explains a lot about why Ruby has such a problem
gaining and maintaining popularity. Even though the language is
extremely awesome, the implementation cannot advance as it should,
heavily in part due to this Japanese culture.
This forces projects like Rubinius, and RubySL. I’ve talked to people
in those projects who are heavily discontented with the way Ruby MRI
does things; ignoring the larger community out there (who are not
Japanese).
For example, Ruby MRI doesn’t match the RubySpec, and why do the
developers do? Nothing, ignore the RubySpec (at the moment of writing
this I see 25 failures).
If this political and cultural bullshit continues, I’m afraid Ruby
won’t ever be as successful as similar but inferior languages such as
Python, and whatever popularity it gains, it will quickly loose it as
it did in 2008[3]. It will become a lost gem, like so many good
Japanese things, only used in Japan (if at all), and ignored by the
rest of the world.
I hope Ruby becomes a sensible truly international project, adopt
practices of other successful open source projects, and let go of this
NIH bullshit.
[1] Feature #9794: DateTime.strptime() doesn't work correctly for '%s %z' - Ruby master - Ruby Issue Tracking System
[2] Bug #7445: strptime('%s %z') doesn't work - Ruby master - Ruby Issue Tracking System
[3] Home - TIOBE