Rubyについて(アンチ専用) Part005 (342レス)
Rubyについて(アンチ専用) Part005 http://mevius.5ch.net/test/read.cgi/tech/1555162340/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
222: デフォルトの名無しさん [sage] 2020/10/14(水) 15:12:13.71 ID:4AmK2QjE 採用や仕事でRubyは嫌いだ使いたくないという人がいて 技術的理由説明しないで作者の政治思想が 嫌いだからとか言い出したら帰ってもらうのは 間違いない http://mevius.5ch.net/test/read.cgi/tech/1555162340/222
223: デフォルトの名無しさん [sage] 2020/10/14(水) 16:17:57.90 ID:z5Uy/Vd3 キリスト教の事を言い出したら、米国人は皆、キチガイじゃん 誰も進化論を信じていない。 人間は元から、猿じゃなかった。人間の姿のままだった 地動説も信じているかどうか、怪しい 中絶・同性婚を認めてはならない http://mevius.5ch.net/test/read.cgi/tech/1555162340/223
224: デフォルトの名無しさん [sage] 2020/10/14(水) 20:36:09.48 ID:QEXq7zvm 結局PythonとJavaScriptの二強になってしまったな 次点でGoか この3つの流行に食い込むのはもう無理そう http://mevius.5ch.net/test/read.cgi/tech/1555162340/224
225: デフォルトの名無しさん [sage] 2020/10/15(木) 20:07:16.15 ID:ODWTBHyE Ruby3の型ヒント実装あんなのエコシステムとして成立するのか? http://mevius.5ch.net/test/read.cgi/tech/1555162340/225
226: デフォルトの名無しさん [sage] 2020/10/17(土) 13:59:12.80 ID:cX3MrjsP ローカル変数がちゃんと使いたいので、 Rubyからnode.jsに乗り換えようと努力している最中だったが、 node.jsはファイル関連が分かりにくい。 Rubyだとstdoutとファイルが対象になっていて、 print を fp.print に変えてやれば、ほぼそっくりそのまま動作してしまうが、 node.jsだと複雑そうだ。 あと、ファイル操作が基本的に非同期推奨なのも辛いし、非同期と同期の二系統あるので混乱が生じ易い。 複数ファイルのコピーもRubyは簡単に出来るが、node.jsだとncpという モジュールでやるが、これも非同期なので、promiseでthenやawaitを使った待機が必要になる。 しかし、それをしだすと、すべてがasync,await,thenなどを前提に書くことが必要になり、 非常に複雑になる。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/226
227: デフォルトの名無しさん [sage] 2020/10/17(土) 14:00:01.08 ID:cX3MrjsP >>226 誤: Rubyだとstdoutとファイルが対象になっていて、 正: Rubyだとstdoutとファイルが対称になっていて、 http://mevius.5ch.net/test/read.cgi/tech/1555162340/227
228: デフォルトの名無しさん [sage] 2020/10/17(土) 14:32:30.10 ID:8P0N3Qw4 >>226 その辺がサーバーサイドでは使いにくい理由だよね 従来のシステムコールとはかけ離れてる ファイルを非同期で読み取りたいケースなんてほとんどないし http://mevius.5ch.net/test/read.cgi/tech/1555162340/228
229: デフォルトの名無しさん [sage] 2020/10/17(土) 16:11:52.56 ID:cX3MrjsP あともう一つ、Ruby だと list の要素に対する繰り返しは以下の様に簡潔に書ける。 for elem in list do elem に対する処理; end しかし、Node.js だと、 list.forEach( function(elem) { elem に対する処理; }); か list.forEach( elem => { elem に対する処理; }); としか書けないらしく、なんだか見にくい。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/229
230: デフォルトの名無しさん [] 2020/10/17(土) 16:25:59.95 ID:0qFIP5N2 list.each{elem| elemに対する処理} 似たようなもんやで http://mevius.5ch.net/test/read.cgi/tech/1555162340/230
231: デフォルトの名無しさん [sage] 2020/10/17(土) 16:35:37.45 ID:8mYxeAbP >>226 streamが標準出力にもファイルにも使えるでしょ。 consoleオブジェクトに出力してる事自体がイレギュラーかと。 async awaitを使えば、thenは必要ないと思うが、混同してないか? Promise.allでコピー処理を待てば、複数ファイルでもたいしてかわらんかと。 >>229 for(let elem of list)で充足できない理由は? http://mevius.5ch.net/test/read.cgi/tech/1555162340/231
232: デフォルトの名無しさん [sage] 2020/10/17(土) 16:38:07.81 ID:vimxgZ9f for elem in list do elem に対する処理; end が簡潔で、 list.forEach(elem => {elem に対する処理;}); や for (let elem of list) { elem に対する処理; } が見にくいの?w 老眼では?ww http://mevius.5ch.net/test/read.cgi/tech/1555162340/232
233: デフォルトの名無しさん [sage] 2020/10/17(土) 16:55:33.76 ID:4Rsat8LS Rubyでforループ使うか普通? 特殊なポリシー持ってるか全然使ってないのでは http://mevius.5ch.net/test/read.cgi/tech/1555162340/233
234: デフォルトの名無しさん [sage] 2020/10/17(土) 23:07:29.03 ID: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、他言語ユーザーにはあまりにも厳しすぎるだろ、とは感じてる http://mevius.5ch.net/test/read.cgi/tech/1555162340/234
235: デフォルトの名無しさん [sage] 2020/10/17(土) 23:31:58.39 ID:8P0N3Qw4 >>234 あとfor inをプロトタイプ汚染されたオブジェクトに対して回すと恐ろしいことが起きるから基本的に非推奨だよ 書き方多過ぎるしアロー関数のthisの違いなど もはや罠が多過ぎて初心者に勧められる言語ではないと思う http://mevius.5ch.net/test/read.cgi/tech/1555162340/235
236: デフォルトの名無しさん [sage] 2020/10/17(土) 23:35:51.32 ID:cI54o2aO 好き好きとしか。 個人的には、C#とかC++(最近版)とかの論理的整合性のほうがはるかに。 Rubyも、えらそうなわりに、細かいところでいいかげんなところがちょくちょくあるんだよなあ。 えらそうでなければあまり気にならなかったのにな。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/236
237: デフォルトの名無しさん [sage] 2020/10/17(土) 23:57:03.67 ID:vNzukYIq そういう文法の癖をあげつらう方向なら Rubyも出てくると思うぞ http://mevius.5ch.net/test/read.cgi/tech/1555162340/237
238: デフォルトの名無しさん [sage] 2020/10/18(日) 00:04:38.13 ID:xWXtsYNK >>234 > 一見関数型に見えるが、 どこが?また半可通か。forで関数型とかあり得ないだろマヌケ。知らないなら黙ってろよww http://mevius.5ch.net/test/read.cgi/tech/1555162340/238
239: デフォルトの名無しさん [sage] 2020/10/18(日) 00:06:56.33 ID:4X85KByZ >>235 >あとfor inをプロトタイプ汚染されたオブジェクトに対して回すと恐ろしいことが起きるから基本的に非推奨だよ あえて触れなかったのですが、こう書くべきでしたね for (x in xs) { if (xs.hasOwnProperty(x)) { x に対する処理 } } 以下より引用:JavaScript: The Good Parts - 良いパーツによるベストプラクティス, C.10 for in 文, p140 >>236 >細かいところでいいかげんなところがちょくちょくある 同感ですね、自分もちょくちょくあります そういった事柄はこちらで遠慮せずに発言されてはいかがでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1555162340/239
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ブロックとして解釈されるため) まだまだあるよ http://mevius.5ch.net/test/read.cgi/tech/1555162340/240
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 http://mevius.5ch.net/test/read.cgi/tech/1555162340/241
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/ http://mevius.5ch.net/test/read.cgi/tech/1555162340/242
243: デフォルトの名無しさん [sage] 2020/10/18(日) 00:21:59.27 ID:2DM4LMSp >>241 まあそこは言語の特徴だから そういう用途にはブロックを使えってこと 関数呼び出しに()が必要じゃないのはDSLを書くためには優れた仕様 他の言語で言語内DSLは実質不可能 http://mevius.5ch.net/test/read.cgi/tech/1555162340/243
244: デフォルトの名無しさん [sage] 2020/10/18(日) 00:28:17.88 ID:Xfoy2gzb 明らかに他の言語どころかRubyの理解も 怪しいのがわかる http://mevius.5ch.net/test/read.cgi/tech/1555162340/244
245: デフォルトの名無しさん [] 2020/10/18(日) 00:28:24.01 ID: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 http://mevius.5ch.net/test/read.cgi/tech/1555162340/245
246: デフォルトの名無しさん [sage] 2020/10/18(日) 00:32:03.16 ID: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 http://mevius.5ch.net/test/read.cgi/tech/1555162340/246
247: デフォルトの名無しさん [sage] 2020/10/18(日) 00:35:23.34 ID:xWXtsYNK ブロックとProc.newとprocとlambdaと->があるRubyはやり過ぎ http://mevius.5ch.net/test/read.cgi/tech/1555162340/247
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として以外に存在価値はない。 初心者に勧めるなんてとんでもない。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/248
249: デフォルトの名無しさん [sage] 2020/10/18(日) 00:57:58.47 ID:xeOKOt4d >>231 >streamが標準出力にもファイルにも使えるでしょ。 どうやればいいの? 出来ないと思うけど。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/249
250: デフォルトの名無しさん [sage] 2020/10/18(日) 01:05:21.49 ID: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は自分用としては使えるが、一般人に作ったプログラムを 配布して使ってもらうのは絶望的といえる。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/250
251: デフォルトの名無しさん [sage] 2020/10/18(日) 01:10:26.15 ID:cCnPRoH8 >>234 eachがどう関数型なのか知りたいんだが。 mapならわかるけど。 ただのイテレータだろ。 その中括弧要らないよ。なんか勘違いしてない? http://mevius.5ch.net/test/read.cgi/tech/1555162340/251
252: デフォルトの名無しさん [sage] 2020/10/18(日) 01:14:50.79 ID:cCnPRoH8 >>249 https://qiita.com/masakura/items/5683e8e3e655bfda6756 出来るし、普通はconsoleに出したりしない。 >>250 完全に知識不足。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/252
253: デフォルトの名無しさん [sage] 2020/10/18(日) 01:21:29.87 ID:xeOKOt4d >>252 node.jsで、streamを使ってstdoutへの出力をする方法を具体的に書いてみてください。 なお、書き込む関数もファイルと全く同じ関数群が使えなくてはいけません。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/253
254: デフォルトの名無しさん [sage] 2020/10/18(日) 01:24:00.15 ID:xeOKOt4d >>252 どこの知識不足なのか具体的に書いてください。 Rubyは、ディレクトリコピー、sysytemや外部コマンドの実行でネット検索すれば それぞれすぐに答えが出てきます。 node.jsは英語で検索しても埒の明かない答えばかりで、現実にはまともに 対応できてないものと思われます。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/254
255: デフォルトの名無しさん [sage] 2020/10/18(日) 01:35:18.67 ID:mPnoVdEN リンク見たら普通にlsとpipeの例書いてあるやん http://mevius.5ch.net/test/read.cgi/tech/1555162340/255
256: デフォルトの名無しさん [sage] 2020/10/18(日) 01:43:59.33 ID:xeOKOt4d >>255 パイプではなく、自分のプログラム、例えば、Hello Worldのプログラムで node.jsにおいてstreamを標準出力に書き込むための手段として使う方法を聞いています。 もちろん、元祖C言語ではFILE系のstreamはstdoutに当然対応していますが、 node.jsでは不明確です。 ファイルをオープンする際のファイル名に何かを指定すれば出来るかも知れませんが。 C言語のstdoutに相当するものがどこにあるのか不明です。 番号の0や1なのでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/256
257: デフォルトの名無しさん [sage] 2020/10/18(日) 01:55:48.16 ID:Xfoy2gzb つーか何言いたいんだ? お前のやりたいことが 直感的に言語XでRubyと同様にできないからと言って だからどうしたという話なんだが http://mevius.5ch.net/test/read.cgi/tech/1555162340/257
258: デフォルトの名無しさん [sage] 2020/10/18(日) 02:01:56.18 ID:2DM4LMSp Rubyアンチスレがモダン言語アンチスレになってきたな http://mevius.5ch.net/test/read.cgi/tech/1555162340/258
259: デフォルトの名無しさん [sage] 2020/10/18(日) 02:03:58.45 ID:xeOKOt4d process.stdout.fd が fd の int 整数の「1」になっていて、 これを fs.writeSync()の第一引数に渡せば標準出力に 出力できることが分かりました。 しかし、ドキュメントが不十分でめちゃくちゃ分かりにくいです。 Rubyのドキュメントは非常に分かり易いです。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/259
260: デフォルトの名無しさん [sage] 2020/10/18(日) 02:09:23.19 ID:xeOKOt4d node.jsは、自慢で立派そうなnpmコマンドがあっても、NODE_PATHという 基本中の基本の環境変数すら設定されません。 これでfs-extraモジュールを追加インストールしなければ同期コピーすら出来ないのに。 同期的な外部コマンド実行も同様だと予想されます。 サーバーサイドの裏方として用いるならともかく、これをデスクトップマシンの BATファイルの代わりやスクリプト言語として、一般人向けに配布することは この段階で不可能となります。 その分野では現段階ではRubyが一番適切です。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/260
261: デフォルトの名無しさん [sage] 2020/10/18(日) 02:27:50.97 ID:4X85KByZ >>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 の時代から 存在しますから、「行き当たりばったりで導入」した例としては不適切です 「直感的な記述が逆にエラーとなることが “多い”」のであれば、別の例を挙げるべきでしょう http://mevius.5ch.net/test/read.cgi/tech/1555162340/261
262: デフォルトの名無しさん [sage] 2020/10/18(日) 02:31:11.77 ID:xeOKOt4d 後、変数someの展開を文字列の中で行いたい場合 Ruby: "some=#{some}" JS: `some=${some}` の書き方もRubyの方が便利。 逆引用符は入れにくいし 他が普通の二重引用符なのに一部だけ逆引用符なのは 分かりにくくなりやすい。 それから、\ からエスケープシーケンスの働きをなくして単なる文字として扱うのが Rubyだと一重引用符を使って 'aaa\bbb\ccc' のように書けるが Node.jsだと String.raw`aaa\bbb\ccc` としか書けなくてとても不便。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/262
263: デフォルトの名無しさん [sage] 2020/10/18(日) 02:31:11.80 ID:xeOKOt4d 後、変数someの展開を文字列の中で行いたい場合 Ruby: "some=#{some}" JS: `some=${some}` の書き方もRubyの方が便利。 逆引用符は入れにくいし 他が普通の二重引用符なのに一部だけ逆引用符なのは 分かりにくくなりやすい。 それから、\ からエスケープシーケンスの働きをなくして単なる文字として扱うのが Rubyだと一重引用符を使って 'aaa\bbb\ccc' のように書けるが Node.jsだと String.raw`aaa\bbb\ccc` としか書けなくてとても不便。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/263
264: デフォルトの名無しさん [sage] 2020/10/18(日) 02:38:08.76 ID:2DM4LMSp >>262 まあそれは後方互換維持のための苦肉の策ですし使い勝手は悪いですね Rubyのは全言語の中でも1番便利ですね 関数呼び出しも展開してくれるし http://mevius.5ch.net/test/read.cgi/tech/1555162340/264
265: デフォルトの名無しさん [sage] 2020/10/18(日) 03:14:31.59 ID:+jyuYXh8 まつもと:それから「Backquotes」の地上げも考えていたんですけども、Backquotesをするとシェルで実行して結果を文字列で返すってやつですね。 (参加者から「いける、いける」の声) まつもと:なんかあの辺で「いける、いける」って言ってる人がいますけど、信じない(笑)。なので、これももうちょっと先で、もう1回くるかもしれませんが、少なくとも3.0では死なないということです。 https://logmi.jp/tech/articles/321308 バージョンによって使えてたクォートが使えなくなったりするクソ言語 http://mevius.5ch.net/test/read.cgi/tech/1555162340/265
266: デフォルトの名無しさん [sage] 2020/10/18(日) 03:22:15.46 ID:+jyuYXh8 まさに行き当たりバッタリ http://mevius.5ch.net/test/read.cgi/tech/1555162340/266
267: デフォルトの名無しさん [sage] 2020/10/18(日) 08:10:15.29 ID:cCnPRoH8 >>253 書いてあるでしょ、リンク先に。 ファイルと同じ関数群使えます。 nodejsもググればprocessモジュールに行き着くかと。 外部コマンドは普通はあんまりつかわんけど。 環境依存させたくないので。 基本的にクロスプラットフォームな物を叩くけど、そういうのはそもそもnodeだったりする。 ディレクトリコピーも、cpxあたりだとサッと行くと思うかと。 まぁコピーぐらいは中でやるもんだけど。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/267
268: デフォルトの名無しさん [sage] 2020/10/18(日) 08:10:56.74 ID:cCnPRoH8 >>259 な、知識不足だったでしょ。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/268
269: デフォルトの名無しさん [sage] 2020/10/18(日) 08:12:14.24 ID:cCnPRoH8 >>260 環境変数なんか必要ないんよ。 というかグローバルインストールしてそうなってる?もしかして。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/269
270: デフォルトの名無しさん [sage] 2020/10/18(日) 08:53:53.60 ID:xeOKOt4d >>269 ローカルにインストールするなんて馬鹿。 ストレージの無駄使い。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/270
271: デフォルトの名無しさん [sage] 2020/10/18(日) 08:58:14.29 ID:xeOKOt4d 差分バックアップが流行ってるかも知れんけど 一箇所でも壊れるとそれ以前(または以後)の全てのバージョンが再現できなくな るのでディスクの故障に対して無力で、バックアップの意味が無い。 不具合があったとき以前のバージョンとWinDiffなどで比較すると原因箇所の 絞込みが出来るが、差分バックアップではそれがやりにくい。 比較ツールがその差分ツールの俺々ツールに限定されてしまうし。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/271
272: デフォルトの名無しさん [sage] 2020/10/18(日) 09:34:36.57 ID:tW6VBC66 ruby界隈のしょうもないシンタックスへのこだわりとか オブジェクト思考の過剰な押し付け感はやっぱ嫌いだわ。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/272
273: デフォルトの名無しさん [sage] 2020/10/18(日) 09:42:10.14 ID:cCnPRoH8 >>270 アホか。 dll hell起こしたいのか? イマドキなんでもサイドバイサイドだろ。 dedupの効くファイルシステム使えばよかろう。 そういう所ついていけてないから、NODE_PATHがどうとか言っちゃうんだよ。 嫌なら、一つ上のフォルダでnpm i しておけ。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/273
274: デフォルトの名無しさん [sage] 2020/10/18(日) 09:44:08.23 ID:Xfoy2gzb Ruby界隈はこういう物知らずの馬鹿の相手も増えるから 面倒くさいわ http://mevius.5ch.net/test/read.cgi/tech/1555162340/274
275: デフォルトの名無しさん [sage] 2020/10/18(日) 10:06:21.75 ID:vr2ApWZ6 >>273 何を言ってるの。 馬鹿めが。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/275
276: デフォルトの名無しさん [sage] 2020/10/18(日) 10:19:59.62 ID:mPnoVdEN 同期への異様な拘りの時点で何でnode始めたの?ってレベルだし もう細かいことはいいんでないの http://mevius.5ch.net/test/read.cgi/tech/1555162340/276
277: デフォルトの名無しさん [sage] 2020/10/18(日) 10:34:25.01 ID:cCnPRoH8 >>275 なぜ馬鹿と言われたのかわからんのだが、一つ上のディレクトリでローカルインストールしたらどうなるか理解できんのだろうか。 ちょっと冷静に話ししてみて。 正直に言って、stdoutのfdが整数値1って所が理解できてないのもわからんのだよ。 もともとstdoutってそうじゃん? むしろ、ファイルディスクリプタが1のすでに開いてあるファイルを標準出力と読んで、コンソールはそれを表示してるだけじゃんよ? http://mevius.5ch.net/test/read.cgi/tech/1555162340/277
278: デフォルトの名無しさん [sage] 2020/10/18(日) 10:35:47.88 ID:cCnPRoH8 >>271 差分バックアップの意味がわからん。 node_modulesの中身バックアップしてるとしたら頭おかしいぞ。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/278
279: デフォルトの名無しさん [sage] 2020/10/18(日) 11:36:00.74 ID:vr2ApWZ6 >>277 >正直に言って、stdoutのfdが整数値1って所が理解できてないのもわからんのだよ。 >もともとstdoutってそうじゃん? >むしろ、ファイルディスクリプタが1のすでに開いてあるファイルを標準出力と読んで、コンソールはそれを表示してるだけじゃんよ? あなたはアスペ。 stdoutのfdは、OSれべるでは1なのは誰でも知ってる基礎知識。 しかし、JSのような高級言語でその整数値をそのまま使う例は非常に少ないのに Node.jsでは使っているのにそれをほとんど説明して無いからnode.js 初心者が分かるわけ無い。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/279
280: デフォルトの名無しさん [sage] 2020/10/18(日) 11:44:19.62 ID:mPnoVdEN そりゃ普通はprocess.stdout.writeだからな そもそものコンセプトを無視して同期に固執するからそうなる http://mevius.5ch.net/test/read.cgi/tech/1555162340/280
281: デフォルトの名無しさん [] 2020/10/18(日) 11:59:00.56 ID:H1xH1BRx rubyが糞だと思う理由 プログラム本体よりもテストコードの方が大きくなる http://mevius.5ch.net/test/read.cgi/tech/1555162340/281
282: デフォルトの名無しさん [sage] 2020/10/18(日) 12:02:58.93 ID:Ie2s5K3J >>279 初心者なんか相手にされてないだけやろ。 しゃあない。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/282
283: デフォルトの名無しさん [sage] 2020/10/18(日) 12:23:13.29 ID:CqLBM1Q2 Rubyが嫌いというよりは、無関係なスレでコピペを貼り付けるの人が嫌い。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/283
284: デフォルトの名無しさん [sage] 2020/10/18(日) 12:54:38.94 ID:cCnPRoH8 >>279 アスペだかなんだか知らんが。 整数値をそのまま使うというか、fdまで見たらそうなるに決まってるじゃん。 fs.write...Syncを使いたがるからそうなるんであって、普通にstreamをpipeすれば全部隠蔽されるよ。 jsのような高級言語ではね。 説明してるけど。 ドキュメント読んだ? ドキュメントがしっかりしてるから、初心者向けの解説サイトが無いんだぞ? rubyが何故解説サイトばっかかわかる? ドキュメントがクソだからだぞ。 ググればわかるって目茶苦茶レベル低いこと自覚しろよ。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/284
285: デフォルトの名無しさん [] 2020/10/18(日) 13:02:01.41 ID:H1xH1BRx ttps://logmi.jp/tech/articles/321280 >プロジェクトが大きくなるに従って、テストがだんだん苦痛になってくるんですね。 >テストのサイズが大きくなったりとか、あるいはテストの実行時間が長くなったりとかして、 >だんだんだんだん苦痛になってくることが多いですね。 > >告白すると、私はテストが嫌いなんです。 良く判っていらっしゃる http://mevius.5ch.net/test/read.cgi/tech/1555162340/285
286: デフォルトの名無しさん [sage] 2020/10/18(日) 13:41:15.44 ID:G9hN4s0l ttps://logmi.jp/tech/articles/321308 正直言うとみなさんはいいですよ。Rubyが無くなってもPythonでもJavaScriptでもいったらいいと思うんですけど。 私や一部のコアコミッターは職業なので、Rubyが無くなったら本当に困るんですよ。 それで、みなさんの困るの程度はともかくとして、Rubyは生き残ったほうがいいと思うんですよ。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/286
287: デフォルトの名無しさん [sage] 2020/10/18(日) 15:30:16.60 ID:Vj/rkYxM https://logmi.jp/tech/articles/321280 > 思い出していただきたいのは、Twitterはずっと1.8を使い続けていたんですね。「パフォーマンス遅い、遅い」って文句言ってるわりには、ずっと1.8を使い続けて、あろうことか1.8を改造して「kiji」という独自のバージョンを作りかけてやめちゃったことがあります。 そりゃマイナーバージョンにひとつで前動いてたコードが動かなくなるクソ開発ポリシークソ体制だからだろww 互換性という点でまったく信頼されてない。 JavaScriptほどとは言わんがせめてPHP程度には互換性保つ努力しろカスw 独自バージョンにやめたのもやってみたら箸にも棒にもかからない糞だと明らかになったからだろカスwww http://mevius.5ch.net/test/read.cgi/tech/1555162340/287
288: デフォルトの名無しさん [sage] 2020/10/18(日) 15:41:15.66 ID:WlQf1Fni 以下は、表紙にサイの絵が描かれた、2冊のサイ本 JavaScript 第6版、2012、David Flanagan 初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017 これらを読むだけでも、数年は掛かる。 それぐらい、JavaScript には罠が多い Google などの技術者の机には、必ず置いてあるけど、10年経っても捨てられない 一方、Ruby では「たのしいRuby 第6版」を読むだけ。 3回ぐらい読んだら、本を捨てても、検索しながらプログラミングできる http://mevius.5ch.net/test/read.cgi/tech/1555162340/288
289: デフォルトの名無しさん [sage] 2020/10/18(日) 16:44:48.24 ID:Vj/rkYxM https://logmi.jp/tech/articles/321280 > 思い出していただきたいのは、Twitterはずっと1.8を使い続けていたんですね。「パフォーマンス遅い、遅い」って文句言ってるわりには、ずっと1.8を使い続けて、あろうことか1.8を改造して「kiji」という独自のバージョンを作りかけてやめちゃったことがあります。 そりゃマイナーバージョンひとつで前動いてたコードが動かなくなるクソ開発ポリシークソ体制だからだろww 互換性という点でまったく信頼されてない。 JavaScriptほどとは言わんがせめてPHP程度には互換性保つ努力しろカスw 独自バージョンやめたのもやってみたら箸にも棒にもかからない糞だと明らかになったからだろカスwww http://mevius.5ch.net/test/read.cgi/tech/1555162340/289
290: デフォルトの名無しさん [sage] 2020/10/18(日) 19:18:15.84 ID:Ie2s5K3J >>287 ホンマ、論理のすり替えもええとこやな。w 後続バージョンなら速いのに、と言ったって、Twitterにはそれでも全然足りてないやろ。 言語仕様的に速くできそうもないから、すっぱり見限られたとは思わんのか。 でも、2回も書き込まんでええで。w http://mevius.5ch.net/test/read.cgi/tech/1555162340/290
291: デフォルトの名無しさん [sage] 2020/10/18(日) 20:20:35.44 ID:nO3WulLv >>286 コミッタとか言う潰しの効かないことを仕事にしてる時点でダメでしょ 自己責任だわ クックパッドとかfreeは囲い込んでるらしいけど 他の言語への移行の妨げにしかならんから早く首を切るべき もしくは普通の仕事に配置転換するか http://mevius.5ch.net/test/read.cgi/tech/1555162340/291
292: デフォルトの名無しさん [sage] 2020/10/18(日) 20:53:01.14 ID:tW6VBC66 >本当はテストを書きたくないんですよ。 >というのもDRYじゃないですよね。 >私たちはプログラムを書きたいんであって、テストを書きたいわけではないわけですよ。 >ただ、人類はまだプログラムを書くだけで、正しいプログラムを作る方法を知らないので、仕方がないのでテストを書いているのが現状だと思います。 この辺の話聞いてるとやっぱrubyあかんわと思うわ。。そりゃクソコードも量産されるわな。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/292
293: デフォルトの名無しさん [sage] 2020/10/18(日) 21:20:57.47 ID:7+JgvQkH > 型宣言嫌いなんですよね。 > なんでかというと、DRYじゃないからなんですよ。 静的型付けや型推論のちゃんとある言語使った経験からするとと意味不明 http://mevius.5ch.net/test/read.cgi/tech/1555162340/293
294: デフォルトの名無しさん [] 2020/10/18(日) 21:38:55.23 ID:IuIrSK3A 復唱確認って嫌いなんですよね。DRYじゃない。 と例えればわかる 同じことを言うことで確認を行ってるんだよ 人間がミスをしないなら、そりゃ一回言うだけでいいだろうさ http://mevius.5ch.net/test/read.cgi/tech/1555162340/294
295: デフォルトの名無しさん [sage] 2020/10/18(日) 21:47:13.29 ID:tW6VBC66 こういう話も2010年ごろにしてるならまだわかるけど2019年時点でしてるんだぜ。。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/295
296: デフォルトの名無しさん [sage] 2020/10/18(日) 23:39:34.87 ID:2DM4LMSp テストとDRYって関係あるんか? そもそもDRYすらもう死語な気がするのだが http://mevius.5ch.net/test/read.cgi/tech/1555162340/296
297: デフォルトの名無しさん [sage] 2020/10/19(月) 02:05:26.25 ID:qEackmxJ >>294 int *p=new int(0); で、型を2回書いてるとかそういう話やろ。 じゃあ、1回ですませられるように auto *p=new int(0); でも、 int *p=new(0); でも、そういうことを考えるのが言語仕様策定ってもんなのにな。 「型は嫌ー」て、もうええわ。 逃げてるままで何回言うんや。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/297
298: デフォルトの名無しさん [sage] 2020/10/19(月) 05:24:08.41 ID:/NkPf9M1 できるけど思想があってやらない(という合理的な判断) ではなく、 できないから屁理屈こねて不合理でミジメな言い訳 だからな。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/298
299: デフォルトの名無しさん [sage] 2020/10/19(月) 10:58:35.33 ID:ACx4Rbde >>297 DRYっていうのはテストの話だよ http://mevius.5ch.net/test/read.cgi/tech/1555162340/299
300: デフォルトの名無しさん [sage] 2020/10/19(月) 12:24:17.87 ID:9YkDkPea >>299 型の話でも言ってる http://mevius.5ch.net/test/read.cgi/tech/1555162340/300
301: デフォルトの名無しさん [sage] 2020/10/19(月) 13:06:27.69 ID:ACx4Rbde 今はテストの話をしてる http://mevius.5ch.net/test/read.cgi/tech/1555162340/301
302: デフォルトの名無しさん [sage] 2020/10/19(月) 13:20:15.49 ID:qEackmxJ >>301 >>293 勝手に縛るな。 http://mevius.5ch.net/test/read.cgi/tech/1555162340/302
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 40 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s