トップページ⇒tech
1001コメント332KB

Ruby 初心者スレッド Part 56©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net2014/12/13(土) 09:29:12.93ID:DLY4IovQ
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 55
http://peace.2ch.net/test/read.cgi/tech/1403361584/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/
0067デフォルトの名無しさん2014/12/26(金) 13:52:30.12ID:5vBQJBUk
>>60
ありがとうございます
これ元が集合なら冪集合(powerset)っていうんですね勉強になりました
提案のコードも2**nになってるのが分かりやすそうなので参考にさせていただきます
0068デフォルトの名無しさん2014/12/26(金) 13:56:53.41ID:+ZEo3HL0
gem listで
bundler (1.7.9, 1.7.2, 1.6.1)
みたいに複数のバージョンが表示されたんですけどなぜですか?
最新のバージョンのみあればいいんですけどどうしたらいいんですか?
0069デフォルトの名無しさん2014/12/26(金) 14:40:55.61ID:abtjB2iM
ありがとうございます。
1個だけですが、Yahoo!のニュースの記事を読むことができました。

>>65
なんか、firebugの凄さがわかってきた気がします。
メイン画面のカーソルとリンクしているから目印も見つけやすいんですね。

あと、HTMLとCSSは、codecademyで一通りやってみました。

>>66
チュートリアルの英語は簡単そうですが、プログラミングの素養がないと読むのが難しそうです。
0070デフォルトの名無しさん2014/12/26(金) 21:14:00.65ID:5tJd12mY
>>68
gem uninstall でバージョン指定して消せばいい
0071デフォルトの名無しさん2014/12/26(金) 23:48:23.09ID:5vBQJBUk
最新があればいいならgem cleanupでいい
0072デフォルトの名無しさん2014/12/27(土) 14:44:36.68ID:bemsRSfW
str = "0123456789"
str.gsub(/\d/){|i|
???? if i == '7'
i*2
}
0073デフォルトの名無しさん2014/12/27(土) 14:52:07.92ID:bemsRSfW
すみません>>72は投稿ミスです。
ブロックの処理を途中で終わらせてしまうことってできないでしょうか?
下の例で、 next if i > '6' などとせずに、なおかつ i == '7' の時にブロックの処理を終了させて
str == "024681012" となるようにしたいんです。
breakに何か良い引数を与えられればできそうなんですが……。
str = "0123456789"
str.gsub!(/\d/){|i|
 ???? if i == '7'
 i*2
}
0074デフォルトの名無しさん2014/12/27(土) 15:00:31.01ID:bemsRSfW
どうでもいいミスなんですが
>>73の i*2 は i.to_i*2 でしたorz
0075デフォルトの名無しさん2014/12/27(土) 15:12:46.01ID:/8XYRH5a
>>70
>>71
gem cleanupしても消えてないgem
bigdecimal (1.2.5, 1.2.4)
minitest (5.5.0, 4.7.5)
rake (10.4.2, 10.1.0)
rdoc (4.2.0, 4.1.0)
test-unit (3.0.8, 2.1.1.0)
これらはバージョンを指定して消したら消せますけど、cleanupで消えなかったのには重要なものであり消さないほうがいいから消えてないのでしょうか?
0076デフォルトの名無しさん2014/12/27(土) 15:49:18.59ID:tc//XukK
>>73
subやgsubのブロックは正規表現の闇をなんとかするために仕方なく導入されたので、
いわゆる繰り返しブロックとは使われ方が違う
そしてその使われ方をきちんと勉強すればどうすればいいのかわかるはず

irb> str = "0123456789"
irb> p str.gsub(/\d/){|s| i=s.to_i; if i < 7 then (i*2).to_s else '' end}
"024681012"
0077デフォルトの名無しさん2014/12/27(土) 16:43:56.59ID:Ot9S3ylY
>>75
そいつらは Ruby をインストールしたときにデフォルトで入ってる gem だな
0078デフォルトの名無しさん2014/12/27(土) 20:00:20.18ID:LBkOC5Ta
>>74
これじゃあかんか?

