魁け! Ruby 1.9.X
■ このスレッドは過去ログ倉庫に格納されています
プログラミング言語Ruby 1.9.Xについてのスレです。 2007年12月26日にリリース!されたもののまだまだ不安定だし, 1.8.Xとの互換性の問題もあることだし, かといって,メーリングリストはほとんどROMだし(参加してないし), ということで,1.9.Xオンリーのインストールからスクリプトまでの話題などどうぞ。 エラー,バグ報告もどしどし ■質問,話題を振る人へ ポチッとな,とする前に次の3つのリンクを確認。 ・http://svn.ruby-lang.org/repos/ruby/tags/v1_9_0_0/doc/NEWS ・http://svn.ruby-lang.org/repos/ruby/tags/v1_9_0_0/ChangeLog ・http://eigenclass.org/hiki.rb?Changes+in+Ruby+1.9 (参考) 未完だけど,マニュアルページもね(^^) ・http://doc.loveruby.net/refm/api/ 質問には以下を書くこと。 ・インストール環境(OS名、configureオプションなど) ・インストールの問題なのか、スクリプト自体の問題なのかを区別すること ・エラーメッセージ(なるべくそのままで) ・1.8.Xとの違いをできるだけ確認すること(1.8.Xでは実行できたとか) 質問と回答は1.9.X(いずれはRuby2.0)に寄与発展することになる!筈だ(^^) 実行環境を確認するには ruby -rrbconfig -e 'p Config::CONFIG' >>3 実行速度が遅いからって話を聞いたことがあるけど、実際はどうなん? Rubyを広く使って欲しいなら1.9.0なんて言わないで1.9βとすべき。 これじゃ被害者と不信感が増すばかり。 まだ仕様もあんまり固まってない言語のスレ立てんなボケ 1.8まであった,mailreadライブラリが,1.9から標準添付されなくなったけど,どうしてる?1.8のをコピーしてる? それとも,mailreadに代替する別のライブラリができたのか? >>10 シンボリックリンク。いまのところ、mailreadではエラーなし。 といっても、mailreadでは大した作業をしてないが Rubyの必要性がわからん 得意分野も不得意分野も謎 結局は俺のRuby知識が全くないだけのことだが、 別段知識を得る必要性も全く感じない 他の言語を貶めることでしか自分の地位を保てない糞言語 http://www.rubyist.net/ ~matz/20080126.html 文字列で相当ライブラリ変更するんだったら、撤回した仕様変更も改めて入れるか議論したらいいのに 2回に分けて大幅な変更するのは、ライブラリつくってる人がかわいそうだ まずは1.8をYARV化してから先に進むべきだった >>14 わざわざクソすれに来て煽る必要性はお感じになるのですね(^^;) 魁!!ルビイ塾 1 巻 地獄への直進行の巻 目標前方五百メートル! 総員かまえーーっ 死ねい貴様ら。死んでルビイ信徒の御楯となるんじゃーー 突撃ー ・・・てゆうスレじゃないの? >>16 文字列で困るのは日本人ぐらいだしどうでもいい 日本人なら1.8であと10年戦える >もしくは「設計者がまだ初心者」とか。 くふぅ・・・><; Windowsユーザーだけど、どのmsiをダブルクリックしたらインストール完了するの? Rubyなんて半月もいじればもう底が見える、その程度の言語。 tmailで tmail-1.2.1/lib/tmail/scanner_r.rb:108: warning: variable $KCODE is no longer effective のヲーニングでます。 TMail will work, out of the box, on any platform that can run Ruby 1.8 or Ruby 1.9. って書いてあるけどね。ヲーニングなんであまり実害ないけど。 ま、報告つーことで KCODEつながりで、よく理解が進んでないんだけど、シーバンに書いてた-Kuっていらなくなったの? # -*- encoding:utf-8 -*-って、-Kuの代わり? シーバン(笑) これリアルにつこうてる人はじめてみたわ 標準添付じゃないライブラリは(gems)、まだまだ未対応が多いな >>27 tmailの1.9対応は1.2.2からだってさ ttp://rubyforge.org/forum/forum.php?forum_id=20747 1.9.xでマルチバイト文字への対応はマトモになるのか? 現状はあまりにも糞すぎるのだが。 >>32 進捗遅過ぎやわの 個人的には、このまま滅茶苦茶なままRubyごとフェードアウトしても不思議とは思わん 1.8をしばらく使う奴がいる程度で終わったりしてね ここは自分では何も出来ない低脳クンたちが 集うスレですね。 文字列処理ライブラリでマルチバイト文字に対応してないのって何なの? アホなの? >>36 あたかも、今はまだ生きているかのような物言いだな。 Rubyのライブラリなんてとっくに死んで腐敗してるよ。 まだ、1.9.0の段階で対応しないほうがいいだろ 1.9.5になってから本気だしたほうが何かといい。それまでは1.8+active_supportを使おう 安定版のはずの1.6.xや1.8.xすら波乱万丈だったしな 1.9.0だけを見て失望はともかく絶望するのはまだ早い >>48 > 一部の人にとっては「移行すべき対象」らしいぞ そりゃ、世の中トップ引きというか、そういう人たちだっていますから。 CentOSじゃなくFedoraを、Fedoraの2系列あるサポート期間中の新しいほうを、 さらにはrawhideを、CVSのメイントランクを、と、そういう人たちの おかげでバグがあぶり出されるわけですから。 >>49 開発は1.9に移行して正式版出そうとがんばってるのになんで1.8の話してんだ? まったくもって意味わからん 1.8に簡単にもってこられるメソッドなんかは、どんどん追加していけばいいのにね 人的資源の関係かなぁ・・・? まぁ個人的にはそこまでしなくても1.9の安定版がまともになれっとは思うけど >>49 成長が止まってる、ってのは多くの人にとっていいことだろ 仕事で使う人とか、フレームワーク書く人とか、ロリコンとか。 ActiveScriptRubyはいつ1.9に対応するんだよ。 遅せーよ。 >>61 文句を言うなら、おまえがやれ。 と言ってもおまえみたいな低スキルじゃ 文句を言うことしかできないか。 馬鹿はかわいそう。 それでいいんだよ だいたい標準添付ライブラリですら未対応なやつもあるんだから rindaとか ActiveScriptRubyはフレームワークだけ提供して、処理系は自由に入れ替えられるようにすればいいんだよ。 何でRubyのバージョンアップをActiveScriptRubyに引っ張られなきゃいけないのか。まったく。 >>66 お前が網羅的にテストしてくれれば、すぐにでも出すんじゃない? >>68 >>27 に対する反応が>>28 だから、このスレではまともな回答を期待できないかもよ Ruby 1.9では$KCODEは廃止されました。 そういう重要なところはちゃんとドキュメントに書いとけよ 1.9をつかうくせにメーリングリストをチェックしないやつが悪い curryとか変なメソッドが入った。 cbrtとかlgammaとか需要あんの?Mathn扱いでいいじゃん バグトラッカを使う話はどうなっちゃったんだろう。 話はでたけどスルーされたとか、直したつもりでコミットしてない とか多すぎじゃね?バグがどういうコードで直ったのかも全然わからんし、 外部から指し示すこともできない。前時代的なMLにいつまで頼ってるつもり なのかと。 るびきちが立てたっぽいスレ名だね 少年ジャンプだけがお友達だもんね 彼w 30過ぎても少年だね >>76 Redmineを使い始めたね。 うまく機能すると良いなあ。 Ruby1.9を読む http://www.dzeta.jp/ ~junjis/code_reading/index.php?Ruby1.9%A4%F2%C6%C9%A4%E0 どうせ1.9.2で非互換になるコードが入ってRails死亡だからな おさるさんパッチ言語(笑い) >>83 ,84 う、actionmailerとactivesupportをrequire するだけで,エラーになってまう。 >>86 1.9.2は開発用バージョンだから正式リリースの1.9.3ね >>86 逆だろう。RubyバブルはRailsに牽引されてきたわけだから Railsが動かない時点で1.9.1に今のところ価値なし。 ま、本来は 1.9.1 が出る前のバージョンで自分のライブラリの対応を済ませるもんだが、 こればっかりはデッドロック的に致し方のないことと思う ただ、これは一応正式安定版だから、1.9.1に対応しろという(あるいは対応しない宣言を求める)声はこれで高まるだろう 1年くらいすれば結構状況変わるんじゃねえの 外人さんの中にはエンコーディングとかいきなり言われても概念わっかりましぇんという人が一定数混じってるな 文字列扱うライブラリの前途は多難そうだ 比較的まともな外人で、 内部UTF-8決め打ちで対応完了、キリッ みたいなのな。 日本人しか使ってないプログラミング言語なんてその名前だけで糞だろ 外国人が普通に使ってるのは普通なプログラミング言語の証拠 外部ライブラリの開発の話では? 日本人って開発には直接関わって来ないくせに要望だけは多いよね 日本人自虐厨キター どこの国の人間だってたいして変わらんっつうの それこそ日本語以外のレポート読めよ お前が英語読めないだけなんじゃねえの 英語嫁って言い出してるし 国産言語じゃないの??何で日本語以外のレポート? Windowsの1.9.1でNokogiriを使ってみた doc = Nokogiri::HTML(html.delete("\n")), nil, 'UTF-8' file_path = doc.xpath('//xxxxxxx').first.get_attribute 'href' とすると「xpathなんてメソッドねーよ」と怒られたから、 p doc.class を加えたらArrayと出た。 まじかよと思って p doc = Nokogiri::HTML(html.delete("\n")), nil, 'UTF-8' と「p」をつけて中を見たら、「p doc.class」の結果が「Nokogiri::HTML::Document」に変わってうまく走った。 「p」をつけたりとったりするとやっぱり結果が変わる。pをつけると本当の自分を思い出すのだろうか。 > foo = 1, 2, 3 => [1, 2, 3] > p foo = 1, 2, 3 1 2 3 => nil > foo => 1 >>104 Rubyスレ全般で1.9にかみついてる基地外か うるせーよ >>105 違う 引数の括弧を最初から適切につけていれば全く起こらなかった問題 Ruby は特定の関数的メソッド以外の普通のメソッドの引数の括弧を省略するようにはなっていない 多値と区別できないからだ 引数のカッコをつけない人はこういうのを甘んじて受けてるんだからこれでいいんだよ doc = Nokogiri::HTML(html.delete("\n"), nil, 'UTF-8') と普通に書けば何も問題は起こらなかったな doc = Nokogiri::HTML(html.delete("\n")), nil, 'UTF-8' は doc = [Nokogiri::HTML(html.delete("\n")), nil, 'UTF-8'] という多重代入とみなされるというだけの話 Ruby 1.9.1 は特に関係ないと思われる おおお、元ソースからコピって修正したとき変な括弧の付け方をしてしまった。 恥ずかしいな。サンクス。 Rubyでは基本的に括弧を省略するのが慣習だと思ってたが違うのか? 何はともあれ解決したからうれしい。 >>110 >>106 の言うように、puts や print みたいな「関数っぽい」メソッドは、カッコをつけずに空白をつけることのほうが多い △ puts("hello!") ○ puts "hello!" その他のレシーバつきメソッド、またはインスタンスメソッドはカッコをつけることのほうが多い △ URI.parse 'http://example.com/' ○ URI.parse('http://example.com/' ) 無論つけなくても動作するが、今回のように代入が絡むとヘンな解釈になることが多いので、カッコをつけるように慣らす人が大半 ただ、Rails の人はもうほとんど病的と言っていいほどにカッコを使わない (明示的なエラーが出てからやっとそこだけ括るので、今回のようなバグに気づかないことも稀にある) これは出身言語の影響と、言語内 DSL という特殊事情が絡まった結果だと思われ >>111 なるほど おれは趣味で最近使い始めたばっかだけど全般的に意識して括弧はつけないようにしてる・・・ それがRuby流だと聞いたから。1.9と関係なくてすまん。 Nokogiriは全くだめということはないようだから、次はparseexcelを試すよ 今度は間違えないようにするわ! >>112 > それがRuby流だと聞いたから。1.9と関係なくてすまん。 そんなことはない。 RailsはRubyじゃないからな。 >>113 > RailsはRubyじゃない な・なんだってぇ!!! 言語の百花繚乱は、ITバブルの残照という気がする...。 本来効率性を重視するのなら、一企業の開発言語は、絞った方がリスクマネージメントの観点からも、 良いと思うがねぇ。 ITバブルというより根本的にエンジニアの性なんじゃないかな。 「おれ言語を作り隊」みたいな。シェルなんてひどいじゃん。 >>115 工員が使う言語は少ない方がコスト低いだろうね。 >>115 万能言語があるのなら、その通り。 しかし実際にある言語は万能ではない。適用ドメインによって言語選択は変わって当然となる。 米国でRuby関連書籍の売り上げが減速か − @IT ttp://www.atmarkit.co.jp/news/200902/27/langs.html スキルのない半可通が流行で採用して、プロジェクトは失敗。 戦犯としてRailsやRubyが処罰されるというケースの増加が心配されます Python 3も(2.5,2.6に対する相対的な)人気はRuby 1.9みたいなもん? rubyの勉強はじめたんだけど、ruby1.8の本で勉強してると ruby1.9だと動かないのが多すぎて嫌になった。 こんなに急激に仕様を変える言語なんて勉強する気になれないからヤメタ。 Rubyの開発動機ってそもそも何? 単なる自己満? >>125 ぜひPerl4→Perl5やPHP3→PHP4なんかにも正義の鉄槌を下してください Perl4から5ってそんなにすごい変化だったんだ。Perlのこと全然知らないや Perl5になったとき、手元にあった数千行のスクリプトは2行くらいしか変えなくてよかったな。 Rubyに関しても、magic commentを書くこと以外は何も変えずに済んでいる。 お前ら一体どんなひねくれたコード書いてんの? おれも自分で書いたところはほとんど問題なかったが、 外部ライブラリでつまづいた。 Winは捨ててCentOSで開発するようにした結果、 なんとか切り抜けて今は1.9.1オンリーだが。WinのNokogiriが痛かったな。 今は暇と体力のある人がガサガサ開拓してる状態だな 1年くらいして状況がどう変わるか楽しみだ Perl4→5のときはpackageでクラスっぽいものが書けるようになったが、 おおむね上位互換だったと思う。 >>130 > WinのNokogiriが痛かったな。 kwsk >>128 そりゃ単に運が良いだけだ IOの読み書きするライブラリや、$KCODEにかかわるコードを書いてると泣く あと他の人も言ってるように拡張ライブラリが動かなくて泣く >>133 Winの1.9系でNokogiri動かないんだよ。もう直ってるのかもしれんが。 Nokogiriのページみたら1.9に対応してるって書いてあったんだが、 Winは対象外だったようだ。Linuxなら動くからゲストOSにCentOSを入れて開発。 今度はRadRailsでステップ実行できない問題が出たけど、 全然動かないよりはマシだから我慢してる。 >>135 > Nokogiriのページみたら1.9に対応してるって書いてあったんだが、 自前でコンパイルしろってことじゃないかね >>136 ttp://nokogiri.rubyforge.org/nokogiri/ インストール方法で「sudo gem install nokogiri 」ってあるのに? 「sudo」ならWinは対象外ともとれるが、 「sudo」を当然のように入れて説明することはよくあるから、 それをもって判断するのは難しいと思う。 確かWinRubyにある「msvcrt-ruby18.dll」の名前が「msvcrt-ruby191.dll」に変わったことが、 原因の一つだったような気がするが、ちょっと記憶があいまい。 コピーして名前を変えたりしたやつがいたけど、 それでもうまく動かないとか言ってたような記憶もある。 がんばって時間を浪費した挙げ句けっきょくダメというのは嫌だったから、 さっくりOSを変えた。 >>137 だから「自分でコンパイル環境用意しろ」ってことなんだろ、Windowsかどうかとは無関係に。 Win版バイナリ用意しろっていうことなら山男にいってくれ。 さすがにここは見てないと思うぞ。 > 確かWinRubyにある「msvcrt-ruby18.dll」の名前が「msvcrt-ruby191.dll」に変わったことが、 > 原因の一つだったような気がするが、ちょっと記憶があいまい。 それは本末転倒な理解だな。 拡張ライブラリのインターフェースが変わってるから、1.8のDLLと1.9の拡張ライブラリじゃ動かない。 それをさけるために名前を変えている。 > コピーして名前を変えたりしたやつがいたけど、 > それでもうまく動かないとか言ってたような記憶もある。 「動くわけない」と断言する。 > がんばって時間を浪費した挙げ句けっきょくダメというのは嫌だったから、 > さっくりOSを変えた。 gj 確かにgem使ってもコンパイルするな。 おまえの言うことに対するおれの理解が浅かった。 そこまで詳しいならおまえが動くようにしてくれよ。いや嫌みじゃなくてマジで。 「自分が必要でなおかつ自分に直せてなおかつちょっと暇ならやる」というのがこの手の常套 どれかが欠けてるのだろう >>139 もうあまりWindowsをいじってないからなぁ。 MacPortsのmingw-gccでコンパイル自体はできるかも知れんが、 gemがクロスコンパイルに対応してるかは疑問。 アーロン、きさまのどこがひげの山男なんだwwwww とついったーの写真を見て思った。 Mechanize 0.9.3 を最優先で出して欲しい 今の 0.9.2 は全世界が迷惑した近年稀に見る極悪動作バージョンだろ require 'rubygems' require 'mechanize' agent = WWW::Mechanize.new agent.get('http://www.google.co.jp/' ) これが動作しないって重症だよな >>141 結局ソースの修正が入ると思うが。 それってコンパイルの問題とは言わないでしょ。 >>145 Windows版ではNokogiriはそのままじゃコンパイル通らないということ? それが分かってるなら教えてやれよ。 本屋でRubyの本を立ち読みして、Perlより全然ソースが読みやすいと思って 一気に本を買い込んでRubyデビューしようと思ったのに、 何この状況? 初心者はどうすりゃいいの? 1.8を使うほうが無難なの? 普通の人は 1.8.7 を使う 1.8.7 でできないことは特にはないし、 1.8.7 を使ってる人のほうが多いし、 今後 2年くらいは1.8.7(か、その続き)が隆盛だろう(このへんちょっと自信ないが、今年中は問題ない) 1.8.7 で Ruby に慣れた頃には、Ruby 1.9.2 が出てライブラリや入門もマトモになってるはず 1.8.7 で学んだ Ruby は、1.9.2 くらいに移行するのに充分に役立つはず 今から暗中模索の徒手空拳で 1.9.1 をやろうとするのよりは何万倍もスムーズだろう >>148 1.9.1 を勧めるのは Ruby アンチ(この期に及んでまだいる)なのであまり真に受けないように 彼はあなたが Ruby に挫折することを望んでいます あれ?家でふつうにRuby1.8.7使って色々作ってるけど、 1.9.1って初心者が使えるような状況になってるの? まだだよねえ? いま自作の拡張ライブラリを1.9.1に対応させようとして コンパイルする前にextconf.rbでエラー出て困り果ててるとこw ああ、教えてもらおうと思って書いたわけじゃなかったんだ、ごめん でもよくわかんないからせっかくだから書いてみる Could not create Makefile due to some reason, probably lack ofnecessary libraries and/or headers. Check the mkmf.log file for moredetails. You may need configuration options. って出てて、ライブラリが見つからないってことみたい 1.8.7では普通にコンパイルできるから、パスが通ってないってわけではないと思う 参照する環境変数が変わってたりするのかな? オプションを指定する必要があるってメッセージだけど、設定方法がわからないの(゜▽゜;) 情報が全然足りなかったw えっと、WindowsでWin32バイナリのruby-1.9.1-p0-i386-mswin32をダウンして、 それを使ってVC2008でコンパイルしようとしてる。 あんまり関係ないかもだけどDirectXを使おうとしてて、 1個目のdxguid.libをチェックするとこでエラーが出てる。 extconf.rbからライブラリのとこ削って、できたmakefileに自分で追加して、 コンパイルしてみたら、windowk2.hの関数の再定義エラーが大量に出た。 やっぱ俺程度で1.9.1に手を出すのが間違いなのか。 山に篭って修行して出直してきまふ winsock2.hだ、どういう打ち間違いなんだorz それではまたノシ >>156 > えっと、WindowsでWin32バイナリのruby-1.9.1-p0-i386-mswin32をダウンして、 これはVC6でコンパイルされてる。 > それを使ってVC2008でコンパイルしようとしてる。 VC6とはランタイムがあわないからリンクできない。 本体も自分でコンパイルする。 なんか規制されて書けなかったorz >>159 >VC6とはランタイムがあわないからリンクできない。 >本体も自分でコンパイルする。 つまり、1.8.7ではリンクして使えてたけど、 1.9.1ではできなくなったってことでいいのかなあ? >>160 > つまり、1.8.7ではリンクして使えてたけど、 > 1.9.1ではできなくなったってことでいいのかなあ? 1.8でもできない。 >>161 >1.8でもできない。 えー? だって、うちのデスクトップでVC2008でコンパイルできたし、 コンパイラとか入ってないActiveScriptRuby1.8.7だけインストールしてあるノートで動いてるよ? ActiveScriptRubyってVC6だったよね・・・? なんかはげしく勘違いしてるんかなー あ、書き忘れたけど1.9.1でもruby-1.9.1-p0-i386-mswin32とVC2008でコンパイル成功したよー 勘違いじゃなければだけど・・・。 わかった! 俺、VC2008のランタイムをスタティックリンクしてるから使えてるんだ! しょぼしょぼな話題で連投失礼。お騒がせしましたwノシ >>164 > 俺、VC2008のランタイムをスタティックリンクしてるから使えてるんだ! それだと外部ライブラリ使う拡張ライブラリが使えなくなるぞ。 >>165 >それだと外部ライブラリ使う拡張ライブラリが使えなくなるぞ。 ヘボくてゴメン、意味がわからないorz Ruby本体(mswin32)・・・VC6ランタイムを動的参照 俺が作ったやつ・・・VC2008ランタイムを静的参照 VC6で作ったほかのライブラリ・・・VC6ランタイム(Ruby本体と同じやつ?)を動的参照 となって、問題があるようには思えないんだけど・・・ ActiveScriptRuby同梱のVisualuRubyも同時に使えてるし。 あぁ、拡張ライブラリだけをVC2008でスタティックリンクで、か。 config.hでエラーになるはずだけど、そこは当然書き換えてる? 外部に依存しない単独のライブラリなら動くかもしれんけど、 もう長いことDLLを使う形でしかコンパイルしてないから、 動くかどうか保証はできない。 config.hははじめのところをコメントアウトしてる。 外部に依存しない単独のってことは、つまり、 俺がつくったやつから他のライブラリを参照しようとすると うまくいかない可能性があるって感じかな。 VC6があれば問題なかったんだけど、 VC2008しか無いのに拡張ライブラリ作って公開しようと思うあたりが困ったちゃん。 155がやってるのは「たまたま動いてる」だけで、動くことは保証されない。 例えば、fd渡しがあって大きめのI/O操作したらアウト。 fd渡しなら一切のI/Oでアウトだからやってないと思う。 でもまぁ、それでバイナリ配布とかはやめてね。 ランタイムに依存するデータはライブラリ間で渡せないっていうことかな・・・。 ふむふむ、勉強になりますφ(..)カキカキ VC6ほしいなあー >>174 どういうこと? 今のrubyではVC6じゃないと動かないんじゃ? pythonみたいに移行したほうがいいよ 誰かが音頭を取るべきだ お前ら、1.9.1のパッチレベルリリースが間近らしいぞ。 問題あるなら今のうちに報告しとけよ。 わかりやすいいこうまにゅあるおつけてくださいo とくにがいじんさんにもなっとくできるえんこーでぃんぐのかいせつおつけてくださいo っていうかせっとくもうやだ エンコーディングまわりは、その方面で痛い目にあった経験がある 日本人にすら難しいのに。 がいじんさんは 先頭に # -*- coding: utf-8 -*- つけとけ しか理解すまい force_encodingが大活躍なんだが、ほかの対処方法はある? どういうデータを扱おうとしてるのか分からんことにはなんとも言いようがない。 外部からエンコーディングとデータが別々に渡されるんならそれこそ force_encodingするしかないだろうし。 openするときエンコーディング指定してないだけだったりしてな。 Macで1.9.1をソースからインストールしたのですが、標準添付されている gemが上手く動きません。Digest::MD5が何かおかしいんだと思いますが、 具体的にはどうすればよいのでしょうか? 以下は gem install hogeしたときの表示です。 /Users/xxx/lib/ruby/1.9.1/rubygems/digest/md5.rb:8:in `require': dlopen(Users/xxx/lib/ruby/1.9.1/i386-darwin9.8.0/digest/md5.bundle, 9): Symbol not found: _rb_Digest_MD5_Finish (LoadError) Referenced from: /Users/xxx/lib/ruby/1.9.1/i386-darwin9.8.0/digest/md5.bundle Expected in: flat namespace dlは互換性なくなってるのだけど、hogeは1.9対応なの? dlもhogeが1.9対応かどうかも関係ないだろ。 >>187 gem install hogeのhogeに関わりなく、たとえば gem update --system でも同じエラーが出てしまうのです・・・。 >>186 1.9.1のrevisionは? あとext/digest/md5/extconf.hはどうなってる? ちなみにCONFIGURE_ARGS=--with-bundled-md5で試してみたところでは、 ちゃんと定義されてるようだ。 $ nm ext/digest/md5/*.o | grep -e MD5 -e : ext/digest/md5/md5.o: 00000ed7 T _rb_Digest_MD5_Finish 00000d60 T _rb_Digest_MD5_Init 00000da5 T _rb_Digest_MD5_Update ext/digest/md5/md5init.o: U _rb_Digest_MD5_Finish U _rb_Digest_MD5_Init U _rb_Digest_MD5_Update >>191 ruby-1.9.1-p243を使いました。 ext/digest/md5/extconf.hは次のようになっています。 #ifndef EXTCONF_H #define EXTCONF_H #define HAVE_CONFIG_H 1 #define HAVE_OPENSSL_MD5_H 1 #define HAVE_SYS_CDEFS_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_UNISTD_H 1 #endif >>192 OpenSSLのMD5を使うようになってるが、それだとmd5.hはインクルードしないので #define MD5_Finish rb_Digest_MD5_Finish は無効のはずなんだが。 まっさらの状態からコンパイルしてもそうなった? rubyって1.9になってから速くなったよね。たいしたもんだ。 節子…、それ違う。Matzの実装が異様に遅すぎたから、普通の速度に戻しただけだ。 普通の速度にしたというか、安全側から高速側に倒しただけ 自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L 名言集 その4 『俺、100人規模の集団サイバーテロの主犯だったこともあるんだぜ』 http://yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ のID:PVAf+dux0 = 自動焼人 ★ > 965 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:02:09.35 ID:PVAf+dux0 > まぁ何だ。 > 俺の過去の経歴に比べたら、割れ厨なんて鼻くそレベルなんだけどなw > 100人規模の集団サイバーテロの主犯とか、いろいろとな。 ---------------------------------------------- この自動焼人 ★メールマガジンの配信停止をご希望される方は http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/ にて自動焼人 ★までご連絡ください >>197 ってことは、結構バグったりするのかしら? 仕事でruby使ってるんだけど、1.9.1に上げようか迷ってまふ。 どういう職種でどういう用途でどのくらいの期間使うのかによる。 医療系の仕事ならやめとけ。 >>200 なるほど。医療系じゃなくてよかった。 うちは原発の制御しかしないので、速攻 1.9.1p129 に上げてみます。 医療…原子力制御… Java並の安定性があるんだね!よかった! 原発も詰めとこうかと思ったけどめんどくなってやめた。 そしたら>>201 から狙い澄ましたようなボディブロー 見てきた。 http://redmine.ruby-lang.org/repositories/diff/ruby-19/lib/tempfile.rb?rev=23494&rev_to=22784 Tempfile#unlinkすると勝手にcloseするようになっちまってたのか。 これはひどい。だいたい、 lib/tempfile.rb (Tempfile#unlink): close first for Windows. a patch from Florian Frank. [ruby-core:23505] とあるけど、これ全プラットフォームでこの動作になってるような。 UNIX厨のmatzが、なんでこんなパッチ採用したんだ…… ああああああ、String#size の返り値が 1.8 と違うのか まあそりゃそうだわな あああああめんどくさああああ というか 1.8.6 に String#bytesize とか入れておいてくれればよかったのに レスから考えて1.8と1.9の共用スクリプトだろうからな sizeのためにforce_encodingするとかまあありえんわ というかASCII_8BIT厨は早く絶滅してくれないかなと思う >>209 そんな腐った修正ですますなんて、おまえ土方だな? RUBY_VERSION で場合分けする 安全確実高利回り コードが若干長くてやや複雑で記述が煩雑になるのだけが極めてごく些細微細な欠点 >>208 > というか 1.8.6 に String#bytesize とか入れておいてくれればよかったのに 1.8.7 には入ってるよ。 1.9 用とソースを共通化したいなら 1.8.6 はいい加減捨てよう。 respond_to?(:bytesize) の方がいいと思う >>216 実際問題として、それではダメだ こういう場合、特定の名前のメソッドがあるかどうかが問題なのではなく、 メソッドが「どう」動作するかが重要だから あらゆるメソッドを responed_to? しなければならなくなるし、バージョン差異を埋めるのには向かないと思う Pythonじゃないんだから互換性なんて無視してRubyらしさを追求すればいいと思う。 responed_to? がなんのために存在するメソッドか考えれば、1.8/1.9 判定に使うのが不適当とわかるはず defined?(Encoding) とかも同様 Ruby 本体のバージョンが違うことが問題なんだから、素直にバージョン比較すればいいのに なんでそこでだけ頑なに「Ruby としての読み下しやすさ」を否定した処理をしようとするのがよくわからん if RUBY_VERSION >= 1.9.0 then … else … end という記述がヤボったくてカッコ悪いと思われてるのでは なんかこう、超クールな処理になるようにすればみんな使ってくれるかも 1.8 系列だと読み飛ばすけど 1.9 系列だと処理するブロックとか > 1.8 系列だと読み飛ばすけど 1.9 系列だと処理するブロックとか if RUBY_VERSION < "1.9.0" ... # for Ruby 1.8 else ... # for Ruby 1.9 end $Rv = RUBY_VERSION < "1.9.0" ? {1.8 => true} : {1.9 => true} というグローバル変数を設定してるスクリプトなら見たことがある if $Rv[1.8] ... # for Ruby 1.8 else ... # for Ruby 1.9 end とか (Ruby1.9専用処理) if $Rv[1.9] とか使うらしい 【extname.rbの中身】 # -*- coding: utf-8 -*- a = "記録.txt" b = "設定.txt" p File.extname(a) p File.extname(b) 【実行】 C:\Usr\Ruby>ruby --version ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mswin32] C:\Usr\Ruby>ruby extname.rb ".txt" "" ←.txtにならない 何ぞこれ >>226 バグだろ。redmineに登録しといてくれ。 ちょっと調べてみた。 パス名関係はまだエンコーディングに対応してない。 常に外部エンコーディングと見なして処理してる。 より正確には、Windowsの場合はCharNextを使っているのでシステムのコードペー ジの設定に依存する。 詳しく説明すると、UTF-8では「設定.txt」は e8 a8 ad e5 ae 9a 2e 74 78 74 だが、 $ echo -e '\xe8\xa8\xad\xe5\xae\x9a.txt' | nkf -Swx 險ュ螳txt \xadは半角ユなので1バイトずれて\x9a\x2eが一文字と認識されてしまう。 そして.が消えてしまってextnameは空になる。 なるほど。 しかも ruby -w で pathname.rb を読むと警告でる。 出ないぞ、と思ったら1.9.1か? trunkでは直ってるようだ。 貫通けましておめでとうございます 姫初めはいかがでしたか? 大量のオブジェクトが生成されるコードがあって、1.8.7で実行すると 非常に遅いんだけど、ちょっと手直しして1.9で実行すると大幅に 改善されたりしますか? 自分で試したいのはやまやまなんだけど、「ちょっと」の手直しが どのくらいか不明なので、すいませんが教えてください。 >235 DBから20万行取得するだけのスクリプトが3倍速になった。 >236 本当ですか!?やっぱりスイッチする価値ありかなあ。 手の施しようがないほど遅くなる場合もある 足し引きの結果が速くなるか遅くなるかは実際に動かさないと判断できない >238 1.8系と1.9系の共存はできなくないらしいけど なんかヘマをやってライブラリ関係が衝突しそうで怖いのです。 まあそんなこと言ってる時点で1.9は「待ち」ですかね。 >240 なんとそういうこともありますか。 ますます移行しにくくなりました。 Mac使いなんで、1.9がOSXにプリインストールされる ようになったらまた考えます。 >>241 いちおう、MacPportsでruby19を入れるなら、デフォルトで異なる 場所に入るし、コマンドの名前も違うので混ざりはしない。 エンコード指定uzeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee マジックコメンkimeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee あのスマートだったruby君が理屈っぽいピザになってしまった。。。Railsとか言う奴のせいだ。 マジックコメントはこんなことやれば一応は省略できるな ruby -Ka filename.rb ruby -Ku filename.rb つうかまさかこのままマジックコメント付けることを義務化し続けるゴミ言語で突き進む気はないだろうな? なんだろう。OSの文字コードの標準をUTF-8にしやがれっていう見えないプレッシャーでもかけてるつもりかねwww おまえは馬鹿か? マジックコメントが示すのは、ソースコードのリテラルがどの文字コードで書かれているか、だけだぞ極端に言うと。 JAVAのエクリプスみたいなソフトって無いの? Windowsで動くやつで NetBeansを使えばいいと思うよ ていうか、Eclipseにも確かRubyプラグインある 結構、言語処理系に行くっていうのが、はまりポイントで、 確か、Rubyのまつもとゆきひろさんか誰かがおっしゃっていたんですが、 「エンジニアっていうのはだいたいOSを作るか、 言語処理系を作るかに分かれる」らしいんです。 私はどっちにも足をつっこんでしまった感じで、 これは泥沼なんじゃないのかなとも思いますね(笑) Matzの頭にはCPUを作る方への分岐はないんだな モジュール関数を呼ぶ時、 MyModule::mymethodと::で繋ぐのが好ましいんでしたっけ? それともMyModule.mymethodという風に「.」で繋ぐ方が望ましいんでしたっけ? これは確かどっかに書いてあって、それでどっちかに統一しなきゃな、って思ってたんだけど、 ruby久々に触ったら忘れてしまってた…。 これどっちだったか分かりますでしょうか?ちなみに理由も添えて教えてほしい 更に言えばどこに書いてあった、という情報源も提示していただきたいのです 「昔自分が書いたコード見ればいいだろ」と思うかも知れないけど、 その時は仕事で使ってたもので、自分が書いたコードも手元に無いのです クラスオブジェクトの特異メソッドを呼ぶときは、それ用の特殊な記法よりも、 <オブジェクトを示す式> . <メソッド名> のほうが Ruby の一般的な記法なので それに合わせて、MyModule.mymethod のほうがよい。 :: は定数専用でしか使わないようにする。 ::はそもそも定数の区切りとしての用途のもの。 モジュール名やクラス名も、値としてClassクラスやModuleクラスの インスタンスを持つ定数に過ぎない。 MyModule.mymethod は単なる特異メソッドの呼び出しなのだが、 クラスやモジュールの得意メソッドはC++を背景に持つ人にはstatic メソッドに見えるので、便宜を図って::でも呼べるようになってるだけ。 と書いておいて申し訳ないが、定数の区切りというのは正しくないか。 r = Regexp r::EXTENDED #=> 2 とかアリだし。 回答ありがとう。確かに「.」が正しかった気がします。 ついでにもう一つ、perlには配列の最後の要素の添字を求めるのに $#foo という記法がありますが、 rubyでは foo.size-1 するしかないんだっけ? なんかこれが美しくないので専用の記法(あるいはメソッド)が無いか調べてたんだけど、 多分これは無かった気がしたので無いんでしょうね インクリメント、デクリメントも無いしね >>258 多分、無い。 perlの記法が美しいとは全く思えないんだけど、 class Array def -@ size - 1 end end -[1,2,3] # => 2 みたいなことは、やろうと思えば出来る。 でも、last_indexとかのメソッドを作った方がいいだろうね。 添え字アクセスのときなら、負の数なら末尾から数えるんだけど(-1が末尾)、 それが実際にいくつになるかはsizeと相談するしかなさそうだな。 そこって初心者に聞かれたらなんて答えればいいんだろう。 Object#contantsの戻り値がHashとかだったら、構文糖衣だぜって言って終わりなのだが。 まあ、実装はHashなんだろうけど。 あ、↑は>>257 で >>258 えー、$#の方が美しいのか。わからん。 しかも最後の添字の番号が欲しいってどんなときだろう。 最後の要素をとるならArray#lastがあるしな。 インクリメント、デクリメント演算子は=がなくて代入っぽくないからないらしいよ。 >>261 × Object#constants ○ Module.constants 何度もごめん。 >>260 あー、それ忘れてた。ただ「添字がマイナスの時は末尾から数える」って公式に決まってたっけ? 今オンラインリファレンスざっと見たけど書いてない。ウサギ本に載ってた気がしたが… 要するに将来のverUpなんかであっさりこの辺の挙動変えられると安心して使えないよね そもそも、foo[-1]と書くよりfoo.lastと書いた方が美しいし読みやすいし、いい事尽くめではあるが >>262 foo.size-1 より $#foo の方が美しいとは言わないが、(俺もどっちもどっちだと思う) 専用の記法があったらな、ないのかな、って思っちゃって >>259 案のlast_indexメソッドをArrayクラスに追加ってのが一番美しいと思う ただそこまでする必要があるか?っていうと、 やはりこれは公式に標準搭載されていて全員に認知されていてこそ意味があると思うので、 個人的にこういうことするんだったら素直に foo.size-1 と書くのが平易で正しいと思う >>260 >あー、それ忘れてた。ただ「添字がマイナスの時は末尾から数える」って公式に決まってたっけ? array.c * Negative indices count backward from the end of the * array (-1 is the last element). >>264 だった。 IPAのFinal Draftによると [](*args) a) nをレシーバの長さとする b) argsの長さが0のとき、ArgumentError c) argsの長さが1のとき、 1) その引数がIntegerならその値をkとする。Integerでなければ未定義 2) k<0ならkにnを加える。まだk<0ならnilを返す。 3) k>=nならnilを返す。 4) k番目の要素を返す。 d) argsの長さが2のとき<以下略> ∩___∩ 未だ連絡ゼロクマー | ノ ___ヽ /。・゚・(____ `・゜゚・。 いつでも連絡するクマー | u( _●_)ヽ 〉 彡、 |∪| / 誰か助けるクマー . / ヽノ . /´ .____ / ヽ、 _ノ\ / (○)iji(○)\ 正義がキチガイ呼ばわりされたんだぞ。 / (__人__) \ | |::::::| | 義憤に駆られることはないのかお? \ l;;;;;;l /l!| ! / `ー' \ |i Rubyistとして後ろめたさはないのかお! / ヽ !l ヽi ( 丶- 、 しE |そ 一生後悔することになるお! `ー、_ノ 煤@l、E ノ < レY^V^ヽl そこのあなた!勇気を出すんだお。 ____ / \ 助けて欲しいんだお・・・ / _ノ ヽ、_ \ 同じ釜の飯を食ったんだお・・・ / o゚((●)) ((●))゚o \ いつも一人で居残り残業してたんだお・・・ | (__人__) | あまりの悲しさに、むせび泣いたこともあったお \ ` ⌒´ / そんなやる夫を見捨てるのかお? ____ このままだったら一生恨むお / \ たとえ誰がなんと言おうと、強烈な違和感なんだお / _ノ ヽ、_ \ 直観がモノ言ってんだお / o゚⌒ ⌒゚o \ えっぇっえ〜ん。え〜ん。 | (__人__) | えっぇっえっぇっ。うっぅっぅうー。。。 \ ` ⌒´ / うええ〜ん。。。えぐっぇぐっうっうっううぅー。。。 そういえばとっくにRuby 1.9.2出てるのに話題に上がってないようなのは何故だ いまから Ruby を始めるのであれば 1.9.2 が妥当? >>271 まっさらな状態から始めるなら断然1.9.2だね 1.8よりいろいろと便利になってるんで Ubuntu 環境で 1.9.2 を使いたいのですが deb が提供されていないようので rvm あたりを導入するのがよさげなのでしょうか。 変なレイヤーがあるとトラブル時に原因が分かりにくくなるので、 まったくの初心者は --prefix=/usr/local (デフォルト。要root)か --prefix=$HOME みたいな 引数でconfigureしてインストールするのを勧めたい。 けど、最近は rvm がトレンドなんだろうな。 Thank you > 275 Debian/Ubuntu 環境で1.8.7をそれなりに使っていたので まったくの初心者ではないのですが、今後の運用を考慮して 昔風に make install するか rvm で楽できるのか、悩むなあ。 しかし、なんで1.9.2はdeb化されていないのだろう。 >>276 ttp://packages.debian.org/search?keywords=ruby1.9.1 ややこしいけど中身は1.9.2だよ そんなことになっていたとは知りませんでした。 どうもありがとうございます > 277 >>271 このへん初心者スレで時々ツッコミが入るのだが、 世間様で公開されてるコードはせいぜい1.8.7くらいしか考えてないことが多い 移行準備のために1.9から1.8.7に持ってきた機能すらほとんど使われてない有様 ちょっと古い本に書いてあったりぐぐって見つけたりしたコードを1.9.1や1.9.2でそのまま実行しようとしても、 「なんだかよくわからないエラー」でさっぱり動作しないことがしょっちゅうある それを乗り越える教科書を持ってるか教えてくれる詳しい人なりがいるか、 あるいはなんでもかんでも悩んで大きくなるまぞな人なのなら、1.9.2から始めても構わないよ いやそれは「1.9.xで困ったらこのスレとかで気軽に聞いてね」と言うべきところだろ… Twitter、検索結果表示が“3倍速く”なったと発表――フロントエンドの切り替えで Twitterは、フロントエンドをRuby on RailsからBlenderに切り替えた結果、検索結果の待ち時間が大幅に改善されたと発表した。 http://www.itmedia.co.jp/news/articles/1104/07/news043.html ----------------- 急成長する検索ニーズに対処するために検索エンジンを書き換え、リアルタイム検索エンジンを立ち上げた。 その際にバックエンドをMySQLからJavaベースのテキスト全文検索エンジンLuceneに移行した。 また先週、フロントエンドをRuby on RailsからBlenderと呼ばれるJavaサーバに切り替えた。 待ち時間の短縮は、こうした取り組みの成果だという。 Blenderっていわれても3DCGの奴しか思い浮かばない >>282 Nettyとかいう非同期型ネットワークアプリケーションフレームワークを元に 作った(今のところ)一品ものらしい ttp://www.jboss.org/netty どこで読んだか忘れたけど、GCがスケールしなかった一番の要因みたいよ まあフロントエンドが変わるっていっても作業する言語が全部Javaになるわけじゃないよ、とかも言ってたけど あまり人がいないということは 1.9 で困ってる人はいないということかな いやいや、まだみんな1.8に留まってるということですよ Last update 09/02/08 Newest Changes swin090208 ruby-1.9.1対応向け変更 ruby-1.9.1での利用時は、マルチスレッドでデッドロックが生じる場合があります。 そのため、ウインドウを作成したスレッド以外からSendMessage()を呼び出したり、 それを呼び出すおそれのある機能を使うことが出来ません。 プログラミングRubyのRubyベタボメっぷりにRubyを使い始めて早10数年、使えば使う程にRubyって駄目だなと痛感する Rubyを学習し始めた頃は誰でもRubyは素晴しいと思うのだが、数年も使えばそのどうしようもない互換性のなさにウンザリする しかも互換性が無くなることをマズいと思っていない集団がRubyを制作しているのでどうしようもない 1.4時代のコードが1.6になった途端に互換性がなくなり動かなくなることはあったが、1.6→1.8ではそれが顕著になり、1.9など何のエラーも出さずに前のコードが動く方が珍しいほど それどころか1.9に行かずREEが海外ではデファクトになりつつある現状、そして始まるPlain RubyとREEの方言問題 例えばPassengerもREEの方がうまく動いたり、かと思えば特定のバージョンだとPlainじゃないとまともに動かなかったりと、とても面倒臭い 美しいコードを求める為の副作用、という名の互換性のなさはRuby界全体に蔓延していて 例えばあれだけもてはやされたRailsも、Rails2とRails3の互換性のなさに誰しも苦労したのは記憶に新しいところ 誰もが互換性のなさに辟易し、俺ライブラリを量産するため、gemで探すと似たような事をする終わったプロジェクトがわんさか引っかかる 諸処の小さなプロジェクトだけがそんな現状ならば許せるが、dbiアダプタでさえそんな現状なので バージョンが変わるとデータベースにすら接続できなくなったとか、dbiのAPIバージョン変わったのにアダプタ側の更新ないな、 とか思ってるとアダプタ作者がRubyから足洗ってたとか余裕 身内同士でRubyはコードが美しいと四六時中自画自賛しているが、実はそれこそがRubyのガン その美しいコードという名のオナニーの為に一体どれだけの互換性と人的リソースが失われていったことか Rubyのコードは美しい、Railsスゲー、ベタボメする人は沢山いたがいつも一過性の人気しか得られないのはそこにあるし ベタボメしていた人達もしばらくするとウンザリしてRuby界から消えてしまうのも原因は実はそこにある 達人プログラマーはRubyをベタボメしなくなったし、Mongrel作者はRailsどころかRubyに見切りをつけちゃったしね ああいう熱狂的なRuby信者でもRubyから足を洗っているのを見ると、tDiaryがRubyに見切りつけてPythonで全部書き直したとか言われても驚かないだろう自分がいる Visualuruby はもうrubyに追いついてないだろ あれは諦めたほうがいい IronRubyがどれくらい進化したかなと思ってまた試そうと思ったらインストールが上手くいかなかった アンノウンエラーがでる Ruby in steel2とかでてるな 誰か試してよ この前ちょっと試そうとおもってインストールしてたわ インストールは、あれはVS10のシェルのダウンロードに10分くらいかかるんだけど その間、インストーラーが応答なくなってるから、 10分程度放置しないとダメみたいだな 見た目上はフリーズでも裏でちゃんとDLしているらしい rubyしかできない事にされていらついてきた でも大体この言語でできてしまうのだからしかたない >>290 Python2.7と3の互換性のなさにもうんざりするがな。 「民放の19時台視聴率が1ケタになった」 テレ朝プロデューサーの「ツイッター」に「当然」の声 ・テレビ朝日の藤井ゼネラルプロデューサーは15日、ツイッターで「ついに昨日、19時台の民放は全局、 視聴率が1ケタになった(関東地区)」と呟いた。昨日というのは14日(火)のことで、 新聞のテレビ欄を見ると「泉ピン子宮古島に来襲」「AKBVS戦隊ヒーロー」「熟女4人が下町電車旅」などの番組が並んでいる。 この呟きがネットで大きな反響を呼んでいて、「正直、見たい番組が、ない…TV 本当にもういらないかも・・・」などと 「当然」と受けとめるリツイートが大量に寄せられている。 送評論家の松尾羊一さんによれば、昔から19時台はゴールデンタイムの入り口として、まずは小学生から高校生を集める番組制作が行われた。 20時台になれば会社から家族が戻り、家事も一段落。家族全員でテレビを見ながら団欒する、という流れがあった。 しかし、携帯電話やゲーム、パソコンなど普及によって19時台の視聴者は10年前から急速にテレビ離れしていった。 視聴率が下がると制作費が削られるため魅力的な番組が減るスパイラルに陥り、 起死回生策としてマンガやゲームでヒットした作品を持ってきたりもしたが、 「他のメディアでヒットした作品におもねても、テレビで成功するわけではない。若い人は感覚が鋭いため納得のいかないものは見ない」 さらに、番組が一部の人しか興味を示さないような狭い内容になってきた。 こうしたことが視聴率が取れなくなった原因だと松尾さんは説明する。 復活のヒントはあるのだそうだ。 実は、19時台で高視聴率を記録した番組があり、それはテレビ朝日系で08年から19時台に放送した 池上彰さん司会の「学べる!!ニュースショー!」。この番組はティーンエイジャーが主な視聴者で大うけだった。 「見てわかりやすいし、勉強になるだけでなく楽しめる。この応用としてドラマやクイズ、バラエティー番組を制作する。 そこに若い人達のニーズがあるのではないかと思います」そう松尾さんはテレビ業界に対し提言している。(抜粋) http://www.j-cast.com/2011/06/17098704.html?p=all twitterも当たるから当たらないか分からないサービスなんて 最初からjavaでは書きたくなかったんだろうな 「まつもと 速くなるのはRubyの普通の処理です。例えば変数の代入とかループを回したりという処理が速くなっているので、そこがボトルネックになっているようなものは速くなりますね。フィボナッチ数列の計算とか(笑) 笹田 パズルとか、文字列処理みたいなものが少ないプログラムは2倍くらい速くなるんじゃないかと思います」 まつもと×笹田、Ruby 1.9を語る − @IT</title> http://www.atmarkit.co.jp/news/200712/25/ruby.html 2007/12/25 ttp://epcan.us/s/12261002003/ep838977.jpg Ruby 1.9 から始まる Ruby 2 系の最新の安定版です。Ruby 2.1 は以前からの互換性を重視するとともに、様々な高速化 Ruby 1.9.3-p545 がリリースされました。 今回のリリースが、Ruby 1.9.3 の最後の通常リリース プログラミングRubyのRubyベタボメっぷりにRubyを使い始めて早10数年、使えば使う程にRubyって駄目だなと痛感する Rubyを学習し始めた頃は誰でもRubyは素晴しいと思うのだが、数年も使えばそのどうしようもない互換性のなさにウンザリする しかも互換性が無くなることをマズいと思っていない集団がRubyを制作しているのでどうしようもない 1.4時代のコードが1.6になった途端に互換性がなくなり動かなくなることはあったが、1.6→1.8ではそれが顕著になり、1.9など何のエラーも出さずに前のコードが動く方が珍しいほど それどころか1.9に行かずREEが海外ではデファクトになりつつある現状、そして始まるPlain RubyとREEの方言問題 例えばPassengerもREEの方がうまく動いたり、かと思えば特定のバージョンだとPlainじゃないとまともに動かなかったりと、とても面倒臭い 美しいコードを求める為の副作用、という名の互換性のなさはRuby界全体に蔓延していて 例えばあれだけもてはやされたRailsも、Rails2とRails3の互換性のなさに誰しも苦労したのは記憶に新しいところ 誰もが互換性のなさに辟易し、俺ライブラリを量産するため、gemで探すと似たような事をする終わったプロジェクトがわんさか引っかかる 諸処の小さなプロジェクトだけがそんな現状ならば許せるが、dbiアダプタでさえそんな現状なので バージョンが変わるとデータベースにすら接続できなくなったとか、dbiのAPIバージョン変わったのにアダプタ側の更新ないな、 とか思ってるとアダプタ作者がRubyから足洗ってたとか余裕 身内同士でRubyはコードが美しいと四六時中自画自賛しているが、実はそれこそがRubyのガン その美しいコードという名のオナニーの為に一体どれだけの互換性と人的リソースが失われていったことか Rubyのコードは美しい、Railsスゲー、ベタボメする人は沢山いたがいつも一過性の人気しか得られないのはそこにあるし ベタボメしていた人達もしばらくするとウンザリしてRuby界から消えてしまうのも原因は実はそこにある 達人プログラマーはRubyをベタボメしなくなったし、Mongrel作者はRailsどころかRubyに見切りをつけちゃったしね ああいう熱狂的なRuby信者でもRubyから足を洗っているのを見ると、tDiaryがRubyに見切りつけてPythonで全部書き直したとか言われても驚かないだろう自分がいる ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.4.6 2024/03/23 Walang Kapalit ★ | Donguri System Team 5ちゃんねる