Rubyについて(アンチ専用) Part005

1デフォルトの名無しさん
垢版 |
2019/04/13(土) 22:32:20.81ID:+hvu+lso
なかったので

オブジェクト指向スクリプト言語Rubyが嫌いな人のためのスレッドです。
他言語の一方的なあげ足取りが好きな最強厨御用達言語Rubyについて。

1. 他の言語で満足している人を「楽しさ」「美しさ」とか主観的な基準で煽る
2. Ruby より機能が絞られている言語に対しては「不足」「楽しさが(ry」「快適さがない」「こんな機能がないなんて」
3. Ruby より機能が豊富な言語に対しては「大きすぎる」「美しくない」「そんな機能不要」

うっとおしいRuby厨やRails厨の迷惑や気持ち悪い主観の押しつけ、腐れ言語や不安定ライブリについて語り合いましょう。

■関連スレ
Rubyについて Part 36
http://pc12.2ch.net/test/read.cgi/tech/1246174168/

■前スレ
Rubyについて(アンチ専用) Part001
http://pc11.2ch.net/test/read.cgi/tech/1190559748/
Rubyについて(アンチ専用) Part002
http://pc11.2ch.net/test/read.cgi/tech/1200210768/
Rubyについて(アンチ専用) Part003
http://pc12.2ch.net/test/read.cgi/tech/1207233348/
Rubyについて(アンチ専用)
https://mevius.5ch.net/test/read.cgi/tech/1249737531/
2019/11/18(月) 18:16:08.59ID:BK4fkH2q
プログラミング初心者向けの本としてChris Pineが出てくる時点で、Rubyは根本的に初心者向きじゃないと白状してるようなものだよ
短文に慣れてしまって長文が読めず、画像で情報を把握するような今どきの若者に画像のない長文本は勧められない
ここまでのこの文章ですら長いと言われるくらいだし
初心者向けの本は基本的に文章を極力減らして例示とマンガで説明してる
2019/12/11(水) 21:39:46.45ID:YTKclXIe
Cも初心者向きじゃないと言われているし
まずはPascalをやれと、師匠は言っていた
2019/12/11(水) 21:52:04.98ID:Gjrc4uA9
古いわ。w
当時からして、Pascalがそんなにいいとは思わなかったが。

今ならC#やな。
間違いなく。
2019/12/11(水) 21:58:56.68ID:Ec0EQxOa
C ってよく出来てるなあと思う
2019/12/11(水) 22:18:53.20ID:mRJcWm57
懐かしいな、Turbo Pascal
163デフォルトの名無しさん
垢版 |
2019/12/12(木) 09:55:25.63ID:a67Hqgb2
CはPascalより文法を緩くした実用(手抜き)言語のイメージ
CやってからPascalやるよりも
PascalやってからCやる方が
スムーズに学習出来るのは確かだが
今からそれをやる意味はあるかは微妙
今ならPythonをお薦めする
Rubyはダメ絶対
2019/12/12(木) 22:20:28.37ID:iWm3nvUp
Pythonは嫌いだがRubyよりはマシ
Rubyなんて今からやっても負債にしか
2019/12/12(木) 22:58:14.03ID:ibvhlcts
今Webアプリ作るならなにがいいんだろうな
サーバーサイドは相当迷うよ
2019/12/12(木) 23:40:31.44ID:DL4wAkQt
C#やろ!w
2019/12/13(金) 14:29:25.24ID:a34Kc7WY
C#いいと思うけど
2019/12/16(月) 14:53:49.89ID:io+QB1Sh
『表紙に著者の顔写真が載っている本には手を出さない』これだけで驚くほどQOLが上がる…という意見に様々な感想「著者が腕組みしてる本も手を出さない」
https://togetter.com/li/1443255
2019/12/20(金) 22:30:04.47ID:/W4lQx2e
rubyはperlの悪いとこばっかマネして無理に全部オブジェクト扱いしようとしたくそ言語だよ。
2019/12/20(金) 22:47:51.16ID:gTx/lAPV
Perlをさんざん罵ったヤツなのに、Perlのせいにすんな!
Rubyがダメだとしたら、ただただ純粋にRubyがダメだから!
2019/12/21(土) 00:35:09.97ID:pAX2rrxb
JavaやPerlやPHPをクソミソに言ったツケが来てるな
2019/12/21(土) 07:12:04.39ID:yAZ/jePH
PHP も型に厳しい方向になってて
もう別言語でやって感ある
大規模開発も大事だけど
既存のコードが一番大事
173デフォルトの名無しさん
垢版 |
2019/12/22(日) 13:14:50.21ID:6Us+wzVL
>>169
+1
ほんそれ
@とかうざすぎ
2019/12/22(日) 22:50:39.57ID:bTmhsrle
>>173
だから、Perlは関係ねえよ!
2019/12/22(日) 23:03:52.01ID:O05uH48x
$とか@ってシェルスクリプトが起源だからさ
PerlとかRubyはしれっと盗まないでくれないか?
2019/12/25(水) 20:24:56.87ID:1fTZ/ZaM
@_ なんかにコンテキストで意味変わるようなものをドカドカ詰め込んだのは
perlが最初だぞ。もちろん最悪のやり方だと思うが。
2019/12/25(水) 20:51:14.14ID:aaAP7ysf
Rubyも同じようなの導入しようとして
失敗してるしな
178デフォルトの名無しさん
垢版 |
2019/12/26(木) 09:50:24.46ID:qmNoWNu8
賢者は歴史に学ぶ
愚者は経験に学ぶ
2019/12/26(木) 09:51:27.96ID:ICbV3wFJ
>>178
それが正しいという根拠は?
180デフォルトの名無しさん
垢版 |
2019/12/26(木) 10:15:01.57ID:qmNoWNu8
おまい意味判ってないやろ
2019/12/26(木) 10:16:34.15ID:ICbV3wFJ
だからわからんからその意味を説明しろってw
2019/12/26(木) 10:26:37.91ID:uIk/XshQ
なるほど、これが「愚者」なんだな
2019/12/26(木) 15:02:17.46ID:3AF5y/RY
「愚者は経験から学び賢者は歴史から学ぶ」←? よく分からなかったので丁寧に解説。
https://blog.goo.ne.jp/booter/e/ff3e7f69d7cfb970ce09147cb5b8b037
2019/12/26(木) 15:05:36.50ID:V8wfE0dN
> 「愚者は経験から学び賢者は歴史から学ぶ」。
> 結論から言うと、これは誤訳である。

ワロタw
2019/12/26(木) 15:14:05.20ID:/uKQZJNY
歴史=他人の起こした出来事って意味がわからんやついるんだな
読解力がなさすぎるか日本人じゃないか
2019/12/26(木) 15:18:07.97ID:V8wfE0dN
だからその「歴史」が誤訳なんだがな。もともとは歴史なんて言ってない
187デフォルトの名無しさん
垢版 |
2019/12/31(火) 19:32:08.67ID:z/4e8Z8b
すみません、初学者で苦労してまして・・
Rubyxlでエクセルのテンプレートを編集したく

そこで、特定のセルをコピーして特定のセルに貼り付ける
操作を行いたいのですが、ネットで検索しても全くヒットせず
有識者のかたいらっしゃれば、ご教授いただけましたら幸いです。。
2019/12/31(火) 20:25:07.74ID:ozxOKIBe
5ch では、マルチポストは禁止です!
同じ質問を、複数のスレに書き込んではいけません!

ここで質問せず「Ruby 初心者スレッド Part 65」の方を使ってください!
2019/12/31(火) 20:41:41.22ID:TaZygSKX
しかし、「アンチ専用」のスレで聞くかね。w
2020/01/01(水) 16:26:40.85ID:AV+0j7FA
愚者は経験にも学ばない
2020/01/02(木) 20:28:10.19ID:VmmTWzwp
>>183,184
ビスマルクとは知らなかった、あのビスマルクの言葉だったとは…これは勉強になりましたね、
2020/01/02(木) 20:49:43.56ID:Ifo0PTAe
翻訳者が「盛った」んだろう
193デフォルトの名無しさん
垢版 |
2020/01/03(金) 10:40:11.91ID:lHIykz7y
試験では部分点すらもらえないタイプ
2020/01/26(日) 01:41:18.79ID:HPdacZve
rubyXLでエクセルいじってるが

印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・
195デフォルトの名無しさん
垢版 |
2020/01/26(日) 11:02:44.69ID:+3DuCtIS
まるち
196デフォルトの名無しさん
垢版 |
2020/04/05(日) 16:08:20.26ID:PRah2Hwr
まつもとはtraitの仕様を入れたけど
そもそもなんのために入れたんだか忘れたって後から言ってる
まつもとのバグはrubyのバグと言っても良い
2020/04/05(日) 17:30:57.49ID:liJZihU7
最近trait関係で何かバグった?
2020/04/05(日) 19:43:30.76ID:oKEzp2HP
matzももうrubyやめたいんじゃねーの?
2020/04/06(月) 00:41:04.88ID:qqlpdYMz
生前退位するしかないじゃない
2020/04/06(月) 00:49:24.62ID:UGXjqJtL
特定の独裁者が仕切る開発はもう時代にあってないよね
言語の与える影響があまりに大きくなりすぎた
2020/04/06(月) 02:54:18.30ID:qqlpdYMz
そう言えば、GuidoとかRMSは生前退位したんだっけ
2020/04/06(月) 19:57:19.50ID:lqJgR+VC
>>200
独裁は必要。
でないと、決めればいいところが決まらん。
2020/04/06(月) 19:58:17.80ID:lqJgR+VC
>>201
RMSは自主的だっけ?w
2020/04/06(月) 20:19:21.32ID:Cbp9XIJ2
>>203
解任はされてないな
2020/04/08(水) 00:43:15.65ID:X5vOHYGK
いつかLinusもしんどくなって生前退位する日が来るのだろうか
2020/04/08(水) 00:48:37.00ID:X5vOHYGK
>>203
FSFの前に、Emacsは先に人に任せてなかったけ。あれもなんで降りたのかは忘れたけど
2020/04/08(水) 02:31:40.72ID:xtDs1sbk
>>205
何年か前に、暴言きっかけかなんかで、しばらく休んでたやん?
来るべき引退に向けての予行演習でもあったんでは。
2020/04/08(水) 02:41:18.01ID:8EkDixDm
暴言復活したよ
209デフォルトの名無しさん
垢版 |
2020/04/08(水) 12:34:28.55ID:lWfV0IAd
RMSもし糖尿だったらコロチャンから守ってやれよ
2020/04/09(木) 00:24:07.68ID:V4nj16/7
>>207
あー、あったなあ…たしかに意図したかどうか予行演習になったなあ
2020/04/11(土) 09:39:55.39ID:blHAWxBh
右代入が酷い
俺の記憶が正しければ
末尾に追記することで変数への代入ができるのが右代入だったよな

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

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

2020.06.08 06:10
クックパッドの凋落、利用者1千万人減で赤字転落…人気のクラシルと真逆の方向
https://biz-journal.jp/2020/06/post_161220.html?utm_source=rss20&;utm_medium=rss
2020/10/14(水) 10:25:01.72ID:5w+mUOps
まつもとゆきひろのツイッターを見てRuby使うのをやめようと思った
https://anond.hatelabo.jp/20201013213028
217デフォルトの名無しさん
垢版 |
2020/10/14(水) 11:16:18.04ID:GsUUoEHv
正解
気付くの遅い
2020/10/14(水) 11:24:50.05ID:eKBY9SEr
坊主憎けりゃ袈裟までで中身は無いな
これに関係なくRubyはオワコンコースだと思ってるけどな
2020/10/14(水) 13:24:36.30ID:rQGDkRcC
作者のふるまいを気にするなら、Linuxもダメだな。
Linusは暴言家だからな。

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

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

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

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

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

list.forEach( elem => {
 elem に対する処理; 
});
としか書けないらしく、なんだか見にくい。
230デフォルトの名無しさん
垢版 |
2020/10/17(土) 16:25:59.95ID:0qFIP5N2
list.each{elem| elemに対する処理}

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

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

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

for (let elem of list) {
 elem に対する処理; 
}
が見にくいの?w
老眼では?ww
2020/10/17(土) 16:55:33.76ID:4Rsat8LS
Rubyでforループ使うか普通?
特殊なポリシー持ってるか全然使ってないのでは
2020/10/17(土) 23:07:29.03ID:3hrMdhxe
>>232
ほんの些細な違いだろうという指摘は理解したいけど、楽しく書ける(= 思考を妨げない)ことをポリシーとしている
Ruby に慣れ親しんでいると、そんなことも気になってしまうんだよなぁ
 xs.each { |x|  # スコープを作る(関数型スタイル)
    x に対する処理
  }
または
 for x in xs  # スコープを作らない(手続き型スタイル)
    x に対する処理
 end

それが JavaScript になると:
・なぜ丸カッコと波カッコを入れ子にしなきゃいけないのかなぁ
 どちらか一つでいいはずだし面倒くさいよね?
  xs.forEach ({ x =>  # スコープを作る(関数型スタイル)
    x に対する処理
  })

・なぜ変な予約語 let が必要なのかなぁ、あってもいいけど蛇足だよね?(>>231)
  for (x in xs) {  # スコープを作らない(手続き型スタイル、従来からある構文)
    x に対する処理
  }
または
  for (let x of xs) {  # スコープを作る(一見関数型に見えるが、手続き型スタイル)
    x に対する処理
  }

もちろん JavaScript が「後方互換性の維持」を厳守しつつ、機能(構文と意味)を発展させてきた成果は大いに評価している
とはいえ、「老眼では?ww」という批判は、ちょいと低俗で低レベルな発言ではないかと思われ
もっとも客観的には >>229 の注文が高尚すぎて(w、他言語ユーザーにはあまりにも厳しすぎるだろ、とは感じてる
2020/10/17(土) 23:31:58.39ID:8P0N3Qw4
>>234
あとfor inをプロトタイプ汚染されたオブジェクトに対して回すと恐ろしいことが起きるから基本的に非推奨だよ
書き方多過ぎるしアロー関数のthisの違いなど
もはや罠が多過ぎて初心者に勧められる言語ではないと思う
2020/10/17(土) 23:35:51.32ID:cI54o2aO
好き好きとしか。
個人的には、C#とかC++(最近版)とかの論理的整合性のほうがはるかに。

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

どこが?また半可通か。forで関数型とかあり得ないだろマヌケ。知らないなら黙ってろよww
2020/10/18(日) 00:06:56.33ID:4X85KByZ
>>235
>あとfor inをプロトタイプ汚染されたオブジェクトに対して回すと恐ろしいことが起きるから基本的に非推奨だよ

あえて触れなかったのですが、こう書くべきでしたね
 for (x in xs) {
   if (xs.hasOwnProperty(x)) {
     x に対する処理
   }
}
以下より引用:JavaScript: The Good Parts - 良いパーツによるベストプラクティス, C.10 for in 文, p140


>>236
>細かいところでいいかげんなところがちょくちょくある

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


まだまだあるよ
2020/10/18(日) 00:16:28.10ID: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
2020/10/18(日) 00:20:52.55ID: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/
2020/10/18(日) 00:21:59.27ID:2DM4LMSp
>>241
まあそこは言語の特徴だから
そういう用途にはブロックを使えってこと
関数呼び出しに()が必要じゃないのはDSLを書くためには優れた仕様
他の言語で言語内DSLは実質不可能
2020/10/18(日) 00:28:17.88ID:Xfoy2gzb
明らかに他の言語どころかRubyの理解も
怪しいのがわかる
245デフォルトの名無しさん
垢版 |
2020/10/18(日) 00:28:24.01ID:oU6L/1KQ
大学生起業家が設立1年で20億円調達! 単発バイトアプリに外食企業など出資【タイミー】
https://foodfun.jp/archives/3490
誰でもカンタンにオンラインサロン・情報配信ができる便利アプリ【TOUKU(トーク)】が登場
https://prtimes.jp/main/html/rd/p/000000001.000061569.html
中学時代の車いす生活から、17歳で起業するまで
https://www.advertimes.com/20200130/article306925/
ミャンマー発 AIダイニングアプリ「Yathar」をしかける日本人起業家
https://roboteer-tokyo.com/archives/14840
自分の視野は「世の中の0.001%」と自覚せよ。ビジネスチャンスを掴む4つの習慣
https://headlines.yahoo.co.jp/hl?a=20200511-00010001-srnijugo-life
アプリの視聴率がわかる 高専卒起業家の独創力
https://www.nikkei.com/article/DGXMZO46695580Y9A620C1000000/
1万人の若者を支援!インターンが日本を変えるかも!? glowshipの若き創業者・足立卓也氏インタビュー
https://sogyotecho.jp/glowship-adachi-interview/
まだ22歳の学生社長が得た、23億円の「使い道」 あの橋本環奈をCMに使うバイトアプリの雄
https://toyokeizai.net/articles/-/319511
2020/10/18(日) 00:32:03.16ID:4X85KByZ
>>233
自分はすっかり関数型プログラミングに慣れてしまったので、近頃だと for/while 文を
使うのは、古い Pascal や Perl のコードを Ruby へ写経(移植?)する時くらいですかね

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

result = xs.select { |x|
    …
  }.map { |x|
    …
  }.inject( … ) { |acc, x|
    …
  }

xs.select { |x|
    …
  }.map { |x|
    …
  }.inject( … ) { |acc, x|
    …
  }.each do |x|
    …  # 副作用(破壊的代入やI/O処理)を含む処理
  end

具体的なコード例はこちらへ:https://ideone.com/PKMUhx
また、関数型プログラミングに興味がある方は以下をお読みください
・Rubyによる関数型プログラミング
  http://xtmlab.com/misc/FPwithRuby.html
2020/10/18(日) 00:35:23.34ID:xWXtsYNK
ブロックとProc.newとprocとlambdaと->があるRubyはやり過ぎ
2020/10/18(日) 00:42:04.28ID:dOGGkbZr
rubyの可読性は高くない。
pythonの「書きにくく読みやすい」と比較して「書きやすく読みにくい」と言われる。
そうなってしまう理由はたくさんあるが、ひとつのことをするのにやり方がたくさんあるというperlとかいう糞言語の信条をそのままパクってしまってることがひとつ。

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

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

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

2. copy、xcopy、robocopyなどの外部コマンドを呼び出せればコピーできるが、
 RubyならC言語の伝統的なsysytem()関数をより強力で便利にした関数をサポートしている
 が、node.jsはしておらず、非常に使いにくいexec()やspawn()関数を非同期で使わなく
 てはならない。

以上により、node.jsは自分用としては使えるが、一般人に作ったプログラムを
配布して使ってもらうのは絶望的といえる。
2020/10/18(日) 01:10:26.15ID:cCnPRoH8
>>234
eachがどう関数型なのか知りたいんだが。
mapならわかるけど。
ただのイテレータだろ。

その中括弧要らないよ。なんか勘違いしてない?
2020/10/18(日) 01:14:50.79ID:cCnPRoH8
>>249
https://qiita.com/masakura/items/5683e8e3e655bfda6756
出来るし、普通はconsoleに出したりしない。

>>250
完全に知識不足。
2020/10/18(日) 01:21:29.87ID:xeOKOt4d
>>252
node.jsで、streamを使ってstdoutへの出力をする方法を具体的に書いてみてください。
なお、書き込む関数もファイルと全く同じ関数群が使えなくてはいけません。
2020/10/18(日) 01:24:00.15ID:xeOKOt4d
>>252
どこの知識不足なのか具体的に書いてください。
Rubyは、ディレクトリコピー、sysytemや外部コマンドの実行でネット検索すれば
それぞれすぐに答えが出てきます。
node.jsは英語で検索しても埒の明かない答えばかりで、現実にはまともに
対応できてないものと思われます。
2020/10/18(日) 01:35:18.67ID:mPnoVdEN
リンク見たら普通にlsとpipeの例書いてあるやん
2020/10/18(日) 01:43:59.33ID:xeOKOt4d
>>255
パイプではなく、自分のプログラム、例えば、Hello Worldのプログラムで
node.jsにおいてstreamを標準出力に書き込むための手段として使う方法を聞いています。
もちろん、元祖C言語ではFILE系のstreamはstdoutに当然対応していますが、
node.jsでは不明確です。
ファイルをオープンする際のファイル名に何かを指定すれば出来るかも知れませんが。
C言語のstdoutに相当するものがどこにあるのか不明です。
番号の0や1なのでしょうか。
2020/10/18(日) 01:55:48.16ID:Xfoy2gzb
つーか何言いたいんだ?
お前のやりたいことが
直感的に言語XでRubyと同様にできないからと言って
だからどうしたという話なんだが
2020/10/18(日) 02:01:56.18ID:2DM4LMSp
Rubyアンチスレがモダン言語アンチスレになってきたな
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況