"0123456789".scan(/\G[^7]/){|s|p s.to_i*2}
or
"0123456789".scan(/\G[^7]/).map{|s|s.to_i*2}.join
0079デフォルトの名無しさん2014/12/28(日) 12:15:55.82ID:8XwUHTCv
>>76 >>78
ありがとうございます!
\Gなんてメタ文字知りませんでした。
これでうまくできそうです。
0080デフォルトの名無しさん2014/12/28(日) 19:00:20.64ID:EhJlAFnh
\Gなんて使ってるのは見たことないんですがどういう時に使うものなのか何かサンプルはありませんか?
0081デフォルトの名無しさん2014/12/28(日) 19:08:58.77ID:0BcgJOIK
>>80
1.8.7になっちゃいますが、ここにありますよ
http://docs.ruby-lang.org/ja/1.8.7/doc/spec=2fregexp.html#regexp
あとこことかも
http://magazine.rubyist.net/?0020-BundledLibraries
0082デフォルトの名無しさん2014/12/28(日) 19:17:55.56ID:EhJlAFnh
/ab./gみたいなのは分かってたんですが、\Gが(式形式で)使われてるのは見たことなかったです。
るびまの記事ですか。
読み応えあるんですが、目次の列挙や概説だけだと必要な検索が出来ず必要な記事が得られないんで、結局チェックしてないし購読もしてなかったです。
0083デフォルトの名無しさん2014/12/29(月) 10:21:21.48ID:ewjsxoFu
ネット上のサンプルコードを参考にして、アマゾンのランキングを取得してみたのですが、1位から4位で止まってしまいます。
どこが間違っているのでしょうか?

require 'open-uri'
require 'nokogiri'
require 'sqlite3'
db = SQLite3::Database.new('books.db')
db.execute('DROP TABLE amazon')
db.execute('CREATE TABLE IF NOT EXISTS amazon (title varchar(200), auther varchar(100));')
url = "http://www.amazon.co.jp/(ランキング)"
user_agent = 'Chrome'
charset = nil
html = open(url, "User-Agent" => user_agent) do |f|
charset = f.charset
f.read
end
doc = Nokogiri::HTML.parse(html, nil, charset)
doc.xpath("/html/body/div[1]/div[2]/div[4]/div[2]/div/div[2]/div/ul/li/div/div/div/div[2]/div[1]").each do |title|
puts title.xpath("a/h2").text
puts title.xpath("div/span[2]").text
db.execute 'INSERT INTO amazon values ( ?, ? );', ["#{title.xpath("a/h2").text}", "#{title.xpath("div/span[2]").text}"]
end

Webスクレイピングを用いたデータ検索クローラ構築入門
(アドレスが長すぎるため省略)
0084デフォルトの名無しさん2014/12/29(月) 10:34:41.21ID:QBEoZzS/
実際のページのURLがわからないと答えられないよ
0085デフォルトの名無しさん2014/12/29(月) 11:02:05.88ID:ewjsxoFu
>>84
すみません。長すぎてエラーになったので削りました。
アマゾン、キンドル、無料、洋書、英語のランキングです。
「Amazon.co.jp: 無料本: Kindleストア」で検索
→「 Kindle洋書 (22,870) 」
→「Language (言語):英語(English)」のリストです。
0086デフォルトの名無しさん2014/12/29(月) 12:08:46.32ID:oVO4sOnA
>>83
サンプルが最小サンプルでないので、クラクラしそう。
とりあえず、db部分コメントアウトしてして、
処理を puts title.xpath("a/h2").text の部分だけ残して
それだけうまく動作するかまずやってみては?
0087デフォルトの名無しさん2014/12/29(月) 12:15:01.97ID:tirsBVZi
>>83
>/html/body/div[1]/div[2]/div[4]/div[2]/div/div[2]/div/ul/li/div/div/div/div[2]/div[1]
さすがにこれはHTMLのデザインの詳細に依存しすぎだろ
ブラウザのデバッガ使ったのかもしれないけど、
勉強せずに目的を達成したいだけならkimonoでも使えば?
0088デフォルトの名無しさん2014/12/29(月) 12:21:17.37ID:QBEoZzS/
>>83
1. open-uriでHTMLを取得してテスト
2. nokogiriで目的の情報を抽出してテスト
3. 1と2が正しく書けたらデータベースに保存してテスト

