[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 21:11 / Filesize : 227 KB / Number-of Response : 919
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Rubyについて Part 36



1 名前:デフォルトの名無しさん [2009/06/28(日) 16:29:28 ]
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。
前スレに変なのが沸いて流れてしまいましたが、まったりと行きましょう。

Ruby Home Page
www.ruby-lang.org/ja/

= 前スレ
Rubyについて Part 35
pc12.2ch.net/test/read.cgi/tech/1238194350/

過去スレ・関連スレは >>2-

738 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:50:23 ]
これって既出ですかね?

Ruby1.9.1、Python3.1、Java1.6.0の実行速度比較
www.mwsoft.jp/programming/other/compare_speed_ruby_python_java.html

1.8は遅かったけど1.9はかなり速くなったと聞いてたので
そろそろRubyをしっかり勉強するのもありかなと思ってたんですが
この結果を見て愕然としました
何故にこれほど遅いんでしょう…
もう高速化の手段は残ってないんでしょうか…

739 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:59:25 ]
WindowsでRubyって・・・

740 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 00:17:54 ]
>>738
高速化技法はまだ全然試されていないからまだまだ伸び代はある。

Pythonも高速化計画が持ち上がってたはずだし。


741 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 00:18:17 ]
そういえばRubyが遅い遅いとは言われてるけど
なんで(少なくともベンチマーク上では)遅いのか、その理由がよくわからない

1.9.1からYARVが入って、他の言語と同じバイトコンパイルになったはずだし
Pythonあたりと柔軟性で極端な違いがあるとも思えないし

742 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 00:19:57 ]
>>738
きっきっと、新しいバージョンだから遅いいんだよ
最適化された・・・バージョンアナら・・・ぼぼろ負けはしないよ

>>739
LinuxにはPython入ってるから、Windowsで・・・

743 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 00:27:05 ]
正直、じゃんごの日本語リファレンスとかもうちょっと充実してきたら
Pythonに移ってもいいかなって思ってる

744 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 00:31:09 ]
俺は日本語リファレンスが充実しても、Pythonには行かないなー
Rubyが使いやすすぎて、ちょっとやそっとの速度差で止める気にはならない
どうしても速度が気になるなら拡張ライブラリがあるし

745 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 00:35:37 ]
IronRubyによってMSが10倍速にしてくれるから気にするな
Linuxは知らん

746 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 00:36:34 ]
>>745
その時には素敵な拡張文法がてんこ盛りだったりして



747 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 01:20:32 ]
JRubyでいいじゃんはやいじゃん

748 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 01:46:45 ]
とりあえずRubyがWindows上で遅い、特に一定の条件が揃うと妙に遅いというのは前から言われてる
あと、usa版バイナリはVC6でコンパイルしているので最適化が甘い
ので、まずはコンパイラを揃えてテストするべき

749 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 01:48:48 ]
ということは、mingw版の方が速い可能性があるってことなのか

750 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 01:52:45 ]
というか、Linuxサーバー上で運用されることが実際には多いんだから
Linuxでテストしないと意味がないと思うんだが・・・
Windowsサーバー使えるような企業やハイソサエティはRubyなんて使わんで
ASP.NET使うだろjk・・・

751 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 07:46:33 ]
> ということは、mingw版の方が速い可能性があるってことなのか
まぁ、それはあるけど、素直にVC9を使うのが楽だと思うよ

> Windowsサーバー使えるような企業やハイソサエティはRubyなんて使わんで
> ASP.NET使うだろjk・・・
IronRubyをテストしてあげて!

752 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 09:02:21 ]
>>751
またそんないばらの道を...

というかmingw32のほうがVC(9含めて)よりはやいというのは、以前からわかってる。


753 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 16:41:58 ]
Windowsならgcc -O3で野良だろJK

754 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 16:46:52 ]
Ruby/Tkさえコンパイルできるようになれば、すぐにmingw版に移るんだが

755 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 17:00:11 ]
>>754
普通にできてるが

756 名前:754 mailto:sage [2009/08/09(日) 17:12:14 ]
>>755
え、本当?

俺の環境では ruby-list:46093 と同じ問題でコンパイルできない・・・
何が問題なのかさっぱりだ
配布バイナリがあればそっちを使うんだけど、更新止まってるみたいだし



