Rubyについて(アンチ専用) Part005 (342レス)
1-

200
(1): 2020/04/06(月)00:49 ID:UGXjqJtL(1) AAS
特定の独裁者が仕切る開発はもう時代にあってないよね
言語の与える影響があまりに大きくなりすぎた
201
(1): 2020/04/06(月)02:54 ID:qqlpdYMz(2/2) AAS
そう言えば、GuidoとかRMSは生前退位したんだっけ
202: 2020/04/06(月)19:57 ID:lqJgR+VC(1/2) AAS
>>200
独裁は必要。
でないと、決めればいいところが決まらん。
203
(2): 2020/04/06(月)19:58 ID:lqJgR+VC(2/2) AAS
>>201
RMSは自主的だっけ?w
204: 2020/04/06(月)20:19 ID:Cbp9XIJ2(1) AAS
>>203
解任はされてないな
205
(1): 2020/04/08(水)00:43 ID:X5vOHYGK(1/2) AAS
いつかLinusもしんどくなって生前退位する日が来るのだろうか
206: 2020/04/08(水)00:48 ID:X5vOHYGK(2/2) AAS
>>203
FSFの前に、Emacsは先に人に任せてなかったけ。あれもなんで降りたのかは忘れたけど
207
(1): 2020/04/08(水)02:31 ID:xtDs1sbk(1) AAS
>>205
何年か前に、暴言きっかけかなんかで、しばらく休んでたやん?
来るべき引退に向けての予行演習でもあったんでは。
208: 2020/04/08(水)02:41 ID:8EkDixDm(1) AAS
暴言復活したよ
209: 2020/04/08(水)12:34 ID:lWfV0IAd(1) AAS
RMSもし糖尿だったらコロチャンから守ってやれよ
210: 2020/04/09(木)00:24 ID:V4nj16/7(1) AAS
>>207
あー、あったなあ…たしかに意図したかどうか予行演習になったなあ
211
(1): 2020/04/11(土)09:39 ID:blHAWxBh(1) AAS
右代入が酷い
俺の記憶が正しければ
末尾に追記することで変数への代入ができるのが右代入だったよな

1+2=>x がエラーになるんだがコレ何の意味があるんだ?

>>196
taintのこと?
212: おい!小池!!! 2020/04/11(土)12:29 ID:YESHHzyk(1) AAS
花よりコロナ
外部リンク[html]:matz.rubyist.net
213: 2020/04/11(土)18:52 ID:Z+CRFteF(1) AAS
>>211
Rubyの構文解析器の気持ちになればわかるよ!
君のコンピュータに近づこう
コンピュータはルール通りのことを間違いなくやる
そのルールに人間が合わせればいいんだよ!
214: 2020/04/19(日)20:37 ID:38rg7boC(1) AAS
名前のタイプミスを狙った悪質なパッケージがRubyGemsで多数公開される
外部リンク:security.srad.jp
215
(1): 2020/06/21(日)18:35 ID:46NGSGFN(1) AAS
Ruby の使い過ぎで凋落なのかな?

2020.06.08 06:10
クックパッドの凋落、利用者1千万人減で赤字転落…人気のクラシルと真逆の方向
外部リンク[html]:biz-journal.jp
216: 2020/10/14(水)10:25 ID:5w+mUOps(1) AAS
まつもとゆきひろのツイッターを見てRuby使うのをやめようと思った
外部リンク:anond.hatelabo.jp
217: 2020/10/14(水)11:16 ID:GsUUoEHv(1) AAS
正解
気付くの遅い
218: 2020/10/14(水)11:24 ID:eKBY9SEr(1) AAS
坊主憎けりゃ袈裟までで中身は無いな
これに関係なくRubyはオワコンコースだと思ってるけどな
219
(1): 2020/10/14(水)13:24 ID:rQGDkRcC(1) AAS
作者のふるまいを気にするなら、Linuxもダメだな。
Linusは暴言家だからな。

Guidoもなんかなかったっけ?
Larryはいい人そうだ。