と分けてやらないとどこがまずいのかわからない
というわけで2だけ書くと

require 'nokogiri'

doc = Nokogiri::HTML.parse(open(ARGV[0]))
doc.css("li[id^=result]").each_with_index do |li, rank|
 rank += 1
 title = li.at_css("a[title]")["title"]
 author = li.at_css("div[class*=a-spacing-none]").text
 puts "rank: #{rank}"
 puts "title: #{title}"
 puts "author: #{author}"
 puts
end

----

$ ruby amazon.rb tmp.html
rank: 1
title: Salads To Go (English Edition)
author: Arnel Ricafranca、 Jesse Vince-Cruz
...
rank: 16
title: Oliver Twist
author: Charles Dickens
0089デフォルトの名無しさん2014/12/29(月) 14:52:52.86ID:ewjsxoFu
>>86-88
ありがとうございます。

86さんのアドバイスに従ってコメントアウトしてみると、データの取得ができていませんでした。
88さんのcssに代えたら全部取得出来ました。

87さんの仰るとおり、自分でも長すぎるなぁとは思っていたので、これからkimonoを試してみます。
0090デフォルトの名無しさん2014/12/30(火) 01:59:12.31ID:RRcZT/Fu
[名前] タイトル.zip というファイルから、 名前 というフォルダーを作り、
作ったフォルダーにファイルを移動するスクリプトを作りたいです

フォルダーを作るまではできたのですが、
File.move(file, $1)
の部分が動きません

アドバイスいただけないでしょか? お願いします

Windows7
ruby 2.0.0p481 (2014-05-08) [i386-mingw32]

my_dir = "D:/Desktop/tmp/"
Dir.chdir(my_dir)
Dir.foreach('.') do |file|
if File.file?(file)
file =~ /\[(.*?)\]/
unless $1.nil?
unless Dir.exist?($1)
Dir.mkdir($1)
end
File.move(file, $1)
end
end
end
0091デフォルトの名無しさん2014/12/30(火) 02:19:33.25ID:+3NH/drr
>>90
エラー貼らなきゃ
File.moveじゃなくてrequire 'fileutils'してからFileUtils.mv
0092デフォルトの名無しさん2014/12/30(火) 10:56:45.60ID:eF/E6diu
Ruby2.1.5でGUIを作りたいのですが、どのツールが一番初心者向きですか。
少し調べたところでは、
Ruby/Tk
 ・日本語の解説が充実
 ・Tcl/Tk8.6の対応パッチが2.1.3までしかない
Shoes
 ・なんかかっこいい
 ・日本語の解説が少ない
