1read 100read
2012年1月1期プログラム50: Ruby 初心者スレッド Part 47 (883) TOP カテ一覧 スレ一覧 2ch元 削除依頼
・ 次のスレ
51: 【至急】助けてください。 (196)
52: 関数型プログラミング言語Haskell Part17 (160)
53: Objective-C [ObjC part:6]; (562)
54: JavaScriptスレ (554)

Ruby 初心者スレッド Part 47


1 :11/12/02 〜 最終レス :12/01/09
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
前スレ
Ruby 初心者スレッド Part 46
http://hibari.2ch.net/test/read.cgi/tech/1317790320/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/

2 :
Railsの話題はWebProg板のRailsスレで
http://hibari.2ch.net/test/read.cgi/php/1311050686/
Windowsスレ
http://hibari.2ch.net/test/read.cgi/tech/1155031689/
書籍:ほぼ公式
「たのしいRuby 第3版 Rubyではじめる気軽なプログラミング」 (プログラミング自体が初めてでない人向け)
http://www.amazon.co.jp/dp/4797357401/
「初めてのRuby」 (同上)
http://www.amazon.co.jp/dp/4873113679/
書籍:紙のマニュアルに相当
「Rubyレシピブック 第3版 303の技」((脱)初心者向け基礎テクニック集、1.9対応)
http://www.amazon.co.jp/dp/4797359986/
「プログラミングRuby 第2版 言語編」(初心者向け参考書)
http://www.amazon.co.jp/dp/4274066428/
現在、1.8 系列の最新である Ruby 1.8.7 と 1.9 系列の最新である Ruby 1.9.2 の2系統が存在
肝心な部分がわりと違い、プログラムはそのままでは動作せず、予備知識も別個。両対応させるには相応の追加記述が必要
1.9.2 用の教科書があるなら 1.9.2 から始めても構わないが、1.8 用のスクリプトやライブラリは 1.9.2 では動作しないので注意
Windows用Rubyは、Ruby以外のものもあらかた入っているActiveScriptRubyと
http://www.artonx.org/data/asr/
RubyだけインストールされるRubyInstallerの2種類存在
http://rubyinstaller.org/downloads/
何が必要なのかわからない人はとりあえずActiveScriptRuby使っと毛
chm(HTMLヘルプ)式のダウンロードできるマニュアルが便利
http://www.ruby-lang.org/ja/documentation/

3 :
乙。
惜しいけど、1.9系は1.9.3やな。

4 :
おつ

5 :
質問です。例えば、
https://github.com/amatsuda/active_decorator/blob/master/lib/active_decorator/railtie.rb
のinitializerメソッドがどこで宣言されているかを知りたいと思ったとき、
皆さんはどういう風に見つけ出してますか?

6 :
親クラスの特異メソッドを辿るぐらい?

7 :
この手のってクラスメソッドの mixin だったりするから def self.xxx だけ見ててもしかたないけどな。

8 :
Ruby on Rails の話題は WebProg 板の Rails スレでどうぞ
そもそもここには Rails を日常的に使っている人はほとんどいませんので、聞くだけ無駄です

9 :
>>5
親クラスの特異メソッド定義を探すか、
include してるクラスの中で extend して特異メソッド定義してる部分を探す

10 :
>>8
対象コードはRailsかもしれんが、質問内容はRubyそのものだろう。
なんでそんなに嫌うのかわからん。

11 :
>>10
なまえらん嫁w

12 :
>>5
ActiveDecorator::Railtie.method(:initializer).source_location
とかじゃダメかい?
っと思ったら何故かMethod#source_locationがリファレンスにない。。。

13 :
皆さんありがとうございます。
定義されていそうなところを順に探していくのが一番みたいですね。
ただ、ソースコードを読むたびにこういう探索をしていくのは結構疲れそうですが、
読み続けていけば慣れたりするものなのでしょうか?
または、読みに徹するときだけはIDEなどを使う、という方もいるのでしょうか?

14 :
>>13
>>8が読めないの?

15 :
なんてかいてあるんですか?

16 :
>>14
答えられない無能なら黙ってたほうがいいですよ。

17 :
>>12
Method#source_locationなんてメソッドがあったんですね!これは便利!!
http://www.ruby-doc.org/core-1.9.3/Method.html#method-i-source_location
あと16は私ではないです。Railsとは関係のないコードを例に出せば良かったです。

18 :
ゆとり(笑)

19 :
おお・・・source_location いいなこれ。

20 :
>>13
慣れじゃないでしょうかね。
あまりにでっかいのを読み解く時はローテクだけどメモとりながらやったりしてます。

21 :
>>20
なるほど、読み進めているときに図を書いたりするとわかりやすくなりそうですね。