なお、ワイもMatzはキライ。
昔、C++とPerlに言いがかりをつけていたことは忘れん。
220: 2020/10/14(水)13:49 ID:OK1/udlE(1) AAS
Windows も dis ってたよ
漏れも Windows 嫌いだから良いけど
221: 2020/10/14(水)14:58 ID:c3J9iMWN(1) AAS
>>219
Linus反省したじゃん。
222: 2020/10/14(水)15:12 ID:4AmK2QjE(1) AAS
採用や仕事でRubyは嫌いだ使いたくないという人がいて
技術的理由説明しないで作者の政治思想が
嫌いだからとか言い出したら帰ってもらうのは
間違いない
223
(1): 2020/10/14(水)16:17 ID:z5Uy/Vd3(1) AAS
キリスト教の事を言い出したら、米国人は皆、キチガイじゃん

誰も進化論を信じていない。
人間は元から、猿じゃなかった。人間の姿のままだった

地動説も信じているかどうか、怪しい

中絶・同性婚を認めてはならない
224: 2020/10/14(水)20:36 ID:QEXq7zvm(1) AAS
結局PythonとJavaScriptの二強になってしまったな
次点でGoか
この3つの流行に食い込むのはもう無理そう
225: 2020/10/15(木)20:07 ID:ODWTBHyE(1) AAS
Ruby3の型ヒント実装あんなのエコシステムとして成立するのか?
226
(3): 2020/10/17(土)13:59 ID:cX3MrjsP(1/3) AAS
ローカル変数がちゃんと使いたいので、
Rubyからnode.jsに乗り換えようと努力している最中だったが、
node.jsはファイル関連が分かりにくい。
Rubyだとstdoutとファイルが対象になっていて、
print を fp.print に変えてやれば、ほぼそっくりそのまま動作してしまうが、
node.jsだと複雑そうだ。
あと、ファイル操作が基本的に非同期推奨なのも辛いし、非同期と同期の二系統あるので混乱が生じ易い。
省4
227: 2020/10/17(土)14:00 ID:cX3MrjsP(2/3) AAS
>>226
誤: Rubyだとstdoutとファイルが対象になっていて、
正: Rubyだとstdoutとファイルが対称になっていて、
228: 2020/10/17(土)14:32 ID:8P0N3Qw4(1/2) AAS
>>226
その辺がサーバーサイドでは使いにくい理由だよね
従来のシステムコールとはかけ離れてる
ファイルを非同期で読み取りたいケースなんてほとんどないし
229
(2): 2020/10/17(土)16:11 ID:cX3MrjsP(3/3) AAS
あともう一つ、Ruby だと list の要素に対する繰り返しは以下の様に簡潔に書ける。
for elem in list do
 elem に対する処理;