wxRuby
・難しそう
0093デフォルトの名無しさん2014/12/30(火) 11:19:36.39ID:dxBK7ujR
>>92
Python
RubyでGUI作るならサーバー立ててWebベース一択
0094デフォルトの名無しさん2014/12/30(火) 16:41:39.40ID:RRcZT/Fu
>>91
エラーコードがなかったですね、すいません
教えていただいた修正でうまく動きました
ありがとうございました!
0095デフォルトの名無しさん2014/12/30(火) 17:39:46.79ID:k+HJ9cRI
>>92
RubyでGUIという時点で初心者向きではない
PythonもGILがあるのでちょっと複雑化すると詰まる
実はPerlが一番素直なのかもしれない
0096デフォルトの名無しさん2014/12/30(火) 18:20:21.32ID:UE3DpMfR
>>92
ruby付属のwebrick サーバーでcgi がいいかも。ホントは
Sinatra がよさげなんだけど、いいガイドとなる文書がなさげ。
オライリージャパンにepub の本が売ってるようだが、内容は知らない。
rails は重量級すぎるという前に、規約ならなんやらでものすごく難しい。
0097デフォルトの名無しさん2014/12/30(火) 18:41:27.01ID:+3NH/drr
Sinatraはチュートリアルが日本語化されてるよ
オライリーから出てる本の内容はそのチュートリアルがベースで
下層のRaccの説明とブログツールの作成が加筆されてる
0098デフォルトの名無しさん2014/12/30(火) 19:12:08.34ID:UE3DpMfR
>>97
ああ、そうなんだ。勉強になった。
rails もう挫折したので(覚えることあまりに多すぎ)、Sinatra に挑戦しよう。
0099デフォルトの名無しさん2014/12/30(火) 19:20:52.56ID:lUNz8ksh
xwRubyはそう難しくはないが元々設計の古臭いMFCの代替として
作られただけあってRubyらしくない。
どうがんばってもC++の機械翻訳みたいなコードになっちまう。
もっとRubyらしい黒魔術的なGUIライブラリの登場を期待しちまうぜ。
0100デフォルトの名無しさん2014/12/30(火) 19:43:36.78ID:FhLkhhfT
ホントに「全力で」GUIもシームレスにできるオブジェクト指向言語にするとJavaになる
悲しいけれどこれが現実
GUIはやらなければならないことや背負わなければならないことがあまりに多い
GUIを捨てたからこそPerlやPythonやRubyは今のかたちになり得た
0101デフォルトの名無しさん2014/12/30(火) 19:55:13.04ID:+3NH/drr
先生PythonのGUIツールキットは捨てられてません
0102デフォルトの名無しさん2014/12/30(火) 19:55:21.23ID:UE3DpMfR
>>100
java のデスクトップだって半ば以上、死んでますがなwww
swingは死亡だし、javaFXなんぞどこかで使われてる?
cgi (やSinatra)は付属のwebrick 使う限りruby で完結できるし、
簡易のデスクトップGUI になると思うよ。
0103デフォルトの名無しさん2014/12/30(火) 21:27:55.01ID:dxBK7ujR
JavaでGUI作るときのリスナ地獄はお世辞にもスマートとは言えないだろ
そして苦労して作り上げてもあの品質…
Javaのawtやswingの設計が変なだけで、GUIってシングルスレッドでも十分だから
スクリプト言語だからダメってわけじゃない
GUIはどうせRAD必須だから言語の手軽さより静的解析の容易さの方が重要なのと
サーバーと違ってさくっとコード差し替えたいという要件もないから使われないだけ
0104デフォルトの名無しさん2014/12/31(水) 13:04:25.59ID:6ri8I8c2
92です。
アドバイス有難うございました。
とりあえずPython2をやってみようと思います。
0105デフォルトの名無しさん2015/01/01(木) 04:15:45.81ID:i/B8D+Dj
素直にVisual Studio Professional 2013使え
0106デフォルトの名無しさん2015/01/02(金) 13:12:07.71ID:0wQ6/mod
ActiveSctiprRubyとHTAで作れば楽じゃねと考えていた時代は俺の黒歴史。
0107デフォルトの名無しさん2015/01/02(金) 14:01:10.86ID:UoXQYS7H
WindowsでRubyを使うこと自体が地獄だからな
Winなら無理にスクリプト使うよりVC#でも使ったほうが遥かに楽
0108デフォルトの名無しさん2015/01/02(金) 14:22:53.44ID:yFH6oi7y
>>106
初めて知ったときなんて素晴らしいものがあるんだろうと思った
0109デフォルトの名無しさん2015/01/02(金) 15:37:29.99ID:wtvUITab
HTAとかWindows限定じゃん
0110デフォルトの名無しさん2015/01/03(土) 08:29:43.66ID:+Bjd+Vio
Ruby開発者が使わないので「RubySpec」開発終了
http://www.softantenna.com/wp/unknown/ruby-spec-end/

