2009-02-12
■ [ruby] 1.8.7は(海外で)なぜ不人気なのか
ruby-talkでアンチ1.8.7スレが立ってると聞いたので斜め読みしてみた。
- 「1.8.6で動いてたコードが、1.8.7で動かないことがあったから」が主な理由っぽいなぁ。安定版なのに、気軽にバージョンアップできないじゃんっていう。
- 「バックポートなんていらね」という意見もある。「新しい機能が使いたければ1.9使うよ」ということらしい。(個人的には、「1.8のまま」新しい機能が使える1.8.7は好きなんだけどね)
- 「仕様が異なる」バージョンがいくつもあることはプログラマを混乱させる。
- 「1.8系が1.9に近くなったら、1.9に移行しなくてもいいやってならね?」(→これは逆だよなぁ。)
- 「初心者としては、違うバージョンがいくつもあると混乱する。1.8.6がピッケル本相当で、1.9.1がdblackの新しい本相当だよね?」
- 「1.8.7も*だいたい*ピッケル本相当だよ」じゃダメかなぁ。説得するには弱いだろうな。
- 「とにかくAPIの変更は1.9でやってくれ。」
- APIを変更しない修正だけならpatchlevelで済むはずなんで、これはつまり1.8.8は不要ということだろうか。
- Nutterさん曰く:
- I am not happy.
- 1.8.7、1.8.8は1.9への橋渡しを意図しているみたいだけど、TEENYレベルの変更にしては大きいものが入りすぎてると思う。
- ちょうどPython 3.0に対する2.6, 2.7みたいだけど、これらはMINORレベルの変更だし、コミュニティの要望があったものしか入っていない。1.8系には、コミュニティが望んでないものも入っている。
- TEENYレベルのバージョンアップはバグフィックス以外を入れるべきじゃない(例:全く新しいAPIや、新しい文法)。1.8.7は前者、1.8.8は後者に違反している。
- やっぱ1.9は「2.0」にすべきだったんじゃね?そしたら1.8.7を「1.9」に、1.8.8を「1.10」にできるよ。
- TEENYレベルの変更は、ユーザが「必ず」アップグレードしていいものに限るべきだ。例えば今Ubuntu入れると1.8.7が入るから、Ubuntuユーザは「1.8.6で動かないコード」を書きがちになるだろう。
- あと、バージョンがいくつもあるとそれだけ人的リソースを食うよね。1.8.8が出て、1.8.6のサポートが終わると困らん?
- <卜部さん> 俺以外が手を挙げれば、1.8.6のサポートを続けることは可能だよ。実作業もそんなに大変じゃないし(どっちかというと「何を入れるか」を決める方が大変)。
- 大抵のもんは1.8.7でもちゃんと動いてる気がするんだが?
- Object#tapとか、1.8.7でしか動かないよな?
- むしろ1.8.7だと*ちゃんと*動かないコードの方が困る。いくつかのフレームワークとかgemでそういうのあったよね。
- Date.parseの変更が自分にはよく分からん…。
- むしろ1.8.7だと*ちゃんと*動かないコードの方が困る。いくつかのフレームワークとかgemでそういうのあったよね。
- Rails。あと、SWIGベースなやつ(wxRubyとか)。でも、1.8.7で書いたコードが1.8.6で動く保証がないのが困るな。
- <Matz> Railsの件は知ってる(もう直ったよね)けど、SWIGとwxRubyについてkwsk
- 「require 'compat-1.9' したら新しいAPIが使えるよ」とかがいいんじゃないかなぁ…。
- Object#tapとか、1.8.7でしか動かないよな?
- TEENYの変化でメソッドが増えるとか、「1.8ではよくあること」だったろ?なんで1.8.7だけこんなに問題になるのか分からん。
- いや、俺は1.8.6に上げたときも「ぎゃっ」て言ったよ。
- 1.8.7でハッシュの順序が「ソースに書いた順」じゃなくなったから、俺のライブラリが動かなくなった。まあ明示的な仕様ではなかったけどさ…。
- 問題は「1.8.6のコードがちゃんと動くか」だ。個人的にはメソッドの追加は何も気にしない。/ つーか、さっさと1.9.1に移行すればいいよ!
- 俺もそう思う > 1.9.1。でも、俺は古いRailsアプリとか、でかいRSpecのテストとかを保守してる人じゃないからな…。
- 「1.8.6互換のバージョン」と「1.9.1」の2つだけでいいよ。たくさんのバージョンにいちいち対応するのは面倒だし、全部で動くようにするのをミスりそうで怖い。(railsとかmerbのアプリ書いてる人はもっとそうだろうね。)
- もう戻るには遅すぎると思うけど、「1.8.7が無かったら」という意味では賛成+1。「この機能は1.8で使えたっけ」っていう話題が大変なんだ。管理者的には、誰かのアプリやライブラリが壊れたら…と思うとアップグレードするのに勇気がいるし。
- 1.6→1.8のときはshimがあったなぁ。
感想: Railsが壊れたのはかなり印象を悪くしただろう。 あと、「ユーザがイメージする1.8系」と、「コミッタがイメージしている1.8系」のギャップが不幸の原因かなぁと思った、 機能追加とか互換性どうこうではなく。Nutterさんの案(MINORレベルでやれ)は核心を突いてるのかも。
後半 (1.8.7大好きスレッド) のまとめはまた今度。
元々1.8ではハッシュの順序は保存されたことはありません。<br>保存されるようになったのは1.9.1以降です。<br>つまり、[ruby-talk:327924]の彼は自分のコードのバグが1.8.7で発見できたわけです。
erbにエンバグしたのも原因の一つかなあ。