1 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 03:34:28 ] オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。 Ruby Home Page www.ruby-lang.org/ja/ = 前スレ Rubyについて Part 33 pc11.2ch.net/test/read.cgi/tech/1223709050/ 過去スレ・関連スレは >>2-
577 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 00:10:06 ] ttp://www.atmarkit.co.jp/news/200902/27/langs.html まあ適当に数字いじり
578 名前:デフォルトの名無しさん [2009/02/28(土) 00:32:10 ] 1年後のIT土方御用言語の傾向と思って記事を読み直してみると、なかなか興味深い。
579 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 00:37:43 ] Perl/Pythonより売れてるってのが驚きだ Matzがバブルと言うのもうなずける
580 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 01:20:04 ] >>579 だってドキュメントが金出して本を買うしかないwwww
581 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 01:55:47 ] javaが落ちるのは当然だがrubyがJava以上に落ちるのは意味不明だなぁ Railsで一瞬盛り上がっただけなのかね
582 名前:デフォルトの名無しさん [2009/02/28(土) 17:17:46 ] Rubyはある程度使ったら本読むよりネットやソース見たほうが早いって感じか。 Rubyは1.9以降でPythonは3.0以降がもっと使われだすとまた変わってくるかもね。
583 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 17:45:12 ] 単純にrubyはpythonの代わりにはなれないと判断されただけだろ
584 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 18:40:35 ] Rubyはもう衰退期に入ってるのかもな
585 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 18:42:27 ] 成熟期、ではないんだろうか。ないかな。ないよな
586 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 18:45:18 ] ruby(笑い)
587 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 18:46:00 ] もともとPerlやらPythonやらがあったところに食い込んでるんだから よくぞ生き残ったと思うよ これだけ発展すれば、もういきなり死ぬって事は無い
588 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 18:56:52 ] Railsに生かされてる感じだけどな
589 名前:572 mailto:sage [2009/02/28(土) 18:58:52 ] あれ、みんな困ってないの? Encoding に指定するエンコーディング名だって困るよね?
590 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:04:33 ] はなから自動検出などあきらめている。
591 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:48:25 ] perl, python, phpと違って、mod_rubyが(事実上)無い事が一番致命的だった。 レンタルサーバーで使えない。
592 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:56:14 ] mod_rubyがどうこうと言うよりも、レンタルサーバーに関して言えば単にキラーアプリの不足だろう tDiaryはかなりrubyを広めるのに貢献したけれど、それでもperlやphpに追いつくには足りなかった
593 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:04:34 ] RUbyはところどころ未完成なのがいいんだよ 完成しすぎてると人気がなくなる
594 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:04:59 ] phpMyAdmin、Trac、MovableType あたりがキラーアプリかな? 特にMovableTypeのお陰で、そこらのへなちょこレンタルサーバでもCPAN モジュールが使えるようになったのはPerlでは大きいな。ちょっと遅かったけど。
595 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:11:25 ] >>591 www.google.com/search?q=ruby-on-rails-hosting+discount www.google.com/search?q=django-hosting+discount railsとdjangoで比べると、railsが圧倒的。
596 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:13:34 ] 中途半端なmod_rubyがあったが為に、まともなmod_rubyが開発されなかった。 CGIAlt以前のcgi.rbと同じ構図。
597 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:13:59 ] ぬるぽ
598 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:24:38 ] >>589 NKF.guessでいいじゃん
599 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:33:46 ] 質問の前提を覆すなよwかわいそうだろ
600 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:58:56 ] Rubyは遅くてたまらん。 フルアセンブラで書き直して欲しい。 誰かやらないか?
601 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 21:05:48 ] もっとこう、発展余地のある方向を・・・・ JIT組み込んでみるとかさ、GCのアルゴリズム改良してみるとかさ、 部分的な型付けや型推論に挑むとかさ
602 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 21:07:46 ] はあ?
603 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 22:20:48 ] フルアセンブラ(笑) そんなに遅いならRubyなんかで書かずにフルアセンブリで書けばいいじゃない
604 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 22:45:11 ] 日本で、Ruby はマイナーなテキストエディタのように生き残るよ。 日本語の漢字コードに対応しているし。
605 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 22:54:34 ] >>604 >マイナーなテキストエディタのように 何となくしっくり来る例えだな まぁ日本に限らず世界でも、ここまで使われ始めたRubyが そう簡単に死ぬこともないだろう 仮に知名度が下がったとしても、ハッカーは使い続けていくさ
606 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:44:55 ] >>600 1.9系使ってそう思うのならお前に安住の地はない
607 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:53:58 ] >>596 mod_rubyって中途半端なの?
608 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 01:26:38 ] 一方俺は次のLispに逃げた
609 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 01:33:44 ] 一方おれは1.9に惹かれてRubyを始めた
610 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 01:35:10 ] そして実践に使える場所がないことに気づく
611 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 02:29:10 ] 昔のRubyはgemだのrubyforgeだのなくて細々とRAAにユーザーのライブラリが 載ってるだけだったから、大抵のユーザーは自給自足してたけど、今は事情が違いすぎる。
612 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 02:43:57 ] 1.9使いたいんだが、使いたいgemのmswin32バイナリが1.9対応してない。
613 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 02:57:46 ] >607 レン鯖にmod_ruby入れたら何が起こると思う?
614 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 03:03:08 ] レンタルなんて仮想しか使わんがそれでもダメ? >>612 何使いたいんだ?
615 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 09:42:48 ] >>614 nokogiri
616 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 13:13:55 ] >>615 まじで?ほんのちょっといじってみたが、おれが使う分には動作したのだが。 HTMLとってきてxpathを使ってデータ取り出すだけだけど。nokogiriのどの機能がだめ?
617 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 13:55:00 ] >>616 実際に使いたいのはmechanizeなんだけど、それがnokogiriを必要としてるんでどうにかならんものかと。 一応状況説明。 ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.9.1-p0-i386-mswin32.zip といくつかの必要なdllを入れた環境で gem install mechanize とすると、 nokogiri-1.2.1-x86-mswin32-60 mechanize-0.9.1 がインストールされる。 で、インストールされたnokogiriのnative.soはmsvcrt-ruby18.dllを要求するけど、 入ってるrubyのdllはmsvcrt-ruby191.dllだからそんなものないということで動かない。 msvcrt-ruby18.dllを持ってきたとしてもまぁ色々拙くて駄目。
618 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 14:52:46 ] ふむ 再現
619 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:16:26 ] Nokogiri は今重点開発中だから報告すれば('(゚∀゚∩ なおるよ! どっちかというと Mechanize のラテン文字バグを早めに直して欲しいんだが require 'rubygems' require 'mechanize' agent = WWW::Mechanize.new agent.get('www.google.com/language_tools?hl=en ') Iconv::IllegalSequence: "\240(Simplified)';n"... from /usr/lib/ruby/gems/1.8/gems/mechanize-0.9.1/lib/www/mechanize/util.rb:29:in `iconv' from /usr/lib/ruby/gems/1.8/gems/mechanize-0.9.1/lib/www/mechanize/util.rb:29:in `to_native_charset' ISO-8859-1 なページでラテン文字とか記号つき文字とかがあると絶対にそこでエラーになるという
620 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:27:03 ] >>619 そんなんテストで気づけよ…
621 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:31:50 ] 「中でIconv使ってるから文字エンコードごとにメジャーなとこ10個くらい出入力のチェックしよう」 と考えてテスト作る人は正直なとこかなり稀だと思うっていうかめんどくさいというかむしろ テスト書くのが面倒だというただそれだけの理由でIconv使うの止めそうだ
622 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:33:42 ] >>617-618 まじかよ。1.8と1.9を両方入れてるから間違えたのだろうか。 これから1500万件データを入れなきゃいけないから明日試してみよう。
623 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:35:44 ] 俺のは直る直らないと言う以前に1.9.1環境でビルドしたバイナリgemも用意しといてねって話しなんだけどね。 まぁ、それはそれとしてそんなバグもあるのか。 VC++2008 Express Editionでビルドできたら自前でビルドしちゃいたいところだけど、 これもこれで色々とうまくいかないんだよね。
624 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:47:16 ] Mechanize のは 「他人のコードを入れたらそこでだけバグって全体が止まった」 という教科書に典型例として載りそうな事例 メインのメンテナさんは頭抱えてると思う 教訓としては「欧米ファイルを変換する場合は NKF.guess の返り値の文字エンコード名を Iconv に渡さない」 Latin のファイルが NKF.guess で SJIS か CP932 と誤認されて(というか NKF はこの選択肢しかない)、Iconv の変換がコケる
625 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 21:49:42 ] マジでテキストの文字エンコーディングが プログラミング上の悩みの種になりつつあるな。 特にスクリプト言語だと、己のスクリプトファイル 自身のエンコーディングと、扱うテキストデータの エンコーディングの両方ともに注意が必要だ。 正規表現でマッチしなくなるとか、かなり致命的。
626 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 21:55:52 ] >>625 んなもの、webアプリの世界では遙か昔っからの問題だ それをUNICODE文字セットで揉めに揉めるだらWindowsのよくわからんローカライズだら EUC-JPからの切り替え遅延だら、ずーーーっと先延ばししてきただけの話じゃないか Perlが内部エンコーディングをUTF-8にし、Encodeモジュールを標準添付にしたのは 何年前だと思ってるんだ
627 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:12:25 ] Matzか誰かがUTF-8を毛嫌いしてるだけで EUC信者のせいで導入できなかったのが敗因 さっさとUTF-8にするのは正解だと思う
628 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:31:05 ] そうだ、ISO-2022-JPもShift_JISもEUCも滅べばいい。 世界の文字コードがUTF-8になれば世界は平和になる
629 名前:デフォルトの名無しさん [2009/03/01(日) 23:09:09 ] そう。過去資産の一部をすっぱり諦めるという英断を、開発者、ユーザを含めた全員でできれば 幸せな世界が待ってるんだ・・・・・。
630 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 23:38:51 ] 2byteで済むのが3byte-6byteになるのが嫌で反対してるんですね わかります
631 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 23:45:29 ] リソースフォークに文字エンコードを書く風習が広まっていれば…
632 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 23:58:21 ] よし、じゃあ2chをUTF-8化しよう
633 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:07:45 ] なってなかったっけ
634 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:11:15 ] 2ch書き込みはcp932
635 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:14:23 ] Unicode文字が使える設定の板があるってだけだな
636 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 01:27:57 ] Unicodeにもいろいろ違いがあるようだが、あまりよくわかってないダメなおれ 16だのなかったか?
637 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 11:01:03 ] Code Set Independent は正義
638 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 11:31:18 ] > Matzか誰かがUTF-8を毛嫌いしてるだけで > EUC信者のせいで導入できなかったのが敗因 > さっさとUTF-8にするのは正解だと思う 何を言っているんだお前は、RubyにUTF-8対応パッチが入ったのは1999年のことだぞ。 > そうだ、ISO-2022-JPもShift_JISもEUCも滅べばいい。 > 世界の文字コードがUTF-8になれば世界は平和になる 無知な人は幸せでいいですね。 > 2byteで済むのが3byte-6byteになるのが嫌で反対してるんですね > わかります 全くわかっていないので、とりあえずRFC3629くらいは読んでください。 > リソースフォークに文字エンコードを書く風習が広まっていれば… なので今更ながらmagic commentなんぞ作ったわけです。
639 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 11:37:22 ] > Unicodeにもいろいろ違いがあるようだが、あまりよくわかってないダメなおれ > 16だのなかったか? Unicodeは1つだからuniなのです。 通信時に用いる符号化にはUTF-8、UTF-16、UTF-32があります。 UTF-16は不幸な過去です・・・。 >>619 glibc iconv や libiconv の未定義文字があると例外投げる独自仕様は、 ほんとに有害ですよね。全てがCitrusになるといいと思います。 >>572 自動推測なんてものを当てにしていいのは小学生までです。 ていうか、ISO 8859シリーズの自動推測って不可能でしょ。 # 単語辞書とかでがんばるのかね? XML宣言なりHTTPヘッダなりmagic commentなりを探してきてそれを使ってください。 そういうライブラリや、フレームワークはそのうち標準添付されるかもしれません。
640 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 12:11:13 ] >>636 文字集合としてのUnicodeと、そのエンコーディング(符号化方式)であるUTF、という認識から 始めればいいかと。 俺もその先は詳しく知らんけど。 CSIってのは、単独文字集合内での利用においてはそれなりの合理性があるんだろうが、 現実の開発・動作時に、文字セット間の「変換」「推測」が実質必要になるのが根元的な問題。 それぞれ勝手な文字集合を使う上、さらにそれぞれもろにエンコーディングの問題もある、はず。 物事を単純化したいなら、Unicode一択なんだろうか
641 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 12:37:00 ] > CSIってのは、単独文字集合内での利用においてはそれなりの合理性があるんだろうが、 > 現実の開発・動作時に、文字セット間の「変換」「推測」が実質必要になるのが根元的な問題。 まず、推測が必要になる時点で何かがおかしい。 そのデータを送ってきたやつはなんでそのデータのエンコーディングを送ってきてないんだ? 送ってきているのだとしたらなんでそれを無視するんだ? 日本語使いだとデータだけから言語がすぐに推測できるのだと思い込んでしまうのかもしれないが、 ヨーロッパの言語だと同じ文字を使っているから、数単語の場合は推測など不可能だぞ。 > それぞれ勝手な文字集合を使う上、さらにそれぞれもろにエンコーディングの問題もある、はず。 内部エンコーディングに処理系が対応しているものを使う限りは、 エンコーディングの問題なんか変換時に用いるエンコーディング名を正しく設定する以上はない。 未だに「表」の2バイト目は0x5Cだからエスケープと衝突して・・・なんてのは古代の遺物です。 Unicode系を内部エンコーディングとして使うとよいのは、 Unicodeが実用上もっとも大きな文字集合でかつ他のほとんどを包含してるから。 例えばJIS X 0208で足りるなら別にEUC-JPでもよい。
642 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 13:24:42 ] たとえばラウンドトリップ問題とかで、特定の内部コードに一元化という方法では 困る場合がある、というのがCSI派の主張のひとつだが。
643 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 13:47:49 ] >>642 ラウンドトリップで一緒になってしまうケースでは例えばNEC選定IBM拡張文字とかがあるが、 実際問題として、そんなもん戻らなくてよくね? 比較や検索の問題があるので、その場合元で対処する必要があるにはあるのだが、 これもまた「同じ文字」が別扱いされるバグがあったとも言うわけで。 それ以外は行き帰りで同じ変換表を用いれば問題はないはず。
644 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 13:50:57 ] >>641 > まず、推測が必要になる時点で何かがおかしい。 んだね。推測はいらない。ただ、文字集合間での変換は必要。 大体変換テーブル自体がUnicode経由だったりするし。 > 例えばJIS X 0208で足りるなら別にEUC-JPでもよい。 そういうことじゃん。JIS X 0208では足りないんだよ。それを代替できるのが、現実的にはUnicodeしかなく、 それなら独自文字集合に基づいたエンコーディングそのものが不要というか、問題の種にしかならない。 Unicodeで足りない、っていう問題は、新たに規格を作ったり拡張したりするのではなく、あくまでもUnicodeの 補完で対応するべき。JIS規格は、日本の文字規格の統一とUnicodeへの提案という意味のみで利用するべき と思うんだがなあ まあ文字コードの話はあんまり深入りしたくないってのも本音だな。 レガシーと現状と文化と将来の展望の主張がいり混じってほんとよくわからん。
645 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 14:01:48 ] > それなら独自文字集合に基づいたエンコーディングそのものが不要というか、問題の種にしかならない。 その「独自」の定義は「Unicodeでない」ですかね。 > Unicodeで足りない、っていう問題は、新たに規格を作ったり拡張したりするのではなく、 > あくまでもUnicodeの補完で対応するべき。 補完って、外字でも使うんですかね。 あと、今はUnicodeの拡張可能な領域って2面しかないんですよね。 > JIS規格は、日本の文字規格の統一とUnicodeへの提案という意味のみで利用するべき 今のJIS規格って、国語審議会のおもちゃでしょ。 文字の追加以外はできないようにして欲しいね。
646 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:11:36 ] よくCSI派から理由に挙げられるのはTRONコードとか文字鏡だっけか?
647 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 22:17:17 ] いつまでスレ違い続けますか
648 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 23:55:28 ] UNICODEについて最低限知っておくべきことを最小限の時間で知りたければ 「Joel on Software」の第4章を立ち読みすることをお奨めする。 俺はそれで UTF-8 がASCII圏の奴らのワガママだと知ったw
649 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:49:43 ] 米国でRuby関連書籍の売り上げが減速か − @IT ttp://www.atmarkit.co.jp/news/200902/27/langs.html そういうわけでRubyやめてC#かPHPやろうぜ。
650 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:54:15 ] 言語仕様的にはPHPよりRubyの方がずっといいように思う。 便利は便利だが、もうPHPに戻るつもりはない。
651 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 01:17:09 ] 禿げ堂 漏れもそう思ってPHPからRubyに乗り換えた 今はPythonを使っている
652 名前:デフォルトの名無しさん [2009/03/03(火) 01:58:52 ] > UTF-8 がASCII圏の奴らのワガママ たしかにそうかもしれんが、UTF-8は結構うまく考えられていると思うがな。
653 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 05:02:03 ] >>648 UnicodeではなくUTF-8?
654 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 06:23:13 ] 他国語化考えてない古いアプリでも UTF-8だと通ったりするからな うまく考えられてるよ そういう利点は素直に認めるべき
655 名前:デフォルトの名無しさん [2009/03/03(火) 12:10:12 ] >>608 そんな俺は forth(というか concatenative language)に行く
656 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 18:15:20 ] 1.9.1でしつもん irb で1.9対応が怪しいライブラリを実行して ArgumentError: invalid byte sequence in EUC-JP というようなエラーが出る場合、「悪い」のは irb の設定? それとも元のスクリプト? それともライブラリそのもの?
657 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 18:19:12 ] マジックコメント入れて ruby1.9 -E utf-8 hoge.rb とか適当なエンコーディング指定してもエラーが出るなら、ライブラリの書き方が悪い可能性が大 マジックコメント入れてないなら、スクリプトが一方的に悪い
658 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 01:08:26 ] >>652 >>654 うん、確かにASCIIとの互換性を保ちつつ従来の文字エンコードの 課題を克服した、とてもよい設計だと思う。UNICODEの普及に 大きく貢献してるね。 >>648 は「これで Joel に興味持ってくれたらいいな」とあえて偏見 気味に書いてみたw
659 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 01:41:22 ] あっそ
660 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 07:12:54 ] ということにしたいのですね
661 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 09:06:32 ] void キタ! Rubyには型は無いのに!
662 名前:デフォルトの名無しさん [2009/03/04(水) 09:55:21 ] 型が無いわけじゃないんだけどな。
663 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 10:55:03 ] 一般的に型と呼ばれるもので「保証」されているあれこれがRubyには存在しない、が妥当な表現?
664 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 10:57:54 ] プログラム言語の理論をあまり知らない初心者だけど、 一般的に型って言った場合、どういったものを指すの? 変数(入れ物)の型?中身(オブジェクト?)の型? 静的型言語って言った場合は、前者でいいのかな。
665 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 11:19:33 ] >>664 そう 静的な型付けでは入れ物の型を先に決めるから、結果として入れることができる中身も限定される
666 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 11:45:05 ] Rubyの概念的には 「変数そのものもなんらかのクラスのオブジェクトのようなもんである言語があるらしい」 だと思ってくれればそう間違ってもいない bind_type(:str, String) とすると str は絶対に String のインスタンスしか入らない(整数を代入するとTypeError)みたいなそんな感じ
667 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 12:40:32 ] >>665 なるほど。中身そのものの型を変えられるのかどうかは知らないけど、とりあえず動的・静的って 言ってるときには、それはあんまり関係ないのかな。 あくまでも変数の型についての話、でいいのかな。 >>666 これは、TypeErrorを出しているのはその「なんらかのクラス」の機能ってことだろうか。 んでこういうこともできるから、一応Rubyに型がないわけではない、っていう意味?
668 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 12:52:27 ] Rubyしかやらないのなら型について気にする必要は一切ない 公式には型はない 型のある言語を学ぶようになってから型について学べば十分
669 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 12:59:07 ] 中身の方に「お前は誰だ」って聞いてやればいいんだよね unless(String == obj) raise ArgumentError, "イテーヨシ" end みたいに。
670 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:09:07 ] >>669 実行時にしか評価できないのなら型の実際的意味がない
671 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:12:41 ] >>666 横から悪いが、何を言ってるのか分からんのだけど、どゆこと?
672 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:27:02 ] 静的だと値にも変数にも型がある 動的だと値には型があり変数にはない とか
673 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:31:21 ] >>670 型を間違ってコーディングした事を、実行前に知りたい、という事? だったら趣味ならともかく、まともなアプリにはtestは必要なんだから、型の間違いはすぐ判る。 動的に切り替えできる必要がある場合は、動的型付けの方がやり易い。 >>671 >>664 横レスだが、型には多相型(Haskellなど)、単一型(C、Java、Rubyなど)があると思ってくれ。 単一型をさらに、静的、動的に分類可。 静的--->変数と型との対応が固定。 int i=1とした後、i='a'とするとエラー 動的--->オブジェクトと型との対応が固定。 変数とオブジェクトとの対応は可変。 a=1とした後、a="abc"と出来る。 >>672 > 動的だと値には型があり変数にはないとか Rubyはそのとおり。
674 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:45:38 ] >>673 いや、うん、そうだけど、あなたの言ってる事と>>666 の内容は およそ一致してると考えていいのかな? 俺にはそう取れなかったので
675 名前:673 mailto:sage [2009/03/04(水) 13:56:28 ] >>674 「型についての知識が、静的型付け言語の範囲内」の人に始めてRubyを説明するときには、 >>666 の表現は厳密ではないが受け入れ易いと思う。
676 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 14:17:33 ] 変数に型がないことを説明したいのに変数を型にはめることだけ例示されてもなー という違和感が >>666 にはあるな
677 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 14:34:28 ] 文句言うなら自分で説明する でもスレ違いなんだけど