トップページ⇒tech
984コメント268KB

Rubyについて Part47

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/01/16(月) 13:15:31.00
プログラミング言語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/
0367デフォルトの名無しさん2012/05/22(火) 08:22:45.23
では天才さんには、クラスよ見直してないソースを提示して欲しいのですよw
0368デフォルトの名無しさん2012/05/22(火) 08:35:44.83
ネタレス以外は初心者スレに行きなさい!
0369デフォルトの名無しさん2012/05/22(火) 08:50:17.88
まず読み直してると思った根拠をしめせよ
0370デフォルトの名無しさん2012/05/22(火) 08:51:46.81
そのうちrubyは糞とか捨て台詞吐いて去るんだろうなw
0371デフォルトの名無しさん2012/05/22(火) 08:57:29.27
RoRのdevelopment環境ではクラスを未定義に直して再読みなおしの処理を*わざわざ*入れている。
開発中はソースが頻繁に書き換わるからね。
product環境に変更すると普通はアプリケーションサーバを再起動しないとクラスの修正は読み込まれない。

インタプリタの実装方法をもうちょっと勉強した方がいいんじゃない?
毎回ソースからコンパイルしてるとでも思ってるんだろうか。
0372デフォルトの名無しさん2012/05/22(火) 09:00:55.84
tureta-
0373デフォルトの名無しさん2012/05/22(火) 09:16:40.59
rubyは糞だわ
シネ
0374デフォルトの名無しさん2012/05/22(火) 09:32:31.95
完全に無知な状態からその考えに至ったなら
自力で登れたというセンスはあるが、
やっと10年前くらいの技術にたどり着いただけの話
0375デフォルトの名無しさん2012/05/22(火) 10:05:09.62
まあせっかく出た話題なので……実行履歴を元に型を特化したコードを生成する手法は
JavaScriptの高速化で話題になっていたような記憶がある
↓っぽいな。Trace Monkeyっていうんだっけ?

Trace-based just-in-time type specialization for dynamic languages
http://dl.acm.org/citation.cfm?id=1542476.1542528
0376デフォルトの名無しさん2012/05/22(火) 11:28:11.17
すごいなそれ
その発想はなかった
0377デフォルトの名無しさん2012/05/22(火) 12:51:24.83
パイプラインをいっぱいったって、
IA系のアーキテクチャじゃ
演算機が少ないから意味ないよな。

いまさらナイアガラ系のアーキテクチャもないだろうし。
0378デフォルトの名無しさん2012/05/22(火) 13:23:20.77
>>364みたいなのがいる辺り、やっぱRubyのレベルの低さは否めないなあ。
Java勉強してればこんな馬鹿は発生しない。
0379デフォルトの名無しさん2012/05/22(火) 14:00:13.26
>>375
どんだけ釣り師が多いんだよ
Gitコンパイラだろ
0380デフォルトの名無しさん2012/05/22(火) 14:15:45.46
Cvsインタプリタ
0381デフォルトの名無しさん2012/05/23(水) 00:43:13.66
池澤あやかの仕掛人って誰なんだ?
ISOのタイミングで出てきた気がするが…やっぱあっち畑の方々なんですかね?
0382デフォルトの名無しさん2012/05/23(水) 00:49:58.75
>>379
なあ、まさかGitをジットと読んでるのか?釣りだよな。
0383デフォルトの名無しさん2012/05/23(水) 03:49:53.13
まあrubyやるよりjavaやっとくほうが現実的なのはそうだしなあ。
0384デフォルトの名無しさん2012/05/23(水) 15:09:37.50
JavaScriptすげーな
HTML内で動きまくりHTML書き換えまくり
RubyでもさもさなCGIとかやってる場合じゃない
0385デフォルトの名無しさん2012/05/23(水) 15:25:31.73
10年前から来たんですか・・・?
0386デフォルトの名無しさん2012/05/24(木) 08:07:14.79
クライアントサイドとサーバサイドの話を一緒くたにするバカを演じてるんだろう
0387デフォルトの名無しさん2012/05/24(木) 08:10:31.22
DHTMLの話だろうけどもしかしたらMeteorの話かもしれない
0388デフォルトの名無しさん2012/05/25(金) 09:41:22.67
activexだと動画も再生出来るのは驚くケドな。しカもヌルヌルだし。
0389デフォルトの名無しさん2012/05/25(金) 13:07:54.17
ウィンドウズメディアプレイヤーで再生する為の
タグを仕込んでた時代からは進化したな
0390デフォルトの名無しさん2012/05/26(土) 12:00:11.19
2.0ってどんな感じ?
新機能とか時期とか
0391デフォルトの名無しさん2012/05/26(土) 18:53:53.61
Rubyの二十の誕生日に出るって言われてるんじゃなかったかな
0392デフォルトの名無しさん2012/05/26(土) 18:56:01.56
今年は出ないだろうから比較的どうでもいい
0393デフォルトの名無しさん2012/05/26(土) 19:17:53.00
仕様追加の要望の締切りとかは年内じゃなかったっけ?
0394デフォルトの名無しさん2012/05/26(土) 19:56:34.65
2.0 の現状についての、最新のまとめはこれかいな。
ttp://d.hatena.ne.jp/ku-ma-me/20120521/p1
0395デフォルトの名無しさん2012/05/27(日) 18:47:40.04
今のところ 2.0 に入ることが発表されている大きめの新機能は、

