プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 60
https://mevius.2ch.net/test/read.cgi/tech/1493398918/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
Ruby 初心者スレッド Part 61 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/08/25(金) 15:59:11.22ID:HsL9LVKJ
512デフォルトの名無しさん
2017/10/17(火) 01:28:33.52ID:7xVjwXXT なんかいろいろえーって感じ
513デフォルトの名無しさん
2017/10/17(火) 01:29:13.96ID:R2+/oC7k まともにタイプできんのか
514デフォルトの名無しさん
2017/10/17(火) 01:38:22.03ID:G9wCIPXR 確かにいろいろえーーって感じだが
とりあえずエラーの原因箇所はそこと違ったんじゃね
とりあえずエラーの原因箇所はそこと違ったんじゃね
515デフォルトの名無しさん
2017/10/17(火) 02:08:23.51ID:mcshzNIy516デフォルトの名無しさん
2017/10/17(火) 18:58:18.19ID:QpREnYGr redmine 関係のスレってない?
517デフォルトの名無しさん
2017/10/17(火) 19:01:44.02ID:mUW+58qQ 環境が分らないし、エラーの詳細もわからない
そもそもタイプミスでエラー起こしてる可能性もでてきた
これでどういう答えを出せと言うのか
そもそもタイプミスでエラー起こしてる可能性もでてきた
これでどういう答えを出せと言うのか
518デフォルトの名無しさん
2017/10/18(水) 17:37:04.21ID:Tt9aE97q519デフォルトの名無しさん
2017/10/18(水) 20:39:12.47ID:9LPwoyEe >>518
カッコは不要
'+' よりも '.' の方が結合強度が強い
演算子の優先順位については https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html に書いてある
…………と思いきや、'.' が書いてねーじゃん
'::' と同じ優先度と思っていい
つまりだ、カッコをつけるつけないで挙動が変わるって言うなら
それ以前の所がおかしいのは確定的に明らか
カッコは不要
'+' よりも '.' の方が結合強度が強い
演算子の優先順位については https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html に書いてある
…………と思いきや、'.' が書いてねーじゃん
'::' と同じ優先度と思っていい
つまりだ、カッコをつけるつけないで挙動が変わるって言うなら
それ以前の所がおかしいのは確定的に明らか
520デフォルトの名無しさん
2017/10/18(水) 20:46:38.65ID:cbmCwNcY そもそも問題の切り分けが出来てないっぽい
コード履歴取って一行ずつ変えて行けば
どこが原因か特定できるのに
コード履歴取って一行ずつ変えて行けば
どこが原因か特定できるのに
521デフォルトの名無しさん
2017/10/19(木) 20:29:50.54ID:L874x3oy522デフォルトの名無しさん
2017/10/20(金) 05:01:37.78ID:VjaZCXyR クラス毎にファイルわけたり、
多機能なクラスをシンプルなクラスに分けたりしてれば
おのずとエラー表示で何処が問題なのか分る
とは言っても、横着しちゃうのはあるあるだから、他人には言いづらい
多機能なクラスをシンプルなクラスに分けたりしてれば
おのずとエラー表示で何処が問題なのか分る
とは言っても、横着しちゃうのはあるあるだから、他人には言いづらい
523デフォルトの名無しさん
2017/10/20(金) 12:18:01.77ID:ICaMM6Vk Ruby自体が大クラス主義だけどね
バイナリデータもStringクラスで扱ってしまおうって考えは最たるもの
だからと言ってクラス/モジュールにちまちまと細分化しても
使う時にあれを使いたいこれを使いたいで結局ひとまとめにしちまうんだろうけど
さじ加減って大事だよな
バイナリデータもStringクラスで扱ってしまおうって考えは最たるもの
だからと言ってクラス/モジュールにちまちまと細分化しても
使う時にあれを使いたいこれを使いたいで結局ひとまとめにしちまうんだろうけど
さじ加減って大事だよな
524デフォルトの名無しさん
2017/10/20(金) 21:15:16.18ID:fTxZK5d3 昔rubyの本を読んだ時はさっぱり判らなかったけど、
perlとpythonが判った後で読んだら全部最初から知ってる感じになるな
perlとpythonが判った後で読んだら全部最初から知ってる感じになるな
525デフォルトの名無しさん
2017/10/20(金) 21:41:20.58ID:4/l8vBn9 大クラスでもメソッドは
粒度が細かい方が良いと思う
粒度が細かい方が良いと思う
526デフォルトの名無しさん
2017/10/21(土) 02:31:25.02ID:KRuC/jyb 枝分かれと繰り返しで素数判定プログラム書く課題出て適当にやってたらそれっぽいものができちゃったんだけど、なんで出来たの分からないから助けて
ソースは以下
def prime(n)
if n==0 || n==1 || n<0 then return 'Not Defined' end
i=2
while n%i>0 do
if i==n-1 then return 'true' end
i=i+1
end
return 'false'
end
ソースは以下
def prime(n)
if n==0 || n==1 || n<0 then return 'Not Defined' end
i=2
while n%i>0 do
if i==n-1 then return 'true' end
i=i+1
end
return 'false'
end
527デフォルトの名無しさん
2017/10/21(土) 02:44:37.46ID:KRuC/jyb528デフォルトの名無しさん
2017/10/21(土) 02:52:38.24ID:DH1cG8CY529デフォルトの名無しさん
2017/10/21(土) 03:42:48.43ID:W+SO0xqJ >>526
def prime(n)
return 'Not Defined' if n < 2
!(Range.new(2, n - 1).map{ |e| n % e }.include?(0))
end
Rubyっぽくないコードだったんで短く書き直してみた
def prime(n)
return 'Not Defined' if n < 2
!(Range.new(2, n - 1).map{ |e| n % e }.include?(0))
end
Rubyっぽくないコードだったんで短く書き直してみた
530デフォルトの名無しさん
2017/10/21(土) 06:35:15.86ID:/5Z1bcnO メモ化しろ。
つまり、答え(素数)をキャッシュする
11 を、[ 2, 3, 5, 7 ]の順番で割って、割り切れなければ、11は素数だろ。
まあ、正確には、11を、[ 2, 3 ]で割って、割り切れなければ素数だが
つまり、√11 までの素数で割って、割り切れなければ素数
つまり、答え(素数)をキャッシュする
11 を、[ 2, 3, 5, 7 ]の順番で割って、割り切れなければ、11は素数だろ。
まあ、正確には、11を、[ 2, 3 ]で割って、割り切れなければ素数だが
つまり、√11 までの素数で割って、割り切れなければ素数
531デフォルトの名無しさん
2017/10/21(土) 07:34:26.85ID:6mSBZ2Ul532デフォルトの名無しさん
2017/10/21(土) 07:57:33.68ID:QO4PPX4g533デフォルトの名無しさん
2017/10/21(土) 09:06:12.98ID:8VGNYjri 存在しない配列やハッシュに値を入れようとしたら、
初期化して入れてくれればいいのに
初期化して入れてくれればいいのに
534デフォルトの名無しさん
2017/10/21(土) 11:05:59.68ID:zW3TQJM1535デフォルトの名無しさん
2017/10/21(土) 13:58:53.09ID:AGKxZ0DW >>531
大クラス主義についてはmatzやko1が話してる
http://www.atmarkit.co.jp/news/200712/25/ruby.html
> まつもと 1.8にもEnumeratorとGeneratorという2つの似たようなライブラリが
> あったんですけど、それが1.9ではEnumeratorに統一され、組み込みになりました。
> ここら辺、ああ、Rubyはやっぱり“大クラス主義”だなって思いますね。
>
> ――大クラス主義とは?
>
> 笹田 似たような機能のものを大きなクラスにまとめるという方針です。
> たくさんあると覚えるのも大変だし、使い分けられないから、まとめちゃう。
大クラス主義についてはmatzやko1が話してる
http://www.atmarkit.co.jp/news/200712/25/ruby.html
> まつもと 1.8にもEnumeratorとGeneratorという2つの似たようなライブラリが
> あったんですけど、それが1.9ではEnumeratorに統一され、組み込みになりました。
> ここら辺、ああ、Rubyはやっぱり“大クラス主義”だなって思いますね。
>
> ――大クラス主義とは?
>
> 笹田 似たような機能のものを大きなクラスにまとめるという方針です。
> たくさんあると覚えるのも大変だし、使い分けられないから、まとめちゃう。
536デフォルトの名無しさん
2017/10/21(土) 16:41:36.24ID:fsyriQnf 言語の設計と言語の使い方は別だ
クラス毎にファイルをわけたり、多機能クラスをシンプルなクラスにわけたりするのを勧めたのは、
エラー表示が効果的になる言語の使い方の話だ
分ってると思うけどそれ外にも、ワンライナーや関数型等の書き方で使いこなせるようになっている
クラス毎にファイルをわけたり、多機能クラスをシンプルなクラスにわけたりするのを勧めたのは、
エラー表示が効果的になる言語の使い方の話だ
分ってると思うけどそれ外にも、ワンライナーや関数型等の書き方で使いこなせるようになっている
537デフォルトの名無しさん
2017/10/21(土) 18:01:16.00ID:ZBz0JWdz538デフォルトの名無しさん
2017/10/21(土) 18:33:01.23ID:AGKxZ0DW Ruby自体が大クラス主義だから利用者も大クラス主義であるべきだとは俺も思ってないよ
だからといって過剰な程にクラスを派生しまくるのは、型を束縛しないダックタイピングということもあって、
利便性が下がるんじゃないかなーとも思ってる
そりゃStringとHashとThreadが1つのクラスになっていたら発狂するけどね
だからといって過剰な程にクラスを派生しまくるのは、型を束縛しないダックタイピングということもあって、
利便性が下がるんじゃないかなーとも思ってる
そりゃStringとHashとThreadが1つのクラスになっていたら発狂するけどね
539デフォルトの名無しさん
2017/10/21(土) 21:09:41.23ID:6mSBZ2Ul540デフォルトの名無しさん
2017/10/21(土) 21:20:09.28ID:QO4PPX4g >>539
教条主義的なポリシーなんて要らないというポリシーなんじゃね?w
教条主義的なポリシーなんて要らないというポリシーなんじゃね?w
541デフォルトの名無しさん
2017/10/22(日) 00:40:32.24ID:kM4Rb+14 まだID変えて自演しとんのか
542デフォルトの名無しさん
2017/10/22(日) 01:31:42.03ID:dJ6mfyJW 大クラス主義の話になったところで
じゃあみんな具体的に
どれくらいの大きさのクラスにしてる?
目安は一クラスあたり何行?
じゃあみんな具体的に
どれくらいの大きさのクラスにしてる?
目安は一クラスあたり何行?
543デフォルトの名無しさん
2017/10/22(日) 02:36:33.83ID:sDdgCD4Q 多くても500行ぐらいだろうな。
1000行いったら嫌悪感が出る
1000行いったら嫌悪感が出る
544デフォルトの名無しさん
2017/10/22(日) 03:14:27.15ID:yCjESUvF 俺の場合はクラスの大きさに目安はないな
100行に満たないものもあれば1000行を超えるものもあるし
それよりもメソッド(Cなら関数)があまり長くならないように気をつけてる
具体的には80文字×25行のスクリーンからはみ出ないくらい
なんちって
100行に満たないものもあれば1000行を超えるものもあるし
それよりもメソッド(Cなら関数)があまり長くならないように気をつけてる
具体的には80文字×25行のスクリーンからはみ出ないくらい
なんちって
545デフォルトの名無しさん
2017/10/22(日) 03:14:46.78ID:rLFHcAK9 目安はサンディメッツルール
2017/10/22(日) 11:15:50.70ID:1YBr+HPt
深いネストのifがあって、Cだったら { に対応する } に飛べば範囲が判るけど、
rubyだとどうするの?
rubyだとどうするの?
547名無しさん@そうだ選挙に行こう! Go to vote!
2017/10/22(日) 11:21:48.06ID:ammmliXf >>546
rubynに限らず、エディターのプラグインで、対応するブラケットに飛ぶのが有る。
rubynに限らず、エディターのプラグインで、対応するブラケットに飛ぶのが有る。
548デフォルトの名無しさん
2017/10/25(水) 22:01:25.02ID:EQUdIXJ1 何も見ずに書けるくらいに慣れた言語はRubyが初めてで便利に使ってたんだけど、最近JavaというかKotlinやってた
んで戻ってきた
インスタンス変数が名前だけでアクセスし放題なのってすげえ便利だけどすげえ邪悪だな!
行く前はなんとも思わなかったけど@hogeとか生であちこち書いてあるとなんか不安になるようになったぞ!
んで戻ってきた
インスタンス変数が名前だけでアクセスし放題なのってすげえ便利だけどすげえ邪悪だな!
行く前はなんとも思わなかったけど@hogeとか生であちこち書いてあるとなんか不安になるようになったぞ!
549デフォルトの名無しさん
2017/10/25(水) 22:17:30.49ID:aatZ8FSF 要はattrでゲッターセッター使いまくりってことだよね
Rubyは便利だけどそれが時にかえって落とし穴になる
Rubyは便利だけどそれが時にかえって落とし穴になる
550デフォルトの名無しさん
2017/10/25(水) 22:17:41.41ID:J7YSmtyq railsの前からruby使いで今でもrails何それな人っているんだろうか
551デフォルトの名無しさん
2017/10/25(水) 22:22:21.34ID:Okq57FT4 このスレにはWinでRuby使ってる絶滅危惧種がちらほら生息しているみたいだから割といるんじゃないかな
552デフォルトの名無しさん
2017/10/25(水) 22:34:52.93ID:J7YSmtyq winでperlだとactiveperlが定番だけど、rubyだと何だろう
553デフォルトの名無しさん
2017/10/25(水) 23:12:44.96ID:0GYD+24d554デフォルトの名無しさん
2017/10/25(水) 23:26:24.82ID:6l1ALuPm555デフォルトの名無しさん
2017/10/25(水) 23:37:36.75ID:SowBE9iE >>553
インスタンス変数を直で使う可能性がわりと残ってるということ自体がキモいというのはあるにはある
それだと「いんすたんすへんすうはつかわないでください」と利用マニュアルやらコーディング規約やらに赤字で書くのと変わらんしな
インスタンス変数を直で使う可能性がわりと残ってるということ自体がキモいというのはあるにはある
それだと「いんすたんすへんすうはつかわないでください」と利用マニュアルやらコーディング規約やらに赤字で書くのと変わらんしな
556デフォルトの名無しさん
2017/10/25(水) 23:40:57.81ID:bjMRduYA winでrubyだけどUnicode引数が扱えないのと
パスにUnicodeが混じると動かないのは治った?
パスにUnicodeが混じると動かないのは治った?
557デフォルトの名無しさん
2017/10/25(水) 23:47:10.89ID:0GYD+24d >>556
そんくらい自分で試せよ
そんくらい自分で試せよ
558デフォルトの名無しさん
2017/10/26(木) 00:04:52.44ID:1jsCLZfy559デフォルトの名無しさん
2017/10/26(木) 00:27:50.55ID:Bn4jQy1s kotlinはインスタンス変数を直接作れないし触れない
同名のセッターとゲッター経由でのみアクセスする
Rubyでいうとこのattr_accessorだけしか存在しない状態
まあ他の言語の話はどこまでも広がるから程々に
同名のセッターとゲッター経由でのみアクセスする
Rubyでいうとこのattr_accessorだけしか存在しない状態
まあ他の言語の話はどこまでも広がるから程々に
560デフォルトの名無しさん
2017/10/26(木) 00:44:34.86ID:+U1JRDPb インスタンス変数を直接使うよりattr_readerとかattr_accessorを経由するようにしてるなあ
主にタイポ対策として
主にタイポ対策として
561デフォルトの名無しさん
2017/10/26(木) 00:52:35.48ID:1jsCLZfy @で直接インスタンス変数を使うか
アクセサを経由するかってことか
クラス内なら直接使ってもいいと思う
クラス外からアクセサを使う方が問題
アクセサを経由するかってことか
クラス内なら直接使ってもいいと思う
クラス外からアクセサを使う方が問題
562デフォルトの名無しさん
2017/10/26(木) 01:37:32.31ID:bdhLTBwb >>556
すべてのOS・言語で、
ユーザー名・PC名・パスなどのシステム要件には、半角英数字しか使うな。
誰も日本語ではテストしていないし、すべてのアプリでテストしていないから
半角空白も使うな。
「a b」などは、2つの引数に扱われてしまうから、バグる
Unicode の4バイト文字などには、多くのアプリが対応していない。
例えば、中国の地名の「深せん」の「せん」は、TeraPad では対応していない
こういうアプリが一杯ある。
特に、圧縮・解凍アプリでは、日本語のパスは使えない
すべてのOS・言語で、
ユーザー名・PC名・パスなどのシステム要件には、半角英数字しか使うな。
誰も日本語ではテストしていないし、すべてのアプリでテストしていないから
半角空白も使うな。
「a b」などは、2つの引数に扱われてしまうから、バグる
Unicode の4バイト文字などには、多くのアプリが対応していない。
例えば、中国の地名の「深せん」の「せん」は、TeraPad では対応していない
こういうアプリが一杯ある。
特に、圧縮・解凍アプリでは、日本語のパスは使えない
563デフォルトの名無しさん
2017/10/26(木) 01:51:18.80ID:1RkkpTof >>559
通常はプロパティのみで実体の変数にアクセスする場合に特別なキーワードを使う
https://kotlinlang.org/docs/reference/properties.html#backing-fields
>>560
privateなattr_accessor/attr_writerを用意するより
@fooのほうがインスタンス内部の状態にアクセスしてるのが直感的に見えるから個人的には好みかな
通常はプロパティのみで実体の変数にアクセスする場合に特別なキーワードを使う
https://kotlinlang.org/docs/reference/properties.html#backing-fields
>>560
privateなattr_accessor/attr_writerを用意するより
@fooのほうがインスタンス内部の状態にアクセスしてるのが直感的に見えるから個人的には好みかな
564デフォルトの名無しさん
2017/10/26(木) 01:57:55.82ID:1RkkpTof565デフォルトの名無しさん
2017/10/26(木) 07:56:59.67ID:BUcDTzfg ディレクトリツリーを再帰処理したときにディレクトリ名に“[]{}”があって
Dir.glob(File.join(subdir,"*")) # subdir = "photo[2017]"
てな感じでハマった
Dir.glob(File.join(subdir,"*")) # subdir = "photo[2017]"
てな感じでハマった
566デフォルトの名無しさん
2017/10/26(木) 08:30:22.65ID:Bn4jQy1s globは昔からへなちょこだよ
入ってるファイル名がglob安全だと事前にわかってるディレクトリにしか使ったらだめだよ
入ってるファイル名がglob安全だと事前にわかってるディレクトリにしか使ったらだめだよ
567デフォルトの名無しさん
2017/10/26(木) 11:34:08.16ID:v4GCj7LM 同意せざるを得ない
568デフォルトの名無しさん
2017/10/28(土) 05:14:14.61ID:3gpZJih/ winのRubyで日本語できないとか言ってる奴いるけど、
UTF16Nの文字コードも知らないで適当にやってるからじゃないの?
UTF16Nの文字コードも知らないで適当にやってるからじゃないの?
569デフォルトの名無しさん
2017/10/28(土) 11:08:15.45ID:YrbVG7kU 原因は一つだけじゃない
エンコ間違いを文字化けと言ってしまうくらい
知識が貧弱すぎる
エンコ間違いを文字化けと言ってしまうくらい
知識が貧弱すぎる
570デフォルトの名無しさん
2017/10/28(土) 11:16:36.37ID:xCMEGXaW 正確には、エンコードの推測間違いが文字化け
571デフォルトの名無しさん
2017/10/28(土) 11:19:57.77ID:YrbVG7kU それも違うよ
本来文字化けは通信回線のエラーで発生するものを指してた
本来文字化けは通信回線のエラーで発生するものを指してた
572デフォルトの名無しさん
2017/10/28(土) 11:56:59.11ID:outOme0N まず、環境変数やコマンドラインオプションの -E で utf-8 を指定しないと、ARGVがutf-8にならないので
正確なコマンドライン引数を取得できない*バグ*がある。
さらに、ディレクトリのファイル一覧を取得する時に、encodingオプションを指定してutf-8にしないと、
ユニコードのファイル名を取得できないという*バグ*がある。
作ってる人たちは仕様だと思ってるが、こんなの誰も嬉しくないし、単なるバグ。
だからrubyinstaller2の人も-Eutf-8をデフォルトにしようとした
ソースコードがデフォルトでutf-8の時代に、何でこんなことになってるのか理解しがたい
でもそれ以外のことは相当windowsのために頑張ってくれている
pythonよりマシでnode.jsより劣ってる
正確なコマンドライン引数を取得できない*バグ*がある。
さらに、ディレクトリのファイル一覧を取得する時に、encodingオプションを指定してutf-8にしないと、
ユニコードのファイル名を取得できないという*バグ*がある。
作ってる人たちは仕様だと思ってるが、こんなの誰も嬉しくないし、単なるバグ。
だからrubyinstaller2の人も-Eutf-8をデフォルトにしようとした
ソースコードがデフォルトでutf-8の時代に、何でこんなことになってるのか理解しがたい
でもそれ以外のことは相当windowsのために頑張ってくれている
pythonよりマシでnode.jsより劣ってる
573デフォルトの名無しさん
2017/10/28(土) 17:18:37.05ID:GkEAGE6K windowsならしょうがないね
574デフォルトの名無しさん
2017/10/28(土) 17:41:59.12ID:yTnVd91+ 根本的にスクリプトのパスをUnicodeで扱ってないから、スクリプトにlocaleで表せないUnicodeの文字が含まれるだけで実行できない糞仕様
575デフォルトの名無しさん
2017/10/29(日) 15:18:20.54ID:jMcUbzmZ やり方知らないだけじゃないの?
576デフォルトの名無しさん
2017/10/29(日) 18:20:39.60ID:cEiLc8+m やろうと思えばできる、とデファクトがデフォルトではない、との間には深くて深い溝が
577デフォルトの名無しさん
2017/10/30(月) 07:27:16.07ID:Jvh4uG2g え、できるの? どうやるの? 教えて
578デフォルトの名無しさん
2017/10/31(火) 08:42:53.03ID:23Zr0FFS なるほど
http://magazine.rubyist.net/?preRubyKaigi2017-01
に挙がってるRuby3.0の三つの課題って
なんというか、C言語ですらクリアしてるような・・・なんだろう、なんで今更
そんな、プログラミングの最黎明期まで時間を戻して修正しなければならない事態って一体
http://magazine.rubyist.net/?preRubyKaigi2017-01
に挙がってるRuby3.0の三つの課題って
なんというか、C言語ですらクリアしてるような・・・なんだろう、なんで今更
そんな、プログラミングの最黎明期まで時間を戻して修正しなければならない事態って一体
579デフォルトの名無しさん
2017/10/31(火) 10:22:53.85ID:qfHwvl41 型を持たないから難しんじゃねーの?
580デフォルトの名無しさん
2017/10/31(火) 10:54:16.58ID:0YDRSLxm Rubyはレジスタ利用できないから30年遅れてるとか喚いてた人と同じ人かな
581デフォルトの名無しさん
2017/10/31(火) 11:27:56.74ID:3dsXrBDq 下手にRuby本体をいじるより、TypeScriptみたいなものを目指して欲しい
Matzの発表を見ると、中途半端な実装で終わりそうだから
Matzの発表を見ると、中途半端な実装で終わりそうだから
582デフォルトの名無しさん
2017/10/31(火) 11:41:18.35ID:f3HKFkZK Rubyはクラス定義自体が動的で、それを悪用したメタプログラミング(笑)とかいうハックが横行しているから静的解析でなんとかするのは無理がある
Rails界隈も含めて現実的にまともに役立つものにするにはTypeScriptみたいな後付け方式しかないだろうけど、
「型書きたくないでござる」(笑)に真っ向から反するのであり得ないだろうね
Rails界隈も含めて現実的にまともに役立つものにするにはTypeScriptみたいな後付け方式しかないだろうけど、
「型書きたくないでござる」(笑)に真っ向から反するのであり得ないだろうね
583デフォルトの名無しさん
2017/10/31(火) 11:46:12.10ID:23Zr0FFS >>580
俺が言ってるわけじゃなくて、Ruby界隈の人が言ってるんだよ
君の文章も借りて平たく言うと
Rubyは実行速度が遅くて、静的型が無くて、並列実行が無くて
(何十年かは知らないが) 遅れてるから
Ruby3.0で上記3つをなんとかしたい
って事でしょ
いや実際問題ないんだったら、Ruby3.0の目玉になんかするかね
俺が言ってるわけじゃなくて、Ruby界隈の人が言ってるんだよ
君の文章も借りて平たく言うと
Rubyは実行速度が遅くて、静的型が無くて、並列実行が無くて
(何十年かは知らないが) 遅れてるから
Ruby3.0で上記3つをなんとかしたい
って事でしょ
いや実際問題ないんだったら、Ruby3.0の目玉になんかするかね
584デフォルトの名無しさん
2017/10/31(火) 12:02:14.47ID:qfHwvl41 Javascriptみたいに
strictって文頭につければ厳しくチェックできるように
typeって文頭につければ型をつけれるようにとか出来ればいいな
strictって文頭につければ厳しくチェックできるように
typeって文頭につければ型をつけれるようにとか出来ればいいな
585デフォルトの名無しさん
2017/10/31(火) 12:37:58.97ID:f3HKFkZK >>584
付けるならソースファイルじゃなくてクラスに対してだと思う
Rubyの場合、型付けをどうするかよりも、そもそも型というものをどう定義するかが問題
Rubyのクラス定義ってクラスの静的な構造を表してるんじゃなくて、メモリ上にクラスを定義する手続きなんだよ
実行してみないとどんなクラスになるかが分かんないの
付けるならソースファイルじゃなくてクラスに対してだと思う
Rubyの場合、型付けをどうするかよりも、そもそも型というものをどう定義するかが問題
Rubyのクラス定義ってクラスの静的な構造を表してるんじゃなくて、メモリ上にクラスを定義する手続きなんだよ
実行してみないとどんなクラスになるかが分かんないの
586デフォルトの名無しさん
2017/10/31(火) 15:23:54.17ID:CDGz4c1c ここは初心者スレなので初心者に役立つ会話をしようね
リアルで話し相手がいないレス乞食が常駐してるとうざいよ
リアルで話し相手がいないレス乞食が常駐してるとうざいよ
587デフォルトの名無しさん
2017/10/31(火) 18:39:39.63ID:HaPb6HyZ Rubyのバージョンを上げるんじゃなくて、別の言語をまた作るべきだな
何か言語を使っていると、こうだったらもっと楽なのにというネタがいろいろ溜まってきて、
それを解決した言語が現れる
それを使っているとまたネタが溜まってくる、というサイクルで進化していくもので、
それはバージョンアップで対応できるような内容ではないのが普通
何か言語を使っていると、こうだったらもっと楽なのにというネタがいろいろ溜まってきて、
それを解決した言語が現れる
それを使っているとまたネタが溜まってくる、というサイクルで進化していくもので、
それはバージョンアップで対応できるような内容ではないのが普通
588デフォルトの名無しさん
2017/10/31(火) 21:16:56.30ID:23Zr0FFS まぁはっきり言ってそれは無理だね
言語のシェアみりゃ分かるが、昔からある言語が未だに強い
その言語を使うしかない(他にない)、ってぐらい追い込まないと
新規の言語が広まるのは無理(Swiftとか)
特にRubyの場合は今の一般的な常識でまともな言語に作り直したら
C#やJavaとそう変わりない物が出来上がるだけで、だったらC#やJava使えば?ってなる
これはちょうど、新たに希望の党を作って民進党のリベラルを排除して
自民党と何が違うのかよくわからなくなって、だったら実績のある自民党で良いじゃん、な
希望の党みたいなもの
逆に今のRubyをどんどん改良していけばよいかと言われると、これも民進党と同じでジリ貧
C#みたいに互換性を維持しつつ新しい機能を取り入れまくって進化している言語もあるが
Rubyがそうなれなかったのは、最初の一歩が既におかしかったから
今頃、静的型がどうのこうの言ってるのは最初に犯した過ちを今まで引きづってて
2020年のオリンピックまでにはRuby3.0で云々言ってるわけだが
逆に間違えたからこそ、一部の狂信者に支持されてここまで来たわけで
マトモにしたらJava、C#、C++などのメジャー言語とガチンコになるし、狂信者も付かない
押すも引くも、結局どうにもならんということ
言語のシェアみりゃ分かるが、昔からある言語が未だに強い
その言語を使うしかない(他にない)、ってぐらい追い込まないと
新規の言語が広まるのは無理(Swiftとか)
特にRubyの場合は今の一般的な常識でまともな言語に作り直したら
C#やJavaとそう変わりない物が出来上がるだけで、だったらC#やJava使えば?ってなる
これはちょうど、新たに希望の党を作って民進党のリベラルを排除して
自民党と何が違うのかよくわからなくなって、だったら実績のある自民党で良いじゃん、な
希望の党みたいなもの
逆に今のRubyをどんどん改良していけばよいかと言われると、これも民進党と同じでジリ貧
C#みたいに互換性を維持しつつ新しい機能を取り入れまくって進化している言語もあるが
Rubyがそうなれなかったのは、最初の一歩が既におかしかったから
今頃、静的型がどうのこうの言ってるのは最初に犯した過ちを今まで引きづってて
2020年のオリンピックまでにはRuby3.0で云々言ってるわけだが
逆に間違えたからこそ、一部の狂信者に支持されてここまで来たわけで
マトモにしたらJava、C#、C++などのメジャー言語とガチンコになるし、狂信者も付かない
押すも引くも、結局どうにもならんということ
589デフォルトの名無しさん
2017/10/31(火) 21:36:49.59ID:7Ixc7xPG もちろん新規言語がそう簡単に広まるわけないが
Rubyが登場したときにも昔の言語はあったわけで
自由に選択できても広まったし
今でも囲い込みされてるSwiftより
言語ランキングで上位だったりする
政治の比喩を持ち出して印象操作してるけど
ScalaとかGoとか新言語どんどん出てきて
JavaやC#ほどじゃないけどそれなりに使われてるから
むしろ昔より新言語が使われてる位だと思う
Rubyが登場したときにも昔の言語はあったわけで
自由に選択できても広まったし
今でも囲い込みされてるSwiftより
言語ランキングで上位だったりする
政治の比喩を持ち出して印象操作してるけど
ScalaとかGoとか新言語どんどん出てきて
JavaやC#ほどじゃないけどそれなりに使われてるから
むしろ昔より新言語が使われてる位だと思う
590デフォルトの名無しさん
2017/10/31(火) 21:41:41.86ID:kBfCDZdZ LLスレから追い出された連中が相手してもらえると思って来てるからな
彼らは別にRubyを使えるわけじゃないから厄介だ
彼らは別にRubyを使えるわけじゃないから厄介だ
591デフォルトの名無しさん
2017/10/31(火) 21:49:47.48ID:23Zr0FFS >自由に選択できても広まったし
>今でも囲い込みされてるSwiftより
>言語ランキングで上位だったりする
どうでもよいことだが、それは昔からある言語の方が
新規の言語より強いという裏付けにしかなってないのでは?
新たに言語を作れば今のRubyのポジションは捨てて0からなわけで
今の時代に何の後ろ盾もない状態で新たに言語作ったって
>今でも囲い込みされてるSwiftより
>言語ランキングで上位だったりする
どうでもよいことだが、それは昔からある言語の方が
新規の言語より強いという裏付けにしかなってないのでは?
新たに言語を作れば今のRubyのポジションは捨てて0からなわけで
今の時代に何の後ろ盾もない状態で新たに言語作ったって
592デフォルトの名無しさん
2017/10/31(火) 22:02:16.15ID:HaPb6HyZ どんな時代なんだ?
593デフォルトの名無しさん
2017/10/31(火) 22:04:27.90ID:7Ixc7xPG >>591
>昔からある言語の方が
>新規の言語より強いという
>裏付けにしかなってないのでは?
「昔からある言語」も昔は
「新規の言語」だったんだよ
もし常に昔の言語の方が強かったら
永久に世代交代しないで
FortranとかLispがずっと主流になってるはずだろ?
>昔からある言語の方が
>新規の言語より強いという
>裏付けにしかなってないのでは?
「昔からある言語」も昔は
「新規の言語」だったんだよ
もし常に昔の言語の方が強かったら
永久に世代交代しないで
FortranとかLispがずっと主流になってるはずだろ?
594デフォルトの名無しさん
2017/10/31(火) 22:23:05.12ID:23Zr0FFS 時代背景を全く考慮しなければそうなるね
595デフォルトの名無しさん
2017/10/31(火) 22:39:42.30ID:HaPb6HyZ だから、かつては受け入れられた新しい言語が今は受け入れられない時代背景を説明しろ
596デフォルトの名無しさん
2017/10/31(火) 22:55:05.06ID:kGPpeMmk597デフォルトの名無しさん
2017/11/01(水) 01:37:44.29ID:nt6bNFBd やっほー
discordrbについて聞きたいんだけどこのスレでいいんかな
discordrbについて聞きたいんだけどこのスレでいいんかな
598デフォルトの名無しさん
2017/11/01(水) 02:02:23.05ID:kQ1wt9JW599デフォルトの名無しさん
2017/11/01(水) 02:19:40.62ID:Z130aY0S >>596
それは今の主流言語がさらに進化するだけ
いくつが理由がありそうだけど、みんなそんなに言語に飢えてないし
(おおむね満足している、というか供給過多)
光るアイデアを持った新たな言語が生まれても
メジャー言語がパクれば終わりだし、皆がそれを望んでる
何か光るものを見出しても
それだけでその言語を使おうということにはならない
仮に新しい言語を作るにも、今時は求められるものが高すぎるので
個人では手に負えないし、そもそも個人で作った言語など
昔から存在していて実績があるとかでもない限り、誰も使わん
他、既存の言語の資産が、C言語が登場した当時と比べて
というか比べられないほど凄いことになってる
世界中のプログラマがひたすら書きまくったから
一例としてLinuxのカーネルのソースコードの行数の推移
1991年 0.01 約 10,000 ユーザー数1人(開発者)
1992年 0.96 約 40,000
1994年3月14日 1.0.0 176,250
1995年3月 1.2.0 310,950
1996年6月9日 2.0.0 N/A
1997年 2.1.0 約 800,000
1999年1月25日 2.2.0 1,800,847
2001年1月4日 2.4.0 3,377,902
2003年12月17日 2.6.0 5,929,913
2008年 2.6.x 約 10,000,000
2011年7月21日 3.0 14,646,952
2012年1月 3.x 約 15,000,000
2015年8月 4.2 約 20,000,000
それは今の主流言語がさらに進化するだけ
いくつが理由がありそうだけど、みんなそんなに言語に飢えてないし
(おおむね満足している、というか供給過多)
光るアイデアを持った新たな言語が生まれても
メジャー言語がパクれば終わりだし、皆がそれを望んでる
何か光るものを見出しても
それだけでその言語を使おうということにはならない
仮に新しい言語を作るにも、今時は求められるものが高すぎるので
個人では手に負えないし、そもそも個人で作った言語など
昔から存在していて実績があるとかでもない限り、誰も使わん
他、既存の言語の資産が、C言語が登場した当時と比べて
というか比べられないほど凄いことになってる
世界中のプログラマがひたすら書きまくったから
一例としてLinuxのカーネルのソースコードの行数の推移
1991年 0.01 約 10,000 ユーザー数1人(開発者)
1992年 0.96 約 40,000
1994年3月14日 1.0.0 176,250
1995年3月 1.2.0 310,950
1996年6月9日 2.0.0 N/A
1997年 2.1.0 約 800,000
1999年1月25日 2.2.0 1,800,847
2001年1月4日 2.4.0 3,377,902
2003年12月17日 2.6.0 5,929,913
2008年 2.6.x 約 10,000,000
2011年7月21日 3.0 14,646,952
2012年1月 3.x 約 15,000,000
2015年8月 4.2 約 20,000,000
600デフォルトの名無しさん
2017/11/01(水) 02:42:46.97ID:Z130aY0S 建築がどうのこうの言ったって建築に互換性は関係ないしな
セキスイだろうがダイワだろうが、基本的にどうでもよい
車もそうだし、というか、ほとんどの物は自由競争の名のもとに
メーカー間の互換性を気にしなくてもよいようになってるんだが
(ハードウェア業界はわりと規格をきっちりやる)
ソフトウェアだけは互換性の壁が異常
この辺、なにか
フォトショップのデータを山のように持ってればフォトショップを使い続けるしかないし
MSOfficeのデータを山のように持ってればMSOfficeを使い続けるしかない
値段は大手企業の良心にかかってるというか、不当に値段を吊り上げられても、割と買うしかない
パチもんもあるけど、互換性が完璧ではないしな
まさかRubyでPythonのコードが走るわけないし
セキスイだろうがダイワだろうが、基本的にどうでもよい
車もそうだし、というか、ほとんどの物は自由競争の名のもとに
メーカー間の互換性を気にしなくてもよいようになってるんだが
(ハードウェア業界はわりと規格をきっちりやる)
ソフトウェアだけは互換性の壁が異常
この辺、なにか
フォトショップのデータを山のように持ってればフォトショップを使い続けるしかないし
MSOfficeのデータを山のように持ってればMSOfficeを使い続けるしかない
値段は大手企業の良心にかかってるというか、不当に値段を吊り上げられても、割と買うしかない
パチもんもあるけど、互換性が完璧ではないしな
まさかRubyでPythonのコードが走るわけないし
601デフォルトの名無しさん
2017/11/01(水) 07:50:12.58ID:uQFQAfJE 説得力が全くない
602デフォルトの名無しさん
2017/11/01(水) 17:44:59.02ID:gYykKPjL 3DCG目的で、答えが同じになる浮動小数点を含んだ別々の計算で、
結果にズレのない同じ数値になるようにするにはどうしたらいいの?
結果にズレのない同じ数値になるようにするにはどうしたらいいの?
603デフォルトの名無しさん
2017/11/01(水) 17:46:43.92ID:K6DgRYf4 >別々の計算
式が違うって意味なら結果が変わっても仕方ない
何桁まで使うかを自分で決める
式が違うって意味なら結果が変わっても仕方ない
何桁まで使うかを自分で決める
604デフォルトの名無しさん
2017/11/01(水) 17:48:34.39ID:K6DgRYf4 あと
>浮動小数点を含んだ
ここもちょっとあいまいだな
BCDとかを除外するのか使ってもいいのか
いまいちどっちともとれなくもないこともない
>浮動小数点を含んだ
ここもちょっとあいまいだな
BCDとかを除外するのか使ってもいいのか
いまいちどっちともとれなくもないこともない
605デフォルトの名無しさん
2017/11/01(水) 19:13:42.89ID:kQ1wt9JW >>602
浮動小数点数の計算誤差なんて、値と式によっていくらでも蓄積されるから、割り切りが必要だぞ
極端な例をCで言うけど、floatの精度で一致させるつもりでdoubleを使っても一致しないことも出てくる
rubyだと標準ライブラリに含まれるbigdecimalライブラリがあるけど、
これも無理数だと計算誤差が出てくるわけだし
https://docs.ruby-lang.org/ja/latest/library/bigdecimal.html
浮動小数点数の計算誤差なんて、値と式によっていくらでも蓄積されるから、割り切りが必要だぞ
極端な例をCで言うけど、floatの精度で一致させるつもりでdoubleを使っても一致しないことも出てくる
rubyだと標準ライブラリに含まれるbigdecimalライブラリがあるけど、
これも無理数だと計算誤差が出てくるわけだし
https://docs.ruby-lang.org/ja/latest/library/bigdecimal.html
606デフォルトの名無しさん
2017/11/01(水) 20:07:42.50ID:uQFQAfJE Rationalクラスなら誤差出ない
607デフォルトの名無しさん
2017/11/01(水) 20:47:39.78ID:kQ1wt9JW608デフォルトの名無しさん
2017/11/01(水) 20:53:14.66ID:uQFQAfJE マクローリン展開で
609デフォルトの名無しさん
2017/11/01(水) 21:13:10.79ID:mbpKs61j マクローリン展開でどうやって誤差なしで計算するのw
610デフォルトの名無しさん
2017/11/01(水) 21:16:19.51ID:uQFQAfJE 真の値である必要は無い
二通りの計算が同じになって欲しいんでしょ
どんなコンピュータ持ってきても円の面積すら誤差なしで計算できないぞ
二通りの計算が同じになって欲しいんでしょ
どんなコンピュータ持ってきても円の面積すら誤差なしで計算できないぞ
611デフォルトの名無しさん
2017/11/01(水) 23:37:46.94ID:Oby+I+5u 宇宙船でも、円周率の誤差のせいで、目的地にたどりつけないから、double 型を使ってる
float だと精度が足りないから
float だと精度が足りないから
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★6 [樽悶★]
- 【🐼🇨🇳】「高市総理VS中国」で日本からパンダはゼロに? 上野動物園「パンダ返還期限」まであと4カ月…★2 [BFU★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★5 [樽悶★]
- 【裁判】山上徹也被告の妹「この人は母のふりをした旧統一教会の信者だと思いました」「でも、母の形をしているから突き放せなかった」 [1ゲットロボ★]
- 【速報】 米大使声明 「日本を支えていく」「中国が威圧的手段に訴えるのは断ち難い悪癖」 [お断り★]
- 「“なり得る”って言っただけだから…」高市早苗“存立危機”答弁後に漏らした本音 ★4 [Hitzeschleier★]
- 【速報】アメリカ「高市総理を支持する。中国の威圧は許せない」 [931948549]
- 小野田紀美大臣「悪いことをする外国人は日本にいない状況をつくる」 [856698234]
- 珍🏡珍
- 【安倍悲報】山上徹也「押し入れに大量のつぼ」 [115996789]
- 外国人「日本の立ちんぼガールやばすぎるwwwwwwwww [977790669]
- 🐻「ぼく、人殺しじゃないクマ!」熊さん、冤罪で4匹も殺される [389326466]