end
しかし、Node.js だと、
list.forEach( function(elem) {
 elem に対する処理; 
省6
230: 2020/10/17(土)16:25 ID:0qFIP5N2(1) AAS
list.each{elem| elemに対する処理}

似たようなもんやで
231
(2): 2020/10/17(土)16:35 ID:8mYxeAbP(1) AAS
>>226
streamが標準出力にもファイルにも使えるでしょ。
consoleオブジェクトに出力してる事自体がイレギュラーかと。

async awaitを使えば、thenは必要ないと思うが、混同してないか?
Promise.allでコピー処理を待てば、複数ファイルでもたいしてかわらんかと。

>>229
for(let elem of list)で充足できない理由は?
232
(1): 2020/10/17(土)16:38 ID:vimxgZ9f(1) AAS
for elem in list do
 elem に対する処理;
end
が簡潔で、
list.forEach(elem => {elem に対する処理;});

for (let elem of list) {
省4
233
(1): 2020/10/17(土)16:55 ID:4Rsat8LS(1) AAS
Rubyでforループ使うか普通?
特殊なポリシー持ってるか全然使ってないのでは
234
(3): 2020/10/17(土)23:07 ID:3hrMdhxe(1) AAS
>>232
ほんの些細な違いだろうという指摘は理解したいけど、楽しく書ける(= 思考を妨げない)ことをポリシーとしている
Ruby に慣れ親しんでいると、そんなことも気になってしまうんだよなぁ
 xs.each { |x|  # スコープを作る(関数型スタイル)
    x に対する処理
  }
または
省20
235
(1): 2020/10/17(土)23:31 ID:8P0N3Qw4(2/2) AAS
>>234
あとfor inをプロトタイプ汚染されたオブジェクトに対して回すと恐ろしいことが起きるから基本的に非推奨だよ
書き方多過ぎるしアロー関数のthisの違いなど
もはや罠が多過ぎて初心者に勧められる言語ではないと思う
236
(1): 2020/10/17(土)23:35 ID:cI54o2aO(1) AAS
好き好きとしか。
個人的には、C#とかC++(最近版)とかの論理的整合性のほうがはるかに。

Rubyも、えらそうなわりに、細かいところでいいかげんなところがちょくちょくあるんだよなあ。
えらそうでなければあまり気にならなかったのにな。
237: 2020/10/17(土)23:57 ID:vNzukYIq(1) AAS
そういう文法の癖をあげつらう方向なら
Rubyも出てくると思うぞ
238: 2020/10/18(日)00:04 ID:xWXtsYNK(1/2) AAS
>>234
> 一見関数型に見えるが、

どこが?また半可通か。forで関数型とかあり得ないだろマヌケ。知らないなら黙ってろよww
239: 2020/10/18(日)00:06 ID:4X85KByZ(1/3) AAS
AA省
240
(1): 2020/10/18(日)00:14 ID:dOGGkbZr(1/4) AAS
Rubyはバグりやすい言語だよ。
・型安全でない
・前後の文脈を見ないとその部分単体ではローカル変数とメソッド呼び出しの見分けがつかない書き方ができ、しかもその書き方(メソッド呼び出しに()付けない)のほうが主流
・reduce/inject、map/collectのように同じことするメソッドの単なる別名と、Array#delete_if/Array#reject!のようにほとんど同じなくせして削除失敗時だけ挙動が異なるみたいなべつものメソッドが入り乱れててカオス
・Procオブジェクト(手続きオブジェクト)を作る方法が多すぎ。しかも作り方で挙動が異なる。Rubyの書籍を書いた人でさえ頭を抱える始末
・簡単に「見せかける」ために省略記法を行き当たりばったりで導入しまくった副作用で、直感的な記述が逆にエラーとなることが多い(例: p {foo: 1, bar: 2}はエラーwブロックとして解釈されるため)

まだまだあるよ
241
(1): 2020/10/18(日)00:16 ID:dOGGkbZr(2/4) AAS
Rubyは最も一般的な方法で定義した関数(関数じゃないw)が値として取り回せない(第一級関数でない)クソ言語wwwww
def add(a, b)
a + b
end
def opTwo(a, b, func)
func(a, b)
end
省20
242: 2020/10/18(日)00:20 ID:dOGGkbZr(3/4) AAS
でもまあRubyのどこが、なぜダメかってのをよく整理しながら考えることはそれはそれで勉強にはなるな。

何年か前の記事だが大変分かりやすい。
日本誤訳
外部リンク:postd.cc
英語原文
外部リンク:blog.abevoelker.com
243: 2020/10/18(日)00:21 ID:2DM4LMSp(1/4) AAS
>>241
まあそこは言語の特徴だから
そういう用途にはブロックを使えってこと
関数呼び出しに()が必要じゃないのはDSLを書くためには優れた仕様
他の言語で言語内DSLは実質不可能
244: 2020/10/18(日)00:28 ID:Xfoy2gzb(1/3) AAS
明らかに他の言語どころかRubyの理解も
怪しいのがわかる
245: 2020/10/18(日)00:28 ID:oU6L/1KQ(1) AAS
大学生起業家が設立1年で20億円調達! 単発バイトアプリに外食企業など出資【タイミー】
外部リンク:foodfun.jp
誰でもカンタンにオンラインサロン・情報配信ができる便利アプリ【TOUKU(トーク)】が登場
外部リンク[html]:prtimes.jp
中学時代の車いす生活から、17歳で起業するまで
外部リンク:www.advertimes.com
ミャンマー発 AIダイニングアプリ「Yathar」をしかける日本人起業家
省9
246: 2020/10/18(日)00:32 ID:4X85KByZ(2/3) AAS
>>233
自分はすっかり関数型プログラミングに慣れてしまったので、近頃だと for/while 文を
使うのは、古い Pascal や Perl のコードを Ruby へ写経(移植?)する時くらいですかね

ちなみに Ruby のブロック構文ですが、副作用がなければ波カッコ { … } で、
副作用(破壊的代入やI/O処理)があれば do … end と使い分けています
以下は定石(パターン化した)コードの雛形(スケルトン)です

result = xs.select { |x|
省19
247: 2020/10/18(日)00:35 ID:xWXtsYNK(2/2) AAS
ブロックとProc.newとprocとlambdaと->があるRubyはやり過ぎ
248: 2020/10/18(日)00:42 ID:dOGGkbZr(4/4) AAS
rubyの可読性は高くない。
pythonの「書きにくく読みやすい」と比較して「書きやすく読みにくい」と言われる。
そうなってしまう理由はたくさんあるが、ひとつのことをするのにやり方がたくさんあるというperlとかいう糞言語の信条をそのままパクってしまってることがひとつ。

またよくも悪くも設計が完全なオブジェクト指向にこだわっており、
javascriptなら関数ひとつで実現できることがblock、proc、lambdaと酷い有り様になっている。defで簡単に定義できまーすとかまさに初心者騙しもいいとこ。

また、流行り機能の無節操な取り込みが酷い。記号が足りなくなり、例えばオプショナルチェーンは他言語が?.のところrubyでは&.である。phpで文字列結合が"foo"+"bar"ではなく"foo"."bar"であるようなキモさ。

あとpythonと比べ多分野の優れたライブラリがない。あってもメンテされてない。作ってるやつが実用主義ではなく趣味だから。rubyでもできる!って言いたいだけ。よくも悪くもweb分野、しかもrails使うというやつ以外にはおすすめしない。
省2
249
(1): 2020/10/18(日)00:57 ID:xeOKOt4d(1/11) AAS
>>231
>streamが標準出力にもファイルにも使えるでしょ。
どうやればいいの?
出来ないと思うけど。
250
(1): 2020/10/18(日)01:05 ID:xeOKOt4d(2/11) AAS
Rubyは簡単に出来るのに node.jsは単独でディレクトリのコピーすら出来ない。
行うためには、
1. copySync()を使うためにはfs-extraモジュールのインストールが必要だが
 npm install -g fs-extraででインストールしても環境変数NODE_PATHに
 パスが通ってないため最初は使えず混乱する。
 じぶんのためだけならいいが、作ったjsプログラムを初心者に使ってもらう
 のはこれだけでも不可能となり、一般人への自作プログラムの配布は絶望的となる。
省6
251: 2020/10/18(日)01:10 ID:cCnPRoH8(1/9) AAS
>>234
eachがどう関数型なのか知りたいんだが。
mapならわかるけど。
ただのイテレータだろ。

その中括弧要らないよ。なんか勘違いしてない?
252
(2): 2020/10/18(日)01:14 ID:cCnPRoH8(2/9) AAS
>>249
外部リンク:qiita.com
出来るし、普通はconsoleに出したりしない。

>>250
完全に知識不足。
253
(1): 2020/10/18(日)01:21 ID:xeOKOt4d(3/11) AAS
>>252
node.jsで、streamを使ってstdoutへの出力をする方法を具体的に書いてみてください。
なお、書き込む関数もファイルと全く同じ関数群が使えなくてはいけません。
254: 2020/10/18(日)01:24 ID:xeOKOt4d(4/11) AAS
>>252
どこの知識不足なのか具体的に書いてください。
Rubyは、ディレクトリコピー、sysytemや外部コマンドの実行でネット検索すれば
それぞれすぐに答えが出てきます。
node.jsは英語で検索しても埒の明かない答えばかりで、現実にはまともに
対応できてないものと思われます。
255
(1): 2020/10/18(日)01:35 ID:mPnoVdEN(1/3) AAS
リンク見たら普通にlsとpipeの例書いてあるやん
256: 2020/10/18(日)01:43 ID:xeOKOt4d(5/11) AAS
>>255
パイプではなく、自分のプログラム、例えば、Hello Worldのプログラムで
node.jsにおいてstreamを標準出力に書き込むための手段として使う方法を聞いています。
もちろん、元祖C言語ではFILE系のstreamはstdoutに当然対応していますが、
node.jsでは不明確です。
ファイルをオープンする際のファイル名に何かを指定すれば出来るかも知れませんが。
C言語のstdoutに相当するものがどこにあるのか不明です。
省1
257: 2020/10/18(日)01:55 ID:Xfoy2gzb(2/3) AAS
つーか何言いたいんだ?
お前のやりたいことが
直感的に言語XでRubyと同様にできないからと言って
だからどうしたという話なんだが
258: 2020/10/18(日)02:01 ID:2DM4LMSp(2/4) AAS
Rubyアンチスレがモダン言語アンチスレになってきたな
259
(1): 2020/10/18(日)02:03 ID:xeOKOt4d(6/11) AAS
process.stdout.fd が fd の int 整数の「1」になっていて、
これを fs.writeSync()の第一引数に渡せば標準出力に
出力できることが分かりました。
しかし、ドキュメントが不十分でめちゃくちゃ分かりにくいです。
Rubyのドキュメントは非常に分かり易いです。
260
(1): 2020/10/18(日)02:09 ID:xeOKOt4d(7/11) AAS
node.jsは、自慢で立派そうなnpmコマンドがあっても、NODE_PATHという
基本中の基本の環境変数すら設定されません。
これでfs-extraモジュールを追加インストールしなければ同期コピーすら出来ないのに。
同期的な外部コマンド実行も同様だと予想されます。
サーバーサイドの裏方として用いるならともかく、これをデスクトップマシンの
BATファイルの代わりやスクリプト言語として、一般人向けに配布することは
この段階で不可能となります。
省1
261: 2020/10/18(日)02:27 ID:4X85KByZ(3/3) AAS
>>240
>・型安全でない
型付けに関しては、話が長くなるからまた後で

>・前後の文脈を見ないとその部分単体ではローカル変数とメソッド呼び出しの見分けがつかない … (後略)
これは同意ですね、だから自分はメソッド呼び出しであれば self.hoge みたいに self を省略せずに書きます

>・reduce/inject、map/collectのように同じことするメソッドの単なる別名と、
Lisp 文化と Smalltalk 文化の融合ですが、そもそも Ruby は最初から手続き型/関数型/オブジェクト志向を融合した
省15
262
(1): 2020/10/18(日)02:31 ID:xeOKOt4d(8/11) AAS
後、変数someの展開を文字列の中で行いたい場合
Ruby:
 "some=#{some}"
JS:
 `some=${some}`
の書き方もRubyの方が便利。
逆引用符は入れにくいし 他が普通の二重引用符なのに一部だけ逆引用符なのは
省4
263: 2020/10/18(日)02:31 ID:xeOKOt4d(9/11) AAS
後、変数someの展開を文字列の中で行いたい場合
Ruby:
 "some=#{some}"
JS:
 `some=${some}`
の書き方もRubyの方が便利。
逆引用符は入れにくいし 他が普通の二重引用符なのに一部だけ逆引用符なのは
省4
264: 2020/10/18(日)02:38 ID:2DM4LMSp(3/4) AAS
>>262
まあそれは後方互換維持のための苦肉の策ですし使い勝手は悪いですね
Rubyのは全言語の中でも1番便利ですね
関数呼び出しも展開してくれるし
265: 2020/10/18(日)03:14 ID:+jyuYXh8(1/2) AAS
まつもと:それから「Backquotes」の地上げも考えていたんですけども、Backquotesをするとシェルで実行して結果を文字列で返すってやつですね。

(参加者から「いける、いける」の声)

まつもと:なんかあの辺で「いける、いける」って言ってる人がいますけど、信じない(笑)。なので、これももうちょっと先で、もう1回くるかもしれませんが、少なくとも3.0では死なないということです。
外部リンク:logmi.jp

バージョンによって使えてたクォートが使えなくなったりするクソ言語
266: 2020/10/18(日)03:22 ID:+jyuYXh8(2/2) AAS
まさに行き当たりバッタリ
267: 2020/10/18(日)08:10 ID:cCnPRoH8(3/9) AAS
>>253
書いてあるでしょ、リンク先に。
ファイルと同じ関数群使えます。

nodejsもググればprocessモジュールに行き着くかと。
外部コマンドは普通はあんまりつかわんけど。
環境依存させたくないので。
基本的にクロスプラットフォームな物を叩くけど、そういうのはそもそもnodeだったりする。
省2
268: 2020/10/18(日)08:10 ID:cCnPRoH8(4/9) AAS
>>259
な、知識不足だったでしょ。
269
(1): 2020/10/18(日)08:12 ID:cCnPRoH8(5/9) AAS
>>260
環境変数なんか必要ないんよ。
というかグローバルインストールしてそうなってる?もしかして。
270
(1): 2020/10/18(日)08:53 ID:xeOKOt4d(10/11) AAS
>>269
ローカルにインストールするなんて馬鹿。
ストレージの無駄使い。
271
(1): 2020/10/18(日)08:58 ID:xeOKOt4d(11/11) AAS
差分バックアップが流行ってるかも知れんけど
一箇所でも壊れるとそれ以前(または以後)の全てのバージョンが再現できなくな
るのでディスクの故障に対して無力で、バックアップの意味が無い。
不具合があったとき以前のバージョンとWinDiffなどで比較すると原因箇所の
絞込みが出来るが、差分バックアップではそれがやりにくい。
比較ツールがその差分ツールの俺々ツールに限定されてしまうし。
272: 2020/10/18(日)09:34 ID:tW6VBC66(1/3) AAS
ruby界隈のしょうもないシンタックスへのこだわりとか
オブジェクト思考の過剰な押し付け感はやっぱ嫌いだわ。
273
(1): 2020/10/18(日)09:42 ID:cCnPRoH8(6/9) AAS
>>270
アホか。
dll hell起こしたいのか?
イマドキなんでもサイドバイサイドだろ。
dedupの効くファイルシステム使えばよかろう。
そういう所ついていけてないから、NODE_PATHがどうとか言っちゃうんだよ。
嫌なら、一つ上のフォルダでnpm i しておけ。
274: 2020/10/18(日)09:44 ID:Xfoy2gzb(3/3) AAS
Ruby界隈はこういう物知らずの馬鹿の相手も増えるから
面倒くさいわ
275
(1): 2020/10/18(日)10:06 ID:vr2ApWZ6(1/2) AAS
>>273
何を言ってるの。
馬鹿めが。
276: 2020/10/18(日)10:19 ID:mPnoVdEN(2/3) AAS
同期への異様な拘りの時点で何でnode始めたの?ってレベルだし
もう細かいことはいいんでないの
277
(1): 2020/10/18(日)10:34 ID:cCnPRoH8(7/9) AAS
>>275
なぜ馬鹿と言われたのかわからんのだが、一つ上のディレクトリでローカルインストールしたらどうなるか理解できんのだろうか。

ちょっと冷静に話ししてみて。

正直に言って、stdoutのfdが整数値1って所が理解できてないのもわからんのだよ。
もともとstdoutってそうじゃん?
むしろ、ファイルディスクリプタが1のすでに開いてあるファイルを標準出力と読んで、コンソールはそれを表示してるだけじゃんよ?
278: 2020/10/18(日)10:35 ID:cCnPRoH8(8/9) AAS
>>271
差分バックアップの意味がわからん。
node_modulesの中身バックアップしてるとしたら頭おかしいぞ。
279
(2): 2020/10/18(日)11:36 ID:vr2ApWZ6(2/2) AAS
>>277
>正直に言って、stdoutのfdが整数値1って所が理解できてないのもわからんのだよ。
>もともとstdoutってそうじゃん?
>むしろ、ファイルディスクリプタが1のすでに開いてあるファイルを標準出力と読んで、コンソールはそれを表示してるだけじゃんよ?

あなたはアスペ。
stdoutのfdは、OSれべるでは1なのは誰でも知ってる基礎知識。
しかし、JSのような高級言語でその整数値をそのまま使う例は非常に少ないのに
省2
280: 2020/10/18(日)11:44 ID:mPnoVdEN(3/3) AAS
そりゃ普通はprocess.stdout.writeだからな
そもそものコンセプトを無視して同期に固執するからそうなる
1-
あと 62 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.020s