プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ
質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 64
https://mevius.5ch.net/test/read.cgi/tech/1535797516/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
Ruby 初心者スレッド Part 65
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0f80-JI52)
2018/12/22(土) 04:43:34.03ID:84E3pYZa0521デフォルトの名無しさん (ワッチョイ 4f7d-woJQ)
2019/07/20(土) 20:09:09.31ID:CMictvk+0 つまりテトリスカンパニーのようにメルセンヌツイスタ株式会社みたいなのが数字の出る順番のルールを決めて
ひとつの言語にはひとつのメルセンヌツイスタライブラリしか認可しないというふうにして品質の
ひとつの言語にはひとつのメルセンヌツイスタライブラリしか認可しないというふうにして品質の
522デフォルトの名無しさん (ワッチョイ 3f73-jGuh)
2019/07/20(土) 20:57:00.17ID:2izalSzA0523デフォルトの名無しさん (ワッチョイ 3f73-jGuh)
2019/07/20(土) 21:02:21.62ID:2izalSzA0524デフォルトの名無しさん (ワッチョイ 4f7d-woJQ)
2019/07/20(土) 21:11:50.98ID:CMictvk+0 ものによっては「7が最近出てないのでそろそろ出るはず」「1が何回も出るはずがない」を支持するデタラメ数が必要とされることはあるのだが
それは乱数で表現されるものではないので自前で実装するよりない
それは乱数で表現されるものではないので自前で実装するよりない
525デフォルトの名無しさん (ワッチョイ cf4e-NxfS)
2019/07/20(土) 21:43:20.93ID:/ET4uH9K0 乱数 まろやか で検索するといいぞ。ポイントは正規分布
526503 (ワッチョイ 3f2c-QKg6)
2019/07/20(土) 21:51:55.20ID:NKxgAyGK0 JavaScript でも作ってみたが、これも乱数が偏っている。
7, 1, 7, 7, 5, 4, 7, 4, 1
function get_random_int( ) {
return function( ) {
const min = 1
const max = 9
return Math.floor( Math.random( ) * ( max + 1 - min ) ) + min ;
};
}
const ary = [ ...Array( 25 ) ].map( get_random_int( ) )
console.log( ary );
出力
[ 2, 8, 6, 2, 5, 7, 8, 1, 4, 6, 7, 1, 7, 7, 5, 4, 7, 4, 1, 3, 4, 5, 6, 8, 6 ]
7, 1, 7, 7, 5, 4, 7, 4, 1
function get_random_int( ) {
return function( ) {
const min = 1
const max = 9
return Math.floor( Math.random( ) * ( max + 1 - min ) ) + min ;
};
}
const ary = [ ...Array( 25 ) ].map( get_random_int( ) )
console.log( ary );
出力
[ 2, 8, 6, 2, 5, 7, 8, 1, 4, 6, 7, 1, 7, 7, 5, 4, 7, 4, 1, 3, 4, 5, 6, 8, 6 ]
527デフォルトの名無しさん (ワッチョイ cf4e-NxfS)
2019/07/20(土) 22:07:15.82ID:/ET4uH9K0 >>526
赤黒が1/2の確率で出るルーレットがあります。
三回回したところすべて黒が出ました。
次に赤が出る確率は?
一般人「1/2」
バカ「こんなに黒が続いたんだからそろそろ赤が出ないとおかしい!偏っている!だから赤100%だ!!」
赤黒が1/2の確率で出るルーレットがあります。
三回回したところすべて黒が出ました。
次に赤が出る確率は?
一般人「1/2」
バカ「こんなに黒が続いたんだからそろそろ赤が出ないとおかしい!偏っている!だから赤100%だ!!」
528デフォルトの名無しさん (ワッチョイ 3f52-5sVo)
2019/07/20(土) 23:53:39.37ID:QHhW8HGw0 >>526
乱数にけちつける前に10面ダイス買ってきて、10000回振って出目をメモして偏りを確認してこい。
それが片寄ってると思うなら、別の店でダイス買い直して再試行しろ。
終わるまでスレに帰ってくるなよ。
乱数にけちつける前に10面ダイス買ってきて、10000回振って出目をメモして偏りを確認してこい。
それが片寄ってると思うなら、別の店でダイス買い直して再試行しろ。
終わるまでスレに帰ってくるなよ。
529デフォルトの名無しさん (アウアウエー Sabf-CMz4)
2019/07/21(日) 01:29:14.20ID:7an9cjGSa リアルのダイスは安物だと
1の目と6の目で掘り具合が適当で
重心がばらつくから良くない
1をでかく掘ってあって
ちゃんとバランスとってる香具師を買え
1の目と6の目で掘り具合が適当で
重心がばらつくから良くない
1をでかく掘ってあって
ちゃんとバランスとってる香具師を買え
530デフォルトの名無しさん (ワッチョイ 7fd2-W26c)
2019/07/21(日) 05:50:29.99ID:8kiQELFp0531デフォルトの名無しさん (ワッチョイ 4f7d-woJQ)
2019/07/21(日) 06:37:51.08ID:OIgMVs9g0532デフォルトの名無しさん (ワッチョイ 8fb0-VOQx)
2019/07/21(日) 14:26:31.51ID:rj1b8/he0 単純にサンプル数が少なすぎる
2500回ぐらい生成してから文句言え
2500回ぐらい生成してから文句言え
533デフォルトの名無しさん (ワッチョイ 3f73-jGuh)
2019/07/21(日) 15:02:07.14ID:NYTsshMI0 1から9まで出る乱数を9個抜き出したとき:
1から9までの数が1個ずつ含まれる確率
9!/9^9 = 0.09%
1から9までの数のうち4個ある数字が1つ、2個ある数字が2つ、1個ある数字が1つである確率
9(8C2)6(9C4)(5C2)(3C2)/2/9^9 = 0.7%
10倍ぐらい確率が違うんだよ
「君の言葉で言う偏る」のは確率で見てもむしろ当然
# 計算式が合ってるかは誰か検証して
1から9までの数が1個ずつ含まれる確率
9!/9^9 = 0.09%
1から9までの数のうち4個ある数字が1つ、2個ある数字が2つ、1個ある数字が1つである確率
9(8C2)6(9C4)(5C2)(3C2)/2/9^9 = 0.7%
10倍ぐらい確率が違うんだよ
「君の言葉で言う偏る」のは確率で見てもむしろ当然
# 計算式が合ってるかは誰か検証して
534デフォルトの名無しさん (ワッチョイ 3f73-jGuh)
2019/07/21(日) 15:05:40.77ID:NYTsshMI0 あ、>>526 ね
分かるだろうけど
分かるだろうけど
535デフォルトの名無しさん (ワッチョイ 3f73-jGuh)
2019/07/21(日) 15:10:50.24ID:NYTsshMI0 もっと単純化して言ってしまえば、コインを2回投げたときに、表裏が1回ずつ出る確率と
表か裏かのどちらかしか出ない確率は同じだというのはすぐ分かると思う
それを「どちらかしか出ない場合があるのは偏ってる!」と言ってるようなもんだよ、これは
表か裏かのどちらかしか出ない確率は同じだというのはすぐ分かると思う
それを「どちらかしか出ない場合があるのは偏ってる!」と言ってるようなもんだよ、これは
536デフォルトの名無しさん (ワッチョイ 3f73-jGuh)
2019/07/21(日) 16:40:43.81ID:NYTsshMI0 こういうと、
「25回投げたときに、そのうち10回を取り出して8回以上表か裏が出てたら偏ってるじゃないか」
と言われそうなので、その確率も計算しておこう
面倒なのでPCでぶん回して計算すると、約49%だった。
つまり、25回投げたときに恣意的に10回を取り出して表か裏が8個以上あることなんて普通に
ありえることなんだよね
「25回投げたときに、そのうち10回を取り出して8回以上表か裏が出てたら偏ってるじゃないか」
と言われそうなので、その確率も計算しておこう
面倒なのでPCでぶん回して計算すると、約49%だった。
つまり、25回投げたときに恣意的に10回を取り出して表か裏が8個以上あることなんて普通に
ありえることなんだよね
537デフォルトの名無しさん (ワッチョイ 3f73-jGuh)
2019/07/21(日) 16:43:49.84ID:NYTsshMI0 ちなみに、8回以上を9回以上に置き換えても13%の確率があるので、特段珍しいことでもない
さらにちなみに、この計算はRubyを使って行いましたw
さらにちなみに、この計算はRubyを使って行いましたw
538デフォルトの名無しさん (スッップ Sdaa-nIbq)
2019/07/28(日) 16:46:50.69ID:RyVu3FEFd ActiveRecordの件数が多い時、メモリを大量に使った際に、その分のメモリが開放されないままになってるように見えるのですがこれは仕様ですか?
メモリ開放のやり方とか、そもそも件数が多すぎる場合はActiveRecord使わないほうが良いなどあったりするでしょうか…?
メモリ開放のやり方とか、そもそも件数が多すぎる場合はActiveRecord使わないほうが良いなどあったりするでしょうか…?
539デフォルトの名無しさん (ワッチョイ 8a33-SaMj)
2019/07/28(日) 17:41:05.41ID:x88Eo97q0 ActiveRecordは知らんけど、RubyのGCがあんまり働かないのはオレも経験したことがある。
いっそ自動処理をあてにしないで、適当なタイミングで明示的にGC.start()したほうがいいと思う。
あるいは、ちゃんと設定のチューニングをするか。
めんどくさそうなうえに、ちゃんと動作すんのかは知らんけどな。
https://docs.ruby-lang.org/ja/latest/class/GC.html
いっそ自動処理をあてにしないで、適当なタイミングで明示的にGC.start()したほうがいいと思う。
あるいは、ちゃんと設定のチューニングをするか。
めんどくさそうなうえに、ちゃんと動作すんのかは知らんけどな。
https://docs.ruby-lang.org/ja/latest/class/GC.html
540デフォルトの名無しさん (スッップ Sdaa-qbpu)
2019/07/31(水) 06:26:20.94ID:F/SyAmOad >>270
Railsはチュートリアルとか本とかネットの情報も多いけどSinatraは情報が少な過ぎるよ
Railsはチュートリアルとか本とかネットの情報も多いけどSinatraは情報が少な過ぎるよ
541デフォルトの名無しさん (ワッチョイ 8a2c-aoqV)
2019/07/31(水) 12:11:30.33ID:6BPSvdm10 たぶん、インデックスを使っていない、select だろう。
ランキングとか、レコードを総なめ・全件取得する、select だろう
DB の実行計画を見ると、わかる
DB設計は、DB資格の教科書とか、ミックの本などで勉強していないと難しい。
バグのほとんどは設計段階で生じるから、SE の給料が、プログラマーよりも高い!
ランキングとか、レコードを総なめ・全件取得する、select だろう
DB の実行計画を見ると、わかる
DB設計は、DB資格の教科書とか、ミックの本などで勉強していないと難しい。
バグのほとんどは設計段階で生じるから、SE の給料が、プログラマーよりも高い!
542デフォルトの名無しさん (ワッチョイ 0b14-3QQs)
2019/07/31(水) 12:17:18.62ID:JpBmxHct0 それだと設計ができない無能SEの給料は低くないといけない
543デフォルトの名無しさん (ワッチョイ ab7d-1GM0)
2019/07/31(水) 12:20:45.88ID:zH1G6UoN0 >>542
何荒らしにマジレスしてんの
何荒らしにマジレスしてんの
544デフォルトの名無しさん (アウウィフ FFcf-tP4r)
2019/07/31(水) 12:41:48.82ID:+MN2XkdtF 馬鹿には無理
545デフォルトの名無しさん (スッップ Sd43-LBQ1)
2019/08/01(木) 05:31:11.68ID:n5HVCX7yd 同じリポジトリの同じソースからのデプロイで昨日は成功したのに今日は成功しないのは何でなんだぜ?
Heroku
Heroku
546デフォルトの名無しさん (ワッチョイ 2dda-dfB4)
2019/08/01(木) 05:46:22.10ID:D666GHsD0 韓国に楯突いたことでアメリカからも敵国認定されてブロックされてしまったのだろうな
米国に置いてあるデータ、アメリカ製サービスからは早急に引き上げたほうがいい
エンジニアの生命線が...。米国の貿易施策でGitHubの利用制限を受けるイランなどの国々 | ギズモード・ジャパン
https://www.gizmodo.jp/2019/07/github-trade-control-regulations.html
GitHub、米国の経済制裁対象国ユーザーによる非公開リポジトリ利用をブロック | 財経新聞
https://www.zaikei.co.jp/article/20190730/523662.html
米国に置いてあるデータ、アメリカ製サービスからは早急に引き上げたほうがいい
エンジニアの生命線が...。米国の貿易施策でGitHubの利用制限を受けるイランなどの国々 | ギズモード・ジャパン
https://www.gizmodo.jp/2019/07/github-trade-control-regulations.html
GitHub、米国の経済制裁対象国ユーザーによる非公開リポジトリ利用をブロック | 財経新聞
https://www.zaikei.co.jp/article/20190730/523662.html
547デフォルトの名無しさん (ワッチョイ bd14-F0Sa)
2019/08/01(木) 12:25:16.08ID:czAE5CE00 >>546
イランから手を引けばいいだけでしょ(笑)
イランから手を引けばいいだけでしょ(笑)
548デフォルトの名無しさん (ワッチョイ 8595-7p+E)
2019/08/01(木) 20:11:56.88ID:WaJjQk0q0 ruby はよくある printf の類が日英混合文でも大丈夫?
perl で 日英両対応 align.pl 書いたけど 日本語はprintfのフォームと
ずれてしまったのでコードがそれを避けた書きかたになってしまって
気がはれない
perl で 日英両対応 align.pl 書いたけど 日本語はprintfのフォームと
ずれてしまったのでコードがそれを避けた書きかたになってしまって
気がはれない
549デフォルトの名無しさん (ワッチョイ 2333-uzAh)
2019/08/01(木) 20:45:19.26ID:lSJbqNGy0550デフォルトの名無しさん (ワッチョイ eb7d-SEhp)
2019/08/01(木) 21:12:29.42ID:MCSzD/uO0 Rubyとしては「STDOUTに流すだけで特に何もしてない」ような気がする
Cursesはなんかしてくれてるんだっけ?
Cursesはなんかしてくれてるんだっけ?
551デフォルトの名無しさん (ワッチョイ 4584-ONLY)
2019/08/03(土) 00:58:45.19ID:uTJugp6Y0 逆にその日英混合文がダメな状況ってどういう状況だよ
552デフォルトの名無しさん (ワッチョイ 2333-uzAh)
2019/08/03(土) 10:30:15.37ID:sR/VT/6l0 いわゆる全角半角の文字幅やろ。
553デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/03(土) 22:04:00.83ID:bbhz9sWw0 やった!!
俺の求めていたものだ
https://logmi.jp/tech/articles/321280
一見楽そうに見えて、余計に面倒なことになるwww
こんなんだったら、初めから型宣言したほうがマシだわな
型宣言の何が嫌なんだろ(謎
意地?
DRYに反してるっていうけど、何処が?
まぁでも求めていた展開だ
本人も作りたくないであろうこんなツールに多大な時間を割くことで
10年単位で他の言語に遅れることになるだろうな
大爆笑
俺の求めていたものだ
https://logmi.jp/tech/articles/321280
一見楽そうに見えて、余計に面倒なことになるwww
こんなんだったら、初めから型宣言したほうがマシだわな
型宣言の何が嫌なんだろ(謎
意地?
DRYに反してるっていうけど、何処が?
まぁでも求めていた展開だ
本人も作りたくないであろうこんなツールに多大な時間を割くことで
10年単位で他の言語に遅れることになるだろうな
大爆笑
554デフォルトの名無しさん (ワッチョイ 2333-uzAh)
2019/08/03(土) 23:28:43.68ID:sR/VT/6l0 >>553
> DRYに反してるっていうけど、何処が?
Type obj=new Type()
じゃないの?型を2回書いてるじゃん!という。
なお、C#がそうだったんだけど、遠からず改善される予定。
Type obj=new()
# 最初からそうしといてよー、と思わないでもないけど。w
型のDRYを避ける方法はあるんだよな。
しかし、Rubyはそこから目をそらして、DRYを言い訳にして、とにかくなにがなんでもオブジェクトの宣言を含めたくないんだろう。
> DRYに反してるっていうけど、何処が?
Type obj=new Type()
じゃないの?型を2回書いてるじゃん!という。
なお、C#がそうだったんだけど、遠からず改善される予定。
Type obj=new()
# 最初からそうしといてよー、と思わないでもないけど。w
型のDRYを避ける方法はあるんだよな。
しかし、Rubyはそこから目をそらして、DRYを言い訳にして、とにかくなにがなんでもオブジェクトの宣言を含めたくないんだろう。
555デフォルトの名無しさん (ワッチョイ 75e7-27IP)
2019/08/04(日) 03:31:45.57ID:KgSPSwNu0 >>553
>DRYに反してるっていうけど、何処が?
https://qiita.com/t2y/items/2a1310608da7b5c4860b
> def sum_and_stringify(nums: List[int]) -> str:
> """Adds up the numbers in a list and returns the result as a string."""
> return str(sum(nums))
じゃないの?
型を2回書いてるじゃん!という。
なお本件、改善される計画はなく、いつまで待っても放置される予定。
# ML や Haskell なら最初から型アノーテーションなんて不要だからDRYだけど、
# その方向性を最初から放棄してどうすんのよー、と思わないでもないけど。w
型のDRYを避ける方法はあるんだよな。
しかし、そこから目をそらして、global だの nonlocal だのスコープ問題の泥縄的解決である
変数宣言を言い訳にして、とにかくなにがなんでも型宣言を含めさせたいんだろう。
>DRYに反してるっていうけど、何処が?
https://qiita.com/t2y/items/2a1310608da7b5c4860b
> def sum_and_stringify(nums: List[int]) -> str:
> """Adds up the numbers in a list and returns the result as a string."""
> return str(sum(nums))
じゃないの?
型を2回書いてるじゃん!という。
なお本件、改善される計画はなく、いつまで待っても放置される予定。
# ML や Haskell なら最初から型アノーテーションなんて不要だからDRYだけど、
# その方向性を最初から放棄してどうすんのよー、と思わないでもないけど。w
型のDRYを避ける方法はあるんだよな。
しかし、そこから目をそらして、global だの nonlocal だのスコープ問題の泥縄的解決である
変数宣言を言い訳にして、とにかくなにがなんでも型宣言を含めさせたいんだろう。
556デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/04(日) 12:53:29.81ID:uuq2lSJI0 あと
別ファイルに型定義書くのって立派なDRYじゃねーの?
だって、クラス名やメソッド名変更するとき
両方書き直さなきゃならないじゃねーか
これはDRY以外の何なんだ?
ほんと、ペテン師はいつも自分に都合のいい事だけ言うよな
分かっててすっとぼけるんだわ
信者には悪いが、マジで毎回そう
別ファイルに型定義書くのって立派なDRYじゃねーの?
だって、クラス名やメソッド名変更するとき
両方書き直さなきゃならないじゃねーか
これはDRY以外の何なんだ?
ほんと、ペテン師はいつも自分に都合のいい事だけ言うよな
分かっててすっとぼけるんだわ
信者には悪いが、マジで毎回そう
557デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/04(日) 13:05:34.87ID:uuq2lSJI0 つまり、
普通に素直に型宣言するより
別ファイルに型定義書く方が
よりDRYだし面倒だし
この掛け違えたボタンで首が絞まる感じ何なん
もう普通に型書いたら?
アホらしすぎ
普通に素直に型宣言するより
別ファイルに型定義書く方が
よりDRYだし面倒だし
この掛け違えたボタンで首が絞まる感じ何なん
もう普通に型書いたら?
アホらしすぎ
558デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/04(日) 13:18:44.89ID:uuq2lSJI0 型定義を別ファイルの書くのって
丁度C言語が.hと.cに分かれてるのと同じ感じだよね
で、関数名変えるとき.hと.cの両方書き換えるっていうね
今更C言語に先祖返りってどうよ
あれDRYって何だっけ
丁度C言語が.hと.cに分かれてるのと同じ感じだよね
で、関数名変えるとき.hと.cの両方書き換えるっていうね
今更C言語に先祖返りってどうよ
あれDRYって何だっけ
559デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/04(日) 13:39:41.20ID:uuq2lSJI0 あるクラスの名前を変更する
型定義ファイルに書いてあるクラス名を変更し忘れる
そのクラスの型定義が無くなり型チェックが効かなくなる
プログラマは型チェックが効いてると思い込みテストをサボる
バグを組み込んでしまう
あり得るシナリオだし、こういうのをDRYと言うのではww
同じような感じでヘッダと実装に分かれてるC/C++の場合は
これは間違ってるとコンパイルエラーになるから良いけど
Rubyの場合は修正し忘れてて型定義が見つからない状態になってても
それはそれとして、どうせ無テストになるだけでスルーでしょ
(他に型定義の無いクラスはいっぱいあるわけで型定義が無いだけでエラーには出来ない)
さあ型定義ファイルにあるクラス名とメソッド名が
間違っていないか確かめるテストを書かなきゃねwww
(単純にtypoしてるかもしれないわけで)
で、誰得なんこれ
型定義ファイルに書いてあるクラス名を変更し忘れる
そのクラスの型定義が無くなり型チェックが効かなくなる
プログラマは型チェックが効いてると思い込みテストをサボる
バグを組み込んでしまう
あり得るシナリオだし、こういうのをDRYと言うのではww
同じような感じでヘッダと実装に分かれてるC/C++の場合は
これは間違ってるとコンパイルエラーになるから良いけど
Rubyの場合は修正し忘れてて型定義が見つからない状態になってても
それはそれとして、どうせ無テストになるだけでスルーでしょ
(他に型定義の無いクラスはいっぱいあるわけで型定義が無いだけでエラーには出来ない)
さあ型定義ファイルにあるクラス名とメソッド名が
間違っていないか確かめるテストを書かなきゃねwww
(単純にtypoしてるかもしれないわけで)
で、誰得なんこれ
560デフォルトの名無しさん (ワッチョイ 8514-F0Sa)
2019/08/04(日) 15:37:02.28ID:M00OQnGm0 まつもとが型のメリットを理解してないからどうしようもない
561デフォルトの名無しさん (ワッチョイ 232c-n0r7)
2019/08/04(日) 20:45:52.66ID:zjBZp1dd0 WEB+DB vol.111
詳解 Rails 6
コミッターが解説する、26ページ分の特集!
詳解 Rails 6
コミッターが解説する、26ページ分の特集!
562デフォルトの名無しさん (ワッチョイ 75e7-27IP)
2019/08/05(月) 01:20:57.58ID:xLJRGiJi0 >>556-559
>別ファイルに型定義書くのって立派なDRYじゃねーの?
まず、この文章は「DRY違反じゃねーの」の間違いだろう
これだけでもアンチRubyがDRYという言葉の意味を理解せずに
トンチンカンな批判を繰り返している実証になる
次に上記の文章を:
>>別ファイルに型定義書くのって立派なDRY違反じゃねーの?
と訂正したとしても、答えは NO だ
確かに型推定を最初から放棄してユーザに型アノーテーション記述を
強制する言語(>>555)であれば、その型アノーテーション記述がソースファイルと
同一ファイルであっても別ファイルであってもDRY原則に反している、と言える
しかしRuby3.0で計画されている型プロファイルは、型宣言記述が無い
素のRubyソースコードから型定義ファイル rbi を自動生成できる
また、ソースコードと同一ファイルにアノーテーション(注釈、いわゆるコメント)として
型定義を記述することもできる(ただし、この場合は自動生成されず手書きとなる)
>別ファイルに型定義書くのって立派なDRYじゃねーの?
まず、この文章は「DRY違反じゃねーの」の間違いだろう
これだけでもアンチRubyがDRYという言葉の意味を理解せずに
トンチンカンな批判を繰り返している実証になる
次に上記の文章を:
>>別ファイルに型定義書くのって立派なDRY違反じゃねーの?
と訂正したとしても、答えは NO だ
確かに型推定を最初から放棄してユーザに型アノーテーション記述を
強制する言語(>>555)であれば、その型アノーテーション記述がソースファイルと
同一ファイルであっても別ファイルであってもDRY原則に反している、と言える
しかしRuby3.0で計画されている型プロファイルは、型宣言記述が無い
素のRubyソースコードから型定義ファイル rbi を自動生成できる
また、ソースコードと同一ファイルにアノーテーション(注釈、いわゆるコメント)として
型定義を記述することもできる(ただし、この場合は自動生成されず手書きとなる)
563デフォルトの名無しさん (ワッチョイ 2333-uzAh)
2019/08/05(月) 01:57:11.36ID:kCWOwKEP0 >>562
> トンチンカンな批判を繰り返している実証になる
揚げ足をとれたからって、そんなに必死にならなくても。w
DRYDRYとうるさいのは信者くらいで、ふつうは実はそんなに気にしてないからな。しゃあない。
> 素のRubyソースコードから型定義ファイル rbi を自動生成できる
スケルトンみたいなこと?
その手のやりかたってヤバい原因になりがちだと思うんだけど、だいじょうぶなの?たいがい元ソースコードの変更に追い付けなくなって、うやむやになるよねえ?
> 型定義を記述することもできる(ただし、この場合は自動生成されず手書きとなる)
つまり、ソースを変更したら、あわせてアノテも変更しないといけないのか?
結局はDRY違反なの?
ホントにそんなだったら、どうせ誰も使わない気がするなあ。。。
> トンチンカンな批判を繰り返している実証になる
揚げ足をとれたからって、そんなに必死にならなくても。w
DRYDRYとうるさいのは信者くらいで、ふつうは実はそんなに気にしてないからな。しゃあない。
> 素のRubyソースコードから型定義ファイル rbi を自動生成できる
スケルトンみたいなこと?
その手のやりかたってヤバい原因になりがちだと思うんだけど、だいじょうぶなの?たいがい元ソースコードの変更に追い付けなくなって、うやむやになるよねえ?
> 型定義を記述することもできる(ただし、この場合は自動生成されず手書きとなる)
つまり、ソースを変更したら、あわせてアノテも変更しないといけないのか?
結局はDRY違反なの?
ホントにそんなだったら、どうせ誰も使わない気がするなあ。。。
564デフォルトの名無しさん (ワッチョイ 75e7-27IP)
2019/08/05(月) 02:20:06.63ID:xLJRGiJi0566デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/05(月) 07:34:24.32ID:nl2V9bb60 https://img.logmi.jp/article_images/D2VbGeV4PWY5uay2tHho6g.jpg
こんなんを別ファイルに記述するはめになるんだ
クラス定義に似てるね
重複して同じようなことを二回書かなきゃならないって事
DRYの原則に反してるから型宣言を書きたくないって話だったのに
より一層DRYの原則に反してるね
C++のヘッダにそっくり
あと今更するなら最初からしておけば何かとよかったのにね
夏休みの宿題を最後にためておく人だったのかな
一方静的型言語にも型推論とか取り入れられてるけど
こっちは文法的にも文化的にも何の障壁もなく導入されてるのが笑える
なにこの差
さらにはヌル安全とかまでやろうとしてる
逆にこっちのやってるのはいまだにネイティブスレッドww
何周遅れよこれ
そんでいつも後出しジャンケンで負ける
動的型もそう
後出しジャンケンして負けた
後出しジャンケンでも勝てばいいんだが負けたら意味ないね
Rubyサイコー
こんなんを別ファイルに記述するはめになるんだ
クラス定義に似てるね
重複して同じようなことを二回書かなきゃならないって事
DRYの原則に反してるから型宣言を書きたくないって話だったのに
より一層DRYの原則に反してるね
C++のヘッダにそっくり
あと今更するなら最初からしておけば何かとよかったのにね
夏休みの宿題を最後にためておく人だったのかな
一方静的型言語にも型推論とか取り入れられてるけど
こっちは文法的にも文化的にも何の障壁もなく導入されてるのが笑える
なにこの差
さらにはヌル安全とかまでやろうとしてる
逆にこっちのやってるのはいまだにネイティブスレッドww
何周遅れよこれ
そんでいつも後出しジャンケンで負ける
動的型もそう
後出しジャンケンして負けた
後出しジャンケンでも勝てばいいんだが負けたら意味ないね
Rubyサイコー
567デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/05(月) 07:39:15.45ID:nl2V9bb60 >また、ソースコードと同一ファイルにアノーテーション(注釈、いわゆるコメント)として
この方式はmatzが滅茶苦茶に嫌ってるから採用される事はないね
あの人わけわからないぐらいこのことに固執してるからね
また何も知らないか、知ってても嘘をつく
いつものパターンね
この方式はmatzが滅茶苦茶に嫌ってるから採用される事はないね
あの人わけわからないぐらいこのことに固執してるからね
また何も知らないか、知ってても嘘をつく
いつものパターンね
568デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/05(月) 13:40:37.89ID:nl2V9bb60 ちなみにmatzがソースコードに型を書きたくない理由だが
色々言ってるが、彼は詐欺師だから、本音ではないし、嘘も含まれる
まず
https://logmi.jp/tech/articles/321280
にも書いてあるし、たびたび登場するDRYに反するというやつ
言うまでもないが別ファイルに書く方がDRYに反するし
これは多分、彼の本音ではないし、煙に巻くための適当な言い訳
つぎに、静的型と動的型は振り子のようにトレンドが移り変わり
今後また動的型言語の時代が来るから、というもの
いやいやこれから先、動的型の時代など来ないだろうし、そもそもの前提がおかしい
C言語以降はずっと静的型の天下であり、動的型が勝ってた時代などなかった
振り子のようにというのがそもそも嘘偽り誇大表現、こうやって騙してくる
C/C++、Java、C#といった超メジャー言語にRubyが勝っていた時代など一度もなかっただろ、詐欺師め
色々言ってるが、彼は詐欺師だから、本音ではないし、嘘も含まれる
まず
https://logmi.jp/tech/articles/321280
にも書いてあるし、たびたび登場するDRYに反するというやつ
言うまでもないが別ファイルに書く方がDRYに反するし
これは多分、彼の本音ではないし、煙に巻くための適当な言い訳
つぎに、静的型と動的型は振り子のようにトレンドが移り変わり
今後また動的型言語の時代が来るから、というもの
いやいやこれから先、動的型の時代など来ないだろうし、そもそもの前提がおかしい
C言語以降はずっと静的型の天下であり、動的型が勝ってた時代などなかった
振り子のようにというのがそもそも嘘偽り誇大表現、こうやって騙してくる
C/C++、Java、C#といった超メジャー言語にRubyが勝っていた時代など一度もなかっただろ、詐欺師め
569デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/05(月) 13:43:49.85ID:nl2V9bb60 もう一つ
ここに書いてあることが実は本音(らしい)
https://jp.quora.com/TypeScript%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E5%9E%8B%E4%BB%98%E3%81%91%E3%82%92Ruby%E3%81%AB%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%9F%E3%82%89%E6%9C%80%E9%AB%98%E3%81%AE%E8%A8%80%E8%AA%9E%E3%81%AB%E3%81%AA%E3%82%8B
要約すると、Rubyに型アノテーションが導入されたら
型を書いた方が行儀が良いという風潮が蔓延するだろうが、自分は型を書きたくないので
そのために型をかけないようにしておく、というもの
良いことが出来ると、良いことをする風潮になるだろうが
自分は悪いことがしたいから、良いことが出来ると困る
と言っているわけで、マジキチなのがお分かりいただけるだろうか
法律があると法律を守らなければならないから嫌
信号があると信号無視が出来ないから嫌
と言ってるようなもので、まさに悪人の考え
型は書いた方が良い、とうことはしっかり分かってる上で
嫌だから出来ないようにしておく、と言ってるわけで、悪人独特の自己矛盾
しかし普段自分の都合のいいように嘘しか言わない彼が、本音を語っている点は評価できる
ここに書いてあることが実は本音(らしい)
https://jp.quora.com/TypeScript%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E5%9E%8B%E4%BB%98%E3%81%91%E3%82%92Ruby%E3%81%AB%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%9F%E3%82%89%E6%9C%80%E9%AB%98%E3%81%AE%E8%A8%80%E8%AA%9E%E3%81%AB%E3%81%AA%E3%82%8B
要約すると、Rubyに型アノテーションが導入されたら
型を書いた方が行儀が良いという風潮が蔓延するだろうが、自分は型を書きたくないので
そのために型をかけないようにしておく、というもの
良いことが出来ると、良いことをする風潮になるだろうが
自分は悪いことがしたいから、良いことが出来ると困る
と言っているわけで、マジキチなのがお分かりいただけるだろうか
法律があると法律を守らなければならないから嫌
信号があると信号無視が出来ないから嫌
と言ってるようなもので、まさに悪人の考え
型は書いた方が良い、とうことはしっかり分かってる上で
嫌だから出来ないようにしておく、と言ってるわけで、悪人独特の自己矛盾
しかし普段自分の都合のいいように嘘しか言わない彼が、本音を語っている点は評価できる
570デフォルトの名無しさん (ワッチョイ 23da-dfB4)
2019/08/05(月) 13:47:09.02ID:3mqInMrR0 そろそろこっちでやれ
アンチということではなく本スレの代わりとして
Rubyについて(アンチ専用) Part005
https://mevius.5ch.net/test/read.cgi/tech/1555162340/
アンチということではなく本スレの代わりとして
Rubyについて(アンチ専用) Part005
https://mevius.5ch.net/test/read.cgi/tech/1555162340/
571デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/05(月) 13:52:01.39ID:nl2V9bb60 しかし>>569に書いたようなことを公式で言うとマジキチだから
静的型を導入しない理由を聞かれると、いつも適当なことを言って言葉を濁しているわけ
これでRuby3.0で導入されるといわれる型チェックが
どうしてああいう感じになってるか良くわかるでしょ
静的型を導入しない理由を聞かれると、いつも適当なことを言って言葉を濁しているわけ
これでRuby3.0で導入されるといわれる型チェックが
どうしてああいう感じになってるか良くわかるでしょ
572デフォルトの名無しさん (ワッチョイ bd14-F0Sa)
2019/08/05(月) 13:52:35.64ID:MNXFY7cg0 型を書きたくないんじゃなくて、Rubyの設計上、型を書こうとすると
設計レベルで作り直さなきゃいけなくなるから面倒くさいだけだよ。
設計レベルで作り直さなきゃいけなくなるから面倒くさいだけだよ。
573デフォルトの名無しさん (ワッチョイ ad7c-ONUK)
2019/08/05(月) 14:07:53.55ID:NOA3rn3w0 Perlも6で詰んだしな
*byも脱皮失敗で死亡
pythonは2->3でヨタヨタだがうまく離陸してくれ
*byも脱皮失敗で死亡
pythonは2->3でヨタヨタだがうまく離陸してくれ
574デフォルトの名無しさん (ワッチョイ 037d-SEhp)
2019/08/05(月) 14:08:47.58ID:kz1352lP0 単純に全体の完成度がバージョン0.8くらいに戻るよね
そこまでして「わざわざRubyに」導入するべきものでもないということではあろう
昔ならともかく今は他の言語もあるのだから
これ言うと揉めるけどな
そこまでして「わざわざRubyに」導入するべきものでもないということではあろう
昔ならともかく今は他の言語もあるのだから
これ言うと揉めるけどな
575デフォルトの名無しさん (ワッチョイ bd14-F0Sa)
2019/08/05(月) 14:14:45.71ID:MNXFY7cg0 1. 型を導入すると良いものになる。
2. だけど全体を再設計しなければならない。(面倒くさい)
3. その上、使いやすくすると、言語がガラリと変わる
4. ユーザーもその「使いやすい言語」に乗り換えるのが面倒くさい
5. 結果使われなくなるのがわかっている。
6. Ruby離れを防ぎつつ、型を導入するには、コレしかなかった
2. だけど全体を再設計しなければならない。(面倒くさい)
3. その上、使いやすくすると、言語がガラリと変わる
4. ユーザーもその「使いやすい言語」に乗り換えるのが面倒くさい
5. 結果使われなくなるのがわかっている。
6. Ruby離れを防ぎつつ、型を導入するには、コレしかなかった
576デフォルトの名無しさん (ワッチョイ ad7c-TyxI)
2019/08/05(月) 14:23:24.52ID:NOA3rn3w0 型無し*byに不満な人はElixirやればいい
577デフォルトの名無しさん (ワッチョイ ad61-5VcE)
2019/08/05(月) 14:27:47.88ID:bU1KwNWi0 LISP や Smalltalk が好きな人にとって使いやすい Perl の代替となるスクリプト言語なんだから、型欲しい人は他の言語使えば? と言うだけの話。
型を導入すると対話環境での使い勝手が悪くなり、書き捨てのプログラムを書く際の手間が増える。それは楽しくない。
型を使うと速くなる? そんなに速度が要求される要件に使うなんて決定をする奴がおかしい。 型を使うとバグが減る? そんなにレベルの低い人は使わなければいい。
妥協できるラインが、今の、書きたいやつは書けば良いんじゃない?でも、文法を拡張して既存コードとの非互換生むような修整は受け入れられない。
と言う話でしょ。
型を導入すると対話環境での使い勝手が悪くなり、書き捨てのプログラムを書く際の手間が増える。それは楽しくない。
型を使うと速くなる? そんなに速度が要求される要件に使うなんて決定をする奴がおかしい。 型を使うとバグが減る? そんなにレベルの低い人は使わなければいい。
妥協できるラインが、今の、書きたいやつは書けば良いんじゃない?でも、文法を拡張して既存コードとの非互換生むような修整は受け入れられない。
と言う話でしょ。
578デフォルトの名無しさん (ワッチョイ ad61-5VcE)
2019/08/05(月) 14:32:38.11ID:bU1KwNWi0579デフォルトの名無しさん (ワッチョイ 23a5-dfB4)
2019/08/05(月) 15:48:35.23ID:Umi2Ipdj0 ドキュメントに型を書くことになるんだから、そこの仕様をしっかり決めるべきだった
580デフォルトの名無しさん (ワッチョイ bd14-F0Sa)
2019/08/05(月) 16:30:50.53ID:MNXFY7cg0581デフォルトの名無しさん (ワッチョイ bd14-F0Sa)
2019/08/05(月) 16:33:24.89ID:MNXFY7cg0 >>577
> 型を使うと速くなる? そんなに速度が要求される要件に使うなんて決定をする奴がおかしい。
> 型を使うとバグが減る? そんなにレベルの低い人は使わなければいい。
その二つ、論点のすり替えだよね?
型を使うと速くなる? → それは事実 → だから人間の問題にすり替える。
型を使うとバグが減る? → それは事実 → だから人間の問題にすり替える。
事実ならまず「それは事実だね」って言ってみようか?
事実に対して反論するかと思いきや、反論しないんだもの(笑)
> 型を使うと速くなる? そんなに速度が要求される要件に使うなんて決定をする奴がおかしい。
> 型を使うとバグが減る? そんなにレベルの低い人は使わなければいい。
その二つ、論点のすり替えだよね?
型を使うと速くなる? → それは事実 → だから人間の問題にすり替える。
型を使うとバグが減る? → それは事実 → だから人間の問題にすり替える。
事実ならまず「それは事実だね」って言ってみようか?
事実に対して反論するかと思いきや、反論しないんだもの(笑)
582デフォルトの名無しさん (ワッチョイ bd14-F0Sa)
2019/08/05(月) 16:34:57.91ID:MNXFY7cg0 > でも、文法を拡張して既存コードとの非互換生むような修整は受け入れられない。
結局本音はそこ。
速くなるとかバグが減るという "事実" は存在するが、
既存コードの非互換性をうむから、改善できない。
結局本音はそこ。
速くなるとかバグが減るという "事実" は存在するが、
既存コードの非互換性をうむから、改善できない。
583デフォルトの名無しさん (ワッチョイ ad61-5VcE)
2019/08/05(月) 17:42:09.05ID:bU1KwNWi0 >>581
型を入れてもオープンクラスな言語では大して速度は上がらない。精々一部のループの速度が上がるだけ。それは事実。java みたいに final や primitive 型入れれば効果は相当あると思うけど、それは Ruby を否定することになる。
型を入れると未熟なプログラマでもコンパイル時に分かる程度のバグなら発見できることはある。それは事実。でも実行時例外の回避は出来ないし、オープンクラスを使ったダックタイピングという Ruby の言語デザイン自体を否定することになる。
> 事実に対して反論するかと思いきや、反論しないんだもの(笑)
反論もなにも、自分はこのスレッドで >>344 >>577 >>578 しか書いてないよ。
だから、なんらかの反論を待ってるならその相手は自分ではない。
自分は Ruby に非互換を生む型の導入を期待するくらいなら、型有りの別の言語で書けばいいじゃんという立場。
>>580
この場合の strict モードって何を指してるの?
RPython 的に SRuby 作って型使いたい人は SRuby 使えってこと?同一バイナリにしてモード切り替えするとしたら、パーサも VM もほぼ別物レベルになると思うけど。
共有できるとしたら、pure ruby で書かれたごく一部のライブラリ程度じゃない?
型を入れてもオープンクラスな言語では大して速度は上がらない。精々一部のループの速度が上がるだけ。それは事実。java みたいに final や primitive 型入れれば効果は相当あると思うけど、それは Ruby を否定することになる。
型を入れると未熟なプログラマでもコンパイル時に分かる程度のバグなら発見できることはある。それは事実。でも実行時例外の回避は出来ないし、オープンクラスを使ったダックタイピングという Ruby の言語デザイン自体を否定することになる。
> 事実に対して反論するかと思いきや、反論しないんだもの(笑)
反論もなにも、自分はこのスレッドで >>344 >>577 >>578 しか書いてないよ。
だから、なんらかの反論を待ってるならその相手は自分ではない。
自分は Ruby に非互換を生む型の導入を期待するくらいなら、型有りの別の言語で書けばいいじゃんという立場。
>>580
この場合の strict モードって何を指してるの?
RPython 的に SRuby 作って型使いたい人は SRuby 使えってこと?同一バイナリにしてモード切り替えするとしたら、パーサも VM もほぼ別物レベルになると思うけど。
共有できるとしたら、pure ruby で書かれたごく一部のライブラリ程度じゃない?
584デフォルトの名無しさん (ワッチョイ bd14-F0Sa)
2019/08/05(月) 17:55:40.47ID:MNXFY7cg0 型を入れてもオープンクラスな言語では大して速度は上がらない
→オープンでない言語なら速度は上がる
→速度を上げるためにはオープンでなくすれば良い
→そのような改善方法は存在するが、非互換性をうむから、取り入れられない。
→まつもと「Rubyでは改善はなんです。諦めてください」
→オープンでない言語なら速度は上がる
→速度を上げるためにはオープンでなくすれば良い
→そのような改善方法は存在するが、非互換性をうむから、取り入れられない。
→まつもと「Rubyでは改善はなんです。諦めてください」
585デフォルトの名無しさん (ワッチョイ bd14-F0Sa)
2019/08/05(月) 17:55:56.86ID:MNXFY7cg0 →まつもと「Rubyでは改善は無理なんです。諦めてください」
586デフォルトの名無しさん (ワッチョイ bd14-F0Sa)
2019/08/05(月) 17:58:22.53ID:MNXFY7cg0 >この場合の strict モードって何を指してるの?
適切な型を書いたものがstrictモード
だがどのオブジェクト指向でも、基底クラスのobject型として扱うことはできる。
暗黙的にobject型の変数を使ってるとみなしているのが今のRuby。
変数の型をobject型と書く(もしくは省略)か、適切な型を書くかの違い。
適切な型を書いたものがstrictモード
だがどのオブジェクト指向でも、基底クラスのobject型として扱うことはできる。
暗黙的にobject型の変数を使ってるとみなしているのが今のRuby。
変数の型をobject型と書く(もしくは省略)か、適切な型を書くかの違い。
587デフォルトの名無しさん (ワッチョイ 65cd-mfhl)
2019/08/05(月) 18:29:24.24ID:WUbT37Lx0 > 実行時例外の回避は出来ないし
は?
は?
588デフォルトの名無しさん (ワッチョイ 2333-uzAh)
2019/08/05(月) 18:55:01.90ID:kCWOwKEP0 Rubyの癌は、型を指定できないことよりも、宣言ができないこと。
型を指定できないのは、宣言ができないことによる副産物。
宣言は、ここからこのオブジェクトを使うで、ということを明確にできてわかりやすいのに、何で嫌がってんだか。
型を指定できないのは、宣言ができないことによる副産物。
宣言は、ここからこのオブジェクトを使うで、ということを明確にできてわかりやすいのに、何で嫌がってんだか。
589デフォルトの名無しさん (ワッチョイ ad61-5VcE)
2019/08/05(月) 19:04:12.59ID:bU1KwNWi0 >>586
strict モードにしたら
Class が凍結されるの?
途中でモードを切り替えられるの?
そのスコープは?
マルチスレッド時の挙動は?
Object クラス(Kernelも?)への継承関係がなくなるの?
データは VALUE 型じゃなくなるの?
オブジェクトのデータ構造は自分で C で定義するの?
既存CAPIとの整合はどう取るの?
そのコードを古いインタプリタに食わせたらどうなるの?
また分断するの?(想像するに1.4->1.6 や 1.8->1.9 より大きそうだけど)
strict にしたら何がどう変わるのかわからん。
過去に例示してあるのなら参照求む。
>>585
そう。 大抵の要望は Crystal で解決されてると思う。
速度欲しいなら Elixir 。もしくは C で FFI。
strict モードにしたら
Class が凍結されるの?
途中でモードを切り替えられるの?
そのスコープは?
マルチスレッド時の挙動は?
Object クラス(Kernelも?)への継承関係がなくなるの?
データは VALUE 型じゃなくなるの?
オブジェクトのデータ構造は自分で C で定義するの?
既存CAPIとの整合はどう取るの?
そのコードを古いインタプリタに食わせたらどうなるの?
また分断するの?(想像するに1.4->1.6 や 1.8->1.9 より大きそうだけど)
strict にしたら何がどう変わるのかわからん。
過去に例示してあるのなら参照求む。
>>585
そう。 大抵の要望は Crystal で解決されてると思う。
速度欲しいなら Elixir 。もしくは C で FFI。
590デフォルトの名無しさん (ワッチョイ bd14-F0Sa)
2019/08/05(月) 19:13:25.94ID:MNXFY7cg0591デフォルトの名無しさん (ワッチョイ ad61-5VcE)
2019/08/05(月) 19:28:52.54ID:bU1KwNWi0 >>590
そのかわり型ということを考えなくても計算機と対話することができる日常用途に便利な言語になったわけだ。
そのかわり型ということを考えなくても計算機と対話することができる日常用途に便利な言語になったわけだ。
592デフォルトの名無しさん (ワッチョイ bd14-F0Sa)
2019/08/05(月) 19:32:29.27ID:MNXFY7cg0 Rubyにも型があるんだから、型考えてるでしょw
それともどんな型を入れても、エラーにならずに動くコードかいてんのか?
それともどんな型を入れても、エラーにならずに動くコードかいてんのか?
593デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/05(月) 21:15:23.92ID:nl2V9bb60 型チェックが欲しい人は他の言語使えって言ってるけど
Ruby3.0で型チェックが導入されるんだからそこは前向きに検討しようよwww
matzが言うようにRubyに型が指定できるようになったら、指定すべきという勢力も
出てくるだろうし、一方でわざと型を書くのが億劫になる仕様にしてあるし
どちらの勢力が勝つか未知数というか
平行線が続いて空中分解してクラッシュするかもしれないし
ここでも今そういう意見があるように、今までは型チェックが欲しい人は他の言語使え
だったわけだけど、Ruby3.0からはそうじゃなくなるから更にカオスになるだろう
今までは型を書くべきかどうかはRuby 対 他の言語って感じだったけど
これからはRubyの中でそれが起こる
楽しみだね
このへん、言語仕様で初めからどちらかに決まっていた方がスッキリしていたかもしれないね
Ruby3.0で型チェックが導入されるんだからそこは前向きに検討しようよwww
matzが言うようにRubyに型が指定できるようになったら、指定すべきという勢力も
出てくるだろうし、一方でわざと型を書くのが億劫になる仕様にしてあるし
どちらの勢力が勝つか未知数というか
平行線が続いて空中分解してクラッシュするかもしれないし
ここでも今そういう意見があるように、今までは型チェックが欲しい人は他の言語使え
だったわけだけど、Ruby3.0からはそうじゃなくなるから更にカオスになるだろう
今までは型を書くべきかどうかはRuby 対 他の言語って感じだったけど
これからはRubyの中でそれが起こる
楽しみだね
このへん、言語仕様で初めからどちらかに決まっていた方がスッキリしていたかもしれないね
594デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/05(月) 21:19:04.07ID:nl2V9bb60 それに加えて型定義ファイルの自動生成の話もあるが
まぁ最初は使い物にならないだろうからそれも含めてカオスになる
それがRuby3.0
静的型言語も動的型言語を取り入れてるっていうけど
こっちは何の問題もなく行われてて全くの静寂なのが笑える
まぁ型推論はコンパイラが型を推論してくれるというだけで
型は静的に決定されているわけだから当たり前なんだけど
まぁ最初は使い物にならないだろうからそれも含めてカオスになる
それがRuby3.0
静的型言語も動的型言語を取り入れてるっていうけど
こっちは何の問題もなく行われてて全くの静寂なのが笑える
まぁ型推論はコンパイラが型を推論してくれるというだけで
型は静的に決定されているわけだから当たり前なんだけど
595デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/05(月) 21:29:41.54ID:nl2V9bb60 型は書いたほうが良いが今更自然な形での導入は難しい
しかし3.0で書きにくいけど書けるようになる
書けるようになるなら書いたほうが良い
でも書きにくい
でも書かなきゃ
でも書きにくい
書きたくない
でも書かなきゃ
でも書きにくい
これがRuby3.0
しかし3.0で書きにくいけど書けるようになる
書けるようになるなら書いたほうが良い
でも書きにくい
でも書かなきゃ
でも書きにくい
書きたくない
でも書かなきゃ
でも書きにくい
これがRuby3.0
596デフォルトの名無しさん (ブーイモ MM43-SVyD)
2019/08/05(月) 21:34:38.65ID:ubcyIKEPM 型注釈、PythonとRuby両方でやってみたけど
Pythonの方が全然完成度高い
試験的な実装とはいえRubyの方は複雑になるとチェック通せなくなる
Pythonの方が全然完成度高い
試験的な実装とはいえRubyの方は複雑になるとチェック通せなくなる
597デフォルトの名無しさん (ワッチョイ ad7c-ONUK)
2019/08/06(火) 15:11:10.96ID:SvihPrAV0 実行時まで型が決まらない
ひとことで言え
ひとことで言え
598デフォルトの名無しさん (ワッチョイ 8514-F0Sa)
2019/08/06(火) 17:04:56.96ID:9obbnMlM0 実行時まで型が決まらないと言うが、
コードは特定の型もしくは特定のインターフェースを備えた
型であるという前提になってるんだよなw
コードは特定の型もしくは特定のインターフェースを備えた
型であるという前提になってるんだよなw
599デフォルトの名無しさん (ワッチョイ 23a5-fQzx)
2019/08/06(火) 18:28:14.04ID:8UHtiNBK0 perl5の末期に登場したのがuse strictとuse warningだよ
それを順当に真似てるだけだ
他意は無い
それを順当に真似てるだけだ
他意は無い
600デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/06(火) 20:21:21.15ID:vJC9K0rF0 前々からの、掛け違えたボタンの、いよいよ一番上を閉めようとしている段階なのだよ
そんなことは出来ないか、不格好か、首が絞まるか
何にせよ、こういう仇花的なことをしなければならない状況に追い込めたのは
日々のみんなの空気づくりのおかげであって、いわば人類側の勝利だよ
おめでとう
そんなことは出来ないか、不格好か、首が絞まるか
何にせよ、こういう仇花的なことをしなければならない状況に追い込めたのは
日々のみんなの空気づくりのおかげであって、いわば人類側の勝利だよ
おめでとう
601デフォルトの名無しさん (ワッチョイ 239c-38Du)
2019/08/06(火) 20:25:09.69ID:4qDHXZiE0 まずはモンキーパッチを抑制するオプションを追加して
静的に解析できるようにするのが先でしょ
静的に解析できるようにするのが先でしょ
602デフォルトの名無しさん (ワッチョイ 2333-uzAh)
2019/08/06(火) 20:27:16.73ID:SN9O18fE0603デフォルトの名無しさん (ワッチョイ 8514-F0Sa)
2019/08/06(火) 20:34:15.67ID:9obbnMlM0 モンキーパッチ(オープンクラス)ができるのはメリットではあるが、
通常はそんなことしないので、小さなメリットのために
大きなデメリットが発生してるんだよな。
最終手段を取るしか無いところだけ、unsafeとかマークを付けて対応すればよかった。
通常はそんなことしないので、小さなメリットのために
大きなデメリットが発生してるんだよな。
最終手段を取るしか無いところだけ、unsafeとかマークを付けて対応すればよかった。
604デフォルトの名無しさん (ワッチョイ 75e7-27IP)
2019/08/07(水) 18:14:09.58ID:K4IThe5f0 >>596
>Pythonの方が全然完成度高い
当然の感想だよ
そもそも静的型付けは大きく以下の2つに分類される
・明示的(explicit)な型付け
・暗黙的(implicit)な型付け
前者の明示的型付けはプログラマが型定義を手書きすることを前提としており、
Fortran/Cobolといった1950年代の太古の時代から培われてきた「枯れた技術」である
Python の型アノーテーションも明示的型付けに分類される
従って、完成度が高いのも当然、できて当たり前と言える
後者の暗黙的型付けは堅牢な型システムを前提とし、処理系が「型推論」と呼ばれる技術により
コードから型定義を自動的に決定するものであり、1980年代にMLで開発され、近年、明示的型付けを
主としながら部分的に暗黙性を取り込む次世代言語が次々に登場するなど、急速に普及が進みつつある
MatzがRubyKaigi 2019で語った:
https://logmi.jp/tech/articles/321280
「最近は静的型がすごくホットで、2010年代のプログラミング言語はみんな静的型言語で、…」
というホットな静的型言語も、後者の暗黙的型付けを指す
同時にMatzが語った:
「もう、われわれもやろうか。PHPもPythonもやってるし」って言うんだけど、正直やりたくない……。」
の「やりたくない」のは前者の(プログラマが型定義を手書きしなければ型検査が働かない)明示的型付けを指す
つまり意訳すると:
Rubyでも明示的型付けをやろうと思えばいつでもできるけど、今さら時代に逆行したできて当たり前の事を
やるなんてつまんない、それより今まで誰もやったこともない血が湧き立つような挑戦をしてみたい、
それがRubyらしさだよ
そして、この後、「動的型付け言語であるRubyにおける暗黙的な静的型付けの導入方針」として、
(型推論の代用である)「型プロファイラ」と呼ぶ新技術の紹介が続くわけだ
>Pythonの方が全然完成度高い
当然の感想だよ
そもそも静的型付けは大きく以下の2つに分類される
・明示的(explicit)な型付け
・暗黙的(implicit)な型付け
前者の明示的型付けはプログラマが型定義を手書きすることを前提としており、
Fortran/Cobolといった1950年代の太古の時代から培われてきた「枯れた技術」である
Python の型アノーテーションも明示的型付けに分類される
従って、完成度が高いのも当然、できて当たり前と言える
後者の暗黙的型付けは堅牢な型システムを前提とし、処理系が「型推論」と呼ばれる技術により
コードから型定義を自動的に決定するものであり、1980年代にMLで開発され、近年、明示的型付けを
主としながら部分的に暗黙性を取り込む次世代言語が次々に登場するなど、急速に普及が進みつつある
MatzがRubyKaigi 2019で語った:
https://logmi.jp/tech/articles/321280
「最近は静的型がすごくホットで、2010年代のプログラミング言語はみんな静的型言語で、…」
というホットな静的型言語も、後者の暗黙的型付けを指す
同時にMatzが語った:
「もう、われわれもやろうか。PHPもPythonもやってるし」って言うんだけど、正直やりたくない……。」
の「やりたくない」のは前者の(プログラマが型定義を手書きしなければ型検査が働かない)明示的型付けを指す
つまり意訳すると:
Rubyでも明示的型付けをやろうと思えばいつでもできるけど、今さら時代に逆行したできて当たり前の事を
やるなんてつまんない、それより今まで誰もやったこともない血が湧き立つような挑戦をしてみたい、
それがRubyらしさだよ
そして、この後、「動的型付け言語であるRubyにおける暗黙的な静的型付けの導入方針」として、
(型推論の代用である)「型プロファイラ」と呼ぶ新技術の紹介が続くわけだ
605デフォルトの名無しさん (ワッチョイ 1514-F0Sa)
2019/08/07(水) 18:42:31.98ID:WK8NJ3/V0 >>604
なにかごちゃごちゃ語ってるけど、
マッツが言った「やりたくない」は
面倒くさいって意味だよ。
血が湧き立つような挑戦なんてものを思いついていたら
それを理由にするだろ。そんなもんないからさw
なにかごちゃごちゃ語ってるけど、
マッツが言った「やりたくない」は
面倒くさいって意味だよ。
血が湧き立つような挑戦なんてものを思いついていたら
それを理由にするだろ。そんなもんないからさw
606デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/07(水) 19:39:46.36ID:Bpu04+pE0 そら掛け違えたボタンの一番上を締めるのは
血が逆流するほど苦しくて沸き立つだろうな
こんなもんは北朝鮮とか共産党とかの言ってる理想みたいなもので
最初に掛け違えてるからそういう夢を見なきゃいけない羽目になってるだけで
大人になったらさらっと流さなきゃね
血が逆流するほど苦しくて沸き立つだろうな
こんなもんは北朝鮮とか共産党とかの言ってる理想みたいなもので
最初に掛け違えてるからそういう夢を見なきゃいけない羽目になってるだけで
大人になったらさらっと流さなきゃね
607デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/07(水) 19:40:25.87ID:Bpu04+pE0 マルクスとかに感化されて
血が沸き立つような挑戦
って言ってるようなものなんよ
血が沸き立つような挑戦
って言ってるようなものなんよ
608デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
2019/08/07(水) 20:15:49.09ID:Bpu04+pE0 他は学生運動とかかな>血が湧き立つような
俺は世代じゃないからよく知らんけど、映像見る限り、かなり湧き立ってるな
後単に、「血が湧き立つようなっ」て表現面白い(こわッ
まぁそういうのはあるよ
最初を掛け違えたため人生台無しになるっていう
大概の人はどこかで気づいて掛け直すから大事には至らないけど
物事を考える最初の起点が一つズレて、以降思考が全部ズレる
ゴールにたどり着けないもんだから、ゴールのさらに先へ行こうと夢見る
そうやってたぶらかす
共産党みたいな輩
根本の問題だからなぁ
悪人は悪人にしかなれないってわけじゃないけど
気づけなきゃ悪人のまま終わるよね
俺は世代じゃないからよく知らんけど、映像見る限り、かなり湧き立ってるな
後単に、「血が湧き立つようなっ」て表現面白い(こわッ
まぁそういうのはあるよ
最初を掛け違えたため人生台無しになるっていう
大概の人はどこかで気づいて掛け直すから大事には至らないけど
物事を考える最初の起点が一つズレて、以降思考が全部ズレる
ゴールにたどり着けないもんだから、ゴールのさらに先へ行こうと夢見る
そうやってたぶらかす
共産党みたいな輩
根本の問題だからなぁ
悪人は悪人にしかなれないってわけじゃないけど
気づけなきゃ悪人のまま終わるよね
609デフォルトの名無しさん (オッペケ Sr75-nMBr)
2019/08/08(木) 10:01:50.60ID:Q6oNbeovr すげえ馬鹿な質問するけど
x = [nil, "hoge", 42, 3.14].sample
みたいなのがあった時って型推論ってどうなるの?
x = [nil, "hoge", 42, 3.14].sample
みたいなのがあった時って型推論ってどうなるの?
610デフォルトの名無しさん (ワッチョイ 5aa5-khYc)
2019/08/08(木) 10:56:04.30ID:llWdm4EH0 rubyに限らずスクリプト系はlispが基準だろ
だからリストにはなんでも入れれる
だからリストにはなんでも入れれる
611デフォルトの名無しさん (ワッチョイ da9c-2q8l)
2019/08/08(木) 12:56:56.32ID:ZETliJY00 >>609
理想としてはArray<nil|String|Integer|Float>みたいな感じかね
理想としてはArray<nil|String|Integer|Float>みたいな感じかね
612デフォルトの名無しさん (オイコラミネオ MMad-dTqv)
2019/08/08(木) 15:33:58.94ID:foei6BswM C#的にはエラー(推論不可)だな。
それでいいと思う。
それでいいと思う。
613デフォルトの名無しさん (アウアウカー Sa4d-2q8l)
2019/08/08(木) 21:48:40.95ID:AsNa+aKpa TypeScriptは型システムの表現が凄すぎて
大抵の言語に型付けできそう
パクればRubyにも型付けできるんじゃね
大抵の言語に型付けできそう
パクればRubyにも型付けできるんじゃね
614デフォルトの名無しさん (ワッチョイ da2c-8lAC)
2019/08/08(木) 22:17:23.13ID:/tBUMiMq0 Haxe では、Array<Dynamic> で、何の型でも入る、配列を定義できる
これは型推論しないから、できる限り避けるべき!
これは、設計ミスかも知れない
これは型推論しないから、できる限り避けるべき!
これは、設計ミスかも知れない
615デフォルトの名無しさん (ワッチョイ 2ecb-l5Zy)
2019/08/11(日) 09:42:24.48ID:w8BJYpRO0 typescript なら [ null, string, number, ‘foo’ | ‘bar’, 1 | 2 ]
のように定義できるしね
のように定義できるしね
616デフォルトの名無しさん (ワッチョイ ee7c-aqzO)
2019/08/12(月) 10:28:41.63ID:q+3SbcDd0 そうやって夢を見ておけばいい
その方が落胆が大きくなるだろうから
その方が落胆が大きくなるだろうから
617デフォルトの名無しさん (ワッチョイ da9c-2q8l)
2019/08/12(月) 21:41:57.67ID:gUUEF29U0 とにかくTSからパクれるものは全部パクった方がいいと思うんだが
JSに無理やり型付けするために生み出されたキメラなのだから
参考になる部分だらけなはず
JSに無理やり型付けするために生み出されたキメラなのだから
参考になる部分だらけなはず
618デフォルトの名無しさん (ワッチョイ ee7c-aqzO)
2019/08/12(月) 22:34:28.71ID:q+3SbcDd0 全然違う方向へ向かってるから無理
619デフォルトの名無しさん (アウウィフ FF39-FHwm)
2019/08/13(火) 09:14:00.33ID:oXPAD0KHF TSで書いてRuby吐くコンパイラω
620デフォルトの名無しさん (ドコグロ MM63-h434)
2019/08/17(土) 14:16:33.22ID:bpQgx2FJM621デフォルトの名無しさん (ワッチョイ 1373-dCD9)
2019/08/17(土) 16:35:39.55ID:zExljCul0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【朗報】日銀植田総裁「高市さんからの要望は特になかった」 [519511584]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 高市早苗政権「経済的威圧をしてくる国はリスク」 トランプぴょんぴょん政権さん…… [175344491]