>RubySpecの開発者Brian Shirai氏はブログ記事「Matz’s Ruby Developers Don’t Use
> RubySpec and It’s Hurting Ruby」にてプロジェクトが終了する理由を説明。2014年12月25日に
>リリースされたRuby 2.2.0がRubySpecのテストをパスせず、そればかりか深刻なエラーである
>セグメンテーションフォールトで異常終了すると指摘し、これはMRI (いわゆる本家Ruby)の
>開発者がRubySpecを使ってテストすれば容易に避けられることだとしています。
0111名前は開発中のものです。2015/01/03(土) 12:19:48.94ID:ABCE5tDX
ハァ・・・
いまだにまともに使えるデバッガが見つからない・・・
まぁ趣味で使ってるだけだからprintデバッグでもいいんだけどさ・・・
0112デフォルトの名無しさん2015/01/03(土) 12:29:19.76ID:ZfusUSn5
p 使えよ、p
それで手におえなきゃ pp
0113デフォルトの名無しさん2015/01/03(土) 12:54:00.29ID:ZfusUSn5
うちの jrubyの場合、
sample.rbがあったとして
jruby -r debug sample.rb
でデバッガ立ち上がるよ。頭のj とって
ruby -r debug sample.rb
でデバッガ立ち上がらない?
$ ruby -r debug sample.rb
...
(rdb:1)

のところでhelp でhelp 出るが。
しかし、デバッガいる? めんどいだけだよ。
0114デフォルトの名無しさん2015/01/03(土) 13:16:22.01ID:hr4W0lJF
事後的なデバッガよりも、事前的なテストに比重が移っているんじゃね。
俺は minitest/unit しか使わないけど、プロの人たちが使うテスト環境
が進化している印象があるよ。
0115デフォルトの名無しさん2015/01/03(土) 14:09:49.31ID:ZfusUSn5
>>114
スタブとかモックの仕様をコロコロ変えやがって、
頭にこない?
結局、alias_method とかでメソッド名一時的に付け替えたりしてから、
元の名で中身再定義してテスト、
そのあとメソッド名戻し、とかやったりしてみるけど、
なんなんだよって感じ。
rspec とかも、特定の外国語書かせちゃダメだろっての。
日本語でrspec 書くとかいう話になったら、もう狂ってるとしか。

結局、minitest/unit が言葉に異存してなくて一番いいかなって思うのに、
スタブとかモックとか、ころころ意味もなくどんどんやり方変えて、
いまはもう、メソッド名付け替えでやるヒドイやり方しか分からん。
なんでこんなに意味なく仕様を変えるのか。ぜんぜん分からん。
0116デフォルトの名無しさん2015/01/03(土) 14:23:23.94ID:RGN7nsRn
rakeとrspecでDSLの風体が異なるのも実に気持ち悪い
0117デフォルトの名無しさん2015/01/04(日) 12:03:20.47ID:+rZjO+Yw
RubySpec開発者の外人って何であんなにキレてんの?
0118デフォルトの名無しさん2015/01/04(日) 12:04:00.19ID:4AdveR22
どうやらそういう体質の持ち主らしい
0119デフォルトの名無しさん2015/01/04(日) 12:18:18.48ID:+rZjO+Yw
そうなんだ素なのか
nurseがbrixen許さないとか言ってるから何かと思った
結果として軋轢が減ってハッピーだね
0120デフォルトの名無しさん2015/01/04(日) 14:51:18.14ID:uzz8isay
Rubyプログラミングのオヌヌメ参考書あったらどなたかおしえてくだせえ
0121デフォルトの名無しさん2015/01/04(日) 15:00:07.40ID:IRouHCH+
ないです
0122デフォルトの名無しさん2015/01/04(日) 15:23:09.29ID:rT0F3HRm
>>120

