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 がリリースされた。関係者の皆様に感謝の念と賛辞を述べさせて頂きたい。
安定性 (スコア:1)
1.9→2.0は1.8→1.9よりは互換性があるという話なのでえいやと移行しようかと思ったんだけど、
どうやらリリース直前までバタバタしていたようで。
http://togetter.com/li/461833 [togetter.com]
ちょっと様子見かな。すぐにパッチレベル上がりそうだし。
今世紀は大丈夫だ (スコア:1)
以前、Matz氏が、ruby は version 9 以上は作らない(リストとった時順番に並ばなくなるので)とどこかでおっしゃってましたが、バージョン1あげるのに20年であれば、少なくとも今世紀は大丈夫そうですね。
Enumerable#lazy / Enumertor::Lazy: 無限の遅延ストリーム (スコア:1)
p (0..Float::INFINITY).lazy.map{|x| x * 2}.first(10)
なにこれステキーーーーーー(>_☆あれみてーー
take 10 $ map (\x -> x * 2) [0..]
Re: (スコア:0)
p (0..Float::INFINITY).lazy.to_a.reverse
requireが速くなったのが効いてるかも (スコア:1)
たぶん自分しかユーザがいない、数式がTeX形式で書けるのが特徴の超軽量マークアップ言語のULMUL [rubyforge.org]がそのままRuby 2.0で動いた。めでたい。
こころなしか速くなっているような気がする。requireが速くなった [rubyist.net]のが効いてるかも。気のせいかも。
だけでインストールできるんだけど、
るびまのインタビュー記事でも触れられているけど、
MLで話題にした [nagaokaut.ac.jp]こともあるんだけど、
gemの署名は今後の課題だなぁ。
love && peace && free_software
t-nissie
Re: (スコア:0)
「けど」の使い方おかしい
Re: (スコア:0)
そうすると、mathml.rb [mydns.jp] も Ruby 2.0 で動くってことで良い? [Y/n]
Re:requireが速くなったのが効いてるかも (スコア:1)
love && peace && free_software
t-nissie
どれくらい速くなったんだろ (スコア:0)
RPythonで実装したら本家より断然速いぜってニュース最近見た気がするけど
本家も徐々に速くなってんですよね?
Re:どれくらい速くなったんだろ (スコア:2)
個人的には、Rubyに関しては、効率とかもう気にしないで、遅いインタプリタってことでいいと思ってます。それはそれで存在価値があります。あらゆるプログラミング言語実行環境が、実行効率最善に近いネイティブバイナリコードにするのを目的にする、というのも、あんまり面白くない。Rubyで書いたコードをCで書きなおしたらどのくらい速くなるのか、みたいなテーマは、コンピューター・サイエンスを学ぶ学生にとっては面白いと思うからです。
Re:どれくらい速くなったんだろ (スコア:1)
まだRubyが小さくて、趣味や教育用途くらいで使えればいいや、って言える頃ならそれでも良かったんだけどね。
エンタープライズでも普通に使われる事例が出ている今となっては速度を無視するわけにもねぇ。
Rubyでエンタープライズ?プッ (スコア:0)
そりゃないだろう。
Re: (スコア:0)
自分の世界が狭い自慢をしたい心理がよくわからない。
Re:どれくらい速くなったんだろ (スコア:2, 興味深い)
「性能改善」として記載されている通り、速くなっているところもあるみたいよ。
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がリリースされてから検討だなあ。
ありがとうございます (スコア:0)
「Rubyist Magazine 0041号読んで、内容を俺がわかるレベルで正確に説明してくれる?」
「はい、ありがとうございます」 (一苦労, 嬉しい悲鳴)
るびまを読んでみた (スコア:3, おもしろおかしい)
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 を使うように色々調べて下さい :)」
そうですか・・・(読む気を無くした
Re: (スコア:0)
るびまの中の人です。
「Ruby の歩き方」について、書く人というリソースが間に合っていないので、
「今後、改訂していく予定です。」という、書いてある通りの状況です。
Re: (スコア:0)
>「今後、改訂していく予定です。」という、書いてある通りの状況です。
そりゃ見ればわかりますが、期待して開いたら、「読んでも2.0のためには役に立たないよ!」と書いてあればがっくりきますって
Re: (スコア:0)
あ、文句だけ書いてるとアレだな
結局のところRuby初体験のユーザは、Ruby 1.8,1.9,2.0のどれを使えばいいの?
初心者がRuby 2.0を選ぶことのメリットはあるのか?
そして、Ruby 2.0を選ぶメリットがある場合、何を見ればいいの?
「はじめての方は Ruby 2.0.0 を使うように色々調べて下さい」とか言われても、どこのサイトの記述なら信頼できるのかわからん。
お薦めのRuby 2.0に関するサイトはどこ?
Re:るびまを読んでみた (スコア:1)
これ、すごい情報が古いな。
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]
Re: (スコア:0)
参考になった!
Re: (スコア:0)
今のところは1.9.3じゃないかな?2.0と互換性があるので枯れた物として扱うことが出来るし
2.0のメリットはEnumerator::lazyを使うことが出来るのが大きいかなあ。
純粋に機能が増えただけなので1.9から始めて材料がそろってきたら2.0で問題は無い。
Re: (スコア:0)
安定性を求めるなら1.9、新機能に興味があるなら2.0ってところではないでしょうか。
1.8はやめましょう。
すでにバグフィックスリリースは終了し、セキュリティフィックスも今年6月までです [ruby-lang.org]。
「Ruby初体験のユーザ」が選ぶ理由がありません。
Re: (スコア:0)
そもそもRubyにそんなに興味ないでしょ。
興味ない人に興味を持ってもらうための記事になっていない、という課題はあるかもしれないけれど、
他のどの言語よりも日本語情報は提供されていると思うがなあ。
これで読む気なくしてたら他の新しめの言語の情報なんてどうやって学んでるの。
Re: (スコア:0)
これが老害と言われるやつか
Re: (スコア:0)
ゆとり乙
Re:ありがとうございます (スコア:1)
もちろんその人物が読んでいる間に自分も読まなきゃいけないのは変わりないけどさ。
読めもしないやつに「わかるように」「正確に」説明するのは無理ですよねー
Re: (スコア:0)
まぁまぁ、ネタ [srad.jp]にマジレスしなさんな。
Re:なんのジョークだ(笑) (スコア:3, すばらしい洞察)
言語本体には ケチをつけるところが見つからないけど何とか難癖を付けたい、まで読んだ。
Re: (スコア:0)
ここは、そういう人が集まるところじゃないの?
Re: (スコア:0)
お前がそう思うんならそうだろう
お前の中ではな
Re: (スコア:0)
一番伸びているスレッドが、これという現実
Re: (スコア:0)
元コメがマイナスモデされたことによって、その事実が一目瞭然になってますね。
# まあ、1.9で動かないCMSのうえで2.0の新機能の量に舌を巻いてるという皮肉は、一部妥当な指摘だと思います。
Re:なんのジョークだ(笑) (スコア:2)
そのるびまが未だに1.8系Rubyでしか動かないHikiで構築されてるってのは、それで笑いでもとるつもりなんですかね?
しかも「Powered by Ruby 1.8.7-p302 (2010-08-16)」って古すぎるだろJK?
そこは最低限、Ruby 1.8.7 (2012-10-12 patchlevel 371)にしとくべきなんじゃないのかな?
# なんにしても、まず自分の足元を見ろって話だよな(笑)
よく見たら、hiki 自体は ruby-head でもテスト通ってるんですね。
https://github.com/hiki/hiki [github.com]
https://travis-ci.org/hiki/hiki [travis-ci.org]
頭おかしい (スコア:0)
言語ができる→ その上で動くフレームワークやライブラリができる → 移行する
の順番なので、言語がv2.0ができた時点では、るびまのシステムはv2.0で動いてるはずが無い。
むしろ動いてると思う方が頭おかしいと思う。
Re: (スコア:0)
下位互換性ってそんなに低いの?
Re:頭おかしい (スコア:1)
意外と互換性ないですよ。
良くするためにはバンバン変えていくって感じでしょうか。
Re:頭おかしい (スコア:1)
なぜここでPerl6の話題を
Re: (スコア:0)
ム板から出てくるな
Re: (スコア:0)
1.ドッグフードは自分で食うか身内に食わせるもので、対外的に公開しているサービスに使うもんじゃない。
2.無理にも仕事を作る必要がある企業じゃなければ、問題なく動いているものに手を入れる必要もない。
暇人の独りよがりよりよっぽど健全だと思うよ。
Re: (スコア:0)
1. 役立たずの腰ぎんちゃくでなければ、コミュニティは身内
2. るびまのホスティングだけが役割ではない
ずいぶんコミュニティを過小評価しますね
Re: (スコア:0)
> 1. 役立たずの腰ぎんちゃくでなければ、コミュニティは身内
Rubyist Magazine は、コミュニティとか身内とか以外の人にも公開されている、
この記事を読んでRubyを使い始める人もいるだろう。
> 2. るびまのホスティングだけが役割ではない
その通り、だから皆るびまの移植より優先度の高い他の仕事をしているだけ。
> ずいぶんコミュニティを過小評価しますね
全員が一つのこと(2.0)に全力を傾けている、そうだったら素敵だけど、
もはやそんな小さな同好会じゃない。
Hikiを2.0に移そうとしている人も居るんじゃないかな、もし誰も居ないなら
移植や移行を引き受けてくれれば感謝されるよ。