22 :
END{
  gets if 例外が発生して異常終了していたら
}
ってコード書けますか?
begin
  main
rescue
  gets
end
と書かず済むなら前者で済ませたいんですが

23 :
>>22
答えは知らない。
そもそも例外処理が例外が発生していたらなので、begin rescue使うといいと思うよ。

24 :
require "tk"
を実行すると
C:/Program Files (x86)/ruby-1.8/lib/ruby/1.8/i386-mswin32/tcltklib.so:
tcltklib: fail to open tcl_dll (LoadError)
と出るんですがどうすればいいのか・・
tcltklib.soはありますし
windows
ActiveScriptRubyでいれました。
ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mswin32]

25 :
>>22
まともに動くかどうかはわからないけど
END { gets if $! }
>>24
rubyでtkを使うには別途tcl/tk本体をインストールせんといかんのですよ
何をインストールすればいいのかはよく知らんのでググってくだっせ

26 :
ていうかEND使ってる人5年ぶりくらいに見た

27 :
-n や -p 辺りのオプション使うとそれなりにお世話になるよ
だからワンライナーではしばしば使うね
逆にワンライナー使わないとなると、使う場面はかなり限られるな…

28 :
Rubyはデストラクタの書けない言語だからファイナライズ処理で使わざるを得ない

29 :
>>28
open(path) {|file| ... }
みたいな感じで、上手くブロックに出来ない?

30 :
どうしても解放しなきゃいけないリソースは rescue/ensure でなんとかしろってことなんだよな。
もっともだと思うけど大域的にやらないと辛いケースもあるからなぁ・・

31 :
>>30
大外にrescue/ensureってのはどうよ

32 :
Rubyに将来はありますか?

33 :
言語選びに将来性なんて気にしてる暇あったら
ちゃっちゃか覚えて使い捨てればいいとおもう。
一つの言語で食っていけるのどかな時代はとっくに終焉を迎えました。

34 :
C言語はまだしばらく食っていけそうな気がするけどね

35 :
一番最後の実装はCってケースばっかりだよな。
でもそういう人たちは多分C言語で食べてるっていうより実装する環境の限定知識で食ってる気がする。

36 :
Cしか(開発環境が)存在しない環境でCを使う、という場合だな
Cさえ使えればどこでもCでオッケー、というようには今はなってない

37 :
この数式でsyntax error がでるのはなぜ?
zz=(xx1-xx2)**2+(yy1-yy2)**2

38 :
プラスが全角だから

39 :
ついでに紹介
Math.hypot(xx1-xx2, yy1-yy2)
こいつから返ってくるのは平方根だけど。

40 :
>>38
マジそれだった!
心の底から感謝。一晩悩んだ。

41 :
マジかよww

42 :
RubyとJavaではどちらの方が将来性ありますか?
それと両者はどこで棲み分けているんですか?

43 :
Rubyは重い上に互換性が低く、また組み込みやモバイルには使えません。
Rubyは規模の小さいデモ作成に使われています。

44 :
Rubyはデスクトップアプリの作成にも向いていません。

45 :
まためんどくさい流れになってるな。

46 :
それだと(?<=),(?>)など高度な正規表現をもつ他の言語やJavaと比べてRubyは何が優位なんですか?
Rubyはやっぱりただのおもちゃ言語だったんですか?

47 :
>>42
棲み分けもなにも、そもそも現時点で用途も利用者も全く別
仕事したいならJava覚えりゃいいんじゃね

48 :
>>46
かなり遊べる楽しいオモチャだよ

49 :
うんそうだからJavaスレに帰ろうな。

50 :
JavaではRubyよりもScalaの方が将来性があるからとよく勧誘されるんですが、RubyやJRubyは言語としてもプラットフォームとしてももう未来はなく終わったんですか?
それならやっぱり未来はHTML5ですよね?

51 :
なんでそこでHTML5が出てくるのかわからないけど
多分そうだからHTML5の勉強に戻ろうな。

52 :
それだと(?<=),(?>)など高度な正規表現をもつ他の言語やJavaと比べてRubyは何が優位なんですか?

53 :

Rubyは戻り読み使えるよ?

54 :
だから他と比べて優位なところのないカス言語なんだから
こんなところで油売ってないでもとの生息地にかえったらいいと思うよ。

55 :
すでに何かを習得済みな人にとって
習得済みであることが何よりの優位な点

56 :
では、RubyとJavaでは言語スペック上動的・静的言語の違いがありますが実際の利用シーンでは両者はどこで棲み分けがあるんですか?

57 :
みんなJava使ってるしJavaの方が将来性があるってのがみんなの相違だから
早く Java7 の勉強をはじめるんだ

