プログラミング言語 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:84E3pYZa0554デフォルトの名無しさん (ワッチョイ 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:zExljCul0622デフォルトの名無しさん (ドコグロ MM63-h434)
2019/08/17(土) 16:44:03.64ID:bpQgx2FJM >>621
だから構文の話をしてるんだろ
だから構文の話をしてるんだろ
623デフォルトの名無しさん (ワッチョイ 7be9-SXVW)
2019/08/17(土) 16:58:40.60ID:iudotV170 jsは構文でもJavaと似ても似つかないぞ
624デフォルトの名無しさん (ドコグロ MM63-h434)
2019/08/17(土) 17:04:14.21ID:bpQgx2FJM 惜しい
jsですら似ても似つかないなら、Rubyだったらどうなのか考えてみよう
基準はあくまでRubyであることを忘れないようにしましょう
jsですら似ても似つかないなら、Rubyだったらどうなのか考えてみよう
基準はあくまでRubyであることを忘れないようにしましょう
625デフォルトの名無しさん (ワッチョイ 7be9-SXVW)
2019/08/17(土) 17:16:36.20ID:iudotV170 話を逸らすのはチョン國人の手口
626デフォルトの名無しさん (ワッチョイ 1373-dCD9)
2019/08/17(土) 19:31:09.99ID:zExljCul0627デフォルトの名無しさん (ワッチョイ b99e-O2DT)
2019/08/17(土) 19:37:00.00ID:r+LO0zEM0628デフォルトの名無しさん (ワッチョイ 0b68-SmAy)
2019/08/17(土) 21:08:03.39ID:8EnS7QZU0629デフォルトの名無しさん (ワッチョイ 2914-2ejv)
2019/08/17(土) 22:01:43.78ID:g4f/iCif0 JavaScriptのクラス定義は、C++やJavaにそっくり
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Classes
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
// ゲッター
get area() {
return this.calcArea();
}
// メソッド
calcArea() {
return this.height * this.width;
}
}
const square = new Rectangle(10, 10);
console.log(square.area); // 100
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Classes
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
// ゲッター
get area() {
return this.calcArea();
}
// メソッド
calcArea() {
return this.height * this.width;
}
}
const square = new Rectangle(10, 10);
console.log(square.area); // 100
630デフォルトの名無しさん (ワッチョイ 2914-2ejv)
2019/08/17(土) 22:03:16.05ID:g4f/iCif0 プライベートフィールドはちょっと変わってる。
class Rectangle {
#height = 0;
#width;
static #depth = 1;
constructor(height, width) {
this.#height = height;
this.#width = width;
}
volume(){
return this.#height * this.#width * Rectangle.#depth;
}
}
class Rectangle {
#height = 0;
#width;
static #depth = 1;
constructor(height, width) {
this.#height = height;
this.#width = width;
}
volume(){
return this.#height * this.#width * Rectangle.#depth;
}
}
631デフォルトの名無しさん (ワッチョイ 2914-2ejv)
2019/08/17(土) 22:03:58.27ID:g4f/iCif0 JavaScriptの継承もC++やJavaとそっくり
class Dog extends Animal {
constructor(name) {
super(name); // 親クラスのコンストラクタを呼び出し、name パラメータを渡す
}
speak() {
console.log(`${this.name} barks.`);
}
}
class Dog extends Animal {
constructor(name) {
super(name); // 親クラスのコンストラクタを呼び出し、name パラメータを渡す
}
speak() {
console.log(`${this.name} barks.`);
}
}
632デフォルトの名無しさん (ワッチョイ 132c-BF++)
2019/08/17(土) 23:51:47.98ID:fYRni8gj0 Node.js は、Ruby のコピー。
npm, yarn も、Bundler のコピー
CakePHP は、Rails のコピー
npm, yarn も、Bundler のコピー
CakePHP は、Rails のコピー
633デフォルトの名無しさん (ワッチョイ 2914-2ejv)
2019/08/18(日) 00:59:22.65ID:KK6bG3/n0 > Node.js は、Ruby のコピー。
間違い。Node.jsは言語ではなく実行環境(≒ライブラリを提供してる)
Rubyという言語をコピーするわけないじゃないですか(笑)
ツールやフレームワークに価値はあって、そっちはコピーしたとしても
Rubyという言語にコピーする価値はないですからねw
間違い。Node.jsは言語ではなく実行環境(≒ライブラリを提供してる)
Rubyという言語をコピーするわけないじゃないですか(笑)
ツールやフレームワークに価値はあって、そっちはコピーしたとしても
Rubyという言語にコピーする価値はないですからねw
634デフォルトの名無しさん (ワッチョイ 0b68-SmAy)
2019/08/18(日) 01:51:43.24ID:DCFRUhnv0 >>629
つい最近そうできるようになっただけやけどな。w
つい最近そうできるようになっただけやけどな。w
635デフォルトの名無しさん (ワッチョイ 2914-2ejv)
2019/08/18(日) 01:59:35.72ID:KK6bG3/n0636デフォルトの名無しさん (ワッチョイ 13a5-vqjO)
2019/08/18(日) 03:22:24.68ID:1l6Jlwy20 元から似せて作ってないって話でしょ
637632 (ワッチョイ 132c-BF++)
2019/08/18(日) 08:06:58.21ID:26pp6bRY0 Node.js は、Ruby 実装系のコピーだろ。
npm, yarn も、Bundler そっくり!
npm, yarn のlockfile とか、Bundler のlockfileと同じ
Ruby, Node.js も、サーバー側プログラミング
npm, yarn も、Bundler そっくり!
npm, yarn のlockfile とか、Bundler のlockfileと同じ
Ruby, Node.js も、サーバー側プログラミング
638デフォルトの名無しさん (ワッチョイ 2914-2ejv)
2019/08/18(日) 08:22:32.26ID:KK6bG3/n0 > Node.js は、Ruby 実装系のコピーだろ。
全く違う。似てるところが一つもないと言っていいレベル
つーか、Rubyにぱくれるところなんてなにもない
全く違う。似てるところが一つもないと言っていいレベル
つーか、Rubyにぱくれるところなんてなにもない
639デフォルトの名無しさん (ワッチョイ 7b3b-oOLq)
2019/08/18(日) 09:44:57.54ID:vcjALM940 ちょっとこの信者なんとかしてくれない?
スキルセットがRubyしか無いから、何が何でもRubyのコピーだと言い張ってて鬱陶しいんだけど。
スキルセットがRubyしか無いから、何が何でもRubyのコピーだと言い張ってて鬱陶しいんだけど。
640デフォルトの名無しさん (ワッチョイ 7a2c-3Uq+)
2019/08/22(木) 23:17:51.79ID:bojKrn/j0 WEB+DB vol.111 は、Ruby on Rails 6, Julia 特集だけど、
Python から、Julia へ流れそう
Julia は、do 〜 end が使えて、Ruby風に改良されてる!
Jupyter Notebook(JN)でも使える
Windows で、RubyをJNで使っている人は、日本語でバグらないの?
irb では、バグるけど
RubyをVSCode で使っているけど、JNでも日本語でバグらないかどうか、知りたい
Python から、Julia へ流れそう
Julia は、do 〜 end が使えて、Ruby風に改良されてる!
Jupyter Notebook(JN)でも使える
Windows で、RubyをJNで使っている人は、日本語でバグらないの?
irb では、バグるけど
RubyをVSCode で使っているけど、JNでも日本語でバグらないかどうか、知りたい
641デフォルトの名無しさん (ワッチョイ f57f-7nd5)
2019/08/23(金) 01:33:05.16ID:ypvGItf/0 ocraやgolangのgo buildみたいにRubyスクリプトとその要求ファイルを
単一の実行ファイルに固める仕掛けのLinux/FreeBSD向けってありませんか?
利用側でのセットアップを簡単にするために探しています
単一の実行ファイルに固める仕掛けのLinux/FreeBSD向けってありませんか?
利用側でのセットアップを簡単にするために探しています
642デフォルトの名無しさん (ワッチョイ 7a2c-3Uq+)
2019/08/23(金) 02:21:20.94ID:FLxS3jQ80 Bundler は?
Node.js のnpm, yarn と同様の、パッケージマネージャー
Node.js のnpm, yarn と同様の、パッケージマネージャー
643デフォルトの名無しさん (ワッチョイ 7a73-P0k6)
2019/08/23(金) 07:21:08.15ID:wNECBEc60 Bundler というより、gem だね
gem を作れば1ファイルにできる
gem を作れば1ファイルにできる
644デフォルトの名無しさん (ワッチョイ 1597-oRVe)
2019/08/25(日) 21:34:28.24ID:qjFyDFHg0 >>640
JuliaとPythonじゃ目指してる方向が違うから、PythonがまるまるJuliaに移行するということはないよ。
numpyでゴリゴリ計算してるようなものはJuliaに移行するだろうけど、
Cなどで書かれた外部ライブラリを呼び出しまくっているようなものが移行するとは思えない。
JuliaとPythonじゃ目指してる方向が違うから、PythonがまるまるJuliaに移行するということはないよ。
numpyでゴリゴリ計算してるようなものはJuliaに移行するだろうけど、
Cなどで書かれた外部ライブラリを呼び出しまくっているようなものが移行するとは思えない。
645デフォルトの名無しさん (ワッチョイ 1668-HFEL)
2019/08/25(日) 22:57:02.68ID:EoRiUKjV0 結局、Perl5はシステム、RubyはWebバックエンド、Pythonは機械学習と、確立した用途で落ち着いてしまいそうだよなあ。
646デフォルトの名無しさん (ワッチョイ 1aff-fOxg)
2019/08/25(日) 23:37:44.87ID:5Gyozg9W0 Rubyは良く出来た言語だが、困るのはバイナリ処理したいとき
バイナリを扱うことはできるらしいが、かなり面倒そうで結局やらない
rubyにCのインタプリタを内蔵してはどうなのだろう
AIなど一挙に使える範囲が広がる
バイナリを扱うことはできるらしいが、かなり面倒そうで結局やらない
rubyにCのインタプリタを内蔵してはどうなのだろう
AIなど一挙に使える範囲が広がる
647デフォルトの名無しさん (ワッチョイ 0e93-zLXz)
2019/08/26(月) 00:06:00.18ID:VlVyQYXI0 もうCでよくない?
648デフォルトの名無しさん (ワッチョイ 1aff-fOxg)
2019/08/26(月) 00:08:19.86ID:1cV4t1GF0 でもたいていのところではrubの方がでいいわけですし
649デフォルトの名無しさん (ワッチョイ 1668-HFEL)
2019/08/26(月) 03:42:42.45ID:6n+O+75B0650デフォルトの名無しさん (ワッチョイ 2514-8k/K)
2019/08/26(月) 03:47:15.63ID:rnlkvQrj0 バイナリはバイナリのまま処理すればいいと思うんだが、
なんでいちいちpack/unpackなんかするんだ?
なんでいちいちpack/unpackなんかするんだ?
651デフォルトの名無しさん (ワッチョイ faa5-0PH2)
2019/08/26(月) 10:06:15.99ID:rKfqBH6Q0 perlからの流れであり深い意味は無い
それが好ましいと言う奴だけがrubyを使ってる
だから宗教だ
「わたくしはそれを気にいっている」宗教ではコレ以外の理由は必要無い
それが好ましいと言う奴だけがrubyを使ってる
だから宗教だ
「わたくしはそれを気にいっている」宗教ではコレ以外の理由は必要無い
652デフォルトの名無しさん (オイコラミネオ MMbd-HFEL)
2019/08/26(月) 13:12:19.64ID:WoXCTlJRM >>650
スクリプト言語は原則として、メモリに直接アクセスするようにはできていない。
念のために言っておくと、C/C++のキャストと比較しているのならそもそも大間違い。
また、あれはあれで問題だらけ。
スクリプト言語は原則として、メモリに直接アクセスするようにはできていない。
念のために言っておくと、C/C++のキャストと比較しているのならそもそも大間違い。
また、あれはあれで問題だらけ。
653デフォルトの名無しさん (ワッチョイ ce7c-7nd5)
2019/08/26(月) 13:36:12.79ID:bJVhcqWX0 例えば?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 日本損失1.7兆円に修正 中国渡航自粛の影響試算 [蚤の市★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- でもこんなに高市がやらかしても中東みたいにミサイル飛んできたりしないから東アジアってクッソ平和だよなwwwwwwwwwwwwwwww [271912485]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
- ほかほかご飯にかけるとうまいもの一覧
- 🏡
- 「これが完成された醜い姿である>>1」←これなに?