お勧め参考書教えてください、って、一言で言われてもナア。
0123デフォルトの名無しさん2015/01/04(日) 15:49:05.21ID:+rZjO+Yw
レベルが分からんけど本当に初歩ならドットインストールでも見てた方がいいんじゃないかと
0124デフォルトの名無しさん2015/01/04(日) 16:15:39.47ID:gY/dfetX
>>120
「たのしいRuby」
0125デフォルトの名無しさん2015/01/04(日) 18:13:58.34ID:uzz8isay
ありがとナス!
0126デフォルトの名無しさん2015/01/04(日) 20:21:08.34ID:mDqV+MlI
>>117
Rubyが予告無しの仕様可変更とかセグフォ出してるんで、Rubyspecですら分かるレベルのテストをやってないMRIに愛想が尽きたようだ。
俺も今でもRubyは好きだが、最近は仕事ではPythonを勧めてる。
0127デフォルトの名無しさん2015/01/04(日) 20:39:42.07ID:2n2BUP4o
そもそも奴等が、実装に依存した本来いつどう変わってもおかしくない振舞いをチェック
しまくってくれるもんで、MRI実装者としてもRubySpecスルーは苦渋だが仕方ない決断
だったんだが。
0128デフォルトの名無しさん2015/01/04(日) 20:45:01.08ID:x+sstHNq
>>127
それは言い訳でしょて。Java でその言い訳は通らないよ。
意図しようが意図しなかろうが、
明確に宣言した変更部分以外に動作の変更があってはならない。

当たり前の話だ。
0129デフォルトの名無しさん2015/01/04(日) 20:53:34.12ID:+rZjO+Yw
いやJavaの話を持ち出されても困るだろ
他所は他所だ
お前はOracleさんちの子じゃないんだよ
0130デフォルトの名無しさん2015/01/04(日) 20:59:05.28ID:x+sstHNq
>>129
実装次第で動作はどう変わるか分かりませんで、
世間が納得すると思ってるのか?
Ruby を採用した宇宙ロケットはどこへ向かうんだ?
実装に聞いてくれなのか???
0131デフォルトの名無しさん2015/01/04(日) 21:01:42.60ID:+rZjO+Yw
その通りだよ
君はライセンス読んでるの?
嫌ならPythonにでも行けばいいじゃないか
0132デフォルトの名無しさん2015/01/04(日) 21:02:52.49ID:+rZjO+Yw
世間から責められるべきはそんな道具選んだ人間じゃありませんか?
用途も分からない馬鹿の責任まで言語が負うんですか?
すげぇ社会だな
もはや誰も言語なんか作らんよ
0133デフォルトの名無しさん2015/01/04(日) 21:03:28.14ID:2n2BUP4o
文句があるなら今はJISなりISOなりを読んで文句言えばいいだろ。
RubySpecがもしまともなものだったら標準の意味なんて無かっただろうが、
現実ではそうではなかった、というのがRubySpecの現実。
0134デフォルトの名無しさん2015/01/04(日) 21:03:51.15ID:x+sstHNq
>>131
お前、Python使いだろ!
俺はJava 以外は信用せん。話にならん。
0135デフォルトの名無しさん2015/01/04(日) 21:05:01.27ID:+rZjO+Yw
ごめんCPythonもEULAには責任は負わないよって書いてあるね
OracleとやMSと契約してサポート付きのJavaか.NET使ってろってことだ
0136デフォルトの名無しさん2015/01/04(日) 21:07:14.65ID:d+7FYTBT
何が問題なのか初心者にもわかりやすく解説してくれはしませんか
0137デフォルトの名無しさん2015/01/04(日) 21:09:45.87ID:HG6rCP3A
本スレ使えばいいのに
0138デフォルトの名無しさん2015/01/04(日) 21:21:18.51ID:x+sstHNq
Ruby は実装次第で動作がどう変わるか分かりませんって、
そういう言い訳自体が情けなさすぎる。

プラットフォーム自体がJvm という単一環境のJava は特殊かもしれないが、
Java でそんな言い訳したら、フルボッコ間違いなしだ。
そもそも、実装次第で動作がどう変わるか分かりませんって、
具体的にはどういう事例なんだ。それにしても情けない。

どうしても動作が変わるんなら、
動作を変更しますと明確に宣言すればいい話なのに。
0139デフォルトの名無しさん2015/01/04(日) 21:38:12.71ID:x+sstHNq
要するに、
Java ならば互換性テストに通過しない限り、絶対にOKとはならない。

しかし、それがRuby ならば、
互換性テストで不合格となっても、「まあ、実装次第なので、テヘヘ」で
通ったことになってしまうということ。

要するに、互換性テストはなんの意味があるのか全然分からんという話。