58 :
Java7ってそんなに変わってないから
勉強するってほどもないと思うけど。
Rubyはいつも頑張ってるらしいね。
また互換性なくなっちゃったらしいし。

59 :
>>58
1.9からは$KCODEとか日本語の扱いがさらに大変なので、1.9は1.8とは違う別プラットと考えた方がいいですよ

60 :
ああほんとJavaは最高だよ。

61 :
Javaと違ってRubyはそもそも互換性など想定してない

62 :
本当にJavaに過去との互換性があるならバージョン固定なんてしなくてもいい
Javaを本当に使っている人に互換性の話をすると殴られるぞ

63 :
>>56

64 :
一体何を言わせたいのかわからないけどJavaスレで聞いたらいいと思うよ。

65 :
住み分けなんてない 下のどれか
1.使いたい人が使ってるだけ
2.以前から使ってるから使い続けさせられてるだけ
3.誰か個人によるュによりその言語を使うことになってるだけ

66 :
Javaに比べてRubyはリテラルが豊富で文法も複雑となっていてユーザー定義構文(defでの&block引数など)も簡単に作れるので複雑さは波大帝じゃありません。

67 :
>>66
どんなエンペラーだよ

68 :
文法はJavaよりRubyのほうが複雑だね。
その分、実際に書くプログラムではJavaよりRubyのほうが圧倒的に簡潔に書ける。
Javaは簡単なことが簡単に書けなさすぎる。

69 :
>>66
Javaは、本来なら単純な文法のはずだったのに、Genericsを導入したせいで一気に難解な言語になってしまった。
今となっては、Javaは十分複雑な言語。Rubyより簡単とはいえない。
ttp://www.infoq.com/jp/news/2009/07/scala-replace-javaより:
> Javaはとんでもなく複雑な言語です(仕様書は600ページもありますし,Javaのgenerics を本当に理解できている人はいるのでしょうか?)。
> オートボクシング(に隠されたNullPointerException),基本型,コレクションではない時代遅れの配列,文字列/テキスト/バッファ/コレクション/配列に対するポリモーフィズムの全般的欠如,データ構造体やbean プロパティを扱うときのこの上なく冗長な構文,など。
> しかもいまだに(JDK7でさえも)closureが使えないので,新しいカスタムAPIを持ったフレームワークを利用しないことには,くだらない try/catch/finally でいっぱいになってしまいます。
> まだあります。Javaには型推論も用意されているというのに,プログラム入力の省略化や可読性向上にそれを役立てることさえさせてくれないのです。
ttp://www.infoq.com/jp/news/2008/05/JSR-308 より引用すると、
> あらゆる言語は複雑さの予算(source) を持ちます(訳注: ここで言う「予算」とは、メリットとデメリットのバランスをよく検討してから新しい機能を導入すべき、と言うこと)。
> JavaはそれをJava 5におけるジェネリクスで吹き飛ばしてしまいました。
> さあ、このコードをもう一度まじめに見直してみましょう。
> @NotEmpty List<@NonNull String> strings = new ArrayList<@NonNull String>()>
...
> Java言語にとっては考えうる限り最悪な時期に、これらの変更がもたらされます。コミュニティは本当に、本当に動的言語にエキサイトしているのです。
> このねじくれたコードの代わりに、単にこのように書くことができるのです。
> var strings = ["one", "two"];

70 :
1.5のジャバが複雑というならシープラプラなんてのは人間の認知能力のリミットをはるかに越えてる

71 :
ちなみにJavaの後継と期待されたScalaも、複雑すぎるという批判がある。
ttp://www.infoq.com/jp/news/2011/11/scala-ejb2
> 氏はScalaの型システムが複雑になりすぎていると指摘している。これは、Steve Yegge氏の見解と同じだ。
...
> 氏はScalaの静的型付けは静的型付けの評判を落としていると主張する。
...
> Scalaは進化の過程で何度も後方互換性を破棄しているので(これからも後方互換性が保証されるかどうかわからない)、実用に耐えないのではないかと指摘する。
ttp://d.hatena.ne.jp/karasuyamatengu/20111122/1321978693
> EJB2のよう
> ・Javaによる大掛かりなプロジェクトの複雑さを減少させようという試み
> ・裏目にでて複雑さを増加させてしまった
> ・その複雑さをドキュメント、「best practices」、ツールなどで克服しようとする
> ・ScalaにはEJB2を最初に見たときと同じような「駄目なテクノロジー」の感触がある
> ・アーキテクチャをover-engineeringしてしまった結果

72 :
実際人間の扱う範囲を超えちゃってると思うよC++は

73 :
C++ のテンプレートはちょっと頭おかしいと思う。

