1 :
ギコRubyist :
2000/08/11(金) 18:36
2 :
名無しさん@お腹いっぱい。 :2000/08/11(金) 19:30
どうよと言われると、、、 遠慮しとくわ
3 :
なりたてRubyist :2000/08/11(金) 19:41
Ruby本を買って、ちょっと読んだだけ。 プログラミング経験は高校時代のN88-BASICのみ。 1からプログラミング(つーかスクリプティング?)を勉強しようと 思ってますので、このスレに期待してます。
4 :
名無しさん@お腹いっぱい。 :2000/08/11(金) 21:20
やっぱ型が弱い言語はとっつきにくくてだめだわ。
5 :
似非Smalltalker :2000/08/11(金) 22:30
ドキュメント見るのがダルいから、統合環境とGUIのクラスブラウザが欲しい。
6 :
名無しさん :2000/08/11(金) 23:56
Rubyistだとか言って、グループへの帰属意識をひけらかしてるのが、 道具としてのRubyが一般へ普及するのを妨げてるんじゃない?
>>2 慎み深いなあ。そんな2さんには言語`J'をお勧めします。
>>3 どの段階にいるかは知りませんが、
irbを使ってRubyのオブジェクトを弄くりまわしてみると感じが掴めるかも。
>>4 キャストしなくて済むのが楽ですー。
>>5 Windows向け統合環境RubyWINが鋭意製作されてます。
クラスブラウザは自分もほしいですね。
一応作ろうという話はあるみたい。
>>6 「グループへの帰属意識」を利用して、
人材を確保しておこうという戦略らしいです。
そろそろコアグループ形成期は終わったとみて、
拡大期に向けた戦略転換が必要なのかも。
型がないから、メソッドの仕様がわかりにくいんだよね。 キャストしないですむっていう話じゃないの。添付 ライブラリにしてもそうだし、自分で組んだコードにしても そう。ソースの可読性がわるいといえばいいのかな。 さらに自分で書いたメソッドのエラーチェックをきつくしようと するとメソッドの仮引数の型チェックができないからコードが is_a?()だらけになるとかね。
9 :
名無しさん :2000/08/13(日) 07:13
なんかこう、全体にただようUNIXバンザイ思想がWindowsメインの 俺にとってはいや〜ん。PerlもそこまではUNIXくさくないさ。 あと、純真なWindowsユーザーにCygwinを強要すんな。
10 :
>9 :2000/08/13(日) 08:06
そんなことは無いと思うけど。Perlは十分Unixクサイよ。 慣れの問題でしょ?
11 :
>4 :2000/08/13(日) 11:56
型付けの強い言語を使いなれた人には、発想の転換が必要ね。 「このメッセージを受け取るオブジェクトの型は何?」とか 考えるんじゃなくて、これはこういうメッセージを受け付け るオブジェクトなのね、っていう。
12 :
4 :2000/08/13(日) 21:25
んー、そういう一般論じゃなくて細かい各論をいってたんだけどな。 たとえば、openFile(filename, mode)っていう メソッドがあるとするよね。で、この情報だけじゃ メソッドの仕様が読み取りにくいでしょ。もしかしたら mode = "rb" っていうstringでの指定かもしれないし、 mode = File::O_BINARY | File::O_READ っていうビット列による 指定かもしれないよね。で、結局仕様はコードを読むか ドキュメントを細かく読むかしないとわからないと。 つまり「『こういうメッセージ』ってのはなんなんですか?」 ってのが読み取りにくいといっているだけ。 まぁ最終的にはドキュメント/ソース読むのはC++/Javaでも変わらない んだけど、予備知識があるのとないのとでは読みやすさ が違うよね。
型付けはインプリメンタの都合じゃないのかなぁ…
O_BINARY, O_RDONLLY はどう調べるんじゃ、 ぼけ
あおるのはやめれ 例が悪いだけだろ。 言わんとすることはわかるよ。
16 :
11>4 :2000/08/15(火) 07:11
なんか、私の読み違いがあったようです。すんまンソ。
17 :
1 :2000/08/19(土) 17:54
やっと2chに復帰できた・・・ まともなドキュメントがある場合には型あり/なしどちらだろうが仕様が確認できるからいいとして、 問題はそういったドキュメントのない場合かな。 自分はこうしてますです。 1.引数名がヒントになる(しかしソース書いた人に依存) 2.使い方が間違っていたら、まず例外吐いて終わるから速攻でなおせばいい インタプリタなので場当たり的な対処でも余りストレスにならないかな。 Rubyはエラーを詳細に報告してくれるので、エラー個所の特定がしやすいし。 個人的には設計のまずさの方がクラスの使いやすさや ソースの可読性に大きく関与すると思いますね。 ま、とりあえず、Ruby初心者からの質問スレッドにします。 あんまりむつかしいことは質問しないでね・・・
18 :
名無しさん :2000/08/20(日) 00:22
質問 >1 Ruby MLの人ですか?
19 :
1 :2000/08/20(日) 02:22
>18 一応入っているけどROMです。 自分のレベルではついていけない話題が多くて…
20 :
名無しさん@お腹いっぱい。 :2000/08/20(日) 08:19
海外で普及しそうだったら使おうと思う。
>20 四国では、少なくとも私が使っています。
22 :
名無しさん@お腹いっぱい。 :2000/08/20(日) 12:36
ML見てると外人でも熱心なRuby信者っていますねえ。 あちらでもやはりPython信者と言い争ったりしてるみたいすけど。
23 :
名無しさん@お腹いっぱい。 :2000/08/20(日) 14:02
Pythonと共に廃れるに一票
24 :
>23 :2000/08/20(日) 14:37
視野の狭いPerlキチ
RubyユーザってPythonユーザと仲悪いんですか。知らんかった。
有る言語の信者は別の言語の信者と仲が悪いのは、歴史が証明しているかと・・・
仲悪いまではいかんけどねぇ。お互いマイナーだし。 共通の敵のPerlがあるし(笑) どっちもPerlの美しくなさに不満のある人種の使う言語だね。
Perlは汚いけど書くのは楽なんだよね。 そして、しばしば自分で書いたコードも読みなおせなくなる(笑
29 :
名無しさん@お腹いっぱい。 :2000/08/22(火) 00:35
Rubyを使ってる人って、どういう事に使ってるんでしょ?
今まさに、Perl使いはハンガリアンを導入するベシ〜
Perlの読みやすさ(読みにくさ)はC並みだと思うが。 …って俺がC風に書いてるだけだったり?
32 :
1 :2000/08/22(火) 01:49
>29 初めて作ったRubyプログラムはオイラーグラフの検証プログラムでした(笑) 普段はそのときやっている作業に必要な小さなプログラムを書き捨てたり。 これはたいていファイル処理やテキスト処理ですね。 今は2chリーダでも作ろうかと思ってます。 >31 短く楽に書こうとすると汚くなりません? 暗黙的に代入される組込変数を大いに使ってもそう。 Rubyもメソッドチェーンしまくったりすると読みにくいね。 #けれど、書くほうは気持ちよかったりする。
「容易に読める&確実に動く」がプログラムだと思うんで、 短く楽にって発想がちょっと理解不能。ごめん。 でもヒアドキュメントに@{[]}は楽で汚いと思う。
34 :
1 :2000/08/22(火) 11:38
>33 自分だけが使う書き捨てプログラムの場合には「短く楽に」、 他人にも使ってもらいたい場合には「可読性と信頼性重視」ですね。 仕事でプログラムしている人間じゃないので、前者が多いですが。 特にCGI分野の公開されているPerlのプログラムって アドホックで楽で汚く書いたコードが多いと思います。
35 :
名無しさん@お腹いっぱい。 :2000/08/22(火) 18:45
そうだね。
RubyのML、 [ruby-list:24324] ruby の発展の為に で始まるスレッド。閉鎖的で笑えました。
37 :
1 :2000/08/23(水) 15:26
あー別にWinやMacで使ってもらわなくてもいいって発言は頂けなかったなあ。 裾野が広くならなきゃ山も高くはならないのに。 setup.exe一発のスタータパッケージが出てほしいね。 WindowsでRuby推進派としては。
Rubyのお勉強サイトでオススメありますか? 初心者用とかが良いです。
39 :
1 :2000/08/23(水) 23:39
ところで何でみんなsageてんの? Python至上主義者に攻撃されるから潜伏してるの?
41 :
1 :2000/08/24(木) 14:00
42 :
名無しさん@お腹いっぱい。 :2000/08/29(火) 17:08
Rubyでシミュレーションプログラム作ってます。 MLで間抜けな質問をしたやつです。 最初は、C、C++、Perl、FreePascalあたりで書こうと思ってたけど、 使いやすいOOだからRubyを使うことにした。 OOだからごりごり書いてもプログラムが見にくくならないし、 クラス図を書いてからプログラムしてるから仕様がわからなくなることもない。 不満と言ったら実行速度と開発環境かな。
43 :
名無しさん@お腹いっぱい。 :2000/08/29(火) 17:13
RubyでWinGUIなコードを吐くコンパイラ作って。
44 :
名無しさん@お腹いっぱい。 :2000/08/30(水) 12:15
たぶん攻撃くるとしたらPython狂信者じゃなくてPerl初心者の厨房狂信者とかだろな。
45 :
名無しさん@お腹いっぱい。 :2000/08/30(水) 12:41
>44 そんな事を思っていても書いちゃダメなのさー。 Rubyが嫌われる遠因になるのさー。
このスレを見ている限りではRubyは発展しそうにないな。
47 :
>46 :2000/08/30(水) 15:52
MSのCTLにも入ってないしな。 Pythonに差つけられたのは、事実だな。
48 :
名無しさん@お腹いっぱい。 :2000/09/01(金) 02:54
Ruby/Tkみたいなのってないんでしたっけ?
49 :
名無しさん@お腹いっぱい。 :2000/09/01(金) 14:52
公式ページ見てきたけど、Ruby/Tk あるみたいだよ GUI作成ならDelphiのVCLを使うAppoloとかも面白そうな感じ ちょこっと書いただけでForm出てきたんでちょっと感動した。
50 :
名無しさん@お腹いっぱい。 :2000/09/01(金) 17:33
有名言語の文法/仕様に対するアンチテーゼとして生まれた言語は広まらない。これ定説。
51 :
むる :2000/09/01(金) 22:35
are?
52 :
やっぱり :2000/09/01(金) 23:32
日本ローカルで終わるのかな… 逆にいうと、PerlやCは英語文化圏と相性がいいから広まったんじゃない?
53 :
名無しさん@お腹いっぱい。 :2000/09/02(土) 01:33
いいスクリプト書く人が増えれば徐々にはやるんじゃないかな。 Kondara は skkserv.rb が動いてる。
54 :
名無しさん@勉強中 :2000/09/02(土) 02:33
もーちょい、やさしい本が増えれば良いんだけどなぁ Ruby本はわりと面白く読めたんだけど、6章,7章は「オレには縁がないな〜」と 思いながら読んでた 手軽&きれいに書けるのは気持ち良いので、入門用の良い本が何冊か出れば わりとすぐに広がるかもしれないと思う(楽観しすぎ?)
55 :
>54 :2000/09/02(土) 03:10
PerlでいうCGIのような目的対象(日本語変?)ができなければ難しいと思う。
56 :
名無しさん@お腹いっぱい。 :2000/09/02(土) 03:58
ライブラリの数がもっと増えれば楽できるからいいな。<他人任せでスマン
57 :
1 :2000/09/02(土) 03:58
ネット上でのドキュメント整備も始ったので、 入門者にとっては多少は状況がよくなると思います。 CGI用途にも向いているんですが、使えるISPがあまりに少ないですね。 自前でWebサーバ立てている人はeRubyが面白いですよ。 ASPのようなHTML埋め込みスクリプトです。
58 :
名無しさん@お腹いっぱい。 :2000/09/02(土) 05:09
わりとよく使われているライブラリの簡単な説明(どんなことができるか、何が必要か、など)がまとめてあるページがあれば けっこう便利だと思う。ML入ってるんだけど、話題についてけないことが多いんだよね 公式サイトのRAA(Ruby Application Archive)は、カテゴリ別に分けてあるだけだから内容まではよく分かんないんだよね。
59 :
58 :2000/09/02(土) 05:12
ごめん、ヨコに長くしすぎた しかも、文章ヘンだし。 もう寝ます
60 :
55 :2000/09/02(土) 05:15
いや、すでに標準ができてるものに追従するんじゃなくて まだ標準が決まってない技術でアピールしないと・・・
61 :
名無しさん@お腹いっぱい。 :2000/09/02(土) 05:20
perl スクリプトを ruby に変換してくれる ruby スクリプトって 以前はあったと思うんですけど、なくなったんでしょうか?
62 :
1 :2000/09/02(土) 16:19
>>58 そういうページも作る予定みたい。
今のところは標準ライブラリのリファレンスのみですけど。
作られなかったら私が作ります。その程度ならなんとか。
>>60 とはいってもそこまで画期的なことはそうそうできませんよ。
既存分野で、開発言語をRubyにリプレイスすると開発効率が
あがるってだけでもそこそこのアドバンテージになると思う。
まあ、Rubyの対象は小さなソフトウェアになるから
2時間かかるところが30分という程度かもしれない。
>>61 csl.toba-cmt.ac.jp/~kiri/ruby/tips/tips_p2r.html
RubyはPerlより高級言語なので変換は難しいそうです(笑
63 :
名無しさん@お腹いっぱい。 :2000/09/02(土) 18:47
>>62 いや、perlでrubyのインタプリタをつくるのだ。
すげーおそいだろうな。
64 :
1 :2000/09/02(土) 19:35
>>63 それだったらPerlプログラムをRubyで扱うための
Ruby用拡張ライブラリを作るべきですねー。
そうしたらPerlなどRubyの一オブジェクトと化します(笑
さあPerlのソースをレッツハック!
65 :
55 :2000/09/02(土) 20:48
>とはいってもそこまで画期的なことはそうそうできませんよ。 >既存分野で、開発言語をRubyにリプレイスすると開発効率が >あがるってだけでもそこそこのアドバンテージになると思う。 そういった利点だけでは決して広まらないことはすでに歴史が証明している。
66 :
名無しさん@お腹いっぱい。 :2000/09/02(土) 21:27
67 :
58 :2000/09/06(水) 04:31
お願いします〜 > 62さん そういえば、「256倍使う本」の話題がむかし ML で出てたと思うんだけど、 お流れになっちゃったのかな?
68 :
名無しさん@お腹いっぱい。 :2000/09/06(水) 21:52
>>64 でも、perlでrubyのインタプリタつくれば、perlしか
使えないプロバイダでもrubyで書いたCGIをじっこうできるから
そっちのほうがrubyの普及にやくだちそうだ。
69 :
名無しさん :2000/09/10(日) 23:23
Stringクラスのオブジェクトを、IOクラスのオブジェクトみたく ストリーム的?に扱う事って出来る? readとseekが出来て、終端に達したら「EOFナリよ」と教えてくれるようなのが 希望なんだけど。
70 :
名無しさん@お腹いっぱい。 :2000/09/11(月) 16:05
自分で希望通りのものを書きましょう。そしてできたら 公開してください。 でも、その程度ならすぐできそう。ruby-listにでも投げ ればきっとすぐに返ってくるでしょう。
71 :
1 :2000/09/12(火) 04:21
>>68 あぅ。確かに。
誰か作ってくれませんかね。他力本願。
>>69 Stringのサブクラス作るのはいかが?
読み込み位置のポインタをインスタンス変数として持つような。
72 :
1 :2000/09/12(火) 05:08
73 :
名無しさん :2000/09/19(火) 12:27
ruby で 数字の文字列と整数を同じように扱うにはどうすればよいでしょうか?いちいち String か Fixnum かを判定してから "119".to_i とか 119.id2name とかするのは面倒くさいのですが、、
>>73 数字の文字列オブジェクトと整数オブジェクトを一緒くたに扱う前に、
どちらか一方に変換しておけばいいと思いますが?
75 :
名無しさん :2000/09/20(水) 21:17
Ruby 本の p.p.367 にあるように、eval を使えばよさそうです。
76 :
名無しさん@お腹いっぱい。 :2000/09/21(木) 01:34
メソッドの戻り値を配列かスカラーか呼び出し元により変更する方法はありますか? Perl でいうところの wantarray みたいなやつです。
77 :
名無しさん :2000/09/21(木) 01:36
1.6.0って1.4.6と比べて、主にどう変わったの? クラス変数を導入したのとバグフィックス?
78 :
名無しさん@お腹いっぱい。 :2000/09/21(木) 03:27
perl で、 sprintf "%.02d%.02d%.02d %.02d%.02d%.02d", reverse(@t); というふうにやるのを ruby ではどうすればよいでしょうか。 sprintf "%.02d%.02d%.02d %.02d%.02d%.02d", t[5], t[4], t[3], t[2], t[1], t[0]; だと、配列の数が増えてくるとめんどくさいし、t.reverse を表示したい場合もきびしいです。
79 :
1 :2000/09/21(木) 04:42
80 :
名無しさん@お腹いっぱい。 :2000/09/21(木) 05:17
>>79 すいません、String クラスか Array クラスか、でした。
tmp = ""
tmp = method(val)
のときは tmp = first + "-" + last という文字列を、
tmp = []
tmp = method(val)
のときは tmp = [first, last] という配列を返すようなやつです。
81 :
名無しさん@お腹いっぱい。 :2000/09/21(木) 05:38
>>79 さん
!!それでできました!
でも実は
sprintf("%.02d%.02d%.02d %.02d%.02d%.02d%s", *t.reverse, if @gmt then " GMT" else "" end)
のようにもうひとつ引数を増やしたいんです。このままだと、
parse error (SyntaxError)
となります。と思ったら、
sprintf("%.02d%.02d%.02d %.02d%.02d%.02d%s", *t.reverse.push(if @gmt then " GMT" else "" end))
こうすればできました。でもなんか変則的だなぁ。
こういうのは ruby スクリプトとしてまっとうなものなんでしょうか?
82 :
77 :2000/09/21(木) 05:55
>79 結構変更点あるんだねぇ。 リストからだけじゃよく分かんない項目も結構有るけど、Linux Magazine 11月号 発売以前に誰かが解説文書を出してくれる事を期待してみる。 #マニュアル更新に合わせて、FAQも更新して欲しいな。あれは結構役に立つし。
83 :
名無しさん@お腹いっぱい。 :2000/09/21(木) 11:30
ruby の socket は、close し忘れたときも、確実に close してくれるのでしょうか? ruby 本の p.p.386 にあるように、ensure やファイナライザを用いて、確実に close されるようにする必要はあるのでしょうか?
84 :
名無しさん@お腹いっぱい。 :2000/09/21(木) 16:43
ruby スクリプト内に POD 形式のマニュアルを埋め込むことは なされていますか?
85 :
名無しさん@お腹いっぱい。 :2000/09/21(木) 18:25
perl での $c->$command(); みたいなことをrubyではどうすればよいでしょうか? eval("#{command}") で一瞬できたかに見えたんですが、commandで呼び出されるメソッドはevalによりすでにコンパイルされているからか あとからそのメソッドで使われるインスタンス変数を変更できません。(オブジェクト生成時の値が使われるようです) 何かうまい方法はないでしょうか?
86 :
85 :2000/09/21(木) 21:29
勘違いでした。すみません、、
87 :
1 :2000/09/21(木) 22:56
>>80 そーゆー器用なことはできないと思います、たぶん。
(レシーバにコンテキストを表現するインスタンス変数でも持たせればできますが)
受け取り側で加工するのが無難かと。
def foo; return "aaa", "bbb"; end
tmp = []
tmp =
case tmp
when String; first, last = foo; first + "-" + last
when Array; foo; end
p tmp #=>["aaa", "bbb"]
>>81 動くならまっとうなんじゃないでしょうか :-p
if文まるごと引数に入れると長くなるので、
sprintf("%.02d%.02d%.02d %.02d%.02d%.02d%s", *t.reverse.push(@gmt ? " GMT" : ""))
とすると良いかも。
88 :
1 :2000/09/21(木) 23:44
89 :
名無しさん@お腹いっぱい。 :2000/09/22(金) 00:00
nntp クライアントのライブラリはけっこう前から多くの人が作っているようですが、 手持ちの ruby 1.4.3 にはどれも入ってないし、www.ruby-lang.orgのアーカイブのところにもないようです。なんででしょうか? net/smtp.rb, smtpclient.rb, net/pop.rb, popclient.rb, net/imap.rb とかはあるのに。ひいきだ。
90 :
80=81=83=84=85=86=89 :2000/09/22(金) 01:00
91 :
68 :2000/09/22(金) 05:39
>>90 サーバからlistしてxoverしてarticleでひっぱってくる
とこまではrubyで作った。あとは未読管理とユーザ
インターフェース。でも、rubyってtimeout処理
するのにスレッド使わないとできないから遅くなり過ぎた
のと、スレッド間の記事の受渡しにキューを使ったら,
受取側でせっせとキューを空にしているのにもかかわらず
rubyのプロセスサイズがガンガン上がっていくのに
我慢できずに放り出した。もうちょっとGCのタイミング
をなんとかしてほしいなぁ。
92 :
68 :2000/09/22(金) 05:45
そういえば,NNTPってサーバとクライアントのやり取りでの 時間的な冗長度が高いから、スレッド分けて並列化すると 結構速くなるもんなんだけど、rubyの場合はOSレベルの スレッドじゃなくて一つのインタプリタ中の実行単位が 分割されるだけだから必ずしも速くならないってのも ちょっと感覚が違った。実測してもそうだったし。 それともライブラリ中のどこかにI/O周りでもブロックする メソッドがあって組み方次第で速くなるのかな??
93 :
90 :2000/09/22(金) 08:34
listとかxoverとかarticleはpostのあとかnewnewsで新しい投稿があるときだけするようにして、ほかの時はローカルに保存したキャッシュから読むようにするとだいぶはやくなりましたよ。30件同時に表示するんですが、10秒かかっていたのが1秒以下になりました。 今作ってるのは、スレッド(これはスレッドプログラミングのことじゃなくてBBSでいうところのもの)の生成もpostの時にやろうと思うのですが、問題はエクスパイアやほかのサーバでキャンセルされた記事をどうしようかって所ですね。
94 :
68 :2000/09/22(金) 21:20
あ、そういうNNTP`クライアントを組む上でのロジック的な 「遅い」じゃなくて、rubyの特性として (1)スレッドのたち上げが続くと遅い。 (2)マルチスレッドにしても速くなるわけではない。 ってのがいいたかったん。ようするにrubyに対する 愚痴ね。
95 :
名無しさん@お腹いっぱい。 :2000/09/22(金) 22:06
>(2)マルチスレッドにしても速くなるわけではない。 こ、これってrubyのせい?
96 :
68 :2000/09/22(金) 22:25
>95 だからぁ〜、「rubyの場合はOSレベルのスレッド じゃなくて一つのインタプリタ中の実行単位が 分割されるだけだから必ずしも速くならない」 って書いているのに。rubyのマルチスレッドって 並列化によるスピードアップの使う物じゃなくて どちらかというと、性質として並列性のあるアル ゴリズムをすっきりと書くためだよね。そういう 言語としての指向というかそういうものを実感 しているわけさ。
97 :
名無しさん@お腹いっぱい。 :2000/09/23(土) 02:30
>>96 並列化すればなんでもかんでも速くなる訳じゃないし、
I/O待ちとかのdead timeを抑える意味ではユーザレベル
スレッドでもそれなりに有効だとは思うけどな。
どうスレッド分けするかでも違ってくるし。
まぁ96はその辺わかって書いてるのかもしれないけど。
でもメモリ喰いまくるってのはどうしようもないか。
98 :
名無しさん@お腹いっぱい。 :2000/09/28(木) 19:04
お世話になっております。ちょっと後方参照のことでお聞きしたいのですが、
line.gsub!(/<([\w\-]+([\.\$%][\w\-]+)+@[\w\-]+(\.[\w\-]+)+)>/, %Q(
<\\1> ))
のように、#{}のなかで\1を取り出すにはどうしたらよいのでしょうか?
このままだと、'\1'という文字列をURLエンコードした%01が取り出されます。
2行にしたほうがいいかな。
99 :
名無しさん@お腹いっぱい。 :2000/09/29(金) 11:50
100 :
ぎこるび :2000/09/29(金) 18:12
101 :
名無しさん@お腹いっぱい。 :2000/10/01(日) 07:42
直前の評価値を取得する変数か関数はないですか? 例えば a = 1 a = a + 3 p a を 1 @+3 p @ の様に書けると少し嬉しいのですが
102 :
名無しさん@お腹いっぱい。 :2000/10/01(日) 12:23
C レベルでも無いと思う。 つーか、そんな読み難い書き方して何か嬉しいのか…
103 :
101 :2000/10/01(日) 13:37
電卓として使う場合や使い捨てスクリプト書くときに 単純にタイプ量を減らしたいだけなんです Mathematicaにあって結構便利だったので def foo 1 end とかやったときどこかに1が保持されてるはずなんだけどな〜
104 :
名無しさん@お腹いっぱい。 :2000/10/01(日) 14:19
>>101 どっかで見たような無いような文法だな...
GNU dcとかそうだっけ?
106 :
名無しさん@お腹いっぱい。 :2000/10/01(日) 23:37
>Raccを使ってプリプロセサを作るといいと思います。 なんだか話が大げさになってきました。 直前の評価値を参照する目的はちょっとだけタイピングの手間を省きたいというだけです。 yacc覚えてracc覚えてプリプロセッサ作って毎回マクロ置換して、 というのは手間がかかりすぎです。 標準的なRubyの文法の範囲内でできなければあきらめて 普通に書くしかないなという程度の話なのです。
5時間もねばりながら吐く文面ではないとおもうが>106
>>106 良く考えたら、わざわざRacc使わなくても自分で適当なフィルタ作ればいいですね。
数値が単独で出現したら代入文に書き換える。
@が現れたら直前に現れたレシーバ(オブジェクト)に置き換える。
適当な仕様を決めて、フィルタをかけやすい書き方(一々改行するなど)
にすればそれほど難しくないかと。
置換はシェルスクリプト作ればコマンド一つで変換・実行ですし。
『Rubyなんてどうでもいいよ』なんて思う
110 :
名無しさん@お腹いっぱい。 :2000/10/02(月) 23:40
>109 インタプリタのソース読んでみたいと思いません? lisp以外であんだけスラスラ書ける言語も他にないよ。
111 :
名無しさん@お腹いっぱい。 :2000/10/03(火) 01:36
>>108 フィルタですか。なるほど。
でも言語仕様の拡張はやっぱり抵抗があるので、
試しにIRBを改造してみようかなと思います。
ありがとうございました。
112 :
名無しさん@お腹いっぱい。 :2000/10/03(火) 03:11
113 :
名無しさん@お腹いっぱい。 :2000/10/06(金) 10:26
オブジェクト指向とは、フレームワークやクラスライブラリ 作る人(グル)がしっかりしてれば、一般のプログラマはタコ でもよいという長年の知恵から産まれた。 それで、グルとタコの関係をどうするかが言語の特色になって んだよね。 C++はグルが全部仕切れば、タコがどれだけバカなことやっても 大丈夫。ただ、グルに要求されるレベルがとてつもなく高い。 それと、よそから部品を買ってこようとすると、グルの思想が コンフリクトしておかしくなる。(シングルグル言語) Javaは部品を外から買ってきても、システム全体の品質が落ちない。 (マルチグル言語)。だが、グルがどれだけ凄くても、性能や生産性 が一定以上にならない(一定以下にもならないが・・・) Rubyは、マルチグル言語でありながら、グルが凄ければその凄さの 分だけ凄いシステムができる。グルの創造性を殺さず、複数の教え が混在できる。 XPのKent Beckのようなグルがなだれこんでくるから、これから Rubyはブレークするよ。
114 :
名無しさん@お腹いっぱい。 :2000/10/06(金) 10:48
>>113 これは比較的規模世大きいプロジェクトについて言っているのだと思いますが、
「Rubyは大規模開発には向かない。かもしれない」というようなことを
以前まつもとゆきひろさんが言っていました。
私も型を明示しないという仕様は一定以上の規模になると
デメリットに変わりうるのではないかと懸念しています。
特にメソッドの戻り値についてはコードをみても何を返しているのか
よくわからなくなる場合が多いです(引数は識別子の名前で何となく判別可能)。
・何の型のインスタンスを返しているのか
・何も返したくないのか(nilで潰すのを忘れている)
・本当に戻り値としてnilを返したいのか
完全なドキュメントを用意すればいいというだけのことかもしれませんが...
>XPのKent Beckのようなグルがなだれこんでくるから、
これ本当ですか?ruby-talkにでてるのかな。
ruby unitもさらに発展しそうですね。
>特にメソッドの戻り値についてはコードをみても何を返しているのか >よくわからなくなる場合が多いです 型の無い言語はみんなそうですよね。 そして、欠点が利点と表裏一体なのも、すべての言語で共通、とか。
116 :
名無しさん@お腹いっぱい。 :2000/10/06(金) 11:33
>> 113 Javaはマルチグルというより、 Sunがグルになって全部仕切るから複数の部品(世界観)が共存できる ということではないでしょうか? Sunの世界で限定されるのは嫌だけど、 これからのJavaはIBMが仕切ってしまうのではないかと思います。 IBMの掌ならば、充分踊りがいがありますから、それで充分だと思います。
117 :
名無しさん@お腹いっぱい。 :2000/10/06(金) 12:03
>> 114
型つきの言語がコンパイルでやることを、単体テストでやろうと
いうのがXP。だから、XPではソースをちょっとでもいじったら、
全モジュールの単体テストをすることになってるみたいです。
静的な型を持つ言語の美しさはわかるけど、Eiffelが流行らなか
ったことを考えると、やっぱりXPの考え方の方が現実的なのでは?
"I love it. Conceptually it is really clean, and sweet."
--Kent Beck, author of Extreme Programming
http://cseng.aw.com/bookdetail.qry?ISBN=0-201-71089-7
118 :
名無しさん@お腹いっぱい。 :2000/10/06(金) 12:21
XPとunitの違いの説明を求む! 先日unit覚えたばっかなのに乗り換えねばならんのか(^^;;
119 :
名無しさん@お腹いっぱい。 :2000/10/07(土) 16:29
>>118 まだXPもRubyも勉強中なので、違っているかもしれませんが、
unit testを重視して、先にテストルーチンを書いたり修正のたびに
必ずunit testを実施するというは、XPの一番基礎となる考え方だと
思います。
そして、JUnitなどのunit testライブラリはそれをサポートする
ものじゃないでしょうか。だから、「unitからXPにのりかえる」
必要は全然なくて、unitを使っているならすでにXPの道を一歩
踏みだしたと言っていいのではないでしょうか?
http://www.esm.co.jp/eXtremeProgramming/IsDesignDead.html ここにある「できることを増やすXPの実践」という所に、unitと
XPの関係というか、unitがXPの中でどういう位置にあるかがよく
わかります。
120 :
119 :2000/10/07(土) 16:35
ここにある「できることを増やすXPの実践」という所に →ここにある「できることを増やすXPの実践」という所を読むと でした。
121 :
118 :2000/10/09(月) 14:41
>>119 さん情報ありがとうございます
いきなり「ソフトウェア設計など消えうせろ」から始まって
びっくりしましたが(別に肯定しているわけではありませんが)、
かなり興味を持ちました。
XPを勉強中ということなのですが、何を読まれてるのでしょうか?
参考文献、サイトなどがあったら教えてください。
122 :
119 :2000/10/09(月) 23:00
123 :
名無しさん@お腹いっぱい。 :2000/10/11(水) 19:15
age
125 :
名無しさん@お腹いっぱい。 :2000/10/15(日) 22:11
まつもとさん、ruby-talk で let の導入を許容するような発言あり ましたね。ruby の中で唯一スコープ作れないのだけが耐えられなか ったから、もし implement してくれたら嬉しいなあ。構文はどうす るのかな? こんな感じ? a = 1 p a #=> 1 let(a) do |a| a = 2 p a #=> 2 end p a #=> 1
126 :
名無しさん@お腹いっぱい。 :2000/10/15(日) 22:37
>>124 初版に飛びつくか、四版あたりまで待つか、それが問題だ。
127 :
名無しさん@お腹いっぱい。 :2000/10/15(日) 23:27
perlからrubyへの変換の話題がありましたが、rubyからperlに変換するやつはありませんか? ruby>Cがあるんだからと探しても見つかりません・・・教えてください。 「256倍」買いました。MSruby版かぁ。でも、なかなかおもしろかったですよ。 でも、ユーザーガイドから既出2冊の本の間の、もっとやさしい本がほしいな。
128 :
名無しさん@お腹いっぱい。 :2000/10/16(月) 21:02
最近のruby-talkの盛り上がりはどうよ? 良さをわかってくれてる海外の隠れファン密かにかなり増加し てると思うぞ。
net/http.rbのget2ってネーミングはなんとかならんかなぁ。 なんどか名前変えようという話が出てたと思うんだけど、ふむぅ。
130 :
名無しさん@お腹いっぱい。 :2000/10/17(火) 00:25
>>129 net/http は全体的に「この作りどうにかならんかなあ」って感じで
すね。作者のAさんには悪いけど、、、使いにくいから自前で一通り
作りなおしちゃった。
131 :
129 :2000/10/17(火) 00:43
>>130 実はおれももう自前でやってます。みんなそんな感じで車輪の再発明やってんだろな。
perlを蹴落とすんだったら、標準ライブラリ磨き上げるのが鍵だとおもうんだけど。
ああいうコミュニティベース(というか悪くいうと慣れ合い)で開発していると
なんか文句つけにくいんですね。
132 :
名無しさん@お腹いっぱい。 :2000/10/17(火) 02:04
>>131 やっぱそうですよね。
でも 129 はちょっと言い過ぎだったかな。モジュール以前に HTTP の仕様
自体適当すぎるのが問題なんですよね。あの仕様では皆が満足するようなイ
ンタフェースに仕上げるのは無理があるような気もします。
129 見てたらゴメンナサイ>Aさん
129 => 130
134 :
名無しさん@お腹いっぱい。 :2000/10/17(火) 04:56
その辺の理由は書かずに「俺も作ってみたんだけどどう?」って言って 出せばいいんじゃないの? 案外本人も「メンテする時間ないし、誰かもっといい奴で置き換えて くんないかなぁ」なんて思ってるかもしれないし。 思ってないかもしれないけどね。
>>131 >perlを蹴落とすんだったら
おー、すげー鼻息。もっと気楽にいこうや。
って言っている俺はPerl使い。つーかスパイ?
136 :
名無しさん@お腹いっぱい。 :2000/10/17(火) 10:49
137 :
名無しさん@お腹いっぱい。 :2000/10/17(火) 10:49
以前どっかで出てた気がするけど、Here Document のインデント 機能欲しいなあ。まつもとさんは自前の関数書けばいいだろって 言ってたけど。 loop do foo <<+"FOO" easy! elegant! fun! FOO end つー感じ?
138 :
名無しさん@お腹いっぱい。 :2000/10/17(火) 17:05
local-variable のスレッド、まつもとさんなかなか折れないね ^^; ruby-list の過去ログで「哲学」とまで言い切ってたから、やっぱり かなりのこだわりがあるのかな? ruby-talk で発言してない人達も 含めると、変更に賛成の人の方がかなり多そうだけど。 ローカル変数が生成されない繰り返しは for や while やらの制御構 造だけで充分じゃないのかなあ。非互換の変更をするならまだ普及し 始めの今のうちだからなんとか…。
139 :
名無しさん@お腹いっぱい。 :2000/10/17(火) 23:48
>>136 Rubyの開発はVisual Studioに統合してやってるよ。
SourceSafeも使えるのですごい楽。
あとWZ Editorの見出しを以下のように設定すると
簡易クラスブラウザになるよ。
[見出し1] ^class|module
[見出し2] ^\s*(def.*)
140 :
名無しさん@お腹いっぱい。 :2000/10/18(水) 15:13
>>139 Rubyでプログラミングするので一番いいのはEmacsでしょうね.
WindowsならMeadowか.
でも,Windowsユーザが使うには厳しいとこがあるかも.
まだxyzzyならWindowsとの親和性は高いけど,やっぱWindowsの
キーバインディングとは似てもにつかない.
Windows風に変更できるけど,変更するとxyzzyの便利さが損なわれる.
WindowsでEmacsみたいなにハッカー御用達のエディターってないのかな.
できればオープンソースの.
142 :
名無しさん@お腹いっぱい。 :2000/10/20(金) 14:58
age
143 :
名無しさん@お腹いっぱい。 :2000/10/23(月) 03:35
Emacsのruby-modeは $' なんてので色づけミスするな。 直そうと思ってもlispはさっぱり読めないし。
144 :
名無しさん@お腹いっぱい。 :2000/10/25(水) 14:07
145 :
ぎこるび :2000/10/25(水) 16:21
>>144 勢い余って三省堂でネット注文しました。
学校の書店においてなかったし(256倍はあったのに)。
MLではまだ話題になっていないけれど出来はどうなのかな。
147 :
名無しさん@お腹いっぱい。 :2000/10/26(木) 16:15
>>144 買った人、感想・レビューをお願いします。
Ruby本(まつもとさんが書いたやつ)は持ってるんだけど、
まだ途中までしか読んでない(わら
これ1冊あれば、十分かな。
148 :
>147 :2000/10/26(木) 20:42
買ったよ。 とりあえず持ちやすい読みやすい。 あとネットワークに一章割いてるね。 Ruby本読んじゃった人には必要ないかも。 でもまあお布施って事で。
まったくのプログラミング初心者が この本読んで立派なObjective Rubyistに なれるかどうか興味あるね。 誰か実験台にならないかな?
150 :
名無しさん@お腹いっぱい。 :2000/10/27(金) 00:53
パール、パイソンに加えて スクリプト言語を3個も覚えるのは時間の無駄だろうか。
>150 PythonのOOPとPerl臭さ(なんじゃそら)が理解できていれば、 Rubyはすぐ覚えられますよ。 ただ用途が完全にかぶってるので使い分ける意味がないかも...
152 :
>147 :2000/10/27(金) 21:46
買いました。300ページ以上もあるのにこの内容なら安いので買い!でせう。 でも全くのプログラミング初心者だとどうかな? 私はOOPに一度挫折して(藁 この本を見たから、割とすんなり 頭に入ったけど。名著には違いない。
153 :
148 :2000/10/28(土) 13:19
154 :
anon :2000/10/28(土) 17:10
>>153 FYI. 8キエ、瞬by-list ML、ヌココニノシヤ、ォハ鄂ク、キ、ニ、、、ソ、隍ヲ、ヌ、ケ。」
O'Reilly Japan、ホヒワ、筅ス、ホチー、ヒココニノシヤ、鄂ク、キ、ニ、、、゙、キ、ソ。」
、ソ、タ、キML、タ、ネ。「サイイテ、キ、ニ、、、?ソヘ、ォ、゙、皃ヒクォ・チー、ォ、ニ、、、?ソヘ、キ、ォオ、、ナ、ォ、ハ、、、ホ、ヌ。「、ス、ウ、マイ�チア、ホヘセテマ、「、熙ヌ、キ、遉ヲ、ヘ。」
、ウ、ヲ、、、ヲキタ゚ナェ、ハーユクォ、マ。「、サ、テ、ォ、ッ、ハ、ホ、ヌML、ヒナ熙イ、ニカオ、ィ、ニ、「、イ、ニ、マ、マ、、、ォ、ャ。ゥ>153
155 :
名無しさん@お腹いっぱい。 :2000/10/28(土) 17:17
FYI. 8月末ごろruby-list MLで査読者を公開募集していたようです。 O'Reilly Japanの本もその前に査読者を募集していました。 ただしMLだと、参加している人かまめに公開ログを見ている 人しか気づかないので、そこは改善の余地ありでしょうね。 こういう建設的な意見は、せっかくなのでMLに投げて教えてあ げてははいかが?>153
156 :
148,153 :2000/10/28(土) 18:29
>>155 僕もMLチェックしてるけど、査読の公開募集はちょっと違うんだよね。
結局人数が限られるし、いちいち名乗らないと参加できないし。
MLで無名な人(特に初心者)ってどのくらい参加したのかな?
最近オープンソース関連の書籍がそのままwebで
公開されるってのが増えてきているのだけど、
Rubyコミュニティにその先頭を行って欲しいなと思わないでもない。
それに必要な情報に金を払うのは吝かではないのだけど、
今時技術文書を紙のみで提供して、オンライン版がないってのは
どうにも不便なんだよね。せめてCDには入れて欲しかった。
>せっかくなのでMLに投げて教えてあげてははいかが?
そりゃだめだよ。身元割れちゃうじゃん。
とてもじゃないが2ちゃねらーであることを
カミングアウトする勇気はない(藁 <-コーユーノカクカラダメナダヨナ <-オマエモナー
157 :
名無しさん@お腹いっぱい。 :2000/10/28(土) 23:47
158 :
名無しさん@お腹いっぱい。 :2000/10/29(日) 02:22
・・・・ るびー入門書発売、著者まつもとのおじちゃん てな具合に、もう一度言ってみる(寂)
159 :
名無しさん@お腹いっぱい。 :2000/10/29(日) 02:30
rubyを普及させたいなら、英語で海外に向けてどんどん情報を 出さないとだめだと思う。
161 :
名無しさん@お腹いっぱい。 :2000/10/30(月) 19:42
もっとlispに近づけてくれえっっ!!
括弧の省略機能 萌え〜!!
163 :
>161 :2000/10/30(月) 21:51
emacsのような素晴らしいhacker's toolを生み出したLispとRubyを 一緒にしない方がいいですよ。
パーラーは別スレ作ってやってね
165 :
名無しさん@お腹いっぱい。 :2000/10/30(月) 23:50
括弧省略ってよみづらくない?
166 :
>165 :2000/10/31(火) 00:02
嬉しがって使いすぎると確かに読みづらいね。 僕は式に占める括弧の文字数の割合が 無視できないくらい大きくなったときに使うことにしてる。 p a とかね:-)
Ruby で C の for 文にあたるものはないのですか?
Ruby で C の for 文にあたるものは無いのですか?
Rubyのfor文じゃダメか? whileでっ代用する手もあるぞ。
>>167 for(i=0; i<=10; i++) printf("%d\n", i);
と以下が大体等価です。
for i in 0..10; print "#{i}\n" end
i=0; while i<=10; print "#{i}\n";i+=1 end
-----
0.step(10,1){|i| print "#{i}\n"}
0.upto(10){|i| print "#{i}\n"}
-----
(0..10).each{|i| print "#{i}\n"}
171 :
名無しさん@お腹いっぱい。 :2000/10/31(火) 02:34
Windowsでの普及をおろそかにしてる時点でダメダメだな。 Rubyは流行らないよ。
perlやJavaはWindowsで普及してるのか・・・
Windows版エントリーパッケージ、ActiveScriptRuby、 Win32OLE、DirectDraw for Ruby 、Apollo、VisualuRuby。 それなりにコマはそろっているんですけどね。 ドキュメント書きまくって宣伝しまくるしかないのかな。。。
Rubyは悪い言語じゃないけど、perlとかぶってるから意味ないね。 まあ、日本人がメンテしてるから、要望とか反映しやすいかもね。 diamondに期待(っていうかあんのか? ちなみにaquamarineはオレの誕生石だ。
なくてもそれほど不便ではないけど、Cのfor文にあたるものは 何でないんだろ?あると便利だと思うけどな。別にいいけど。 レスどうも。
awk2perlみたいに、 perl2rubyがあれば普及するよ。 無いの?げぇー。
177 :
名無しさん@お腹いっぱい。 :2000/10/31(火) 07:28
>171 rubyがメジャーになったら、きっとMSの匿名さんが移植してくれるよ。
178 :
>176 :2000/10/31(火) 09:06
あったような気がするけど?
179 :
名無しさん@お腹いっぱい。 :2000/10/31(火) 20:43
>>174 perlと被ってねえだろ。
rubyがカバーできる領域の方がかなり広いと思うが。
ほぼ100%被ってるでしょ。 綺麗か、汚いかの違いだけ。
181 :
名無しさん@お腹いっぱい。 :2000/10/31(火) 21:42
rubyの方がperlより高速です
>>175 たぶんOO的でないからでしょうね。
>>176 んじゃあ、ここは一つ作ってください(笑)
>>181 一般的には Perl>Ruby>Python の順に速いみたいです。
Ruby で無限ループはどのように書くのでしょうか。 loop の使い方を教えて下さい。
185 :
名無しさん@お腹いっぱい。 :2000/11/01(水) 00:21
>>167 Cのfor文かぁ。多分必要ないんじゃないかな。
しばらくrubuでイテレータ使ってコード書いてて、そのあと
Cに戻ってコード書いたらfor文使った繰り返しがすげー煩わしくなったよ。
とくにfor(int i = 0; i < length; i++)みたいなのはね。
で、Cのfor文の用途からこういう定形的な繰り返しの用途を
イテレータに任せたら、あとの用途は別にわざわざ実装するほどのものじゃないでしょ。
186 :
名無しさん@お腹いっぱい。 :2000/11/01(水) 00:44
>>180 綺麗か汚いの違い *だけ* っていうけど相当なもんよ。「ほぼ 100%
被ってる」ってどこが…。perl6 がどう進化するのかまだわからない
けど、今のところ perl は「強力な sed/awk」の代わりにしかならな
いよ。規模が膨らんでくるとすぐに目も当てられない状態になる。
# 少なくとも現 perl の適用範囲は python その他に比べてかなりズ
# レてると思う。
>>184 無限ループはwhileかloopで行ないます。
while true
...
end
loopはブロックをとるメソッドなので、
loop {|var| ...} か loop do |var| ... end です。
どっちも抜ける時はbreakなりraiseなりで抜けてください、
>>186 >すぐに目も当てられない状態
よくわからないら、もうちっと具体的に言ってくれ。
189 :
>186 :2000/11/01(水) 12:44
どこがどうずれているか説明して。
190 :
180>186 :2000/11/01(水) 22:09
>188,189 一定以上の規模のプロジェクトでは文法の汚い perlを使いたくないってだけの事でしょ。 使いたきゃ使ってかまわんよ。 逆に綺麗な文法とOOPを備えたRubyはどうなんだろ。 正直言って、懐疑的なんだよね。 理由は以下の通り。もちろん具体的な根拠はないのだが... 1.開発事例がないこと。 2.コンパイラと比べて速度が遅い・メモリ使用量が多い (完成間際のパフォーマンスチューニングのコストが高い) 3.統合開発環境などのツールによる支援が受けられない 4.型チェックのないことが不利に働く(unit testがあったとしても) 4.については今実験的にとある分野のapplication frameworkを 作ってるんだけど、想像以上に脳が型によるヒントと コンパイラの型チェックに依存してしまってるみたいで、 どうもにやりづらい。 # そういえば以前MLでbig project教えろって # 聞いてた外人さんにはなんて答えたんだろ。
191 :
>190 :2000/11/02(木) 06:46
型チェックは実装者側の都合だろ?昔のメモリが極端に少ない時代ならともかく 今時そういう不自由をユーザに強いるなよ。もちろん、任意選択なら なお良いが。Cでプログラム覚えた人間はその発想からなかなか抜け出せない ってのが問題だったりするんだろうな。
192 :
名無しさん@お腹いっぱい。 :2000/11/02(木) 07:22
型チェックがあったほうがバグが減りそうだが、どうか。
194 :
名無しさん@お腹いっぱい。 :2000/11/02(木) 08:48
型チェックは「実装者側の都合」であり,「ユーザにとっての不自由」
だと思っている191はもっと勉強して出直してくるように.
# 例えば米澤・柴山著「モデルと表現」(岩波)の前半など.
ある程度大きなプログラムを組むようになると,プログラマ自身が型
を意識することや,コンパイラによる支援(静的型検査・型推論)は
ものすごく重要.190のいってるのはそういうことでは.
逆に小さなプログラムをちょこっと書くときは邪魔に感じることも多
い.Rubyの用途(Perlの置換え?)を考えれば静的型検査がないのも当
然という気もする.フレームワークなんか作るんならJava使ったほう
がいいんじゃないの?
>>190
195 :
名無しさん@お腹いっぱい。 :2000/11/02(木) 09:57
実際にRubyを動かしているサイトってどこがあるんでしょう? 個人で掲示板を使っているぐらいしか無いと思いますが。 今更速度やサーバーに対する負荷でPerlより劣るRubyを使う理由が 解りません。 PHPやJavaと言った書きやすく、速度でも優れたWeb系開発言語があ りますが、Ruby使いの人達は何故Rubyを使いますか? 個人利用という理由ならわかりますが。
196 :
>195 :2000/11/02(木) 10:28
なんとなく。 国産だし。 俺はPerl,Javaだけど。 でも、優れている点もあるらしいよ。 使ったこと無いんで良く知らんが。
197 :
名無しさん@お腹いっぱい。 :2000/11/02(木) 10:30
>実際にRubyを動かしているサイトってどこがあるんでしょう? www.kondara.org ... RuBBS >これ読んで、多言語に対する尊重の念すら感じられないって >ところに嫌気が差してやめた。 あ、内心「オレが一番」って思うべきよ。漢のロマンだから。 # ちなみにうちはC++。何でかっていうとデジタルi/oボードや # RS485通して制御する装置のコントロールパネルをNetScape # に出したいから。PHPは嫌い。 うーん、言語なんて気分転換に切り替えればいいのよ。 毎年新しい言語導入しないと気分的につまんないです。
198 :
名無しさん@お腹いっぱい。 :2000/11/02(木) 11:46
>>193 実績のない ruby と比べるからいけない。
Python と比べてみよう。たとえば Zope のようなものを Perl で書くと
なると、もちろん頑張れば書けるだろうが、それをもって「今の所 ** で
できて Perl で出来ないってことが見つからない」などと言われても困る
のではないかな。
>>191 ,192
静的型チェックについては ruby の利点と trade off なので仕方ない。
「実装者の都合」という言い方は違うと思う。lisp だって同じだよね。
動的型チェックは任意選択の文法として導入してしまえばいいと思うん
だけど、作者は慎重らしい。
199 :
190 :2000/11/02(木) 12:20
>4.型チェックのないことが不利に働く
はもちろん「有利に働くのは小規模なとき」ということ。
>198
>動的型チェックは任意選択の文法として導入してしまえば
それほど継承に依存しない点や特異メソッドの
ことなどを考えると文法チェックは半端な気がする。
これについてはもう割り切っちゃってる(というかあきらめてる)。
全メソッドunit testするのだ!
http://www.jp.ibm.com/developerworks/linux/001027/ruby_qa.html まつもと氏とPerl開発者の対談で、下の方に将来の高速化と、
Perl,Pythonコミュニティに謝意を表してるとこが載ってる。
(しかし何となく皮肉に聞こえるのは気のせいか?)。
荒れてるスレッドでLispの名前出すなっつーの。
荒れてるってより、活発な議論がされていて、 なかなか好ましい状況でないかい?
202 :
>193 :2000/11/02(木) 17:57
同感。なんか閉鎖的コミュニティって感じでやだよね。
203 :
名無しさん@お腹いっぱい。 :2000/11/02(木) 20:50
>>202 コミュニティの閉鎖性に関しては人それぞれ。俺はML半年くらい読んで
一度も発言していないが閉鎖的とは思わないがな。で、コミュニティが
嫌なのと言語を使いたくないのと何か関係あんの?
MLはレベル的についていけないことが多多あるので、 僕も専らROMです(数回は投稿しましたが)。 よっぽどな内容でない限り質問にも親切に答えてくれますし、 そう悪い雰囲気はないと思います。 あの「他言語との比較」はRuby洗脳のための文章なので、 真に受けずに読むのが正しい読み方ですよん。 ちゃんと「独断と偏見に基づいています」と書いてあるし。
205 :
名無しさん@お腹いっぱい。 :2000/11/02(木) 22:11
なんとなく想像できるな。(w ちなみに俺はRuby信者の発言をよむにつれ、Rubyが嫌いになった。 マイナーが良くにあう精神構造だった。
206 :
名無しさん@お腹いっぱい。 :2000/11/02(木) 22:29
Ruby信者は日本人が作った言語という話題性に惹かれて集まった奴らが 多いんじゃないかな。 そしてそのまま、まつもと信者になる。 Rubyだけ使ってるという人間は90%Ruby信者だろ。
>>Rubyだけ使ってる まぢで?
208 :
名無しさん@お腹いっぱい。 :2000/11/03(金) 00:18
幾ら何でもそんなやついないだろ〜
209 :
名無しさん@お腹いっぱい。 :2000/11/03(金) 00:51
> ちなみに俺はRuby信者の発言をよむにつれ、Rubyが嫌いになった。 何で信者と言語が関係あるんだ? > マイナーが良くにあう精神構造だった。 こういうこと言うあんたの方がよほど偏見に満ちてると思うが。
>>206 自分がRubyに手を染めたのは次の理由からです。
・「日本人が作った言語」なのでドキュメントも日本語で嬉しい
・オブジェクト指向って何よ?という状態だったので、
手軽にオブジェクト指向ができそうなところに惹かれた
で、言語にはほれ込んでますが、開発者にほれたりはしてませんです。
さすがにRubyだけ使っているという人はあんまりいないと思いますよ。
Perlから流れてくる人が結構多いですから(そういう場合やっぱりPerlは捨てられない)。
>>209 ゲイツが嫌いだからWindowsは使わないというのと同じ関係でしょう。
211 :
>210 :2000/11/03(金) 09:45
あんたはまともそうだけど、一部痛い信者がいるからなぁ。 そういう人間はRubyだけにどっぷり染まっているみたいだよ。 そいつらでもPerlで掲示板ぐらいなら作れるんじゃない? 改造ぐらいしか出来なかったりして。
212 :
名無しさん@お腹いっぱい。 :2000/11/03(金) 10:42
痛い信者なんて、良いものにはつき物だよ。
213 :
名無しさん@お腹いっぱい。 :2000/11/03(金) 10:49
Windowsの普及をおろそかにしてるってのは、 ActivePerlみたいに、誰でもお手軽にインストールできない。 初心者への敷居も高いんじゃないか? なんでいちいちcygwinとかを強要するかねぇ。 こんなことやってるようじゃ、Winでの普及は絶望的。
214 :
名無しさんi486 :2000/11/03(金) 13:01
ActiveScriptRubyならmsi一発じゃなかった? そもそもcygwin版とともにvc版もあるし。
215 :
名無しさん@お腹いっぱい。 :2000/11/03(金) 13:09
普通のWindowsな人の普通の作業にはPerlもRubyも使わないようです。 自分がそうでした。
216 :
名無しさん@お腹いっぱい。 :2000/11/03(金) 15:15
>>211 Ruby *だけ* に染まるなんてホントにごくごく一部だろ。そもそ
もRubyだけじゃできることが少なすぎるよ。学んだ最初の言語が
Rubyっていう特殊な人だけなんじゃないの?
何から何までPerlで書く(Perlでしか書けない)厨房や、どんな
に複雑な処理もCで書こうとする奴だって大勢いるわけで、どうし
て「Ruby信者」だけをそんなに協調したがるのか理解に苦しむな。
協調→強調
> 最近の言語だから。
やたらrubyを勧めるからじゃない? 実際鬱陶しいよ。
>>216 > 何から何までPerlで書く(Perlでしか書けない)厨房
これはPerlしか知らないだけで「信者」じゃないよな
> どんなに複雑な処理もCで書こうとする奴
ここで言う「複雑な処理」がどういうものだか知らないが、
オペレーティングシステムのカーネルやコンパイラは
「簡単な処理」なの?
「一々Cで書くのが阿呆らしいような処理」とかなら分かる。
で、これもCしか知らないか、普段Cばかり使っているので結局Cの
方が早く書けちまう(当人にとっては)のいずれかで、「信者」
じゃないだろ。
~
221 :
anon :2000/11/03(金) 18:34
>213 サ荀マWindows・譯シ・カ、ハ、ヌ、ケ、ャ。「、ソ、キ、ォ、ヒ、筅テ、ネエハテア、ヒ、ハ、テ、ニ、ロ、キ、、、ヌ、ケ、隍ヘ。」、ヌ、筅テ、ニFYI.
Ruby Entry Package for Windows / Yasuhiro Arima
http://homepage1.nifty.com/arima/ruby/ InstallShield、ヌー?ネッ・、・ケ・ネ。シ・?、ヌ、ュ、゙、ケ。」エハーラIDE、ホRubyWin、簇�、?、ホ、ヌ。「、ェシ?キレ、ヒRuby、ホクウ、ヌ、ュ、ニハリヘ」クトソヘナェ、ヒスナハキ、ニ、゙、ケ。」
クー・オ・、・ネ、ヌ、「、?ruby-lang.org、リ、ホ、ウ、ヲ、、、テ、ソセホスクフャススハャ、ヌ、ハ、、、ネ、、、ヲーユクォ、ヒ、マニアエカ、ヌ、ケ。」
222 :
名無しさん@お腹いっぱい。 :2000/11/03(金) 19:49
213 のいうとおり!
223 :
名無しさん@お腹いっぱい。 :2000/11/03(金) 20:10
> > 何から何までPerlで書く(Perlでしか書けない)厨房 > これはPerlしか知らないだけで「信者」じゃないよな ごめん、そうだね。 > オペレーティングシステムのカーネルやコンパイラは > 「簡単な処理」なの? そんなこと一言も言ってないけど…? > 「信者」じゃないだろ。 これも悪かった。 言いたかったのは 205 みたいな「信者がイタイから言語も嫌い」っ ていう頭の悪い物言いが(ゲイツが嫌いだから Windows を使わない っていうのと同じで from 210)不快だったってこと。 まあ 2ch らしくて結構だけど。
224 :
名無しさん@お腹いっぱい。 :2000/11/03(金) 20:51
「Perlではオブジェクトがつかえない」と主張する頭の痛い厨房の 相手を最近したもんでな。 >209 しかもつかいかたを説明すると逆ギレしてんだ。
225 :
名無しさん@お腹いっぱい。 :2000/11/03(金) 21:03
まあ俺は基本的にPerlしかつかってないわけだが 他言語も必要ならやるよ。趣味だけどな。 しかしRubyがアドバンテージとして主張する物の多くは Perl6で(Perl風味で)実装される可能性が高いこと。 膨大な量の(今も増え続けている)CPANモジュール。 (数値計算用のXS拡張まである) これらが特にRubyへの移行を考えない理由だ。
226 :
名無しさん@お腹いっぱい。 :2000/11/03(金) 21:19
そういえばPsh(Perlのシェル)という話があったが このあいだwww.perl.org見たらPerlOSなんつー話があった。(ワラ
>>223 >> オペレーティングシステムのカーネルやコンパイラは
>> 「簡単な処理」なの?
> そんなこと一言も言ってないけど…?
すまん「どんなに複雑な処理でもCで書こうとする奴」と書いてあった
から、現在ではCで書かれることが普通であり、かつ普通は複雑という
ことになっている分かりやすい例を示しただけだ。
基本的に「信者が嫌いだから言語も嫌い」
になること自体は、当人の勝手だろう。Rubyは
それで片付けてしまえる程度の選択肢だと思うぞ。
Windowsの場合はゲイツが嫌だろうが仕事で使わざるを得んがな。
Ruby使いは仕事で使っている人はいないでしょうな。 趣味で使って嬉々としている様子が目に浮かぶ。
229 :
名無しさん@お腹いっぱい。 :2000/11/03(金) 22:58
>>225 それこそが唯一(言い過ぎか?)にして最大の、RubyがPerlに劣って
いる点です。だからRubyが好きな人は普及に努めようとするので
しょう。自分も含め。
だから、ちょっとくらい熱く語っても、暖かい目で見て下さい。
どうせなら、言語的に優れている方を使いたいからなぁ。 俺はこれからRubyやろうと思うよ。 多分これが一番仕様が褒められている言語だから。
231 :
名無しさん@お腹いっぱい。 :2000/11/03(金) 23:56
>>227 216のいう複雑な処理って
「Perl or Rubyだとスッキリ書けるけどCだと少し複雑になる」
みたいな意味なんじゃない?
OSとかコンパイラを例に出すのは違うかと。
>>231 マジでわからんのだが、コンパイラはrubyで書けないのか?
コンパイラをrubyで書かないとして、その性能以外の面での理由は何だ?
ruby用のコードを生成するyaccが存在しないからか?
例が「コンパイラ」じゃなくて、「テキストエディタ」だったらどうだ?
viのように、端末用のエディタで構わないぞ。
233 :
っていうか、 :2000/11/04(土) 05:15
薀蓄はいいからRubyで2ch型掲示板のひとつでも書けば 世間の見方は変わるやろ
234 :
つーか :2000/11/04(土) 06:08
ここはrubyの蘊蓄スレなんだけど...
現在rubyのキラーアプリ募集中ってとこだな。
# もし海外で先にでちゃったら格好悪いよな。誰かがんばれ!!
>>216 「複雑な処理」って言葉を使うから話しがおかしくなっちゃうんだよ。
つーわけで、向き・不向きで考えると
Cで(「複雑な処理」である)カーネル・コンパイラを書くのは問題なし。>216
また(速度を無視すれば)Rubyでエディタ・コンパイラ書いても全然問題なし。> 232
# raccというのがある
# どーでもいいとこで揚げ足取りあうのはもうやめないかい?
235 :
名無しさん@お腹いっぱい。 :2000/11/04(土) 07:38
仕事でrubyなんかで書かれたら、マイナーすぎて誰もメンテできない状況が容易に想像できるな。(藁
236 :
名無しさん@お腹いっぱい。 :2000/11/04(土) 07:40
あ、○んこより下だったんで、あげておいた。
Rubyのキラーアプリていうと2ch型掲示板とか? CGI以外での使い道は現実的にないと考えていいと思うがどう? パフォーマンスを考えると作る意味はないだろうけど。
238 :
名無しさん@お腹いっぱい。 :2000/11/04(土) 10:44
>>228 俺、知ってるよ、仕事で使っている人。
客先に納める仕事ね。
239 :
名無しさん@お腹いっぱい。 :2000/11/04(土) 10:45
>>232 コンパイラなんか、バイナリデータ扱えるならどんな言語でも書けるよ。
アセンブラのソース吐くだけならテキスト処理のみで済むし。
ま、ハードコーティングされた奴に比べるとめちゃくちゃ遅いだけなのでヤメレ。
宣伝程度にはなると思うが。
コンパイラは質の良いオブジェクトコード出力とスピードが肝だよ。
最適化のアルゴリズムとか考える時は便利かもね。>インタプリタ
>>237 そもそもサーバ側で用意されてる所ってほぼ皆無なので、移転する時に困る。>ruby/cgi
>>238 その客は災難だったな。(藁
そういう場合って、納品した会社が責任取ってタダで保守までするわけか?
241 :
名無しさん@お腹いっぱい。 :2000/11/04(土) 11:01
>>239 CGIが不可って事はrubyの使い道はローカルでのテキスト処理オンリー
ですか?
>>238 詳細きぼーん
242 :
名無しさん@お腹いっぱい。 :2000/11/04(土) 11:40
>>241 ローカル、つーか個人の趣味や一部の団体で使われる程度だと思うね。
積極的にUNIX系OSにデフォで入れてくれる様に交渉するとか、
ruby特有の明確なアドバンテージ(って何?)でも示さない限り。
せめて日本人向けディストリビュージョンの存在するOS
には入れておいて欲しいなあ。入ってたっけ?
>>238 わたしも保守の問題がどう解決されるのか気になります。
数少ない事例ですから。
243 :
329 :2000/11/04(土) 12:42
ついでに言うと、rubyで書かれたコンパイラで、 rubyスクリプトを質の良いオブジェクトコードに コンパイルすると、速度の問題もいずれ解決する。(藁 まあ、ブートストラップは理想だな。 逆にこんどは機種依存の問題が出てくるが。 JavaVMみたいにすればokか?
244 :
>243 :2000/11/04(土) 13:40
>rubyスクリプトを質の良いオブジェクトコードに >コンパイルすると、速度の問題もいずれ解決する。(藁 なるほど!
245 :
名無しさん@お腹いっぱい。 :2000/11/04(土) 14:19
>>244 しかしこの、「いずれ」ってのは問題だね。
なんかrubyと関係なくなってきたな。(藁
つーわけで、どんな言語でもある程度の機能があれば
コンパイラの作成やブートストラップは可能。
yaccやlexも移植するのは簡単…。
実際やってる例は希だけど。
静的な型付けを行わない以上、「rubyコンパイラ」を作ったとして、 シロウト目には、C/C++並みに速くすることは不可能に見えるのだが。 それと、eval()をどうするつもりか?単純にこの部分だけrubyインタプリタ に食わせるという訳にはいかんだろう。
ああ↑の「rubyコンパイラ」は、rubyで作成したコンパイラという 意味じゃなくて、rubyスクリプトからobjectコードを生成する プログラムのこと(まぎらわしい....)
248 :
Ruby似非信者 :2000/11/04(土) 17:22
>>216 Rubyを使いこんでるひとは、Cは嫌いじゃないっていう人が多いんじゃ
ないかな。拡張ライブラリを書くにはC使うわけだし。
C++は嫌い、ってのは多そうだけどな。
発売日の翌日に紀伊國屋で注文したRuby入門がまだ届かない。 これだからRubyはいやなんだよ、ったく・・・。
実は紀伊國屋or宅配会社が悪いのに、 関係無い事でRubyが責められてる。 ああ、可哀相な運命のRuby…
客先とは言っても常駐のようなものだから。 実際にその人が何をさせているのかまでは知らないし。
>>238 1. 客の計算機のディスク資源を使用して、わざわざRubyを入れたのか?
その理由(必要性)を、客にどう説明したんだ?
2. Rubyを採用した人間は、一生自分がそのシステムを保守すると思って
いたのか?
といった点が、やはり謎だな。仕事と趣味を近藤してねえか?という疑惑が
ふつふつと沸いてくるんであるんである。
>>252 =238
なんだ〜、残念。
オチが欲しかったのに…。
聞く機会があったらお願いしますね。
ほんとにめずらしいケースみたいなので。
もうやめにしない? Perl信者の書き込みばかりになってるじゃん。 人の使う言語を煽って何が楽しいのかわからない。 #これからrubyが伸びてくる事は確実。 #それを盲目的に否定するのはどうかね。
>>255 スクリプトは終わった。
JavaサーブレットとActiveXの時代。
>>255 >#これからrubyが伸びてくる事は確実。
無責任な事を言うな。何処に根拠がある。
こういう発言を盲信と言わないのか?
>>256 ActiveXはどうかと思うが…
だからPerl信者じゃなくて、Perlしか使えない連中なんだって(w
実際問題Rubyがメジャーになるこたないだろ。 ビジョンが想像できない。
>>259 メジャーになるのではなくて、メジャーにするのです。
Perlだってほっておいて伸びたわけじゃなし。
いや、別に文句つけるわけじゃないが、どうやって?
>>261 それについては、
ほんの触りだけ242で書いたが…
263 :
名無しさん@お腹いっぱい。 :2000/11/05(日) 04:49
>>242 kondaraとDebianには入ってるぞ。
264 :
名無しさん@優しい人 :2000/11/05(日) 05:09
>>263 調査感謝。
と、いうことらしい。>261
少なくともそういう動きはあるわけだ…>261
261にむい。いい番号を拾ったな、勇者ニムイよ!
にむーい、にむーい。
…明日読み返したら後悔は必至だな。(藁
265 :
名無しさん@お腹いっぱい。 :2000/11/05(日) 15:36
Fixnumを継承してメソッド増やしたいのですがnewできません。 Integerは特別扱いというのは分かりますが、どうにかならないですか。 class MyInteger < Fixnum def prime? for i in 2..self/2 return true if n % i == 0 end false end end n = MyInteger.new(3) # ここでエラー round.rb:XX: undefined method `new' for MyInteger:Class (NameError) p n.prime? やりたいことはFixnumの値を一つ保持して複数のメソッドを持つ Stateクラスを定義することです。@valueを持たせるよりは Fixnumを継承した方がオーバーヘッドが少ないかなと思ったからです。
Rubyユーザの性格==ホットスープユーザの性格
267 :
マジ :2000/11/05(日) 17:55
ホットスープって何?
268 :
名無しさん@優しい人 :2000/11/05(日) 18:25
>>267 >ホットスープって何?
これからの季節には必須だろ。
あー自分で書いててつまんねー。
#HSPで検索しとけ。
#本も出てるな。
269 :
Ruby似非信者 :2000/11/05(日) 19:12
>>259 Kent Beckも「I love it.」って言ってるくらいだから、XPコミュニティから
「XPするなら(Pythonよりも)Ruby」って流れができて、OO方面からメジャーに
なっていく、ってなビジョンはどうかな?
XP(eXtreme Programming)については、
http://www.esm.co.jp/divisions/open-sys/eXtremeProgramming/xp-faq.html とか。
いくらRubyが流行ってもPerlがなくなることはないだろうね。それでも、
今ならPerlが当たり前の領域の一部にRubyが浸透する、という可能性なら
大いにある。それで十分。今のところはね。
>>265 Rubyのnumeric.cに書いてあるけど、
rb_undef_method(CLASS_OF(rb_cFixnum), "new");
でFixnum::newを殺してあるからsuperでエラーが出るのは当然。
素直に@value使うのがおすすめ。
多少乱暴でもいいんなら、Integerにprime?を追加するのも可。
class Integer
def prime?
for i in 2..(self/2)
return false if (self % i) == 0
end
return true
end
end
p 11.prime? #=>true
270 :
名無しさん@お腹いっぱい。 :2000/11/05(日) 23:11
271 :
名無しさん@お腹いっぱい。 :2000/11/06(月) 04:23
でも、文法に徹底的にこだわったRubyと、文法的には おいおいなんだこりゃっていうHSPでは正反対の方向性の ような気が… まぁフリーでマイナーって所は似通ってるけど。
272 :
名無しさん@お腹いっぱい。 :2000/11/06(月) 06:40
Perlとは違うのだよ、Perlとは!
273 :
名無しさん@お腹いっぱい。 :2000/11/06(月) 07:00
ムナシイ。。。
274 :
名無しさん@お腹いっぱい。 :2000/11/06(月) 11:06
日本のLinuxにはこれからrubyはどんどん入ると思うよ。 ディスクスペースをそんなに食うわけじゃないから、「とりあえず入れとけ」 てな感じでね。 だけど、それが普及に即繋がるとは考えられないし、rubyが文法的に優れている というだけの理由でメジャーになるはずもない。 そのうち廃れて「そう言えばrubyなんてのもあったなぁ」と思い出すような言語 になるでしょ。
275 :
名無しさん :2000/11/06(月) 11:43
>だけど、それが普及に即繋がるとは考えられないし、 >rubyが文法的に優れている >というだけの理由でメジャーになるはずもない。 人間一人が管理できるシステムの規模には 限界があると思う。ソース一万行で解説200ページ とかなるとしんどい。 わたしは強力な記述と使い勝手のよい ライブラリ、安全なインターフェースを 強く欲する。文法とライブラリ、それこそが命です。
こだわってるのは分かるけど本当に文法的に優れてるの?誰がそう判断してるの?
>>276 自分で使ってみて判断。それ以外に何が?
実用になるかどうかはさておき、Rubyで書くと心地いいね。 結構いいものに仕上がってるから、廃れないでいい方向に発展してくれると幸せだね。 言語マニア好みに仕上がってるから、当分消えることはないんでないかな。 「これができるのはRubyのみ!」という分野がないのが痛いねえ。 ゲームにとりたてて向くわけでもなし、数式処理につよいわけでもなし、 行列計算がいいわけでもなし、テキスト処理がPerlより便利なわけでもなし、 システムプログラミングにむいてるわけでもなし…。 アプリケーション組み込みとしてはPhytonがすでに頑張ってるし、 ネットワークプログラミングがいいわけでもなし…。 言語が対象とするアプリケーションの指向性がいまいちはっきりしないんだよね。 言語処理や画像の意味解析とか、グラフ処理とかそういう、 データ構造のいりくんだややこしい分野で力を発揮しそうなんだけどなぁ。
279 :
>>275 :2000/11/06(月) 14:15
Javaの方がいいですよ。
280 :
>279 :2000/11/06(月) 18:02
どこがどのように?
>>280 自分で使ってみて判断。それ以外に何が?
283 :
>278 :2000/11/06(月) 22:33
今の段階でRubyに向いている分野なんて無いって。 Perlから弱点はそのまま引き継いでいるから大規模な物を作ろうと したらパフォーマンスがネックになる。 小規模な物ならPerlで書いた方が書きやすいんじゃない?(人にも 依るが) Ruby VMやネイティブコンパイラでも作ってから普及活動した方が いいんじゃない?
284 :
名無しさん@お腹いっぱい。 :2000/11/07(火) 00:16
> 今の段階でRubyに向いている分野なんて無いって。 そうですね…これから作らないと。 > Perlから弱点はそのまま引き継いでいるから ふーむ、パフォーマンスと特殊変数以外に何があるっけ? パフォーマンスも Python と大して変わらないけど。 > 小規模な物ならPerlで書いた方が書きやすいんじゃない? モノと本人の慣れに依るのかな。僕はその場で使ってすぐ捨てる 類のものだけは perl で書いてる気がする。
俺前も書いたけど、eval()をインタプリタ以外の形態で実装できるのか 疑問。シロウト考えでは無理に見えるんだけど、できるの?>283
>>285 283では無いが…
もしeval()がSchemeやLISPの遅延評価と同等な意味ならば、
JITコンパイルという手がある。
ただ、この方法は一度しか実行しないようなコードに対しては効果は薄いが。
それでもホットスポット以外はあらかじめコンパイルしておくことが可能だから、
全くの無駄とは言えない。
287 :
名無しさん@お腹いっぱい。 :2000/11/07(火) 08:30
>>281 そこはプログラマー板だろ?
何でこっちじゃいけないんだよ?
288 :
265 :2000/11/07(火) 11:42
>>269 やっぱりnewは使えないんですね。
Stateクラスはオーバーヘッドが大きそうなので
# 生成されるインスタンスがかなり多いので
昔ながらの@value+関数群でやってみます。
ありがとうございました。
>>286 ここで言うJITコンパイルというのは、実行時にeval()を評価する際に
その場でコンパイルするという意味、だよね。
可能不可能の話で言えば可能だろうが、evalの内部からローカルを
含む外部のobjectにアクセス可能であるということは、結局はインタ
プリタと同様のやり方で、全てをシンボルテーブル上で管理する
必要があるということではないのか。
結果として、バイトコードのような中間コードを実行するのと、
と効率的に大差ないものになるんじゃないのか、と思えるのだけれど。
290 :
名無しさん@お腹いっぱい。 :2000/11/07(火) 20:29
難しい話はわからないけど、Kernel.eval に Binding のイン スタンスを渡せるのが嬉しい。逆に Perl の eval() や ePerl で外部のシンボル表を渡せないのは言語の性質? できるけど 実装してないだけ?
291 :
名無しさん@優しい人 :2000/11/08(水) 00:18
>>289 そうだろうね。
まあでも、外部にアクセス可能であったとしても、実際にそのようなコードを
考えもなしにぽんぽん書かない限り、最適化の余地はいくらでもあるとは思い
ますが。とりあえず効率優先なら、プログラマ側でうまく変換する可能性のあ
るコードを書く様に気を付けるしかないんじゃない?
統計的に良く使われるパターンはキャッシュして持って置くとかはするんだろ
うけど。
>>287 >そこはプログラマー板だろ?
>何でこっちじゃいけないんだよ?
だって比較の軸になってるのって
(作者が)好き・嫌い、メジャー・マイナー、綺麗・汚いくらいのもで
発言の内容だってほとんどが信者・厨房プログラマーの煽り&罵り合いだろ。
# それにここのスレ初心者からの質問スレ
>>17 らしいし(俺も知らなかった...)
>>煽り&罵り合いだろ。 あなたは2ちゃんねるにくるのをやめたほうがいいです。
お約束の展開だなぁ。それでもこの板&スレではちゃんとお話ししたいのよ。
>>294 建設的な議論をしたいのならよそに行った方が良いと思いますよ。まじに。
296 :
名無しさん@お腹いっぱい。 :2000/11/10(金) 01:45
>>295 「嫌いな話題は俺がかき回すから他逝け」ってことですね
んー。ていうか、 Rubyのスレなんだからさ・・ 煽られても相手しなけりゃいいのに。
でも一見罵り合いに見えても、それなりに議論がすすんでるじゃん。
299 :
名無しさん@お腹いっぱい。 :2000/11/10(金) 10:15
で、 #!/usr/local/bin/ruby じゃなくて、 #!/bin/sh exec ruby・・・ ・・・ って書くやりかたがあったけど、どう書くんだっけ? なんか #!/usr/local/bin/ruby puts "test" って書いてパーミッション与えて./test.rbで実行できない。 例) % ./test.rb puts: Command not found たんにコマンドラインからrubyとするとrubyは起動します。 % ruby -v ruby 1.4.4 (2000-04-14) [sparc-solaris2.7]
300 :
虹 :2000/11/10(金) 11:09
>>299 #!/usr/bin/env ruby
って書くのが良いみたいです。
でも、envって普通/usr/binに置くものなの?
CGI板でやれば?
>>300 ありがとうございます。できました。
>>301 この板のこのスレッドで聞くことは不適切なんですか?
一行レスに噛み付くのは煽りを喜ばせるだけで建設的ではありません もちろんこのレスも無視すれ
304 :
Ruby tip of day :2000/11/17(金) 21:25
ruby -e "require 'find'; Find.find('.'){|file| puts file}" # similar to "find ." in unix command.
ブロックってなにものなんですか? なんか便利になるんですか?
306 :
ぎこるび :2000/11/24(金) 05:09
>>305 メソッドに渡す処理の塊をブロックと言います。
配列をイテレートする場合で例を挙げると、
[1, 2, 3, 4, 5].each{|i| p i}
の{}内がブロックです。配列の場合は下と大体等価です。
def my_each
for i in 0...size
yield(self[i])
end
self
end
Javaでイテレートする場合には下のように外部イテレータになりますが、
Rubyの場合はオブジェクト側が処理を握っている内部イテレータです。
for (Enumeration e = all.elements(); e.hasMoreElements(); ) {
baz = foo + e.bar();
}
あ、全然間違えてる。 baz = foo + e.bar(); もとい String baz = foo + (String)all.nextElement(); 気を取り直して。。。 またイテレート以外にもブロックは使えます。 File.foreach('hoge'){|line| p line} は fp = File.open('hoge') begin while line = fp.gets p line end ensure fp.close end と同じです。ブロックを終えるとファイルを必ず閉じるようになっています。 あくまでレシーバ(オブジェクト)に対してしてほしい処理を渡すという形に なっているのがRubyらしいと言えます。 処理の主体とその範囲が明確なのでわかりやすい(書き易く読み易い) のが効用だと思います。
で、
#!/usr/local/bin/ruby
じゃなくて、
#!/bin/sh
exec ruby・・・
・・・
って書くやりかたがあったけど、どう書くんだっけ?
なんか
#!/usr/local/bin/ruby
puts "test"
って書いてパーミッション与えて./test.rbで実行できない。
例)
% ./test.rb
puts: Command not found
たんにコマンドラインからrubyとするとrubyは起動します。
% ruby -v
ruby 1.4.4 (2000-04-14) [sparc-solaris2.7]
300 名前: 虹 投稿日: 2000/11/10(金) 11:09
>>299 #!/usr/bin/env ruby
って書くのが良いみたいです。
でも、envって普通/usr/binに置くものなの?
301 名前: >299 投稿日: 2000/11/10(金) 11:23
CGI板でやれば?
302 名前: 299 投稿日: 2000/11/10(金) 12:22
>>300 ありがとうございます。できました。
>>301 この板のこのスレッドで聞くことは不適切なんですか?
rubyが /usr/local/bin/ にないんじゃないですかね。 %which ruby でrubyのあるパスが得られますのでそれを書いてください。
rubyが /usr/local/bin/ にないんじゃないですかね。 %which ruby でrubyのあるパスが得られますのでそれを書いてください。
ああ、連書き失礼しました。
なんか ruby-talk でフェイドアウトする議論が多いのが気になる
313 :
名無しさん@お腹いっぱい。 :2000/11/27(月) 04:17
今日、RUBY本をかってざっと眺めたのですが、よくわからない点が2つ。 (1)なぜ例外処理が2つあるの?(try-catchとbegin-rescue) (2)言語がイテレータをもつ理由は?(別に外部イテレータでもいいような...) 誰か答えて。
314 :
虹 :2000/11/27(月) 06:06
>>313 (1)throw-catch(だよね)は捕らえられることを前提としたもので、
言わばgoto文に近い感覚です。それに対し、raiseによる例外は
捕らえられないことを前提とした例外で、エラーが発生しても
処理を続けたいときにbegin-rescueを使います。
(2)繰返しをオブジェクトの中に隠すことができるので、使う側が
内部の処理を意識する必要がなくなります。確かに機能的には外部
イテレータ>内部イテレータかもしれませんが、内部イテレータの
方が保守性が高く、高級(笑)です。
と、自分は認識していますが間違い等あるかもしれないので、詳し
い方フォロー願います。
315 :
名無しさん@お腹いっぱい。 :2000/11/28(火) 00:07
throw/catchは関数、raise/rescueは予約語、ちう違いもありますな。 Rubyデスクトップリファレンス見てみたらthrow/catchに関する記述は 無かったので、throw/catchは無かったことにしようとしてるに一票。
316 :
名無しさん@お腹いっぱい。 :2000/11/28(火) 00:10
throw/catchは関数で、raise/rescueは予約語なんて違いもありますな。 Rubyデスクトップリファンスを見たらthrow/catchに関する記述が見ら れなかったので、無かった事にしようとしている、に一票。
だぶりスマソ。
318 :
名無しさん@お腹いっぱい。 :2000/11/28(火) 21:48
RubyでXMLを扱う時にはどんなツールが必要になるんですか? perlだったらDOMやパーサ―のモジュールがあるけどRuby でもおなじようなものがあるんですか?
319 :
名無しさん@お腹いっぱい。 :2000/11/28(火) 21:52
ruby-dev の田中さんのおかげで、1.7 では file descriptor の直接操作 ができるようになりそう。dup(2) の interface が提供されないのって悩 ましかったんだよなあ。これで dup & exec するためだけのアホな拡張ラ イブラリは捨てれそうだ (^o^)
320 :
名無しさん@お腹いっぱい。 :2000/11/28(火) 21:57
321 :
名無しさん@お腹いっぱい。 :2000/11/29(水) 00:28
ここでもXMLか・・・はやってるの?
322 :
名無しさん@お腹いっぱい。 :2000/11/29(水) 00:55
>>321 今更何言ってんの?
でも XML 界も混沌としてるしこのままポシャったらおもろいのにな
323 :
名無しさん@お腹いっぱい。 :2000/11/29(水) 01:51
名前がカッコ悪い。大文字って点も。>XML
なんて読むの?やっぱバツマル?
18禁めーりんぐりすと
326 :
名無しさん@お腹いっぱい。 :2000/11/29(水) 19:24
XMLネタは他でやれ
327 :
名無しさん@お腹いっぱい。 :2000/11/30(木) 04:05
めーりんぐりすと反対!
328 :
名無しさん@お腹いっぱい。 :2000/12/01(金) 00:34
クソムル
329 :
プロセスさん@お腹いっぱい :2000/12/10(日) 13:04
ruby/gtkで、gettextを使ったプログラムのサンプルってありませんか? ruby/gtkは、webページを発見できたのですが、ruby/gtkでgettextって どないするんでそ?
330 :
名無しさん@お腹いっぱい。 :2000/12/11(月) 01:50
C++ソースに組み込んで独自命令定義しようとすると、 以下のようなエラーでるのはどうにかならないのかな? まぁ無理やりキャストかませば問題はないんだけど。 foo.cpp(67) : error C2664: 'rb_define_global_function' : 2 番目の引数を 'unsigned long (int,unsigned long *,unsigned long)' から 'unsigned long (__cdecl *)(void)' に変換できません。
331 :
名無しさん@お腹いっぱい。 :2000/12/11(月) 02:46
age
332 :
名無しさん@お腹いっぱい。 :2000/12/11(月) 18:53
rubymw.dllの機能を使うDLLをmngwin環境で自作しようと思ったのですが、 gcc Developer Stationで以下のコードをビルドしたらrb_eval_string が定義されていないと言われてしまいました。どのようにしたら 上手くいくのでしょうか? #include <windows.h> #include "ruby.h" int WINAPI DllMain (HINSTANCE, DWORD, PVOID) { return TRUE; } extern "C" __declspec (dllexport) BOOL WINAPI test1 (void) { rb_eval_string("print \"test\""); return TRUE; }
333 :
ぎこるび :2000/12/11(月) 19:49
336 :
332 :2000/12/12(火) 06:54
>>334 -335
どうもありがとうございます。
あれから、いろいろと参考にして悪戦苦闘しましたが結局出来ませんでした。
仕方がないので、LoadLibraryとGetProcAddressを使って強引に
rb_eval_stringを呼び出すラッパーを作ることにしました。
しかし、RubyWinはなぜあのソースで出来るのか、かなり謎です…
337 :
名無しさん@お腹いっぱい。 :2000/12/12(火) 17:22
fileにある繰り返しのパターンを、Structの配列で読み込みたいのですが、 Rubyでどんな風に書いたらいいですか? で、そのなかのhogeというメンバー名で、正規表現でマッチさせて、別の メンバーも表示って感じで ファイルパターンはこんな感じ foo: abcdef bar: bcdefg | foo: zzzzzz bar: xxxxxx ってな感じ
ぎこるびってまつもとさんだったりして。
339 :
名無しさん@お腹いっぱい。 :2000/12/12(火) 17:27
>>330 rb_define_functionのプロトタイプが
void rb_define_function(VALUE, char*, VALUE(*)(), int);
である以上、キャストを使わない限りC++ではエラーは避けられんと思う。
VALUE(*)()の意味は
Cでは
「引数は何でも良く(チェックしない)、VALUEを
返す関数へのポインタ」
C++では
「引数無し(void)でVALUEを返す関数へのポインタ」
だからな。
gccであれば-fno-strict-prototypeで切り抜けられそうだが。
340 :
名無しさん@お腹いっぱい。 :2000/12/12(火) 18:34
Ruby全般に、UNIX万歳!Winは知らん、って臭いがプンプン漂うのが嫌だ。 Rubyコミュニティも、厨房お断り的な窮屈な雰囲気でなんか嫌だ。
341 :
虹 :2000/12/12(火) 19:13
>>337 質問が良く理解できないので的を外してるかもしれないが、
array=Array.new
line_no=1
ARGF.each { |line|
if /^([^:]+):\s(\S*)\s*$/=~line
array<<Struct.new("Line"+line_no.to_s,$1).new($2)
end
line_no+=1
}
p array
こんな感じか。なんか全然求めているものと違うような…。
342 :
虹 :2000/12/12(火) 19:19
>>340 UNIX万歳かどうかは知らないけど、Winは知らん、てのは当たって
いるかも。と言うか本当にただ使ってないので知らん、って意味
だけど。
なので、Win使いの人はむしろ大歓迎だと思います。
#
>>341 インデントがないと激烈に読みにくいな。
>>336 RubyWinの作者にメールしてみると良いかもしれないですね。
ついでにうまくいったらドキュメント化してくれると嬉しいです、はい。
>>337 こんな感じですか?
h = {}
while line = gets
if /\A(.+):\s(.+)\Z/ =~ line
name = $1
member = $2
begin
h[name].push member
rescue NameError
h[name] = []
retry
end
end
end
#=>{"bar"=>["bcdefg", "xxxxxx"], "foo"=>["abcdef", "zzzzzz"]}
>>338 まさか。単なるRuby厨房ですよ。
今も自分の無知から恥をかいてきました・・・
>>340 UNIXはやっぱり便利ですからねえ。自分も結局CygwinでRuby使ってますし。
Windows方面も人材はいますので段々と環境が整っていくと思いますよ。
ruby-listに書けないならここに書いてください。
自分もそうですから(笑)
>>337 もちろん
p h #=> {"bar"=>["bcdefg", "xxxxxx"], "foo"=>["abcdef", "zzzzzz"]}
です。
345 :
虹 :2000/12/12(火) 19:57
>>343 ああ、なるほど。そっちの方が求めているものに近そうですね。
構造体の配列ってのを素直に考えすぎたかも。
でも、そこでrescueを使いますか。自分なら
if h[name]
h[name]<<member
else
h[name]=[member]
end
かな。rescueはあんまり使わないです。
346 :
名無しさん@お腹いっぱい。 :2000/12/12(火) 20:09
よしわかった。 今日からオレも、ルビ房な。
>>345 読んだ値をどう使いたいのかよくわからないので、
無難にハッシュを使ってみました。
rescue使ったのは気分的なもんです。
ただ、初期化と要素の追加とが分けられるのがきれいでいいかなと。
>>346 んーよろしくです。
348 :
330 :2000/12/12(火) 23:55
>>333 _cdeclでのコール他、いろんなオプションで
コンパイルしてみましたがあいかわらずでした。
C++のプロトタイプチェックが強力なのが原因みたいですし。
>>339 やはり、無理やりキャストしかないんですね。
今後C++のソースに組み込もうとして同じようにハマる人がいるだろうから
キャストするための便利マクロとかが、ruby.hにあらかじめ入っていれば
親切かもね。
349 :
名前ついてますか? :2000/12/13(水) 11:59
rubyって車輪の再発見っぽくて嫌い。Interpretor言語を BASICと Perlしか知らない人には新鮮かも知れないけどね。 Winしか知らない人が Linuxを誉めるみたいに。 まあ、どっちもお勉強でシステムを作ってみたら、取り巻きが ついちゃった、って点はおなじか(w
350 :
なし :2000/12/13(水) 12:04
おお、これが二度と見つからないと思っていた幻の「車輪」か! ついに発見したぞ!
351 :
名無しさん@お腹いっぱい。 :2000/12/13(水) 20:37
>>349 現実では全然目立たない癖に陰口叩くのだけは好きなアホ発見
gikoruby iizo. ore mo ruby-list deha situmon dekinai chuubou dakedo, ruby ha tanosiku tukatteru yo. ruby-lame list ga hosii tokoro dane. minna level takasugi.
353 :
名無しさん@お腹いっぱい。 :2000/12/13(水) 23:39
>>351 煽りは無視しときましょう。時間の無駄です。
亡びゆくRubyに乾杯。
355 :
名無しさん@お腹いっぱい。 :2000/12/14(木) 11:31
ここ一ヶ月ほどで ruby-talk は完全に軌道に乗ったね。 ruby-list よりも突っ込んだ議論が多くなってきてるし。 まあ普及度はともかくとしてここまでくれば滅ぶことはないな。
まあ俺は静観してるよ。(ワラ
357 :
名無しさん@お腹いっぱい。 :2000/12/14(木) 14:24
ruby-talkは読んでいないけど、 .NET の対応の話とかは出ていますか?
GUIプログラミングがもっと手軽にできれば…ってのが願い。 話題のRuby/Gtkもunix環境じゃないとできないみたいだし。 Ruby/tkならWindowsでもできるみたいだけどね。 どちらにしろexeファイルが簡単に作ることができれば Ruby userになりたい。
359 :
名無しさん@お腹いっぱい。 :2000/12/14(木) 16:08
WinでGtkは、配布に向かないんじゃないかな?DLLのサイズが でかいし、ライセンスはどういうのか知らないけど、「G」が つくぐらいだから、どうせ厄介なライセンスだろうし。
360 :
名無しさん@お腹いっぱい。 :2000/12/14(木) 16:19
>>359 GNU GPLかGNU LGPLだと思います。
普通に使うぶんには厄介ではないです。
361 :
米国在住者 :2000/12/14(木) 17:34
今月のDr. Dobb's Journal(25周年記念号)の特集はスクリプティング 言語だ。その筆頭記事が"Programming in Ruby"で失礼ながらちょっと びっくり。 残りの四つは"PHP & Hosted Apps"、"GUI Construction with Perl"、 "Python's PyQt Toolkit"、"NQL, the Network Query Language"なり。 Rubyもポピュラーになってきたのかと思ったが、DDJは海のものとも山の ものともつかない技術もよく取り上げるからなぁ…
>>352 どもです。JavaHouse の向うをはって匿名・フリーメールでの
投稿のみを受け付ける ML でも作ります?(笑)
でも ML ってだけで敷居が少し高いですよね…
>>355 英語が読めれば ruby-talk 読みたいんですけどねー。
逆に英語の勉強のために ruby-talk 読もうかな。
>>358 GIMP for Win32 のサイトに Gtk のライブラリ一式がありますよ。
ruby-list に Windows で Ruby/Gtk するための手順がたしか流れたと思います。
363 :
名無しさん@お腹いっぱい。 :2000/12/14(木) 18:25
>>360 GPLはかなり厄介。ソース公開しなくちゃいけない上に、
詳細は非常に複雑で何すればいいのか意味不明。
364 :
名無しさん@お腹いっぱい。 :2000/12/14(木) 18:34
具体的にいえ. その文章だと,自分が理解できないから厄介だ.と 主張しているように読めるぞ
365 :
名無しさん@お腹いっぱい。 :2000/12/14(木) 18:39
>>364 文章が難しくて、読んでて非常に苦労する。
色々な条件があって、この場合は、こうしなくちゃいけないだとか、
制約がきつすぎてそれらに引っかかってないかどうかがわからない。
自分が理解できないと言うのもちろんある。
しかし一番厄介なのはソースを公開しなくちゃいけないところ。
へたれだからソースは恥ずかしくて公開したくない。
366 :
名無しさん@お腹いっぱい。 :2000/12/14(木) 18:47
とりあえずRuby/Gtkに限った話だと Rubyで書くと嫌でもソースが出るでしょ? だからそれでOKなんじゃないかな。
367 :
名無しさん@お腹いっぱい。 :2000/12/14(木) 18:50
>>366 なるほど、Rubyならそうなんだね。
Rubyはjavaのclassファイルみたいにコンパイル済みのファイル
を吐けないのか?
369 :
名無しさん@お腹いっぱい。 :2000/12/16(土) 00:30
RubyをWin32(VisualC++)でコンパイルすると、 警告がたくさん出てくるけど、 これは正常にコンパイルされたとみなしていいのか?
370 :
369だけど :2000/12/16(土) 00:37
nmake test やったら not ok signal 1 -- C:/ruby/src/sample/test.rb:814 not ok signal 2 -- C:/ruby/src/sample/test.rb:825 test failed ・・・ダメっぽい。鬱だ寝よう
371 :
名無しさん@お腹いっぱい。 :2000/12/17(日) 12:06
以下のソースをコンパイル&実行すると、 rb_define_classが不正な処理で落ちてしまう。なんで??(泣) ruby-jedのソースを見ると同様な処理があって問題なさそうなのに。 これは自分の環境だけの問題なのかなぁ? 誰か試してほしいです // main.c // // コンパイル方法 // cl main.c mswin32-ruby16.lib // #include <ruby.h> VALUE cFoo; void main(void) { ruby_init(); cFoo = rb_define_class("Foo", rb_cObject); }
372 :
名無しさん@お腹いっぱい。 :2000/12/17(日) 23:40
みなさんWindowsで苦戦してますな。 Rubyが流行らない理由がわかる。
わかったような気になってる粘着質な煽り君の瞳に乾杯
374 :
名無しさん@お腹いっぱい。 :2000/12/18(月) 03:35
たんにあんたの環境でこんぱいるできないだけっしょ。
>>371 mkmf.rb rbconfig.rb を読んで必要なコンパイルオプションを確認してみてください。
環境によりますが、 -DIMPORT やらが必要だったりするらしいです。
376 :
名無しさん@お腹いっぱい。 :2000/12/18(月) 17:07
ruby-1.6.1 持ってきて ./configure して make したら gcc -g -O2 -rdynamic main.o dmyext.o libruby.a -ldl -lcrypt -lm -o miniruby /usr/lib/libdl.a(dlsym.o): In function `doit.2': dlsym.o(.text+0x22): undefined reference to `_dl_default_scope' dlsym.o(.text+0x4c): undefined reference to `_dl_default_scope' make: *** [miniruby] Error 1 だってさ、あーもー linux のありふれた設定でこんなこという configure 久しぶりに見たぞ。
377 :
名無しさん@お腹いっぱい。 :2000/12/18(月) 22:10
Win環境でコンパイルしようとすると「rmが無い」 と言われるけど、rmとはなに?
378 :
名無しさん@お腹いっぱい。 :2000/12/18(月) 23:19
`R''M`ove file
379 :
名無しさん@お腹いっぱい。 :2000/12/18(月) 23:29
380 :
371 :2000/12/18(月) 23:53
書き忘れましたがリンクするためのライブラリファイルは Rubyをビルドし直さないと出てこないようです。 というわけでみなさんRubyを再ビルドにチャレンジしてくれて いるのだと思います。が・・・うまくいってないようですね。 >374 もともとコンパイルはできるんだって。 >371 なるほど、読んで試してみます
381 :
名無しさん@お腹いっぱい。 :2000/12/19(火) 00:09
382 :
371 :2000/12/19(火) 02:13
rb_cObjectの値がruby_init()を呼ぶ前後でまったく 変化していないのがおかしいと、あれこれ調べた結果、 ライブラリのファイル指定が違っていました。 本当は、 cl main.c libruby.lib user32.lib advapi32.lib wsock32.lib とやるのが正解でした。 お騒がせいたしました
383 :
名無しさん@お腹いっぱい。 :2000/12/22(金) 00:11
何もネタなし?
384 :
名無しさん@お腹いっぱい。 :2000/12/22(金) 22:55
non-Japanese の Commiter を増やすといいと思うんですがどうで しょう。Dave さんと Guy さんくらいなら、、、
385 :
名無しさん@お腹いっぱい。 :2000/12/23(土) 00:26
そうねぇ。海外のRubyユーザ見てるとすごい人いるしね。 あと国際化(つーかm17n?)は早く進めてほしいナー。 非日本語圏でも人気が出てきてるんで、手遅れになる前に まともな仕組みを早急に作ってほしい。 PerlとPythonは結局Unicodeになっちゃうらしいので、 僕的には萎え。 Rubyには期待してる。どんな文字コード(?)にも後から 対応できるっていうのはすごい魅力的。 国際化のえらい人たちがもっと参加してくれると うれしいなー。
386 :
名無しさん@お腹いっぱい。 :2000/12/23(土) 02:17
>>385 ?RubyもUnicodeになるらしいよ。
それが一番いいってことじゃない?
387 :
名無しさん@お腹いっぱい。 :2000/12/23(土) 05:52
>>384 commitできたとしても、まつもとさんの手に負えない分野(Winとか)じゃない
限り、「Let's discuss」になるんだったら意味ないんじゃないのかな。
>>386 RubyはUnicodeにゃならんって。ちゃんとML(ruby-devとruby-talk)読んでる?
>>387 discussの機会が増えるのはいいことじゃないかな。
有益な意見も増えるだろうし。
そゆことじゃなくてですか?
>>386 もしかして勘違いしてるかもしれないので念のため書いて
おくと、UTF-8とUnicodeは違うものだそうだよ。
(実は僕も数週間前まで同じだと思っていたのは内緒だ)
それにUnicodeであれなんであれ、内部コードを決めてし
まうっていうのは、その枠組みでしか文字を扱えなくなる
ってことで、ASCIIしか扱わない人はいいけど、日本語を
扱いたい人にとっては柔軟性の欠如によるデメリットの
ほうが大きいんじゃないかな。
Muleは健闘してるみたいだけどね。
Unicodeは文字集合、UTF-8はエンコード実装になるんでしたっけ? UTF-8は日本語一文字3バイト使うのがいただけないですね 個人的にはM17N、I18Nよりも標準GUIをどうするかが興味あります。 JavaのAWTみたいなのができると嬉しい。
>>389 じゃあ僕も下げつつ。
GUIの件については、良くも悪くもUNIXから受け継いだものが
大きいから、Javaみたいに閉じた互換性(失礼!)の世界は
作らないんじゃないのかな。
GTK+とかがWin32にも移植されつつあるし、そういうものとの
親和性を高めてくれたほうが僕はうれしいな。
GladeとかVisualTclTkとか、既存の周辺ツールが使えそうだし。
あとはDBやXMLまわりが_さらに_強力になってくれるといいねぇ。
そういやDave&Andy本の邦訳は来春に出るらしいね。 原書を見たけど、ありゃ今までのRuby解説書で一番いいかも。 構成が、カバーする範囲・順番ともしっかりしてるし、後半の リファレンスも見やすい。プロの物書きの仕事だな。 本にうるさい人も、あれなら満足するかもしれない。 ピアソン日本はXP本の邦訳のクオリティでミソつけたみたいだけど、 本国ではいい本を量産してるので、今後はしっかりやってほしいね。 出たら即買いするから、がんばってよ!>担当者
393 :
ぎこるび :2000/12/26(火) 18:49
1.6.2リリースあげ。
>>391 ソースをいじらずにWinとUNIXとMacで同じように
動くGUIアプリが作れるのが理想です。
僕のイメージとしてはJDBCやDBIのGUIライブラリ版かな。
ただ、数あるGUIツールキットをすり合わせて、
統一的に扱えるような仕様を決めるのは大変だろうし、
ブリッジするドライバ書くのも面倒ですね。
だからJavaのやり方が最善だと思うんですけどね。
Swingのように閉じさせた方がライブラリ作るのも使うのも楽かなと。
>DBやXMLまわり
RDBCかDBIが完成すれば便利なツールが出てくるかも。
XMLで足りないのはXSLとSVGのプロセッサですかね。
RubyでXMLアプリのプロトタイプをさっくり作ってJavaに移植、
ってのができるようになると嬉しい。
>>392 Ruby本もRubyプログラミング入門もリファレンス機能が弱いですからねえ。
肝心のデスクトップリファレンスも何か本が堅くて物理的に使いづらいし(笑)
2タブは見にくい。。。4タブにしてる。
>>395 amazon.co.jp で Dave&Andy 本注文しちゃいました。
ページ数からいうと5000円は高くないかも。
ruby-newbieほしいですねえ。どこかフリーのMLで作ります?
人が集まるかどうかわかりませんけどね。
yet anothoer Ruby-ml になりそうだったここも停止してますし。
http://www.progwin.com/ruby/ >>396 僕は関数名や変数名が長くなりがちなので、Cも2タブです。
うーtypo r397.sub!(/anothoer/, "another")
399 :
perlスレの60 :2001/01/09(火) 12:52
英語で書かれたファイルを読み込んで全部英語小文字にするスクリプトは rubyではどうなるの?
400 :
虹 :2001/01/09(火) 13:32
ruby -n -e 'print $_.downcase'
ruby -p -e '$_.downcase!' foo.txt > bar.txt かな。
402 :
虹 :2001/01/10(水) 16:27
>>401 自分も最初そう書こうと思ったんだけど、bashで!のエスケープの仕方が
わからずにやめました。
404 :
虹 :2001/01/10(水) 19:17
>>403 シングルクォートで駄目だったのですが…。
>>403 PikeもLuaも知らんぞ。
つーか、このページ何よ。
>>404 うーむ。SolarisとCygwinで試しましたけど、
シングルクォートなら大丈夫でしたよ。
>>405 PikeとLuaはCマガの去年の10月号で紹介されてました。
Rubyなどと同じようにスクリプト言語みたいです。
PikeはCやC++によく似た構文の言語で、
LuaはTclのような拡張言語ということです。
このページは何かruby-talkで話題になっていたらしいです。
Rubyの正規表現マッチングの速度はPerlにだいぶ負けてますね。。。
408 :
デフォルトの名無しさん :2001/01/14(日) 23:04
Marshalモジュールを使い2つの文字列を一つにまとめ、 その二つの文字列を再び取り出すという処理を ファイルに出力しないで行う方法を調べています 次のように一旦ファイルに出力すると順次読み込む事は可能ですが、 str = Marshal.dump("A") + Marshal.dump("B") f = File.open("dummy", "w+") f.print str f.pos = 0 p Marshal.load(f) p Marshal.load(f) f.close 次の方法だと2回目のloadでも当然文字列"A"が返ってきて"B"は取り出せません str = Marshal.dump("A") + Marshal.dump("B") p Marshal.load(str) p Marshal.load(str) strをload用にsplitするようなメソッドは なさそうですし、なんか無理そうですね。
>>408 IO の場合は読み込み位置が移動しますからね。
文字列を配列に入れてから Marshal.dump するのじゃだめですか?
>>409 ぎこるびさんのいうとおり一旦配列にして処理するようにしました
こうすると復元も一発なので楽ですね
ふと、気づいたのですが、
ary = ["A", "B"]
str = ary.inspect
p eval(str)
こうやってもdump/load相当の処理ができますね
この場合、おそらくevalで復元できる保証はないんでしょうけど。
>>410 んー、それで上手くいくのは、inspect がオブジェクトと同値の
Ruby の構文を出力する場合だけですよね。
たぶん組み込みの数値、文字列、配列、ハッシュくらい。
自分で定義したクラスも永続化させたいなら、
やっぱ Marshal 使うしかないですね。
p eval "{'foo'=>1}.#{Array(['invert']*100000).join('.')}" 1.6.2でこんな無意味なコード書いてたらWindowsの不正な処理で落ちました(藁 どんなまずい状況でも正しいエラー表示して終わってほしいですね
>>412 Ruby1.6.2/Cygwin1.1.7/Win2Kな環境で試してみました。
*26000ちょっとで無言落ちしますね。それ以下ではcore吐きます。
ただ、この文の前に print 1 などと入れておくとちゃんとcore吐きます。
ちなみにRuby1.6.2/Solaris7な環境では、*12930以上でSEGVして、
それより小さいとSystemStackErrorでした。
412さんのRubyがmswin32版ならRubyのバグでしょう。
Cygwin版ならCygwin側の問題の可能性もありますよね。
どちらにせよ僕には問題個所の特定はできませんが・・・
わたなべさんか中田さんにこそーりメールを送ると吉かも(笑
414 :
Ruby初心者 :2001/01/26(金) 07:36
Ruby初心者です。 Rubyを実用的に覚えるために、gnome appletで、日本時間とUTC時間を 表示するようなものを作りたいですが、どこかに参考になるようなサンプル ありませんか? プログラミング経験はありますが、gtkはかじったぐらい。です
MediaWatch@2ch 日経ソフトウェアのごとけんさんの記事。ちょっと詰め込みすぎな印象でした。 pやto_sメソッドの利便性は使ってみないと実感できない話だと思います。 とにかく使ってみたいと思わせるならば、 eRuby+DB接続、XMLパーサなんて話題がキャッチィだったかなあと。 PHPやPerlとためがはれて、OOなのでそれらよりも書きやすいという流れなら、 チェックしておくかと思わせることができるんじゃないかな。
417 :
デフォルトの名無しさん :2001/01/28(日) 14:15
eRubyのmswin32版バイナリってどこかで公開されていないでしょうか? 自分でもMAKEFILEを何度も修正したりしてなんとかビルドしてみたのですが、 正常なリンクができていないようで、起動時に、プログラムが大きすぎて 起動できないとかいうWindowsのエラーメッセージが出てきてしまうんです。
418 :
デフォルトの名無しさん :2001/01/28(日) 14:48
256本ってRubyUnitの事しか載ってないの? 本一冊分をUnitで埋めるほどには書く事ないような...
>>413 レスが遅れましたが、自分が使っているのはmswin32版です。
普通の使い方してたら出ないバグなので、こそーり報告やめとこ。
報告しづらいし。
>>419 BTSってなんでしょ?
421 :
デフォルトの名無しさん :2001/01/29(月) 19:47
今NHK「クローズアップ現代」でやっているage
422 :
名無しサンプリング@48kHz :2001/01/29(月) 20:01
>>421 ちょうど終わって
世界丸見えが始まった。
rubyの開発者の松本さんって
国からお金もらってがんばってるみたいだね。
ぜひともANSI規格になって欲しいものだ
423 :
名無しさんは見た! :2001/01/29(月) 20:03
424 :
デフォルトの名無しさん :2001/01/29(月) 20:09
しかし。なんかいかにも職業プログラマ的発想が並んでいる気が。
426 :
デフォルトの名無しさん :2001/01/30(火) 00:54
再放送期待age
クローズアップ現代は絶対再放送しないsage
ふざけんなゴルァ!! 税金返せ でも気が小さいのでsage
429 :
デフォルトの名無しさん :2001/01/30(火) 05:00
坂村健のいつでもアンチアメリカなところにAGE。 最近のくろーずあっぷ現代は大衆を洗脳する意図が見られるので SAGE。
430 :
名無しさん@お腹いっぱい。 :2001/01/30(火) 06:46
月曜日のクローズアップ現代、ダイジェストだれかかいて希望。
431 :
デフォルトの名無しさん :2001/01/30(火) 09:50
簡単に言うと面白くなかった。 だめっぽい。
433 :
くろーずあっぷ現代 :2001/01/30(火) 18:45
世界で始めての画期的技術を開発する日本人天才プログラマー 風の大げさで嘘っぽい説明が多かったな(笑) C言語では画面いっぱいのソースが必要なところをRUBYなら1行とか(笑) いくらなんでもそんなのばかりじゃないのにさ。 くろーずあっぷしすぎだぜNHK。
>>428 NHKは国営放送ではありません公共放送です
みなさまの受信料で運営されております
受信料ちゃんとはらってるか?
435 :
デフォルトの名無しさん :2001/01/31(水) 00:59
NHK受信料払ってないけど見たかったなぁ
>433 馬鹿だな。NHKは。 C言語とRuby比べてどうすんだよ(藁 これじゃ他の話題もマユツバもんだな。 受信料支払う価値なし。
Cでも関数にまとめれば1行 ついでにCはコンパイラ言語だしな さらにrubyは山のようにあるスクリプト言語のひとつにすぎんしな NHKの制作担当者逝って良し
439 :
デフォルトの名無しさん :2001/01/31(水) 04:33
>437,438 激しく同意 C言語がつくられたのは1972年、C++は1982年 そんな昔からある言語と比べてなんの意味があるんだろ せめて他のオブジェクト志向言語と比較しなければ意味ないよ
440 :
デフォルトの名無しさん :2001/01/31(水) 05:41
>>439 年代はともかく、CとRubyの用途はまったく違うぞ。
Rubyはオブジェクト指向とか言ってるんだから
他のオブジェクト指向とか言ってる言語と比較しないとね、、、
441 :
デフォルトの名無しさん :2001/01/31(水) 06:26
>>440 NHKはオブジェクト指向という言葉を知らなかった、に一票(藁
ruby-mode.el どこで手に入りますか? ご存じの方教えて下さい。
443 :
デフォルトの名無しさん :2001/02/01(木) 15:17
>>442 ソース(ruby-1.X.X.tar.gz)のmiscフォルダにあるよ
444 :
デフォルトの名無しさん :2001/02/02(金) 00:26
なぜNHKは受信料を受け取っているのにゴールデンタイムの番組の スタッフにパソコンに詳しい人材を入れられないのか。 NHKは中途半端に民放の影響をうけて"おーいにっぽん"のような糞番組しか作れなくなっている。
eRubyのmswin32版バイナリ探しまわってもやっぱどこにもないです そもそもWindowsでRuby使っている人が少なすぎ。 もしかしてWindowsユーザーでeRuby使いたいって思ってるの自分だけなのか?(鬱
ありがとうございました。>443
448 :
デフォルトの名無しさん :2001/02/02(金) 09:00
これから始める人には何を勧めますか? Perl,Python,Rubyとかで あ、わたくし無知ですので軽ーく指南して下さる感じで
449 :
デフォルトの名無しさん :2001/02/02(金) 09:12
450 :
デフォルトの名無しさん :2001/02/02(金) 13:48
御指南有り難うございます
451 :
デフォルトの名無しさん :2001/02/02(金) 18:22
>>448 漏れ的にはRubyをお勧め。
と言っても漏れはRubyに惚れてるので冷静な意見ではありません。
Perlも悪くないのですがでかいプログラムを組もうとすると死にます。
Rubyは破綻が少ないので脳みそが楽。
でも標準装備ISPが少ないなど普及度に問題があります。
そんなとこかな。Pythonは未使用なので悪しからず。
>>448 自分は日頃Ruby使ってるけど初めて使う人にはPerlをお勧めするかな。
だって今、RubyやPython使ってる人は基本的にPerlから習得していったでしょ?
>448 3つとも使ってたが、PerlじゃなければRubyでもPythonでもいい。
Pythonなら、Iriaとかのマクロを組むのに使える可能性がある。
WindowsにRuby/Gtkをインストールしようと悪戦苦闘すること3時間。 もうあきらめました。もういいです。 Windowsに入れようとした自分が無謀でした。ごめんなさい。
456 :
デフォルトの名無しさん :2001/02/07(水) 01:46
誰か Ruby で Linux のインストーラ書いてくれ…
PythonがRedHatのインストーラに使われてるから?
そいえば、RubyでZopeっぽいのってあるの? Wiki系はあるみたいだけど。
459 :
デフォルトの名無しさん :2001/02/07(水) 11:13
Rubyを256倍使うための本(極道編)購入age
>>458 webapp to iu koto nara, IOWA ga aruyo.
WebObjects like rashii.
ruby-talk de moriagatteru yo.
461 :
デフォルトの名無しさん :2001/02/08(木) 07:13
おれもRuby極道になった。 testall.rbの書き方とかquiet-modeとか結構参考になったぞ。
462 :
1 :2001/02/08(木) 08:30
1
463 :
デフォルトの名無しさん :2001/02/08(木) 10:59
464 :
デフォルトの名無しさん :2001/02/08(木) 11:02
>>464 ruby-talkでやってくれ、っていう要望が多かったから。みんな
そっちにメールしてる。
466 :
デフォルトの名無しさん :2001/02/08(木) 13:14
「オブジェクト指向スクリプト言語Ruby」の 英訳本っているでるの? 「Programming Ruby」が読み終わるまでにでてほしい。。
467 :
デフォルトの名無しさん :2001/02/08(木) 16:27
今のとこ一番詳しい本って何? やっぱ、「オブジェクト指向スクリプト言語Ruby」 を読むのが一番かな?
468 :
デフォルトの名無しさん :2001/02/08(木) 23:55
Rubyをアプリに組み込んでるけどGC発動が原因のようで しばらく動作させていると謎のエラーが起きることがあります (GCを無効にすると起きない) README.EXT.JPを読むとRubyオブジェクトを指す変数はGCの為に登録するように 書いてあって、そのとおりにしているんだけどなぁ 組み込み用のもっと詳しいドキュメントないのかな
469 :
456 :2001/02/09(金) 08:03
>457 そうっす。例外投げてインストーラがお亡くなりになるのはもう見たくないかも。 …つーてもこれは anaconda のせいで Python のせいじゃないか…
470 :
456 :2001/02/09(金) 08:05
>>457 gt は二つ要るのか… 2ch は最近きたばかりだからよく分かってなかったッス _o_
471 :
デフォルトの名無しさん :2001/02/13(火) 23:33
472 :
459 :2001/02/14(水) 17:32
256極道編まだ3分の1しか読めてないけど、 最初にテストルーチンを書いて失敗するのを確認してから正しいコードを書くとか。 勉強になりますなぁ
473 :
デフォルトの名無しさん :2001/02/17(土) 23:19
474 :
見てた人 :2001/02/17(土) 23:37
>>473 Rubyは始めて見たとき凄いなあ&日本語だぁでインストールしてみました、
Ruby/GTKも入れてGUIアプリ書こうとしました。
どっかにも書いたけどここでも書く。
Rubyが嫌な理由。
Thread.start
{
}
これがエラーになる。
これがすごく腹が立つ。
# コンピューターは難しすぎて使えないに書いてあるけど
# '{'と'}'をこう書くのは私の個人的目標なのです。
# # 馬鹿にされてるイメージというかそんな感じです。
# # 読んだことない人はぜひご一読あれ。
私 > cat thread_start_test.rb
Thread.start
{
}
私 > ruby thread_start_test.rb
Ruby > parse error
私 > (もう一度パースさせる)
Ruby > parse error
私 > (さらにパースさせる)
Ruby > parse error
ぱーすえらーだとさ。
何でこんなことも出来ないの?
馬鹿じゃん。。。。
これが出来れば言うことなしなんですけどね。
Makefileにアンインストールターゲットがないことを知ってから
Rubyをインストールする時は、
./configure --prefix=/tmp/ruby
とやってます。
/usr/localなんかしたら手動で消さなきゃなんないし。
自分のHDDに寄生されてる気がしてくる。だから隔離する。
ついでに言うとRubyってドキュメント少ないですね。
朽ち果てるまでparse error言ってろ。>Ruby
Ruby > parse error
Ruby > parse error
Ruby > parse error
Ruby > parse error
Ruby > parse error
Ruby > parse error
Ruby > parse error
.....
475 :
見てた人 :2001/02/17(土) 23:47
>>473 Rubyは始めて見たとき凄いなあ&日本語だぁでインストールしてみました、
Ruby/GTKも入れてGUIアプリ書こうとしました。
どっかにも書いたけどここでも書く。
Rubyが嫌な理由。
# Ruby 1.6.2を使っていました。
Thread.start
{
}
これがエラーになる。
これがすごく腹が立つ。
# コンピューターは難しすぎて使えないに書いてあるけど
# '{'と'}'をこう書くのは私の個人的目標なのです。
# # 馬鹿にされてるイメージというかそんな感じです。
# # 読んだことない人はぜひご一読あれ。
私 > cat thread_start_test.rb
Thread.start
{
}
私 > ruby thread_start_test.rb
Ruby > parse error
私 > (もう一度パースさせる)
Ruby > parse error
私 > (さらにパースさせる)
Ruby > parse error
ぱーすえらーだとさ。
何でこんなことも出来ないの?
馬鹿じゃん。。。。
これが出来れば言うことなしなんですけどね。
Makefileにアンインストールターゲットがないことを知ってから
Rubyをインストールする時は、
./configure --prefix=/tmp/ruby
とやってます。
/usr/localなんかしたら手動で消さなきゃなんないし。
自分のHDDに寄生されてる気がしてくる。だから隔離する。
ついでに言うとRubyってドキュメント少ないですね。
さらに言うと、ソースもとても参考にさせてもらってます。
# 誰かパッチ作って。
# でも、parse.yを見てると改行を構文として使ってるから難しいのかな。
# それと量が多すぎる。メソッド呼び出し時に'('と')'を省略出来ないようにして
# 行末の';'も省略できないようにすれば結構小さくなると思うんだけど、、、
朽ち果てるまでparse error言ってろ。>Ruby
Ruby > parse error
Ruby > parse error
Ruby > parse error
Ruby > parse error
Ruby > parse error
Ruby > parse error
Ruby > parse error
.....
2回書いちゃいました。
a=[0]; b=[a]; a[0]=b で朽ち果てるけど、これは仕様?
>>475 愚痴を言われてもなぁ。Rubyの思想に共感できない場合は
辛いだけだと思うので無理に使わないほうがいいですよ
>>477 朽ち果てないよ。1.6.2で確認。
Rubyっていい言語なんだろうけどさ、他の言語を誹謗中傷したり、 Ruby信者に洗脳するかのような、まつもとの語りっぷりが気に 食わない。 ちょっとでもRubyを叩くと信者が怒り出すし、なんか嫌だな。 良い言語である以上仕方がないのかもしれないけどさ。
RubyってCGIとone-liner以外に使われてるの?
481 :
デフォルトの名無しさん :2001/02/20(火) 05:46
誹謗中傷、洗脳ってどんな?
>知る人ぞ知るオブジェクト指向言語であるEiffelとRubyを比較すると: >対象とする範囲が違いすぎる(ならリストにいれるなよ ^^;;;) >いろいろと有名なオブジェクト指向言語であるC++とRubyを比較すると: >C++なぞ問題外.^^;;; すげーいちゃもんのつけっぷりだな いくら高速化してもC++の数十分の一の速度しかでないぞ。 得意分野が違うなら、比較すんなよ。って感じだな。
484 :
デフォルトの名無しさん :2001/02/20(火) 12:33
便利と思い、使いたいと思う人が使えばいいだけのことであって、 自分が使わない理由付けを無理にするあまり、その言語、あろ うことか、その作者までを貶めようとする、その精神が理解できません。
>>485 特に、誰に対して、という限定はしておりませんけど、
何か、文句でもあんのか、ゴラァ
489 :
デフォルトの名無しさん :2001/02/20(火) 23:20
>>488 Lispじゃさすがに違いがありすぎて比較できんだろ…
俺的にはAdaをいれて欲しかった。
491 :
デフォルトの名無しさん :2001/02/21(水) 00:58
この世にRuby以外の言語は必要ありません
492 :
デフォルトの名無しさん :2001/02/21(水) 01:01
Perl,Python,assembler,C,Java,Lisp に代わる 21世紀の言語がRubyなのです!
493 :
デフォルトの名無しさん :2001/02/21(水) 01:09
C#...
494 :
まつもた :2001/02/21(水) 01:16
C#なぞ問題外...
※Mind...
>>491 Rubyをmakeできないじゃん。
しょせんスクリプト。
RubyでCインタプリタ作ってビルドするのさ
498 :
デフォルトの名無しさん :2001/02/21(水) 02:02
この世にRubyという言語は必要ありません。
499 :
デフォルトの名無しさん :2001/02/21(水) 02:23
Rubyなぞ問題外...
500 :
デフォルトの名無しさん :2001/02/21(水) 06:45
>>496 RubyでRubyを書く計画が進行中。もうじきCは不要に・・・
>>500 遅くならないかどうか心配…
それに、RubyのCソースが使えなくなるのは嫌だな…
>>500 JPythonのようにJava実装をつくってるひとはいないの?
503 :
デフォルトの名無しさん :2001/02/22(木) 09:32
なんでRAAには日本語のページがないんじゃーーー。 あと、日本人が作ったパッケージなのに、アーカイブに 日本語のドキュメントが無いやつもある。 README.jaくらい用意しとかんかい! ・・・という内容のメールをMLに流そうと思ったんですが、 思いとどまりました(^^;
504 :
デフォルトの名無しさん :2001/02/22(木) 10:07
>>503 そだよね。激しく同意。
ただ、ruby-talkの盛り上がりを見てると、
英語のリーディングをなんとかせねば、とおもふ。。
>>503 あー、それ俺も不満。
なんか、うまい言葉が見つからないが、「気取ってる」っていうか、
そんなかんじ。
そういう雰囲気が、アンチを増やすのかな。
Windows使ってる人から見ると、拡張子をtxtじゃなくてjaにしてる だけでも上級者気取りに見える。
日本語ドキュメントしか書かなきゃ 「所詮極東の島国のソフトは世界じゃ普及しねー」言われて 英語ドキュメントしか書かなきゃ 「気取ってる」言われて 両方入れても 「拡張子jaにしてるん気取ってる」言われて 所詮文句言う人間は尽きねーつー事ですか。
>>502 素朴な疑問。Javaで作って何の意味があるの?
というか、英語版と日本語版を別にして配ればいい。
>>500 RubyVMの話ですね。
僕の英語力じゃruby-talkは追えないので
誰かが経緯をまとめてくれるのを待ってます。
>>508 Javaから簡単にRubyを使うことができるようになります。
Javaも正規表現ライブラリがあるし、
どこまで必要性があるかはわかりません。
>>509 ですねー。僕の場合は README.ja.txt と README.en.txt にしてます。
en は excite さんに書いてもらってますが(笑
512 :
ぎこるび :2001/02/23(金) 01:37
Jpythonって、てっきり、pythonでソースを書いて、 Javaのバイトコードを吐くのかと思ったけど、違うの?
515 :
デフォルトの名無しさん :2001/02/24(土) 16:53
昨日Ruby Entry Package for Win32入れました。 少なくとも数式電卓としては使えそうで嬉しい。 でもRubyの作者に好感を持てないのがいまいちだな。 俺は「Rubyと他言語の比較」を読んで作者を嫌いになったよ。 自分に有利な比較しかしてないような印象をうけるんだよね。 なんかTRONの坂村って人を思い出しました。
516 :
デフォルトの名無しさん :2001/02/24(土) 16:58
>>515 よく知らんけど、あれは半分以上冗談でしょ?
何をマジになってんのか知らんけど(藁
俺は笑いながら読んだよ。あんなの真に受けてるのお前だけだよ
517 :
デフォルトの名無しさん :2001/02/24(土) 17:39
感じ悪いって言った人の感じをなおさら悪くしてどうするんだ。 あれは、冗談は冗談でも、rubyがもっとマイナーだったころの内輪ネタみたいなもんでしょ。 一般ユーザーにはそういうところも感じ悪く映る。 ここまでメジャーになってきた以上、あのページは削る一手だと思うがな。
519 :
デフォルトの名無しさん :2001/02/25(日) 04:26
>>515 でも作者が気に入らないとか言ってたら、切りがないですよ。
OpenBSDのTheo de RaadtやqmailのDJBは偏屈だし、namazuの高林さんも
GNU至上主義だし、そのGNU ProjectのRMSは誰もが認める変人。Perlの
Lally Wallはアニメオタクのくせして「Perlはポストモダンな言語である」
なんてアホなこというし。
というわけで、作者の好き嫌いとソフトを使うかどうかは切り放して
考える方がいいと思います。
520 :
デフォルトの名無しさん :2001/02/25(日) 04:28
>>519 >アニメオタク
本当なんですか!?
びっくり。
521 :
519 :2001/02/25(日) 04:58
>>520 本当です。これ、
http://lwn.net/2001/features/LarryWall/に CL: First of all, how do you like it in Japan?
LW: Oh, I like it a lot. But I've been here once before, at Tokyo, and my family watches a lot of anime, "Otaku desu"
("I'm a nerd" in Japanese :-) So in many ways, everything seems so familiar, even before I never came here. It seems
interesting, still.
という部分があります。追加すると、fetchmailの作者で「伽藍とバザール」
を書いたEric Raymondはガンマニアですね。
と、ソフトウェアの作者の考えや好みには「ちょっと……」と思う部分も
ありますが、書いた文章を読んだりすると悪い人でもないみたいですし、
気にしないでソフトを使ってます。
>515
>俺は「Rubyと他言語の比較」を読んで作者を嫌いになったよ。
>自分に有利な比較しかしてないような印象をうけるんだよね。
作者はそれについて
>独断と偏見に基づいていますが、嘘を広める意図はないので、間違い、訂正、
>補足などあれば
[email protected] まで。
と書いているので意見すれば?
tab
tab
525 :
なんでもいいけど名無しさん :2001/02/25(日) 14:39
Ruby すれなんかあったんだ。ってか PG スレ見てなかった(汗)
>>503 ある種の戦略じゃないかな?
英語のみとかしてるの簡単なものの場合ばっかだし。
やっぱ世界レベルでデファクトスタンダードにならなきゃ広まりにくいってことかと。
ま、難しいのに関しては日本語で色々書いてくれてるし私は一応満足かな。
RWiki とか Racc なんて、英語圏の人が作ってたら理解出来なんだよ、きっと。
で、海外もだんだん活発になってるようで。
DDJ に載ったらしいのと Dave & Andy 本が online になったのとのせいか、
ruby-talk 100mail/day ぐらいいってるし… エグい(汗)
526 :
デフォルトの名無しさん :2001/02/25(日) 14:42
ほんと初心者の質問ですいません。 requireで *.rb以外の拡張子って呼び出せないんですか? オブジェクト指向スプリクト言語Rubyの中のライフゲームのやつですけど・・。
527 :
515 :2001/02/25(日) 15:08
えーと、言語自体には好感を持てたが作者自身には良いイメージを
持てなかったので、他の人はどうなんだろうなと思って書きこみし
ただけなんですが、書き方が不味かったせいで、不快な思いをさせ
てしまった方もいるようでなので謝ります。
>>156 >よく知らんけど、あれは半分以上冗談でしょ?
俺もそう思います。でも対Perl辺りは真面目に書いてあるので
冗談か本気かわかりませんでした。
>>517 丁寧なレスありがとうございます。よく分かりました。
急にメジャーになったのかな?俺はテレビでRubyのこと
を知ったんで、そこそこメジャーな言語なんだろうと思って
HPを見てました。
>>519 >でも作者が気に入らないとか言ってたら、切りがないですよ。
ええ、そうですね。でも作者も好きになれれば、それに越したこと
はないのですが。
まつもと氏のこういうところが好きだって所ないですかね?
俺はRubyのエラーメッセ−ジが思ったより丁寧だったので少し
見直しました。
>>522 >>独断と偏見に基づいていますが、嘘を広める意図はないので、間違い、訂正、
>>補足などあれば
[email protected] まで。
>と書いているので意見すれば?
別に嘘が書いてある訳ではなさそうですし、補足を付けられる程の
知識もまだ無いので、今のところ意見する気はありません。それに
515で書いたことぐらいは自覚した上でやっているのでしょうから、
送っても大きなお世話なだけでしょう。
--
#ちなみに俺はRubyを調べて始めて数日なのでRubyもまつもと氏の
#ことも良く知りません。
528 :
デフォルトの名無しさん :2001/02/25(日) 15:28
ま、作者の人格やなんかはともかくとして、あのUnix至上主義 はちょっと困ると思うんですが。 あと、前に私がPythonのメーリングリストに入ってた頃、たまに 煽りに来てましたね。あれは見苦しかった。まだやってるのかな?
529 :
デフォルトの名無しさん :2001/02/25(日) 15:44
>>527 ちょいと前に Perl/Ruby Conference というのがあって、それの記事が
そこらへんに転がってるので探してみるといいかもしれません。< vs Perl
ま、人格は直接知ってる訳じゃないのでよくわからんかな、と逃げておく。
ML でたまに話してるけど、あまり好感は持ってないということで。
>>528 UN*X 至上主義は、やっぱ Win でも UN*X でもいろいろやってると
程度の差はあれ多少はなりやすいかなと思いますね。
C++ も使ってるけど、しょーもないことが隠蔽されててそれを調べるのに
丸2日とか使った日にはもう嫌になりますし…。
あ、あと、無断 Ver.UP &無断仕様変更とか…………。
530 :
Rubyに関係ないけど :2001/02/25(日) 19:52
>>528 > ま、作者の人格やなんかはともかくとして、あのUnix至上主義
> はちょっと困ると思うんですが。
でもマルチプラットフォームを追及してJavaみたいになっても使いづらいし、
難しいですよね……。
羊本(?)のライブラリ編が出てた。 さすがに、お布施する気にはなれなかったよ。
532 :
527 :2001/02/27(火) 13:17
>>528 >ちょいと前に Perl/Ruby Conference というのがあって、それの記事が
>そこらへんに転がってるので探してみるといいかもしれません。< vs Perl
情報ありがとう。ちょっと検索してみたけど、会議のお題目の概要くらいしか
見つけられなかった。まあPerlからの移植をやるわけではないので、これ以上
突っ込むのはやめておきます。お題目を見るだけでも結構面白かった。
533 :
デフォルトの名無しさん :2001/02/27(火) 17:15
>>531 羊本ってデスクトップリファレンスの事?
にしてもライブラリ編が出ているというのはめちゃくちゃ嬉しいね。
今までライブラリの仕様把握してないままコピペで使ってたりしてたからな
個人的にはPerlクイックリファレンスぐらいの
これさえあれば最強っていうぐらいのリファレンス本が欲しい所だが。
左ページに羊見つけました。右には鳥が。 これが何を意味するのかまったくもって謎だ。さすがRuby。 今日は、そのライブラリ編と256無道編も購入。 でも optparse の解説が載ってなくて悲しかったよ
537 :
デフォルトの名無しさん :2001/03/05(月) 13:09
538 :
デフォルトの名無しさん :2001/03/05(月) 13:12
539 :
デフォルトの名無しさん :2001/03/05(月) 13:21
540 :
デフォルトの名無しさん :2001/03/05(月) 17:01
昨日mingw版をダウンしてきたage。 まだ質問はありません。
>>539 なるほど、納得。
# RAA日本語バージョン希望っていうのがruby-listに流れてましたね。
# どういう反応が返ってくるのだろう。
がいしゅつだったら済みません , yieldについて質問です . `` loopの中の核の部分の 関数 ( なり ) を置き換えるのは簡単 なのに loopの中の核の部分を取り囲む部分 を簡単に置き換えれないのか . どうにかしてくれ '' という要求に応える仕掛けがyield であると考えていいのでしょうか . また , yieldは `` イールド '' と読むのでしょうか .
543 :
↑ :2001/03/05(月) 21:55
スレッドストッパー(ワラ
名前と「てにをは」はまともになったみたいだね。 あとは、みょうな分かち書きをまずなおせ。内容はそれからだ。
>>544 デフォルトの名無しさん さん
やれやれ , 2ちゃんで `` 現代仮名遣いスタンダード '' 徹底か .
Ruby嫌いな_Perl使い がこう言ってきたら , あんた何て答える ? ':->' .
* `` {} '' でなく `` end '' だなんて駄目だ . 直せ .
* `` s/// '' が `` sub(){} '' だなんて駄目だ . 直せ .
意味がわかりません。もっとわかりやすく書いてよ。
Rubyの文法は、それがRubyのスタンダードなのだから、 「直す」対象ではありません。 Rubyのソースが読めないのなら、「Rubyスタンダード」を 学習するまでです。 一方、あなたの文章スタイルは非常に読みづらい。 それが、「俺ってこせいてきー?、みたいなー」などという 非常に自分勝手なな自己表現に過ぎないと言うことを 認識すること。 何にこだわっているのか知りませんが、読んで欲しければ まともな文章を書くこと。
548 :
デフォルトの名無しさん :2001/03/07(水) 14:07
256倍邪道本 読んだ人いる? 分散オブジェクト環境としての Windows を Ruby で使い倒そうぜ という内容なんだけど、感動的な本だ。Windows に興味がない人 も是非読むといいよ。 「分散オブジェクト環境としての Windows」という、環境に依存した 本質的ではない知識を記述しているにもかかわらず、最終的に本質的 な真理を垣間見るという、スリリングな体験を味わった。 この本の著者に敬意を表したい。 「Ruby を256倍使うための本 邪道編 」 著者 arton ASCII出版。
>>548 読みました。256シリーズはあの無意味に強調された構文に嫌悪感を抱くけれど、
Ruby256倍は結構面白かったです。
俺はRuby自体よりもActiveScriptなどの理解が深まっただけで、
本質的な真理は残念ながら見れなかったけど、もう一度読んでみようかな。
550 :
デフォルトの名無しさん :2001/03/07(水) 15:33
ActiveScriptRubyって、GUI出来るの?
551 :
デフォルトの名無しさん :2001/03/07(水) 15:35
ActiveScriptRubyそのものには、GUI機能は無い。 HTAやGTKと組み合わせればGUIも可。
( あら , いつの間にか話が進んでる . `` 再開 '' すると 荒らしまがい以上 になりそうだな . 残念 )
554 :
デフォルトの名無しさん :2001/03/08(木) 16:41
話の流れを止めて申し訳ないんですけど 組み込みに関する質問いいですか? VALUE objA = rb_str_new2("A"); rb_gc(); このように書いたとき、rb_gc()の後に objA が死んでない(文字列 "A" を持っている)保証はあるのでしょうか? 自分で試した限りでは8000個ぐらい前に 生成したオブジェクトは死んだりすることもありました。
555 :
デフォルトの名無しさん :2001/03/08(木) 17:25
>>554 これってスコープに関連した話?(どきどき)
556 :
544 :2001/03/08(木) 21:10
↑544じゃなくて554でした。
558 :
555 :2001/03/09(金) 08:29
通常の言語だとスコープの範囲でGCされちゃうというのは ありえないでしょ。 で、Ruby のスコープというのが...(どきどき)
559 :
554 :2001/03/09(金) 09:16
オブジェを生成した時はGCから守るために rb_gc_register_address に登録して、 スコープ外になったときは rb_gc_unregister_address で解除する。 という使い方をすればいいんですかね? なんか、これだと普通に malloc/free やっているのと変わらないような気も・・・。
>>554 文脈依存なんでそれだけではわからじ。
for(int i; i<8000; i++){
VALUE objA = rb_str_new2("A");
rb_gc();
}
なら、最後の1個以外は変数から参照されてないんで死にますが、
そういう話ではないよなぁ。うーん......。
561 :
554 :2001/03/09(金) 13:43
8000個ぐらい前のオブジェが死ぬといっていたソースはこれです void main(int argc, char **argv) { ruby_init(); ruby_script(argv[0]); int num = 8000; VALUE *table = (VALUE *)malloc(sizeof(VALUE *)*num); for (int i=0; i<num; i++) { char buf[256]; sprintf(buf, "%d", i); table[i] = rb_str_new2(buf); assert(TYPE(table[i]) == T_STRING); printf("%d: ", i); assert(TYPE(table[0]) == T_STRING); assert(atoi(STR2CSTR(table[0])) == 0); printf("%s\n", STR2CSTR(table[0])); } free(table); } 実行すると、7406回ループしたところで、 Assertion failed: TYPE(table[0]) == T_STRING, file main.cpp が出てしまいます
>>560 >最後の1個以外は変数から参照されてないんで死にますが
そのままでは、参照されているかどうかは
Rubyには伝わらないと思うんですが。
563 :
デフォルトの名無しさん :2001/03/09(金) 18:55
まずそのプログラム自体を解読しないと(笑 僕にはとても無理なのでパスします。 JARH作るのが得意な人なら向いてそうですね。
565 :
デフォルトの名無しさん :2001/03/10(土) 23:53
>>554 volatile を付けるというのが定番だけど、ruby_init() の外か。
int num 以降を別関数に分けるとうまくいくかも。
ちなみに configure のオプションと CFLAGS は?
566 :
デフォルトの名無しさん :2001/03/11(日) 01:49
>>561 VALUE じゃなくて VALUE* じゃん。
そりゃダメだわ。だって rb_gc_mark() って VALUE しか対象にしてないから。
Array を使えばよさそうな気がする。たぶん。
void hoge(int num)
{
int i;
VALUE ary = rb_ary_new2(num);
table = RARRY(ary)->ptr;
for (i = 0; i < num; i++) {
char buf[256];
sprintf(buf, "%d", i);
table[i] = rb_str_new2(buf);
assert(TYPE(table[i]) == T_STRING);
printf("%d: ", i);
assert(TYPE(table[0]) == T_STRING);
assert(atoi(STR2CSTR(table[0])) == 0);
printf("%s\n", STR2CSTR(table[0]));
}
rb_gc_force_recycle(ary);
}
567 :
561=554 :2001/03/11(日) 14:15
>>565 >>566 レスどうもです
ちょっと疑問に思ったところがあるのでいくつか。
VALUE ary = rb_ary_new2(num);
とした時にRuby側はArrayオブジェが
ary に代入された事はわからないんじゃないでしょうか?(
>>562 と同様)
あと rb_ary_new2(num) で配列の大きさをあらかじめ決めていたら
RARRAY(ary)->ptr にも直接データを入れる事をしてもいいんでしょうか?
(README.EXT.jpの128行目にはバグの原因になるような事がかかれてありました)
それでptr[i]を書き換える部分を rb_ary_push 変えて試したソースがこれです
// コンパイルとリンクの方法(for mswin32)
// cl -Zi -MD -GX -c main.cpp
// link /out:main.exe /opt:"NOREF" main.obj libruby.lib user32.lib advapi32.lib wsock32.lib
#include <ruby.h>
#include <assert.h>
void main(int argc, char **argv)
{
ruby_init();
ruby_script(argv[0]);
int num = 8000;
int i;
VALUE ary = rb_ary_new2(num);
for (i = 0; i < num; i++) {
printf("%d: ", i);
char buf[256];
sprintf(buf, "%d", i);
VALUE str = rb_str_new2(buf);
assert(TYPE(ary) == T_ARRAY);
assert(TYPE(str) == T_STRING);
rb_ary_push(ary, str);
assert(TYPE(ary) == T_ARRAY);
assert(TYPE(str) == T_STRING);
assert(TYPE(RARRAY(ary)->ptr[0]) == T_STRING);
assert(atoi(STR2CSTR(RARRAY(ary)->ptr[0])) == 0);
printf("%s\n", STR2CSTR(RARRAY(ary)->ptr[0]));
}
rb_gc_force_recycle(ary);
}
実行結果の最後
7405: Assertion failed: TYPE(ary) == T_ARRAY, file main.cpp, line xx
ちなみに rb_gc_force_recycle って初耳でしたが
ソースみても何をやっているのかさっぱりです(T_T)
568 :
565,566 :2001/03/11(日) 20:47
>>567 > VALUE ary = rb_ary_new2(num);
> とした時にRuby側はArrayオブジェが
> ary に代入された事はわからないんじゃないでしょうか?(
>>562 と同様)
スタックにある VALUE は無理矢理探して mark するということをしてます。
しかしスタックエンドを知るポータブルな方法というのはないので、
場合によってはうまくいったりいかなかったり。今回のように
ruby_init() を呼び出したのと同じ関数で VALUE を持ってたりすると、
引っかからなかったり。
> あと rb_ary_new2(num) で配列の大きさをあらかじめ決めていたら
> RARRAY(ary)->ptr にも直接データを入れる事をしてもいいんでしょうか?
> (README.EXT.jpの128行目にはバグの原因になるような事がかかれてありました)
実際には RARRAY(ary)->ptr は問題はないはずだけど、
避けたければ ALLOCA_N() という手も。
void hoge(int num)
{
int i;
VALUE *table = ALLOCA_N(VALUE, num);
for (i = 0; i < num; i++) {
char buf[256];
VALUE str;
printf("%d: ", i);
sprintf(buf, "%d", i);
str = rb_str_new2(buf);
assert(TYPE(str) == T_STRING);
table[i] = str;
assert(TYPE(table[0]) == T_STRING);
assert(atoi(STR2CSTR(table[0])) == 0);
printf("%s\n", STR2CSTR(table[0]));
}
}
> ruby_init();
> VALUE ary = rb_ary_new2(num);
> 実行結果の最後
> 7405: Assertion failed: TYPE(ary) == T_ARRAY, file main.cpp, line xx
結局 ruby_init() を呼んでるのと同じレベルで VALUE を保存してるので、
ary は mark の対象にならないわけ。
このへんはもう実装の都合としかいいようがないけど、
組み込みというのはまだあんまり使われてる例がないから練れてないというのもある。
> ちなみに rb_gc_force_recycle って初耳でしたが
> ソースみても何をやっているのかさっぱりです(T_T)
その名の通りオブジェクトを強制的にゴミとみなしてリサイクル。
> // コンパイルとリンクの方法(for mswin32)
> // cl -Zi -MD -GX -c main.cpp
> // link /out:main.exe /opt:"NOREF" main.obj libruby.lib user32.lib advapi32.lib wsock32.lib
ちなみに、この /opt:"NOREF" って? mswin32 版の miniruby をリンクするときに
必ずこのオプションがどうこうっていうのが出るんだけど意味不明なので、できれば解説きぼーん。
569 :
デフォルトの名無しさん :2001/03/12(月) 11:49
>>567 適当に書いたんで、RARRAY(ary)->len をいじるのを忘れてた。
rb_ary_push()を使うというのが正解。スマソ。
570 :
567 :2001/03/13(火) 00:46
>>568 > スタックにある VALUE は無理矢理探して mark するということをしてます。
そ、そんな裏技使われていたんですか。すご。
それ聞いてやっと関数にするという意図がわかりました。
で、再び修正したソースがこれです
全てが解決されたと思いましたが、
// コンパイルとリンクの方法(for mswin32)
// cl -Zi -MD -GX -c main.cpp
// link /out:main.exe /opt:"NOREF" main.obj libruby.lib user32.lib advapi32.lib wsock32.lib
#include <ruby.h>
#include <assert.h>
void hoge(int num)
{
int i;
VALUE ary = rb_ary_new2(num);
for (i = 0; i < num; i++) {
printf("%d: ", i);
char buf[256];
sprintf(buf, "%d", i);
VALUE str = rb_str_new2(buf);
assert(TYPE(ary) == T_ARRAY);
assert(TYPE(str) == T_STRING);
rb_ary_push(ary, str);
assert(TYPE(ary) == T_ARRAY);
assert(TYPE(str) == T_STRING);
assert(TYPE(RARRAY(ary)->ptr[0]) == T_STRING);
assert(atoi(STR2CSTR(RARRAY(ary)->ptr[0])) == 0);
printf("%s\n", STR2CSTR(RARRAY(ary)->ptr[0]));
}
rb_gc_force_recycle(ary);
}
void main(int argc, char **argv)
{
ruby_init();
ruby_script(argv[0]);
hoge(8000);
}
実行結果の最後
7405: Assertion failed: TYPE(ary) == T_ARRAY, file main.cpp, line 17
なぜ!?
/opt:"NOREF" の事
単純にリンクすると、
> LINK : warning LNK4089: "ADVAPI32.dll" へのすべての参照は /OPT:REF によって廃棄されます
という警告が出たので、その通りに /opt:"REF" を付けても、また同様のエラーが出たので、
link /? で見つけたオプションを一通り試していたら /opt:"NOREF" でやっと警告が出なくなった。
というわけです。 /opt:"NOREF" が何なのかよくわかってません(w
571 :
568 :2001/03/13(火) 01:25
>>569 > 実行結果の最後
> 7405: Assertion failed: TYPE(ary) == T_ARRAY, file main.cpp, line 17
> なぜ!?
このへんはコンパイラ次第なので想像だけど、こうするとスタック
上の配置が変わって通るかも。ruby_init() と hoge() が同じレベル
になので、場合によってはぎりぎり洩れる可能性もあるんで。
void hoge(int num)
{
int i;
char buf[256];
VALUE ary = rb_ary_new2(num);
for (i = 0; i < num; i++) {
/* ... */
}
}
# もうちょっとスマートな手はないかなぁ。
あとは、Init_stack() でスタックエンドを明示しちゃうとか。
int main(int argc, char **argv)
{
ruby_init();
ruby_script(argv[0]);
Init_stack((VALUE *)&argc); /* <-- スタック上のならなんでもよい */
hoge(8000);
return 0;
}
> /opt:"NOREF" の事
>
> 単純にリンクすると、
> > LINK : warning LNK4089: "ADVAPI32.dll" へのすべての参照は /OPT:REF によって廃棄されます
> という警告が出たので、その通りに /opt:"REF" を付けても、また同様のエラーが出たので、
> link /? で見つけたオプションを一通り試していたら /opt:"NOREF" でやっと警告が出なくなった。
> というわけです。 /opt:"NOREF" が何なのかよくわかってません(w
あぁなるほど、NO が必要だったわけですか。助かりました、どうも
です。
# にしても意味不明の警告メッセージだな。
572 :
デフォルトの名無しさん :2001/03/13(火) 01:33
>>570 >>571 MSDNみよーぜ
advapi32.libに入ってる関数を使ってないから、
このライブラリはリンクしないよんってエラーね。
ようは、リンクしなければ良いわけ。ok?
573 :
571 :2001/03/13(火) 01:50
>>572 > MSDNみよーぜ
> advapi32.libに入ってる関数を使ってないから、
> このライブラリはリンクしないよんってエラーね。
> ようは、リンクしなければ良いわけ。ok?
ok,ok。単純な話なのね。
でも advapi32.lib って何のためにリンクしてんだっけ。
知ってる人とか Win でちゃちゃっと調べられる人とかいない?
一般的なところではシャットダウンとかレジストリとか。 あとはあまり使わないから知らない。
575 :
570 :2001/03/13(火) 08:47
>>568 たしかに char buf[256] を上に移動させたらアサートは出なくなりました
でも for でスコープが一段深くなっているのにどうしてなんでしょう。
Init_stack の方は関数プロトタイプが intern.h に入ってなくて
自分でプロトタイプ書いて使ってもリンク出来ないですね
険しい・・・。
>>572 >>574 なるほど、そういうことだったんですか
576 :
デフォルトの名無しさん :2001/03/13(火) 15:14
>>574 どうも。その辺ですか。
ただ mswin32-ruby1[67].dll のリンクでは警告出ないんですが…。
単に DLL のリンクだと出さないだけかな?
>>575 > でも for でスコープが一段深くなっているのにどうしてなんでしょう。
逆に深くなってるから、そっちが後(というか ix86 だと上位)に取られて肝心
の ary が GC の範囲から外れてしまったのではないかと。このへんはほんと
にコンパイラ依存どころか、最適化のオプションとかでも変わって来そうなん
で、ちょっと一概にはいえないですが。
> Init_stack の方は関数プロトタイプが intern.h に入ってなくて
> 自分でプロトタイプ書いて使ってもリンク出来ないですね
あそっか、入ってないんだった。まぁあんまり外部から呼ぶもんでもないんだ
けど。で、C++ から使うときには、プロトタイプに extern "C" がいるはず。
extern "C" Init_stack(VALUE *);
577 :
575 :2001/03/15(木) 00:08
>>576 >extern "C" Init_stack(VALUE *);
あー、そんな初歩的な罠が。どおりでヒットしなかったわけだ。
で、無事 Init_stack を使ったら char buf[256] を
for のスコープに入れていても問題なかったです
それにしてもRubyのGC発動怖いなぁ。
組み込みんだプログラムがいつハングするか不安です
578 :
>577 :2001/03/15(木) 00:28
ハング?
579 :
デフォルトの名無しさん :2001/03/15(木) 01:08
>>577 GC でいじられるのはプールされたオブジェクトのみだから、
ネイティブスレッドを使ったりしなければさほど問題にはならないかと。
逆に複数のスレッドから使うとほぼ確実に落ちます。
というあたりの話?
580 :
577 :2001/03/16(金) 00:09
>579 ネイティブスレッド?? うーん、組み込んでいたプログラムはオブジェを生成してから どんどんスタックが深くなるように進むタイプ(?)ではなくて 浅いスタックまで一旦戻るタイプなんですよ (って意味がわかりにくいですね・・・) 簡単に例を上げると、 typedef struct { int foo; int bar; VALUE name; // ほかにもメンバがたくさん } HOGE; HOGE *hoge_new(void) { HOGE *p = (HOGE *)malloc(sizeof(HOGE)); p->name = rb_str_new2("Ruby"); return p; } void hoge_print(HOGE *p) { printf("%s\n", STR2CSTR(p->name)); } void hoge_del(HOGE *p) { free(p); } 実際はHOGEクラスもどき以外にもたくさんあって、 hoge_new と hoge_print の間に他のクラスが バリバリ生成されたりしてるんです ちなみにそのプログラムは稼動してから 約1時間半〜2時間後にハングアップする宿命です(涙)
581 :
デフォルトの名無しさん :2001/03/16(金) 00:32
もうRubyもGCの自力実装はやめてBoehm GC使えばいいのに。 MT-safeだし。いろんな環境で動くし。 でも、My GCって夢がなくなるからだめだよね(これが重要)。
582 :
デフォルトの名無しさん :2001/03/16(金) 01:07
>>580 > ネイティブスレッド??
Windows なら CreateThread() 使うようなやつです。
> typedef struct {
> int foo;
> int bar;
> VALUE name;
> // ほかにもメンバがたくさん
> } HOGE;
こういう風にすると、name からの参照は自動的には mark できないの
で、name がいつの間にか開放されてるというはめになります。これを
防ぐためには、hoge_new() で name が GC の対象になるようにします。
HOGE *hoge_new(void)
{
HOGE *p = (HOGE *)malloc(sizeof(HOGE));
p->name = rb_str_new2("Ruby");
rb_gc_register_address(&p->name);
return p;
}
void hoge_del(HOGE *p)
{
rb_gc_unregister_address(&p->name);
free(p);
}
とか、
VALUE hoge_names;
...
hoge_names = rb_ary_new();
rb_global_variable(&hoge_names);
HOGE *hoge_new(void)
{
HOGE *p = (HOGE *)malloc(sizeof(HOGE));
p->name = rb_str_new2("Ruby");
rb_ary_push(hoge_names, p->name);
return p;
}
void hoge_del(HOGE *p)
{
rb_ary_delete(hoge_names, p->name);
free(p);
}
> 実際はHOGEクラスもどき以外にもたくさんあって、
あるいは「もどき」じゃなくて実際に Ruby のクラスにしてしまうとか。
583 :
デフォルトの名無しさん :2001/03/16(金) 07:28
ばーか
584 :
580 :2001/03/17(土) 10:02
>>581 >Boehm GC
そんなのがあるんですか。初耳でした。勉強します。
http://ei5nazha.yz.yamagata-u.ac.jp/~aito/gc/gc.html (勝手にリンク)
>>582 >Windows なら CreateThread() 使うようなやつです。
そんなんですか、使うのは控えときます
>こういう風にすると、name からの参照は自動的には mark できないの
>で、name がいつの間にか開放されてるというはめになります。これを
>防ぐためには、hoge_new() で name が GC の対象になるようにします。
↓こんなマクロにしてテストしたら両方問題なかったです
#if REGIST_ADDR
#define OBJ_NEW(obj, x) obj = x, rb_gc_register_address(&obj)
#define OBJ_DEL(obj) rb_gc_unregister_address(&obj)
#else
#define OBJ_NEW(obj, x) obj = x, rb_ary_push(hoge_names, obj)
#define OBJ_DEL(obj) rb_ary_delete(hoge_names, obj)
#endif
どっちの方法もかわらない気がするけど登録したオブジェリストを
後から確認できる rb_ary_push の方がデバッグしやすいかな
とりあえず、美しくないけどこれらをあちこちに組み込もうと思います
>あるいは「もどき」じゃなくて実際に Ruby のクラスにしてしまうとか。
完全にRubyのクラスにするとシンプルで楽になりますね
でも結局、そのインスタンスを GC から守るために
また mark するかどうかの問題になってくるような気も。
585 :
デフォルトの名無しさん :2001/03/19(月) 01:52
Rubyでオブジェクト指向プログラミングしていると C++なんざではやってられんわい、と思っちゃう。 ま、元々C系統は嫌いなんだけどね(涙)
586 :
デフォルトの名無しさん :2001/03/19(月) 02:37
>>585 例えば、Rubyが良くてC++が駄目な所って具体的にどこですか?
587 :
デフォルトの名無しさん :2001/03/19(月) 02:52
Windows環境のVCでRubyの拡張モジュール作ろうと思っているんですが、 extern "C"_declspec (dllexport) void Init_test() { VALUE myModule = rb_define_module("test"); } とやるとrequire 'test'で、rb_define_moduleのところで 「[BUG] Segmentation fault」というエラーが出てしまう んですけど、何故でしょうか? このスレッドの過去ログで、同様の症状で、ライブラリのリンクが 間違っていたという記述がありましたが、リンクするライブラリは kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib mswin32-ruby16.lib となってます。 ちなみに、過去ログと同様、libruby.libをリンクすると参照が解決されていない というエラーが出ます。 あと、関係ないのですが、RubyWinで「require 'win32api.dll'」とすると、 「Ruby1:1:in `require': 127: 指定されたプロシージャが見つかりませんでした。」 というエラーが出るのですが、これは何故でしょうか?
結局、Rubyは優れてるけど作った奴は気に食わない、ってことで
なぜそこまで「まつもとが〜」言うのかわからん。
ここで588に「出る杭は打たれる」型の 妬み心理を指摘することは容易であるが以下略
591 :
デフォルトの名無しさん :2001/03/19(月) 15:34
つーか、Windowsじゃ使えないって事で。
593 :
デフォルトの名無しさん :2001/03/19(月) 16:00
>>587 > Windows環境のVCでRubyの拡張モジュール作ろうと思っているんですが、
>
> extern "C"_declspec (dllexport) void Init_test()
> {
> VALUE myModule = rb_define_module("test");
> }
>
> とやるとrequire 'test'で、rb_define_moduleのところで
> 「[BUG] Segmentation fault」というエラーが出てしまう
-DIMPORT なしでコンパイルするとだいたいそんな感じになりますが、ちゃんと
extconf.rb を作ってあれば大丈夫なはず。
> ちなみに、過去ログと同様、libruby.libをリンクすると参照が解決されていない
> というエラーが出ます。
えと、これって?
> あと、関係ないのですが、RubyWinで「require 'win32api.dll'」とすると、
> 「Ruby1:1:in `require': 127: 指定されたプロシージャが見つかりませんでした。」
> というエラーが出るのですが、これは何故でしょうか?
エントリポイントは Init_Win32API() なので require 'Win32API' でなきゃい
けないから。それと .dll は不要。
594 :
デフォルトの名無しさん :2001/03/19(月) 16:20
>>587 require の所は require 'win32api' でいいんじゃない?
と思って試しにやってみたら、
>GetProcAddress Init_win32api
>rb.rb:1:in `require': 127: 指定されたプロシージャが見つかりません。
>- c:/ruby/lib/ruby/1.6/i686-mswin32/win32api.so (LoadError)
こんなん出た。なんじゃこれ?
よくみたら
>>587 と同じエラーか。
c:/ruby/lib/ruby/1.6/i686-mswin32/win32api.so はちゃんと存在するのになぁ。
596 :
デフォルトの名無しさん :2001/03/19(月) 18:56
>>595 > よくみたら
>>587 と同じエラーか。
> c:/ruby/lib/ruby/1.6/i686-mswin32/win32api.so はちゃんと存在するのになぁ。
Windows のファイルシステムは case insensitive だけど、DLL のエントリポイ
ント名は case sensitive だということ。
597 :
デフォルトの名無しさん :2001/03/19(月) 19:58
まぁ、最低Linuxで、っていうことで。
598 :
デフォルトの名無しさん :2001/03/19(月) 23:15
安定版 1.6.3 でたよage。
599 :
デフォルトの名無しさん :2001/03/19(月) 23:22
そんなことより、まともにWindowsで動くようにしてくれ
はげしく同意
601 :
デフォルトの名無しさん :2001/03/19(月) 23:58
602 :
デフォルトの名無しさん :2001/03/20(火) 00:20
>>601 物すご〜〜〜〜く知識が無いと、Cで拡張したりする時に罠にはまる点。
603 :
デフォルトの名無しさん :2001/03/20(火) 00:25
>>602 それは「Windowsでまともに」というのとはなんかまた別のような。
604 :
デフォルトの名無しさん :2001/03/20(火) 01:41
>>602 知識ってWindowsに関する知識ってこと?
それともRubyに関しての知識ってこと?
後者は当たり前だから無視して、
前者なら、UNIX向けの拡張ライブラリを作るんだったら
UNIXの知識が必要なように、
Windows向けの拡張ライブラリを作るんだったら
Windowsの知識は必要だよね。
じゃなくて、UNIXのつもりでWindowsでも同じような
ことしたらハマった、とかそういうこと?
もうすこし詳しく書いて欲しい。
605 :
デフォルトの名無しさん :2001/03/20(火) 05:53
>>604 このスレッドを読めば詳しい具体例がいくつもある。(w
606 :
デフォルトの名無しさん :2001/03/20(火) 11:57
>>596 case insensitive とか意味わかんね〜
で、結局どうすれば require 'win32api' は通るの?
厨房でスマソ。
require 'Win32API'
608 :
デフォルトの名無しさん :2001/03/20(火) 13:12
>>598 たぶんもうじきパッチが出る。例によって。
609 :
デフォルトの名無しさん :2001/03/20(火) 14:28
>>607 なんじゃい、require 'Xxxx' と書いたら
Init_Xxxx() が呼ばれる仕組みだったのかよ。
んなこと気付かねーって。
どこに書いてんだよそんな事。(ソースの中か?)
あー、マジ Ruby にむかついてきた。
ファイル名の大文字小文字を区別しないWindowsにはむかつかないのかい?
ま、ここは大文字のInit_ を作ったWin32APIの作者がタコだな
612 :
デフォルトの名無しさん :2001/03/20(火) 19:58
ムカツク
613 :
優しい名無しさん :2001/03/20(火) 20:01
614 :
デフォルトの名無しさん :2001/03/20(火) 20:53
>>607 あ、なかったかな?
Win32APIの話はMLでも出てるから、なにか改善されるんでは。
615 :
デフォルトの名無しさん :2001/03/20(火) 22:21
>>613 そうかな。たぶんそれが習慣の違いということだろうけど。
616 :
デフォルトの名無しさん :2001/03/20(火) 22:22
この場合、パス名という外部の名前とエントリポイントという内部シンボルが 一致することを前提にしてるのが、問題というか無理があるのかも知れない。 現実に一致するとは限らないシステムがある以上。
617 :
デフォルトの名無しさん :2001/03/21(水) 01:14
というか、この場合、ろくにドキュメントのない Rubyに問題があるだろ。
まさかこんなことになるとは想定してなかったんだろう あんたがドキュメント書いて提出してよ
619 :
デフォルトの名無しさん :2001/03/21(水) 02:01
Init_XXX()に関してはREADME.EXT(.jp)に書いてあったけど、読まんかこんなとこ。
>>618 だから想定できないRubyが悪いのだと思うが。
世の中のOSはLinuxだけで、Rubyを使ってみようとするのは
達人だけだとでも思ってるのか。
>619 まー、ただRuby使うだけのやつは読まんだろうね。
622 :
デフォルトの名無しさん :2001/03/21(水) 02:14
>>620 単にWindowsなんて眼中に無かっただけだと思うけど。
LinuxじゃなくてもBSDとかSolarisとかでも動いてるし。
>>622 その「Windowsなんて」とか「眼中に無い」ってのは
アンチを増やすのに絶好の言葉ですね。
624 :
デフォルトの名無しさん :2001/03/21(水) 05:33
>>617 どーでもいいけど、Ruby のドキュメントの貧弱さにはハラ立つ。
きっとまつもと自身のやる気の無いスタンスが
全体にドキュメントに関して怠惰な雰囲気を醸しているんだろうな。
文句言われればUNIX系の伝家の宝刀、「言い出しっぺがやれ」。
あるいは見苦しいことに「お客様は困りますね〜」。・・・お前ヴァカか?
フツー他人のプログラムの解説なんて誰も書きたくねーっつーの。
それにしても、なんでやつは「ドキュメントを書くのが苦手」
とかなんとか言いながらヘーキな顔してられんのかね。
大昔、「ハッカーはドキュメントorコメントを書かない」
とかなんとか書いた怪文書が出回ったことがあったけど、
そんな基地害じみた思想に毒されて、
自分がドキュメントを書かないことを正当化するばかりか、
自分をハッカーだと誇大妄想してやがんのかね。
ドキュメントごとき書けん人間は出来そこないの低脳人間なんだよ。
反省しろ、ヴォケが!!
・・・・ふう、ちょっとスッキリ。Ruby 信者のちょっとした不満でした☆
625 :
デフォルトの名無しさん :2001/03/21(水) 06:07
不満を言ってスッキリってのは低能だなあ。何も解決しないのに、2chでぶちまければ満足か。 手を動かせよ。信者を名乗るならドキュメント書けよ、役立たずが。
626 :
デフォルトの名無しさん :2001/03/21(水) 06:17
アンチなんてのはこやしにもならん。djb嫌い、esr嫌い、theo嫌いなんてのは(俺も含め)腐るほどいるが、 そんなのは彼らにとっては屁でもない。開発コミュニティというのは、アンチのケチや揚げ足取りを 蹴散らすことよりも、それを使うユーザの満足と利便を図るべく行動する。 同じ自己満足ならおどらにゃ損損。
Rubyの場合、コミュニティの利便性が図られていないように 見えるのが不思議な所だけどな。 いや、Rubyに慣れた人々にもはやドキュメントは要らないと いうことか…
628 :
デフォルトの名無しさん :2001/03/21(水) 11:50
1.6.3が出たというので、Ruby Home Pageに行ってみた。 トップページにChangeLogへのリンクがあったので開いてむる。 ・・・英語じゃん。 なんで、この人たち、日本語のドキュメントや資料を提供できないんだろう。
しかたがないので、アーカイブをダウンロードしてみた。 それらしき情報はChangeLogしかない。 ・・・やっぱり英語じゃん。 一体1.6.2 -> 1.6.3って何が変わったんだ? 普通こういう情報って、アーカイブには入ってるもんじゃないのか? 苦労して変更点を調査しなけりゃ、何が変わったのかすら分からない んだね・・・
それから、アーカイブのドキュメントにRD形式しか入れてない奴っ! (そういう奴に限って、英語のドキュメントしか入れてなかったりする) そういうことは、Ruby本体のアーカイブにRDが入ってからにしたまへ。 キミらの環境じゃ、簡単にHTMLに変換出来るんだろ? すまん、愚痴ばかりで。
631 :
デフォルトの名無しさん :2001/03/21(水) 12:04
英語と日本語を両方提供するって、やってみたことあるなら分かるはずだけど、大変だよ。 純粋に人手の問題というのが大きいと思う。ここに書いている人たちは、自分で開発や ドキュメント書きや翻訳をやったことあるんだろうか。国際的なプロジェクトに参加した ことある?
632 :
デフォルトの名無しさん :2001/03/21(水) 12:12
逆に言えば、それだけの人手がRubyコミュニティには期待 できないってことだな。 利用者は案外多いような気がするのだが。。。何故だ?
633 :
デフォルトの名無しさん :2001/03/21(水) 12:11
>> 630 RD って、 HTML への変換が大前提というわけではなくて、そのまま読めるというのが建前じゃなっかったっけ。 確かに HTML に変換されたやつも入ってるとうれしいけど。
634 :
デフォルトの名無しさん :2001/03/21(水) 12:19
この手のプロジェクトでは一般的に、実働(ここでは、コードを書いたりパッチを出す人としよう)する人間の数倍から10倍以上の人が 常時なにがしかの周辺の作業をしている、という状況にならないと、なかなかドキュメントを含めたユーザサポートには手が回らないもの だよね。 軍隊なんかと同じ。
>>631 >ここに書いている人たちは、自分で開発や
>ドキュメント書きや翻訳をやったことあるんだろうか。国際的なプロジェクトに参加した
>ことある?
をしなけりゃ、日本語のドキュメントを望むことすら罪っつーわけね。
翻訳するんじゃなくて、英語のドキュメントを書いた本人が
日本語のドキュメントも用意して欲しい、って言ってるんだけど。
>>623 > アンチを増やすのに絶好の言葉ですね。
うーむ、かなり私情入ってたかも。
Windowsファンにお詫びしつつ、622は取り下げます。ごめんね。
まぁでも自分でまったく使わない環境まで考慮するのは難しいというのも確かだ
と思うけど。
>>633 >RD って、 HTML への変換が大前提というわけではなくて、
>そのまま読めるというのが建前じゃなっかったっけ。
まぁ、そうなんだけど、最近なにやらいろいろ拡張されてるみたいで、
だんだん、そのまま読むのがつらくなってきている感じ。
で、全部入りのActive RubyをWindowsに入れて変換しようと
したりもするが、Syntax Errorなんぞがワラワラと。
こんなしょーもないことに時間取られたくないんだよな。
WindowsでRDToolを使えるようにするまでめちゃくちゃ苦労したよ
>>630 の言うように、できれば最初からRubyアーカイブに組み込んでおいてほしいねー
639 :
デフォルトの名無しさん :2001/03/21(水) 14:08
>>635 結局、日本語と英語を両方メンテナンスする大変さが分からないかな。
一回書けば終わりじゃないんだよ。一つ変更するたびに英語と日本語の
ドキュメントを両方直さないといけない。食い違いが出るとまずいからね。
それに、とりあえずソフトはできた、何かドキュメントを付けてリリース
したい、というときに英日両方書いてから出すというのはとてもまめな人
だと思う。
たいがいは、日本語か英語かどちらかで書いてリリースして、あとで
もう一方に「翻訳」することになるんだよ。
俺も日本語のドキュメントをまじめに書かない一人なので偉そうな
ことは言えないが、人の書いたものに日本語のドキュメントしか
ない場合は英訳をフィードバックしたりしているよ。
640 :
デフォルトの名無しさん :2001/03/21(水) 14:20
>>635 試しに、英語で意味が取りにくかった(自分が読むのに苦労した)部分を何カ所か日本語にして、
「こんな感じでしょうか」って感じで作者に送ってみたら?そしたら、意識変えてくれるかも。
641 :
587 :2001/03/21(水) 14:27
>>593 だいぶ昔の投稿になってしまいましたが、ありがとうございます。
-DIMPORTというオプションは全然知らなかったです。
extconf.rbも作ろうとするとエラーに悩まされて、作って無かった
です。もう一回じっくり挑戦してみようかなと思います。
文句しか付けない奴は放置しておけるのがオープンソースの メリットだな(藁
643 :
デフォルトの名無しさん :2001/03/21(水) 15:23
>>641 > extconf.rbも作ろうとするとエラーに悩まされて、作って無かった
> です。もう一回じっくり挑戦してみようかなと思います。
どういうエラー? 一番簡単なのはこれでいいはずだけど。
require "mkmf"
create_makefile("hoge")
このくらいならコマンドラインからでもできるし。
ruby -rmkmf -e "create_makefile('hoge')"
>>642 >文句しか付けない奴は放置しておけるのがオープンソースの
>メリットだな(藁
文句もつけないダンマリ君よりはいいと思うが?
出来合いのものを盲目的に押し頂くだけが能ではあるまい。
文句つけられてるうちが華だね。
645 :
デフォルトの名無しさん :2001/03/21(水) 22:46
祝 『Rubyを256倍使うための本 魔道編』発売age 発売日は3/27らしい。 このスレ話題?のRD関連の本だね。
646 :
デフォルトの名無しさん :2001/03/21(水) 23:10
>>645 256倍シリーズはとても面白いのだが、
勉強にはならないというのが・・・゜
647 :
デフォルトの名無しさん :2001/03/22(木) 00:35
>>605 Windows & 拡張ライブラリ作成でのトラブルというと、
文字ケースの話と -DIMPORT の話が該当するようだけど、他には?
GtkとかRDtoolのインストールではまってるというのもかな。
>>647 requireの話とか。
っていうか、君は何でそんなことを人に聞く?
649 :
デフォルトの名無しさん :2001/03/22(木) 01:06
>>648 > requireの話とか。
あ、require の文字ケースの話。
> っていうか、君は何でそんなことを人に聞く?
3つしか見付けられなかったから、見落としてないか確認したかっただけだけど。
>>644 さん
「素人さん」からの「建設的な批判」なら、本当にいいんだけどねぇ。
「使いたいだけのお客さん」の「文句」は、今はノイズを増やすだけ
なので勘弁ですょ。
そういう意味では
>>642 さんに賛成。このひと口が悪いけどね。
644さんが、お客さんも受け入れろって言ってるのか、
素人に冷たくすんなって言ってるのか分からないんだけど、
いかにもお客さん然とした奴でもなければ、素人さんを排除する
雰囲気はないから、たいがいのことはMLとかで言ってみれば
意外と解決するんでないの?
で、お客さんについては、Rubyコミュニティはまだ
それを受け入れられる段階にまで育ってないでしょう。
>>634 さんが言うように、マンパワーが全然足りてないよ。
そもそも、お客さんの存在も、プラスに働くとは限らないしね。
「投与の時期と方法によっては」正常な発育を妨げる可能性が
あるっていうか。
どういう方向の発展を望むかは、実際に手を動かして貢献してる
人たちが決めればいいことでしょ。少なくとも、ただ乗りしてる
私には「文句言われてるうちが華」なんて言えましぇん。
(もし言うなら直接言うしね。つうか要望は直接言ってます)
まぁ、ぎこるびみたいに素人の感覚が分かるナイスな奴が、
newbieからの「文句」の中から意味のある意見をすくい上げて
ダイジェストしてコアメンバーに伝えてくれるとしたら、
それはすごくいいかもね。
651 :
デフォルトの名無しさん :2001/03/22(木) 04:56
>>630 激しく同意。それと、
リファレンスマニュアルをRD形式で配布すんのやめろ、
って感じ。なぜ、ついでにtar.gzも配布せんのかねえ。
まず興味を持つべき対象は Ruby であって、
RD を知らなきゃドキュメントすらダウンロード
できんようじゃ本末転倒じゃない?
652 :
638 :2001/03/22(木) 09:16
>>651 RDファイルでマニュアル配布するのは別いいと思うけどなぁ
653 :
デフォルトの名無しさん :2001/03/22(木) 10:09
require 'win32api' の件だけど、 ソース眺めていたら1.6.1の時点で void Init_win32api() { Init_Win32API(); } こんな対策とられていたのを発見。 でもうちの環境では require 'win32api' が通らない 再コンパイルが必要?
>>653 EXPORTされてないから。[ruby-dev:12578], [ruby-dev:12579]参照。
655 :
デフォルトの名無しさん :2001/03/22(木) 16:21
あぁ、なるほど。 で、MLの方を読み進めると[ruby-dev:12602]で修正されるようなこと かかれてますね。よかったよかった。
>>655 でもあれも完全じゃない。require "win32api" は通っても、require "wIn32ApI"
とかはダメだし。"Init_#{foo}" がなければ /\AInit_(?i:#{foo})\z/ に一致す
るのを探すようにすればだいたい良さそうだけど。エントリポイント名を列挙す
る方法ってないかな。
>>649 3つしか?
質問スレでもないのに、このスレに3つあるだけでも多いと思うが。
他にもちょっと見ただけでも、ライブラリのリンクの問題とか
C++のキャストの問題とかある。君、観察力ないね。
658 :
デフォルトの名無しさん :2001/03/22(木) 22:31
ライブラリのリンクというのは
>>371 ,
>>382 ?これはライブラリの指定ミスと
いうことで、Ruby自体の問題じゃないのかと思ったんだけど違うのかな?
C++のキャストって
>>330 ? これはCとC++を混在させるときの話で、Rubyとも
Windowsとも無関係だし。
3つというのがこういう場合多いかどうかは分からないけど、
>>605 には「い
くつも」とあったし、以外と少ないなと。いや実は、Windowsじゃまともに動
かん機能があるー!とか、そういうのがあるかと思ったもので。
> 君、観察力ないね。
まぁそれはいえてるかも。つーか否定できないし。(w
>>658 だから、Rubyでキャストが必要な関数が使われてるから、
初心者だとはまる可能性があって問題だろ。
ライブラリの指定方法だって、そんなもんわかるように
ドキュメント書いてないRubyが悪い。
はっきり言って、初心者を馬鹿にしてそくに親切な
ドキュメントを書いてないRubyが悪いな。
660 :
デフォルトの名無しさん :2001/03/23(金) 03:01
661 :
デフォルトの名無しさん :2001/03/23(金) 07:41
>>659 C++とCの違いを知らないというのは当人の問題。
ライブラリの指定に関してもmkmf.rbを使うと自動的に行われるはずなのに、
あえてそれを行わない以上これももう自己責任では。
というか、初心者というのはRubyの? CやC++の? プログラミングの? Windowsプログラミングの?
662 :
デフォルトの名無しさん :2001/03/23(金) 11:09
だからなんで当人の問題になるよ? ドキュメントにきちんと書いてないのが問題なんだよ。わかる?
663 :
デフォルトの名無しさん :2001/03/23(金) 11:12
なんの初心者かって、そりゃ初心者全般だろ。 何でいちいちそんなことまで人に聞くかな。 だいたい、いくら、当人だけが悪い問題があると言っても Rubyに問題が多いのは事実だろ。
664 :
デフォルトの名無しさん :2001/03/23(金) 11:22
なんつーか、Ruby の現状って、 コアな(=プログラムの技量のある)ユーザーに普及する前に、 一般の(=プログラムの技量の低い)ユーザーに普及しだしてるから、 初心者を啓蒙し教育する体制には乏しいような気がするな。 ドキュメントに乏しいとか中級者が少ないとか。 またコアなユーザーからの批評も十分じゃないから、 仕様として洗練されていないような気がする。 (俺知らんからその辺の判断はつかんけど。又聞き) 個人的には、このままだとRubyの言語としてのよしあしは別としても、 コミュニティが消滅してしまいそうな気がするな。
>>662 > ドキュメントにきちんと書いてないのが問題なんだよ。わかる?
CやC++の言語仕様がRubyのドキュメントに?
666 :
デフォルトの名無しさん :2001/03/23(金) 12:25
>>660 ちょっと分類してみた。
RDにしちゃったけどこの程度ならRDtool通すまでもないと思うので。
=begin
= Windows固有
== requireの文字ケース
*
>>587 ,
>>594 対応される、かもしれない。
== -DIMPORT
*
>>333 (
>>332 かな?)
これは拡張ライブラリの話じゃないけど。ただしcygwinだったらUSEIMPORTLIB。
*
>>587 の前半
== その他
*
>>370 最近修正されたバグ。
*
>>371 ライブラリの指定ミス?
*
>>377 これって別のに変えたとばかり思ってたけど、残ってるね最新でも。
win32/Makefile.subまでrmになってるのはまずいな。
= Windowsとは無関係
== CとC++の違い
*
>>330 *
>>575 とくにいうことはないけど、Rubyの拡張ライブラリのインターフェースはCと
して提供されてるので、当然Cに関する知識は必要。C++やPascalで書くことも
自由だけど、当然その言語に関する知識も必要。Cとインターフェースを取る
ための方法についても同じく必要。
== 制限
*
>>412 これはスタックオーバーフローが起きてしまった後ではsignal handlerも呼び
出されないということで、かなり致命的なんだけど事実上回避不能。POSIXな
システムならsigaltstack()というのがあるけど、それでもスタックオーバー
フローとそれ以外のSEGVを区別する手段がない。
== 組み込みRuby
*
>>468 ,
>>554 たしかにまだ完全とは言い難い。利用例が少ない。
=end
> あーいくつもあるねぇ…C++やWindwosの問題が…
いつの間にかC++の問題まで…。
>>663 > なんの初心者かって、そりゃ初心者全般だろ。
何に関して初心者かによってとるべき対応は異なるから。
CやC++、プログラミングの初心者なら、いきなり拡張ライブラリの作成に手を出
すべきではない。その前に学習すべきことがもっとあるはず。たとえC++では経
験があっても、Cとの違いを知らないのではうまくいかない。
また、Ruby*で*プログラミングは楽だとしても、Ruby*を*プログラミングはけし
て楽ではない。
Rubyの拡張ライブラリを作りたいなら、とりあえず勉強するしかないけど、今の
ところREADME.EXT.jpくらいしかなくてドキュメントが少ないというのは確か。
後は他のライブラリのソースくらいしかない。
Windowsプログラミングの初心者なら…、うーんこれはよく分からなんな。MSDN
onlineでも熟読する?(w
> 何でいちいちそんなことまで人に聞くかな。
曖昧なままでは議論にならないから。
> だいたい、いくら、当人だけが悪い問題があると言っても
> Rubyに問題が多いのは事実だろ。
それは事実。もちろん否定しない。
ただどこに問題があるかをちゃんと分けて考えないと、解決することはできない
から。
668 :
デフォルトの名無しさん :2001/03/23(金) 14:27
>>664 > 仕様として洗練されていないような気がする。
これは言語仕様のこと、それともインタプリタの実装の仕様の方?
669 :
デフォルトの名無しさん :2001/03/24(土) 00:49
>>662 -664
もっと頭よさそうに振る舞ってもいいんじゃないか?
「気がする」連発で見苦しいったらありゃしない。
匿名で水掛けあったってしょうがないんだから、
実体のある話を積み重ねようよ。
「コアなユーザーからの批評が十分でない」という思い込みは
どこから来たの?メーリングリストの記事を少し漁れば分かるが、
言語仕様については侃々諤々の議論が繰り返されているよ。
まつもと氏がOKを出して他の人もほぼ納得するまでは仕様が変更・
追加されることはないし。
「中級者が少ない」「コミュニティが消滅」は妄想?願望?
670 :
デフォルトの名無しさん :2001/03/24(土) 00:50
>>662 -664
もっと頭よさそうに振る舞ってもいいんじゃないか?
「気がする」連発で見苦しいったらありゃしない。
匿名で水掛けあったってしょうがないんだから、
実体のある話を積み重ねようよ。
「コアなユーザーからの批評が十分でない」という思い込みは
どこから来たの?メーリングリストの記事を少し漁れば分かるが、
言語仕様については侃々諤々の議論が繰り返されているよ。
まつもと氏がOKを出して他の人もほぼ納得するまでは仕様が変更・
追加されることはないし。
「中級者が少ない」「コミュニティが消滅」は妄想?願望?
二度書きスマソ下げ
672 :
662=663 :2001/03/24(土) 01:16
言っとくが、気がする連発は664だけな。 664は俺じゃない。 「C++の仕様により、こういう問題が生じますよ」 というドキュメントがあるのが普通だ。 CやUNIX系の場合だけ書くのはどう見たって不親切だろ。 「C++やWindowsの場合は教えてあげません。自分で知識をつけて考えな。」 こう言ってるのと同じ。 だいたい、-DIMPORTなんてマイナーで熟練者以外にほとんど知られてない ことを強いるのは、ドキュメント以前にどうかと思うがな。
673 :
662 :2001/03/24(土) 01:27
>>666 おいおい、C++だろうがなんだろうが、Windowsに無関係だろうが、問題に
なってくることには変わりない。
Windowsでも、もちろん問題になってくる。
>>667 結局、Rubyのドキュメントの不親切さを、ユーザーの知識のなさに
摩り替えてるところが問題なんだよ。
知識がなきゃ資格がないと考えてること自体が傲慢。
確かに、それはある程度仕方無いが、これほど不親切だと、必要以上に
敷居が高いといわざるをえない。
674 :
デフォルトの名無しさん :2001/03/24(土) 03:06
>>672 教えてあげません、じゃなくて、単に知らないだけじゃないかな。
その不親切な人たちのどれだけが、C++やWindowsについて
知っていたり把握していたりするのを、ちゃんと調べた?
もし自分にしっているがあるなら報告するとか。
>>673 仕事じゃないんだから、やれる人はやれるし、やれない人は
やれないし、ってことで傲慢とかそういうことじゃないと思う。
そこまで自発的に作っている人達にアレコレ要求する?
本当にその人たちはRubyを発展させる使命を受けた人たちなのか?
ということを考えると、ある程度敷居が高いのは
今の時点ではしょうがない。知っている人しか使わないし、
知らない人は誰かが教えてくれるまで使わないし。
Rubyの作者やその周辺の「作っている人たち」の中に
そういう部分(ドキュメントにあらゆる事項を網羅する、
あらゆるプラットフォームでの不具合を検証し記述する)
に対するモチベーションなり理由が無ければ、
よほどじゃないけどやらないでしょ。気付かない人も
いるだろうし。
そういう人達に「やらせる」ならもっとやり方があるだろう。
その人たちのモチベーションをあげるとか、フォローするとか。
目的を持たせるとか。不満がある人は何かしてみようよ。
長文スマン。
675 :
デフォルトの名無しさん :2001/03/24(土) 03:54
な〜にが、仕事じゃないんだからだ。 Windowsで使ってもらわなくても結構というのなら、ともかく、 使ってもらいたいのなら、WindowsやC++の説明を入れるなんて あまりにも当ったりまえのことだろ。 作者の周辺じゃねぇよ。そんなことぐらい作者がやれよ。 Ruby逝ってよし!
676 :
デフォルトの名無しさん :2001/03/24(土) 04:04
根っからのお客様なのね。少なくとも、こういう輩が多いようなら、「使ってもらいたい」とは思わないだろうよ。
Windowsのドキュメントを用意しろと言っただけで、お客さん? 実際それで不自由してる奴が多いというのに… 笑わせてくれるね。 そういうお客様が嫌なら、ドキュメントなんて一切公開するなよ。(藁
678 :
デフォルトの名無しさん :2001/03/24(土) 04:13
な〜にが、仕事じゃないんだからだ。 俺様に使ってもらわなくても結構というのなら、ともかく、 使ってもらいたいのなら、WindowsやC++の説明を入れるなんて あまりにも当ったりまえのことだろ。 作者の周辺じゃねぇよ。そんなことぐらい作者がやれよ。 Ruby逝ってよし!
「当ったりまえのことだろ。 」「作者の周辺じゃねぇよ。作者がやれよ」がお客様でなくて何。
>>677 最後の行の意味が分からん。別にこんな場所でお客様がわめいても誰も困らんよ。
680 :
デフォルトの名無しさん :2001/03/24(土) 04:15
「用意しろ」なんてこと言ってるんだからお客さんじゃないの?
まあまあEUCりいこーよ
682 :
デフォルトの名無しさん :2001/03/24(土) 04:18
>>679 事実だろ。Windowsで使ってもらいたいのに、Windowsの
ドキュメントを用意しない!?
おいおい。
だいたい、この場合、用意するのを当たり前と言わずして
なんと言うんだろうね。
挙句の果てに用意して欲しいと言ったら、「お客さん」。
それでごまかせたら、ドキュメントなんて全部いらないっつーの。
ドキュメントが欲しいといえば「お客さん」(藁
てゆーか作者は別にWindowsで使ってもらいたいなんて 思ってないんじゃないの? そもそもWindows使ってないんじゃなかったっけ?
684 :
デフォルトの名無しさん :2001/03/24(土) 04:21
こういうハッカー気取りのRuby信者と作者がウザいんだよな。
>>683 そうか、思ってないなら仕方がないな。
それにしてはやけに宣伝に熱心だが。(w
うちの会社の「お客さん」には多いな。「用意しろ」ってやつ。 まーホントのお客さんだからいいんだけど。(藁
用意しろってのがお客さんならRubyのReadmeを用意しろってのもお客さんなんだろうね。(藁
「そんなことぐらい作者がやれよ」が「用意して欲しい」か?
>>688 人の言葉尻捕らえて批判して楽しいか。
少々言葉が荒っぽいだけじゃないか。
うーむ。こんな厨房が多い中でもWindows版のサポートを頑張ってるWindowsハッカーの人たちはほんとにご苦労様だ。
>>689 金が介在していないのだから、言葉こそが人の心を左右するのだ。そんなことも分からんか。
Windows版のサポートしてるなんて初耳だが?
693 :
デフォルトの名無しさん :2001/03/24(土) 04:34
あのー、こんなの続けるより、「これとこれをドキュメントに書いてください」とMLに一本投稿した方が早くないですか?
また、このパターンか。 結局厨房だとか言って、不親切さをごまかすんだよな。 そして自分達はハッカー気取り。 あれで凄いんだったら、Pythonはどうなるんだろうね。 厨房の集まりを相手にして、まともなドキュメントが あるHSPは神か。
695 :
デフォルトの名無しさん :2001/03/24(土) 04:40
ハッカー気取りというか、要求するだけじゃなくて具体的に協力したらどうだ、ということじゃないの? 親切を期待するから「不親切」ということになるし、当然だと思うから「怠慢」となるわけでしょ?
696 :
デフォルトの名無しさん :2001/03/24(土) 04:41
Windowsユーザに何が足りないかなんてのはWindowsユーザにしか分からないんだから、 Windowsユーザがやるしかないじゃん。結局、Windows対応コードを書いたりしている人に 文句つけてることにならない?
まつもと氏はWindowsプラットフォーム対応については良くも悪くも Windowsを使っている人たちに完全に任せているわけだしねえ。 あとはWindowsユーザがいかに互助していくかだろう。
ruby-listとか読むとWindows関連の対応は作者以外の 人たちがやっているから、ML読んでいる人達には 「作者はWindowsには弱い」というのがわかっているけど、 Rubyの配布アーカイブのドキュメントには「Windows上でも 動く」という感じで書かれているから、事情を知らない人には 「作者はWindowsもいける」と思ってしまう。…ということが あるのかな。
つーか各環境毎の詳しいページへのポイント先さえ示せばいいんでないの? まつもとのページで。(って、なかったっけ?) んで各環境毎のページでサポート受け付けます、って書いとけばユーザは各々勝手に飛ぶでしょ。
700 :
664 :2001/03/24(土) 10:41
えっと。 仕様に対する批評が十分でない〜はそんなこともないそうなので、取り下げます。 コミュニティが消滅する〜は願望ではなくて、個人的な観測・感想です。 気に障ったようでしたら申し訳ありません。
701 :
デフォルトの名無しさん :2001/03/24(土) 11:06
つーか,用意しろとか色々言ってる人は,用意したら何してくれるの? 貢献してくれるの?多分しないよね? まあドキュメントはあるに越した事は無いけどね。 あと,RD配布はやっぱしイヤだよなあ。 RDに全く興味無いのに,1ステップ踏むのは気分が良くない。 初心者の為にも,障害を一つ増やすのは良くないよ。
>>701 裾野が広くないと山は高くならないって言葉知ってるか?
>>664 の前半に同感
オレは「一般の(=プログラムの技量の低い)ユーザー」 なんで、
Windows向け & 初心者向けのドキュメントが充実するのを待つことに
するよ。ドキュメントが用意されないからと言って文句を言うつもりはないけれど、
やっぱりちゃんとしたのがあるととっつきやすいし
あと、Windowsユーザには tar形式はあまりなじみがないんで、lzh か zip
形式のも用意したほうが良いんじゃないかなぁ……。はじめて公式ページに
つないだとき、tar形式しかなかったんで 「面倒くさいなぁ」 と思ったのを覚えてるよ
未だにWindows版でrmを要求するところが信じられない。 delに置き換えるだけじゃん。 いくらWinが駄目でもそれすら出来ないとは…
705 :
デフォルト七誌 :2001/03/24(土) 16:50
706 :
デフォルト七誌 :2001/03/24(土) 16:51
補足:GNUmake(WIN32)の話ね
707 :
デフォルトの名無しさん :2001/03/24(土) 22:06
>>703 なんでいきなり拡張ライブラリを作ったりRubyを組み込みにしたりという厄介
なところから入ろうとするかな…。
>>703 Windowsユーザーでも tar ぐらい解凍できるようにしとこうで。
同じWindowsユーザーとして恥ずかしいぞっ。
>>707 最初から組み込み用の言語を探しててRubyに行き着いた人も
いるんだからそんなこといわないで。
WinのプログラムでRubyを使おうとする場合、組み込み用途や 拡張して使う用途で使う場合がほとんどだと思う。
>>709 ,
>>710 そなの? それは意外というか、かなりびっくり。
じゃぁ、もうちょっと整理した方がいいんだろうなぁ。
>>711 ぼくは主にWindowsでRuby使ってますが、Windows(特に9x)は
シェル環境が貧弱なので、UNIX的なやり方では他のプログラムと
連携させるのが難しいです。
というか、想像するに、
「プログラム間の連携は標準入出力じゃなくてCOMとかでやれ」
というWindowsの哲学なんでしょうかね。
>>712 えーと、つまりそのCOMの部分とかをRubyでやろうという意味? 邪道編みたい
なことと考えていいのかな。
とりあえずCOMの話はおいといても、709,710をよんでかなりびっくりというか、
目から鱗状態。確かにそういう風に考えてるんなら、Cレベルでのインターフェー
スがどうこうという話になってくるのもある意味うなずける。というか、そう
いう話こそいってくんなきゃWindowsユーザ以外にゃ通じないってば。
誰かここのログを整理して、ruby-devかruby-listへ投げるんじゃ〜 ちょうど今、インタプリタの初期化APIを考えようという話が 出ていたはず。 Hotlinksに補足されてて、しかもここ見てる人けっこういるでしょ?(藁
>>714 rm が del に修正されたりしているよね。
716 :
デフォルトの名無しさん :2001/03/26(月) 16:32
で、結局、1.6.2 => 1.6.3の変更点は何なの?
717 :
デフォルトの名無しさん :2001/03/26(月) 19:15
718 :
デフォルトの名無しさん :2001/03/26(月) 22:36
elispで,(read (current-buffer)) とかすると,ピリオドとかがエスケープされてしまうのですが, 何か方法は無いですか? それともバッファを読むのにreadを使っているのがおかしいのでしょうか。
719 :
718 :2001/03/26(月) 22:48
スレ違い,ごめんなさい。
720 :
デフォルトの名無しさん :2001/03/27(火) 07:50
通りがかりだけど、興味深く読ませて頂きました。
> 裾野を広げたいと思っている人はたくさんいるはずなので、
> 意見をruby-list とかの *開発者の目に触れる場所* でいうのが重要。
> 開発者と日本語で議論できる言語なんてそうそうありませんよ :-)
言ったら言ったで、「お客さん」としか見てもらえないんじゃないの?
上でも
>>676 みたく、俺の目から見たら「適切な要望」に見える
意見に対し「お客さん」と罵ってるやつがいるし。
個人的には、いい加減に「お客さん」などという観念自体捨てるべきだと思うね。
大体「お客さんか否か」なんて「作者側が好感を持ったか否か」という主観なんじゃないの?
きっと、「お客様」自身もその人なりに真面目にそのソフトウェアのことを考えて
(その結果少々熱く)提案しているつもりなんだろうし。
ステレオタイプなレッテル貼りはやめにしようぜ。
それと、言っちゃ悪いが、俺の感覚ではプログラムを書くことなんて、クソするようなもんだ。
非効率によりたまりにたまったモノをプログラムを書いて問題解決しスッキリする。
ドキュメント書きは、クソしたあとにケツを拭くようなもん。
「貢献しろ」などと言われて、他人のプログラムのドキュメントを書くなんざ、
他人のケツを拭いてやってるみたいで絶対にいやだね。
まるっきり「ドキュメントくらいでしか貢献できない無能人間」みたいじゃん?
やったって、一体何の見返りがあるんだ? そんな暇があったら、
どんどん新たなソースコード読んで知識広げてったほうがまだマシ。
Ruby 共同体の考えの甘さは、俺以外にも持ってるのかもしれない心情を把握せず、
「ドキュメント書いて貢献しろ」なんていってること。ムシが良すぎるんだよ。
そんなんだから、なっかなかドキュメント書きが進行しない。
各ソースコードの作者自身が積極的に自分から動いてドキュメント書きまくらなきゃ
いつまでたってもいい状況にはならんと思うね。
かくいう俺も実際 Ruby を結構使い込んでる方だと思う(本も全部読んだし)。
Ruby が好きだからこそ、文句も言いたくなるってもんだ。
721 :
デフォルトの名無しさん :2001/03/27(火) 08:59
>>717 情報サンクス。
http://homepage2.nifty.com/zn/jewel/ruby-diff.htm にある、
>1.6.1から1.6.2への変更点のまとめ
>・net/imapが追加された。
>・proc{|a|}.arityが-2から-1になった。
>・FileTest.sizeがFile.sizeと同じように空のファイルで0を返すようになった。 (存在しないファイルでFile.sizeと同じように例外Errno::ENOENTを発生するようになった。) 古い挙動には size? を使ってください。([ruby-dev:11607])
>・[ruby-list:25919]のmswin32版とdjgpp版のsystemで$?が256倍されていないバグが修正された。
>・srandはsafe levelが4以上の場合は禁止になった([ruby-dev:11478])。
>・IOのtaintチェックがついてsafe levelが4以上だとuntainted IOでgetsなどができなくなりました。
>・randにFloatを渡したときの処理のバグを修正([ruby-dev:11369]からのスレッド)。
>・ATOMIC_TEST, ATOMIC_SET, ATOMIC_INC, ATOMIC_DEC, RUBY_CRITICALが増えて、 TRAP_BEG, TRAP_ENDが新しくなった。(拡張ライブラリを作らないのなら関係なし。)
>・Time#dst?が追加された。(Time#isdstと同じ)
>・tk*.rbについては[ruby-list:26135]を参照。
のような、機能追加・変更・Bug Fixのサマリを日本語で提供して
くれればなぁ、と言ってるんです。
これなら1分あれば、ざっと見れるでしょう?
Rubyの開発に携わってない人が、これだけのサマリを得ることって
すごく大変で、時間がかかると思うんですけど。
逆に携わってる人にとっては、簡単なのかな、と思ってるわけです。
それでね、まともな日本語の情報を得るために、これまでは 書籍を買ってきたわけ。 でもね、さすがに、このあいだのライブラリ本はひどくないかい? あれで金取るの?っつー感じ。
723 :
デフォルトの名無しさん :2001/03/27(火) 09:19
ドキュメント作成は、fjで言うところの「自己レス」のようなもの なんでは? 自分で疑問に思って調査した結果を、 疑問を同じくする人たちのために編纂して公開する。 別に作者がやるものでも、ユーザーがやるものでもなくて、 疑問を持った人が頭の整理のついでに行うことなのでは?
>ドキュメント作成は、fjで言うところの「自己レス」のようなもの
>なんでは?
『fjで言うところの「自己レス」』っていうのがなんだかよく分からない
んですけど・・・。
> 自分で疑問に思って調査した結果を、
> 疑問を同じくする人たちのために編纂して公開する。
うん、だから、そういう種類のドキュメントもあるし、そのような
いわゆる「使いこなし編」や「FAQ」みたいなドキュメントまで
用意しろとは誰も言ってない。
> 別に作者がやるものでも、ユーザーがやるものでもなくて、
> 疑問を持った人が頭の整理のついでに行うことなのでは?
だからー、Ruby 1.6.4が出たとして、
>>711 のようなサマリは頭の
整理のついでなんかじゃ書けないって。
で、みんな具体的になんのドキュメントを欲しているの? Win32での組み込みなら既に実例(ApolloやRubyWin等)があって、 それらはソースファイルも公開しているからそれを読むのが一番 手っ取り早いし、Apolloは専用のMLがあるから不明な点は そこで聞けるだろうし。もしかして自分で聞くのがメンドクサイ? Windowsのインストールこそruby-listで何回も取り上げられている ことだし、インストールガイドというものもあるし。 みんな、自分たちのやりたいこと「そのまんま」のドキュメントが 欲しいってわけではないよね。それともそういうドキュメントが あるのかどうかもわからないってことなのかな。
>>726 俺の要望は、
・日本語による変更履歴(サマリ)のアーカイブ添付
1.7になるときには、これを強く望む。
・RAAの説明部分の日本語化(作者が日本人の場合)
できれば・・・
・パッケージなどのアーカイブは、RDだけではなく、html変換
したものも添付。
・パッケージなどのアーカイブは、README.jaなど、そのパッケージ
の機能概要を入れて欲しい。
ってとこです。
後半部分はともかく、前半はそんなに難しいことですか?
いや、それが難しいのであれば、考え直すけど。
728 :
虹 :2001/03/27(火) 11:15
>>727 強く同意。現状Ruby界では「ドキュメントを用意するなら英語」と
いう暗黙のルールがあるようで(考えすぎ?)、確かに世界的に見れば
英語が共用語なのかもしれないけど、それを強要しすぎているよう
な気がする。
RAAに日本語版がないのがその最たるもので、別に標準ライブラリに
入れてもらおうとかってわけでもなく、自分の作ったものを紹介し
ようってだけなのに英語を強要するのはちょっとな、と思う。
ChangeLogも日本語であるならとっても嬉しいなあ。
729 :
デフォルトの名無しさん :2001/03/27(火) 12:57
>>727 > ・日本語による変更履歴(サマリ)のアーカイブ添付
> 1.7になるときには、これを強く望む。
いわゆる HISTORY とかそういうやつ?
ChangeLog 全部の日本語版とかまで欲しいわけじゃないでしょ? サマリって書い
てるし細かい修正の履歴まで見たいわけじゃないと思うんだけど。
732 :
717 :2001/03/27(火) 17:55
長文 & まとめレス スマソ。Ruby 好きなんで細かく反応しちゃう。
>> 720
> 言ったら言ったで、「お客さん」としか見てもらえないんじゃないの?
> 上でも
>>676 みたく、俺の目から見たら「適切な要望」に見える
> 意見に対し「お客さん」と罵ってるやつがいるし。
「あたりまえ」みたいな言い方をすると反発する人はいるかも知れないけど、
「Windows 用のドキュメントはありませんか?」みたいな聞き方をすれば、
ひどく罵られたりはしないと思う。
# ruby-list とかならね。ここは 2ch だし ;-)
作者がドキュメントを書けってのは強く同意。
そのために RD みたいなのも生まれたんだろうし。
でも、書きたい人、書くのが得意な人が書くのも別にいいと思うので、
(例をあげると、まつもとさん本人が書くより、Dave & Andy の本のほうが好評)
> 他人のケツを拭いてやってるみたいで絶対にいやだね。
> まるっきり「ドキュメントくらいでしか貢献できない無能人間」みたいじゃん?
は言いすぎだと思うな。
>>728 英語強要は日本人としてはめんどくさいけど、
世界中で使われる可能性を考えるとやっぱりしょうがないのでしょう。
Ruby 全体としては世界進出したいし、
そういうときにライブラリやドキュメントが日本ローカルだと足かせになっちゃう。
>>730 >
http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=ruby+1.6+feature おぉ。ありがとう。
始めて知った。
>>731 いわれてみると、ChangeLog はコード単位の変更で 機能単位の変更はわかりづらいね。
このレベルの文章を書くのは大変でしょ。少なくとも俺には無理。
有用なドキュメントはあっても、どこにあるのか分かりづらいのが問題なのか?
733 :
717 :2001/03/27(火) 17:57
ゴメン。書きすぎて省略されちゃった。
734 :
デフォルトの名無しさん :2001/03/27(火) 20:02
任意の3x3の正規直交行列は単位行列をある軸を ある角度方向に回転させても得ることができます。 (右手系か左手系かは決めておく) これは行列をクォータニオンに変換するときと同じ処理です。 同様に任意の3x3正規直交行列と3x3正規直交行列との間には、 回転軸と回転角度が存在しこれを求めることができます。 ですので、これを求めて後は回転角度を線形補完することで クォータニオンを用いずともSlerpできますがクォータニオンで 処理するのと比べてメリットがありません。
DVD7行解除、rubyでもっと短くなるかい?
>>732 > いわれてみると、ChangeLog はコード単位の変更で 機能単位の変更はわかりづらいね。
> このレベルの文章を書くのは大変でしょ。少なくとも俺には無理。
うん、そりゃ無理だと思うよ(皮肉じゃなく)。
僕にだって無理だ。おそらくほとんどの人が、あれを書こうと思っても
書けないはず。
でもね、「じゃぁ、1.6.4をリリースしましょう」と決定するような人(達)に
とってもそうなんだろうか?というのが僕の疑問。
737 :
717 :2001/03/28(水) 13:59
738 :
デフォルトの名無しさん :2001/03/28(水) 16:33
>>727 リファレンスマニュアルがRDしかなくてうざいっす。
739 :
デフォルトの名無しさん :2001/03/28(水) 16:57
>>Rubyでもどうよ じゃあ、ビールでもどうよ
外出かもしれませんが。 Delphiの人とRubyの人って重複してるのでしょうか?
>>740 Apolloをご覧下さいませ。
DelphiのコンポーネントをRuby上で扱えるよ。
RAAにも登録されているよ。
>>738 おまえがうざいわ。RDtoolぐらい根性でインストールせいや。
> 個人的には、いい加減に「お客さん」などという観念自体捨てるべきだと思うね。 > 大体「お客さんか否か」なんて「作者側が好感を持ったか否か」という主観なんじゃないの? それはそう。みんな、それがよかれと思って作業しているし、ほかの人も そうしてくれることを期待しつつ協力しあっている。それがムシのよすぎる ことなら、今の状況にすら到達できなかったんじゃないかな。 「お客さん」云々は、実際に積極的に飛び込んでくる人が思ったほどの 勢いでは増えていないことへの焦りやいらだちの現れでもあると思う。昔は 他の言語のファンからの冷やかし(また新しい言語作ってどうすんの?とか Perlより遅くて全然ダメとか)も少なからずあったしね。 まあ、そういうことは前ほど気にする必要もないくらい今は Ruby 自体も 充実してユーザも増えてきているから、お互いに傷つけ合うような言葉遣いは 慎むべきだね。 > きっと、「お客様」自身もその人なりに真面目にそのソフトウェアのことを考えて > (その結果少々熱く)提案しているつもりなんだろうし。 > ステレオタイプなレッテル貼りはやめにしようぜ。 提案だけではなかなか物事が動かないのは Ruby に限らずさんざん歴史が 証明しているよ。逆に自分から飛び込めば必ずいい化学反応がある。それは 程度によらないと思う。 試しに、「ここにこんな但し書きを一行付けた方がいいんじゃないでしょうか?」 とか、「これについてもうちょっと詳しく書いてほしいです」と具体的に動いて みたら?まずまちがいなく反応してくれるよ。そういうことの積み重ねでしか 物事は進まない、というか、そういうことで進んでいくものだよ。 一人一人の作業できる量なんて、ほんと少ないんだもの。みんな自由な時間を 削ってやっているわけだし、かといってものすごい使命感に駆られてやっている わけでもない。人によって本領を発揮できる分野も違う。だから、ちょっとしか できなくても、大したことができなくても恥じることなんてない。 > それと、言っちゃ悪いが、俺の感覚ではプログラムを書くことなんて、クソするようなもんだ。 > 非効率によりたまりにたまったモノをプログラムを書いて問題解決しスッキリする。 > ドキュメント書きは、クソしたあとにケツを拭くようなもん。 > 「貢献しろ」などと言われて、他人のプログラムのドキュメントを書くなんざ、 > 他人のケツを拭いてやってるみたいで絶対にいやだね。 > まるっきり「ドキュメントくらいでしか貢献できない無能人間」みたいじゃん? > やったって、一体何の見返りがあるんだ? そんな暇があったら、 このたとえはちょっと。。それではドキュメント整備に協力する人は 「見返りもないのにドキュメントみたいな人の尻ぬぐいをする無能人間」 ということになってしまう。ドキュメント書きを汚物処理みたいに言わないで。。 > どんどん新たなソースコード読んで知識広げてったほうがまだマシ。 > Ruby 共同体の考えの甘さは、俺以外にも持ってるのかもしれない心情を把握せず、 > 「ドキュメント書いて貢献しろ」なんていってること。ムシが良すぎるんだよ。 君の考え方は、そういう考え方が広まれば誰もドキュメントを書かなくなる、 ということの解説になってしまっているんじゃないかな。少々ムシがよくても いいじゃないか。そういう意識がないと、結局一部の人に負担が集中したまま 改善しないんだから。中心の方にいるほとんどの人は、 Ruby に割ける時間や 精力のほとんどを今やっていることですべて費やしてしまっていると思う。 もちろん、ドキュメントの方にもう少し費やしてくれ、というのはよく分かるよ。 > そんなんだから、なっかなかドキュメント書きが進行しない。 > 各ソースコードの作者自身が積極的に自分から動いてドキュメント書きまくらなきゃ > いつまでたってもいい状況にはならんと思うね。 それはそう。作者が自分でちゃんと全部書けばいい状況になる。 でも、利用者が少しずつでも協力するようになればもっといい状況になる。 漠然とした不満の表明はさておいて、みんな小さいことから何かやってみない? 俺もやるからさ。ほんとに。 あ、ビール俺も。
>>744 だからさ、
俺たちが何もしないから、現状は変わらないんだ。
現状が変わらないのは、俺達のせいなんだ、
っていう、奇妙な責任感を持つのは止めようよ。
あなたがコミットすれば現状は変わるかもしれないけど、
変わらない責任は、あなたには無い。
この板を読んでいると、妙な捉え方をする人が少なくないことが不思議だよ。
どうして「尻ぬぐい」「無能人間」「ムシがいい」「奇妙な責任感」なんて言葉が続々と出てくるんだろう。
>>745 >>744 の言っていることを分かっていないと思う。責任なんて一言も言ってないのに。
責任感なんて言葉を持ち出すのは、あなた自身の責任感が強すぎるから。肩の力を抜きなよ。
やることが美徳なのでも、やらないことが不徳なのでもない。やる人が特別な人なのでも決してない。
一度関わったらとことんやり続けなければいけないわけでもない。一撃離脱でもいい。
その場その場で、いいと思ったことだけ直接的、具体的に何かやって(言って)みればいいじゃん。
簡単だから。不満を自分の中に止めておくのが嫌だから、という理由だけで十分だよ。
747 :
デフォルトの名無しさん :2001/03/29(木) 14:18
感動age
>>735 無視されてるってことは短くなんないんじゃない?
ruby使う人って都合の悪いことは流す習性があるからさ・・・
キミはこいつらみたいになっちゃダメだぞ。
749 :
717 :2001/03/29(木) 17:49
>>748 > 無視されてるってことは短くなんないんじゃない?
> ruby使う人って都合の悪いことは流す習性があるからさ・・・
> キミはこいつらみたいになっちゃダメだぞ。
Perl で eval と pack なんか使われるとまったく解読不可能なので無視してました。
Ruby では、1文字変数や過剰な省略は嫌われる傾向にあるので
「Ruby だとこんなに短く!」っては多分なりません。
あと、関数ベースにたいしてメソッドチェーンは「.」がつくぶん不利です ;-)
コードの長さはたいてい
Perl(ほとんど暗号) < Ruby < Python(こまかく import) になると思う。
>>748 あんなん読めん。つーか読む気にならん。
「責任感」もないし、気合いなんぞなおのことない。
751 :
デフォルトの名無しさん :2001/03/29(木) 19:24
>>749 やってみれば案外 Ruby の方が短く済むんじゃないかな。
eval や pack を含めて Perl にあるものはほとんど Ruby にもあるし、
何より変数に $ つけなくていいってだけで相当稼げそう。
メソッドチェーンの . が付く分不利ってどういうこと?
Perl だってスペース入れなきゃいけないし、それに
オブジェクトベースじゃないからいくつもつながるわけじゃないし。
>>750 暗号を読むのが苦痛で Ruby やっている人が、暗号を読んだり書いたりすることに
楽しみを感じるかどうか。俺はぜんぜん気が進まない。
といいつつ、つまらん vs. できねえのかよ では興ざめなので、やってみようか。
752 :
デフォルトの名無しさん :2001/03/29(木) 19:34
753 :
717 :2001/03/29(木) 23:24
>>751 > やってみれば案外 Ruby の方が短く済むんじゃないかな。
> eval や pack を含めて Perl にあるものはほとんど Ruby にもあるし、
> 何より変数に $ つけなくていいってだけで相当稼げそう。
確かに、Perl はローカル変数にも型を表す記号が必要ですね。
> メソッドチェーンの . が付く分不利ってどういうこと?
関数の返り値をつかえば length(gets(file)) って書けるけど
メソッドチェーンだと file.gets().length() になちゃうかな。と思ったんだけど
Ruby なら file.gets.length って書けますな。
希望が出てきたかも :-)
754 :
Just another Perler :2001/03/30(金) 12:33
>>751 >やってみれば案外 Ruby の方が短く済むんじゃないかな。
>eval や pack を含めて Perl にあるものはほとんど Ruby にもあるし、
>何より変数に $ つけなくていいってだけで相当稼げそう。
$_を使いまくればどっちも $ をつける必要がないけど。
デフォルトで $_ が対象なのがRubyはPerlに比べると少ないけど。
>メソッドチェーンの . が付く分不利ってどういうこと?
>Perl だってスペース入れなきゃいけないし、それに
>オブジェクトベースじゃないからいくつもつながるわけじゃないし。
スペース入れなくてもわかるところは入れなくてもいいよ。
7行のはほとんど(全部?)省略してるはず。
755 :
デフォルトの名無しさん :2001/03/30(金) 12:50
Ruby の .NET 対応(CLR対応)ってする予定はありますか?
756 :
デフォルトの名無しさん :2001/03/30(金) 12:57
>>755 artonさんがやりたがってたような気がする(憶測)。
757 :
デフォルトの名無しさん :2001/03/30(金) 16:46
NET対応って、MSのライセンシーにならないと不可能だって聞いたけど どうなの?
758 :
デフォルトの名無しさん :2001/03/30(金) 22:05
>>754 reverse sort @_ のスペースのことだよ。メソッドチェーンの . が云々が意味不明だったから的外れだったけど。
ところで、7行のやつが見つからなかったんだけど、だれかポインタ示してくれる?
(でもやっぱり見る気がしない。。)
759 :
デフォルトの名無しさん :2001/04/01(日) 00:54
Ruby本の256倍シリーズって言うやつ、寒くない? RD Toolの解説とか言っちゃって…。
Rubyはんこまみれ
>>759 どうしてあんなに256倍シリーズが出るのか謎。編集に信者がいるの?
762 :
デフォルトの名無しさん :2001/04/01(日) 14:25
763 :
デフォルトの名無しさん :2001/04/01(日) 16:27
>>759 ロクに解説本が出てないのにあんなゲス(っていうと作者に失礼だけど)な本が出てると、
Ruby自体を下げそう…
764 :
754 :2001/04/01(日) 17:56
>>758 7行のはスペースの代わりに単項演算子の+を使ってるみたいだから、
reverse+sort@_みたいにすればスペースはいらない。
7行のpackやunpackをxやunxに圧縮してるみたいに単語を圧縮しないと
Rubyのはなかなか短くならないかも。
765 :
デフォルトの名無しさん :2001/04/01(日) 18:21
すみません、mkmfを使うとgcc用のmakefileが出来てしまうのですが、 MSVC用のmakefileを作るにはどのようにしたらいいのでしょうか?
>>763 何が下がるの? Rubyの品位とか印象とか?
それともRubyを使っている自分達の品位とか印象とか?
僕は256倍シリーズは読み物として楽しく読みました。
堅苦しい解説書は作者の本とかに任せて、
256倍シリーズは楽しく読める本にして欲しいです。
256のRacc本はけっこういい本だと思ったな。 他は読んでないから知らない。
邪道編以外は読んだけど、極道編(RubyUnit)が一番当たりだった。
769 :
デフォルトの名無しさん :2001/04/02(月) 08:44
RubyでCGIを作ろうと思っているのですが basic認証で得たユーザー名を取得する方法ってあります?
RD本は、Emacs信者以外はやめといたほうがいいぞ。 あまりのEmacs信者ぶりに吐き気がしたよ。 Emacs使う上で、RDが便利だから、RDを広めようと していることもわかった。 世の中Emacs使いだけじゃないんだぞーー。
>>770 俺も半ばお布施のつもりで買ったが、完全にお布施になったな。
772 :
デフォルトの名無しさん :2001/04/02(月) 12:17
>>765 --with-make-prog=nmakeをつけるとか、set MAKE=nmakeを設定しとく
とかすればMSVC用というかnmake用になる、ような気がする。
つーかwin32/config.status.inでは
s%@configure_args@%--with-make-prog=nmake --enable-shared%g
となってるからmswin32版のデフォルトはnmake使うはずでは。
>770 そういう貴方はvi使い?
>>773 !Emacs = vi な世界にお住まいのようで。
俺は秀丸だよ。
775 :
デフォルトの名無しさん :2001/04/02(月) 13:59
ねえ、なんでみんなsage書きすんの? ageていこうよ。
>774 Emacsのキーバインド?
778 :
デフォルトの名無しさん :2001/04/02(月) 15:59
256倍本、個人的ランキング 役にたった編 1. RubyUnit 2. Racc 3. arton 4. RD 情報濃いぞ編 1. arton 2. Racc 3. RubyUnit 4. RD ちなみに、俺はUnixメインでWindowsは仕事で使う程度。
ちなみに、今までの256倍本は10冊以上平積みされていたが、 RD本は2冊しかなかった(w
なんか、RDに恨みがある人がいるみたいね(w
781 :
デフォルトの名無しさん :2001/04/02(月) 20:52
>>780 いや、RubyコミュニティーはRDとかいうのに妙に自信持っていて嫌なんだよね。
でもあんな単純なものでもフォーマットとか言って本まで一冊かいてしまう
コミュニティーの勢いはほんとすごいと思う。
今、781がいいこと言った!
783 :
デフォルトの名無しさん :2001/04/02(月) 21:52
RDが嫌いな人はPerlのPODも嫌いなの?
784 :
デフォルトの名無しさん :2001/04/02(月) 21:54
>>781 あの本はRDフォーマットの本というよりも、
RDtoolとその周辺についての本だよね。
フォーマットの話に尽きるんだったら、
もう少し違う本になったような気がする。
RD本は、内容を4倍(当社比)ほどに薄めているところが気に食わん。 1ページ目に誤植があるのも萎え萎え。
786 :
デフォルトの名無しさん :2001/04/03(火) 11:24
Raccってどういうことするツール? yaccの出力がRubyソースになってるってこと?
787 :
デフォルトの名無しさん :2001/04/03(火) 11:59
>>769 ENV['HTTP_USER']あたりに入ってない?
>786 まずは手にとって買ってくれ 話はそれからだ
789 :
765 :2001/04/03(火) 12:19
>>772 どうもありがとうございます。
どうやら単純なミスでした。自分でコンパイルしたVC版とは別の
Rubyを使っていたからだと思います。
VC版のRubyを使ったら、なぜかmkmfで作ったmakefileを使わなくても
うまく出来てしまったので、それでやっていくことにしました。
しかし、mkmkfのmakefileを使うと、外部参照が解決されていませんという
エラーが出てしまいます。
もう一つ質問があります。rb_define_classの二番目の引数のVALUE superは どのような意味なのでしょうか。Ruby本やRuby.extを見ましたが、引数の説明が ないようです。 いろいろなソースを見るとrb_cObjectを指定することが多いようなんですが、 おそらく、rb_cObjectというのはObjectクラスのことですよね?
791 :
デフォルトの名無しさん :2001/04/03(火) 12:43
>>789 mkmfをどう使ってMakefileを作ったのかとか、なんのシンボルが参照
できなかったのかとか書くと分かる人がいるかも。
792 :
デフォルトの名無しさん :2001/04/03(火) 12:46
>>790 superはその名の通りスーパークラス。継承したいクラスを指定する。
rb_cObject(=Object)を指定してるのはとくに何も継承しない場合。
793 :
デフォルトの名無しさん :2001/04/03(火) 12:50
Racc本は、yaccを知ってる人も知らない人にもお勧め。
俺、yaccの何が嫌って、複雑な構造をぶら下げ出すと 共用体が果てしなく太ってくとこなのよね。 (全Object共通の基底構造体を作ればいいっちゃいい話なんだが) だから、あのraccの素直な書き方にはちょっと感動しちゃったよ。
ぎこるび、どこいった。
ぎこるびはお星さまになりました。
798 :
デフォルトの名無しさん :2001/04/03(火) 19:14
>>781 RubyコミュニティーがRDに自信を持っているなんてはじめて聞いた。
その本の書き口からそういう印象を持ったの?
ある程度そのまま読めて、HTML書くよりは柔軟で楽だから使っているけど、
使っている人はみんな何かしら不満を持っているよねえ。
拡張の案が出るたびにポリシー上の理由から採用されずに消えているし。
つか、なんだよ「るびきち」って。 馬鹿な名前。 いかにも洗脳された逝かれ野郎って感じ。
800 :
デフォルトの名無しさん :2001/04/03(火) 22:01
RD used to be simple and straight. There was nothing like ((<(({}))>)). IMHO, it does not suit hand-typing nor human-reading anymore.
802 :
いつでもどこでも名無しさん :2001/04/04(水) 14:11
Ruby本英語版、9月延期age
通りは常に単純で直線でした。 何もありませんでした、のように(<({})>)。 IMHO、それは手をタイプすることに適しません、 および、人間を今は読むこと。 だって。(Excite訳)
いまどきの外人は nor なんて使わないよねぇ 変な英文だ...
使わないことないよ。nor の方が強調的だから、書き言葉ではしばしば使われます。 それより、もし今どきの日本人を自認しているなら「外人」という言葉の方に違和感を感じてほしい。
>>805 804じゃないですけど、日本人以外の外国人のことを
外人って言ったらダメなんですか?
それはおいといて、
>>801 RDのinlineは便利でよく使ってしまうんだけど、
plain textとしてRDな文章を読む時には目障りになりがち。
予め整形前データとして作るならinline使いまくるんだけど。
alphabet shika tsukaenai kankyou nanode hetana eigo de kaite mitano. gomen ne. romaji de kaite mimasu.
>>806 san
atoshori suru koto ga zentei dattara, RD no chousho(tegarusa) ga hangen shite shimau no dewa?
douse atoshori suruno dattara issonokoto XML-based toka ni shitekureta houga ii kanaa.
ato RD no inline wa editor ga kashikoku naito kakukini naranai deshou. itsumo Emacs ga tsukaeru toka kagiranai kara...
roma ji uzai ne... to iuka boku no kakikomi ga uzai kamo. self<<"itteyoshi\n"*256 # I don't mean that RD is poorly designed. It's just my humble opinion.
>>807 =801
「後処理するくらいならXMLベースにしてみたら?」
というのは確かに尤もなんだけど、
801さんも上げている「手軽さ」というよりも
「書き易さ」みたいなものをRDには感じているので、
やはりRDで書きたいです。もしかしたらこれは
読み手ではなくて書き手の心理なのかもしれませんが。
「RDのinlineは賢いエディタじゃないと書く気にならない」
というのはいまいちピンとこない。今Windowsのxyzzyという
Emacs似のエディタを使っているからかもしれないけど、
メモ帳だって問題無いでしょ。ちなみに
RD mode(xyzzyならRD minor mode?)は使っていません。
とりあえずinlineは使わなくてもRD的に問題なさそうだから、
(文章の構造自体にinlineは関わっていない。inlineが
他の要素に関わろうとはするけれど)使いたい時に使う、
でOK。逆にRWikiなんかはinlineないと辛い。そんな感じ?
あぁなんか「そんなことわかってるよボケ」的とか言われる
気がするよ。逝ってきます。
810 :
765 :2001/04/06(金) 00:57
>>791 mkmfは ruby -rmkmf -e "create_makefile('hoge')"
のようにコマンドラインで作り、nmakeを実行すると、
LINK : warning LNK4001: オブジェクト ファイルが指定されていません。ライブラリを使用します
LINK : warning LNK4068: /MACHINE の指定がありません; IX86 をデフォルトとします
LINK : warning LNK4001: オブジェクト ファイルが指定されていません。ライブラリを使用します
LINK : error LNK2001: 外部シンボル "Init_hoge" は未解決です
hoge.lib : fatal error LNK1120: 外部参照 1 が未解決です。
LINK : fatal error LNK1141: エクスポート ファイルのビルド中に障害が起こりました。
という感じのエラーが出ました。
>>792 なるほど、ありがとうございます。言われてみれば非常に単純なことでしたね。
rb_define_class_underと混同してしまっていました。
しかし、またもや問題が起きてしまいました。rb_define_classでrb_cObjectを使うと
[BUG] Segmantation Faultというエラーが出てしまいます。
これはどうしてなんでしょうか?
811 :
デフォルトの名無しさん :2001/04/06(金) 02:53
>>810 > LINK : warning LNK4068: /MACHINE の指定がありません; IX86 をデフォルトとします
これはどうでもいいけど、それ以外のwarningを見るとどうもオブジェ
クトファイルが指定されてないような感じ。
で、ちょっと記憶に引っかかるものがあったので探してみたら
[ruby-list:28864]なんてのを発見。もしMakefile中の OBJS = で始ま
る行が空になってるならたぶんこれ。
スナップショットでは直ってるはずなんでそっちを試してください。
> しかし、またもや問題が起きてしまいました。rb_define_classでrb_cObjectを使うと
> [BUG] Segmantation Faultというエラーが出てしまいます。
これはMakefile作らずにやったとき? ならやっぱり-DIMPORTがついて
ないせいのような。
そうか、だからやたらとIMPORTの話が出てたのか。
>>806 804の文脈で「外人」という言葉を選ぶ感覚はおかしいと思わない?
たぶん、漠然と英米人をイメージして外人と言ってるんだと思うよ。
Rubyと関係ないのでここらにしよう。
814 :
デフォルトの名無しさん :2001/04/06(金) 09:27
スクリプト内で Dir.chdir("c:/hoge") とかやって ディレクトリを移動してそのまま終了させたい場合が あるんですけど、なぜか起動したディレクトリに戻ってしまいます 対処方法ってないでしょうか?
815 :
デフォルトの名無しさん :2001/04/06(金) 09:43
>>814 shell の cwd と Ruby の cwd は別もんなんだろうから、
shell 側で cd .. するしかないんでは?
MS-DOS ならバッチファイルでも書いてやるとか。
>>813 そんなのは言わずもがな。俺でなく 804 に言えよ。
817 :
デフォルトの名無しさん :2001/04/06(金) 22:43
>>815 Command.com だと、 Ruby スクリプトが終了時に "cd " + Dir.pwd を何かのファイル(X とする)に
出力するようにして、その Ruby スクリプトを実行後 CALL X するようなバッチファイルを書き、
そいつを CALL で呼んでやるようにしないとダメかも。(分かりにくいが)
Windows NT/2000 の cmd.exe はよく分からない。下の方法が使えるかも?
UNIX 系のシェル(含 cygwin + bash)なら alias で cd `ruby ...; cat X` を登録すればOK。
おっと、 cd が一つ余計だ。 一時ファイルを作らない方法は自分で工夫してみて。
>>816 どうしようもないahoだなおまえ。現代英語が英米人だけのものじゃ
ないから外人って書いてあるんだろ。現代英語は英米人しか書かないと
思い込んでいる脳みそをどうにかしろよ。
>>819 そういう言葉遣いはしない方がいい。俺はそういう口調でしゃべるといつも自分で胃がきりきりしてくるから、自戒の念をこめて、自分の心を大切にしましょうと言いたい。
俺は毎日多くの国の人と話をする中で nor の使われ方も見ている。そういう場では他の日本人とも英語で話すから、そういう際に英米人とか外人という括りを意識することはほとんどないし、君がそれとかけ離れた認識を持っているとも思わない。
では
>>812 は何かと言えば、『
>>804 は「変」かどうかを話題にしているのだから、その文脈での「外人」が何を念頭においているかと言えば、英語を普段ネイティブ(同然)に話す人だろう。』という推論なのです。Ahoでどうにもならん脳みその所産かもしれないね。
ただ俺は、
>>801 は立派な英語だと思うし、これからも(ここに英語で書き込むのがいいかどうかはさておき)自信を持って使ってほしいと願うばかり。
無益だからここらで切り上げよう。続きは語学板かどこかでお願いします。
821 :
814 :2001/04/07(土) 00:53
>>815 >>817 レスどうもです
バッチファイルに出力して後から実行する方法は
うまくいきますが、なんか美しくないですね。。。
bashの方は結構いいかも。hoge.rb でディレクトリを
標準出力させて cd `ruby hoge.rb` とか。
こうやるとテンポラリファイルも必要なくなりましたし。
で、alias登録しようと単純に、
$ alias foo="cd `ruby hoge.rb`"
とかやってみると `...` が登録する時点で展開されちゃいますね
うーん、bash(cygwin環境)は最近使い始めたばかりなんで・・・
もうちょっと勉強してきます
822 :
デフォルトの名無しさん :2001/04/07(土) 00:59
"" じゃなくて '' で括らないとだめだよ。 あと、 alias foo='cd `ruby hoge.rb`' だと hoge.rb の標準出力はみんな食われちゃうけど、OK?
823 :
814 :2001/04/07(土) 01:57
おっしゃる通り、''で括ったらうまくいきました ってゆうかこれ Ruby の文字列の場合と同じ扱いなんですね bashってすげーなぁ >hoge.rb の標準出力はみんな食われちゃうけど、OK? 今のところOKですけど、でもうーん、ま、いいや。
824 :
デフォルトの名無しさん :2001/04/07(土) 08:31
あくまで推測ですが、814さんがやろうとしていることは、 オライリーのbashでも買って来れば問題解決するんでは ないかと思われ。「rubyを使って解決する」ということに 意味がある場合もありますが。 私はしばしばそうです<ruby使うのが目的の半分以上。 ま、趣味のプログラミングですから。
>>823 というか、shの伝統をrubyが受け継いでるってのが正解です。
826 :
デフォルトの名無しさん :2001/04/07(土) 23:13
なるほど。そういう伝統を全然知らないんで、 てっきりPerlの仕様を受け継いだのかと思ってました
827 :
デフォルトの名無しさん :2001/04/07(土) 23:54
NHK放送中age Perlの綴りくらいきちんと書けよ・・・>NHK
828 :
デフォルトの名無しさん :2001/04/07(土) 23:55
Pearlって。。。
829 :
デフォルトの名無しさん :2001/04/07(土) 23:56
俺もRubyやろっかなぁ
830 :
>NHK :2001/04/08(日) 00:00
このおっさんだれよ?
にいちゃんが歌唄ってるぞ。>NHK
833 :
デフォルトの名無しさん :2001/04/08(日) 00:23
Ruby作った人出てたよ。ヲタクっぽかった
NHKのやつって再放送? つーか、また見逃してるし。 まつもとさんがどんな人か見たかったのになぁ
835 :
デフォルトの名無しさん :2001/04/08(日) 02:12
>>826 ある意味Perl経由で受け継いでるともいえる。
才媛す愛な。科学の名を騙り綺麗なねーちゃん並べる番組。 再放送とはちょっと違った。 同じ映像も使ってる(だからPearlが直ってない(笑))けど それに才媛す愛的なコメントを被せたりしてたし、 おっさん(笑)も出てたし。matz氏よろこんでるぞ>MLログブレード あ。そのmatz氏mailによると今日分の再放送は4/14 15:15だそうだ。 これって才媛すの通常の再放送時間だったかな? 顔(笑)見たい人はこれでどうぞ。 #ただし、顔だけ見ても「どんな人」かわかるかは不明。 #知りたけりゃML読むほうが…
837 :
NHK :2001/04/08(日) 04:01
ビデオに永久保存したよ
NHKのサイトで動画流してないの?
839 :
デフォルトの名無しさん :2001/04/08(日) 07:22
ところで、Rubyのライセンスを守って配布しても、配布するため に守らなくてはいけないライセンスを全部満たさない問題は どうなったんだ?
840 :
>837 :2001/04/08(日) 13:03
アプきぼん
841 :
デフォルトの名無しさん :2001/04/08(日) 13:21
RDみたいな専用方式を採用しなくても、 nroff とかプレーンテキストとかHTMLではいけなかったのかな? NIH症候群を感じます。
842 :
デフォルトの名無しさん :2001/04/08(日) 20:27
>>841 RDの説明に「PerlのPODのようなもの」とあるように、
Rubyの為のPODを欲したんじゃないのかな。
それが本当に必要なのかは別として、今あるものを
無くす必要は無いと思うよ。
ところでRDってもともとまつもとさんが考えたものだよね。
でもまつもとさん自身がRDを開設したり説明したりしている
文書や記事を見たことが無いんだけど、知っている人いる?
>>839 ごめん、その話知らないんだけど、何か事情がわかる
ページなり何なりを紹介してもらえませんか?
844 :
デフォルトの名無しさん :2001/04/08(日) 21:55
845 :
デフォルトの名無しさん :2001/04/08(日) 22:36
>>839 まつもとさんにはメールしたんだけど、まつもとさんとしても
いい書き方が思いつかないようで困っているらしい。
vsnprintf.cはそれ自体を書き換えようかなあ、とも。
俺としても(特にLGPLは)なかなか理解しにくいんで、こうすれば
いい、という提案はできていない。すまん。もう少ししたら
まとまった形で文書を書いて提案できるかもしれん。
読みました。読み間違えていたら申し訳ないけど、 寄せ集めたソースのそれぞれに異なったライセンスが 付けられていて、それらとRubyのライセンスがかみ合わない ってことなのかな。 現状まずいものをまつもとさんもしくはそれ以外の人が 置き換える、もしくはもっと緩いライセンスが付いた既存の 実装に置き換える、という方法は無いのかな。 手間はかかるけど、それ以降の普及具合を考えれば やって損は無いと思うけど。 なんか激しく勘違いしている気がする。すまん。
BSD系のライセンスは、どういう形態で配る時も そのライセンスの文句をファイルに含めておか ないといけないと言ってるような気がする。 Rubyには何個もそういうライセンスが入ってるから その全部のライセンスが示されていないと配ることが 出来ないと思う。
PythonやPerlはそこらへん問題ないの?
Ruby の COPYING に文面を含めるだけでいいんじゃないの?」 そんなに UCB の名前を入れるのが嫌なのかな。 Perl はいくつかの拡張ライブラリが BSDL だけど本体はぜんぶ Artistic License みたい。 Python 2.0 は GPL なものは入っていないけど、 Include/pyfpe.h は BSDL で、 Python.h がそれを無条件に include してるから、必然的に BSDL なコードを含むことになるね。 ということで、 Python も同じ状況みたい。 どっちにしても、ライセンスには「それぞれのソースの条項に従う事」と書いておいて、 あとは使う側が考えることだね。vsnprintf.c がリンクされたかどうかは調べようはあるでしょ。
config.h の #define HAVE_VSNPRINTF 1 の有無で分かるな。 バイナリを作って配布する人は当然調べて明記しておかないといけないね。 例えば、Win32バイナリには含まれる。
まちがえた。COPYING は GPL2 の文面そのものだね。README / README.JPでした。 util.c は Artistic License を選べるから問題なし。 st.[ch] は public domain という宣言がある。 gc.c については著作権表示は残ってないみたい。もう跡形もないということ? 結局、 regex.[ch] (LGPL)のソースが入手できる保証をして、 missing 以下の BSDL なものをリンクしたバイナリでは BSDL の文面を付けてやればOK? BSDL は表示さえすればほとんどどう使ってもOKなライセンスだし、 Artistic License は穴があるから事実上配布制限がないに等しい。 Public domain とあるものについては、作者とかけあって Ruby のライセンスで 配布してもいいという言質あるいは文面を取り付けた取った方が安全なのかも。 (商売に使う場合) 残る問題は crypt.c と alloca.c。crypt.c は、本に載ってるのを C で書き直した、 とあるから、著作権としては問題ない気がする。 alloca() がないプラットフォームはどんなのがあるのかな。要注意かも。
で、 Ruby のライセンスに立ち戻ってどう直せばいいかと言うと、 てっとり早いのは「4項は3項よりも優先される」と明記することか?
854 :
デフォルトの名無しさん :2001/04/09(月) 07:56
でもさ、C言語の知識がないと調べられないよね。 C言語の知識があってもmakeや、configure等の知識が無かったら駄目。 それに、自分で調べると漏れがあるかもしれない。 だから、「これこれの環境のバイナリなら、こういう文面にして配らないと いけないよ。」等と書いておくべきだと思う。
つか、そもそもソース見ないとわからない時点でおかしいだろ。
>>854 configureした環境のバージョンやインストール状況によって変わるし、
未知のプラットフォームについて調べつくすこともできないからなあ。
代表的なプラットフォームの典型的な環境での例は挙げられるだろうけど、
それが絶対だと思われても困るし、難しいところだ。
ライセンスにはどのファイルに注意する必要があるか書いてあるけど、それを
configure の結果を調べてライセンスについて自動的にチェック・警告してくれる
ツールが付くと便利かな。そんなことまでしているオープンソースなソフトは
見かけないが、 Ruby が最初にそれをやるというのも一興。
>>855 バイナリを作って配布する人間は、違反したら自分の責任になるんだから、
ソースぐらい見た方が賢明だろう。
上で書いたように、ソースがあってコンパイルした状態から簡単に分かる
ようになればね。
ほんとだ。rms の名前があったからもしかしたら、と思っちゃった。
なんか、BSDLやGPLライセンスってウザイネ。
>>856 環境が色々あると言うけど、バイナリで配るのはwinでは?
Win以外にもたくさんのプラットフォームでバイナリパッケージが配布されてるよ。 Linux (Debian, Vine, Kondara, ...), FreeBSD, NetBSD, OpenBSD, Darwin (MacOS X), ...
Unixでバイナリ配布なんて言うなよ・・・
RDの質問。
1. 変換したHTMLに<hr>を入れたいんだけど出来ますか?
2. ftpなハイパーリンクの書き方。
ftp://ftp.hoge.com/pub/foo/bar/ みたいなリンクを入れたい。
・・・出来ない場合。
RDみたいな上記1,2を実現できるtext->htmlフォーマッタってありますか?
>>862 PDA上でもUNIX系のOSを動かすご時世だし、非力なマシンを使ってるとバイナリ配布はありがたいよ。
(でも、今どきのPDAは昔のUNIXワークステーションより速いかも。。)
>>862 PDA上でもUNIX系のOSを動かすご時世だし、非力なマシンを使ってるとバイナリ配布はありがたいよ。
(でも、今どきのPDAは昔のUNIXワークステーションより速いかも。。)
>Unixでバイナリ配布なんて言うなよ・・・ ここのrubyistってこんなのばっかり...
869 :
デフォルトの名無しさん :2001/04/10(火) 02:40
regexだけじゃなくて、missing下のBSDLも全部変えて欲しい。
871 :
デフォルトの名無しさん :2001/04/10(火) 09:50
rubyをこれから勉強したいと思っています。 rubyで作られた、アクセスカウンター、掲示板などのCGIサンプルが あるサイトを知っている方教えてください。なんかどこもかしこもperl ばっかりです。よろしくお願いします。。。。。
rubyでcgiって本が出てたよ。 あとこのスレもそろそろpart2たてる?
873 :
863 :2001/04/10(火) 11:51
>>864 > <hr>はRDからは入れられないと思う。
> 予め <hr> だけのファイルを用意して、
> <<< でincludeするとか。
<hr>
と書いただけのファイルをincludeしようとすると、Errorになりました。
で、=begin =endでくくってincludeしようとすると、
<hr>
とエンコードされてしまいます。うーん。
> 2.は((<URL:
ftp://ftp.hoge.com/pub/foo/bar/ >))じゃだめ?
> 見た目に「URL」とかが付くからダメなのかな。
あ、これで良いのですね。
昨日は似たようなことを試行錯誤してたんですが、なぜかErrorになって
しまい、途方にくれていました。
君らもプログラマなんだったら、バイナリファイルとテキストファイル などという幻想は、DOSにしか存在しないことくらい知ってるだろう。
つまらん。
。んらまつ
>>874 はァ?DOSにしかないのは入出力のバイナリモードとテキストモードだろ。
ソースをzipやtarballで固めたのをバイナリ配布だと思ってる?ネタのつもりか?
880 :
864 :2001/04/10(火) 15:04
>>873 =begin
<<< hr
=end
という内容のfoo.rdとして作成する。そして
<hr>
のみのファイルをhr.htmlとして作成する。
あとはrd2 foo.rdでオッケー。
ちなみに <<< hr.html とすると
hr.html.rd や hr.html.html を読もうとするので注意。
>>879 tarballで固めるって何だよ・・・
厨房は黙ってろ。
"UNIX バイナリ配布"でgoogle検索したら、470件Hitした。
一発目がXFree86のInstallation Details for XFree86[tm] 4.0.3
誰だよ、バイナリ配布なんて約した奴は。
でも、人口に膾炙しているみたいなので、
>>874 は取り消す。すまん。
>>880 ><hr>
>のみのファイルをhr.htmlとして作成する。
これが、キモなんですね。
解って見れば、なんと簡単なこと。
こういう使い方ってあまりしないのかな?
Ruby本(黄色)をパラパラと立ち読みしたのですが、
書いてなかったような気がします。
884 :
デフォルトの名無しさん :2001/04/10(火) 16:35
>>882 binary distribution で検索してみ。
1.6.4-preview1あげ。
>>884 げ、何だこれは。いつの間にこんな言葉が流行ってるんだ。
いや、俺が井の中の蛙なんだろうが、最近のUNIX屋はみんな
使ってるのか?
じじぃは逝ってよし。最近はバイナリ配布の時代なの。
P.84「出力するフォーマットのファイルのインクルード」
でも、/usr/binとかbinfmt_elf.cとかあるのでbinary fileという用法 はあると思うし、それをパッケージングしてるわけだからバイナリパッ ケージという用語はありだと思うけど。 # /binって/usrとか/varみたいにacronymがついてたんだっけ?
いや、もういじめないでくれ。 俺はUNIXを10年やってきたけど、「バイナリ配布」というのは 初めて聞いたな。 というか、何度も聞いてはいるが、それはWindowsの話だと 思ってた。 つーか、ファイルなんて、マジックナンバーが違うだけで、 テキストもバイナリも無いと本気で思ってたよ。
890 :
デフォルトの名無しさん :2001/04/10(火) 21:50
>>889 さんの話はそれはそれで納得。それに対して言うことは無し。
ただ、今回のバイナリ配布という言葉の持つ意味は、
どちらかというとソースファイルとコンパイル済みファイルの違い
みたいなものじゃないかなと思う。
例に挙がっていたUNIX関連のバイナリパッケージなんかは、
まさに予めコンパイルした実行ファイル等をまとめたファイルを
配布しているわけだから。Rubyスレとしてこの話が出てきたのも
コンパイルした後の心配事が発端なんだしね。
改行コードについては誰も言及していないはずなので、
そこらへんの話はこれで終わり。
というわけで、ライセンスの話は終わったの?
>>889 ごめん。885読む前に書いたやつだから。
送った後で885読んでタイミング悪かったとは思ったけど、
別にいじめたり非難したりするようなつもりはないので勘弁。
>>887 >P.84「出力するフォーマットのファイルのインクルード」
わざわざありがとうございます。立ち読み(ぉぃ)で確認しました。
これぐらい、マニュアルに書いとけよな、と思い再度rd-draft.rd.ja
を確認したら、Includeの所にちゃんと書いてました。
最初にこれ読んだときに、意味がわからず無意識に読み飛ばし
んだと思います。
逝ってきます。
では、900番取った人が、次スレ立てるっちゅーことで。
894 :
デフォルトの名無しさん :2001/04/12(木) 15:01
RD、実際に使い始めてみると結構いいぞ。 俺はVine使ってたんだけど(ViViの著者によるアレ) RDの方が手軽でいいね。
895 :
デフォルトの名無しさん :2001/04/13(金) 01:16
>>894 VineってLinuxでは無かったのね(0点)。
Vineはかなり印刷を前提としているようですから、
RDとはまた違う使い道があるのでしょう。
僕もRDが手軽というのには同意します。シンプルな
ところが好き(Inlineは便利だけど例外)。
896 :
デフォルトの名無しさん :2001/04/13(金) 01:23
RDって何するものなの?
897 :
デフォルトの名無しさん :2001/04/13(金) 01:41
>>896 ASCIIから発行された「Rubyを256倍使うための本
魔道編」によると「RDは(中略)ドキュメントの書き方」とあります。
インターネット上では
www2.pos.to/~tosh/ruby/rdtool/ja/whats.html
www.open-news.com/~maki/txt/whatsrd.html
等にまとめられていますので読んでみてください。
上記のページからさらにリンクをたどっていけば、
大体印象がつかめると思います。
898 :
デフォルトの名無しさん :2001/04/14(土) 11:07
age
このスレで終りにします
900 :
デフォルトの名無しさん :2001/04/14(土) 13:10
900とった
やったーーーー!!!!!!! 901番とったぁぁぁ!!!!!
902 :
age :2001/04/15(日) 00:56
>>900 -902
あぁいいなぁ。
でもオレ903とったもんね。
904 :
デフォルトの名無しさん :2001/04/18(水) 16:21