スレタイ以外の言語もok
前スレ
次世代言語28 TypeScript Swift Go Kotlin Rust Nim
https://mevius.5ch.net/test/read.cgi/tech/1661739736/
探検
次世代言語29 TypeScript Swift Go Kotlin Rust Nim
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2022/09/17(土) 19:05:49.83ID:6v3irpfN472デフォルトの名無しさん
2022/09/26(月) 14:41:03.61ID:heiSJ5NK 暇なんか
473デフォルトの名無しさん
2022/09/26(月) 14:46:16.26ID:tGukFybk 暇なんや、ごめん。。。
474デフォルトの名無しさん
2022/09/26(月) 14:51:59.22ID:6oNZz9Ue >>469
根拠を示していないから、ただの誹謗中傷にしかなっていない。
煽るにしても、もうちょっとそれらしい主張にしたら?
例えば「JVM系の言語はだらしなくヒープを使うからネイティブにしても速くならない。そんなのをやるんだったら、安全性と速さを両立したRustを勉強したほうがいい」とか。
根拠を示していないから、ただの誹謗中傷にしかなっていない。
煽るにしても、もうちょっとそれらしい主張にしたら?
例えば「JVM系の言語はだらしなくヒープを使うからネイティブにしても速くならない。そんなのをやるんだったら、安全性と速さを両立したRustを勉強したほうがいい」とか。
475デフォルトの名無しさん
2022/09/26(月) 16:55:54.26ID:heiSJ5NK ruby は ruby で実装されています
遅くなる罠
遅くなる罠
476デフォルトの名無しさん
2022/09/26(月) 17:38:57.35ID:a/RKbAyr477デフォルトの名無しさん
2022/09/26(月) 17:45:13.50ID:6tM7XGma >>469
JVM言語の唯一のメリットであるポータブルな点は当時と比べて重要度を失っているんじゃないかな
もちろんポータブル自体は有利だけどJVMよりもっと様々な必要や要素を兼ね備えたWASMの出現が大きかったね
後発だから色んな改善がされているのは当たり前だけどWASM>JVMであることは否定しようがないもんね
JVM言語の唯一のメリットであるポータブルな点は当時と比べて重要度を失っているんじゃないかな
もちろんポータブル自体は有利だけどJVMよりもっと様々な必要や要素を兼ね備えたWASMの出現が大きかったね
後発だから色んな改善がされているのは当たり前だけどWASM>JVMであることは否定しようがないもんね
478デフォルトの名無しさん
2022/09/26(月) 20:34:04.50ID:aq2MKDiL https://github.com/benhoyt/countwords
Language x10 x100 x200 x400 Memory Comment
--------------------------------------------------------------
Zig 0.118 1.073 2.113 4.203 3.2MB (std.HashMap + "caller hash" by Context(std.hash.Fnv1a_64.hash))
C(gcc) 0.136 1.146 2.271 4.531 2.0MB (optimized.c, binIO,jemalloc,O4,LTO) NEW
C(clang/LLVM) 0.137 1.147 2.280 4.544 2.0MB (optimized.c, binIO,jemalloc,O3,LTO) NEW
Go 0.177 1.412 2.733 5.446 3.8MB (caller hash)<--from過去スレ
Rust(LLVM) 0.154 1.425 2.838 5.674 2.6MB (optimized-customhashmap,O3,LTO,caller-hash) NEW
以下、caller-hashではない
Zig 0.162 1.493 2.970 5.935 4.6MB (std.StringHashMap)
Rust(LLVM) 0.214 1.725 3.396 6.715 3.5MB (optimized,fxhash,O3,LTO) NEW
zig version 0.10.0-dev.4166+cae76d829
gcc 12.2.0/clang 15.0.0
rustc 1.64.0 (a55dd71d5 2022-09-19)
CPU Zen3@boost max~4.75GHz
Go Ryzen9 5900X windows11 <-- Boost Clock. Up to 4.8GHz.?
Rust(optimized-customhashmap)はC(optimized.c)と「コードを合わせ」てあるはずだが、コンパイルオプション程度の「簡単」な工夫を試した限りではgcc/clangと「ほぼ同じ結果にはならなかった」
「コードを合わせたRust」がCと比べて「2~3割程度遅い」のは「そういう場合もあるよね」で驚きも失望もない
意外なのは過去スレGoがRustと同水準だ(起動時間0.03s程度以外むしろGoの方が速い)という事。(こちらで再現したわけではない)
Language x10 x100 x200 x400 Memory Comment
--------------------------------------------------------------
Zig 0.118 1.073 2.113 4.203 3.2MB (std.HashMap + "caller hash" by Context(std.hash.Fnv1a_64.hash))
C(gcc) 0.136 1.146 2.271 4.531 2.0MB (optimized.c, binIO,jemalloc,O4,LTO) NEW
C(clang/LLVM) 0.137 1.147 2.280 4.544 2.0MB (optimized.c, binIO,jemalloc,O3,LTO) NEW
Go 0.177 1.412 2.733 5.446 3.8MB (caller hash)<--from過去スレ
Rust(LLVM) 0.154 1.425 2.838 5.674 2.6MB (optimized-customhashmap,O3,LTO,caller-hash) NEW
以下、caller-hashではない
Zig 0.162 1.493 2.970 5.935 4.6MB (std.StringHashMap)
Rust(LLVM) 0.214 1.725 3.396 6.715 3.5MB (optimized,fxhash,O3,LTO) NEW
zig version 0.10.0-dev.4166+cae76d829
gcc 12.2.0/clang 15.0.0
rustc 1.64.0 (a55dd71d5 2022-09-19)
CPU Zen3@boost max~4.75GHz
Go Ryzen9 5900X windows11 <-- Boost Clock. Up to 4.8GHz.?
Rust(optimized-customhashmap)はC(optimized.c)と「コードを合わせ」てあるはずだが、コンパイルオプション程度の「簡単」な工夫を試した限りではgcc/clangと「ほぼ同じ結果にはならなかった」
「コードを合わせたRust」がCと比べて「2~3割程度遅い」のは「そういう場合もあるよね」で驚きも失望もない
意外なのは過去スレGoがRustと同水準だ(起動時間0.03s程度以外むしろGoの方が速い)という事。(こちらで再現したわけではない)
479デフォルトの名無しさん
2022/09/26(月) 21:18:14.74ID:kqzwQQxQ またキチガイが粘着にデマを蒸し返してるのか
RustがC/C++と同等の速さで動くことは世界中で様々なケースで確認済み
今は次の段階へ進んでいて新たなシステム構築からRustへ置き換わって行ってる
RustがC/C++と同等の速さで動くことは世界中で様々なケースで確認済み
今は次の段階へ進んでいて新たなシステム構築からRustへ置き換わって行ってる
480デフォルトの名無しさん
2022/09/26(月) 21:28:58.87ID:C6vutbgO Rustはコードがスパゲッティになっちゃうから
その分遅くなる可能性あるよね
スパゲッティにならなきゃCと同等だよ
その分遅くなる可能性あるよね
スパゲッティにならなきゃCと同等だよ
481デフォルトの名無しさん
2022/09/26(月) 21:31:40.65ID:O0BeXmlV >>479
さすがにそりゃ無理だろ。
さすがにそりゃ無理だろ。
482デフォルトの名無しさん
2022/09/26(月) 21:46:52.90ID:9MQ9piMO483デフォルトの名無しさん
2022/09/26(月) 21:52:22.11ID:+dm3CjP+ 保守性の悪いスパゲッティなコードを書く人がRustを嫌っているのはそこだな
Rustだといつもの汚い思い通りのコードが書けないからイライラするのだろう
Rustだといつもの汚い思い通りのコードが書けないからイライラするのだろう
484デフォルトの名無しさん
2022/09/26(月) 22:14:45.96ID:/nP0aUDh Rustスレで自己満クソコードをいっぱい貼った子がおってなw
あれたぶん自分ではきれいな非スパゲッティコードだと思ってるんやろな
あれたぶん自分ではきれいな非スパゲッティコードだと思ってるんやろな
485デフォルトの名無しさん
2022/09/26(月) 22:20:48.84ID:beq6P1IL486デフォルトの名無しさん
2022/09/26(月) 22:36:11.87ID:jR+qoQ1m 汚コーダーこと複オジ必死ww
487デフォルトの名無しさん
2022/09/26(月) 22:39:34.93ID:8PEh+vqG Rustはある種のBDUFを強制するから良い場合もあれば良くない場合もある
488デフォルトの名無しさん
2022/09/26(月) 22:52:31.71ID:pezTruwP 具体的にその汚いコードというのを見てみたい
もし本当にあるならば
もし本当にあるならば
489デフォルトの名無しさん
2022/09/26(月) 23:05:18.27ID:/nP0aUDh 自分ではキレイと思ってるから自分では自信があったのかなw
スレ住民にクソコード貼るなって言われても意固地になってたよw
その流れを再放送するなら無意味だよね
聞く耳持たないだけだから
スレ住民にクソコード貼るなって言われても意固地になってたよw
その流れを再放送するなら無意味だよね
聞く耳持たないだけだから
490デフォルトの名無しさん
2022/09/26(月) 23:10:51.04ID:s+ZBVtyn 仕様をよっぽど気に入らない限りコードなんて見なければいい
仕様が憎ければコードまで汚く見える
仕様が憎ければコードまで汚く見える
491デフォルトの名無しさん
2022/09/26(月) 23:19:28.91ID:pT4nta3W スパゲティコード見せて
Rustで見かけたことないので興味ある
Rustで見かけたことないので興味ある
492デフォルトの名無しさん
2022/09/26(月) 23:27:53.64ID:UCDuW+LB >>489
「ママー、きょうこんなコードかいたんだよ、みてみてー」ってノリだったから汚いかどうかは眼中になかったんだろ
気持ち悪いおっさんが幼稚園児メンタルで汚コードを一日中貼り続けるからマジキモかったけどな
「ママー、きょうこんなコードかいたんだよ、みてみてー」ってノリだったから汚いかどうかは眼中になかったんだろ
気持ち悪いおっさんが幼稚園児メンタルで汚コードを一日中貼り続けるからマジキモかったけどな
493デフォルトの名無しさん
2022/09/26(月) 23:30:20.22ID:27oIc9Ns494デフォルトの名無しさん
2022/09/26(月) 23:32:17.55ID:/nP0aUDh 再放送になるだけだから相手しちゃダメよ
495デフォルトの名無しさん
2022/09/26(月) 23:33:27.62ID:TfyFKTsU スパゲッティな汚いコードが貼られているスレどこよ?
496デフォルトの名無しさん
2022/09/26(月) 23:38:47.29ID:n/I9g/yq 昔はgotoだらけの制御が絡み合って個々に分解しにくいコードを指してスパゲティと呼んだものだが
今時そんなgotoだらけのコードはないだろうから、どんなコードを指してスパゲティと呼んだのか興味はある。
今時そんなgotoだらけのコードはないだろうから、どんなコードを指してスパゲティと呼んだのか興味はある。
497デフォルトの名無しさん
2022/09/26(月) 23:40:55.28ID:Lm6MVDpz コードを示せない上にスレも示せないって、スパコードが実在しないんじゃね
498デフォルトの名無しさん
2022/09/26(月) 23:42:48.94ID:s+ZBVtyn きれい
a + (b + c) = (a + b) + c
汚い
(= (+ a (+ b c)) (+ (+ a b) c))
a + (b + c) = (a + b) + c
汚い
(= (+ a (+ b c)) (+ (+ a b) c))
499デフォルトの名無しさん
2022/09/26(月) 23:48:39.78ID:TKJcQCDW Rustでスパゲッテイなコードは起きないだろうから
>>484がRustを叩きたくて嘘をついていて引くに引けなくなっただけだと思うよ
>>484がRustを叩きたくて嘘をついていて引くに引けなくなっただけだと思うよ
500デフォルトの名無しさん
2022/09/26(月) 23:54:32.25ID:Jsp+UQ/m 最初から「Rustスレ」でって書いてあるじゃん
ディープコピーすら知らなかった複オジの黒歴史を見てこいよw
ディープコピーすら知らなかった複オジの黒歴史を見てこいよw
501デフォルトの名無しさん
2022/09/26(月) 23:56:01.56ID:OQjD8tr1502デフォルトの名無しさん
2022/09/27(火) 00:01:35.99ID:GvJUGqKn Rustスレもいつも眺めているがスパゲティコードらしきものを見たことないな
そもそもRustでスパゲッティコードというものが想像つかん
そもそもRustでスパゲッティコードというものが想像つかん
503デフォルトの名無しさん
2022/09/27(火) 00:16:44.35ID:8a7P63B1 急に必死じゃん
ウケる
ウケる
504デフォルトの名無しさん
2022/09/27(火) 00:29:16.23ID:N/hVnqtI 結局Rustアンチの人による妄想なの?
次世代言語でのスパゲッティ見てみたかった
次世代言語でのスパゲッティ見てみたかった
505デフォルトの名無しさん
2022/09/27(火) 06:55:28.90ID:IOhA+x8R 言語のアンチをしている時点で異常者だから
506デフォルトの名無しさん
2022/09/27(火) 07:43:25.27ID:IZdkb4Kl >>482
「改善する方向に誘導」は嘘。
マズそうなデータ構造で助言してくれるわけじゃない。
実際は「煮詰まってきたときにコンパイルが拒否する」が正解。Rustはにっちもさっちもいかなくなってから「これはダメ」と放り投げる。
「改善する方向に誘導」は嘘。
マズそうなデータ構造で助言してくれるわけじゃない。
実際は「煮詰まってきたときにコンパイルが拒否する」が正解。Rustはにっちもさっちもいかなくなってから「これはダメ」と放り投げる。
507デフォルトの名無しさん
2022/09/27(火) 09:16:32.53ID:rf9DOsrN テスト駆動によれば、テストが通らない状態から始めるように誘導しなければ
改善へ誘導したと言えなくなる
改善へ誘導したと言えなくなる
508デフォルトの名無しさん
2022/09/27(火) 09:41:06.42ID:cEY2BOsF Rustが叩かれてるというよりは単に複オジが叩かれてるだけなんだがw
このへんの区別がつかない人と話になる?w
このへんの区別がつかない人と話になる?w
509デフォルトの名無しさん
2022/09/27(火) 11:19:43.94ID:UjKs3SUd このスレはなぜJuliaの話題が無いのか
単純な計算やループだとRustのようにCと同等のネイティブコードで実行でき簡単に並列化・分散化してスケールする。
行列を標準で扱え、コンパイルも出来てスクリプト言語のように手軽にcliで実行できる。面倒な型は普通に型推論だが
逆行する推論を備え、それによってコンパイル言語でありえない動的さと、Lispのような真のマクロを備える
それともどこかにある最適な実装を、シコシコとオレ様実装してしまう泥臭く真の漢のシステムプログラマーばかりなのか
単純な計算やループだとRustのようにCと同等のネイティブコードで実行でき簡単に並列化・分散化してスケールする。
行列を標準で扱え、コンパイルも出来てスクリプト言語のように手軽にcliで実行できる。面倒な型は普通に型推論だが
逆行する推論を備え、それによってコンパイル言語でありえない動的さと、Lispのような真のマクロを備える
それともどこかにある最適な実装を、シコシコとオレ様実装してしまう泥臭く真の漢のシステムプログラマーばかりなのか
510デフォルトの名無しさん
2022/09/27(火) 11:26:01.22ID:5Lv2ihqk >>509
汎用言語じゃないから
汎用言語じゃないから
511デフォルトの名無しさん
2022/09/27(火) 11:38:54.13ID:XJRFtCjW >>509
その単純な計算やループはたまにしか使わない
JuliaはGC言語なのにヒープメモリをできる限り少なくするプログラミングをプログラマーがしなければいけない
そのへんに気を使わずプログラムを作ると速さに大きな差が出る
つまりメモリ管理は気にせず言語に任せておけばいいという言語じゃない
なのにガベージコレクションが発生する
その単純な計算やループはたまにしか使わない
JuliaはGC言語なのにヒープメモリをできる限り少なくするプログラミングをプログラマーがしなければいけない
そのへんに気を使わずプログラムを作ると速さに大きな差が出る
つまりメモリ管理は気にせず言語に任せておけばいいという言語じゃない
なのにガベージコレクションが発生する
512デフォルトの名無しさん
2022/09/27(火) 12:04:52.19ID:pQ5zmsRD >>509
今時数値計算をCPUでやるおじさんは老害
今時数値計算をCPUでやるおじさんは老害
513デフォルトの名無しさん
2022/09/27(火) 12:51:08.64ID:5P+0Jw0N Juliaは多重ディスパッチでデータ型とアルゴリズム実装を自由に組み合わせられるみたいなのが売りの一つだと思うけど
ちゃんとテストされてない組み合わせだと簡単に計算結果を間違うという指摘が結構あって
数値計算向けの言語としては致命的なんではないかなぁと思っている
ちゃんとテストされてない組み合わせだと簡単に計算結果を間違うという指摘が結構あって
数値計算向けの言語としては致命的なんではないかなぁと思っている
514デフォルトの名無しさん
2022/09/27(火) 13:19:39.57ID:rf9DOsrN カリー化の要領で単一ディスパッチに帰着するパターンの正式名称が致命的だった
515デフォルトの名無しさん
2022/09/27(火) 15:29:16.37ID:bek5280g >>511
本当に触ったことありますか?どんな言語だとしても、ループ内でのヒープメモリ割り当てなんて気を付けて書く。
それはRustだって同じ事、GCというかスコープを外れたらOSが回収するが、決してメモリーを気にしないような
プログラミングなんてしない、これはGoでもJavaでも同じ。これを気にしない人はカッコ付けて再帰呼び出しを
してみたりスタックさえ気にしない人が稀にいる
本当に言いたいことを最後に書く日本人の典型だと思うが、そりゃGCはGC系なので発生するでしょうね
>>512
いまどきならCUDA.jlやAMDGPU.jlというものがある。だがRustだとかGoだとかもGPUを普通は使ったりしない。
前者は標準の高階関数で悦に入ってるのがその証拠であり、後者は多数のgoroutineで疑似パラレル処理を
するわけだが稀にGPUを使うとしても特殊例に過ぎない
>>513
そりゃテストされてない組み合わせなんてまともに動くほうが稀だとおもうけど。Rustでいえば少し昔のactixを
async-stdで動かすようなもんだろう、動的呼び出しのコストを気にして、動的性がほとんどないRustやGoと
比べるのが違うんだろうと思うが、letだのvarだの書かないのは、型推測の究極系からいうとありだと思う。
パターンマッチングもあるし、ライバルはRustとかじゃなく、PythonのDeepleaning系やRなんだろうと思うが
本当に触ったことありますか?どんな言語だとしても、ループ内でのヒープメモリ割り当てなんて気を付けて書く。
それはRustだって同じ事、GCというかスコープを外れたらOSが回収するが、決してメモリーを気にしないような
プログラミングなんてしない、これはGoでもJavaでも同じ。これを気にしない人はカッコ付けて再帰呼び出しを
してみたりスタックさえ気にしない人が稀にいる
本当に言いたいことを最後に書く日本人の典型だと思うが、そりゃGCはGC系なので発生するでしょうね
>>512
いまどきならCUDA.jlやAMDGPU.jlというものがある。だがRustだとかGoだとかもGPUを普通は使ったりしない。
前者は標準の高階関数で悦に入ってるのがその証拠であり、後者は多数のgoroutineで疑似パラレル処理を
するわけだが稀にGPUを使うとしても特殊例に過ぎない
>>513
そりゃテストされてない組み合わせなんてまともに動くほうが稀だとおもうけど。Rustでいえば少し昔のactixを
async-stdで動かすようなもんだろう、動的呼び出しのコストを気にして、動的性がほとんどないRustやGoと
比べるのが違うんだろうと思うが、letだのvarだの書かないのは、型推測の究極系からいうとありだと思う。
パターンマッチングもあるし、ライバルはRustとかじゃなく、PythonのDeepleaning系やRなんだろうと思うが
516デフォルトの名無しさん
2022/09/27(火) 15:42:59.62ID:R6/41eV0 めっちゃw早口で言ってそうw
517デフォルトの名無しさん
2022/09/27(火) 16:39:12.74ID:ZRU3zNgl >>515
> どんな言語だとしても、ループ内でのヒープメモリ割り当てなんて気を付けて書く。
多くのGC言語では、そんなことを気にせずGC任せのプログラマーが多数派だと思います
> GCというかスコープを外れたらOSが回収するが、
ありえません
> どんな言語だとしても、ループ内でのヒープメモリ割り当てなんて気を付けて書く。
多くのGC言語では、そんなことを気にせずGC任せのプログラマーが多数派だと思います
> GCというかスコープを外れたらOSが回収するが、
ありえません
518デフォルトの名無しさん
2022/09/27(火) 18:30:42.66ID:hEzYsdyZ Rustみたいなバリバリの実用土方向け言語と比べるのは間違い。
519デフォルトの名無しさん
2022/09/27(火) 18:38:52.09ID:pQ5zmsRD >>515
必死で笑った
必死で笑った
520デフォルトの名無しさん
2022/09/27(火) 18:56:17.56ID:vJTIC1iI >>515
本当まで読んだ
本当まで読んだ
521デフォルトの名無しさん
2022/09/27(火) 19:10:24.11ID:EQTYy8LW >>518
え?ほとんど誰も使ってないんだけど
え?ほとんど誰も使ってないんだけど
522デフォルトの名無しさん
2022/09/27(火) 19:50:43.74ID:NlDwCy+I523デフォルトの名無しさん
2022/09/27(火) 20:02:47.05ID:0rkJ8NRM524デフォルトの名無しさん
2022/09/27(火) 20:09:31.55ID:DiyGsTXL >>515
各組み合わせごとに厳密にテストしないと組み合わせられないなら
「多重ディスパッチで簡単に組み合わせられます」とか言うなよってこと
そもそも静的型ならコンパイルエラーになるしPythonとかなら巨大なライブラリにみんなで乗っかる方式だから、組み合わせの問題が発生しやすいのはJulia固有の話
各組み合わせごとに厳密にテストしないと組み合わせられないなら
「多重ディスパッチで簡単に組み合わせられます」とか言うなよってこと
そもそも静的型ならコンパイルエラーになるしPythonとかなら巨大なライブラリにみんなで乗っかる方式だから、組み合わせの問題が発生しやすいのはJulia固有の話
525デフォルトの名無しさん
2022/09/27(火) 20:13:06.18ID:NlDwCy+I >>523
今までも同じ主張しかしとらんよ。
これからは他人のために使うRustユーザーが増えていくから、愛され言語1位を維持するのは無理だろ。
PythonとかJavaの規模のなっても維持できているなら本物だな。
今までも同じ主張しかしとらんよ。
これからは他人のために使うRustユーザーが増えていくから、愛され言語1位を維持するのは無理だろ。
PythonとかJavaの規模のなっても維持できているなら本物だな。
526デフォルトの名無しさん
2022/09/27(火) 20:18:14.18ID:YwA5X+6D Rustは他の言語よりコーティングしやすいしプログラマーにとっては嬉しい言語っす
527デフォルトの名無しさん
2022/09/27(火) 20:49:24.20ID:R1T2sN7L 1から自分で好きなように書くならRustは気持ち良い言語なのは同意するけどね
Rustは個人の好みや癖が出やすい言語だから、他人のオナニーの後片付けは辛いぞ
Rubyしかり、創意工夫()の余地が大きくて楽しい()言語はレガシー化すると激しくプログラマに嫌われる傾向がある
Rustは個人の好みや癖が出やすい言語だから、他人のオナニーの後片付けは辛いぞ
Rubyしかり、創意工夫()の余地が大きくて楽しい()言語はレガシー化すると激しくプログラマに嫌われる傾向がある
528デフォルトの名無しさん
2022/09/27(火) 21:06:03.50ID:fcAnqxP3 >>527
プログラミングしたことのない人には
RubyとRustは創意工夫の余地があって辛くて
他の言語には創意工夫の余地がないように見えているのか
そんなデタラメ書き散らす前にプログラミング経験積んで出直してこい
プログラミングしたことのない人には
RubyとRustは創意工夫の余地があって辛くて
他の言語には創意工夫の余地がないように見えているのか
そんなデタラメ書き散らす前にプログラミング経験積んで出直してこい
529デフォルトの名無しさん
2022/09/27(火) 21:27:10.63ID:plkckm5B Go追加>>478(>>450,461)
Language x10 x100 x200 x400 Memory Comment
--------------------------------------------------------------
Zig 0.118 1.073 2.113 4.203 3.2MB (std.HashMap, caller hash by Context(Fnv1a_64))
C(gcc) 0.136 1.146 2.271 4.531 2.0MB (optimized.c, binIO,jemalloc,O4,LTO)
C(clang/LLVM) 0.137 1.147 2.280 4.544 2.0MB (optimized.c, binIO,jemalloc,O3,LTO)
Go 0.152 1.233 2.428 4.832 3.9MB (caller hash,better loop) New
Go 0.164 1.346 2.654 5.279 3.8MB (caller hash)手元再現 New
Go 0.177 1.412 2.733 5.446 3.8MB (caller hash)<--参考値from過去スレ
Rust(LLVM) 0.154 1.425 2.838 5.674 2.6MB (optimized-customhashmap,O3,LTO,caller-hash)
以下、caller-hashではない
Go 0.085 0.366 0.693 1.319 61.9MB (parallel.go,reserve 65536/2)<--マルチスレッド New
Zig 0.162 1.493 2.970 5.935 4.6MB (std.StringHashMap)
Go 0.182 1.563 3.063 6.097 3.8MB (customhash.go,reserve 65536) New
Rust(LLVM) 0.214 1.725 3.396 6.715 3.5MB (optimized,fxhash,O3,LTO)
zig version 0.10.0-dev.4166+cae76d829
gcc 12.2.0/clang 15.0.0
go version go1.19.1
rustc 1.64.0 (a55dd71d5 2022-09-19)
CPU Zen3@boost max~4.75GHz
https://github.com/benhoyt/countwords
予想以上にGoが速かったが、最近の成果かもしれない。
https://go.dev/blog/go1.19 (2 August 2022)
>Go 1.19 includes a wide variety of performance and implementation improvements
Language x10 x100 x200 x400 Memory Comment
--------------------------------------------------------------
Zig 0.118 1.073 2.113 4.203 3.2MB (std.HashMap, caller hash by Context(Fnv1a_64))
C(gcc) 0.136 1.146 2.271 4.531 2.0MB (optimized.c, binIO,jemalloc,O4,LTO)
C(clang/LLVM) 0.137 1.147 2.280 4.544 2.0MB (optimized.c, binIO,jemalloc,O3,LTO)
Go 0.152 1.233 2.428 4.832 3.9MB (caller hash,better loop) New
Go 0.164 1.346 2.654 5.279 3.8MB (caller hash)手元再現 New
Go 0.177 1.412 2.733 5.446 3.8MB (caller hash)<--参考値from過去スレ
Rust(LLVM) 0.154 1.425 2.838 5.674 2.6MB (optimized-customhashmap,O3,LTO,caller-hash)
以下、caller-hashではない
Go 0.085 0.366 0.693 1.319 61.9MB (parallel.go,reserve 65536/2)<--マルチスレッド New
Zig 0.162 1.493 2.970 5.935 4.6MB (std.StringHashMap)
Go 0.182 1.563 3.063 6.097 3.8MB (customhash.go,reserve 65536) New
Rust(LLVM) 0.214 1.725 3.396 6.715 3.5MB (optimized,fxhash,O3,LTO)
zig version 0.10.0-dev.4166+cae76d829
gcc 12.2.0/clang 15.0.0
go version go1.19.1
rustc 1.64.0 (a55dd71d5 2022-09-19)
CPU Zen3@boost max~4.75GHz
https://github.com/benhoyt/countwords
予想以上にGoが速かったが、最近の成果かもしれない。
https://go.dev/blog/go1.19 (2 August 2022)
>Go 1.19 includes a wide variety of performance and implementation improvements
530デフォルトの名無しさん
2022/09/27(火) 21:40:42.21ID:w/rzDiTn アルゴリズムの比較と言語の比較の区別がつかない人が未だに無意味なことを続けてるな~
531デフォルトの名無しさん
2022/09/27(火) 22:51:31.16ID:EQTYy8LW >>522
なるほど
なるほど
532デフォルトの名無しさん
2022/09/27(火) 23:06:01.46ID:pQ5zmsRD 社畜タイムだな
533デフォルトの名無しさん
2022/09/27(火) 23:25:50.78ID:b2qWmeFJ >>522
そんなホワイト企業があるなら名前教えてくれよ
そんなホワイト企業があるなら名前教えてくれよ
534デフォルトの名無しさん
2022/09/28(水) 11:39:35.28ID:LY5LAbp2 くせぇ、くせぇ、泥だらけ漢だらけで土方臭え!forループじゃなくmap使えとか親方ァは細かすぎる・・・
何がワシだって「下積みの頃はC未定義動作で行間を読んだもんだ!」だ!未定義動作書くなよ!?基本だろうが!#
何が「ここは大手の偉い人が書いたから変えらなかったんだよ!」だ!
Displayトレイトが滅多に表示しない方に使ってて頻繁に表示する方はいちいちdisp_xxxなんて呼ばないといけないんだ!
設計根本から間違ってるだろうが!
「Rustは気持ち良い言語、Rustは気持ちよく書ける」なんて2020年代前半に言われてたらしいが、もう憎しみしかない
お百度参りしても、この恨み晴れるとは思えない
オレこのデスマが終わったら、高給取りのAIのPython業界に転職するんだ・・・
何がワシだって「下積みの頃はC未定義動作で行間を読んだもんだ!」だ!未定義動作書くなよ!?基本だろうが!#
何が「ここは大手の偉い人が書いたから変えらなかったんだよ!」だ!
Displayトレイトが滅多に表示しない方に使ってて頻繁に表示する方はいちいちdisp_xxxなんて呼ばないといけないんだ!
設計根本から間違ってるだろうが!
「Rustは気持ち良い言語、Rustは気持ちよく書ける」なんて2020年代前半に言われてたらしいが、もう憎しみしかない
お百度参りしても、この恨み晴れるとは思えない
オレこのデスマが終わったら、高給取りのAIのPython業界に転職するんだ・・・
535デフォルトの名無しさん
2022/09/28(水) 12:04:48.31ID:aJVEzZZx >>534
ことごとく勘違いしてるでしょ?
mapは単なる写像にすぎなくてループと対応するものではなくループの中の写像の文 let y = f(x); に対応するものです
未定義動作はunsafeを使わない限り発生しません
disp_xxxといったものは標準ライブラリにありません
以上から貴方はRustではなく異なる別のものを使っている可能性が高いです
ことごとく勘違いしてるでしょ?
mapは単なる写像にすぎなくてループと対応するものではなくループの中の写像の文 let y = f(x); に対応するものです
未定義動作はunsafeを使わない限り発生しません
disp_xxxといったものは標準ライブラリにありません
以上から貴方はRustではなく異なる別のものを使っている可能性が高いです
536デフォルトの名無しさん
2022/09/28(水) 13:39:09.80ID:qn6QKhcv 顔真っ赤で一行開け必死で笑ったwwwキモッw
537デフォルトの名無しさん
2022/09/28(水) 18:08:24.66ID:RGJlN0a6 rustは、haskellみたいにはならないと思う。
ロマンが足りない。オナニーしても気持ち良くない的な。
その点、juliaの方がロマン感じる。
ロマンが足りない。オナニーしても気持ち良くない的な。
その点、juliaの方がロマン感じる。
538デフォルトの名無しさん
2022/09/28(水) 18:19:46.86ID:TUTlK2Rr rustは十分ロマンがあるよ
539デフォルトの名無しさん
2022/09/28(水) 19:06:02.54ID:lioEJO8p 嫌いなのはわかるけど消去法でもRust一択だよ
まずスクリプト言語は速度と安全性がゴミなので論外
(書き捨てのスクリプトにのみ使うならアリ)
C/C++は論外
世界中のバグはこの言語から生まれている
JavaやC#もぬるぽ排除失敗
副作用まみれを助長する言語仕様
クソ重GCとJVM運用でオワコン
Goも結局ジェネリクス導入の失敗で標準ライブラリがジェネリクスなしの涙目に
安全性とは程遠い
言語仕様も一部よくわからない謎
さらにゴルーチンの書きにくさで並行処理の言語としても微妙
その他のモダン言語は結局本質的解決にはなってないから論外
よってRust一択
まずスクリプト言語は速度と安全性がゴミなので論外
(書き捨てのスクリプトにのみ使うならアリ)
C/C++は論外
世界中のバグはこの言語から生まれている
JavaやC#もぬるぽ排除失敗
副作用まみれを助長する言語仕様
クソ重GCとJVM運用でオワコン
Goも結局ジェネリクス導入の失敗で標準ライブラリがジェネリクスなしの涙目に
安全性とは程遠い
言語仕様も一部よくわからない謎
さらにゴルーチンの書きにくさで並行処理の言語としても微妙
その他のモダン言語は結局本質的解決にはなってないから論外
よってRust一択
540デフォルトの名無しさん
2022/09/28(水) 19:10:09.32ID:ToxcoP+T >>539
Goはnil安全性すらないから前世紀の言語っぽい
Goはnil安全性すらないから前世紀の言語っぽい
541デフォルトの名無しさん
2022/09/28(水) 19:15:39.85ID:6MwVPPZN Goは色んな機能を削りすぎていて苦痛
ジェネリック導入で明るい未来を期待していたけどあんな使えない仕様になるとは
ジェネリック導入で明るい未来を期待していたけどあんな使えない仕様になるとは
542デフォルトの名無しさん
2022/09/28(水) 19:17:23.82ID:lioEJO8p543デフォルトの名無しさん
2022/09/28(水) 19:20:37.46ID:Jk2txA1W 正直NULL安全みたいな機能いるか?
Kotlinとかにもあるけど、結局NULL許容型も書けるし中途半端過ぎる
Kotlinとかにもあるけど、結局NULL許容型も書けるし中途半端過ぎる
544デフォルトの名無しさん
2022/09/28(水) 19:21:11.66ID:M8/EGStO >>539
Rustは絶壁の学習曲線で多数の初学者が挫折し、エンスー以外使えないエンドコンテンツで終わるだろう。
せめてライブラリとかフレームワークを初心者向けに作り込むことができればまだ可能性はあるが、所有権とライフタイムがラフな使い方を拒否するからそういうことも困難。
まぁ、「3番目に学習する言語」くらいの位置になれれば万々歳だな。
Rustは絶壁の学習曲線で多数の初学者が挫折し、エンスー以外使えないエンドコンテンツで終わるだろう。
せめてライブラリとかフレームワークを初心者向けに作り込むことができればまだ可能性はあるが、所有権とライフタイムがラフな使い方を拒否するからそういうことも困難。
まぁ、「3番目に学習する言語」くらいの位置になれれば万々歳だな。
545デフォルトの名無しさん
2022/09/28(水) 19:25:13.91ID:lioEJO8p546デフォルトの名無しさん
2022/09/28(水) 19:30:16.66ID:lioEJO8p >>544
初心者が挫折しがちというのは理解できるのだが
(俺自身C/C++のヘビーユーザーだったが最初はコンパイルを通すのに苦労した)
しかし一旦理解するとコンパイルエラーはほぼ起きないし
Rustの気持ちになって考えることができるようになる
本当にコンパイラの気持ちがわかる
初心者が挫折しがちというのは理解できるのだが
(俺自身C/C++のヘビーユーザーだったが最初はコンパイルを通すのに苦労した)
しかし一旦理解するとコンパイルエラーはほぼ起きないし
Rustの気持ちになって考えることができるようになる
本当にコンパイラの気持ちがわかる
547デフォルトの名無しさん
2022/09/28(水) 19:40:17.57ID:M8/EGStO >>543
Javaのヌルポは散々馬鹿にされていたからなぁ。
実際には、正常値としてのNullならnull objectの方が素性が良い。optionalみたいなNullが良いのは、異質なケースとして明示的に処理したい場合のみ。
Javaのヌルポは散々馬鹿にされていたからなぁ。
実際には、正常値としてのNullならnull objectの方が素性が良い。optionalみたいなNullが良いのは、異質なケースとして明示的に処理したい場合のみ。
548デフォルトの名無しさん
2022/09/28(水) 19:43:30.85ID:M8/EGStO >>546
その「一旦理解する」というのが絶壁だっつうの。
その「一旦理解する」というのが絶壁だっつうの。
549デフォルトの名無しさん
2022/09/28(水) 19:43:33.10ID:AiQeg8Nw データ構造含めてスパゲッティでも動いてくれるGC言語と
データ構造が整理されていないとコンパイラが通ってくれないRust
保守性の良いコードを強制してくるRustはウザいよな
データ構造が整理されていないとコンパイラが通ってくれないRust
保守性の良いコードを強制してくるRustはウザいよな
550デフォルトの名無しさん
2022/09/28(水) 19:51:26.79ID:9pngDMED >>547
ポインタであろうとデータであろうと
nullやnilなどはその型と全く別の型であるべきであり
型が異なればコンパイルエラーとすることができるため
nullやnilをうっかり使ってしまう悲劇を確実に回避できる
この仕組みを備えることをnull安全性と言う
ポインタであろうとデータであろうと
nullやnilなどはその型と全く別の型であるべきであり
型が異なればコンパイルエラーとすることができるため
nullやnilをうっかり使ってしまう悲劇を確実に回避できる
この仕組みを備えることをnull安全性と言う
551デフォルトの名無しさん
2022/09/28(水) 20:06:25.79ID:nKJkDRPP552デフォルトの名無しさん
2022/09/28(水) 20:27:35.31ID:dSAv9mNm はぁ?w
553デフォルトの名無しさん
2022/09/28(水) 20:37:57.86ID:wiWWHZ2n554デフォルトの名無しさん
2022/09/28(水) 21:50:06.42ID:lioEJO8p >>553
その辺はcopilotなど最新のAIの分野だと思われる
モダン言語としてはまず言語仕様をしっかり安全性の高いものにするのが大事
それに俺はヤンキーを否定してるわけではない
pythonとかライブラリの充実度は世界一だろうし
雑なツールを作るには一番早くできるだろう
TypeScriptもスクリプト言語の型システムとしてはよくできている
しかしその手の言語を最初に使っても結局そのスクリプトを人がどんどん改造してスパゲッティになる様子を見てきた
スクリプト言語である程度実装可能なことがわかったら
すぐにRustに切り替えるべき
その辺はcopilotなど最新のAIの分野だと思われる
モダン言語としてはまず言語仕様をしっかり安全性の高いものにするのが大事
それに俺はヤンキーを否定してるわけではない
pythonとかライブラリの充実度は世界一だろうし
雑なツールを作るには一番早くできるだろう
TypeScriptもスクリプト言語の型システムとしてはよくできている
しかしその手の言語を最初に使っても結局そのスクリプトを人がどんどん改造してスパゲッティになる様子を見てきた
スクリプト言語である程度実装可能なことがわかったら
すぐにRustに切り替えるべき
555デフォルトの名無しさん
2022/09/28(水) 22:09:10.05ID:lioEJO8p >>548
C/C++を理解していないと難しいとは思う
所有権の移動はあらゆる変数参照で起きうるから
ひとまず借用しまくること
Rustの借用はコンパイルが通る限り安全なのだ
所有権を移動しない
これで既存の言語のように書けるのではないかな
C/C++を理解していないと難しいとは思う
所有権の移動はあらゆる変数参照で起きうるから
ひとまず借用しまくること
Rustの借用はコンパイルが通る限り安全なのだ
所有権を移動しない
これで既存の言語のように書けるのではないかな
556デフォルトの名無しさん
2022/09/28(水) 22:56:28.26ID:MJCKmooB557デフォルトの名無しさん
2022/09/28(水) 23:45:50.98ID:Ujmzyxrz moveでもborrowでも呼び出し階層のどのレイヤーで所有権を持つか常に意識しないといけないから既存の言語と同じ感覚では書けないよ
それが良い面もあれば悪い面もある
それが良い面もあれば悪い面もある
558デフォルトの名無しさん
2022/09/28(水) 23:54:28.10ID:TuAX623B559デフォルトの名無しさん
2022/09/28(水) 23:56:03.77ID:Abgphp/D560デフォルトの名無しさん
2022/09/28(水) 23:58:55.54ID:POQG8oSL561デフォルトの名無しさん
2022/09/29(木) 00:25:48.05ID:DsUo27GE moveは速い
cloneも速くするためにはRcに入れて循環参照とかいうリスクを取る
逆に言えば、最適化の意識が低いスタイルを確立すれば循環参照問題が無くなるのでは?
cloneも速くするためにはRcに入れて循環参照とかいうリスクを取る
逆に言えば、最適化の意識が低いスタイルを確立すれば循環参照問題が無くなるのでは?
562デフォルトの名無しさん
2022/09/29(木) 01:02:09.01ID:Z2jW5FHk >>561
聞きかじりだけでRustを使ったことがないからそんな間違えをする
Rcのcloneと中身のcloneは全く別物かつ独立
例えば中身がclone実装なく不可でもRcはcloneできる
循環参照は意図的に作らない限りRustでは自然に生じることはない
そして作らないことが正解
聞きかじりだけでRustを使ったことがないからそんな間違えをする
Rcのcloneと中身のcloneは全く別物かつ独立
例えば中身がclone実装なく不可でもRcはcloneできる
循環参照は意図的に作らない限りRustでは自然に生じることはない
そして作らないことが正解
563デフォルトの名無しさん
2022/09/29(木) 01:13:01.23ID:bDeqabsn564デフォルトの名無しさん
2022/09/29(木) 02:20:18.96ID:y6wWIkPL565デフォルトの名無しさん
2022/09/29(木) 04:16:41.47ID:HJy6mZaS 複オジ相手しても時間の無駄だぞ
566デフォルトの名無しさん
2022/09/29(木) 04:19:15.74ID:4N/DzY+H567デフォルトの名無しさん
2022/09/29(木) 08:16:59.79ID:2DEJTfP6568デフォルトの名無しさん
2022/09/29(木) 08:35:25.13ID:l+nUKPCx569デフォルトの名無しさん
2022/09/29(木) 08:50:17.22ID:wt+vHEcs ホントRustをわざと嫌われるように仕向けてるように見えるよなあ
570デフォルトの名無しさん
2022/09/29(木) 10:17:24.11ID:oclOsxMu Rustはなぜ開発者に愛されているのか、そして「人を選ぶ」理由とは? 実案件でRustを採用するゆめみに聞く
https://codezine.jp/article/detail/16416
https://codezine.jp/article/detail/16416
571デフォルトの名無しさん
2022/09/29(木) 11:33:20.73ID:ixRuqvEN まずは既存言語の延長として借用ベースでコードを書いてから
適切にムーブもするというスタイルをお勧めしたいね
本来のRustのスタイルとしてはムーブベースで考えるべきなのだけど
ハードルがかなり高いと思う
(C++のムーブコンストラクタやムーブ代入演算子を使いまくってた俺クラスの人間じゃないと無理)
借用の乱用でライフタイムの指定が嫌になったころにムーブを覚える
これこそアハ体験
適切にムーブもするというスタイルをお勧めしたいね
本来のRustのスタイルとしてはムーブベースで考えるべきなのだけど
ハードルがかなり高いと思う
(C++のムーブコンストラクタやムーブ代入演算子を使いまくってた俺クラスの人間じゃないと無理)
借用の乱用でライフタイムの指定が嫌になったころにムーブを覚える
これこそアハ体験
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★3 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★] [蚤の市★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 中国がここまで過敏になるのは日本に前科があるから。盧溝橋、満州事変。ジャップの先制攻撃は挙げればキリがないけど [472617201]
- ぶっちゃけ天のうって昭和天のうのせいで全然ありがたみないよな
- 頭悪いやつほどガンダムとかエヴァにハマるのってなんでなの?
- 犬って顔くっつけて寝たがるよな
- ゲームボーイのゲーム
- 『猟友会がクマ駆除を嫌がるなら潰すべき。職務を放棄するハンターから免許や銃を没収して罰金を取ろう』の声、ネットで上がる [932029429]