757 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 17:31:30 ]
>>753
GCの関係で、最適化かけすぎると
不味いんじゃなかったっけ?

758 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 17:52:37 ]
ソースコード完全解説には「-O2まで」と載ってるな
ttp://i.loveruby.net/ja/rhg/cd/build.html (「最適化のヒント」の項)

759 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:45:58 ]
>>758
むしろ-O3より-O2の方がコンパイルに時間がかかったって話も聞くけどな

760 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:01:57 ]
The Computer Language Benchmarks Game
shootout.alioth.debian.org/index.php

761 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:57:53 ]
>>758
いつの時代の本だよ

762 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 21:22:36 ]
いやgccの-O2と-O3の差とか、当時とそんなに変わってないし、
Rubyもevalこそ入れ替わったけど、GCは基本同じだし。

763 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:10:26 ]
RHG1.9版出せよ

764 名前:デフォルトの名無しさん [2009/08/09(日) 22:18:27 ]
OneClickRubyInstaller の次期バージョンになる予定のRubyInstallerは、
mingw版です。ダウンロードできるけど、まだプレビュー版です。
ttp://rubyinstaller.org/downloads/

みんなでテストして、安定すれば問題解決じゃない?

1.8系はmingwにするだけで倍以上早くなるみたいだし。
ttp://antoniocangiano.com/2009/08/04/a-faster-ruby-on-windows-is-possible/


765 名前:755 mailto:sage [2009/08/10(月) 00:15:17 ]
>>756
俺もstubはダメだったんで非stubで使ってる。
Tcl/Tk 8.5 以降できなくなったような気がする。
ちなみにActiveTcljは使ったこと無い。いつもソースからビルドしてる。


766 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 03:28:30 ]
>>762
> いやgccの-O2と-O3の差とか、当時とそんなに変わってないし、
ソースだせソース




767 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 07:13:49 ]
最近は-O3でも動くらしい(ソースはIRCでの中田さんの発言


768 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 08:37:56 ]
もう1年以上-O3のRuby(MinGWとlinux)使ってるけど
特に問題になったことはないなあ

769 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 20:17:04 ]
少なくとも写真はこっちが勝ちだな

「変わっていかなければ」。日本Rubyの会 会長の葛藤 − @IT自分戦略研究所
ttp://jibun.atmarkit.co.jp/ljibun01/rensai/leader/27/01.html

770 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 20:23:33 ]
世界にはばたく日本のRuby(笑)から(笑)を取ってもいい頃合の状況なのに、
実際の中の人の活動は状況に比べて芳しくないんだよね

771 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 20:50:57 ]
Javaの解説やドキュメントを書くのは楽しい
なぜなら、足りない部分を補填するという自覚がもてるからだ
Rubyの解説やドキュメントを書くのは楽しくない
なぜなら、余計なものを重複して書いてる気分になるからだ

Rubyのスクリプトコードがもうちょっと読みにくかったら
ドキュメンテーションへのインセンティブになると思う

772 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 23:57:13 ]
> Javaの解説やドキュメントを書くのは楽しい
奇特な性癖の持ち主発見

773 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 01:02:30 ]
内容から察するに、わざわざツッコミ入れなくてもそういう意味だと思うぞ
「Rubyに比べてJavaのコードは解りにくいから、むしろドキュメント書くのが楽しくなる」という内容のようだから

774 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 01:22:03 ]
実際にはJavaでもろくに書いてないんだろうけどな

775 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 01:25:32 ]
分かりきったことをあらためて書くことほどつまらないことはないので
気持ちはわからなくもない

776 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 01:29:55 ]
成程>>769での懸念も尤もだな
よっぽどJavaの4文字に負い目があるらしい



777 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 08:39:14 ]
メッセージ伝達手段としての例外って使わないほうがいい?
1.9ではそもそも遅いとか聞くし

778 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 09:43:54 ]
>>777
例外は例外なんだから例外的なことが起きた時にだけ使うべきだろう。

779 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 10:00:13 ]
>>778
正論

大域脱出だったら catch と throw でいいんじゃないの?

780 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 11:10:02 ]
Rubyでのthrow-catchはbegin-raiseとどう使い分けるの?
ふつうに例外処理があるのになんでcatch-throwがあるの?

