Rubyについて(アンチ専用) Part005
なかったので
オブジェクト指向スクリプト言語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/ >>255
パイプではなく、自分のプログラム、例えば、Hello Worldのプログラムで
node.jsにおいてstreamを標準出力に書き込むための手段として使う方法を聞いています。
もちろん、元祖C言語ではFILE系のstreamはstdoutに当然対応していますが、
node.jsでは不明確です。
ファイルをオープンする際のファイル名に何かを指定すれば出来るかも知れませんが。
C言語のstdoutに相当するものがどこにあるのか不明です。
番号の0や1なのでしょうか。 つーか何言いたいんだ?
お前のやりたいことが
直感的に言語XでRubyと同様にできないからと言って
だからどうしたという話なんだが Rubyアンチスレがモダン言語アンチスレになってきたな process.stdout.fd が fd の int 整数の「1」になっていて、
これを fs.writeSync()の第一引数に渡せば標準出力に
出力できることが分かりました。
しかし、ドキュメントが不十分でめちゃくちゃ分かりにくいです。
Rubyのドキュメントは非常に分かり易いです。 node.jsは、自慢で立派そうなnpmコマンドがあっても、NODE_PATHという
基本中の基本の環境変数すら設定されません。
これでfs-extraモジュールを追加インストールしなければ同期コピーすら出来ないのに。
同期的な外部コマンド実行も同様だと予想されます。
サーバーサイドの裏方として用いるならともかく、これをデスクトップマシンの
BATファイルの代わりやスクリプト言語として、一般人向けに配布することは
この段階で不可能となります。
その分野では現段階ではRubyが一番適切です。 >>240
>・型安全でない
型付けに関しては、話が長くなるからまた後で
>・前後の文脈を見ないとその部分単体ではローカル変数とメソッド呼び出しの見分けがつかない … (後略)
これは同意ですね、だから自分はメソッド呼び出しであれば self.hoge みたいに self を省略せずに書きます
>・reduce/inject、map/collectのように同じことするメソッドの単なる別名と、
Lisp 文化と Smalltalk 文化の融合ですが、そもそも Ruby は最初から手続き型/関数型/オブジェクト志向を融合した
マルチパラダイム言語として設計されていますし、コミュニティも多文化共存共栄(多神教?)みたいな空気がありますね
他の言語、たとえば手続き型原理主義(一神教?)で「聖典こそ真実であり、否定するものは異教徒」みたいな信者からすれば
違和感があるのかもしれませんね
>Array#delete_if/Array#reject!のようにほとんど同じなくせして削除失敗時だけ挙動が異なるみたいな … (後略)
関数型プログラミンングだと mutable な操作は使わないのでよう分からんですが、一度に全てを理解しようとせず、
必要になった時に必要なメソッドを使うよう思考を単純化したほうがよろしいのではないかと
>・Procオブジェクト(手続きオブジェクト)を作る方法が多すぎ。しかも作り方で挙動が異なる。 … (後略)
これも同意、自分は基本がブロック構文、もし稀に明示的なProcオブジェクト(いわゆるクロージャ)が必要になった時には
組み込み関数の lambda を使うくらいですね
前段でもお話したように、他の「作る方法」は(今のところ)必要がないので気になりません
>・簡単に「見せかける」ために省略記法を行き当たりばったりで導入しまくった副作用で、
>直感的な記述が逆にエラーとなることが多い(例: p {foo: 1, bar: 2}はエラーwブロックとして解釈されるため)
波カッコを使うブロック構文とハッシュ構文を誤読する問題は、少なくとも自分が Ruby を触り始めた 1.6 の時代から
存在しますから、「行き当たりばったりで導入」した例としては不適切です
「直感的な記述が逆にエラーとなることが “多い”」のであれば、別の例を挙げるべきでしょう 後、変数someの展開を文字列の中で行いたい場合
Ruby:
"some=#{some}"
JS:
`some=${some}`
の書き方もRubyの方が便利。
逆引用符は入れにくいし 他が普通の二重引用符なのに一部だけ逆引用符なのは
分かりにくくなりやすい。
それから、\ からエスケープシーケンスの働きをなくして単なる文字として扱うのが
Rubyだと一重引用符を使って 'aaa\bbb\ccc' のように書けるが
Node.jsだと String.raw`aaa\bbb\ccc` としか書けなくてとても不便。 後、変数someの展開を文字列の中で行いたい場合
Ruby:
"some=#{some}"
JS:
`some=${some}`
の書き方もRubyの方が便利。
逆引用符は入れにくいし 他が普通の二重引用符なのに一部だけ逆引用符なのは
分かりにくくなりやすい。
それから、\ からエスケープシーケンスの働きをなくして単なる文字として扱うのが
Rubyだと一重引用符を使って 'aaa\bbb\ccc' のように書けるが
Node.jsだと String.raw`aaa\bbb\ccc` としか書けなくてとても不便。 >>262
まあそれは後方互換維持のための苦肉の策ですし使い勝手は悪いですね
Rubyのは全言語の中でも1番便利ですね
関数呼び出しも展開してくれるし まつもと:それから「Backquotes」の地上げも考えていたんですけども、Backquotesをするとシェルで実行して結果を文字列で返すってやつですね。
(参加者から「いける、いける」の声)
まつもと:なんかあの辺で「いける、いける」って言ってる人がいますけど、信じない(笑)。なので、これももうちょっと先で、もう1回くるかもしれませんが、少なくとも3.0では死なないということです。
https://logmi.jp/tech/articles/321308
バージョンによって使えてたクォートが使えなくなったりするクソ言語 >>253
書いてあるでしょ、リンク先に。
ファイルと同じ関数群使えます。
nodejsもググればprocessモジュールに行き着くかと。
外部コマンドは普通はあんまりつかわんけど。
環境依存させたくないので。
基本的にクロスプラットフォームな物を叩くけど、そういうのはそもそもnodeだったりする。
ディレクトリコピーも、cpxあたりだとサッと行くと思うかと。
まぁコピーぐらいは中でやるもんだけど。 >>260
環境変数なんか必要ないんよ。
というかグローバルインストールしてそうなってる?もしかして。 >>269
ローカルにインストールするなんて馬鹿。
ストレージの無駄使い。 差分バックアップが流行ってるかも知れんけど
一箇所でも壊れるとそれ以前(または以後)の全てのバージョンが再現できなくな
るのでディスクの故障に対して無力で、バックアップの意味が無い。
不具合があったとき以前のバージョンとWinDiffなどで比較すると原因箇所の
絞込みが出来るが、差分バックアップではそれがやりにくい。
比較ツールがその差分ツールの俺々ツールに限定されてしまうし。 ruby界隈のしょうもないシンタックスへのこだわりとか
オブジェクト思考の過剰な押し付け感はやっぱ嫌いだわ。 >>270
アホか。
dll hell起こしたいのか?
イマドキなんでもサイドバイサイドだろ。
dedupの効くファイルシステム使えばよかろう。
そういう所ついていけてないから、NODE_PATHがどうとか言っちゃうんだよ。
嫌なら、一つ上のフォルダでnpm i しておけ。 Ruby界隈はこういう物知らずの馬鹿の相手も増えるから
面倒くさいわ 同期への異様な拘りの時点で何でnode始めたの?ってレベルだし
もう細かいことはいいんでないの >>275
なぜ馬鹿と言われたのかわからんのだが、一つ上のディレクトリでローカルインストールしたらどうなるか理解できんのだろうか。
ちょっと冷静に話ししてみて。
正直に言って、stdoutのfdが整数値1って所が理解できてないのもわからんのだよ。
もともとstdoutってそうじゃん?
むしろ、ファイルディスクリプタが1のすでに開いてあるファイルを標準出力と読んで、コンソールはそれを表示してるだけじゃんよ? >>271
差分バックアップの意味がわからん。
node_modulesの中身バックアップしてるとしたら頭おかしいぞ。 >>277
>正直に言って、stdoutのfdが整数値1って所が理解できてないのもわからんのだよ。
>もともとstdoutってそうじゃん?
>むしろ、ファイルディスクリプタが1のすでに開いてあるファイルを標準出力と読んで、コンソールはそれを表示してるだけじゃんよ?
あなたはアスペ。
stdoutのfdは、OSれべるでは1なのは誰でも知ってる基礎知識。
しかし、JSのような高級言語でその整数値をそのまま使う例は非常に少ないのに
Node.jsでは使っているのにそれをほとんど説明して無いからnode.js
初心者が分かるわけ無い。 そりゃ普通はprocess.stdout.writeだからな
そもそものコンセプトを無視して同期に固執するからそうなる rubyが糞だと思う理由
プログラム本体よりもテストコードの方が大きくなる >>279
初心者なんか相手にされてないだけやろ。
しゃあない。 Rubyが嫌いというよりは、無関係なスレでコピペを貼り付けるの人が嫌い。 >>279
アスペだかなんだか知らんが。
整数値をそのまま使うというか、fdまで見たらそうなるに決まってるじゃん。
fs.write...Syncを使いたがるからそうなるんであって、普通にstreamをpipeすれば全部隠蔽されるよ。
jsのような高級言語ではね。
説明してるけど。
ドキュメント読んだ?
ドキュメントがしっかりしてるから、初心者向けの解説サイトが無いんだぞ?
rubyが何故解説サイトばっかかわかる?
ドキュメントがクソだからだぞ。
ググればわかるって目茶苦茶レベル低いこと自覚しろよ。 ttps://logmi.jp/tech/articles/321280
>プロジェクトが大きくなるに従って、テストがだんだん苦痛になってくるんですね。
>テストのサイズが大きくなったりとか、あるいはテストの実行時間が長くなったりとかして、
>だんだんだんだん苦痛になってくることが多いですね。
>
>告白すると、私はテストが嫌いなんです。
良く判っていらっしゃる ttps://logmi.jp/tech/articles/321308
正直言うとみなさんはいいですよ。Rubyが無くなってもPythonでもJavaScriptでもいったらいいと思うんですけど。
私や一部のコアコミッターは職業なので、Rubyが無くなったら本当に困るんですよ。
それで、みなさんの困るの程度はともかくとして、Rubyは生き残ったほうがいいと思うんですよ。 https://logmi.jp/tech/articles/321280
> 思い出していただきたいのは、Twitterはずっと1.8を使い続けていたんですね。「パフォーマンス遅い、遅い」って文句言ってるわりには、ずっと1.8を使い続けて、あろうことか1.8を改造して「kiji」という独自のバージョンを作りかけてやめちゃったことがあります。
そりゃマイナーバージョンにひとつで前動いてたコードが動かなくなるクソ開発ポリシークソ体制だからだろww
互換性という点でまったく信頼されてない。
JavaScriptほどとは言わんがせめてPHP程度には互換性保つ努力しろカスw
独自バージョンにやめたのもやってみたら箸にも棒にもかからない糞だと明らかになったからだろカスwww 以下は、表紙にサイの絵が描かれた、2冊のサイ本
JavaScript 第6版、2012、David Flanagan
初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017
これらを読むだけでも、数年は掛かる。
それぐらい、JavaScript には罠が多い
Google などの技術者の机には、必ず置いてあるけど、10年経っても捨てられない
一方、Ruby では「たのしいRuby 第6版」を読むだけ。
3回ぐらい読んだら、本を捨てても、検索しながらプログラミングできる https://logmi.jp/tech/articles/321280
> 思い出していただきたいのは、Twitterはずっと1.8を使い続けていたんですね。「パフォーマンス遅い、遅い」って文句言ってるわりには、ずっと1.8を使い続けて、あろうことか1.8を改造して「kiji」という独自のバージョンを作りかけてやめちゃったことがあります。
そりゃマイナーバージョンひとつで前動いてたコードが動かなくなるクソ開発ポリシークソ体制だからだろww
互換性という点でまったく信頼されてない。
JavaScriptほどとは言わんがせめてPHP程度には互換性保つ努力しろカスw
独自バージョンやめたのもやってみたら箸にも棒にもかからない糞だと明らかになったからだろカスwww >>287
ホンマ、論理のすり替えもええとこやな。w
後続バージョンなら速いのに、と言ったって、Twitterにはそれでも全然足りてないやろ。
言語仕様的に速くできそうもないから、すっぱり見限られたとは思わんのか。
でも、2回も書き込まんでええで。w >>286
コミッタとか言う潰しの効かないことを仕事にしてる時点でダメでしょ
自己責任だわ
クックパッドとかfreeは囲い込んでるらしいけど
他の言語への移行の妨げにしかならんから早く首を切るべき
もしくは普通の仕事に配置転換するか >本当はテストを書きたくないんですよ。
>というのもDRYじゃないですよね。
>私たちはプログラムを書きたいんであって、テストを書きたいわけではないわけですよ。
>ただ、人類はまだプログラムを書くだけで、正しいプログラムを作る方法を知らないので、仕方がないのでテストを書いているのが現状だと思います。
この辺の話聞いてるとやっぱrubyあかんわと思うわ。。そりゃクソコードも量産されるわな。 > 型宣言嫌いなんですよね。
> なんでかというと、DRYじゃないからなんですよ。
静的型付けや型推論のちゃんとある言語使った経験からするとと意味不明 復唱確認って嫌いなんですよね。DRYじゃない。
と例えればわかる
同じことを言うことで確認を行ってるんだよ
人間がミスをしないなら、そりゃ一回言うだけでいいだろうさ こういう話も2010年ごろにしてるならまだわかるけど2019年時点でしてるんだぜ。。 テストとDRYって関係あるんか?
そもそもDRYすらもう死語な気がするのだが >>294
int *p=new int(0);
で、型を2回書いてるとかそういう話やろ。
じゃあ、1回ですませられるように
auto *p=new int(0);
でも、
int *p=new(0);
でも、そういうことを考えるのが言語仕様策定ってもんなのにな。
「型は嫌ー」て、もうええわ。
逃げてるままで何回言うんや。 できるけど思想があってやらない(という合理的な判断)
ではなく、
できないから屁理屈こねて不合理でミジメな言い訳
だからな。 >>297
型推論があれば
a = 1
と書くだけでaは整数と認識して(整数にも色々ある話は省略)処理され
型を書く必要も無い
DRYじゃないとは何指してんだか Ruby界のアノ人は「DRYじゃない」と言うことが口癖になってるんだと思う
深く考えないでいってる ほう
ttps://melborne.github.io/2013/09/27/auto-attr-set-in-ruby/ 最近Rubyで混乱したのがfilter_map
なんじゃこりゃ意味がさっぱり分からんって意味論的にも stepが%で書けるようになったらしいけど、絶対こういうの3年後くらいに非推奨になるやつだろ
断言しとくわ
rubyを使うにはMatzという人間の理解から始めなければ良いコードは書けないでしょう 自爆Hashスイッチを押してValue大学を爆破室町ねね暗殺
その後トヨタケーラム弟に帰ることになります
by室原案件色彩空間 めちゃくちゃ好きな言語なんだけど今の時代は流行らないよなー。ユースケースが限定されてるし。
vanilla node.jsでプログラミングするよりはマシだけど 時代で流行らないというより、
jsみたいにブラウザに標準搭載されないのが何よりきつい
この世からjsという概念を消し去ればあるいは 3.0でモダンな言語の機能を取り入れようとしたけど
根本の設計と噛み合わないので中途半端な延命策という印象
過去のしがらみあるのはしょうがないけど
新規プロジェクトにはもう無いな 監視盗聴つきまといをしておきながら説明責任を果たさなかった日本テレビとテレビ朝日とフジテレビとテレビ東京とTBS本社に爆発物を仕掛けました
ゼロ高等学院にも爆発物を仕掛けました
バレンタインデーの深夜に爆発します
あと松本人志と松本てらと堀江貴文と井口理の家族全員とキングヌーのドラマーとおぎやはぎの小木博明と矢作兼とハマオカモトと武井壮トンカチで顔面グシャグシャにしてぶっ殺します
メンタリストダイゴ様がついてるんで僕は逮捕されませーん
松本てらだけは執拗にナイフで滅多刺しにして殺します。人を殺す。まともな人間に会うために。普通だったら爆破予告は一か月で逮捕される。再三の予告で逮捕されなかった事情を白痴どもは考えてろ。
てか、きみらが通報しないから逮捕されないんだよね(^_^;)
監視盗聴つきまといをしておきながら説明責任を果たさなかった吉本興業の学校NSC東京本社に爆発物を仕掛けました
バレンタインデーの深夜に爆発します。ちなみにプペルは西野が監視盗聴でパクった作品でーす
vcxznm/,v,m/n.,/z,_xc/ あわしろ氏がRubyはオワコンだと言ってたけどな。
いまさらRubyにしがみついてる奴とは縁を切れって。 助成金を吸い取ったり、助成金にありつけなかったら悪徳教材屋・セミナー屋になったり、ひでえもんだからな GitHub における大規模なモノリポのパフォーマンスの向上
https://github.blog/jp/2021-03-19-improving-large-monorepo-performance-on-github/
> GitHub の有名な Ruby モノリスを解体し、GitHub のすべてのユーザーのためにリポジトリのパフォーマンスを向上させる新しいマイクロサービスを Go で作成しています。 パフォーマンスが悪いのはRubyのせいだったとはっきり認めてるねwww >>215
RUBYと共に消えていくのか、、、
【ゆっくり解説】クックパッドの消滅する利用者数!ドロドロ経営で倒産不可避の理由について
https://www.youtube.com/watch?v=opNuPo-lj84 >>223
>誰も進化論を信じていない。
>人間は元から、猿じゃなかった。人間の姿のままだった
といって、今の正統的進化論にも私は疑問を感じますよ
地球ができた時を時刻 0 年としたとき、「たった 5 億年で」原始生命が発生し、それから「たった5億年で」細菌の中に細菌が共生する「ミトコンドリア・葉緑素の共生」が発生したとか、無理があるでしょう
多細胞生物が 30億年目、そこから脊椎動物が現れるのが 40 億年目と 10 億年かかったというのに、精密な遺伝子システム=デオキシリボ核酸による情報伝達システムが 5 億年で完成するとか、主張が変だとおもいますね >>320
でも結局最終的にはRustになってそう 次のステップ
先に述べたように、プッシュの失敗はほぼゼロになりました。これらの失敗のうちのい
くつかは、インターネットネットワークのランダムな問題が原因で、私たちの手に負え
ないものです。残りの失敗については、可能な限り悩ましい失敗をなくし、GitHub を
より速くする方法を検討しています。
Git システムの世界では、ストレージのハードウェアを刷新して高速化を図っています。
また、GitHub の有名な Ruby モノリスを解体し、GitHub のすべてのユーザーのために
リポジトリのパフォーマンスを向上させる新しいマイクロサービスを Go で作成して
います。 アンチスレも過疎ってるのか
もうダメだなこの言語
みんなよそいっちまったよ 2022年、GitHub上で最も使われたプログラミング言語 2位は「Python」 1位は?
https://www.itmedia.co.jp/news/articles/2211/18/news120.html
Rubyは10位。なかなか圏外にならないな。 まつもとさんはオワコンと言われ続けてるが
なかなかオワコンにならないと講演で
笑いを取ってるらしいが
凋落傾向なのは変わらないな あとからだと何とでも言えるし
これを指摘するのも手垢つきまくってるだろうけど
やっぱブロックは失敗やったな
受け渡しの書き方もprocとの関係も全部ミスってると思う
rustだとそれらは単にクロージャなんで
一個だけじゃなく複数受け取れるし
引数の「最後」に「一個だけ」(..., &block)と「&つけて」書くとかいう縛りがない
単なる変数のひとつとして何個でもどこにでも受け取れる
let x = Some("foo");
assert_eq!(x.map_or(42, |v| v.len()), 3);
let x = Some("foo");
assert_eq!(x.map_or_else(|| 2 * k, |v| v.len()), 3);
これすごいスッキリしてると思う
rubyもこのクロージャ形式で手続きをパラメータ化できればよかったのにな そやねえ
いっけん嬉しいんだけど
あれで色々苦しんでるんやろな言語仕様的に
拡張が苦しいと聞いた youtubeの転職チャンネルとかいうやつで
自分はRubyができるから年収600万円で雇えというのがあったんですが
Rubyってそんなにすごい言語なんですか? >>336
Ruby の米国年収は、Go/Rust/Elixir の3大言語を超えた!
一方、PHP は生活保護レベルw
Ruby, Elixir : 9.3 万ドル
Go : 8.9
Rust : 8.7
多くの言語 : 6.5〜7
PHP : 5
Dart : 4.4
Ruby on Rails, AWS Solution Architect は13万ドルとか!
YouTube で有名な雑食系エンジニア・KENTA は、
初心者のキャリアパスは、Rails → Go だけと言ってる
一方、Scala, PHPをオワコン認定した。
使っているのは、Twitter, Facebook ぐらい。
日本はZOZO とか、PHPを使う老人が多い
ガーシーのサロンで使っていたMastodon も、
PHPから、Rails 6 へ変わった