それはそんな互換性テストがあるんだと、いま初めて知った。
Java の奴らに聞いてみろ。ひっくり返るだろうよ。
0140デフォルトの名無しさん2015/01/04(日) 21:41:35.75ID:x+sstHNq
Python はどうなってるんだ?
Phthon はもっとマシな状態なのか? それとも、テヘヘですんじまうのか?
0141デフォルトの名無しさん2015/01/04(日) 21:43:08.53ID:x+sstHNq
もはや、仕様がどうこうとかいう次元の問題じゃなく、
プログラミングというものに対する作法とかマナーの問題。
世間をなめてる状態。
0142デフォルトの名無しさん2015/01/04(日) 22:01:32.01ID:2n2BUP4o
だから最初からRubyなんか使うなよという話なんだが。
貴様こそ、世のプロダクトは全て手前の要求を満たすべきとか、
世の中なめすぎてる。
0143デフォルトの名無しさん2015/01/04(日) 22:02:36.75ID:x+sstHNq
なら、はじめから互換性テストなんて
作るなよ。
不合格で通す互換性テストの存在意味ってなによ!
0144デフォルトの名無しさん2015/01/04(日) 22:03:23.27ID:7tz5JoXD
本スレってどこ?
0145デフォルトの名無しさん2015/01/04(日) 22:07:17.85ID:2n2BUP4o
>>143 誰に文句言ってるのか完全にわからなくなってるだろw
0146デフォルトの名無しさん2015/01/04(日) 22:17:29.21ID:NNsAVH+s
明確に文書化されている仕様以外は実装依存でしょ。
当たり前だとおもうけど。
0147デフォルトの名無しさん2015/01/04(日) 22:17:31.27ID:F3GLovba
>>127

×)実装に依存した本来いつどう変わってもおかしくない振舞いをRubySpecがチェックしまくってた
○)MRI開発者が思いつきで仕様変更するのを片っ端からRubySpecがチェックするから都合が悪かった
0148デフォルトの名無しさん2015/01/04(日) 22:17:58.92ID:x+sstHNq
Ruby の現在のありようは、プログラミング界の常識に反している。
仕様の変更を宣言したもの以外は、仕様を変えちゃいけない。

それは出来ないという。
Java の世界でそれは出来ませんと言ったら、クビだろうな。
0149デフォルトの名無しさん2015/01/04(日) 22:40:03.64ID:x+sstHNq
>>146
お前の作ったプログラムは、
気まぐれに毎回違う答えをだすんだろう。
Ruby2.0で計算した結果は、Ruby2.1では違う値をだすかもしれん
ということだぞ。
仕様の変更を宣言したわけでもないのに。
どうなるかは、その時の気まぐれと言われているのだ。
ええかげんにせいと言っているところだ。
0150デフォルトの名無しさん2015/01/04(日) 22:58:38.12ID:ZfOt7GlQ
Rubyの安定板なんぞ誰も安定板と思っとらんだろうし
無理して追っかけなくても良いのでは。
俺んとこはまだ1.9.3だが不満なく使えておる。
ここで騒がれてることは1年後に来る変更の予告ぐらいに思っとるわ。
0151デフォルトの名無しさん2015/01/04(日) 23:01:42.40ID:x+sstHNq
俺は Ruby の互換性テストとは、Javaの互換性テストと
同じようなものと考えていた。
が、その常識はまったく通じないと知った。
Javaプログラマならひっくり返る事態なんだが、それがRubyの普通らしいwww
0152デフォルトの名無しさん2015/01/05(月) 00:21:15.47ID:Y6BCcXgq
当たり前だろう
10年遅れの言語と一緒にするな
0153デフォルトの名無しさん2015/01/05(月) 00:26:12.09ID:Y6BCcXgq
だいたいこいつも何を怒ってんだ
それで都合が悪いなら屁こいて寝てろって言われてんだろ
便秘か?多い日か?
0154デフォルトの名無しさん2015/01/05(月) 01:09:57.84ID:UWxA88jo
ママゴトみたいな開発体制とるのも自由だし
それを見て使う使わない決めるのも自由だし
そんな酷い開発体制じゃ使えないと批評するのも自由ですよ
0155デフォルトの名無しさん2015/01/05(月) 01:35:33.07ID:dcfpz3x0
RubySpecはRubyの「互換性テスト」ではないよ。
Rubyの開発者でもなんでもない人が作ったただのRubyプログラム。

