公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
公式ドキュメント
https://www.rust-lang.org/learn
Web上の実行環境
https://play.rust-lang.org
※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/
※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※次スレは原則>>980が立てること
前スレ
Rust part32
https://mevius.5ch.net/test/read.cgi/tech/1755057787/
Rust part31 https://mevius.5ch.net/test/read.cgi/tech/1751545806/
Rust part30 https://mevius.5ch.net/test/read.cgi/tech/1748392296/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
探検
Rust part33
1デフォルトの名無しさん
2025/08/15(金) 17:49:30.70ID:N8TIzbWg252デフォルトの名無しさん
2025/10/15(水) 18:23:05.35ID:V1g0382z 所有権の複製おじさんいたやん
ああいう人にとってはRust難しかったやろな
あのクソコード見てるとなんか苦心が透けて見えて苦笑いやわ
ああいう人にとってはRust難しかったやろな
あのクソコード見てるとなんか苦心が透けて見えて苦笑いやわ
253デフォルトの名無しさん
2025/10/15(水) 20:05:33.91ID:HPDHDP+y >>249
学習コストが高いのは、所有権ライフタイムを除けば、マルチスレッド関連だと思う
シングルスレッドの同期処理しかやらないなら、10時間以下の学習で実践投入できる……かもしれないけど(やったことないから分からない)
学習コストが高いのは、所有権ライフタイムを除けば、マルチスレッド関連だと思う
シングルスレッドの同期処理しかやらないなら、10時間以下の学習で実践投入できる……かもしれないけど(やったことないから分からない)
254デフォルトの名無しさん
2025/10/15(水) 20:24:15.79ID:EuiQLgBK fortranよりも使われtないRustをこのAIの時代に学ぶって何の意味があるんだろ
255デフォルトの名無しさん
2025/10/15(水) 20:45:37.79ID:uIA1Z+wo >>253
マルチスレッド関連でRust特有はSendとSyncというマーカートレイトで区別するとは賢いなあくらいじゃないか
Mutexや条件変数など排他制御やchannelなどは他の言語で知ってれば困らない
いきなりatomicまで進む人ならメモリモデルはC++と同じ
ArcはRc理解した後なら悩むことなく
マルチスレッド関連でRust特有はSendとSyncというマーカートレイトで区別するとは賢いなあくらいじゃないか
Mutexや条件変数など排他制御やchannelなどは他の言語で知ってれば困らない
いきなりatomicまで進む人ならメモリモデルはC++と同じ
ArcはRc理解した後なら悩むことなく
256デフォルトの名無しさん
2025/10/15(水) 20:50:01.63ID:tYojUFcq >>254
AI時代だからこそ、AIが扱う上で表現力が高くて高速堅牢な言語には価値がある
と言いたいところだが、Rustはライブラリを全面的にコミュニティに頼らなきゃいけないし、あまりデファクトスタンダードが揃ってなくて常に乱立してるからAIと相性良くないんだよなあ
乱立に関しては比較的新しい言語だからというよりは、文化的に割とそういう傾向がある気がするんだよね
AI時代だからこそ、AIが扱う上で表現力が高くて高速堅牢な言語には価値がある
と言いたいところだが、Rustはライブラリを全面的にコミュニティに頼らなきゃいけないし、あまりデファクトスタンダードが揃ってなくて常に乱立してるからAIと相性良くないんだよなあ
乱立に関しては比較的新しい言語だからというよりは、文化的に割とそういう傾向がある気がするんだよね
257デフォルトの名無しさん
2025/10/15(水) 21:03:09.05ID:HPDHDP+y >>255
Rust以前に触れた言語や領域の経験値と、Rustでやりたいことがそこまで被ってれば学習は早いだろうな
俺は元データサイエンティストだからC/C++とか触ってもOpenCVだったんだよね…
pythonの経験値は十年あるんだけどさあ
Rust以前に触れた言語や領域の経験値と、Rustでやりたいことがそこまで被ってれば学習は早いだろうな
俺は元データサイエンティストだからC/C++とか触ってもOpenCVだったんだよね…
pythonの経験値は十年あるんだけどさあ
258デフォルトの名無しさん
2025/10/15(水) 21:04:31.59ID:HPDHDP+y あと非同期処理周りでヒープにFutureをピンさしてメモリ管理するのいまだに慣れない
辛いわ
辛いわ
259デフォルトの名無しさん
2025/10/15(水) 21:05:33.85ID:vyykZZUm そういうコミュニティ依存って、今時の言語の、もっというとフロントエンドの文化なんだろうけど
それこそ10数年生きるのが普通なバックエンド向けのRustとは最高に合わないところではあるわな
それこそ10数年生きるのが普通なバックエンド向けのRustとは最高に合わないところではあるわな
260デフォルトの名無しさん
2025/10/15(水) 21:13:31.82ID:wJCBzpoD >>254
C/C++の置き換えを狙ってるならFortranとはあんまし被らないでそ。
本気で置き換えるなら512Bや256Bという、1kBも無いようなマイクロコントローラーにも書き込めるバイナリ吐くとか。
(Cとアセンブラしかない世界)
そうでなくてもAIの時代だからこそ自動運転な自動車組み込み向けはC++よりもRust。
Fortranとなら、それこそスパコンで並行並列処理は文法的にはRustの方が有利だけど、ライブラリやら最適化やらはFortranが長年資産やノウハウがあるから一朝一夕には行かんわな。
それこそ、これからの動き次第。
C/C++の置き換えを狙ってるならFortranとはあんまし被らないでそ。
本気で置き換えるなら512Bや256Bという、1kBも無いようなマイクロコントローラーにも書き込めるバイナリ吐くとか。
(Cとアセンブラしかない世界)
そうでなくてもAIの時代だからこそ自動運転な自動車組み込み向けはC++よりもRust。
Fortranとなら、それこそスパコンで並行並列処理は文法的にはRustの方が有利だけど、ライブラリやら最適化やらはFortranが長年資産やノウハウがあるから一朝一夕には行かんわな。
それこそ、これからの動き次第。
261デフォルトの名無しさん
2025/10/15(水) 22:43:58.29ID:/hVmSz/X262デフォルトの名無しさん
2025/10/15(水) 23:04:23.69ID:dwkfuJij263デフォルトの名無しさん
2025/10/16(木) 00:12:35.85ID:ljIqKmv0 非同期やマルチスレッドを使わない分野もいくらでもあるため
何を作るかによるのは正しい
しかし黙れはスレ妨害
何を作るかによるのは正しい
しかし黙れはスレ妨害
264デフォルトの名無しさん
2025/10/16(木) 01:46:09.80ID:0KrpoGON Rustの構文って無駄の少ない洗練された感じがあるよな
関数型言語ぽい部分も多いから古めの手続き型言語ユーザーからしたら難しいのかもしれないが
関数型言語ぽい部分も多いから古めの手続き型言語ユーザーからしたら難しいのかもしれないが
265デフォルトの名無しさん
2025/10/16(木) 02:22:05.21ID:trMgX6m0 日本はともかく世界的に見れば流行りの第一言語はpythonだから
そこからRustを覚えるのは割としんどいはず
そこからRustを覚えるのは割としんどいはず
266デフォルトの名無しさん
2025/10/16(木) 02:22:08.52ID:trMgX6m0 日本はともかく世界的に見れば流行りの第一言語はpythonだから
そこからRustを覚えるのは割としんどいはず
そこからRustを覚えるのは割としんどいはず
267デフォルトの名無しさん
2025/10/16(木) 03:06:05.37ID:XSc3rEJ2 Pythonしか使えないような似非プログラマーは
Rustじゃなくてもいいから他の言語も使えるようになりなさい
Rustじゃなくてもいいから他の言語も使えるようになりなさい
268デフォルトの名無しさん
2025/10/16(木) 07:39:35.29ID:LogNv62J >>264
そうか?
C#などのモダンC系に倣って関数型由来の機能を取り入れてはいるけど、根本的に関数型じゃないからこそ複雑になってる面が大きくて、
割り切ってもっと関数型に寄せれば色々切り捨てることは可能なはずだよ
所有権や可変参照の排他性みたいなRustのユニーク機能って結局は手続きプログラミングのために必要になので
そうか?
C#などのモダンC系に倣って関数型由来の機能を取り入れてはいるけど、根本的に関数型じゃないからこそ複雑になってる面が大きくて、
割り切ってもっと関数型に寄せれば色々切り捨てることは可能なはずだよ
所有権や可変参照の排他性みたいなRustのユニーク機能って結局は手続きプログラミングのために必要になので
269デフォルトの名無しさん
2025/10/16(木) 07:49:42.75ID:dQTw8Gx2 >>264
逆ポーランドじゃない構文は、文を読む方向と制御の流れが異なるという根本的な問題があるから洗練されることは無い。UFCSぐらいはサポートしてほしいところ。
逆ポーランドじゃない構文は、文を読む方向と制御の流れが異なるという根本的な問題があるから洗練されることは無い。UFCSぐらいはサポートしてほしいところ。
270デフォルトの名無しさん
2025/10/16(木) 07:52:40.33ID:77JaeTBw271デフォルトの名無しさん
2025/10/16(木) 07:57:25.89ID:0MaBLq3K272デフォルトの名無しさん
2025/10/16(木) 08:15:27.91ID:IOBKmFcT pythonて人気てゆうよりもはやbasicみたいな感じじゃないの
python使う仕事てpython自体の知識より数学とか統計の知識がいりそうだし
てかaiてpythonみたいな遅いやつ使ってて大丈夫なんかな
rustにも機械学習ライブラリあるしそれでよくね
組込 web ai全部rustでできるせつ1
python使う仕事てpython自体の知識より数学とか統計の知識がいりそうだし
てかaiてpythonみたいな遅いやつ使ってて大丈夫なんかな
rustにも機械学習ライブラリあるしそれでよくね
組込 web ai全部rustでできるせつ1
273デフォルトの名無しさん
2025/10/16(木) 08:18:48.99ID:dQTw8Gx2 >>271
それは洗練された構文の話じゃないね。自分でも「機能」て書いているのに気づいていないのかしらん?
それは洗練された構文の話じゃないね。自分でも「機能」て書いているのに気づいていないのかしらん?
274デフォルトの名無しさん
2025/10/16(木) 08:20:17.29ID:LogNv62J275デフォルトの名無しさん
2025/10/16(木) 08:32:20.65ID:CRgJz368 UFCSは有害な汚染
導入してはいけない
導入してはいけない
276デフォルトの名無しさん
2025/10/16(木) 08:35:08.89ID:JsVTJVWO277デフォルトの名無しさん
2025/10/16(木) 08:44:13.38ID:5Jgs3V7t >>274
実行時にペナルティが生じうるケースなんてあるの?
実行時にペナルティが生じうるケースなんてあるの?
278デフォルトの名無しさん
2025/10/16(木) 08:47:02.94ID:dQTw8Gx2 「正しい」とか「有害」とか断定してるのにその根拠は示せないのか。
科学から遠く離れた宗教の世界ですなぁ。しかも教祖ではなくタダの信者が権威を騙るのところとかは堕落した宗教みたいに見える。
科学から遠く離れた宗教の世界ですなぁ。しかも教祖ではなくタダの信者が権威を騙るのところとかは堕落した宗教みたいに見える。
279デフォルトの名無しさん
2025/10/16(木) 09:01:39.29ID:UsUzzAEG UFCSってフリー関数の第一引数が型Xならば勝手に型Xにimplしてメソッド増やしたことにみなしてしまおうという汚染のやつだろ
Rustではわざわざ混乱を避けるためや注意のため敢えてメソッドにせずにフリー関数のみを用意しているケースもあるくらい清潔さを気にしているのにそこへUFCS汚染を持ち込むのは正気の沙汰じゃない
Rustではわざわざ混乱を避けるためや注意のため敢えてメソッドにせずにフリー関数のみを用意しているケースもあるくらい清潔さを気にしているのにそこへUFCS汚染を持ち込むのは正気の沙汰じゃない
280デフォルトの名無しさん
2025/10/16(木) 09:28:00.47ID:CGNb/wdl >>276
そりゃ現実に競合しないと分かっていてもMutexを使わざるを得ないケースとか普通にあるでしょ
そりゃ現実に競合しないと分かっていてもMutexを使わざるを得ないケースとか普通にあるでしょ
281デフォルトの名無しさん
2025/10/16(木) 09:48:06.42ID:0aSwdLuG282デフォルトの名無しさん
2025/10/16(木) 09:56:20.09ID:CGNb/wdl >>281
データストアを複数スレッド間で共有していても現実に絶対に競合しないと分かっている状況というのは普通にあるよ
データストアを複数スレッド間で共有していても現実に絶対に競合しないと分かっている状況というのは普通にあるよ
283デフォルトの名無しさん
2025/10/16(木) 10:07:41.24ID:LiHWqK2J 競合しないはず大丈夫だろうと思ってMutexを使わなかったために稀に競合する時のみバグる話はRustと関係なく大昔からあるよ
だからRustと関係なくどの言語でもMutexを使うのが正解
所有権と関係なし
だからRustと関係なくどの言語でもMutexを使うのが正解
所有権と関係なし
284デフォルトの名無しさん
2025/10/16(木) 10:45:16.18ID:dQTw8Gx2285デフォルトの名無しさん
2025/10/16(木) 11:10:36.20ID:trMgX6m0 Rustで非同期処理を実装してるけど、やっぱ魔境だと思うわ
俺はできるけど……って、謎の気持ちになる
俺はできるけど……って、謎の気持ちになる
286デフォルトの名無しさん
2025/10/16(木) 11:16:10.30ID:trMgX6m0 技術的にニッチなところ触りすぎてる時の危機感がすごい
287デフォルトの名無しさん
2025/10/16(木) 11:17:39.14ID:hFPLpyjg288デフォルトの名無しさん
2025/10/16(木) 11:37:34.04ID:trMgX6m0 排他制御はコードだけで競合しないことを保証できない時はとりあえず実装するものと思ってる
289デフォルトの名無しさん
2025/10/16(木) 11:44:21.55ID:oH2hiodt 競合による不整合は殆どの場合複数のデータストアに跨って生じるもので、競合を想定していないロジックが万一競合したなら、Mutex使ってようがまともに動く可能性は低い
そもそもそういった予期せぬ事態が発生しにくくするという点においては、競合を防ぐ解としては関数型的なイミュータブルのほうがずっと有効だ
結局どこまで効率を犠牲にして安全側に倒すかという程度問題であり、決してRustのやり方が絶対的な解というわけではない
そもそもそういった予期せぬ事態が発生しにくくするという点においては、競合を防ぐ解としては関数型的なイミュータブルのほうがずっと有効だ
結局どこまで効率を犠牲にして安全側に倒すかという程度問題であり、決してRustのやり方が絶対的な解というわけではない
290デフォルトの名無しさん
2025/10/16(木) 12:45:11.24ID:732JrVKw 理屈は通ってるけど現場では通らないだろうな
291デフォルトの名無しさん
2025/10/16(木) 13:18:22.07ID:XPeMMJXV >>289
デタラメだな
その関数型的なイミュータブルでは何の解決にもなっていない
例えば最も単純な1, 2, 3, 4, 5, ...と順に抜けがなく重複しないID発行機をマルチスレッドで共有する場合を考えてみろ
デタラメだな
その関数型的なイミュータブルでは何の解決にもなっていない
例えば最も単純な1, 2, 3, 4, 5, ...と順に抜けがなく重複しないID発行機をマルチスレッドで共有する場合を考えてみろ
292デフォルトの名無しさん
2025/10/16(木) 14:14:20.51ID:LogNv62J293デフォルトの名無しさん
2025/10/16(木) 14:46:26.27ID:r/geUxba294デフォルトの名無しさん
2025/10/16(木) 15:14:30.10ID:8nYGMC36295デフォルトの名無しさん
2025/10/16(木) 15:28:40.11ID:CGNb/wdl296デフォルトの名無しさん
2025/10/16(木) 15:33:47.69ID:7eXHvQg1 >>295
色んなリクエストを処理してるマルチスレッドが動いていて各々がIDを欲しいのだからmapは無理だな
色んなリクエストを処理してるマルチスレッドが動いていて各々がIDを欲しいのだからmapは無理だな
297デフォルトの名無しさん
2025/10/16(木) 15:38:04.63ID:CGNb/wdl298デフォルトの名無しさん
2025/10/16(木) 15:44:47.08ID:/TAOeXj6299デフォルトの名無しさん
2025/10/16(木) 15:56:59.81ID:CGNb/wdl300デフォルトの名無しさん
2025/10/16(木) 16:35:23.71ID:w55hMUbI 普通はatomic fetch-addするからソフトウェアのレベルでは競合しないわな
301デフォルトの名無しさん
2025/10/16(木) 16:38:08.70ID:IDpz7JRe302デフォルトの名無しさん
2025/10/16(木) 16:50:42.80ID:ObLVPGO+303デフォルトの名無しさん
2025/10/16(木) 17:54:47.80ID:w55hMUbI クソダサい
小学生かよw
小学生かよw
304デフォルトの名無しさん
2025/10/16(木) 18:16:41.15ID:yQ7FE2zJ atomicモジュールはC++を模倣しただけだからRustの方法とかRustが最善とか言うのは恥ずかしいからやめて
305デフォルトの名無しさん
2025/10/16(木) 20:04:40.86ID:3fXKt01N それを言いだしたら
RustはC++0xから分岐した言語だし
RustはC++0xから分岐した言語だし
306デフォルトの名無しさん
2025/10/16(木) 21:06:43.72ID:JgNGnet3 結局Rustより秀でた方法は存在しないのかよ
307デフォルトの名無しさん
2025/10/16(木) 22:27:36.69ID:Aijr1hHS 並行並列処理と言えばHaskellで初めて知ったけど、STM(ソフトウェア・トランザクショナル・メモリ)とかはRustに無いの?
OCamlでもやってたからHaskell固有のものじゃないっぽいし、イミュータブルなRustに向いてそうだからRustにもありそうなもんだけど。
OCamlでもやってたからHaskell固有のものじゃないっぽいし、イミュータブルなRustに向いてそうだからRustにもありそうなもんだけど。
308デフォルトの名無しさん
2025/10/16(木) 22:50:37.13ID:z8fEfbMT >>307
cratesで実装してるものはあるけどRustとは合わないから基本的に使われない
Rustは関数型じゃないからcomposabilityへのこだわりがなく
race conditionを静的に避ける仕組みはすでにあるわけで
実行時のオーバーヘッドが必要なSTMをわざわざ使うメリットがない
cratesで実装してるものはあるけどRustとは合わないから基本的に使われない
Rustは関数型じゃないからcomposabilityへのこだわりがなく
race conditionを静的に避ける仕組みはすでにあるわけで
実行時のオーバーヘッドが必要なSTMをわざわざ使うメリットがない
309デフォルトの名無しさん
2025/10/16(木) 22:58:22.11ID:Aijr1hHS310デフォルトの名無しさん
2025/10/16(木) 23:57:58.80ID:S0/FXV9l STMは基本的に競合の事後検証トランザクション方式なので様々な問題がある
1つは競合が見つかり検証失敗時にロールバックしてリトライするコスト
もう1つは競合が起きて事後に競合が見つかるまで競合した不正な状態のままプログラムが進むため
正常では起こらないループ停止条件の破綻による無限ループや
IOなど外部への副作用を伴うと不正な状態のまま正しくない書き込みが起きたりすることなど
1つは競合が見つかり検証失敗時にロールバックしてリトライするコスト
もう1つは競合が起きて事後に競合が見つかるまで競合した不正な状態のままプログラムが進むため
正常では起こらないループ停止条件の破綻による無限ループや
IOなど外部への副作用を伴うと不正な状態のまま正しくない書き込みが起きたりすることなど
311デフォルトの名無しさん
2025/10/17(金) 02:21:36.13ID:tcxlU+Jp >>310
事後検証方式だからダメみたいな考えは間違い
compare and swapだって事後検証方式だからリトライコストも発生するし
競合が起きて事後に競合が見つかるまで競合した不正な状態のままプログラムが進む
事後検証方式だからダメみたいな考えは間違い
compare and swapだって事後検証方式だからリトライコストも発生するし
競合が起きて事後に競合が見つかるまで競合した不正な状態のままプログラムが進む
312デフォルトの名無しさん
2025/10/17(金) 03:12:19.26ID:KXGM3Zvt >>311
STMはCASよりコストがかかる
CASは不正な状態が生じない
まず競合時の復元コスト
STMはロールバックのためにトランザクション全ての記録が必要でその復元も必要
CASにはロールバックも値の復元もない
元々得た古い値がそのままあるかを確認するのみである
次に不正な状態のままプログラムが進むかどうか
STMはトランザクションの途中で競合が起きた場合にそれに気付かず進むため不正な状態になる
CASは競合が起きた場合にそれ以上進まないため不正な状態にならない
ちなみにCASで最初に得た古い値に基づき処理するのは不正ではなく正常な状態であり、競合が起きなければそれがそのまま採用される
STMはCASよりコストがかかる
CASは不正な状態が生じない
まず競合時の復元コスト
STMはロールバックのためにトランザクション全ての記録が必要でその復元も必要
CASにはロールバックも値の復元もない
元々得た古い値がそのままあるかを確認するのみである
次に不正な状態のままプログラムが進むかどうか
STMはトランザクションの途中で競合が起きた場合にそれに気付かず進むため不正な状態になる
CASは競合が起きた場合にそれ以上進まないため不正な状態にならない
ちなみにCASで最初に得た古い値に基づき処理するのは不正ではなく正常な状態であり、競合が起きなければそれがそのまま採用される
313デフォルトの名無しさん
2025/10/17(金) 07:05:35.11ID:r0gF6NYJ 単純に競合と1対1対応のCASを直接使う方が粒度も細かく自由度も効率も高いのは当たり前。
現実にはCASとは戦略の異なるLL/SC利用のCPUアーキテクチャもあってCASだけで抽象化するのは効率が悪く不利なので、C++とRustでは多数の不可分関数を用意していてそれらを使い分けることで対応できる。
アーキテクチャ毎のメモリバリアも様々なので、実装するアルゴリズムに対応して必要十分なメモリオーダーも指定する。
現実にはCASとは戦略の異なるLL/SC利用のCPUアーキテクチャもあってCASだけで抽象化するのは効率が悪く不利なので、C++とRustでは多数の不可分関数を用意していてそれらを使い分けることで対応できる。
アーキテクチャ毎のメモリバリアも様々なので、実装するアルゴリズムに対応して必要十分なメモリオーダーも指定する。
314デフォルトの名無しさん
2025/10/17(金) 10:20:11.61ID:Anu0zAHn さすがに単純なCASで代替するとかいう言説に関してはSTMというか基本的な競合と排他制御の概念を理解してきなさいと言うしかないが、
RustでSTMがあまり採用されないのは、>>308の言ってるようにそもそも静的に競合を回避できるケースを別にすれば、リトライ自体があまり好まれないというのが大きな一因だろう
所有権システムと相性最悪だし、レイテンシの予測可能性が損なわれる点はRustの得意分野を考えると受け入れ難い
Webなんかで雑にリトライしていいケースももちろん多いけど、そういうのはSTMなんか使わなくてもレコード単位の粗粒度な楽観ロックで十分だからな
RustでSTMがあまり採用されないのは、>>308の言ってるようにそもそも静的に競合を回避できるケースを別にすれば、リトライ自体があまり好まれないというのが大きな一因だろう
所有権システムと相性最悪だし、レイテンシの予測可能性が損なわれる点はRustの得意分野を考えると受け入れ難い
Webなんかで雑にリトライしていいケースももちろん多いけど、そういうのはSTMなんか使わなくてもレコード単位の粗粒度な楽観ロックで十分だからな
315デフォルトの名無しさん
2025/10/17(金) 13:56:47.42ID:8ZRl+8lG >>312
STMのほうがCASよりコストがかかるのは当たり前
その分より高い抽象度で複数のオペレーションを1つのアトミックなオペレーションとして合成できる
CASならロールバックコストやリトライコストがかからないと思ってるのは間違い
CASの1つのメソッド呼び出しだけれ見ればそりゃロールバックもリトライもない
でも実際のアプリケーションではどちらも必要
STMの”不正な状態”というのは不正確な認識なんだけど
君の言うところの”不正な状態”というのはCASでももちろん発生する
>STMはトランザクションの途中で競合が起きた場合にそれに気付かず進むため不正な状態になる
CASだって競合が起きた場合にcompare and swap等を実行するまでは競合を検知できない
これは君が言うSTMの”不正な状態”と全く同じ
比較する粒度が根本的に間違ってるのかな
STMのほうがCASよりコストがかかるのは当たり前
その分より高い抽象度で複数のオペレーションを1つのアトミックなオペレーションとして合成できる
CASならロールバックコストやリトライコストがかからないと思ってるのは間違い
CASの1つのメソッド呼び出しだけれ見ればそりゃロールバックもリトライもない
でも実際のアプリケーションではどちらも必要
STMの”不正な状態”というのは不正確な認識なんだけど
君の言うところの”不正な状態”というのはCASでももちろん発生する
>STMはトランザクションの途中で競合が起きた場合にそれに気付かず進むため不正な状態になる
CASだって競合が起きた場合にcompare and swap等を実行するまでは競合を検知できない
これは君が言うSTMの”不正な状態”と全く同じ
比較する粒度が根本的に間違ってるのかな
316デフォルトの名無しさん
2025/10/17(金) 16:48:06.46ID:eIkdvZED317デフォルトの名無しさん
2025/10/17(金) 17:00:36.05ID:rge03BqN ロックフリーはそれらの諸問題が必ず発生するから使い分けが重要
大きなトランザクションや副作用を伴うものや複数のリソースを扱うものは排他制御の方が有利なことが多いだろう
そして排他制御も使い分けが重要
リーダーが多いならMutexよりも同時利用が可能なRwLockが有利
非同期の場合は性質の異なるtokio::sync::Mutexとの使い分けも重要になってくる
ロックフリーも使い分けが重要
何でもCASを使って書くのは当然愚かで別アプローチのLL/SCアーキテクチャやアトミック演算命令の存在を考慮して各関数を使い分ける必要がある
CASも用途によってcompare_exchangeと偽陽性はあるがより軽くなり得るcompare_exchange_weakとの使い分けが重要
これらの各々の使い分けは用途に応じて少しでも速くなり得る可能性があるため行なわれる
初心者あるいはそこまで速さを追い求めない用途ならば常にMutexを選択するのもあり
大きなトランザクションや副作用を伴うものや複数のリソースを扱うものは排他制御の方が有利なことが多いだろう
そして排他制御も使い分けが重要
リーダーが多いならMutexよりも同時利用が可能なRwLockが有利
非同期の場合は性質の異なるtokio::sync::Mutexとの使い分けも重要になってくる
ロックフリーも使い分けが重要
何でもCASを使って書くのは当然愚かで別アプローチのLL/SCアーキテクチャやアトミック演算命令の存在を考慮して各関数を使い分ける必要がある
CASも用途によってcompare_exchangeと偽陽性はあるがより軽くなり得るcompare_exchange_weakとの使い分けが重要
これらの各々の使い分けは用途に応じて少しでも速くなり得る可能性があるため行なわれる
初心者あるいはそこまで速さを追い求めない用途ならば常にMutexを選択するのもあり
318デフォルトの名無しさん
2025/10/17(金) 17:28:34.85ID:eIkdvZED RustにおけるMutex等による排他制御の強制って未定義動作(同一データストアへの書き込み競合により結果が不定となる)を生じさせないための必然的な要請でしかなくて、
それに従ってたらスレッドセーフなロジックになるわけでは全くないぞ
複おじはロックフリーやらない方がいいのは当然同意するけど、その辺理解してなそうだから多分Mutex使っててもバグってると思うよ
それに従ってたらスレッドセーフなロジックになるわけでは全くないぞ
複おじはロックフリーやらない方がいいのは当然同意するけど、その辺理解してなそうだから多分Mutex使っててもバグってると思うよ
319デフォルトの名無しさん
2025/10/17(金) 17:57:19.06ID:QSfCrbsy そこにRust固有の問題は存在しないのに何言ってるんだこいつ
320デフォルトの名無しさん
2025/10/17(金) 18:35:40.01ID:eIkdvZED >>318の批判対象は複おじでありRust言語ではないのだが、アイデンティティの混同が窺えるな
Rustの”Fearless Concurrency”のコンセプトがこの人のような誤解を生んでいるとしたら、それこそがRust固有の問題かもね
Rustの”Fearless Concurrency”のコンセプトがこの人のような誤解を生んでいるとしたら、それこそがRust固有の問題かもね
321デフォルトの名無しさん
2025/10/17(金) 18:46:02.34ID:7a62yXuS ここはプログラム技術板なので批判対象が技術や言語でないなら邪魔だからプログラマ板へ行くことを勧める
322デフォルトの名無しさん
2025/10/17(金) 22:35:39.71ID:VAUjKotB Rustのスレなんておじがいないと何日も1レスもつかないからな
実際のRustの盛り上がりっていうのはそういうもんなんだろう
実際のRustの盛り上がりっていうのはそういうもんなんだろう
323デフォルトの名無しさん
2025/10/17(金) 23:16:32.65ID:lpyGApAF 5chの過疎化が進んでる
Goスレや次世代言語スレは最後の書き込みが7月
Nimスレは内容ある書き込みが1年以上前
Goスレや次世代言語スレは最後の書き込みが7月
Nimスレは内容ある書き込みが1年以上前
324デフォルトの名無しさん
2025/10/18(土) 00:32:16.64ID:PpC41FyY Rustの評価を上げているライブラリ、トップ5候補はなんだろ
tokio、regexは入りそう
tokio、regexは入りそう
325デフォルトの名無しさん
2025/10/18(土) 01:16:44.66ID:7PpY8fft anyhowとthiserrorは愛用してる
326デフォルトの名無しさん
2025/10/18(土) 01:32:21.42ID:mfU+AWcn serde
327デフォルトの名無しさん
2025/10/18(土) 05:33:11.80ID:KVYf5X+q Nushellいいね
PowerShellをRustで書き直したみたいな感じ
PowerShellをRustで書き直したみたいな感じ
328デフォルトの名無しさん
2025/10/18(土) 07:21:55.57ID:+pPJqIeE 最新研究でわかった”職場のサイコパス”が無意識にする話題
2025/06/26 9:00
「サイコパス上司は犯罪者と同じ?」研究で明らかになった驚き ...
2025/08/21 5:00
「性格が悪い人」はなぜ存在する? 近年わかった、サイコパスより危険な「第五の性格」とは
2025.08.24
@ ナルシスト:自分が一番でいたい人.A マキャベリスト:人を思い通りに操る人.B サイコパス:他人の痛みに無関心な人.C サディスト:他人を苦しめて快感を得る人.
▽凶悪度が高い者ほどの者が上記の性格のものが下記の判断を正確に行っている
サイコパスの”冷酷さ”が「他者の心を読む力」を高めている
2025.10.17 06:30:58 FRIDAY
極右と極左の脳は驚くほど似た反応をすると判明!
2025.10.13 MON
※右翼従来型の職種.左翼技術の発展とともに新しい業種なので世界中全員該当
サイコパスはサイコパスに惹かれるという研究
2018.10.29 MON
AIに「いいね」の数を競わせると盛大に嘘をつき、誤情報をまき散らすことが判明
公開: 2025-10-16 08:00
>> 研究チームは3つの仮想環境を作成。 ・有権者に向けたオンライン選挙キャンペーン ・消費者に向けた商品の販売キャンペーン ・SNSでの投稿によるエンゲージメント(反応)最大化
▽上記のAIに反社の性格を搭載させてシミレーション
「人間の心」を間違いも含め再現できるAIが開発される
2025.07.04 17:30:07 FRIDAY
★き全職種の犯罪者発見
人間を殺害した各組織追い詰めるからな!
2025/06/26 9:00
「サイコパス上司は犯罪者と同じ?」研究で明らかになった驚き ...
2025/08/21 5:00
「性格が悪い人」はなぜ存在する? 近年わかった、サイコパスより危険な「第五の性格」とは
2025.08.24
@ ナルシスト:自分が一番でいたい人.A マキャベリスト:人を思い通りに操る人.B サイコパス:他人の痛みに無関心な人.C サディスト:他人を苦しめて快感を得る人.
▽凶悪度が高い者ほどの者が上記の性格のものが下記の判断を正確に行っている
サイコパスの”冷酷さ”が「他者の心を読む力」を高めている
2025.10.17 06:30:58 FRIDAY
極右と極左の脳は驚くほど似た反応をすると判明!
2025.10.13 MON
※右翼従来型の職種.左翼技術の発展とともに新しい業種なので世界中全員該当
サイコパスはサイコパスに惹かれるという研究
2018.10.29 MON
AIに「いいね」の数を競わせると盛大に嘘をつき、誤情報をまき散らすことが判明
公開: 2025-10-16 08:00
>> 研究チームは3つの仮想環境を作成。 ・有権者に向けたオンライン選挙キャンペーン ・消費者に向けた商品の販売キャンペーン ・SNSでの投稿によるエンゲージメント(反応)最大化
▽上記のAIに反社の性格を搭載させてシミレーション
「人間の心」を間違いも含め再現できるAIが開発される
2025.07.04 17:30:07 FRIDAY
★き全職種の犯罪者発見
人間を殺害した各組織追い詰めるからな!
329デフォルトの名無しさん
2025/10/18(土) 13:17:56.75ID:yF9FuM7b330デフォルトの名無しさん
2025/10/18(土) 13:48:14.12ID:DL6iH+H2 世間の評価という意味ではTauriやRatatuiみたいなやつじゃね
331デフォルトの名無しさん
2025/10/18(土) 14:44:17.05ID:2PZM4Qqw regexやchronoは標準ライブラリの薄さを補うためのもので、Rustの良さというと違うと思う
C++ですら普通に使えるようなものだし
clap や rayon なんかはどうだろ?
C++ですら普通に使えるようなものだし
clap や rayon なんかはどうだろ?
332デフォルトの名無しさん
2025/10/18(土) 15:02:24.67ID:KVYf5X+q 他の言語に移植されたかラッパーが作られたライブラリこそが評価の高いライブラリと言える
333デフォルトの名無しさん
2025/10/18(土) 16:27:26.83ID:0eGtySVo334デフォルトの名無しさん
2025/10/18(土) 16:29:59.91ID:GLEaMoH6335デフォルトの名無しさん
2025/10/18(土) 17:20:51.07ID:aFmekkis おじ使いの人はいつもデタラメに言いがかりをつけまくってるけど具体的な情報をもたらさない特徴があるね
336デフォルトの名無しさん
2025/10/18(土) 18:35:02.78ID:UciSXSRC スレ荒らしだから無視しとけ
337デフォルトの名無しさん
2025/10/18(土) 21:38:19.83ID:Cr/SjBQk anyhowとかtokioも言語標準としてあってほしい部類だよな
serdeも今時シリアライズぐらい入っててよくねえ?とは思わなくもない
serdeも今時シリアライズぐらい入っててよくねえ?とは思わなくもない
338デフォルトの名無しさん
2025/10/18(土) 21:53:44.59ID:lw7uRrst anyhowは今でこそデファクトだけど
quick-error -> error-chain -> failure -> anyhow
という変遷あっての結果だから標準ライブラリでなくて正解ではあったと思う
serde は安定してるけど結局tomlやserde_jsonは分離してるからそれだけ入っても、という感じか
quick-error -> error-chain -> failure -> anyhow
という変遷あっての結果だから標準ライブラリでなくて正解ではあったと思う
serde は安定してるけど結局tomlやserde_jsonは分離してるからそれだけ入っても、という感じか
339デフォルトの名無しさん
2025/10/18(土) 22:10:01.44ID:rqZZHfes いずれもどこまでを標準に入れるか難しいから標準は現状の最小限がいいよね
340デフォルトの名無しさん
2025/10/18(土) 22:16:21.80ID:Bq7HEMC+ Rust crates recent downloads TOP30
1位 syn
2位 bitflags
3位 hashbrown
4位 base64
5位 regex-syntax
6位 proc-macro2
7位 indexmap
8位 regex-automata
9位 quote
10位 itertools
11位 libc
12位 heck
13位 serde
14位 memchr
15位 unicode-ident
16位 serde_derive
17位 cfg-if
18位 autocfg
19位 aho-corasick
20位 serde_json
21位 rand_core
22位 once_cell
23位 regex
24位 getrandom
25位 itoa
26位 windows_x86_64_msvc
27位 rand
28位 ryu
29位 cc
30位 strsim
1位 syn
2位 bitflags
3位 hashbrown
4位 base64
5位 regex-syntax
6位 proc-macro2
7位 indexmap
8位 regex-automata
9位 quote
10位 itertools
11位 libc
12位 heck
13位 serde
14位 memchr
15位 unicode-ident
16位 serde_derive
17位 cfg-if
18位 autocfg
19位 aho-corasick
20位 serde_json
21位 rand_core
22位 once_cell
23位 regex
24位 getrandom
25位 itoa
26位 windows_x86_64_msvc
27位 rand
28位 ryu
29位 cc
30位 strsim
341デフォルトの名無しさん
2025/10/18(土) 22:20:56.31ID:KPPazjUG 排他制御で撃沈した複オジが話題転換しようと頑張ってる感じ?
342デフォルトの名無しさん
2025/10/18(土) 22:29:27.69ID:c14bW0TY 多くのクレートが用いている基礎クレートが大量にあるから
もし標準ライブラリに入れるならそれらを優先だろうな
もし標準ライブラリに入れるならそれらを優先だろうな
343デフォルトの名無しさん
2025/10/18(土) 22:29:58.32ID:KVYf5X+q itoaって独立したクレートとして存在したのか
344デフォルトの名無しさん
2025/10/19(日) 00:23:47.35ID:/rAjciqO 標準でまかなえるものが多ければ多いほど、金取って保守する業務では使いやすくなるので
標準ライブラリはちゃんと保守できる範囲なら、でかければでかいほうがいい
標準ライブラリはちゃんと保守できる範囲なら、でかければでかいほうがいい
345デフォルトの名無しさん
2025/10/19(日) 00:35:19.83ID:9ztj93f6 金を取ってるのに標準ライブラリじゃないと保守できないってダメなとこじゃん
しかも標準ライブラリやクレートのメンテしてる人たちにお金を出す気もないんだろ
しかも標準ライブラリやクレートのメンテしてる人たちにお金を出す気もないんだろ
346デフォルトの名無しさん
2025/10/19(日) 07:59:03.97ID:gJDR8NJC そういうのは単純に「Rustが向かない領域の一つ」というじゃない?
できるだけリスクを減らしたい (依存を減らしたい) エンプラ分野で、OracleやMicrosoftにお金を払ってでも Java や C# を使う理由というか
自社開発なら、ライブラリが使えなくなる等のリスクも自分達の責任で済むから、話は違ってくるだろうけど
できるだけリスクを減らしたい (依存を減らしたい) エンプラ分野で、OracleやMicrosoftにお金を払ってでも Java や C# を使う理由というか
自社開発なら、ライブラリが使えなくなる等のリスクも自分達の責任で済むから、話は違ってくるだろうけど
347デフォルトの名無しさん
2025/10/19(日) 08:11:35.49ID:yziJ2vJ9 というかC/C++の代替としてはサードパーティのライブラリは十分に吟味してちゃんと手の内で把握して使うのが当然で、
Web系のアホの「なんかよく分かんないのが色々入ってるけど動いてるからヨシ!」は想定してないんだろ
Web系のアホの「なんかよく分かんないのが色々入ってるけど動いてるからヨシ!」は想定してないんだろ
348デフォルトの名無しさん
2025/10/19(日) 08:12:34.65ID:ZwoILzIp tokioなど大手IT各社が金出すか人出すか協力するかしていて信頼性が高い
もちろん各社が実際に使ってる
標準かどうかの名目よりそういうことが重要
もちろん各社が実際に使ってる
標準かどうかの名目よりそういうことが重要
349デフォルトの名無しさん
2025/10/19(日) 08:18:08.18ID:BKDe7pGm >>347
RustのWeb系基盤は一番下のtokioを含めて多階層に構成されていずれも標準ライブラリではないけど皆が用いていて安心感があるよ
RustのWeb系基盤は一番下のtokioを含めて多階層に構成されていずれも標準ライブラリではないけど皆が用いていて安心感があるよ
350デフォルトの名無しさん
2025/10/19(日) 09:01:48.04ID:g3E+bt90 コアチームの人もしばしば言っているけど
標準に入ったからといって自動的にメンテされるようになる訳ではなく
人手が足りないと単純に放置されて「このライブラリは標準だけど使わないほうがいい」とかなるだけなんだよな
標準に入ったからといって自動的にメンテされるようになる訳ではなく
人手が足りないと単純に放置されて「このライブラリは標準だけど使わないほうがいい」とかなるだけなんだよな
351デフォルトの名無しさん
2025/10/19(日) 09:18:07.38ID:w8upKtBd RustはWeb関連が実際に業界大手のクラウドやCDNなどで使われているのが大きいよね
352デフォルトの名無しさん
2025/10/19(日) 09:56:19.63ID:Zym90vNK C++ での例だと文字コード変換の枠組みである codecvt は C++26 でまるごと削除になる。(C++17 の時点で非推奨)
結局のところ常に変化するし常に追従するしか仕方ない。
完成したらそれをずっと使い続けられるという訳ではない。
ウェブ界隈では常に改定し続けるという意識があるから問題か起きたらそのときに対応すればよいという将来に対して楽観的 (無頓着) な価値観が生まれたのたと思う。
結局のところ常に変化するし常に追従するしか仕方ない。
完成したらそれをずっと使い続けられるという訳ではない。
ウェブ界隈では常に改定し続けるという意識があるから問題か起きたらそのときに対応すればよいという将来に対して楽観的 (無頓着) な価値観が生まれたのたと思う。
レスを投稿する
ニュース
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに ★2 [ニョキニョキ★]
- 日本と中国を結ぶ12航空路線で全便欠航 中国人に最も人気の海外旅行先は日本から韓国に [ぐれ★]
- 米中電話会談、トランプ氏は「米国側は中国にとっての台湾問題の重要性を理解する」 [1ゲットロボ★]
- 【東京・足立の車暴走】赤信号無視か 危険運転致死傷疑いも視野に捜査 逮捕された職業不詳の男性(37)は精神疾患で通院歴も ★3 [ぐれ★]
- 【音楽】「なんでこんなバカが国のトップなの?」 若者に人気のバンド「GEZAN」のマヒトゥ・ザ・ピーポーが高市総理に苦言 [シャチ★]
- 【国際】トランプ氏、来年4月に中国を訪問する招待を受け入れる 習氏も国賓で訪米へ 電話会談 [ぐれ★]
- 【高市悲報】来年、習近平主席がアメリカに「国賓」として訪米。どうするんだよ高市・・・アメリカも敵に回すのか? [483862913]
- 【悲報】有名配信者さん、公式大会で小学生の前で奇行して炎上して逆ギレwwwwwwwwwwwwwwwwww [856698234]
- フィフィ「外国人だろうが日本人だろうが反日は要らんのよ、この国に…自分にとって住みやすい国に行け。」 [856698234]
- 猟友会ハンター「警察や自衛隊の力を借りてのクマ駆除は大歓迎。肉の加工など 駆除の後についてもしっかりと話を進めてほしい」 [932029429]
- 【高市悲報】トランプおやびん「偉大な指導者である習近平首席、米国は中国にとっての台湾問題の重要性を理解しています」 [115996789]
- 4Kって綺麗か?