Module#prepend
キーワード引数

の 2 点です。

あんまりおもろい機能じゃないな
引数と戻り値の型指定+overloadのが嬉しい
0396デフォルトの名無しさん2012/05/28(月) 16:40:32.15
JavaScriptと比べる人も居るみたいだがブラウザーという安全性の面で動作が限られるスクリプトと比べたらブラウザー上の奴の方が早くなる事があるのはおかしい事じゃ無い
比べるとしたらPythonやPerl等だろう
日本語対応に優れているという点でまあ処理する文字量が増えるわけだし、単純には比べられないよ
0397デフォルトの名無しさん2012/05/28(月) 16:57:58.93
いきなり何いってんだこいつ
0398デフォルトの名無しさん2012/05/28(月) 17:16:58.84
察してやれ
0399デフォルトの名無しさん2012/05/28(月) 21:26:58.46
RubyのJavaScript実装はまだかね?
だれもつかわないけどw
0400uy 2012/05/29(火) 04:16:59.15
ブログとかで使える
0401デフォルトの名無しさん2012/06/01(金) 09:15:54.39
Rubyオワタ・・・

高速なJavaScriptコードを生成できるWebアプリケーション向け言語「JSX」が公開される - SourceForge.JP Magazine : オープンソースの話題満載
http://sourceforge.jp/magazine/12/05/31/0748237

 DeNAは5月31日、Webアプリケーション向けの言語「JSX」を公開した。
静的型付けやオブジェクト指向といった特徴を持つWebアプリケーション向け言語で、
JavaScriptコードへの変換を行うコンパイラが用意されている。ライセンスはMITライセンス。

 JSXは「生産性が低い」、「低速」、「メモリ消費が多い」といったJavaScriptの問題点を解決するために開発されたプログラミング言語。
厳密な型付け機構を持つオブジェクト指向言語で、
JSXコードはJavaScriptコードへと変換して実行できる。
JSXコードから変換されたJavaScriptコードは最適化が施されており、「現代的な」Webブラウザ上で高速に動作するという。
0402デフォルトの名無しさん2012/06/01(金) 09:23:54.84
別にWebアプリの分野ならとっくに終わってるじゃん
0403デフォルトの名無しさん2012/06/01(金) 09:58:08.79
○○→JavaScriptな言語は総じて気持ち悪くて覚える気がしないぜ
CoffeeScriptとかな。Rails のデフォになってるのもさらに気持ち悪い
0404デフォルトの名無しさん2012/06/01(金) 10:00:28.94
Ruby++マダー
0405デフォルトの名無しさん2012/06/01(金) 10:06:33.96
>>403
みんながみんな、ちょろっと触ってみただけで「まあ有名になったらまたやってみよう」って放置するから、どれも伸びないんだよね
中途半端にJavaScriptの有名度に「依存」してるから、誰もその言語で何も作らず、結果としてまったく普及しない