Specという名前で誤解したんだと思うが、
まさにそう誤解させるためにつけられた名前。
極端に言えば、既成事実的にRubyの仕様を掌握しようとした。

RubySpecが終了したってのは、
ぶっちゃけて言えば乗っ取りを断念したというだけ。
0156デフォルトの名無しさん2015/01/05(月) 01:36:35.78ID:dcfpz3x0
RubySpecの作者の人間性については、以下が詳しい。

https://gist.github.com/nateberkopec/11dbcf0ee7f2c08450ea

例の日本語記事に「まとめ」としてリンクされてるやつだけど、
実際のところはRubySpec作者への批判ばかり。
0157デフォルトの名無しさん2015/01/05(月) 02:10:21.80ID:MXjCpp19
もういい。
プログラムに信頼性を求めるものは Rubyは避けろ。
Java が一番。無理なら Pythonでも検討しろ。

それで議論は終了。
0158デフォルトの名無しさん2015/01/05(月) 02:32:50.08ID:3qqCgoQ1
>>138
Pythonも実装依存だよ
実数型も64bitが多いとか、はっきりしない

動作するアーキテクチャが20種類ぐらいあって、
組み込み用もあるし、実装は様々
0159デフォルトの名無しさん2015/01/05(月) 02:59:15.66ID:G38O0HWv
RubySpecを一時期MRIのリリースメンテナが重要視してるようなメッセージを出したせいで
こういう勘違い野郎を生み出してしまったんだろうな
当時のリリースメンテナはMRI界でも黒歴史化されてるYuguiさんだけど
(技術力はあるのかもしれないけど、リリースメンテナとしては失格レベルと断言してもいい人だね)
0160デフォルトの名無しさん2015/01/05(月) 03:24:58.15ID:MXjCpp19
>>159
アホか。そういう次元の問題じゃないだろ。
Java をやってるヤツに聞け。

仕様変更を宣言していない機能をほいほい変更してて、
問題ないよなと。

仰天して絶句するだろうよ。
俺もJava やってるんでな。悪かったな。
0161デフォルトの名無しさん2015/01/05(月) 03:25:43.30ID:MXjCpp19
死んだ方がいいやつら、ばっかりだな。死ね
0162デフォルトの名無しさん2015/01/05(月) 03:27:40.80ID:G38O0HWv
>>160
「問題ないよな」って部分のソースは?

RubySpecで見つけられたバグはMRIに報告されれば直されてるし、MRIは仕様変更をどちらかというと
嫌ってる方なんだが

MRIがRubySpecを受け入れなかったのは別の理由でしょ
0163デフォルトの名無しさん2015/01/05(月) 03:39:59.64ID:MXjCpp19
Java の世界では、変更しますという明確な宣言がない限り、
絶対に動作が変更されることはない。

Ruby の世界では、そのような常識は通用しない。
仕様は変更の宣言なくして、そのときの気分で変更される。

それがいまここにハッキリした。
0164デフォルトの名無しさん2015/01/05(月) 03:41:34.41ID:G38O0HWv
>>163
> それがいまここにハッキリした。

嘘乙

Rubyでも意図しない仕様変更はバグだよ
バグは報告されれば直される
0165デフォルトの名無しさん2015/01/05(月) 06:54:11.15ID:LT7ljLaa
>>156
NokogiriのMacへのインスコで四苦八苦したので
Yorickが作ってるogaってHTML/XMLパーサが楽しみだった(過去形
0166デフォルトの名無しさん2015/01/05(月) 08:01:15.27ID:FjQWap8T
>>163
だから、Javaの世界から出てくんなよチンカス
おまえが存在するだけで世界が一割臭くなるんだよ
■ このスレッドは過去ログ倉庫に格納されています