74 :
RubyとJavaでは将来それぞれどういう利用シーンや未来を描くプラットフォームがあるんですか?
JavaではRubyよりもScalaの方が将来性があるからとよく勧誘されるんですが、RubyやJRubyは言語としてもプラットフォームとしてももう未来はなく終わったんですか?

75 :
はいそうです。
未来はなく終わりましたので違う言語を探しに旅立ってくださいね。

76 :
全くもってその通りです
議論の余地はありません

77 :
俺、今からRubyを学ぼうとしてるんだけど、
Rubyはもう終わった言語、とか言われるとやる気なくすww

78 :
これ見て自分で判断しろ
http://www.tiobe.com/index.php/paperinfo/tpci/Ruby.html

79 :
>>72
越えてるよね
テキストエディタとコンパイラとリンカとデバッガでC++プログラムを通常通りに作り続けられる人なんて地球に何人いるやら

80 :
>>79
> テキストエディタとコンパイラとリンカとデバッガで
そんなの。コンピュータの力を借りれば簡単に超えられるよ。

81 :
>>77
Java信者の必死な工作を信じるとは、なんと純真な子であろうか。

82 :
でも>>78のグラフは事実なんでしょう?

83 :
もしrubyをやりたいならwindowsじゃなくてlinuxにしとけ
それでもwindowsでやりたいいなら選択肢はrubyは捨ててjava,c#かもしくはie9 browser html5 (web prog)しかない

84 :
途中爆発的に伸びてるのはRailsが流行っただけじゃないのか。
Ruby自体の需要は今も昔も大したことないよ。
将来性とか気にする人が使う言語じゃないからさっさとお帰り。

85 :
>>82
グラフに何か意味があると信じているなら
Javaもやめたほうがいい。傾きだけ見てると未来がない
そんなことはないと思うけどね
http://www.tiobe.com/index.php/paperinfo/tpci/Java.html

86 :
そっか、Javaはそんなことないんですね。

87 :
rubyのapidocが非常に使いづらいんですが、rubyのオハコとも言えるrailsや何やらのウェッブ・サービシーズ・テックノロジーを使って利便性を向上しないんですか?
またはそのようなキラーアプリが、rubyの世界やgemsからも未だに出てこないのは何でですか?

88 :
自演、連投
ヒマなんだな

89 :
実はRubyで書かれたbotとかじゃね?

90 :
>>88-89
自演乙

91 :
Java信者は今、生き残りに必死なの。だから大目に見てあげて。
Javaの未来、RubyとJavaScriptの台頭
ttp://www.publickey1.jp/blog/11/javarubyjavascript.html
> オープンソースによるJavaのフレームワークである「Seasar2」の作者にして、著名なJavaプログラマのひとりとして知られるひがやすを氏が「Javaに未来はないかなと。
> (略)個人的には少しずつJavaから離れていっています。」という発言をパネルディスカッションでしました。
...
> クライアントでの存在感が薄れて行くにつれ、Javaを最初に学ぶ言語とする若いn開発者は減少するだろう
> そして結論は、Javaはエンタープライズ市場では引き続きうまくいくが、そこに限定されるだろいう、というもの。

92 :
Rubyなんて何かの弾みで「習得しちゃった」人が趣味で使う言語なので、
他の言語と比べてあれこれ悩んでるようなRuby未習得者がわざわざ選ぶようなメリットは特にないれす。
Java厨もその自演と見られる自称今からRubyを学ぼうとしてる人もさようなら、他の流行りの言語を勉強しましょう。

93 :
「ルビーはさぁ、もうオワコンだよね〜」っていう話し声が聞こえたのでスっとんできました!!

94 :
>>91
せめてJavaが今の1/10にシェアが減るか
Rubyが今の10倍にシェアが増えてからにしなよ。

95 :
大手のJava様の信者がどうして零細もいいとこの、しかも特に競合もしていないRubyのスレで暴れてるのかわからん。
Rubyを敵視しなきゃいけないほど最近のJavaって落ちてるの?

96 :
いえ、他のスレでRuby信者が暴れていたので
代わりにこっちに来ただけです。
大手のJavaと零細のRubyってのはそのとおりですよ。
だからってここであそんじゃいけないってことにならないでしょ?

97 :
>>96
つまりお前はその荒らしと目糞鼻糞なことをここでやってるワケか

98 :
ほんとはRubyとかじゃなく、PHPとかがいいんだろうな。

99 :
Ruby信者の一人がよそで暴れてたからからRubyスレで暴れるとか小学生並だな。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
・ 次のスレ
51: 【至急】助けてください。 (196)
52: 関数型プログラミング言語Haskell Part17 (160)
53: Objective-C [ObjC part:6]; (562)
54: JavaScriptスレ (554)