初心者の素朴な疑問。

781 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 11:22:56 ]
>>780
779が書いたように、throw〜catchは大域脱出機構。
例外処理機構じゃない。

782 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 11:36:29 ]
>>777
基本的には使うべきでない

ただしメッセージの種類によっては、判定が微妙なこともある
例:net/http.rb や open-uri.rb のHTTP例外

783 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 11:41:53 ]
elseでのreturnは例外送出と根源的には同質
キャッチするかそのままにするかの違いでしかない

784 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 12:31:49 ]
>>779
ライブラリが「このメソッドを呼ぶ時はcatchで括ってください」とか言ってきたらイヤだぞw

785 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 12:38:26 ]
PStore#transactionとか

786 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 12:50:53 ]
>>785
コード見て理解できた、指摘thx



787 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 15:05:47 ]
>>785
理解できないので解説おねがい

788 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 15:07:48 ]
>>784
検索メソッドを中断したらabort投げられるなんてのもないでもない

789 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 15:08:03 ]
PStoreというクラスのインスタンスメソッドtransactionという意味

790 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 15:32:35 ]
python の __getattr__ (属性へのアクセスのフック)のような事を ruby で行いたいのだがどうやれば良い?
method_missing ならぬ attr_missing みたいなメソッドがあれば良いんだけど発見できなかった。

791 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 15:49:05 ]
できません

「インスタンス変数へのアクセスは全員アクセサメソッド使え」
とマニュアルにでっかい字で書いておくというのはどう

792 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 16:31:01 ]
>>791
thx。
俺が見つけられなかっただけで、rubyでも絶対出来る方法があるだろーと思っていただけに意外でした。

793 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 18:24:41 ]
>>789
だれもそんなこときいてねー!!
例外やcatch-throwの話しているときになぜ
>PStore#transactionとか
がでてきたのか(たとえばPStore#transactionがcatch-throwを使ってるとか)を聞いてるんだけど。

これが空気読めない理系どものコミュニケーション能力か!

794 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 18:32:49 ]
>>793
そういう君こそ >>789 が言外に込めた意味を汲み取るべきでは?
ちなみに件のコードは見た?

795 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 19:35:00 ]
>(たとえばPStore#transactionがcatch-throwを使ってるとか)を聞いてるんだけど

見てたらこんなこと言わないか、一年ROMれのレベル

796 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 20:26:54 ]
そうか、コールバック(イベント)メソッドという手もあったな



797 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 23:46:42 ]
RubyやPythonの例外の使われ方を考えると
例外を例外的な状況だけで使えというのは
Java独自の風習じゃないかと思えてくる。

798 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 23:51:55 ]
ジャヴァの例外周りの仕様は明らかにウンコ
C++の<< >>なIO stream並にフォロワーが出てこない

799 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 00:24:07 ]
C++の例外はうんこ以前に普通に使えないという代物だからなあ
うんこはまだ食べられるだけマシだろ

800 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 04:42:59 ]
それは例外ではなくただのエラーだと突っ込みたくなることが何度か

801 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 07:07:10 ]
例外という日本語に引っ張られてるっぽい人は時々見る

802 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 07:20:25 ]
>>792
trace的なものはあった気がするがすさまじく遅いから常用不可だった記憶

803 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 09:30:11 ]
>>801
exception だとニュアンスがちがうのか?

804 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 09:38:30 ]
「予期しないこと」ぐらいのニュアンスかな

805 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 09:41:00 ]
よく知らんのだが、Lispのコンディションはもうちょっと積極的に
制御に組み込まれるんだろうか

806 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 09:45:43 ]
>>801
例外なんて相対的なものだからね
ある人の例外は別の人にとって例外でなかったりする



807 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 09:58:03 ]
OCamlの例外は積極的に制御機構として使われているね。
ループをbreakするときも例外とか。
よく知らんけど。

808 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 10:17:12 ]
そもそもRubyの例外クラスには
StandardErrorなんてのが普通にあるんだし
それを考えても、エラーと例外をはっきり分ける意味はないと思う

809 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 10:36:09 ]
例外って、実行時エラーに捕捉機能が備わっただけのような気もするな。

810 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:03:01 ]
丸投げ機構