開発元が死ぬ気で普及させないとダメ
0406デフォルトの名無しさん2012/06/01(金) 10:12:59.61
数大杉だよな
0407デフォルトの名無しさん2012/06/01(金) 10:18:04.94
うにょんうにょん内容が動く公式ページがその言語で書かれてます、くらいの勢いがないと…
0408デフォルトの名無しさん2012/06/01(金) 10:22:26.64
MSとかAppleとかOracleとかDeNAと言った大企業が作ってる言語って
他の凡百の言語とは安心感が違うよな。
0409デフォルトの名無しさん2012/06/01(金) 10:54:34.79
AppleとかOracleってなんか言語作ったっけ。
Javaは買収でしょ。Obj-Cは別にApple製じゃないし。HyperCardのことか?
C#の安心感は認める。
0410デフォルトの名無しさん2012/06/01(金) 11:17:55.44
AppleScriptのことだろ
0411デフォルトの名無しさん2012/06/01(金) 11:40:55.87
大企業が作ってる言語ってPL/Iのことか?
0412デフォルトの名無しさん2012/06/01(金) 11:53:34.30
>>408
なにかひとつ仲間はずれがいるんだが
0413デフォルトの名無しさん2012/06/01(金) 12:06:15.94
住み分けの世界が違うからRubyオワタとは全然関係ないけど
触ってみた感じJSXはそうおかしなもんでもなかったよ。CoffeScriptなんかより全然馴染める。
0414デフォルトの名無しさん2012/06/01(金) 12:26:57.08
そうか?ルビイストにはCoffeeやDartのほうが馴染むと思うけどな
0415デフォルトの名無しさん2012/06/01(金) 12:31:13.41
Dartって今どうなってるの・・・?
Goもどうなってるんだろう
0416デフォルトの名無しさん2012/06/01(金) 12:40:50.41
JSXってネーミングがダサイというかセンスねーっていうか…
ところでGoはこないだ1.0になってた。
0417デフォルトの名無しさん2012/06/01(金) 12:43:40.94
>>415
新言語が登場してから流行るまで10年ぐらいはかかるから
気長に見ないと仕方ないと思う
0418デフォルトの名無しさん2012/06/01(金) 12:48:31.12
母音がない言語は読みづらいぜ
0419デフォルトの名無しさん2012/06/01(金) 13:43:42.93
もうSchemeでいいだろ
0420デフォルトの名無しさん2012/06/01(金) 14:19:09.69
いじってると楽しいけど仕事では使いたくない典型言語ですか
0421デフォルトの名無しさん2012/06/01(金) 14:59:46.78
Scheme、Lisp、Prolog、Erlang、Haskell
↑パズル言語だよね。
仕事中にパズルで遊ぶなと言いたい。
0422デフォルトの名無しさん2012/06/01(金) 16:12:11.77
整合性のある成果物を作り上げる仕事が、仕事じゃなくてパズルなら、
整合性のないゴミを作り上げる仕事こそが、真の仕事ということなのかな?
0423デフォルトの名無しさん2012/06/01(金) 16:14:49.51
何飛躍してんだこいつ
0424デフォルトの名無しさん2012/06/01(金) 16:18:27.70
smartな社会を実現するという方向性があるが
合理性や効率やコストを追求すればする程、資本力がある
ところがさらに強くなり、労働者の仕事がなくなっていく。
非効率であるがゆえに仕事がある。TPPもまたしかり。
0425デフォルトの名無しさん2012/06/01(金) 17:09:46.62
(キリッ
0426デフォルトの名無しさん2012/06/01(金) 20:26:49.76
http://jsx.github.com/
0427デフォルトの名無しさん2012/06/01(金) 21:36:29.76
いいかげんウザい
0428デフォルトの名無しさん2012/06/02(土) 00:19:47.85
initializeって鬱の面倒いわ
initで良かったのでやないか
0429デフォルトの名無しさん2012/06/02(土) 00:50:54.47
newじゃだめなんだっけ
何かしらメタメタな都合かね?
0430デフォルトの名無しさん2012/06/02(土) 01:57:31.25
Object#initialize はあくまで生成済みインスタンスの初期化を行うだけ。
生成自体はClass#newの内部で、Class#allocateが行う。
そこに情報を埋め込んでいくのがObject#initialize という役割分担。
0431デフォルトの名無しさん2012/06/02(土) 03:11:56.30
>>428-429
ユーザー側としてはinitやnewという名前のインスタンスメソッドを「作れなく」なるけどそれでもいっすか
…まあ、現時点でもそんな名前のメソッド見ないけど…
0432デフォルトの名無しさん2012/06/02(土) 03:15:37.18
tializeって撃つのが面倒なんだよ
これまでにいったいどれだけの電力を無駄にしてきたことか!
0433デフォルトの名無しさん2012/06/02(土) 03:22:02.89
なんだこれでよかったよ。全く簡単だ。
class Object; def initialize(*p); self.i(*p) end end
0434デフォルトの名無しさん2012/06/02(土) 08:41:46.06
マクロが使えればなあ。
Objectとかに関数定義しちゃうのってたとえ使い捨てでも躊躇してしまう。
0435デフォルトの名無しさん2012/06/02(土) 08:59:16.79
>>434
Procオブジェクトをどうぞ
0436デフォルトの名無しさん2012/06/02(土) 10:29:43.99
>>434
_init_とか書いておいて
それをinitializeに置換するスクリプトでも書いたら
0437デフォルトの名無しさん2012/06/02(土) 10:33:56.26
アルファベット余ってるんだからrubyのコマンドラインオプションでcpp通せるようにすれば全て解決
#ifdefも使えて生産効率上がりまくるな
0438デフォルトの名無しさん2012/06/02(土) 10:42:03.74
Perlにcppを通すコマンドラインオプション(-P)があったはずだが…
と思って久しぶりにperlrun(1)を見てみたが、今はないのね。
0439デフォルトの名無しさん2012/06/02(土) 10:57:49.88
cppはもっと広く使われてもいいよな
0440デフォルトの名無しさん2012/06/02(土) 11:01:04.02
コメントはどうすんだよw
0441デフォルトの名無しさん2012/06/02(土) 11:56:51.89
Perlでcpp使うときは、スクリプトとしてのコメントは
;#
とか書いてた。#が1桁目になければプリプロセッサ指令にはならないので。
0442デフォルトの名無しさん2012/06/02(土) 12:39:50.32
あれ、今のプリプロセッサ指令ってインデントできなかったっけ?
0443デフォルトの名無しさん2012/06/02(土) 13:06:00.50
OSX Lionにて

$ /usr/bin/cpp <<EOF
# define foo 1
 #define bar 2
;#define baz 3
foo; bar; baz;
EOF

は
 #define bar 2
;#define baz 3
1; bar; baz;

になった(展開されたのはfooだけ)

同じものを gcc -E (実体はllvm)に食わせたら bar も 2 に置換された。

0444デフォルトの名無しさん2012/06/02(土) 13:15:11.31
#とdefineの間は空白あってもいいのか。知らんかったな。
0445デフォルトの名無しさん2012/06/02(土) 13:45:05.24
initializeとか長ったらしいのはIDEとか文字補完してくれる環境を使えよ。
ネオコンとか楽だぞ。
0446デフォルトの名無しさん2012/06/02(土) 13:54:30.74
to_sとか短い命名規則を採用してるのになんでinitializeだけ長いのかなと。
0447デフォルトの名無しさん2012/06/02(土) 14:01:46.15
だから>>431が答だって
「予約」されているメソッド名が initialize という誰も使わなさそうな長ったらしいのになるようにわざわざしたんだよ
new でもよかったんだが、それだと new というインスタンスメソッドが def で定義できなくなってしまう
0448デフォルトの名無しさん2012/06/02(土) 14:03:50.00
むしろinitializeとか普通に使いそうではある
0449デフォルトの名無しさん2012/06/02(土) 14:05:02.46
もし変数名aやbが特別な意味を持っているとしたら大変だもんね
0450デフォルトの名無しさん2012/06/02(土) 14:06:54.27
initialize と init と setup が揃ってるクラスは意外とあるんじゃないかと思ってみたりする
0451デフォルトの名無しさん2012/06/02(土) 14:08:13.73
まあ end という名前のメソッドやローカル変数が容易に使用できない時点でアレなんだけど
0452デフォルトの名無しさん2012/06/02(土) 14:12:59.49
classとかもdbのフィールド名なんかには普通に使ったりするもんな
0453デフォルトの名無しさん2012/06/02(土) 14:14:08.16
>>447
initializeってみんな使いまくってるじゃん
みんな使いまくってるメソッドをわざわざ長くしてある意味がわかんねぇよ
という疑問

ってかinitとかnewみたいなインスタンスメソッドを定義するなんておかしいだろw
initなんてインスタンスの状態数が増えだけだし、newって何をnewするんだよw
0454デフォルトの名無しさん2012/06/02(土) 14:16:00.55
initializeが長くなるとinitという下請けメソッドを定義することがちょいちょいあったりして
0455デフォルトの名無しさん2012/06/02(土) 14:22:18.02
>>454
長いから分けるとか初心者みたいな発想じゃないか…
04564432012/06/02(土) 14:23:08.55
gcc --traditional -E だとbarは置換されずに残ったわ。
0457デフォルトの名無しさん2012/06/02(土) 14:32:03.66
initかinitiaizeなんでどうでもええわ
自転車置き場の議論乙!
って言われたらそれまでだけど2ちゃんってそういう場所なんだよね?
twitterでmatzとかに聞いてもめんどくさそうにされそうだしなw
0458デフォルトの名無しさん2012/06/02(土) 14:50:22.45
いいえ。initialize が長いとかうアホすぎる話はカンベンしてほしいです。
0459デフォルトの名無しさん2012/06/02(土) 14:53:21.10
Railsの小間使い言語なのに偉くなったもんだわ
0460デフォルトの名無しさん2012/06/02(土) 15:54:47.60
i8nでいいだろもう
0461uy2012/06/02(土) 16:04:12.88
右 人差し指 i
右 親指   n
右 人差し指 i
左 人差し指 t
右 人差し指 i
左 小指   a
右 中指   l
右 人差し指 i
左 小指   z
左 中指   e

それいったら
attr_accessorもヤバイ
でも別にそんな頻繁に使うものじゃないし別に。
initialize も attr_accessorもキータイプはしやすい単語だから別にいいわ後からこの辺り変えられるほうがきつい
0462デフォルトの名無しさん2012/06/02(土) 16:09:30.22
Matz < Ruby 2.0 の目玉機能として init を導入します!!
ΩΩΩ < な、なんだってー
0463デフォルトの名無しさん2012/06/02(土) 16:11:45.21
やったー!
0464デフォルトの名無しさん2012/06/02(土) 16:42:28.99
NetBeansとかRubyMineとか使おうよ。
rw[TAB] → attr_accessor
0465デフォルトの名無しさん2012/06/02(土) 17:13:03.96
>>461
俺のキーボードと配列違うのかな
0466デフォルトの名無しさん2012/06/02(土) 17:14:33.82
言われて見ると>>461の右手は1個ずれてね?
qwertyだとiは中指だよな。
■ このスレッドは過去ログ倉庫に格納されています