トップ «前の日記(2009-02-10) 最新 次の日記(2009-02-17)» 編集

Route 477



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でそういうのあったよね。
    • Rails。あと、SWIGベースなやつ(wxRubyとか)。でも、1.8.7で書いたコードが1.8.6で動く保証がないのが困るな。
    • 「require 'compat-1.9' したら新しいAPIが使えるよ」とかがいいんじゃないかなぁ…。
  • 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大好きスレッド) のまとめはまた今度。

本日のツッコミ(全2件) [ツッコミを入れる]
なかだ (2009-02-13 04:20)

元々1.8ではハッシュの順序は保存されたことはありません。<br>保存されるようになったのは1.9.1以降です。<br>つまり、[ruby-talk:327924]の彼は自分のコードのバグが1.8.7で発見できたわけです。

(2009-02-13 09:22)

erbにエンバグしたのも原因の一つかなあ。