Rubyについて(アンチ専用) Part005
まつもとはtraitの仕様を入れたけど そもそもなんのために入れたんだか忘れたって後から言ってる まつもとのバグはrubyのバグと言っても良い 特定の独裁者が仕切る開発はもう時代にあってないよね 言語の与える影響があまりに大きくなりすぎた そう言えば、GuidoとかRMSは生前退位したんだっけ >>200 独裁は必要。 でないと、決めればいいところが決まらん。 いつかLinusもしんどくなって生前退位する日が来るのだろうか >>203 FSFの前に、Emacsは先に人に任せてなかったけ。あれもなんで降りたのかは忘れたけど >>205 何年か前に、暴言きっかけかなんかで、しばらく休んでたやん? 来るべき引退に向けての予行演習でもあったんでは。 >>207 あー、あったなあ…たしかに意図したかどうか予行演習になったなあ 右代入が酷い 俺の記憶が正しければ 末尾に追記することで変数への代入ができるのが右代入だったよな 1+2=>x がエラーになるんだがコレ何の意味があるんだ? >>196 taintのこと? >>211 Rubyの構文解析器の気持ちになればわかるよ! 君のコンピュータに近づこう コンピュータはルール通りのことを間違いなくやる そのルールに人間が合わせればいいんだよ! Ruby の使い過ぎで凋落なのかな? 2020.06.08 06:10 クックパッドの凋落、利用者1千万人減で赤字転落…人気のクラシルと真逆の方向 https://biz-journal.jp/2020/06/post_161220.html?utm_source=rss20& ;utm_medium=rss 坊主憎けりゃ袈裟までで中身は無いな これに関係なくRubyはオワコンコースだと思ってるけどな 作者のふるまいを気にするなら、Linuxもダメだな。 Linusは暴言家だからな。 Guidoもなんかなかったっけ? Larryはいい人そうだ。 なお、ワイもMatzはキライ。 昔、C++とPerlに言いがかりをつけていたことは忘れん。 Windows も dis ってたよ 漏れも Windows 嫌いだから良いけど 採用や仕事でRubyは嫌いだ使いたくないという人がいて 技術的理由説明しないで作者の政治思想が 嫌いだからとか言い出したら帰ってもらうのは 間違いない キリスト教の事を言い出したら、米国人は皆、キチガイじゃん 誰も進化論を信じていない。 人間は元から、猿じゃなかった。人間の姿のままだった 地動説も信じているかどうか、怪しい 中絶・同性婚を認めてはならない 結局PythonとJavaScriptの二強になってしまったな 次点でGoか この3つの流行に食い込むのはもう無理そう Ruby3の型ヒント実装あんなのエコシステムとして成立するのか? ローカル変数がちゃんと使いたいので、 Rubyからnode.jsに乗り換えようと努力している最中だったが、 node.jsはファイル関連が分かりにくい。 Rubyだとstdoutとファイルが対象になっていて、 print を fp.print に変えてやれば、ほぼそっくりそのまま動作してしまうが、 node.jsだと複雑そうだ。 あと、ファイル操作が基本的に非同期推奨なのも辛いし、非同期と同期の二系統あるので混乱が生じ易い。 複数ファイルのコピーもRubyは簡単に出来るが、node.jsだとncpという モジュールでやるが、これも非同期なので、promiseでthenやawaitを使った待機が必要になる。 しかし、それをしだすと、すべてがasync,await,thenなどを前提に書くことが必要になり、 非常に複雑になる。 >>226 誤: Rubyだとstdoutとファイルが対象になっていて、 正: Rubyだとstdoutとファイルが対称になっていて、 >>226 その辺がサーバーサイドでは使いにくい理由だよね 従来のシステムコールとはかけ離れてる ファイルを非同期で読み取りたいケースなんてほとんどないし あともう一つ、Ruby だと list の要素に対する繰り返しは以下の様に簡潔に書ける。 for elem in list do elem に対する処理; end しかし、Node.js だと、 list.forEach( function(elem) { elem に対する処理; }); か list.forEach( elem => { elem に対する処理; }); としか書けないらしく、なんだか見にくい。 list.each{elem| elemに対する処理} 似たようなもんやで >>226 streamが標準出力にもファイルにも使えるでしょ。 consoleオブジェクトに出力してる事自体がイレギュラーかと。 async awaitを使えば、thenは必要ないと思うが、混同してないか? Promise.allでコピー処理を待てば、複数ファイルでもたいしてかわらんかと。 >>229 for(let elem of list)で充足できない理由は? for elem in list do elem に対する処理; end が簡潔で、 list.forEach(elem => {elem に対する処理;}); や for (let elem of list) { elem に対する処理; } が見にくいの?w 老眼では?ww Rubyでforループ使うか普通? 特殊なポリシー持ってるか全然使ってないのでは >>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、他言語ユーザーにはあまりにも厳しすぎるだろ、とは感じてる >>234 あとfor inをプロトタイプ汚染されたオブジェクトに対して回すと恐ろしいことが起きるから基本的に非推奨だよ 書き方多過ぎるしアロー関数のthisの違いなど もはや罠が多過ぎて初心者に勧められる言語ではないと思う 好き好きとしか。 個人的には、C#とかC++(最近版)とかの論理的整合性のほうがはるかに。 Rubyも、えらそうなわりに、細かいところでいいかげんなところがちょくちょくあるんだよなあ。 えらそうでなければあまり気にならなかったのにな。 そういう文法の癖をあげつらう方向なら Rubyも出てくると思うぞ >>234 > 一見関数型に見えるが、 どこが?また半可通か。forで関数型とかあり得ないだろマヌケ。知らないなら黙ってろよww >>235 >あとfor inをプロトタイプ汚染されたオブジェクトに対して回すと恐ろしいことが起きるから基本的に非推奨だよ あえて触れなかったのですが、こう書くべきでしたね for (x in xs) { if (xs.hasOwnProperty(x)) { x に対する処理 } } 以下より引用:JavaScript: The Good Parts - 良いパーツによるベストプラクティス, C.10 for in 文, p140 >>236 >細かいところでいいかげんなところがちょくちょくある 同感ですね、自分もちょくちょくあります そういった事柄はこちらで遠慮せずに発言されてはいかがでしょうか? Rubyはバグりやすい言語だよ。 ・型安全でない ・前後の文脈を見ないとその部分単体ではローカル変数とメソッド呼び出しの見分けがつかない書き方ができ、しかもその書き方(メソッド呼び出しに()付けない)のほうが主流 ・reduce/inject、map/collectのように同じことするメソッドの単なる別名と、Array#delete_if/Array#reject!のようにほとんど同じなくせして削除失敗時だけ挙動が異なるみたいなべつものメソッドが入り乱れててカオス ・Procオブジェクト(手続きオブジェクト)を作る方法が多すぎ。しかも作り方で挙動が異なる。Rubyの書籍を書いた人でさえ頭を抱える始末 ・簡単に「見せかける」ために省略記法を行き当たりばったりで導入しまくった副作用で、直感的な記述が逆にエラーとなることが多い(例: p {foo: 1, bar: 2}はエラーwブロックとして解釈されるため) まだまだあるよ 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 >>241 まあそこは言語の特徴だから そういう用途にはブロックを使えってこと 関数呼び出しに()が必要じゃないのはDSLを書くためには優れた仕様 他の言語で言語内DSLは実質不可能 明らかに他の言語どころかRubyの理解も 怪しいのがわかる >>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 ブロックとProc.newとprocとlambdaと->があるRubyはやり過ぎ rubyの可読性は高くない。 pythonの「書きにくく読みやすい」と比較して「書きやすく読みにくい」と言われる。 そうなってしまう理由はたくさんあるが、ひとつのことをするのにやり方がたくさんあるというperlとかいう糞言語の信条をそのままパクってしまってることがひとつ。 またよくも悪くも設計が完全なオブジェクト指向にこだわっており、 javascriptなら関数ひとつで実現できることがblock、proc、lambdaと酷い有り様になっている。defで簡単に定義できまーすとかまさに初心者騙しもいいとこ。 また、流行り機能の無節操な取り込みが酷い。記号が足りなくなり、例えばオプショナルチェーンは他言語が?.のところrubyでは&.である。phpで文字列結合が"foo"+"bar"ではなく"foo"."bar"であるようなキモさ。 あとpythonと比べ多分野の優れたライブラリがない。あってもメンテされてない。作ってるやつが実用主義ではなく趣味だから。rubyでもできる!って言いたいだけ。よくも悪くもweb分野、しかもrails使うというやつ以外にはおすすめしない。 事実上rails専用言語。railsのDSLとして以外に存在価値はない。 初心者に勧めるなんてとんでもない。 >>231 >streamが標準出力にもファイルにも使えるでしょ。 どうやればいいの? 出来ないと思うけど。 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は自分用としては使えるが、一般人に作ったプログラムを 配布して使ってもらうのは絶望的といえる。 >>234 eachがどう関数型なのか知りたいんだが。 mapならわかるけど。 ただのイテレータだろ。 その中括弧要らないよ。なんか勘違いしてない? >>252 node.jsで、streamを使ってstdoutへの出力をする方法を具体的に書いてみてください。 なお、書き込む関数もファイルと全く同じ関数群が使えなくてはいけません。 >>252 どこの知識不足なのか具体的に書いてください。 Rubyは、ディレクトリコピー、sysytemや外部コマンドの実行でネット検索すれば それぞれすぐに答えが出てきます。 node.jsは英語で検索しても埒の明かない答えばかりで、現実にはまともに 対応できてないものと思われます。 リンク見たら普通にlsとpipeの例書いてあるやん >>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 へ変わった read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる