- Rubyについて(アンチ専用) Part005
240 :デフォルトの名無しさん[sage]:2020/10/18(日) 00:14:51.55 ID:dOGGkbZr - Rubyはバグりやすい言語だよ。
・型安全でない ・前後の文脈を見ないとその部分単体ではローカル変数とメソッド呼び出しの見分けがつかない書き方ができ、しかもその書き方(メソッド呼び出しに()付けない)のほうが主流 ・reduce/inject、map/collectのように同じことするメソッドの単なる別名と、Array#delete_if/Array#reject!のようにほとんど同じなくせして削除失敗時だけ挙動が異なるみたいなべつものメソッドが入り乱れててカオス ・Procオブジェクト(手続きオブジェクト)を作る方法が多すぎ。しかも作り方で挙動が異なる。Rubyの書籍を書いた人でさえ頭を抱える始末 ・簡単に「見せかける」ために省略記法を行き当たりばったりで導入しまくった副作用で、直感的な記述が逆にエラーとなることが多い(例: p {foo: 1, bar: 2}はエラーwブロックとして解釈されるため) まだまだあるよ
| - Rubyについて(アンチ専用) Part005
241 :デフォルトの名無しさん[sage]:2020/10/18(日) 00:16:28.10 ID:dOGGkbZr - Rubyは最も一般的な方法で定義した関数(関数じゃないw)が値として取り回せない(第一級関数でない)クソ言語wwwww
def add(a, b) a + b end def opTwo(a, b, func) func(a, b) end p opTwo(1, 2, add) => Line 9:in `add': wrong number of arguments (0 for 2) (ArgumentError) from t.rb:9 プギャーm9(^Д^ ) ちなみにPython: def add(a, b): return a + b def opTwo(a, b, func): return func(a, b) print(opTwo(1, 2, add)) => 3 ちなみにJavascript: function add(a, b) { return a + b; } function opTwo(a, b, func) { return func(a, b); } console.log(opTwo(1, 2, add)) => 3
| - Rubyについて(アンチ専用) Part005
242 :デフォルトの名無しさん[sage]:2020/10/18(日) 00:20:52.55 ID:dOGGkbZr - でもまあRubyのどこが、なぜダメかってのをよく整理しながら考えることはそれはそれで勉強にはなるな。
何年か前の記事だが大変分かりやすい。 日本誤訳 https://postd.cc/sick-of-ruby-dynamic-typing-side-effects-object-oriented-programming/ 英語原文 https://blog.abevoelker.com/sick-of-ruby-dynamic-typing-side-effects-object-oriented-programming/
| - Rubyについて(アンチ専用) Part005
248 :デフォルトの名無しさん[sage]:2020/10/18(日) 00:42:04.28 ID:dOGGkbZr - rubyの可読性は高くない。
pythonの「書きにくく読みやすい」と比較して「書きやすく読みにくい」と言われる。 そうなってしまう理由はたくさんあるが、ひとつのことをするのにやり方がたくさんあるというperlとかいう糞言語の信条をそのままパクってしまってることがひとつ。 またよくも悪くも設計が完全なオブジェクト指向にこだわっており、 javascriptなら関数ひとつで実現できることがblock、proc、lambdaと酷い有り様になっている。defで簡単に定義できまーすとかまさに初心者騙しもいいとこ。 また、流行り機能の無節操な取り込みが酷い。記号が足りなくなり、例えばオプショナルチェーンは他言語が?.のところrubyでは&.である。phpで文字列結合が"foo"+"bar"ではなく"foo"."bar"であるようなキモさ。 あとpythonと比べ多分野の優れたライブラリがない。あってもメンテされてない。作ってるやつが実用主義ではなく趣味だから。rubyでもできる!って言いたいだけ。よくも悪くもweb分野、しかもrails使うというやつ以外にはおすすめしない。 事実上rails専用言語。railsのDSLとして以外に存在価値はない。 初心者に勧めるなんてとんでもない。
|
|