811 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:38:01 ]
本スレに関係ない話題の隔離機構

812 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:01:02 ]
むしろ本スレが隔離機構

813 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:13:33 ]
隔離機構と薄力粉って似てるよね

814 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:20:53 ]
隔離機構とカクリコンって似てるよね

815 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:24:16 ]
∴ 薄力粉とカクリコンって似てるよね

816 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:39:36 ]
>>790
method_missing 使え
Rubyはメソッドとか属性とかプロパティとか区別しない。




817 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:45:07 ]
>>816
てゆか「メソッドしかない」んだけどね、厳密には

818 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 15:16:10 ]
なんでこういう布教スレばっかり立てるん?

魁け! Ruby 1.9.X
pc12.2ch.net/test/read.cgi/tech/1201603546/

819 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 16:17:53 ]
>>818
何で今さら?
かなり前からあるぞそのスレw

820 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 21:09:26 ]
MLの中にたこ焼き仮面がどうやらっていうメールがあって
何事かと思ったw

821 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 21:36:06 ]
>>820
何で今さら?
かなり前からあれだぞそのカレw

822 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 21:56:32 ]
>>821
そうだったのかw
ほとんどタイトルしか見ないからな

823 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 09:55:38 ]
WEBrickのパースユーティリティって特定条件のパース遣り残しとか残ってる?
信用して丸投げしていい?

824 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 11:35:32 ]
全く同じようなメソッドが大量に再発明されて氾濫してる現状からお察しください

825 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 11:51:36 ]
やっぱり HTML とか HTTP とかの軽量クラスは作るべきだっただろうか
require 'cgi' が重いから嫌われてるんだよね escapeHTML

826 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 11:58:06 ]
>>823
1.9でマルチバイト通さなかったことを誰も気づかなかった時点でお葬式



827 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 12:06:59 ]
あのへんは、コードを読み解こうとしてRFCとか参照しようとするとわかるが、そもそも頭に入らないぞ
仕様読んでる時点で脳内スタックが溢れるという体験を久しぶりにした
「…このままでいいや」と呟いた俺

828 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 12:14:41 ]
Railsさんはどうしてるのかなあ
どっかのライブラリに仕様を加味しつつ現実的な動作のメソッドがごそっと入ってそうだが

829 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 12:23:40 ]
>>828
h と u については有名
ERB::Util の中に入ってる

irb> require 'erb'
irb> include ERB::Util
irb> p h('<html>')
"<html>"
irb> p u('ABCDE!,.[]123')
"ABCDE%21%2C.%5B%5D123"

フォームのエスケープとか URL のコンパクションとかやってくれるとこはまだ知らない

830 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 16:07:00 ]
あまりにカオスだからいっそStringのメソッドに入れてしまおうか、
という話がでたくらい

831 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 16:27:39 ]
>>830
Web特化のPHPならあり得る選択だろうけど、Rubyでやると賛否の否の方が圧倒的だろうな
なによりPHPを馬鹿にできなくなるし

832 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 16:33:11 ]
現実の問題を解決する道具としてプログラム言語があり、
現実として Ruby が Web でよく使われているのに。

833 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 16:35:47 ]
>>825
HTMLをエスケープするだけのためにあんなでっかいライブラリ呼んでられん

834 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 16:38:55 ]
今はrequire 'cgi/util' するのが正解かな

835 名前:デフォルトの名無しさん [2009/08/13(木) 17:06:57 ]
はいはいみなさい便所の落書きお疲れ様です。
ここでなされた議論なんて一切参考にしないし
むしろ採用しないような力が働くからそのつもりでお願いしますよ。

836 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 17:26:17 ]
議論された場所なんか関係ないね
参考にしたけりゃするし、気に入らなければしない
もちろん場所によってS/N比は違うが



837 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 17:34:00 ]
話してるのが気に入らないって書いてる人に対して特にコメントはない

838 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 18:59:47 ]
>>835
そうならなかったことは歴史が証明してるけどなw

老害って自分たちが苦労して堪え忍んだ不条理を
若いのがこともなげにスルーすると滅茶苦茶ヒステリックにブチ切れるよねw

いい年したオッサンの風体で幼稚極まりないのって見苦しいことこの上ないというか。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<227KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef