パスワードを忘れた? アカウント作成
7635727 story
Ruby

Ruby 2.0.0-p0 リリース 45

ストーリー by reo
さあ使ってみよう 部門より

Ruby 2.0.0-p0 がリリースされた (ruby-lang.org の記事より) 。「るびま」こと Rubyist Magazine も Ruby 2.0.0 リリース特集を組んでいる (Rubyist Magazine 0041 号)。圧倒的なボリュームなので読むのに一苦労である。嬉しい悲鳴である。

主要な新機能については、ruby-lang.org の記事から引用すると、

言語コア機能

  • キーワード引数: API 設計の新しい柔軟性
  • Module#prepend: クラス拡張の新しい方法
  • シンボルの配列を簡単に作るリテラル %i
  • __dir__: 実行中のファイルのあるディレクトリ名
  • default UTF-8 encoding: 多くのマジックコメントが不要に

組み込みライブラリ

  • Enumerable#lazy / Enumertor::Lazy: 無限の遅延ストリーム
  • Enumerable#size: 遅延サイズ評価
  • #to_h: Hash への変換メソッド
  • Onigmo (鬼雲): 新しい正規表現エンジン (鬼車の fork)
  • 非同期例外を安全にハンドリングする API

デバッグサポート

  • DTrace サポート: 本番環境での実行時診断を可能にする機能
  • TracePoint: 改善されたトレース API

性能改善

  • bitmap marking による GC 最適化
  • Rails の起動時間を大幅に短縮する Kernel#require の最適化
  • メソッドディスパッチなどの VM 最適化
  • 浮動小数演算の最適化

詳細については前述のるびま 0041 号参照。Matz 氏により 1993 年 2 月 24 に Ruby と名付けられた言語は、先日 2013 年 2 月 24 日で 20 周年を迎え、そして 2.0.0-p0 がリリースされた。関係者の皆様に感謝の念と賛辞を述べさせて頂きたい。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2013年02月25日 13時54分 (#2332026)

    1.9→2.0は1.8→1.9よりは互換性があるという話なのでえいやと移行しようかと思ったんだけど、
    どうやらリリース直前までバタバタしていたようで。
    http://togetter.com/li/461833 [togetter.com]

    ちょっと様子見かな。すぐにパッチレベル上がりそうだし。

  • by USH (8040) on 2013年02月25日 18時05分 (#2332167) 日記

    以前、Matz氏が、ruby は version 9 以上は作らない(リストとった時順番に並ばなくなるので)とどこかでおっしゃってましたが、バージョン1あげるのに20年であれば、少なくとも今世紀は大丈夫そうですね。

  • p (0..Float::INFINITY).lazy.map{|x| x * 2}.first(10)
    なにこれステキーーーーーー(>_☆あれみてーー
    take 10 $ map (\x -> x * 2) [0..]

    • by Anonymous Coward

      p (0..Float::INFINITY).lazy.to_a.reverse

  • たぶん自分しかユーザがいない、数式がTeX形式で書けるのが特徴の超軽量マークアップ言語のULMUL [rubyforge.org]がそのままRuby 2.0で動いた。めでたい。

    こころなしか速くなっているような気がする。requireが速くなった [rubyist.net]のが効いてるかも。気のせいかも。

    $ sudo gem install ulmul

    だけでインストールできるんだけど、
    るびまのインタビュー記事でも触れられているけど、
    MLで話題にした [nagaokaut.ac.jp]こともあるんだけど、
    gemの署名は今後の課題だなぁ。

    --
    love && peace && free_software
    t-nissie
  • by Anonymous Coward on 2013年02月25日 16時00分 (#2332100)

    RPythonで実装したら本家より断然速いぜってニュース最近見た気がするけど
    本家も徐々に速くなってんですよね?

    • 個人的には、Rubyに関しては、効率とかもう気にしないで、遅いインタプリタってことでいいと思ってます。それはそれで存在価値があります。あらゆるプログラミング言語実行環境が、実行効率最善に近いネイティブバイナリコードにするのを目的にする、というのも、あんまり面白くない。Rubyで書いたコードをCで書きなおしたらどのくらい速くなるのか、みたいなテーマは、コンピューター・サイエンスを学ぶ学生にとっては面白いと思うからです。

      親コメント
    • by Anonymous Coward on 2013年02月25日 17時22分 (#2332137)

      「性能改善」として記載されている通り、速くなっているところもあるみたいよ。

      http://news.ycombinator.com/item?id=5275985 [ycombinator.com] より

      Basic Ruby 2.0 benchmarks calculating pi from gist [1]
      $ ruby --version
      ruby 1.9.3p385 (2013-02-06 revision 39114) [x86_64-darwin12.2.1]
      $ time ruby pidigits.rb 10000 2>&1 > /dev/null
      17.51s user 0.11s system 99% cpu 17.639 total
      $ ruby --version
      ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.1]
      $ time ruby pidigits.rb 10000 2>&1 > /dev/null
      4.64s user 0.27s system 99% cpu 4.927 total
      That's a significant difference in speed. Going from 17.51 seconds to 4.64 seconds
      1. https://gist.github.com/thoughtpolice/5025417 [github.com]

      http://news.ycombinator.com/item?id=5276164 [ycombinator.com] より

      I've also seen a speedup in Rails app boot time (the require optimizations):
      1.9.3-p194: 11.8s
      1.9.3-p385: 9.9s
      2.0.0-rc2: 6.1s!
      Tests were done with `time bundle exec rake environment` 5 times, dropping the highest and lowest and getting the mean of the rest (lazy snow day benchmarking). Very exciting!

      個人的にはRails 4がリリースされてから検討だなあ。

      親コメント
  • by Anonymous Coward on 2013年02月25日 16時39分 (#2332114)

    「Rubyist Magazine 0041号読んで、内容を俺がわかるレベルで正確に説明してくれる?」
    「はい、ありがとうございます」 (一苦労, 嬉しい悲鳴)

    • るびまを読んでみた (スコア:3, おもしろおかしい)

      by Anonymous Coward on 2013年02月25日 19時44分 (#2332259)

      Rubyやったことない状態でいくつか読んでみたけど、途中で読むのがつらくなって断念。

      具体的には、目次ページを上から眺めて、興味を惹かれるものを開いて行ってみた。

      ・Rubyist Hotlinks 【第 31 回】 樽家昌也さん
      トップにあるから、とりあえず読んでみた
       → だらだらと、メリハリがなく、長々と続いているだけで、おもしろみがなく、半分ぐらいで断念

      ・Ruby 2.0.0 リリースを振り返って
       → リリース責任者としての回想、なので、新規ユーザが読むものではなかった。
         スケジュール管理の大変さは分かった。

      ・Refinementsとは何だったのか
      「Ruby 2.0 に入るはずだった Refinements とはいったい何だったのか解説します」という説明に惹かれた
       → クラス再定義をする際に影響範囲を極小化したかったらしい、というのは分かった

      ・Ruby 2.0.0 の注意点やその他の新機能
       → まぁ、仕様変更点について書いてあった

      ここらで、読んでも理解できない、と諦め始め

      ・Ruby の歩き方
      「Ruby をはじめるにあたって必要な情報をご紹介します。本稿は Rubyist Magazine 常設記事です。(難易度:低)」
      難易度低、とあるので開いてみた
       →「この記事は大分古くなっているので、あんまり参考にならないかもしれません。 とりあえず、はじめての方は Ruby 2.0.0 を使うように色々調べて下さい :)」

       そうですか・・・(読む気を無くした

      親コメント
      • by Anonymous Coward

        るびまの中の人です。

        「Ruby の歩き方」について、書く人というリソースが間に合っていないので、
        「今後、改訂していく予定です。」という、書いてある通りの状況です。

        • by Anonymous Coward

          >「今後、改訂していく予定です。」という、書いてある通りの状況です。

          そりゃ見ればわかりますが、期待して開いたら、「読んでも2.0のためには役に立たないよ!」と書いてあればがっくりきますって

        • by Anonymous Coward

          あ、文句だけ書いてるとアレだな

          結局のところRuby初体験のユーザは、Ruby 1.8,1.9,2.0のどれを使えばいいの?
          初心者がRuby 2.0を選ぶことのメリットはあるのか?
          そして、Ruby 2.0を選ぶメリットがある場合、何を見ればいいの?

          「はじめての方は Ruby 2.0.0 を使うように色々調べて下さい」とか言われても、どこのサイトの記述なら信頼できるのかわからん。
          お薦めのRuby 2.0に関するサイトはどこ?

          • by Anonymous Coward on 2013年02月26日 12時29分 (#2332786)

            これ、すごい情報が古いな。
            http://jp.rubyist.net/magazine/?FirstStepRuby [rubyist.net]
            「はじめての方は Ruby 2.0.0 を使うように色々調べて下さい」と冒頭にあってげんなりするのもわかる。

            初体験のユーザは今なら1.9を使うのが良いと思う。
            1.8は新しめの文法が通らないし、2.0はパッケージの幾つかがまだ対応していない。
            1.9を学んで、後から2.0との差分を学ぶ、という流れでも回り道ではないし。
            (1.9から2.0って大きく変わってそうだけど、バージョン18、19、20程度の変更と考えておいていい)

            インストールは、
            MacやLinuxなら、Qiitaからインストール手順を検索してそれに従うのが一番手っ取り早い。

            Windowsならこっちからバイナリを選ぶ。
            http://www.ruby-lang.org/ja/downloads/ [ruby-lang.org]
            「One-Click Ruby Installer for Windows」か「ActiveScriptRuby」が無難。

            Rubyって言うかRailsがやりてえんだ!って人は
            OIAXのRails開発環境構築ガイドが、最新情報への追従がマメなのでいい。
            http://www.oiax.jp/ [www.oiax.jp]

            チュートリアルなんぞ要らんだろうが、
            必要ならドットインストールのRuby入門とかが今なら。
            http://dotinstall.com/lessons/basic_ruby [dotinstall.com]

            大体の言語仕様は、金があるなら「初めてのRuby」を買って適当に流し読めば大体分かる。
            大体分かったら後はるりまサーチでなんとかなる。
            http://doc.ruby-lang.org/ja/search/ [ruby-lang.org]

            親コメント
          • by Anonymous Coward

            今のところは1.9.3じゃないかな?2.0と互換性があるので枯れた物として扱うことが出来るし
            2.0のメリットはEnumerator::lazyを使うことが出来るのが大きいかなあ。
            純粋に機能が増えただけなので1.9から始めて材料がそろってきたら2.0で問題は無い。

          • by Anonymous Coward

            安定性を求めるなら1.9、新機能に興味があるなら2.0ってところではないでしょうか。

            1.8はやめましょう。
            すでにバグフィックスリリースは終了し、セキュリティフィックスも今年6月までです [ruby-lang.org]。
            「Ruby初体験のユーザ」が選ぶ理由がありません。

      • by Anonymous Coward

        そもそもRubyにそんなに興味ないでしょ。

        興味ない人に興味を持ってもらうための記事になっていない、という課題はあるかもしれないけれど、
        他のどの言語よりも日本語情報は提供されていると思うがなあ。
        これで読む気なくしてたら他の新しめの言語の情報なんてどうやって学んでるの。

    • 返答は「一通り読んでからわからないトコを質問してくれる?」でいいんじゃないですか?
      もちろんその人物が読んでいる間に自分も読まなきゃいけないのは変わりないけどさ。

      読めもしないやつに「わかるように」「正確に」説明するのは無理ですよねー
      親コメント
      • by Anonymous Coward

        まぁまぁ、ネタ [srad.jp]にマジレスしなさんな。

typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...