AstralのイグジットはVCの成功シナリオとしてはG/A/Mに買収くらいしかないでしょ
もしくはdockerみたいに売り時を逃した挙句にエンプラ向けの企業と組んで細々とやるかだな
探検
Rust part33
レス数が900を超えています。1000を超えると表示できなくなるよ。
393デフォルトの名無しさん
2025/10/22(水) 10:19:41.33ID:fivlyo3h394デフォルトの名無しさん
2025/10/22(水) 13:55:31.39ID:zYS+C6gy Astralは要はAnacondaの商売を乗っ取ってやろうってことでしょ?
Anacondaは従業員300人いるらしいから儲かってそう
Anacondaは従業員300人いるらしいから儲かってそう
395デフォルトの名無しさん
2025/10/22(水) 14:34:51.47ID:9KZ10JwK Anacondaは突然の有償化で崩壊、自滅したでしょ
非難されることは目に見えてたはずだけど、金払う客が少しでも残れば十分に資金回収できると踏んだんだろう
収益化が見えずVCから資金回収を迫られて強引に手仕舞いすることになった形
非難されることは目に見えてたはずだけど、金払う客が少しでも残れば十分に資金回収できると踏んだんだろう
収益化が見えずVCから資金回収を迫られて強引に手仕舞いすることになった形
396デフォルトの名無しさん
2025/10/22(水) 18:48:15.08ID:A3Ttm+W+ 複式簿記おじさん「国や企業の借金は投資家の資産です(回収しないとは言ってない)」
397デフォルトの名無しさん
2025/10/23(木) 00:17:51.64ID:SNNXXGtL アナコンダの件は企業は無料のを使っちゃいけないってお灸を据えた形にはなってて、うちの会社でも金払って使ってるわ
やっぱプログラマーとしては無料ほど高くつくものはないしサポート体制継続するなら有償でもいいって思うベンダーが我が多いってこと
やっぱプログラマーとしては無料ほど高くつくものはないしサポート体制継続するなら有償でもいいって思うベンダーが我が多いってこと
398デフォルトの名無しさん
2025/10/23(木) 00:49:38.88ID:j/9CbFi3 Anacondaみたいに全力で嫌われちゃうと今後はもう先細りしかないからなあ
企業での利用だったらとりあえずは金払ってもいいけど、将来性の面で問題があるから乗り換えを考えるわ
企業での利用だったらとりあえずは金払ってもいいけど、将来性の面で問題があるから乗り換えを考えるわ
399デフォルトの名無しさん
2025/10/23(木) 02:13:47.52ID:T3GhTn1Z 引数がふたつ以上あるときのライフタイム注釈ているかこれ
アプデで省略できるようにしてくれんかな
アプデで省略できるようにしてくれんかな
400デフォルトの名無しさん
2025/10/23(木) 08:02:52.36ID:uSK82vvB 確かに面倒だけど、実装から推論するのはRustの根本設計思想的にNGだからどうしようもない
どうせ書くのAIなんだから今となってはもうどうでもいいことだし
どうせ書くのAIなんだから今となってはもうどうでもいいことだし
401デフォルトの名無しさん
2025/10/23(木) 08:26:01.60ID:EvN9HHeU 大した手間ではなく
むしろライフタイム注釈は有った方が読みやすく
参照の流れも理解しやすい
struct Foo<'a, 'b, 'c>も
3系統の参照が入っていると明示され
他の言語よりも理解しやすくなってる
むしろライフタイム注釈は有った方が読みやすく
参照の流れも理解しやすい
struct Foo<'a, 'b, 'c>も
3系統の参照が入っていると明示され
他の言語よりも理解しやすくなってる
402デフォルトの名無しさん
2025/10/23(木) 09:55:41.49ID:T3GhTn1Z なるほど。。。
変数に生存期間があるのはわかるけど「変数の型」にまで生存期間があるってのがようわからんぜよ
変数に生存期間があるのはわかるけど「変数の型」にまで生存期間があるってのがようわからんぜよ
403デフォルトの名無しさん
2025/10/23(木) 10:42:16.86ID:rbYHJ9y2 ライフタイム注釈も型のジェネリックパラメータの一つと考えればよいかと
参照のライフタイムは現行関数を抜けたら即死ぬ参照からもっと祖先の関数まで持ちこたえる参照そして永久不滅の参照まで色々あるけどジェネリックにいずれも入り得る
参照のライフタイムは現行関数を抜けたら即死ぬ参照からもっと祖先の関数まで持ちこたえる参照そして永久不滅の参照まで色々あるけどジェネリックにいずれも入り得る
404デフォルトの名無しさん
2025/10/23(木) 11:33:06.85ID:RL60E7N6405デフォルトの名無しさん
2025/10/23(木) 12:08:09.39ID:uSK82vvB >>401
設計者も手間だと思ってるから引数一つの場合の省略ルールがあるのに何言ってるの
引数が複数のときにライフタイムの明示が必須なのは、シグネチャだけの推論では多くの場合において過剰に強い制約を生じるから
仮にシグネチャだけで安全に推論するなら、戻り値のライフタイムは最もライフタイムの短い引数に合わせるしかないだろ?
そうするとスコープがネストされているような場合に戻り値が短いスコープの方に制約されてしまう
実用上はそれでも問題なく使えるケースは多いはずだが、本来の必要最低限の制約とは食い違うというのが設計者には許せなかったのだろう
設計者も手間だと思ってるから引数一つの場合の省略ルールがあるのに何言ってるの
引数が複数のときにライフタイムの明示が必須なのは、シグネチャだけの推論では多くの場合において過剰に強い制約を生じるから
仮にシグネチャだけで安全に推論するなら、戻り値のライフタイムは最もライフタイムの短い引数に合わせるしかないだろ?
そうするとスコープがネストされているような場合に戻り値が短いスコープの方に制約されてしまう
実用上はそれでも問題なく使えるケースは多いはずだが、本来の必要最低限の制約とは食い違うというのが設計者には許せなかったのだろう
406デフォルトの名無しさん
2025/10/23(木) 12:30:49.98ID:qu5HXOyL だからこそライフタイム注釈の明示的な指定が重要
それがあることでコンパイラもコードレビューも正しい判断ができる
それがあることでコンパイラもコードレビューも正しい判断ができる
407デフォルトの名無しさん
2025/10/23(木) 14:21:00.93ID:fxiWIqfp 注釈はプログラマの意図の表明だ。
意図と違う形で辻褄が合っても問題だろ。
よほど自明の場合だけ省略できるようになってるけども、どのレベルから自明と言えるかは感覚的だからな……
意図と違う形で辻褄が合っても問題だろ。
よほど自明の場合だけ省略できるようになってるけども、どのレベルから自明と言えるかは感覚的だからな……
408デフォルトの名無しさん
2025/10/23(木) 15:22:08.96ID:k6u6s2rE ライフタイムの指定を省略できる場合であっても、省略すると戻り値のライフタイムの制約が必要以上に強くなってしまうケースは普通にあって、
>>405の理屈を厳格に適用するなら引数が一つでもライフタイムの明示は必須だ
食い違いが生じるケースがどれくらいの頻度で発生するかという統計の問題なのよ
>>405の理屈を厳格に適用するなら引数が一つでもライフタイムの明示は必須だ
食い違いが生じるケースがどれくらいの頻度で発生するかという統計の問題なのよ
409デフォルトの名無しさん
2025/10/23(木) 15:27:37.26ID:hDpBG7ml 二つを'a 'aにすると寿命の短い方に揃えられてしまうけど
二つを'a 'bにすると各々の寿命が尊重されて後に出来ることの範囲が広がるって話?
二つを'a 'bにすると各々の寿命が尊重されて後に出来ることの範囲が広がるって話?
410デフォルトの名無しさん
2025/10/24(金) 10:04:48.68ID:PHL/ybvS であるか
411デフォルトの名無しさん
2025/10/25(土) 12:18:04.03ID:dx13CXH8 ライフタイムめんどくせえし全部stringで返すべと思ってたら&strとstringの速度差はだいたい10倍あるみたいなのでやっぱできるだけ&strで返そうとおもた🐼
412デフォルトの名無しさん
2025/10/25(土) 12:27:15.75ID:dvc0RMgV そりゃ先頭ポインタと長さを返すだけで済む&str返しやスライス&[T]返しが圧倒的に速いよ
413デフォルトの名無しさん
2025/10/25(土) 12:30:11.50ID:5GqPIi/l414デフォルトの名無しさん
2025/10/25(土) 12:36:43.77ID:mHIPVewV &str返しができる状況でString返しをしてしまうセンスだと至る所で似たような非効率をしてしまいかねない
415デフォルトの名無しさん
2025/10/25(土) 14:30:41.07ID:tv80YbgW そもそもそのへん無頓着ならPythonとかのスクリプトでよくねっていう気も
416デフォルトの名無しさん
2025/10/25(土) 15:28:17.84ID:Sq0aKQjf たまにはCowのことも思い出してあげて🐮
417デフォルトの名無しさん
2025/10/25(土) 16:30:57.36ID:dHJk9AZa >>411
繰り返し呼ばれない関数で文字列がそれほど長く
速度的なメリットよりもライフタイムを引きずり回すデメリットが大きくなる場合は
&str返しできる状況でもstring返しをする
それ以外は&strで返せるなら&strを選ぶのが基本
繰り返し呼ばれない関数で文字列がそれほど長く
速度的なメリットよりもライフタイムを引きずり回すデメリットが大きくなる場合は
&str返しできる状況でもstring返しをする
それ以外は&strで返せるなら&strを選ぶのが基本
418デフォルトの名無しさん
2025/10/26(日) 12:11:46.95ID:YIXSQNu/ 文字列は用途によってはstring_cacheなど使ってintern化すると一気に扱いやすくなるよ
419デフォルトの名無しさん
2025/10/26(日) 15:33:24.64ID:QFgKHJ6W 「用途によっては」「条件によっては」を付けたらだいたい何でも正しいよ。
つまり無意味だってことだ。
つまり無意味だってことだ。
420デフォルトの名無しさん
2025/10/26(日) 15:48:22.18ID:qLJPEdq/ 何にでも向き不向きがあり万能はないため特徴と用途を比較して適切に選ぶ必要がある
文字列の比較があるならinterningは有利
同じ文字列が出てこないなら機能を発揮しない
それでも64bit ID化される点で参照や所有権を気にすることなく気軽に扱える視点での利点はあるかな
文字列の比較があるならinterningは有利
同じ文字列が出てこないなら機能を発揮しない
それでも64bit ID化される点で参照や所有権を気にすることなく気軽に扱える視点での利点はあるかな
421デフォルトの名無しさん
2025/10/26(日) 22:42:01.01ID:uL5v2PLc https://itest.5ch.net/mevius/test/read.cgi/tech/1757733847/52
> Rustが広まってる理由はC並みの高速実行をゼロコスト抽象化によるコードの可読性・保守性・開発効率の高さで実現したことにあるからね
> 安全性などはついでのオマケ
5chのRust信者は程度が低いなw 安全性への認識がこんなものかww
> Rustが広まってる理由はC並みの高速実行をゼロコスト抽象化によるコードの可読性・保守性・開発効率の高さで実現したことにあるからね
> 安全性などはついでのオマケ
5chのRust信者は程度が低いなw 安全性への認識がこんなものかww
422デフォルトの名無しさん
2025/10/26(日) 22:50:15.71ID:/3Ktl5T9 高い抽象度で使いやすい言語は他にもあるけど速さ省メモリを両立させた言語はRustが初だな
それだけでも十分に価値はあるけどセキュリティ面から今重視されている安全性まで両立させたことが決定打
それだけでも十分に価値はあるけどセキュリティ面から今重視されている安全性まで両立させたことが決定打
423デフォルトの名無しさん
2025/10/26(日) 23:04:51.09ID:v+5C5Bjl > 安全性などはついでのオマケ
安全性に勝るものなどないのに馬鹿丸出しw
安全性に勝るものなどないのに馬鹿丸出しw
424デフォルトの名無しさん
2025/10/26(日) 23:17:12.99ID:X+0qei7I 安全性が使用動機でなくても
他のメリットも他言語に例がなく十分満足できる言語とは言える
他のメリットも他言語に例がなく十分満足できる言語とは言える
425デフォルトの名無しさん
2025/10/26(日) 23:20:44.90ID:B58XHKxc Rustは実際はc++の代用として使われる事例がほとんど
ユーザーは欧米に偏っていて一番IT人材が多いインドではほぼ使われていない
ユーザーは欧米に偏っていて一番IT人材が多いインドではほぼ使われていない
426デフォルトの名無しさん
2025/10/27(月) 00:24:06.81ID:mFVRCEv/ >>425
インドでもRust利用企業が多い
Companies that use Rust in India
https://theirstack.com/en/technology/rust/in
インドでもRust利用企業が多い
Companies that use Rust in India
https://theirstack.com/en/technology/rust/in
427デフォルトの名無しさん
2025/10/27(月) 02:06:07.73ID:LFGbdGCc 下馬評垂れてればプログラマーとしての格が上がるとでも思ってるんだろうか
428デフォルトの名無しさん
2025/10/27(月) 06:13:04.93ID:AST59Cdb429デフォルトの名無しさん
2025/10/27(月) 06:31:46.50ID:bSWiCsX6 rustにも機械学習ライブラリあるしaiもrustでよくね
430デフォルトの名無しさん
2025/10/27(月) 09:29:34.52ID:/CEP+D0A431デフォルトの名無しさん
2025/10/27(月) 09:32:19.04ID:/CEP+D0A >>428
遅くて困っていたツールってほど遅いのは普通に設計ミスじゃ無いの
たとえばspawnせずにシングルスレッドで回してる箇所見落としてるとか
言語による性能差意識できるほどRustがいいとは思えん
わざわざ他の言語で書くより、元のプログラミング言語でリファクタリングの方が楽だと思うけど
遅くて困っていたツールってほど遅いのは普通に設計ミスじゃ無いの
たとえばspawnせずにシングルスレッドで回してる箇所見落としてるとか
言語による性能差意識できるほどRustがいいとは思えん
わざわざ他の言語で書くより、元のプログラミング言語でリファクタリングの方が楽だと思うけど
432デフォルトの名無しさん
2025/10/27(月) 09:34:42.42ID:/CEP+D0A >>426
英語はよくわからんけど、408社ってインドの有名企業のほぼ全て採用ってことか
メジャー企業はインフォシステムとかタタとかしか知らんがそこまで普及したのはここ数年よね
なんか日本より導入進んでね?
英語はよくわからんけど、408社ってインドの有名企業のほぼ全て採用ってことか
メジャー企業はインフォシステムとかタタとかしか知らんがそこまで普及したのはここ数年よね
なんか日本より導入進んでね?
433デフォルトの名無しさん
2025/10/27(月) 09:36:22.75ID:/CEP+D0A >>425
欧米とインドだと案件の内容が全く違うんだよなあ
たとえばフロントエンドをインドに外注とかならRust使わんし
あえてバックエンドをインドで開発??あんま無いよなあ。バックエンド系の新サービスは欧米強いもんなあ
日本も同じこと言えるけど;;;
欧米とインドだと案件の内容が全く違うんだよなあ
たとえばフロントエンドをインドに外注とかならRust使わんし
あえてバックエンドをインドで開発??あんま無いよなあ。バックエンド系の新サービスは欧米強いもんなあ
日本も同じこと言えるけど;;;
434デフォルトの名無しさん
2025/10/27(月) 09:47:02.67ID:MUgrXvxY435デフォルトの名無しさん
2025/10/27(月) 13:52:59.21ID:HMompUGJ TypeScriptのコンパイラは色々あった末結局goで書き直されたな
rustになるかと思ってた
rustになるかと思ってた
436デフォルトの名無しさん
2025/10/27(月) 15:03:44.84ID:qhXNWfqN437デフォルトの名無しさん
2025/10/27(月) 15:22:52.00ID:8ULsq5Jc Rust で書いて速くなるものは C でも C++ でも速くなると思う。
適切に再設計できれば。
ただ、書き直す機会があるときにこの時代にあえて C や C++ を使いたいとは思わないし、
元が C や C++ だったら同じ言語で書きなおすと元の設計に引きずられて同じような駄目なことをまたやってしまう。
Rust が特別に良いとまでは思わないけど「一新する良い機会」ではあった。
Go も良い言語だと思うけど抽象度は高くない。
C の駄目 (というか面倒くさい) なところである文法の不必要な複雑さやメモリ管理を楽にしたという側面が強くて、
大規模なプログラムを整理するのはちょっとしんどい。
出来るという人もいるんだけどそういう人はたぶん C でも出来てしまうタイプの剛腕だから参考にならない。
適切に再設計できれば。
ただ、書き直す機会があるときにこの時代にあえて C や C++ を使いたいとは思わないし、
元が C や C++ だったら同じ言語で書きなおすと元の設計に引きずられて同じような駄目なことをまたやってしまう。
Rust が特別に良いとまでは思わないけど「一新する良い機会」ではあった。
Go も良い言語だと思うけど抽象度は高くない。
C の駄目 (というか面倒くさい) なところである文法の不必要な複雑さやメモリ管理を楽にしたという側面が強くて、
大規模なプログラムを整理するのはちょっとしんどい。
出来るという人もいるんだけどそういう人はたぶん C でも出来てしまうタイプの剛腕だから参考にならない。
438デフォルトの名無しさん
2025/10/27(月) 15:53:13.91ID:qhXNWfqN そうだよな
TypeScriptの件がたまたまGoだけJSと1対1の対応を取れたのも、Goが抽象度高くない言語だったため
TypeScriptの件がたまたまGoだけJSと1対1の対応を取れたのも、Goが抽象度高くない言語だったため
439デフォルトの名無しさん
2025/10/27(月) 17:49:39.72ID:HMompUGJ Rustが欲しいというよりCargoが欲しいんだよ
って思ってたらCabinとかいうの見つけて笑った
って思ってたらCabinとかいうの見つけて笑った
440デフォルトの名無しさん
2025/10/27(月) 18:45:30.45ID:l4eceh5X でもなんでRustは欧米中心で使われててその他で低いんだ?
コミュニテイーの所属者もそんな分布でアジアは低い
1位アメリカ
2位ドイツって
日本は11位
コミュニテイーの所属者もそんな分布でアジアは低い
1位アメリカ
2位ドイツって
日本は11位
441デフォルトの名無しさん
2025/10/27(月) 19:32:35.62ID:UgAh1tV0 Goも似たような感じだね
単にsurveyのアナウンスが拡散されるプラットフォームの人口分布に引っ張られているだけな気もする
RedditとかHackerNewsとか
単にsurveyのアナウンスが拡散されるプラットフォームの人口分布に引っ張られているだけな気もする
RedditとかHackerNewsとか
442デフォルトの名無しさん
2025/10/27(月) 19:41:30.85ID:FbhZH/Sk443デフォルトの名無しさん
2025/10/27(月) 19:42:44.69ID:edSRXQey リファレンスが英語だからな
ガイドは翻訳されてるけどライブラリ周りはどうしようもない
ガイドは翻訳されてるけどライブラリ周りはどうしようもない
444デフォルトの名無しさん
2025/10/27(月) 20:06:35.18ID:oTj8oDFF でも中国5位じゃん
445デフォルトの名無しさん
2025/10/27(月) 20:56:19.83ID:qhXNWfqN446デフォルトの名無しさん
2025/10/27(月) 21:04:31.26ID:syMP9q/B Rustのコレクションは移動なしでは書けまい
447デフォルトの名無しさん
2025/10/27(月) 23:32:35.09ID:OMtkXyUi448デフォルトの名無しさん
2025/10/28(火) 03:31:36.61ID:jbGu9KYL Rustのコレクションは基本的でかつ非自明的にすごい
それはシャローコピーでもディープコピーでもないものが書かせた
それはシャローコピーでもディープコピーでもないものが書かせた
449デフォルトの名無しさん
2025/10/28(火) 17:50:32.18ID:rJCEklN9 >>447
バカなの?
バカなの?
450デフォルトの名無しさん
2025/10/28(火) 18:01:51.21ID:KGeQ1yOx451デフォルトの名無しさん
2025/10/28(火) 19:07:26.87ID:Zt6hv4It goてunixの作者が作っとうけえあんなに使われてるんかな
ポイント使えるのにgcがあるとゆうようわからん仕様
ポイント使えるのにgcがあるとゆうようわからん仕様
452デフォルトの名無しさん
2025/10/28(火) 23:49:42.09ID:tW1WhAkg >>451
Goのポインタは構文はC風だが、できることはJava等のGC言語のオブジェクト参照とほぼ同じ
そして、GC言語のオブジェクト参照はポインタとして実装されており、ポインタとGCの組み合わせは全く矛盾しない
Goのポインタは構文はC風だが、できることはJava等のGC言語のオブジェクト参照とほぼ同じ
そして、GC言語のオブジェクト参照はポインタとして実装されており、ポインタとGCの組み合わせは全く矛盾しない
453デフォルトの名無しさん
2025/10/29(水) 01:38:08.80ID:KUd6rxlw C#だってGCあるけどポインタ使えるじゃん
454デフォルトの名無しさん
2025/10/29(水) 12:14:41.38ID:vbO9JSKW DBを使用するスマホアプリのバックエンド開発でRustを使用してるけど、sqliteがシングルスレッドでしか使えないから
逆に複雑な設計を求められるな。慣れるまできつい
逆に複雑な設計を求められるな。慣れるまできつい
455デフォルトの名無しさん
2025/10/29(水) 15:34:17.17ID:L881d/fh Rustエンジニアをクビにして代わりにペチパー雇って、浮いた金でMySQLに変えた方が遥かに速くなりそうだな
456デフォルトの名無しさん
2025/10/29(水) 17:35:51.56ID:DwSXyKDH RustはSingletonの初期化と共有がすっきりしないな
初期化忘れのunsafeが付き纏うからどこかで割り切らないといけない
初期化忘れのunsafeが付き纏うからどこかで割り切らないといけない
457デフォルトの名無しさん
2025/10/29(水) 19:33:33.85ID:OVpZFjzC once_cellでええやん
458デフォルトの名無しさん
2025/10/29(水) 21:05:45.94ID:DwSXyKDH OnceCellのget_or_initだと初期化処理が動くタイミングが読めない
↓
気持ち悪いからmainの最初で初期化する
↓
共有する時に毎回初期化済みかチェックするの無駄では
↓
unsafe「呼んだ?」
↓
気持ち悪いからmainの最初で初期化する
↓
共有する時に毎回初期化済みかチェックするの無駄では
↓
unsafe「呼んだ?」
459デフォルトの名無しさん
2025/10/29(水) 23:50:28.94ID:xf92jPdM そんなコード書くやつはクビ
460デフォルトの名無しさん
2025/10/30(木) 00:25:31.66ID:9N/j/0Me 別にチェックしたらいいやん
逆にそんな初期化タイミング気にする理由教えてよ
「最初にたまたま使うタイミングで」初期化で自然なのにあえてメイン関数で初期化する理由
逆にそんな初期化タイミング気にする理由教えてよ
「最初にたまたま使うタイミングで」初期化で自然なのにあえてメイン関数で初期化する理由
461デフォルトの名無しさん
2025/10/30(木) 00:26:18.06ID:9N/j/0Me >>454
sqlite 嫌いや
sqlite 嫌いや
462デフォルトの名無しさん
2025/10/30(木) 00:40:46.28ID:srGle5DG 初期化で重い処理があると変のタイミングで遅延が発生するのが気になる
最初にxxx_init(gl_initとか)で初期化するライブラリに馴染んでるのもあるけど
最初にxxx_init(gl_initとか)で初期化するライブラリに馴染んでるのもあるけど
463デフォルトの名無しさん
2025/10/30(木) 01:29:19.31ID:bVySussB つかOnceCellじゃなくてLazyCell使えば?
初期化タイミング固定したいなら一発getしとけばよし
初期化タイミング固定したいなら一発getしとけばよし
464デフォルトの名無しさん
2025/10/30(木) 03:16:33.13ID:X8TSXlMe465デフォルトの名無しさん
2025/10/30(木) 03:58:11.87ID:KK7tlxBe dockerhub見るとポスグレのほうがマイエスの2倍くらいpullされとうけどやっぱマイエスてオラクルだから嫌われてるの?
466デフォルトの名無しさん
2025/10/30(木) 04:18:06.36ID:92TxX2hJ >>463
最初のアクセス時に自動初期化してくれるだけでよいならDeref/DerefMutが使えるLazyCellが圧倒的に扱いやすいね
そうでなく初期化のタイミングを自由にして初期化以前はNoneを返したりset/takeを使ったりしたいならOnceCellだね
最初のアクセス時に自動初期化してくれるだけでよいならDeref/DerefMutが使えるLazyCellが圧倒的に扱いやすいね
そうでなく初期化のタイミングを自由にして初期化以前はNoneを返したりset/takeを使ったりしたいならOnceCellだね
467デフォルトの名無しさん
2025/10/30(木) 10:22:35.58ID:zpGcc97R どっちもスレッドセーフじゃないだろ
468デフォルトの名無しさん
2025/10/30(木) 10:35:58.35ID:bVySussB そっすね
469デフォルトの名無しさん
2025/10/30(木) 10:41:04.39ID:JG/b/82+ それぞれに対応するスレッドセーフ版のOnceLockとLazyLockがある
470デフォルトの名無しさん
2025/10/30(木) 10:48:00.79ID:JG/b/82+ なのでそれを常識としてOnceXxxxとLazyXxxxの性質の違いの話かと
471デフォルトの名無しさん
2025/10/30(木) 10:52:57.20ID:zpGcc97R >>458
共有前にmainで必ず初期化するのであれば
共有後に毎回初期化済みかチェックする必要ない
逆に共有後の初回アクセス時に初期化するという形をとるなら
初期化済みかどうか毎回チェックするようなコードがどこかに必要
毎回チェックするコードを自分で書きたくなければ
LazyLock等に肩代わりしてもらえという話
共有前にmainで必ず初期化するのであれば
共有後に毎回初期化済みかチェックする必要ない
逆に共有後の初回アクセス時に初期化するという形をとるなら
初期化済みかどうか毎回チェックするようなコードがどこかに必要
毎回チェックするコードを自分で書きたくなければ
LazyLock等に肩代わりしてもらえという話
472デフォルトの名無しさん
2025/10/30(木) 11:04:47.24ID:zpGcc97R >>466,470
LazyCell/LazyLockのget/get_mutがもうすぐstabilizeされるから
初期化以前はNoneを返すというのはどちらでも同じようにできるようになる
初期化関数で引数を受け取る必要もなく常に固定の初期化関数を実行すればいいだけならLazyCell/LazyLock
引数を受け取ったり条件によって違う初期化関数を実行したい場合はOnceCell/OnceLock
これが基本的な使い分け
LazyCell/LazyLockのget/get_mutがもうすぐstabilizeされるから
初期化以前はNoneを返すというのはどちらでも同じようにできるようになる
初期化関数で引数を受け取る必要もなく常に固定の初期化関数を実行すればいいだけならLazyCell/LazyLock
引数を受け取ったり条件によって違う初期化関数を実行したい場合はOnceCell/OnceLock
これが基本的な使い分け
473デフォルトの名無しさん
2025/10/30(木) 11:23:27.81ID:JG/b/82+ 使い勝手が天と地の差
Lazy~はderefできるから*Xでアクセスできてコードも見やすい
Once~は返値Option処理かget_or_init(|| ...)が必要
Lazy~はderefできるから*Xでアクセスできてコードも見やすい
Once~は返値Option処理かget_or_init(|| ...)が必要
474デフォルトの名無しさん
2025/10/30(木) 11:31:00.93ID:Nj0jrilV シングルスレッド+遅延評価ではタイミングが不明
別スレッドのスタックに置けば遅延しないのでかえって違和感が少ない
別スレッドのスタックに置けば遅延しないのでかえって違和感が少ない
475デフォルトの名無しさん
2025/10/30(木) 12:35:20.68ID:zpGcc97R >>473
それは使い分けの結果であって原因ではないからな
LazyCell/LazyLockでもinterior mutabilityを使えば
初期化時に引数を受け取るのと同じようなことができるが
get_or_init以上に使い勝手が悪化するから
derefしたいかどうかで選ぶものではない
それは使い分けの結果であって原因ではないからな
LazyCell/LazyLockでもinterior mutabilityを使えば
初期化時に引数を受け取るのと同じようなことができるが
get_or_init以上に使い勝手が悪化するから
derefしたいかどうかで選ぶものではない
476デフォルトの名無しさん
2025/10/30(木) 13:04:12.82ID:Nj0jrilV Option処理をしたくないとき
JavaにたとえるとNullPointerExceptionをcatchしたくないとき
必要なのは「catchされませんでした」みたいなパニックを容認すること
これがスタンダード
unsafeが必要だという考えはスタンダードではない
JavaにたとえるとNullPointerExceptionをcatchしたくないとき
必要なのは「catchされませんでした」みたいなパニックを容認すること
これがスタンダード
unsafeが必要だという考えはスタンダードではない
477デフォルトの名無しさん
2025/10/30(木) 13:10:40.17ID:Nj0jrilV unsafeもpanicもどっちも自由に使えばいい
panicを禁止するためにunsafeを使いたいのだとしたら自由とは言えない
panicを禁止するためにunsafeを使いたいのだとしたら自由とは言えない
478デフォルトの名無しさん
2025/10/30(木) 21:08:57.21ID:8A2yOaqe479デフォルトの名無しさん
2025/10/30(木) 21:45:45.78ID:pM7Xv5YE 例外処理でも条件分岐でも、わざわざ明記することはあっても、いつもそんな起きないことを書いていたら、他人には起きる例外だと認識されてしまう。
480デフォルトの名無しさん
2025/10/30(木) 21:53:26.04ID:Nj0jrilV Optionは長さに制限があるキューと考えられる
キューが空なら読む側はブロックすればいいのにブロックしないから無駄に複雑になる
キューが空なら読む側はブロックすればいいのにブロックしないから無駄に複雑になる
481デフォルトの名無しさん
2025/10/30(木) 21:56:50.09ID:i4jbq83k ?
482デフォルトの名無しさん
2025/10/30(木) 21:59:43.38ID:JG/b/82+ >>475
そこは併用することで解決できる
まずOnceLockで変数FOOの場合
初期化は例えばこうなる
static FOO: OnceLock<String> = OnceLock::new();
let foo = std::env::var("FOO").expect("no 環境変数FOO");
FOO.set(foo).expect("FOO: 初期化済");
このOnceLockのFOOの利用はこうなり可読性の悪い欠点がある
println!("FOO: {}", FOO.get().expect("FOO: 未初期化"));
一方でLazeLockで変数BARの場合
初期化で引数を渡せない欠点を先程のFOO活用で補える
static BAR: LazyLock<String> = LazyLock::new(|| BAR初期化関数(FOO.get().expect("FOO: not initialized")));
fn BAR初期化関数(foo: &str) -> String {
format!("適当に{foo}を変換")
}
このLazyLockのBARの利用はderefでこうなり可読性が向上する
println!("BAR: {}", *BAR);
そこは併用することで解決できる
まずOnceLockで変数FOOの場合
初期化は例えばこうなる
static FOO: OnceLock<String> = OnceLock::new();
let foo = std::env::var("FOO").expect("no 環境変数FOO");
FOO.set(foo).expect("FOO: 初期化済");
このOnceLockのFOOの利用はこうなり可読性の悪い欠点がある
println!("FOO: {}", FOO.get().expect("FOO: 未初期化"));
一方でLazeLockで変数BARの場合
初期化で引数を渡せない欠点を先程のFOO活用で補える
static BAR: LazyLock<String> = LazyLock::new(|| BAR初期化関数(FOO.get().expect("FOO: not initialized")));
fn BAR初期化関数(foo: &str) -> String {
format!("適当に{foo}を変換")
}
このLazyLockのBARの利用はderefでこうなり可読性が向上する
println!("BAR: {}", *BAR);
483デフォルトの名無しさん
2025/10/30(木) 22:01:59.88ID:dCoHjFig そういうのは一番嫌われる
484デフォルトの名無しさん
2025/10/30(木) 22:02:57.95ID:dCoHjFig 意味のない値に意味を持たせるのは最悪
485デフォルトの名無しさん
2025/10/30(木) 22:17:52.20ID:JG/b/82+ FOOやBARは例示で用いる昔からの慣習だよ
Rustの標準ライブラリのdocでも使われてるよ
Rustの標準ライブラリのdocでも使われてるよ
486デフォルトの名無しさん
2025/10/30(木) 23:31:49.22ID:Nj0jrilV 2進数に集合の意味をもたせるとか、方程式に図形の意味をもたせるとかね
487デフォルトの名無しさん
2025/10/31(金) 00:39:35.14ID:Z56C2bCz488デフォルトの名無しさん
2025/10/31(金) 01:23:46.44ID:UvKtMOZk #defineが嫌われていなければexpect云々を#defineするだけで解決するが
嫌われているのが現実?
いや、好感度など無視して解決可能というのが現実じゃないか
嫌われているのが現実?
いや、好感度など無視して解決可能というのが現実じゃないか
489デフォルトの名無しさん
2025/10/31(金) 01:26:08.34ID:VeWziky5 C/C++のクセで毎回、何かを確認しないといけないと思い込んでいるのかな?
490デフォルトの名無しさん
2025/10/31(金) 01:36:15.69ID:bL01KoQp LazyLockは変数宣言を見れば初期化のための式や関数を追える点でも可読性いいよな
491デフォルトの名無しさん
2025/10/31(金) 02:15:05.64ID:IDNiCq6B Cellを激推ししてた時代の複オジを思い出した
成長しないね
成長しないね
492デフォルトの名無しさん
2025/10/31(金) 03:52:17.44ID:VeWziky5 C++のように使いたい人間がいるから面倒なんだよなあ
493デフォルトの名無しさん
2025/10/31(金) 04:51:55.42ID:FXqlUjZZ 久しぶりにC++いじったら、依存ライブラリ管理がめんどくさすぎてキレそうになった
cargoはえらい
cmake大嫌い
cargoはえらい
cmake大嫌い
494デフォルトの名無しさん
2025/10/31(金) 07:07:09.98ID:W/94wpUF OnceLockやLazyLockを嫌いな人は代わりに何を使っているの?
495デフォルトの名無しさん
2025/10/31(金) 08:13:57.15ID:UvKtMOZk Mutex<Option<T>>
496デフォルトの名無しさん
2025/10/31(金) 08:16:32.55ID:W/94wpUF >>495
デタラメな回答はダメ
デタラメな回答はダメ
497デフォルトの名無しさん
2025/10/31(金) 08:43:37.37ID:zOlX52p0 初心に帰ろう
static mut FOO: MaybeUninit<Foo> = MaybeUninit::zeroed();
static mut FOO: MaybeUninit<Foo> = MaybeUninit::zeroed();
498デフォルトの名無しさん
2025/10/31(金) 08:47:38.08ID:W/94wpUF unsafeは論外
499デフォルトの名無しさん
2025/10/31(金) 11:44:05.74ID:UvKtMOZk デタラメがダメならやはり
ウソでも本当でもないポストモダンみたいな言葉を話すのが一つの手段なんだよな
ウソでも本当でもないポストモダンみたいな言葉を話すのが一つの手段なんだよな
500デフォルトの名無しさん
2025/10/31(金) 14:32:08.02ID:6Y8XYqCD501デフォルトの名無しさん
2025/10/31(金) 14:41:51.16ID:UvKtMOZk まあいいじゃんそういうの
502デフォルトの名無しさん
2025/10/31(金) 14:48:40.46ID:23LwyDl2 >>500
exampleで本題ではないエラー処理を略すのは常識なんだがdoc.rust-lang.org見たことない人なんやろか
exampleで本題ではないエラー処理を略すのは常識なんだがdoc.rust-lang.org見たことない人なんやろか
503デフォルトの名無しさん
2025/10/31(金) 16:19:06.11ID:Q4NMZH5V 現実にはあり得ないコードで可読性を論じるおバカさん乙
504デフォルトの名無しさん
2025/10/31(金) 16:34:52.47ID:nOVciEeR 代案を出せばいいんじゃね
505デフォルトの名無しさん
2025/10/31(金) 18:21:19.45ID:UvKtMOZk 案が増える保証はどこにもない
コメのように減産も増産もありうる
コメのように減産も増産もありうる
506デフォルトの名無しさん
2025/10/31(金) 18:29:01.57ID:GZFK+llv 「批判するなら代案だせ」ww
度し難いクソコードに代案を求めるなよ
しかも既に代案出してもらってるというのにこのバカは
度し難いクソコードに代案を求めるなよ
しかも既に代案出してもらってるというのにこのバカは
507デフォルトの名無しさん
2025/10/31(金) 18:45:07.30ID:Gjt4wm2R OnceLockとLazyLockがクソコードってRustのスレッドセーフ初期化で辿り着いた最善案なのに
508デフォルトの名無しさん
2025/10/31(金) 18:47:08.71ID:FXqlUjZZ 代案はZigを使うこと
509デフォルトの名無しさん
2025/10/31(金) 19:49:57.01ID:MSFuZ4Ne 昔は初期化のためにlazy_static!が使われてた
そこへ改良されたonce_cell::sync::Lazyが登場した
それを標準ライブラリに取り込んだのがstd::sync::LazyLockで最終形
そこへ改良されたonce_cell::sync::Lazyが登場した
それを標準ライブラリに取り込んだのがstd::sync::LazyLockで最終形
510デフォルトの名無しさん
2025/10/31(金) 20:47:30.17ID:T+pQSrXv 質問者が消えて要件不明なのにいつまでも基礎的な部分を整理だけし続けるいつものやつ
511デフォルトの名無しさん
2025/10/31(金) 21:12:30.84ID:UvKtMOZk ギリギリセーフは最善ではない
細かいルールに依存してしまうので些細なルール変更でアウトになる
という基礎知識
細かいルールに依存してしまうので些細なルール変更でアウトになる
という基礎知識
512デフォルトの名無しさん
2025/10/31(金) 21:15:37.01ID:+FXrANIZ >>495
MutexとLazyLockは役割が全く異なる。
staticで使う場合にその目的に応じて以下の3つに使い分けられる。
LazyLock<T> 内部可変は不要で動的初期化をしたい場合
Mutex<T> 内部可変が必要で静的初期化をしたい場合
LazyLock<Mutex<T>> 内部可変が必要で動的初期化をしたい場合
MutexとLazyLockは役割が全く異なる。
staticで使う場合にその目的に応じて以下の3つに使い分けられる。
LazyLock<T> 内部可変は不要で動的初期化をしたい場合
Mutex<T> 内部可変が必要で静的初期化をしたい場合
LazyLock<Mutex<T>> 内部可変が必要で動的初期化をしたい場合
513デフォルトの名無しさん
2025/10/31(金) 21:45:15.58ID:T+pQSrXv 内部可変ってそういう意味じゃねえから
514デフォルトの名無しさん
2025/10/31(金) 21:48:39.11ID:nBW4bT0X このようにRustは非常に使いにくい言語です
515デフォルトの名無しさん
2025/10/31(金) 22:01:01.32ID:UvKtMOZk 初期化と代入の役割は全く異なるとも言えるし、ほとんど同じとも言える
これも逆転しやすい
些細な変化で善悪が逆転する
これも逆転しやすい
些細な変化で善悪が逆転する
516デフォルトの名無しさん
2025/10/31(金) 22:20:06.99ID:Bc1Z9Piy517デフォルトの名無しさん
2025/10/31(金) 22:21:19.33ID:Bc1Z9Piy 間違えた
クソコードは>>482だった
クソコードは>>482だった
518デフォルトの名無しさん
2025/10/31(金) 22:40:17.03ID:+FXrANIZ519デフォルトの名無しさん
2025/10/31(金) 23:01:52.93ID:UvKtMOZk 任意のTを実体化可能
内部可変を禁止できると思ってるなら事実誤認
内部可変を禁止できると思ってるなら事実誤認
520デフォルトの名無しさん
2025/10/31(金) 23:53:36.36ID:8btOyh6t >>516
コード見たけど何が問題なのか教えて
コード見たけど何が問題なのか教えて
521デフォルトの名無しさん
2025/11/01(土) 10:00:34.52ID:aFOqjWrP >>520
482みたいなAIやら人工知能に書かせたコードの善し悪しなんて語っても無駄
482みたいなAIやら人工知能に書かせたコードの善し悪しなんて語っても無駄
522デフォルトの名無しさん
2025/11/01(土) 10:21:55.29ID:uKbhU6EZ 生成AIのほうが>>482なんかよりはるかにまともなコード書くぞ
523デフォルトの名無しさん
2025/11/01(土) 10:29:48.54ID:uKbhU6EZ 試しにChatGPTになぜクソコードなのか聞いてみた
====
以下のコードがクソコードだと言われました。なぜクソコードなのでしょうか? どうすればクソコードじゃなくなりますか?
とても良い質問です。
このコード、**「動くけど設計として危険・臭い」**という典型的なクソコード(=悪い設計例)です。
なぜそう言われるか、そしてどう直せばいいか、順を追って説明します。
なぜ「クソコード」扱いされるのか
@ グローバル変数依存(隠れた順序依存)
BAR は FOO の値に依存しているのに、Rustの型システムではそれが表現されていません。
FOOをセットしてからBARを使うという順序前提が、コードの外にあります。
つまり:
…
A LazyLock と OnceLock の使い分けが不自然
FOO は「後でセットする」ための OnceLock
BAR は「自動で初期化する」ための LazyLock
しかし BAR の初期化に FOO が必要ということは、BAR の「自動初期化」が成立していません。
結局「FOOが先に初期化されていないと壊れる」=「LazyなのにLazyでいられない」状態です。
…
B 初期化エラーが実行時panic
expect("FOO: not initialized") は、
BARを最初に触ったタイミングでFOOが未初期化だったらpanic
という非常に脆い構造です。
初期化の安全性がコンパイル時に保証されず、実行時の偶然に依存しています。
…
====
以下のコードがクソコードだと言われました。なぜクソコードなのでしょうか? どうすればクソコードじゃなくなりますか?
とても良い質問です。
このコード、**「動くけど設計として危険・臭い」**という典型的なクソコード(=悪い設計例)です。
なぜそう言われるか、そしてどう直せばいいか、順を追って説明します。
なぜ「クソコード」扱いされるのか
@ グローバル変数依存(隠れた順序依存)
BAR は FOO の値に依存しているのに、Rustの型システムではそれが表現されていません。
FOOをセットしてからBARを使うという順序前提が、コードの外にあります。
つまり:
…
A LazyLock と OnceLock の使い分けが不自然
FOO は「後でセットする」ための OnceLock
BAR は「自動で初期化する」ための LazyLock
しかし BAR の初期化に FOO が必要ということは、BAR の「自動初期化」が成立していません。
結局「FOOが先に初期化されていないと壊れる」=「LazyなのにLazyでいられない」状態です。
…
B 初期化エラーが実行時panic
expect("FOO: not initialized") は、
BARを最初に触ったタイミングでFOOが未初期化だったらpanic
という非常に脆い構造です。
初期化の安全性がコンパイル時に保証されず、実行時の偶然に依存しています。
…
524デフォルトの名無しさん
2025/11/01(土) 10:30:45.08ID:uKbhU6EZ 「動くけど設計として危険・臭い」という典型的なクソコードです!
525デフォルトの名無しさん
2025/11/01(土) 10:55:39.21ID:/uJItwLS なぜAIはクソかを質問して
「AIの学習に人間が必要ということは自動初期化が成立していません」を生成できたら少しは信用できる
「AIの学習に人間が必要ということは自動初期化が成立していません」を生成できたら少しは信用できる
526デフォルトの名無しさん
2025/11/01(土) 10:58:56.69ID:g3WZAZrD >>518
たぶんRefCell/Mutex/RwLockあたりのロック付き型のことを内部可変性って呼んでるんだろうなって思ったけど
>不変参照しか持たない場合でも可変な借用を得られる仕組みが内部可変性。
この説明ならやっぱりそういう意味で書いてそうだね
Cell<T>もAtomic***も、さらに言えばLazyCell<T>も内部可変じゃないことになるが、まあそんなわけはないのでちゃんとドキュメント読んでね
たぶんRefCell/Mutex/RwLockあたりのロック付き型のことを内部可変性って呼んでるんだろうなって思ったけど
>不変参照しか持たない場合でも可変な借用を得られる仕組みが内部可変性。
この説明ならやっぱりそういう意味で書いてそうだね
Cell<T>もAtomic***も、さらに言えばLazyCell<T>も内部可変じゃないことになるが、まあそんなわけはないのでちゃんとドキュメント読んでね
527デフォルトの名無しさん
2025/11/01(土) 11:04:56.46ID:mdP806Ha 言語に関係なく初期化ルーチンで必ず初期化を行なうグローバル変数などについては依存関係があってもいいんだよ
今回の場合は万が一その依存関係が崩れていればpanicで落ちるから完璧に安全でしょう
まずいのは依存関係が崩れても検知ができずに間違った未初期化の値のままプログラムが進むこと
Rustのpanicはこの基本概念に基づいて安全性のために存在しています
今回の場合は万が一その依存関係が崩れていればpanicで落ちるから完璧に安全でしょう
まずいのは依存関係が崩れても検知ができずに間違った未初期化の値のままプログラムが進むこと
Rustのpanicはこの基本概念に基づいて安全性のために存在しています
528デフォルトの名無しさん
2025/11/01(土) 11:40:18.77ID:M9NY+bCI >>526
Rustでは内部可変を段階的に説明していてどちらも正しい。
一番の基本は、内部可変とは不変参照しか持たない時でも可変を許すパターン
https://doc.rust-lang.org/book/ch15-05-interior-mutability.html
Interior mutability is a design pattern in Rust that allows you to mutate data even when there are immutable references to that data
通常の説明ではこれで問題ない。
一方であなたの説明では一番大事な正確な定義が抜けているが、
Rustで内部可変とはUnsafeCellを用いていること、すなわちトレイトFreezeを実装していない!Freeze型を指す。
この!Freeze型とは内部可変をもたらすUnsafeCellを用いているか否かを示している。
AtomicもMutexもLazyLockも全て元を辿るとUnsafeCellが使われていて自動的に!Freeze型となる。
もちろん普段の説明ではこの厳密な定義を用いずに、内部可変とは不変参照しかない時でも可変を得られること、で構わないと思う。
Rustでは内部可変を段階的に説明していてどちらも正しい。
一番の基本は、内部可変とは不変参照しか持たない時でも可変を許すパターン
https://doc.rust-lang.org/book/ch15-05-interior-mutability.html
Interior mutability is a design pattern in Rust that allows you to mutate data even when there are immutable references to that data
通常の説明ではこれで問題ない。
一方であなたの説明では一番大事な正確な定義が抜けているが、
Rustで内部可変とはUnsafeCellを用いていること、すなわちトレイトFreezeを実装していない!Freeze型を指す。
この!Freeze型とは内部可変をもたらすUnsafeCellを用いているか否かを示している。
AtomicもMutexもLazyLockも全て元を辿るとUnsafeCellが使われていて自動的に!Freeze型となる。
もちろん普段の説明ではこの厳密な定義を用いずに、内部可変とは不変参照しかない時でも可変を得られること、で構わないと思う。
529デフォルトの名無しさん
2025/11/01(土) 13:01:38.93ID:s4kd72Pi コード書くときにこういった謎の禅問答みたいなことを延々と続けてるのか
大変だな
大変だな
530デフォルトの名無しさん
2025/11/01(土) 13:03:56.65ID:g3WZAZrD "allows you to mutate data"に対して「可変な借用を得られる」だと制限が強すぎて間違いだったのを理解したので
>>528では最初からそう言いたかったんですよってフリで「可変を許す」「可変を得られる」みたいな曖昧な表現にしれっと置き換える
これが所有権の複製話法です
>>528では最初からそう言いたかったんですよってフリで「可変を許す」「可変を得られる」みたいな曖昧な表現にしれっと置き換える
これが所有権の複製話法です
531デフォルトの名無しさん
2025/11/01(土) 13:08:31.28ID:c42kdQyz rustは外部のライブラリーに依存しないで書くのは難しいような気がするのだが
532デフォルトの名無しさん
2025/11/01(土) 13:08:31.85ID:TYBdxLbV533デフォルトの名無しさん
2025/11/01(土) 13:19:59.11ID:QjdiwYjo534デフォルトの名無しさん
2025/11/01(土) 13:26:36.27ID:am2mePEs535デフォルトの名無しさん
2025/11/01(土) 13:28:11.18ID:b0QDefmP rustは(知った被りアンチも多く嘘や不正確な情報が蔓延しているので)使いにくい
536デフォルトの名無しさん
2025/11/01(土) 13:35:00.58ID:c42kdQyz rustはeatherはresultがあるから要らないといってなくなったらしいが、
errorのところにerrorじゃないものを入れてokのところに、
okじゃないものを入れるのにみんな抵抗感は感じないのだろうか
errorのところにerrorじゃないものを入れてokのところに、
okじゃないものを入れるのにみんな抵抗感は感じないのだろうか
537デフォルトの名無しさん
2025/11/01(土) 13:37:12.17ID:s4kd72Pi GCに依存できる環境だとここまで考えなくてもいいんでしょ?
大変は大変でその代わりメリットがあると
大変は大変でその代わりメリットがあると
538デフォルトの名無しさん
2025/11/01(土) 13:39:02.26ID:QjdiwYjo >>537
GC言語にも抽象度の高い言語があるからそこは関係ないよ
GC言語にも抽象度の高い言語があるからそこは関係ないよ
539デフォルトの名無しさん
2025/11/01(土) 13:41:49.38ID:9L/RTK5n540デフォルトの名無しさん
2025/11/01(土) 13:51:01.37ID:w12b3puC >>536
Result型を本来の用途以外で使ったらコードレビューで絶対リジェクトされると思うよ
ResultとOptionは実用上での利用が多かったから標準ライブラリに入ったのであって、Eitherが使いたかったら外部ライブラリ使うか自作すればいい
Result型を本来の用途以外で使ったらコードレビューで絶対リジェクトされると思うよ
ResultとOptionは実用上での利用が多かったから標準ライブラリに入ったのであって、Eitherが使いたかったら外部ライブラリ使うか自作すればいい
541デフォルトの名無しさん
2025/11/01(土) 13:57:10.92ID:W6xNe0tO >>540
そんなことはない
標準ライブラリでもErrorを拡大解釈してエラー以外に用いている
特に多いのが値の返還にResultのErrorを利用
左右対称ならResultを使わずにeither crateを使うべき
そんなことはない
標準ライブラリでもErrorを拡大解釈してエラー以外に用いている
特に多いのが値の返還にResultのErrorを利用
左右対称ならResultを使わずにeither crateを使うべき
542デフォルトの名無しさん
2025/11/01(土) 14:22:52.12ID:t+20UcyI >>534
基本的な概念や仕組みを知らないままバイブコーディングしていたらコードレビューもできずに詰みそう
基本的な概念や仕組みを知らないままバイブコーディングしていたらコードレビューもできずに詰みそう
543デフォルトの名無しさん
2025/11/01(土) 14:52:04.69ID:/uJItwLS 謎の禅問答を学習したら知能は増え信者は減る?
いや信者が増える方が宗教だろ
科学を舐めるな
いや信者が増える方が宗教だろ
科学を舐めるな
544デフォルトの名無しさん
2025/11/01(土) 15:33:03.66ID:SAJJpDfX 複オジは嘘ばっかりだな
545デフォルトの名無しさん
2025/11/01(土) 15:37:15.60ID:8wHtIByR 抽象化を理解できずに謎の禅問答にみえる新たな科学かもしれぬ
546デフォルトの名無しさん
2025/11/01(土) 18:01:00.80ID:W1T4uP/l 複おじもはや一周回ってRustアンチまである
547デフォルトの名無しさん
2025/11/01(土) 19:00:08.27ID:V6yHUqHj548デフォルトの名無しさん
2025/11/01(土) 19:22:28.52ID:na8d22ha 両者が対等ならLeft、Right使うよりOwned、Borrowedみたいに名前つけてくれ
Leftが成功寄り、Rightが失敗寄りみたいな慣習を持ち出すならResultでいい
Leftが成功寄り、Rightが失敗寄りみたいな慣習を持ち出すならResultでいい
549デフォルトの名無しさん
2025/11/01(土) 19:58:52.73ID:8wHtIByR 成功失敗に使う言語もあるけどRustのEitherはLeftとRight完全に対等
Resultよりも高機能で強力
RustのEitherはもともとRayonのために作られてItertoolsもそのEitherを組み込んでいて事実上の標準
Resultよりも高機能で強力
RustのEitherはもともとRayonのために作られてItertoolsもそのEitherを組み込んでいて事実上の標準
550デフォルトの名無しさん
2025/11/01(土) 21:11:37.16ID:yJiGHW4c >>546
本人にそのつもりは一切ないだろうが結果的にはアンチ活動家以外の何者でもないわな
本人にそのつもりは一切ないだろうが結果的にはアンチ活動家以外の何者でもないわな
551デフォルトの名無しさん
2025/11/01(土) 21:21:09.81ID:cx7pH9ul Rust使いはアホというイメージを与えると同時に、
あんまりにも盲信的かつ程度が低いもんだから他の人が「さすがにそれは違う」とRustに対して批判的なトーンで諫めるものだから、
自然とスレの空気がアンチっぽくなるんだよね
あんまりにも盲信的かつ程度が低いもんだから他の人が「さすがにそれは違う」とRustに対して批判的なトーンで諫めるものだから、
自然とスレの空気がアンチっぽくなるんだよね
552デフォルトの名無しさん
2025/11/01(土) 21:22:50.18ID:8wHtIByR 困ったもんだよな
553デフォルトの名無しさん
2025/11/01(土) 21:30:17.22ID:gnnSc5/H servo、久しぶりに動かしてみたら、まあまあ出来てるな
ついでにversoプロジェクトが終了していたことを今さら知った
がわの部分、shellが機能不足過ぎて常用するブラウザーには到底ならないが
描画エンジンとしては現時点でも何かに使えそう
ついでにversoプロジェクトが終了していたことを今さら知った
がわの部分、shellが機能不足過ぎて常用するブラウザーには到底ならないが
描画エンジンとしては現時点でも何かに使えそう
554デフォルトの名無しさん
2025/11/01(土) 22:29:09.83ID:f7mQTVkH Rust使いはアホではないけど概念的に普通にコード書くのも大変なんだなと
555デフォルトの名無しさん
2025/11/01(土) 22:47:39.33ID:eIxSVUj6 抽象度の低い言語より書きやすい
556デフォルトの名無しさん
2025/11/01(土) 23:35:48.21ID:g3WZAZrD 所有権の複製おじさん
データ参照の競合おじさん
可変を得るおじさん
データ参照の競合おじさん
可変を得るおじさん
557デフォルトの名無しさん
2025/11/02(日) 15:05:38.09ID:CiqO+SUG >>555
Rustより抽象度の低い言語ってメジャー言語ではCとC++しかないじゃん
Rustより抽象度の低い言語ってメジャー言語ではCとC++しかないじゃん
558デフォルトの名無しさん
2025/11/02(日) 18:02:42.58ID:DEScUpRh 全部きれいなお姉さんに置き換えたら赦す心が芽生えた
559デフォルトの名無しさん
2025/11/02(日) 20:55:21.31ID:5I1cphwl 確かに船と同じでコードを女性に例えるともっと
大事に扱う気になるかも知れない
大事に扱う気になるかも知れない
560デフォルトの名無しさん
2025/11/02(日) 23:53:23.75ID:J6OkX1Eo >>557
Goも
Goも
561デフォルトの名無しさん
2025/11/03(月) 01:05:29.98ID:rQkJBpL5 メスガキのほうがイメージしやすいかもしれん
562デフォルトの名無しさん
2025/11/03(月) 11:14:52.63ID:nm4PTvZt そういえば女性エンジニアって能力的な下限が男性底辺よりも上な気がする
組織による違いや生存者バイアス的なのもあると思うが
組織による違いや生存者バイアス的なのもあると思うが
563デフォルトの名無しさん
2025/11/03(月) 11:27:28.99ID:7oO4iHcI 原初は職業プログラマは女性の仕事だったのに一気に男性が増えたのはなぜななのか
564デフォルトの名無しさん
2025/11/03(月) 11:55:28.00ID:0AHiueHW 男の1/100ぐらいしか女いないしな
数が多ければ多いほど無能と有能の差は広がる
数が多ければ多いほど無能と有能の差は広がる
565デフォルトの名無しさん
2025/11/03(月) 12:06:07.94ID:w8FLSUod プログラマの最底辺は技術云々じゃなく基本的な就労適正に問題があるレベルだからなあ
女性は自分の申告しているスキルの範囲ではそれなりに真面目にきっちりと仕事をする奴が多い気がする
ダメならすぐ病んで消えるから職場的にはあまり問題にならないし
女性は自分の申告しているスキルの範囲ではそれなりに真面目にきっちりと仕事をする奴が多い気がする
ダメならすぐ病んで消えるから職場的にはあまり問題にならないし
566デフォルトの名無しさん
2025/11/03(月) 12:14:09.94ID:b7J3p22l Recent Rust Changes
https://www.ncameron.org/blog/recent-rust-changes/
https://www.ncameron.org/blog/recent-rust-changes/
567デフォルトの名無しさん
2025/11/05(水) 17:38:13.88ID:e7JKMroS RustでESP32とオモたが、環境作りがムズイ。
Windows VSCodeでPlatformIOのようにサクっとできるようにならないもんかね?
Windows VSCodeでPlatformIOのようにサクっとできるようにならないもんかね?
568デフォルトの名無しさん
2025/11/05(水) 17:51:33.76ID:/BRKTToS まだ発展途上じゃけえ
ほとんどのクレートがまだバージョン0だし
ほとんどのクレートがまだバージョン0だし
569デフォルトの名無しさん
2025/11/05(水) 18:21:47.42ID:seaKh6U5 >>567
cargoでespupしてespflashでええやん
cargoでespupしてespflashでええやん
570デフォルトの名無しさん
2025/11/06(木) 06:35:00.47ID:GB9xAhoN anyhowみたいなライブラリが出てきたということは、Rustってやっぱり厳密すぎたんじゃないかな
次に流行る言語は妥協がありそう
次に流行る言語は妥協がありそう
571デフォルトの名無しさん
2025/11/06(木) 12:39:14.84ID:GB9xAhoN >>202
pythonでも標準ライブラリでasyncio.Lockが提供されてるよ
pythonでも標準ライブラリでasyncio.Lockが提供されてるよ
572デフォルトの名無しさん
2025/11/06(木) 13:30:57.33ID:LQUNM8KW573デフォルトの名無しさん
2025/11/06(木) 13:33:07.83ID:avSCZEbn Pythonはそういう用途に使う言語じゃない
まちがってる
まちがってる
574デフォルトの名無しさん
2025/11/06(木) 13:51:58.57ID:nZ/9WqEw >>571
よく読んでごらん
安全性のための必須条件を満たしているかどうかの話だよ
Pythonはこの安全性を満たしていないね
202 デフォルトの名無しさん sage 2025/09/21(日) 02:43:46.06 ID:ETMxp5J0
Mutexなどロックしている間のみ変数にアクセスできるしくみを用意している言語はRustだけじゃね?
よく読んでごらん
安全性のための必須条件を満たしているかどうかの話だよ
Pythonはこの安全性を満たしていないね
202 デフォルトの名無しさん sage 2025/09/21(日) 02:43:46.06 ID:ETMxp5J0
Mutexなどロックしている間のみ変数にアクセスできるしくみを用意している言語はRustだけじゃね?
575デフォルトの名無しさん
2025/11/06(木) 14:12:27.56ID:Yd9kjPBo >>571
複オジィッシング詐欺に引っ掛かるやつw
複オジィッシング詐欺に引っ掛かるやつw
576デフォルトの名無しさん
2025/11/07(金) 16:08:21.14ID:2/Hvzjyz Rustでスマホアプリのバックエンドを実装してるんだけど、sqliteがシングルスレッド前提だからそこだけ同期処理になるんよ
この領域を非同期で書けないの最高に気持ち悪い。まとめてsqlにデータを挿入しないで、データがバッファーに貯まったらダンプする処理とか同期で書くの生理的にきつい
tokioのchannelとstd::threadが混じっていく
この領域を非同期で書けないの最高に気持ち悪い。まとめてsqlにデータを挿入しないで、データがバッファーに貯まったらダンプする処理とか同期で書くの生理的にきつい
tokioのchannelとstd::threadが混じっていく
577デフォルトの名無しさん
2025/11/07(金) 16:32:35.77ID:sSuvh5Kf578デフォルトの名無しさん
2025/11/07(金) 16:44:11.59ID:bF5xlAUX579デフォルトの名無しさん
2025/11/07(金) 17:22:18.89ID:E0+MoMgg580デフォルトの名無しさん
2025/11/07(金) 17:22:46.88ID:w//DyTC5 >>576
sqlx::SqlitePool
sqlx::SqlitePool
581デフォルトの名無しさん
2025/11/07(金) 17:36:37.18ID:E0+MoMgg >>580
ああっ。確かにsqlxを使う選択肢はありますね。失念してました
自分は実践でsqlxではなくrusqliteを技術選択しました
RDB用の単スレッドで動作させるならば、sqlxよりrusqliteの方が速いからです
別スレッドを立て、タスク管理をしてまでスループットを上げたいという条件下でsqlxは選びにくいと感じました
ああっ。確かにsqlxを使う選択肢はありますね。失念してました
自分は実践でsqlxではなくrusqliteを技術選択しました
RDB用の単スレッドで動作させるならば、sqlxよりrusqliteの方が速いからです
別スレッドを立て、タスク管理をしてまでスループットを上げたいという条件下でsqlxは選びにくいと感じました
582デフォルトの名無しさん
2025/11/07(金) 17:38:03.28ID:kqIhu9xc >>576
sqliteは非同期には対応してないがマルチスレッドには対応していてシングルスレッド前提ではない
同時に書き込めるのは1コネクションだけなので書き込み処理を一つのスレッドにまとめる方法はよく採用されるけどそれをシングルスレッド前提と言ってる?
いずれにしろ非同期のラッパーを書いて同期部分は一箇所に隠蔽すればいいだけ
ラッパーが用意されてるライブラリもある
sqliteは非同期には対応してないがマルチスレッドには対応していてシングルスレッド前提ではない
同時に書き込めるのは1コネクションだけなので書き込み処理を一つのスレッドにまとめる方法はよく採用されるけどそれをシングルスレッド前提と言ってる?
いずれにしろ非同期のラッパーを書いて同期部分は一箇所に隠蔽すればいいだけ
ラッパーが用意されてるライブラリもある
583デフォルトの名無しさん
2025/11/07(金) 17:39:57.53ID:kqIhu9xc >>577
バックエンドサーバーの話じゃなくてUIコード(フロント)から呼ばれるライブラリくらいの意味でバックエンドという言葉を使ってるのだと思う
バックエンドサーバーの話じゃなくてUIコード(フロント)から呼ばれるライブラリくらいの意味でバックエンドという言葉を使ってるのだと思う
584デフォルトの名無しさん
2025/11/07(金) 17:47:33.29ID:E0+MoMgg585デフォルトの名無しさん
2025/11/07(金) 19:56:16.34ID:gmNJckty いつから健全なスレになった
586デフォルトの名無しさん
2025/11/07(金) 20:31:07.75ID:MqFsU2xp sqliteて最近はcloudflareでも使われてるし最近流行ってるらしい🧐
587デフォルトの名無しさん
2025/11/07(金) 22:19:46.72ID:Q8YVEkBf ワークロード的に明らかに問題が出ることが分かってるというのでなければ
とりあえずspawn_blockingを使うだけの方法から始めてもいいと思う
とりあえずspawn_blockingを使うだけの方法から始めてもいいと思う
588デフォルトの名無しさん
2025/11/07(金) 22:33:36.98ID:ei1rk0H/ >>582
彼の用途でそのマルチスレッド対応は意味がなくてスレッドMutexにより非同期タスクスケジューラのスレッドをブロックしてスケジューリング妨害となってしまう
つまりスレッドMutexではなくawaitで待つ非同期タスクMutexを使うべきだがsqliteは当然対応していない
そこでシングルスレッド前提で使う話なのかなと理解した
マルチスレッドで使う場合も非同期タスクとは別スレッドのsqlite用のスレッドプールを用意する形になるかと
彼の用途でそのマルチスレッド対応は意味がなくてスレッドMutexにより非同期タスクスケジューラのスレッドをブロックしてスケジューリング妨害となってしまう
つまりスレッドMutexではなくawaitで待つ非同期タスクMutexを使うべきだがsqliteは当然対応していない
そこでシングルスレッド前提で使う話なのかなと理解した
マルチスレッドで使う場合も非同期タスクとは別スレッドのsqlite用のスレッドプールを用意する形になるかと
589デフォルトの名無しさん
2025/11/08(土) 01:31:09.85ID:xFyQtacU Debianのパッケージマネージャーであるaptが部分的にRustで書き直された影響で
RustがコンパイルできないマイナーなアーキテクチャがOSサポート停止になってしまうらしい
これは恨みを買うね
RustがコンパイルできないマイナーなアーキテクチャがOSサポート停止になってしまうらしい
これは恨みを買うね
590デフォルトの名無しさん
2025/11/08(土) 13:19:45.72ID:4T3c3gtX aptのメンテナーすごい判断したな
メリットの方が大きいと踏んだからだと思うが、ノイジー・マイノリティの影響力を舐めてるわ
メリットの方が大きいと踏んだからだと思うが、ノイジー・マイノリティの影響力を舐めてるわ
591デフォルトの名無しさん
2025/11/08(土) 13:56:10.82ID:iJ+TD7ss 実質的なメリットよりモチベーションの問題でしょ
DebianはLinux界隈の中では比較的大きな組織とはいえ所詮はコミュニティプロジェクト、
Rustを使えるならと活発に貢献してくれる若い奴1人のモチベ=[ションは開発b続ける上で大bォなファクターbセ
でも成演ハを享受するだbッのユーザーはbオばしば、大きbネ企業の製品と涛ッ等の体制や責粕Cがあるように滑ィ違いしてるんbセよね
まbRustの方はもbヘやコミュニテャBプロジェクトbナはなく壮々たb髑蜉驪ニが顔を連ね潤沢なリソ=[スを有する組瑞Dなので、同様bフ言い訳は許さb黷ネいけどね
DebianはLinux界隈の中では比較的大きな組織とはいえ所詮はコミュニティプロジェクト、
Rustを使えるならと活発に貢献してくれる若い奴1人のモチベ=[ションは開発b続ける上で大bォなファクターbセ
でも成演ハを享受するだbッのユーザーはbオばしば、大きbネ企業の製品と涛ッ等の体制や責粕Cがあるように滑ィ違いしてるんbセよね
まbRustの方はもbヘやコミュニテャBプロジェクトbナはなく壮々たb髑蜉驪ニが顔を連ね潤沢なリソ=[スを有する組瑞Dなので、同様bフ言い訳は許さb黷ネいけどね
592デフォルトの名無しさん
2025/11/08(土) 14:53:09.75ID:uoEf+XNp シェア低くてもサポートしてほしいなら、自分でフォークして保守せえやってのが本来のOSSだからな
593デフォルトの名無しさん
2025/11/08(土) 15:05:36.63ID:X5jMFRl4594デフォルトの名無しさん
2025/11/08(土) 17:35:27.61ID:bNW9jxHO 詳しくないんだけど、サポート外になるCPUってどんなの?
古いPCに使われてるものなのか、それとも組込み機器など特定分野で使われてるものなのか
AMDやARMしか知らないから、実際どういうところが影響受けるのかいまいち想像が付かない
古いPCに使われてるものなのか、それとも組込み機器など特定分野で使われてるものなのか
AMDやARMしか知らないから、実際どういうところが影響受けるのかいまいち想像が付かない
595デフォルトの名無しさん
2025/11/08(土) 17:37:34.34ID:pXyjl95e >>594
誰も使ってないから気にしなくていいよ
誰も使ってないから気にしなくていいよ
596デフォルトの名無しさん
2025/11/08(土) 17:46:52.09ID:tF6dEOxV Cで書こうがRustで書こうがllvmではコンパイルできない感じ?
597デフォルトの名無しさん
2025/11/08(土) 18:37:24.47ID:ICj3I2sk >>588
意味なくないよ
マルチスレッド対応してるから
データをバッファに貯めてからまとめてDBに書くような処理を実行しながら
ユーザーアクションに応じたデータを同じDBから読み込んで表示するみたいなことが同時にできるわけで
とりあえず同期/非同期とシングルスレッド/マルチスレッドを区別しようよ
長時間かかる同期処理を通常の非同期タスクスケジューラにそのまま投げたらダメだということと
sqliteのマルチスレッド対応状況とは何の関係もないからさ
意味なくないよ
マルチスレッド対応してるから
データをバッファに貯めてからまとめてDBに書くような処理を実行しながら
ユーザーアクションに応じたデータを同じDBから読み込んで表示するみたいなことが同時にできるわけで
とりあえず同期/非同期とシングルスレッド/マルチスレッドを区別しようよ
長時間かかる同期処理を通常の非同期タスクスケジューラにそのまま投げたらダメだということと
sqliteのマルチスレッド対応状況とは何の関係もないからさ
598デフォルトの名無しさん
2025/11/08(土) 18:51:24.50ID:Mkz3TZ2+ そんな話は誰もしていなくて>>579氏はsqliteが非同期対応していないもどかしさを述べてるね
素直に let res = sqlite. request(x).await; と書きたい話だと思うよ
素直に let res = sqlite. request(x).await; と書きたい話だと思うよ
599デフォルトの名無しさん
2025/11/08(土) 19:28:31.98ID:tF6dEOxV シングルスレッドかつ同期 => 悪い
マルチスレッドまたは非同期 => 良い
シングルスレッドかつ非同期 => 書けない
非同期とマルチスレッドの二刀流のようなものが正解
マルチスレッドまたは非同期 => 良い
シングルスレッドかつ非同期 => 書けない
非同期とマルチスレッドの二刀流のようなものが正解
600デフォルトの名無しさん
2025/11/08(土) 20:59:10.51ID:fJHSi6K0 Rustはマルチスレッド非同期がデフォルトだよ
事情があればシングルスレッド指定しても非同期使えるけど
事情があればシングルスレッド指定しても非同期使えるけど
601デフォルトの名無しさん
2025/11/08(土) 21:17:23.23ID:bNW9jxHO602デフォルトの名無しさん
2025/11/08(土) 21:20:49.42ID:xFyQtacU いや、ほとんどの場合はマルチスレッド同期でじゅうぶん
なにかと非同期にしたがるのは意識高い系の所業
なにかと非同期にしたがるのは意識高い系の所業
603デフォルトの名無しさん
2025/11/08(土) 21:44:26.91ID:yMZK+1Tu 昔はselectやpollで捌いていたけど
Rustの非同期タスクとtokioスケジューラで便利になったよ
意識が高いではなくプログラミングのしやすさと実用面から非同期が使われてるの
Rustの非同期タスクとtokioスケジューラで便利になったよ
意識が高いではなくプログラミングのしやすさと実用面から非同期が使われてるの
604デフォルトの名無しさん
2025/11/08(土) 22:40:31.33ID:tF6dEOxV なんでも文字列で入出力したらGCの意識じゃなくて価値が低くなる
価値を高騰させろ
循環参照を考えろ
価値を高騰させろ
循環参照を考えろ
605デフォルトの名無しさん
2025/11/10(月) 20:26:15.74ID:nKQhltod rustのクレートは公式が作ってるやつかそうじゃないやつか区別する方法ある?
606デフォルトの名無しさん
2025/11/10(月) 20:35:29.89ID:7Gr7b5bQ クレート ←全て非公式
標準ライブラリ ←公式
標準ライブラリ ←公式
607デフォルトの名無しさん
2025/11/10(月) 22:52:23.28ID:L0hwR/50 どの言語でも
公式だから保証があるわけでもなく
公式だから非公式より良いとは限らず
公式の意味も範囲も様々だから拘ってもしょうがないよ
公式だから保証があるわけでもなく
公式だから非公式より良いとは限らず
公式の意味も範囲も様々だから拘ってもしょうがないよ
608デフォルトの名無しさん
2025/11/11(火) 01:03:25.98ID:+abQG+dZ 知覚は不完全なので
存在すること=知覚されること
とは言えない
また、目に見えないものがあるから目は役に立たない、とも言えない
存在すること=知覚されること
とは言えない
また、目に見えないものがあるから目は役に立たない、とも言えない
609デフォルトの名無しさん
2025/11/11(火) 11:43:38.90ID:62BX6ziF 開発チームの人が作っているクレートなんかだと準公式くらいの立場のものはあるが、逆に言えばそこまで作っていて標準に入れないのは相応の理由があるのかもしれない。
個々に検証しないとわからん。
個々に検証しないとわからん。
610デフォルトの名無しさん
2025/11/11(火) 17:32:20.73ID:44T7zLr5 Rustは開発ルールがガチガチすぎるんよ
俺はその恩恵をただ受ける側だからいいけど作ってる神々は燃え尽きかかってる
俺はその恩恵をただ受ける側だからいいけど作ってる神々は燃え尽きかかってる
611デフォルトの名無しさん
2025/11/11(火) 18:12:33.19ID:tSeZWguW だからまずC++で作ってそれからRustで作り直すのが正解
612デフォルトの名無しさん
2025/11/11(火) 18:35:34.65ID:PwE4XjAp613デフォルトの名無しさん
2025/11/11(火) 20:40:33.25ID:44T7zLr5 >>612
ごめん。ほとんど独り言のつもりで書いた
Rustプロジェクトが、破壊的変更禁止とメモリ安全とスレッド安全と型安全とゼロコスト抽象化のすべてに
妥協を許さない方針を取ってるの、冷静に考えると狂ってるなーと
ごめん。ほとんど独り言のつもりで書いた
Rustプロジェクトが、破壊的変更禁止とメモリ安全とスレッド安全と型安全とゼロコスト抽象化のすべてに
妥協を許さない方針を取ってるの、冷静に考えると狂ってるなーと
614デフォルトの名無しさん
2025/11/11(火) 21:27:34.80ID:Fmu+Vf5K それらを守らない言語があったらヤバくね?
615デフォルトの名無しさん
2025/11/11(火) 22:52:59.49ID:+abQG+dZ 時間を守らないっていう妥協をしてみるといい
それで、時間だけは絶対守れと言い出したらそいつが神々を疲弊させた狂人だ
それで、時間だけは絶対守れと言い出したらそいつが神々を疲弊させた狂人だ
616デフォルトの名無しさん
2025/11/12(水) 15:15:46.80ID:YK2oTH5Z おいどん、コンピュータさんて0か1しか分からないのになんでcやらrustとかあるのがわからない
機械語マスターすればreactだのrustだのの「流行り」に惑わされること、なくなるやん?😊
機械語マスターすればreactだのrustだのの「流行り」に惑わされること、なくなるやん?😊
617デフォルトの名無しさん
2025/11/12(水) 15:55:18.49ID:9DKi0uHD CPU の設計理念にも流行はあるよ。
618デフォルトの名無しさん
2025/11/12(水) 16:34:57.41ID:Nz02cUZf >>616
機械語でプログラムを作ると異なるアーキテクチャのCPUで動かない
機械語でプログラムを作るよりRustで書いたほうが楽で保守性もいい
実行速度もよほど手動で頑張らない限りRustで書いた方が速い
その理由はコンパイラがループ展開や並列化を含めた様々な最適化をしてくれるため
機械語でプログラムを作ると異なるアーキテクチャのCPUで動かない
機械語でプログラムを作るよりRustで書いたほうが楽で保守性もいい
実行速度もよほど手動で頑張らない限りRustで書いた方が速い
その理由はコンパイラがループ展開や並列化を含めた様々な最適化をしてくれるため
619デフォルトの名無しさん
2025/11/12(水) 20:01:46.19ID:aWyMb0Qa >>616
おう、0と1でモンハン作ってみようぜ!
おう、0と1でモンハン作ってみようぜ!
620デフォルトの名無しさん
2025/11/12(水) 20:14:40.22ID:qKWUWDdw 機械語と言っても日本語や英語のように多くの系統と方言があるからなあ
621デフォルトの名無しさん
2025/11/12(水) 20:21:55.06ID:9WC7063A 機械語でアプリを書くとなるとABIやカーネルコールの仕様も把握してないといけないしな
622デフォルトの名無しさん
2025/11/12(水) 23:27:09.63ID:lg2d8nXO Rustの中にインラインで機械語を書けて便利だよ
asm!
naked_asm!
global_asm!
asm!
naked_asm!
global_asm!
623デフォルトの名無しさん
2025/11/12(水) 23:39:25.75ID:1WaieLXY >>622
それ機械語じゃなくてアセンブリ言語な👈
それ機械語じゃなくてアセンブリ言語な👈
624デフォルトの名無しさん
2025/11/12(水) 23:50:12.50ID:Nz02cUZf それは同じ
625デフォルトの名無しさん
2025/11/13(木) 01:48:22.68ID:gXd8sYh3 CPUは商品だから次々と流行らせるが
C言語はもう物を売るってレベルじゃねえし二転三転させる意味がない
C言語はもう物を売るってレベルじゃねえし二転三転させる意味がない
626デフォルトの名無しさん
2025/11/13(木) 03:31:15.53ID:ZlC59+U9 >>616
Hello World!を表示するだけのx86-64版Mach-Oバイナリの例だよ
これでモンハン書けと言われたら辞表提出するね
https://i.imgur.com/VQv4ClC.png
https://pastebin.com/W13JSs1a
Hello World!を表示するだけのx86-64版Mach-Oバイナリの例だよ
これでモンハン書けと言われたら辞表提出するね
https://i.imgur.com/VQv4ClC.png
https://pastebin.com/W13JSs1a
627デフォルトの名無しさん
2025/11/13(木) 19:03:40.70ID:/XZtE13C https://www.phoronix.com/news/sudo-rs-security-ubuntu-25.10
Ubuntu 25.10 で採用された Rust 版 sudo(sudo-rs)に中程度の脆弱性が2件見つかり、sudo パスワード漏えいの可能性などが指摘されている
安全神話が崩壊しちゃったね
Ubuntu 25.10 で採用された Rust 版 sudo(sudo-rs)に中程度の脆弱性が2件見つかり、sudo パスワード漏えいの可能性などが指摘されている
安全神話が崩壊しちゃったね
628デフォルトの名無しさん
2025/11/13(木) 19:09:10.61ID:uSciVBzH629デフォルトの名無しさん
2025/11/13(木) 19:40:16.39ID:qlDXnzni >>628
パスワード入力中にタイムアウトすると
入力文字列を標準出力にエコーする普通の動作に戻ってしまった時にパスワードが画面に表示されてしまう漏洩リスクらしい
別問題としてPAMを扱うコードのunsafeまみれを指摘する人がいた
https://imgur.com/a/j2hu5qL
パスワード入力中にタイムアウトすると
入力文字列を標準出力にエコーする普通の動作に戻ってしまった時にパスワードが画面に表示されてしまう漏洩リスクらしい
別問題としてPAMを扱うコードのunsafeまみれを指摘する人がいた
https://imgur.com/a/j2hu5qL
630デフォルトの名無しさん
2025/11/13(木) 20:09:45.19ID:G8QMiauZ ソフトウェア設計上のミスは防げねえわな
631デフォルトの名無しさん
2025/11/13(木) 20:20:51.60ID:oZ4iIE5v 須藤て別にc版でいいと思うけど既存のコードをristにするてメリットあるんかな
速度とか負荷とゆう点ではc rustてそんな変わらないんでしょ
速度とか負荷とゆう点ではc rustてそんな変わらないんでしょ
632デフォルトの名無しさん
2025/11/13(木) 20:46:57.75ID:2rBWuGzk >>631
sudoのC版はこれまでに無数の脆弱性が報告されてきていて今年の7月にもCVE-2025-32462とCVE-2025-32463が出ています
今後も対応のためにコードを修正する可能性があるため基本的なところでエンバグしないようRust版にするのもアリでしょう
sudoのC版はこれまでに無数の脆弱性が報告されてきていて今年の7月にもCVE-2025-32462とCVE-2025-32463が出ています
今後も対応のためにコードを修正する可能性があるため基本的なところでエンバグしないようRust版にするのもアリでしょう
633デフォルトの名無しさん
2025/11/13(木) 20:59:48.07ID:VkErwoN3634デフォルトの名無しさん
2025/11/13(木) 21:34:52.46ID:vqxsuTJm635デフォルトの名無しさん
2025/11/13(木) 22:58:39.37ID:Uts3H+u4 >>633
今は筋肉だけ使う肉体労働者はいらない
今は筋肉だけ使う肉体労働者はいらない
636デフォルトの名無しさん
2025/11/13(木) 23:03:11.45ID:TN3oskXo タイムアウトするとパスワードを表示するというプログラムを作ったわけか
637デフォルトの名無しさん
2025/11/13(木) 23:37:33.52ID:YQEmvuBX rawモードがcookedに戻ればそうなるよな
パスワード入力中以外では正しい動作
パスワード入力中以外では正しい動作
638デフォルトの名無しさん
2025/11/14(金) 10:43:34.59ID:RMIqsCD4 仕様上もテスト設計上も基本的な状態遷移を整理できていないということだからかなり深刻なバグ
他にも同じ原因のバグがあると思って間違いない
他にも同じ原因のバグがあると思って間違いない
639デフォルトの名無しさん
2025/11/14(金) 11:05:52.45ID:XXTzgKKv Rustとは全く無関係な要因で一安心
640デフォルトの名無しさん
2025/11/14(金) 11:58:01.94ID:GEpZQLRP よかった!Rustは安心安全なんだね!
641デフォルトの名無しさん
2025/11/14(金) 15:25:11.70ID:S1LIbQUa ロジックの穴を潰すのは完璧な手法など存在せず、見つかる度に修正し続ける歴史の積み重ねだ。
最初から書き直すならその歴史もやりなおし。
最初から書き直すならその歴史もやりなおし。
642デフォルトの名無しさん
2025/11/14(金) 15:41:47.85ID:Wcmw7jb5 Oct 9, 2020
Memory Safe ‘curl’ for a More Secure Internet
https://www.memorysafety.org/blog/memory-safe-curl/
4 years later
Dec 21, 2024
Curl Drops Support For Hyper Rust HTTP Backend Citing Little Demand
https://www.phoronix.com/news/Curl-Drops-Rust-Hyper-Backend
Memory Safe ‘curl’ for a More Secure Internet
https://www.memorysafety.org/blog/memory-safe-curl/
4 years later
Dec 21, 2024
Curl Drops Support For Hyper Rust HTTP Backend Citing Little Demand
https://www.phoronix.com/news/Curl-Drops-Rust-Hyper-Backend
643デフォルトの名無しさん
2025/11/14(金) 16:10:06.99ID:R48s/t59644デフォルトの名無しさん
2025/11/14(金) 16:21:06.29ID:WluAx6w+ 逆にRustアンチの仕業と見做す信者はいそう
645デフォルトの名無しさん
2025/11/14(金) 16:30:00.84ID:HUzsh9SZ Rustが質の低い開発者を引き寄せる側面があるんだろう
646デフォルトの名無しさん
2025/11/14(金) 16:54:12.78ID:hwCkzTBr 言語に自分のアイデンティティを求めちゃう人は開発者として質が低いよね。
そしてRustがその手のタイプを引き寄せる傾向があるのは残念ながら事実。
そしてRustがその手のタイプを引き寄せる傾向があるのは残念ながら事実。
647デフォルトの名無しさん
2025/11/14(金) 18:42:26.40ID:daHga20Z 言語にアイデンティティ持つような考え方は体育会系に多いだろうね
組織に対する忠誠心みたいなのと言語アイデンティティは同一だと言われるし
頭空っぽの体育会系Rustceanを追い出さないと質は下がる
組織に対する忠誠心みたいなのと言語アイデンティティは同一だと言われるし
頭空っぽの体育会系Rustceanを追い出さないと質は下がる
648デフォルトの名無しさん
2025/11/14(金) 19:14:03.70ID:/xnnTPah 結局、仕事では言語に選択肢無いので。
言語にこだわるのはプログラマーじゃなくて(私のような)言語オタク。
ただ、Rustは自動運転関連で自動車メーカーが注目してるので勉強だけはしておいた方が良い。
(GCで止まるわけにいかないし、メモリリークも出したくない分野)
言語オタクとしてはRustよりHaskellが好き。
中の人がMSに就職してからC#並みに速くなった。
(昔はコンパイラ言語なのにPythonと同程度だった)
でも実務だとPHP+SQL+HTML5ばかり…。
アルゴリズムとかよりSQL(を包んだPHPのメソッド)でいかに目的のデータを抽出するかの方が重要みたいな…。
なんかコレジャナイ感。
言語にこだわるのはプログラマーじゃなくて(私のような)言語オタク。
ただ、Rustは自動運転関連で自動車メーカーが注目してるので勉強だけはしておいた方が良い。
(GCで止まるわけにいかないし、メモリリークも出したくない分野)
言語オタクとしてはRustよりHaskellが好き。
中の人がMSに就職してからC#並みに速くなった。
(昔はコンパイラ言語なのにPythonと同程度だった)
でも実務だとPHP+SQL+HTML5ばかり…。
アルゴリズムとかよりSQL(を包んだPHPのメソッド)でいかに目的のデータを抽出するかの方が重要みたいな…。
なんかコレジャナイ感。
649デフォルトの名無しさん
2025/11/14(金) 19:24:03.81ID:l2z/kkM6 仕事だとjavaが多そうだけど文法もそうだけどspringのディレクトリ構成ゴミすぎて嫌になる
com exampleてなんやねん
ossでまったく使われてないからかなり嫌われてるんじゃろうなとは思うけど
com exampleてなんやねん
ossでまったく使われてないからかなり嫌われてるんじゃろうなとは思うけど
650デフォルトの名無しさん
2025/11/14(金) 21:38:51.97ID:cHWkSnWA JavaをやるってのはSpringをやることだと言っても過言じゃないぐらいあれ1強だからなあ
せめてRailsのパクりみたいなのがJavaでも幅効かせてたら、趣味でもメインにしてたかもしれない
せめてRailsのパクりみたいなのがJavaでも幅効かせてたら、趣味でもメインにしてたかもしれない
651デフォルトの名無しさん
2025/11/14(金) 22:13:12.18ID:DRghBkPx >>645,646
フクリンのことか───────っ!!!!!
フクリンのことか───────っ!!!!!
652デフォルトの名無しさん
2025/11/14(金) 22:31:32.76ID:aWJv2uWS >>649
JavaはAndroidだろうがSpringだろうがディレクトリ構成にドメインをひっくり返したディレクトリ階層を使うだろう
その階層がクラス名にそのまま適用されてクラス名をユニークなものにする
デフォルトはcom exampleになってたりするけどちゃんとした開発ならばユニークなドメイン名を使う
JavaはAndroidだろうがSpringだろうがディレクトリ構成にドメインをひっくり返したディレクトリ階層を使うだろう
その階層がクラス名にそのまま適用されてクラス名をユニークなものにする
デフォルトはcom exampleになってたりするけどちゃんとした開発ならばユニークなドメイン名を使う
653デフォルトの名無しさん
2025/11/14(金) 23:52:35.24ID:MNrI4Z33 Moving From Rust to Zigって記事に
Rustはコンパイル単位がクレートで、クソ遅いコンパイルを改善するためにクレートにまとめたいけど
論理的な構造とクレート単位にずれがあるとやりづらい
更にcrates.ioに公開すると、コンパイルの都合で分割した内部用クレートが公開用クレートと同じ並びに出てきて混乱を招く
って書いてあった
Rustはコンパイル単位がクレートで、クソ遅いコンパイルを改善するためにクレートにまとめたいけど
論理的な構造とクレート単位にずれがあるとやりづらい
更にcrates.ioに公開すると、コンパイルの都合で分割した内部用クレートが公開用クレートと同じ並びに出てきて混乱を招く
って書いてあった
654デフォルトの名無しさん
2025/11/15(土) 07:40:31.46ID:JIXSXIkC 会社でRustやらされてるヤツは負け組
655デフォルトの名無しさん
2025/11/15(土) 09:44:30.61ID:xlHeQ2UP みんなRustを使いたい
656デフォルトの名無しさん
2025/11/15(土) 14:23:22.48ID:iimgLys4 Rustを使いたい派がいるのか社内でRust製の試作がちょこちょこ出てきた
657デフォルトの名無しさん
2025/11/15(土) 19:16:17.52ID:lfrbAWbT まあ、営業的にもCやC++の組み込みをRustなら(実際は確率が低くなるだけだが)メモリリークが無いものに刷新できますよ!と営業トークできるからRust使えるプログラマーが確保できれば新規開拓しやすくなるやね。
658デフォルトの名無しさん
2025/11/15(土) 19:36:39.90ID:Yrz/bNnl 学生にとっても、著名なOSSにメモリ安全性で難癖付けて単純移植するだけで就活に使える実績を作れるからな
構造的に言語アイデンティティ君を生む宿命にある
構造的に言語アイデンティティ君を生む宿命にある
659デフォルトの名無しさん
2025/11/15(土) 19:40:09.72ID:pddDIdqI 今どきの大学生はとりあえずTypeScriptとRustをやりPythonを常識程度に触るのがトレンド
660デフォルトの名無しさん
2025/11/15(土) 19:46:24.27ID:KhB+GnAW 社内でRustをPRしたら、「似たようなもんだから」とC++のチームに異動させられて最悪の気分だわ
661デフォルトの名無しさん
2025/11/15(土) 20:32:38.21ID:Gk+K+1+d 塗り替えろって事だろう
662デフォルトの名無しさん
2025/11/16(日) 01:04:40.17ID:8tymQ6Dv >>659
Rustなんて何でもありだから、とりあえずPustなんていうやつは素人。
Rustなんて何でもありだから、とりあえずPustなんていうやつは素人。
663デフォルトの名無しさん
2025/11/16(日) 08:48:05.53ID:pNoPg36+ そうだね。
Pustなんていうのは素人だね。
Pustなんていうのは素人だね。
664デフォルトの名無しさん
2025/11/16(日) 10:10:06.36ID:yrwB7Ga/ フリック入力ならじゃないのか?
665デフォルトの名無しさん
2025/11/16(日) 10:10:27.25ID:yrwB7Ga/ >>664
フリック入力じゃないのか?
フリック入力じゃないのか?
666デフォルトの名無しさん
2025/11/16(日) 19:34:18.71ID:3/ouyx3U667デフォルトの名無しさん
2025/11/16(日) 20:08:10.20ID:r6khXsKc >>666
あ、そうね。
純粋なソフトハウスってそういう形態だったね。
医療機器メーカーとか自動車メーカーの開発陣を想定してた。
ソフトハウス的なところだとRustプログラマーの数だけでなく、そのメンバーで何が作れるのかも把握できないと商売にならんね。
ピンチはチャンスなので、自社で鉄板の環境構築するなり、ライブラリ整備して得意ジャンル持てば逆に強みになるだろうけど。
あ、そうね。
純粋なソフトハウスってそういう形態だったね。
医療機器メーカーとか自動車メーカーの開発陣を想定してた。
ソフトハウス的なところだとRustプログラマーの数だけでなく、そのメンバーで何が作れるのかも把握できないと商売にならんね。
ピンチはチャンスなので、自社で鉄板の環境構築するなり、ライブラリ整備して得意ジャンル持てば逆に強みになるだろうけど。
668デフォルトの名無しさん
2025/11/16(日) 22:08:25.71ID:MPC0Zo4Y >>96のRustのフリーランス単価が1位になった理由は需要が確実にあるのに人材が足りないためなの?
669デフォルトの名無しさん
2025/11/16(日) 22:11:31.80ID:Zz64Y+1W Rustの一番駄目なところはなぜか誰も使ってないところ
670デフォルトの名無しさん
2025/11/16(日) 22:41:12.45ID:nix4z4BT 知能が低いとコンパイルを通せないか回避のためメモリをムダに豪快に使ったコードでバレてしまう恐ろしい言語
671デフォルトの名無しさん
2025/11/16(日) 22:44:10.76ID:uefCmtO3 そんな欠陥言語なの?
672デフォルトの名無しさん
2025/11/16(日) 22:53:45.70ID:DR0gsB60 実際スクリプト上がりの意識高い系なんかは
基礎の所有権すらさっぱりでcloneの嵐なコードを書いて、Rust使い気取ってそう
基礎の所有権すらさっぱりでcloneの嵐なコードを書いて、Rust使い気取ってそう
673デフォルトの名無しさん
2025/11/16(日) 23:05:58.98ID:uefCmtO3 一生懸命clone減らして、ライフタイム注釈まみれの読みづらいコードに書き換えたところで
大して速くならないオチ
大して速くならないオチ
674デフォルトの名無しさん
2025/11/16(日) 23:08:47.79ID:r6khXsKc >>669
なぜか学習コストが高い(難しい)と思われているから。
Haskellも別に分からなくても良いモナドで似たような状態。
(もともと関数型言語自体が使われてないが)
それでもHaskellは関数型言語の中ではLispに次いで有名になったし、Rustもなんだかんだでシェア伸ばすと思われ。
ライブラリが揃わないうちは、そもそもライブラリが使えない環境の組み込みから伸びるかも。
なぜか学習コストが高い(難しい)と思われているから。
Haskellも別に分からなくても良いモナドで似たような状態。
(もともと関数型言語自体が使われてないが)
それでもHaskellは関数型言語の中ではLispに次いで有名になったし、Rustもなんだかんだでシェア伸ばすと思われ。
ライブラリが揃わないうちは、そもそもライブラリが使えない環境の組み込みから伸びるかも。
675デフォルトの名無しさん
2025/11/16(日) 23:20:05.76ID:r6khXsKc というか、GCがあっても問題にならない分野じゃJavaやC#よりC/C++/Rustが速いって言っても、そんなに問題になるわけじゃないからわざわざ移行はしないかな。
Rustで重要なのは速度とGC無しのリアルタイム性とメモリ安全性の3つが高度にバランスが取れているから。
メモリリーク出したくないけどリアルタイム性が問われる分野以外はあまり移行する旨味が無い。
(移行するコストにメリットが見合わない)
なので医療機器や車載分野以外はスタートアップ企業が主になると思われ。
Rustで重要なのは速度とGC無しのリアルタイム性とメモリ安全性の3つが高度にバランスが取れているから。
メモリリーク出したくないけどリアルタイム性が問われる分野以外はあまり移行する旨味が無い。
(移行するコストにメリットが見合わない)
なので医療機器や車載分野以外はスタートアップ企業が主になると思われ。
676名無し ◆WBRXcNtpf.
2025/11/16(日) 23:23:36.23ID:okqs5J2P テテす
677名無し ◆WBRXcNtpf.
2025/11/16(日) 23:23:37.42ID:okqs5J2P テテす
678デフォルトの名無しさん
2025/11/16(日) 23:24:02.83ID:r6khXsKc あ、ゲーム分野もか。
PS6(仮)みたいなコンシューマーだとメーカーが開発環境提供するから、メーカーがRustに積極的か否か。
PCゲームならC++より開発速度上がりそうだし、ワンチャンって感じか。
PS6(仮)みたいなコンシューマーだとメーカーが開発環境提供するから、メーカーがRustに積極的か否か。
PCゲームならC++より開発速度上がりそうだし、ワンチャンって感じか。
679デフォルトの名無しさん
2025/11/16(日) 23:26:21.73ID:5GeqVtAQ680デフォルトの名無しさん
2025/11/16(日) 23:28:00.27ID:Zu7VaKFu >>675
Rustで昔から最も開発が盛んで利用が多いのはWeb分野
Rustで昔から最も開発が盛んで利用が多いのはWeb分野
681デフォルトの名無しさん
2025/11/16(日) 23:35:13.00ID:pNoPg36+ Rust がゲーム作成に有用だとしたらゲームエンジン部分、下支え部分だと思う。
ゲームの面白さというのはやってみないとわからんということが多い。
設計してから具体化するというウォーターフォール的な開発ではなく大雑把に作ってから試行錯誤で細部を詰めていくのでメモリまわりのチューニングなんて後回しにしたい。
ゲームの面白さというのはやってみないとわからんということが多い。
設計してから具体化するというウォーターフォール的な開発ではなく大雑把に作ってから試行錯誤で細部を詰めていくのでメモリまわりのチューニングなんて後回しにしたい。
682デフォルトの名無しさん
2025/11/16(日) 23:40:54.60ID:b6L0JEIH 速さはjavaとかとそんな変わらんだろうけどハードウェアにかかる負荷は結構違う希ガス
683デフォルトの名無しさん
2025/11/16(日) 23:45:32.91ID:uefCmtO3 Javaより速い遅いじゃなくて、クラウド環境でメモリケチりたいからRustなんじゃないの?
684デフォルトの名無しさん
2025/11/16(日) 23:46:04.27ID:pNoPg36+ >>682
それはある。
クラウドはリソース消費量に課金されるからユーザーから見た性能が同じでもリソース消費を抑制できるほうが有利。
なんだかんだで「儲かる」のは広告業界なんだよ。
ウェブの世界のマネタイズは広告が中心。
Rust がウェブの世界で求められるのは Rust が開発に向いているというよりも、たとえ向いていなくてもコストをかけて性能を出せばそれ以上のリターンが見込めるという経済的な理由だと思う。
ある程度は向いていると思うけど、開発のしやすさとしては決定的にウェブ向きとは感じない。
それはある。
クラウドはリソース消費量に課金されるからユーザーから見た性能が同じでもリソース消費を抑制できるほうが有利。
なんだかんだで「儲かる」のは広告業界なんだよ。
ウェブの世界のマネタイズは広告が中心。
Rust がウェブの世界で求められるのは Rust が開発に向いているというよりも、たとえ向いていなくてもコストをかけて性能を出せばそれ以上のリターンが見込めるという経済的な理由だと思う。
ある程度は向いていると思うけど、開発のしやすさとしては決定的にウェブ向きとは感じない。
685デフォルトの名無しさん
2025/11/16(日) 23:48:32.30ID:qFE0dQpO ライバル同士のIT大手企業たちが超珍しく新言語に対して手を取り合って支持を表明した最大の理由は初めてウェブでちゃんと使える言語が登場したことが大きい
クラウドもCDNも何でもウェブベースなのでそこで実用的に使える言語を誰もが欲していた
クラウドもCDNも何でもウェブベースなのでそこで実用的に使える言語を誰もが欲していた
686デフォルトの名無しさん
2025/11/16(日) 23:51:56.94ID:JEozs9Dz 各スクリプト言語のライブラリやツールが最近はRustで書かれるようになったね
687デフォルトの名無しさん
2025/11/16(日) 23:52:11.56ID:r6khXsKc >>680
でも大企業とかじゃなくてスタートアップかオープンソースのボランティアでそ。
求人情報に載るような分野としては多分Webよりそっちのが多くなる。
(見てないから分らんけど、現状でもその可能性はある)
でも大企業とかじゃなくてスタートアップかオープンソースのボランティアでそ。
求人情報に載るような分野としては多分Webよりそっちのが多くなる。
(見てないから分らんけど、現状でもその可能性はある)
688デフォルトの名無しさん
2025/11/16(日) 23:53:43.24ID:+pDSs9+T 開発しやすいRustへ流れてるな
689デフォルトの名無しさん
2025/11/16(日) 23:56:05.64ID:0dQk4LuH >>687
思い込みが激しすぎ
思い込みが激しすぎ
690デフォルトの名無しさん
2025/11/16(日) 23:58:07.38ID:uefCmtO3691デフォルトの名無しさん
2025/11/16(日) 23:59:27.52ID:E2ep2LMQ >>687
大企業が採用したことが普及した決め手だよ
大企業が採用したことが普及した決め手だよ
692デフォルトの名無しさん
2025/11/17(月) 00:02:19.40ID:kjA30/Ru693デフォルトの名無しさん
2025/11/17(月) 00:02:29.67ID:Rp6IrtZJ >>668
高スキル層の求人しかないからだよ
高スキル層の求人しかないからだよ
694デフォルトの名無しさん
2025/11/17(月) 00:03:00.76ID:kjA30/Ru695デフォルトの名無しさん
2025/11/17(月) 00:12:23.82ID:BkYR5KL2 色んな分野でRustが採用されていってるけどPythonやNode.jsの高速化ツールやライブラリでこんなにRust製が広まるとは驚いた
696デフォルトの名無しさん
2025/11/17(月) 00:32:40.94ID:kjA30/Ru >>691
別にゼロサムゲームじゃないし、採用する大企業もあるだろうけど、多くの大企業で採用されているからソフトハウスもRustプログラマーを大量に確保しようって程には普及しないと予想してる。
Webアプリは別にOOP前提じゃないからRustでも良いんだろうけど、余程多くのアクセスが無い限りRustに移行するほどの旨味は無い。
大企業が~だったらElmだって楽天に採用されて、その後やっぱダメだわってなってる。
Elmそのものってよりシングルページアプリケーション(SPA)が原因だったみたいだけど。
なので、大企業に採用されたから注目は集めても、普及するに至るかは別問題。
Haskellだって今の台湾のデジタル大臣(オードリー・タン)が仕様を公開したPerl本家より速くHaskellでPerl6(言語仕様が違い過ぎて現在はRakuという別言語)の実装を完成させたのが注目されたが、それほどの開発効率を誇るHaskellが今どうなっているか。
すでに持っているコード資産を捨ててまで移行する価値がある分野は上記の医療機器や車載などの高付加価値の組み込み分野。
(ただ、言いたいのは私自身はRustの普及を望んでいる。その先に関数型言語の普及を夢見ているから)
(望み薄なのは言わずもがなだが、夢見ても良いぢゃない)
別にゼロサムゲームじゃないし、採用する大企業もあるだろうけど、多くの大企業で採用されているからソフトハウスもRustプログラマーを大量に確保しようって程には普及しないと予想してる。
Webアプリは別にOOP前提じゃないからRustでも良いんだろうけど、余程多くのアクセスが無い限りRustに移行するほどの旨味は無い。
大企業が~だったらElmだって楽天に採用されて、その後やっぱダメだわってなってる。
Elmそのものってよりシングルページアプリケーション(SPA)が原因だったみたいだけど。
なので、大企業に採用されたから注目は集めても、普及するに至るかは別問題。
Haskellだって今の台湾のデジタル大臣(オードリー・タン)が仕様を公開したPerl本家より速くHaskellでPerl6(言語仕様が違い過ぎて現在はRakuという別言語)の実装を完成させたのが注目されたが、それほどの開発効率を誇るHaskellが今どうなっているか。
すでに持っているコード資産を捨ててまで移行する価値がある分野は上記の医療機器や車載などの高付加価値の組み込み分野。
(ただ、言いたいのは私自身はRustの普及を望んでいる。その先に関数型言語の普及を夢見ているから)
(望み薄なのは言わずもがなだが、夢見ても良いぢゃない)
697デフォルトの名無しさん
2025/11/17(月) 00:39:24.91ID:G813vGFZ698デフォルトの名無しさん
2025/11/17(月) 06:40:57.58ID:kjA30/Ru >>697
もちろんWebだって速いに越したことはない。
だから伸びてもおかしくは無いけど、RailsやWordPressも依然として大きなシェアを持っている。
特にWordPressはもはやフレームワークを超えてブログや静的なただのHPを作る分にはアプリと言っていい。
PHPはどうしても使いたい人向けに残しているだけで、コーディング必要ない。
(もはやPHPはJavaのJVMみたいな位置付け)
WordPress本家はDLして使うスタンドアローン版とWebアプリ版を用意していて、Webアプリ版は「安全のため」PHPそのものを使えなくした。
(元はPHPのフレームワークだったのに)
ブログ作成専用のフレームワークという用途を限定していたから出来たことだけど、Webに求められる開発速度はすでにそういう次元まで来てる。
そしてレンタル鯖のことごとくがWordPressに別料金を取ってる。
フレームワークにお金請求してるのはWordPressしか見たことない。
それでもシェアが増え続けている。
実行速度より開発速度の方が重要だという証拠。
もちろんWebだって速いに越したことはない。
だから伸びてもおかしくは無いけど、RailsやWordPressも依然として大きなシェアを持っている。
特にWordPressはもはやフレームワークを超えてブログや静的なただのHPを作る分にはアプリと言っていい。
PHPはどうしても使いたい人向けに残しているだけで、コーディング必要ない。
(もはやPHPはJavaのJVMみたいな位置付け)
WordPress本家はDLして使うスタンドアローン版とWebアプリ版を用意していて、Webアプリ版は「安全のため」PHPそのものを使えなくした。
(元はPHPのフレームワークだったのに)
ブログ作成専用のフレームワークという用途を限定していたから出来たことだけど、Webに求められる開発速度はすでにそういう次元まで来てる。
そしてレンタル鯖のことごとくがWordPressに別料金を取ってる。
フレームワークにお金請求してるのはWordPressしか見たことない。
それでもシェアが増え続けている。
実行速度より開発速度の方が重要だという証拠。
699デフォルトの名無しさん
2025/11/17(月) 06:47:38.76ID:h4vPK8yF >>698
WordPressはリソースの無駄遣いだから追加料金がかかるのも仕方ないかと
WordPressはリソースの無駄遣いだから追加料金がかかるのも仕方ないかと
700デフォルトの名無しさん
2025/11/17(月) 07:08:05.24ID:P2ZXnPrq >>698
それ意外にRustがぴったりの分野かもよ
ユーザーにとっては内部で動いてるものがPHP製かRust製か気にしないのだから世界中の電気代とハードウェアリソースを節約できるチャンスだったりして
それ意外にRustがぴったりの分野かもよ
ユーザーにとっては内部で動いてるものがPHP製かRust製か気にしないのだから世界中の電気代とハードウェアリソースを節約できるチャンスだったりして
701デフォルトの名無しさん
2025/11/17(月) 07:28:31.18ID:bg/nzq32702デフォルトの名無しさん
2025/11/17(月) 07:45:27.44ID:P2ZXnPrq703デフォルトの名無しさん
2025/11/17(月) 08:37:32.15ID:Jv1DTVB6 Rustがマネジメント層で流行っているのはバッファオーバーランをやらかす無能コーダーを排除したいからじゃないの?
ビルド通らなきゃ成果0で報酬払わなくていいし。
ビルド通らなきゃ成果0で報酬払わなくていいし。
704デフォルトの名無しさん
2025/11/17(月) 08:42:58.54ID:c2tXlnGe コード資産の観点が無いのかコード資産を物ともしないスーパープログラマなのか意識的に無視してる(欲ボケ?)のか何なのだろ
705デフォルトの名無しさん
2025/11/17(月) 08:50:02.44ID:3j143G+x Rustが一番使われてる分野はlinuxコマンドの置き換え
706デフォルトの名無しさん
2025/11/17(月) 09:11:50.77ID:rk5/i4ud Rustの求人はここが毎月レポート出してるけど会社名とか見ると結構面白い
https://filtra.io/rust/jobs-report/oct-25
今月は防衛産業のAndurilが求人数トップだね
https://filtra.io/rust/jobs-report/oct-25
今月は防衛産業のAndurilが求人数トップだね
707デフォルトの名無しさん
2025/11/17(月) 12:12:35.65ID:AtT4RnQG >>706
そのRust求人出してる企業一覧すごいな
知ってる企業がずらりと並んでいて感動した
Amazon
Microsoft
Cloudflare
xAI
Apple
Dropbox
Nvidia
Google
SpaceX
GitHub
Mozilla
Woven By Toyota
Discord
Disney
Fastly
Mercedes
Bloomberg
Bun
Toyota Connected
Figma
Astral
KSAT
LINE
Akamai
Meta
など
そのRust求人出してる企業一覧すごいな
知ってる企業がずらりと並んでいて感動した
Amazon
Microsoft
Cloudflare
xAI
Apple
Dropbox
Nvidia
SpaceX
GitHub
Mozilla
Woven By Toyota
Discord
Disney
Fastly
Mercedes
Bloomberg
Bun
Toyota Connected
Figma
Astral
KSAT
LINE
Akamai
Meta
など
708デフォルトの名無しさん
2025/11/17(月) 12:14:58.26ID:ts/k/VO2 Rustスゲー!驚いた!驚いた!
709デフォルトの名無しさん
2025/11/17(月) 12:39:05.33ID:/7g9lmIJ 防衛産業だとDとかAdaとかのイメージ
710デフォルトの名無しさん
2025/11/17(月) 13:24:37.44ID:IDUdFTMh 何かに特化したプログラミングではないものを採用するところは、かなりレベルの高いプログラマーが多いところ。
711デフォルトの名無しさん
2025/11/17(月) 13:26:47.32ID:IDUdFTMh プログラミング言語は手段にすぎないと本当にわかっていない人間ほど、どうでもいいことにこだわって、メンテナンスを難しくしてしまう。それをメンテナンスを容易にしたと逆のことを言う。
712デフォルトの名無しさん
2025/11/17(月) 13:38:29.57ID:nOBhzk4k まともなIT企業ならRust求人を出すか内部で育てているだろうから当たり前の結果だろう
713デフォルトの名無しさん
2025/11/17(月) 16:02:02.11ID:Ip91Dbfz こういうデータリテラシーの低いやつらはRustじゃなくPythonでもやったほうがよさそう
714デフォルトの名無しさん
2025/11/17(月) 18:32:10.14ID:HSUpJzNx >>690
Rubyにもuvみたいなrvってのが作られてるね
Rubyにもuvみたいなrvってのが作られてるね
715デフォルトの名無しさん
2025/11/17(月) 19:01:46.89ID:vNXRFJJm716デフォルトの名無しさん
2025/11/17(月) 20:06:46.87ID:5au0Bd62 Rust文化が各言語のRust製ツールと共に各言語へ広がっていく
717デフォルトの名無しさん
2025/11/17(月) 23:07:50.41ID:ZrD1t19B718デフォルトの名無しさん
2025/11/18(火) 07:24:09.28ID:zkUX7uJh おもしろいじゃん
719デフォルトの名無しさん
2025/11/18(火) 09:35:50.76ID:7gHRjkAE >>707
ディズニーがRustを何に使うの?
ディズニーがRustを何に使うの?
720デフォルトの名無しさん
2025/11/18(火) 09:44:02.46ID:44PlOks7 配信系じゃないか
721デフォルトの名無しさん
2025/11/18(火) 09:45:19.44ID:R4KlmKwj 確かDisney+の配信フロントエンドがwasmでRustだったはず
722デフォルトの名無しさん
2025/11/18(火) 10:04:09.86ID:NUbx/bSt723デフォルトの名無しさん
2025/11/18(火) 10:26:47.98ID:0fATWgE4 年収15万~20万ドルかよ
724デフォルトの名無しさん
2025/11/18(火) 18:19:31.62ID:TiXA9NK+ ESP32 ArduinoからRust変換はおもろかった。
App、Domain、Infrastructure構造のDDDで作ったプロジェクトだけど、純粋仮想関数(interface)もInjectionもRust移行がこんなに簡単なのかと驚いたもんだ。
ValueObjectも不要になったし、いろいろDDDには最適な言語。
まぁ コンパイルは通ってもワーニングを無くす作業が大変だったのは言うまでもない。
ワーニングリストてんこ盛りでも動くところがなんだかなぁとはオモ。
Rustはオヌヌメだよ。 本当に。
App、Domain、Infrastructure構造のDDDで作ったプロジェクトだけど、純粋仮想関数(interface)もInjectionもRust移行がこんなに簡単なのかと驚いたもんだ。
ValueObjectも不要になったし、いろいろDDDには最適な言語。
まぁ コンパイルは通ってもワーニングを無くす作業が大変だったのは言うまでもない。
ワーニングリストてんこ盛りでも動くところがなんだかなぁとはオモ。
Rustはオヌヌメだよ。 本当に。
725デフォルトの名無しさん
2025/11/18(火) 21:33:50.31ID:9E8x7tFx 驚いた!
726デフォルトの名無しさん
2025/11/18(火) 23:38:02.37ID:hMgPiOc6 >>724
その手の問題のほとんどがクラスを捨ててトレイトを採用すると解決するよね
純粋仮想関数という奇妙な名前を含めた概念もトレイトの『実装必須メソッド』とそれらを用いた特定の型に依存しない『デフォルト実装提供メソッド』の二つに整理されると使いやすくわかりやすい
依存性の注入や逆転も『トレイトを利用する型々⇔トレイト⇔トレイトを実装する型々』と最初から分離されて対応している
Value Objectもどこまで何をやるかで多少変わるけど基本的にはラッパーにPartialEq/EqやClone/Copyそしてバリデーション付き生成のTryFromなど基本トレイトを必要なだけ実装していくだけで大方の対応ができる
その手の問題のほとんどがクラスを捨ててトレイトを採用すると解決するよね
純粋仮想関数という奇妙な名前を含めた概念もトレイトの『実装必須メソッド』とそれらを用いた特定の型に依存しない『デフォルト実装提供メソッド』の二つに整理されると使いやすくわかりやすい
依存性の注入や逆転も『トレイトを利用する型々⇔トレイト⇔トレイトを実装する型々』と最初から分離されて対応している
Value Objectもどこまで何をやるかで多少変わるけど基本的にはラッパーにPartialEq/EqやClone/Copyそしてバリデーション付き生成のTryFromなど基本トレイトを必要なだけ実装していくだけで大方の対応ができる
727デフォルトの名無しさん
2025/11/19(水) 00:21:53.18ID:IfvLhI2w iter().filter(...).map(...) みたいなのってデバッグ用のビルドだとすごく遅くない?
リリースビルドだと最適化されるんだろうけど、 デバッグ時のことを考えると要素数が大きい場合は普通に for で書いた方が良いんだろうか
リリースビルドだと最適化されるんだろうけど、 デバッグ時のことを考えると要素数が大きい場合は普通に for で書いた方が良いんだろうか
728デフォルトの名無しさん
2025/11/19(水) 04:26:37.69ID:VwytrS17 libxml2がメンテナー不在状態になっちゃったらしいけど
これってRust採用に有利に働くのでは?
しかも、最後のメンテナーが「セキュリティバグ満載の趣味プログラムだから製品に採用してる大企業の方がおかしい」とか言い出してる
ま、Rustからlibxml2呼んで使ってた人もいるかもしれんが
これってRust採用に有利に働くのでは?
しかも、最後のメンテナーが「セキュリティバグ満載の趣味プログラムだから製品に採用してる大企業の方がおかしい」とか言い出してる
ま、Rustからlibxml2呼んで使ってた人もいるかもしれんが
729デフォルトの名無しさん
2025/11/19(水) 08:24:12.23ID:R5nvtzxr730デフォルトの名無しさん
2025/11/19(水) 10:14:56.27ID:DEKdhoZN https://blog.cloudflare.com/18-november-2025-outage/#memory-preallocation
ふう
今回もRust自体の問題じゃなくてRustを誤用したCloudflareの無能のせいでよかったよかった
ふう
今回もRust自体の問題じゃなくてRustを誤用したCloudflareの無能のせいでよかったよかった
731デフォルトの名無しさん
2025/11/19(水) 10:38:40.48ID:VwytrS17732デフォルトの名無しさん
2025/11/19(水) 11:21:56.78ID:dZVJ1Iyu733デフォルトの名無しさん
2025/11/19(水) 11:50:56.97ID:GsWNWOPW そのままmainまで巻き戻ってエラー値でプロセス終了
panicじゃないからねって責任分散w
真面目に言語として対策するならResult::unwrap()をunsafeにする事だな
panicじゃないからねって責任分散w
真面目に言語として対策するならResult::unwrap()をunsafeにする事だな
734デフォルトの名無しさん
2025/11/19(水) 12:57:15.96ID:WcZFNgrM >>733
設定ファイルの読み出しでエラーなのだから、続行することが悪なのであって、panicもしくはmainでエラー値を返して終了のどちらでも正しい。
このプログラムの異常終了を検知して、然るべき自動対応もしくは人間へアラートを発生させることが通常のシステム運用だ。
設定ファイルの読み出しでエラーなのだから、続行することが悪なのであって、panicもしくはmainでエラー値を返して終了のどちらでも正しい。
このプログラムの異常終了を検知して、然るべき自動対応もしくは人間へアラートを発生させることが通常のシステム運用だ。
735デフォルトの名無しさん
2025/11/19(水) 16:36:17.53ID:a6iYqrEC >>733
unwrap()は必ずチェックをしてくれるsafeな関数
チェックをしないunwrap_unchecked()がunsafeな関数
後者はチェックが不要であることを人間が保証しなければいけない
unwrap()は必ずチェックをしてくれるsafeな関数
チェックをしないunwrap_unchecked()がunsafeな関数
後者はチェックが不要であることを人間が保証しなければいけない
736デフォルトの名無しさん
2025/11/19(水) 18:15:22.62ID:FpyXWrvw unwrap()じゃパニックした理由が分からんから、せめてexpect()を使うべきだったのでは?
737デフォルトの名無しさん
2025/11/19(水) 18:44:42.33ID:NvQTXkF4 >>730
>今回もRust自体の問題じゃなくてRustを誤用したCloudflareの無能のせいでよかったよかった
こういうおバカな考え方をするやつにシステムプログラミングをさせてはいけない
絶対にダメ
>今回もRust自体の問題じゃなくてRustを誤用したCloudflareの無能のせいでよかったよかった
こういうおバカな考え方をするやつにシステムプログラミングをさせてはいけない
絶対にダメ
738デフォルトの名無しさん
2025/11/19(水) 19:17:35.77ID:AEqphh7h そもそも「Rustを誤用した」箇所がないだろ
フェールセーフなシステム運用では異常時に異常なデータのまま動き続けることこそ最悪な惨事
パニックでプロセスが落ちてくれれば上位で必ず検知できてその対処ができる
フェールセーフなシステム運用では異常時に異常なデータのまま動き続けることこそ最悪な惨事
パニックでプロセスが落ちてくれれば上位で必ず検知できてその対処ができる
739デフォルトの名無しさん
2025/11/19(水) 19:18:38.06ID:Rm5s9Hvl Rcってスマートポインター自体はポインターとサイズ一緒で参照先にカウンターがあるんだよね
740デフォルトの名無しさん
2025/11/19(水) 22:57:00.67ID:CLMpOrw3741デフォルトの名無しさん
2025/11/19(水) 23:28:21.13ID:H9/nxH2R >>739
その通り
例えば64bit環境において
Rc<usize>はスタック上に64bit一つ分(ヒープを指す64bit)とヒープ上に64bit三つ分(強カウントと弱カウントとusizeの各64bit)
Rc<[usize]>はスタック上に64bit二つ分(ヒープを指す64bitと長さの64bit)とヒープ上に64bitが二つ+長さ分(強カウントと弱カウントと[usize])
つまりスタック側にスライスの長さ用で+1とヒープ側に強弱カウント用で+2
その通り
例えば64bit環境において
Rc<usize>はスタック上に64bit一つ分(ヒープを指す64bit)とヒープ上に64bit三つ分(強カウントと弱カウントとusizeの各64bit)
Rc<[usize]>はスタック上に64bit二つ分(ヒープを指す64bitと長さの64bit)とヒープ上に64bitが二つ+長さ分(強カウントと弱カウントと[usize])
つまりスタック側にスライスの長さ用で+1とヒープ側に強弱カウント用で+2
742デフォルトの名無しさん
2025/11/19(水) 23:50:27.39ID:H3eXqgcn まーたフェイク垂れ流してんなw
743デフォルトの名無しさん
2025/11/19(水) 23:59:17.25ID:3P61Qd+t 正しくても嘘だフェイクだと暴れるだけのおじさん
744デフォルトの名無しさん
2025/11/20(木) 02:07:52.80ID:ncYlBBwT ChromeはXSLT機能を廃止するらしい
件のlibxml2と同じ人がメンテしてて放棄されたlibxsltにセキュリティ問題があると見て
件のlibxml2と同じ人がメンテしてて放棄されたlibxsltにセキュリティ問題があると見て
745デフォルトの名無しさん
2025/11/20(木) 05:14:44.24ID:MGDS7leX Rustすごい!驚いた!
746デフォルトの名無しさん
2025/11/20(木) 10:18:35.91ID:9zm/YaRl Cloudflareの障害って半年前のGoogle Couldの障害と同じパターンじゃん
確か「Rustなら防げた」とかアホなこと言ってたやつがいたな
確か「Rustなら防げた」とかアホなこと言ってたやつがいたな
747デフォルトの名無しさん
2025/11/20(木) 10:22:16.48ID:syoVlbLx748デフォルトの名無しさん
2025/11/20(木) 10:47:57.16ID:9zm/YaRl749デフォルトの名無しさん
2025/11/20(木) 11:21:06.60ID:syoVlbLx >>748
バックトレースでわかる、落ちたソース行と変数がわかっててもそれなりに調査がいる部位で
ここが落ちた原因はこのファイルです!加えてこのファイルがおかしい理由はこれです!って
人間様なら事前に言えるのかって話だけど・・・。しかも全てのunwrapで
バックトレースでわかる、落ちたソース行と変数がわかっててもそれなりに調査がいる部位で
ここが落ちた原因はこのファイルです!加えてこのファイルがおかしい理由はこれです!って
人間様なら事前に言えるのかって話だけど・・・。しかも全てのunwrapで
750デフォルトの名無しさん
2025/11/20(木) 12:03:26.09ID:21pecUNF751デフォルトの名無しさん
2025/11/20(木) 12:37:12.92ID:k44P4Y1f752デフォルトの名無しさん
2025/11/20(木) 14:34:42.78ID:MlUTgZBl >>749
要するにバックトレースでは不十分だったということ
expectのメッセージがあれば解決がかなり早まった可能性が高い
ただ外部データを読み込んでその妥当性をチェックした結果のResultなんだからパニックさせるのが論外
要するにバックトレースでは不十分だったということ
expectのメッセージがあれば解決がかなり早まった可能性が高い
ただ外部データを読み込んでその妥当性をチェックした結果のResultなんだからパニックさせるのが論外
753デフォルトの名無しさん
2025/11/20(木) 14:38:44.38ID:MlUTgZBl 今回も前回もアホなこと言ってるやつは同じだね
https://mevius.5ch.net/test/read.cgi/tech/1748392296/807-n
https://mevius.5ch.net/test/read.cgi/tech/1748392296/807-n
754デフォルトの名無しさん
2025/11/20(木) 19:55:50.61ID:xKPp4vJ3 >>752
みんながパニックさせるのを正解と言ってるのに一人だけパニックさせるのが論外と主張するからには代案を書きなさいよ
みんながパニックさせるのを正解と言ってるのに一人だけパニックさせるのが論外と主張するからには代案を書きなさいよ
755デフォルトの名無しさん
2025/11/20(木) 20:59:55.94ID:3WAFNuDQ >>730
Rustに投資するマネジメント層からすれば、
「想定可能なケースでpanicするな」「終了するなら理由を明らかにしろ」「終了した後のことを考えろ」
あたりだよなぁ。
panicなんてシステムが異常になるレベルで初めて使うことを考えるようなもの。
コーダーには触らせたくないから、SafeRustはpanic禁止でいいと思うわ。
Rustに投資するマネジメント層からすれば、
「想定可能なケースでpanicするな」「終了するなら理由を明らかにしろ」「終了した後のことを考えろ」
あたりだよなぁ。
panicなんてシステムが異常になるレベルで初めて使うことを考えるようなもの。
コーダーには触らせたくないから、SafeRustはpanic禁止でいいと思うわ。
756デフォルトの名無しさん
2025/11/20(木) 21:09:11.15ID:vBNaAq/W ワイも unwrap は論外と思うやで。
ロジック的に失敗があり得ないから失敗の場合のことは書くのを省略するというのが unwrap の役割だろ。
失敗がないはずのところで失敗したならそれはロジックに誤りがあったということ。
つまりはバグだ。
プログラムにバグを書くのが正しいってことはない。
でも panic するのは正しいかもしれない。 (公開情報だけでは断言はできないけど。)
正しくないデータに対してプログラムが回復する余地がないなら終了するしか仕方ないし、
その問題にどう対処するかは運用の問題なので必要なログを残した上で終了するのは正しい。
特に今回の事例はメモリまわりの制御が絡んでいるということがある。
メモリが足りないままで続けるとあらたにメモリが必要な状況が生じて破綻するかもしれない。
エラーを返して上位レイヤで判断するのはロジック的には綺麗だがリソース不足の状況ではそうも言ってられない。
ロジック的に失敗があり得ないから失敗の場合のことは書くのを省略するというのが unwrap の役割だろ。
失敗がないはずのところで失敗したならそれはロジックに誤りがあったということ。
つまりはバグだ。
プログラムにバグを書くのが正しいってことはない。
でも panic するのは正しいかもしれない。 (公開情報だけでは断言はできないけど。)
正しくないデータに対してプログラムが回復する余地がないなら終了するしか仕方ないし、
その問題にどう対処するかは運用の問題なので必要なログを残した上で終了するのは正しい。
特に今回の事例はメモリまわりの制御が絡んでいるということがある。
メモリが足りないままで続けるとあらたにメモリが必要な状況が生じて破綻するかもしれない。
エラーを返して上位レイヤで判断するのはロジック的には綺麗だがリソース不足の状況ではそうも言ってられない。
757デフォルトの名無しさん
2025/11/20(木) 21:24:39.80ID:W1oxwi29 >>756
Again, the limit exists because for performance reasons we preallocate memory for the features.
だから、コーダーでもコントロール可能な範囲じゃない?
こんなんじゃリーナスじゃなくてもpanic禁止言いたくなるわな。
Again, the limit exists because for performance reasons we preallocate memory for the features.
だから、コーダーでもコントロール可能な範囲じゃない?
こんなんじゃリーナスじゃなくてもpanic禁止言いたくなるわな。
758デフォルトの名無しさん
2025/11/20(木) 21:39:21.39ID:lwx9Ifqo759デフォルトの名無しさん
2025/11/20(木) 21:50:20.55ID:H4pjbMpd これは普通にpanicで正解でしょ
メモリを固定ではなくfeatureファイルに合わせて動的アロケーションするようにしていれば即障害にはならなかっただろうけど、
それはunwrapの是非とかの次元の話じゃないし、複おじの頭はそこまで回らないだろう
メモリを固定ではなくfeatureファイルに合わせて動的アロケーションするようにしていれば即障害にはならなかっただろうけど、
それはunwrapの是非とかの次元の話じゃないし、複おじの頭はそこまで回らないだろう
760デフォルトの名無しさん
2025/11/20(木) 21:50:58.54ID:ao6/JbGK 続行不可能なのだからどこかで必ずpanicすることになる
C言語ならexit(non-0)
Rustはもっと賢いpanicがありそれを使う
他に手はない
C言語ならexit(non-0)
Rustはもっと賢いpanicがありそれを使う
他に手はない
761デフォルトの名無しさん
2025/11/20(木) 21:56:43.11ID:uDj2zLmM 続行可能なら上位へエラーを返せばいいんだよね
続行不可能なら上位へエラーを返すより即panicさせるのが正しいよ
その方がバックトレース的にも有利
続行不可能なら上位へエラーを返すより即panicさせるのが正しいよ
その方がバックトレース的にも有利
762デフォルトの名無しさん
2025/11/20(木) 22:04:24.95ID:A4EEH+q2 続行可能/不可能はコーダーが判断することではないよ。ふつうにエラーを返せ。
763デフォルトの名無しさん
2025/11/20(木) 22:09:40.31ID:uDj2zLmM764デフォルトの名無しさん
2025/11/20(木) 22:18:59.74ID:H4pjbMpd >>762
起動時に必要なデータなんだろうから、エラー返したところで上位でもどうしようもないでしょ
仮にエラーを無視してそのまま起動させたとして、不正な状態だからってリクエストを5xxで落とすのはまずいのはさすがに分かるよな?
Bot Managementというのがどれだけ重要なのかは知らないけど、
最悪それが機能してなくてもいいならエラー無視してそのモジュールの処理だけ飛ばすのは結果論としてはアリだったかも
でもそれ言い出したら極論何でもかんでもフェールソフトにしなきゃいけないから、それこそゆるふわ設計になりすぎてRustのメリットが薄れちゃうよ
起動時に必要なデータなんだろうから、エラー返したところで上位でもどうしようもないでしょ
仮にエラーを無視してそのまま起動させたとして、不正な状態だからってリクエストを5xxで落とすのはまずいのはさすがに分かるよな?
Bot Managementというのがどれだけ重要なのかは知らないけど、
最悪それが機能してなくてもいいならエラー無視してそのモジュールの処理だけ飛ばすのは結果論としてはアリだったかも
でもそれ言い出したら極論何でもかんでもフェールソフトにしなきゃいけないから、それこそゆるふわ設計になりすぎてRustのメリットが薄れちゃうよ
765デフォルトの名無しさん
2025/11/20(木) 23:12:52.86ID:eUKDlPgK もっと簡単にエラー科研のこやつは
766デフォルトの名無しさん
2025/11/20(木) 23:13:07.19ID:eUKDlPgK アプデで改善しーやー
767デフォルトの名無しさん
2025/11/20(木) 23:13:24.18ID:eUKDlPgK もう普通にtry catchでええ
768デフォルトの名無しさん
2025/11/20(木) 23:13:43.88ID:c/hk2jJw Rustのプログラム開発デバッグそして運用実行時の問題発生で最も役立つ仕組みがpanicなのにそれを理解しないでpanicを毛嫌いしてる人がいる不思議~
769デフォルトの名無しさん
2025/11/20(木) 23:38:50.21ID:bMsqNQja >Rustのプログラム開発デバッグそして運用実行時の問題発生で最も役立つ仕組み
具体的になんの開発時にそう感じたの?
具体的になんの開発時にそう感じたの?
770デフォルトの名無しさん
2025/11/21(金) 02:04:51.36ID:iIZE15hu771デフォルトの名無しさん
2025/11/21(金) 02:19:37.89ID:bQYXRKni >>764
公式は以下があるべき姿と見ているようだが
>Remediation and follow-up steps
>Remediation and follow-up steps
>Now that our systems are back online and functioning normally, work has already begun on how we will harden them against failures like this in the future. In particular we are(今後同様の障害が発生した場合に備え、以下を重点とするシステムを強化する取り組みに着手):
> - Hardening ingestion of Cloudflare-generated configuration files in the same way we would for user-generated input(内部生成データも外部入力と同じレベルで検証)
> - Enabling more global kill switches for features(特定の機能を無効化する仕組みに拡大、例:「ボット管理構成を正常だったバージョンにロールバック」「ボット管理システムの停止」)
> - Eliminating the ability for core dumps or other error reports to overwhelm system resources(コアダンプやエラーレポートによって圧迫されるのを防ぐ、システム、アプリケーションでの制御)
> - Reviewing failure modes for error conditions across all core proxy modules(エラー状態の障害モードを見直す)
>An outage like today is unacceptable. We've architected our systems to be highly resilient to failure to ensure traffic will always continue to flow. When we've had outages in the past it's always led to us building new, more resilient systems.(今回のような障害は容認できない、耐障害性の高い新しいシステムを構築するきっかけとなった)
https://blog.cloudflare.com/18-november-2025-outage/#remediation-and-follow-up-steps
>>768
そんなのサービス要件、用途、場面次第では
そもそもエラーの可能性を含意するResultを返していることを意にも介さず、ハンドリングしないのは言語の思想にもとるかと
パニックの好悪ではなく、サービス要件、場面に対してミスマッチだと指摘されているのでは
公式は以下があるべき姿と見ているようだが
>Remediation and follow-up steps
>Remediation and follow-up steps
>Now that our systems are back online and functioning normally, work has already begun on how we will harden them against failures like this in the future. In particular we are(今後同様の障害が発生した場合に備え、以下を重点とするシステムを強化する取り組みに着手):
> - Hardening ingestion of Cloudflare-generated configuration files in the same way we would for user-generated input(内部生成データも外部入力と同じレベルで検証)
> - Enabling more global kill switches for features(特定の機能を無効化する仕組みに拡大、例:「ボット管理構成を正常だったバージョンにロールバック」「ボット管理システムの停止」)
> - Eliminating the ability for core dumps or other error reports to overwhelm system resources(コアダンプやエラーレポートによって圧迫されるのを防ぐ、システム、アプリケーションでの制御)
> - Reviewing failure modes for error conditions across all core proxy modules(エラー状態の障害モードを見直す)
>An outage like today is unacceptable. We've architected our systems to be highly resilient to failure to ensure traffic will always continue to flow. When we've had outages in the past it's always led to us building new, more resilient systems.(今回のような障害は容認できない、耐障害性の高い新しいシステムを構築するきっかけとなった)
https://blog.cloudflare.com/18-november-2025-outage/#remediation-and-follow-up-steps
>>768
そんなのサービス要件、用途、場面次第では
そもそもエラーの可能性を含意するResultを返していることを意にも介さず、ハンドリングしないのは言語の思想にもとるかと
パニックの好悪ではなく、サービス要件、場面に対してミスマッチだと指摘されているのでは
772デフォルトの名無しさん
2025/11/21(金) 02:41:53.57ID:7QFg1F5C panic禁止派がいるからでしょ
結局プログラムを終了させるなら深いところでpanicさせることでバックトレース情報を最大化しましょう
結局プログラムを終了させるなら深いところでpanicさせることでバックトレース情報を最大化しましょう
773デフォルトの名無しさん
2025/11/21(金) 03:02:34.17ID:aQgyxReD panic禁止派って、正常な関数だと辿りつかない状態になったらどうすんの?
anyhowとかでthis is bugとかって返すの?
anyhowとかでthis is bugとかって返すの?
774デフォルトの名無しさん
2025/11/21(金) 03:12:36.25ID:BgHvS9/N それを議論して何か自分のためになることがあると思うの?
775デフォルトの名無しさん
2025/11/21(金) 03:19:36.71ID:szwMnzU9 てかたまに思うんだけどエラー処理てif文でよくね?
776デフォルトの名無しさん
2025/11/21(金) 04:06:05.39ID:bmEBh7Lw777デフォルトの名無しさん
2025/11/21(金) 06:09:46.10ID:pxhgH2KX 日本語翻訳があるんだから、少しは元記事に目を通せや。
https://blog.cloudflare.com/ja-jp/18-november-2025-outage/
cloudflareはエラーハンドリングに失敗して原因追求できずに大規模DDoS攻撃と誤認したんだろ。
このケースでpanicが正しかったとはとても思えない。
https://blog.cloudflare.com/ja-jp/18-november-2025-outage/
cloudflareはエラーハンドリングに失敗して原因追求できずに大規模DDoS攻撃と誤認したんだろ。
このケースでpanicが正しかったとはとても思えない。
778デフォルトの名無しさん
2025/11/21(金) 07:16:25.89ID:z62qyAHj 現場コーダー(ここでエラーハンドリングしたらそのぶんテストしなきゃいけないな。
でも今日は早めに帰って家でゲームしたいんだよね。うーん…怖いけどunwrapするか。
なーに、下っ端は仕様書の前提をただ信じればいいだけさ。これでよし、帰ろっと。)
53日後…ウェブが死んだ
でも今日は早めに帰って家でゲームしたいんだよね。うーん…怖いけどunwrapするか。
なーに、下っ端は仕様書の前提をただ信じればいいだけさ。これでよし、帰ろっと。)
53日後…ウェブが死んだ
779デフォルトの名無しさん
2025/11/21(金) 07:27:20.23ID:YVVnWYXM >>773
「設計通りあれば辿り着きえない」なら assert や unreachable じゃないの?
expected でも良い
これは「どうエラーをハンドルするか」という問題ではなく「ソースコードの読み手に対し設計者の意図をどのように表明するか」という話な気もする
「設計通りあれば辿り着きえない」なら assert や unreachable じゃないの?
expected でも良い
これは「どうエラーをハンドルするか」という問題ではなく「ソースコードの読み手に対し設計者の意図をどのように表明するか」という話な気もする
780デフォルトの名無しさん
2025/11/21(金) 07:46:53.00ID:5wtRNmya781デフォルトの名無しさん
2025/11/21(金) 08:17:21.30ID:m9VdLfOa >>777
後からは何とでも言えるが、開発時点でこういった失敗を想定して対処できたのか?って話
Googleも最近似たようなことやらかしてるんだからな
絶対に必要不可欠というわけでもなさそうな処理だが、かといって内部のパラメータさえ適切に設定されていれば無難に動くものなんだろうから、
こうした状況に対処するための設計上の強力なポリシー(おそらく今回のトラブルをきっかけに策定される)がない限り、
それが安易にクリティカルパスに組み込まれてしまうことは仕方ないように思える
逆にデフォルトのポリシーとしてフェイルソフトを優先するようなことをすれば、>>764の通りOptionalだらけのゆるふわ設計につながる
後からは何とでも言えるが、開発時点でこういった失敗を想定して対処できたのか?って話
Googleも最近似たようなことやらかしてるんだからな
絶対に必要不可欠というわけでもなさそうな処理だが、かといって内部のパラメータさえ適切に設定されていれば無難に動くものなんだろうから、
こうした状況に対処するための設計上の強力なポリシー(おそらく今回のトラブルをきっかけに策定される)がない限り、
それが安易にクリティカルパスに組み込まれてしまうことは仕方ないように思える
逆にデフォルトのポリシーとしてフェイルソフトを優先するようなことをすれば、>>764の通りOptionalだらけのゆるふわ設計につながる
782デフォルトの名無しさん
2025/11/21(金) 09:00:31.31ID:P6+MwwhU783デフォルトの名無しさん
2025/11/21(金) 09:04:46.72ID:XNdnsjIs784デフォルトの名無しさん
2025/11/21(金) 09:27:12.92ID:7pvsHy8Q785デフォルトの名無しさん
2025/11/21(金) 09:34:42.48ID:TUdbr/Fo786デフォルトの名無しさん
2025/11/21(金) 09:52:08.85ID:aGwiM0lE >>772
>結局プログラムを終了させるなら深いところでpanicさせることでバックトレース情報を最大化しましょう
Resultを上位に伝播させるのも面倒だし伝播させた後の対応も面倒だから雑にpanicで終了させましょうという話だな
こう考えるやつが少なからずいるようならRustを使う開発者の能力の問題だけでなくRust自身の問題ということになる
>結局プログラムを終了させるなら深いところでpanicさせることでバックトレース情報を最大化しましょう
Resultを上位に伝播させるのも面倒だし伝播させた後の対応も面倒だから雑にpanicで終了させましょうという話だな
こう考えるやつが少なからずいるようならRustを使う開発者の能力の問題だけでなくRust自身の問題ということになる
787デフォルトの名無しさん
2025/11/21(金) 10:02:37.01ID:eVGGGIM3 想定可能なエラーでも続行不能ならpanicさせてバックトレース見ましょうみたいな運用がCloudflareの規模で成り立つわけないのにね
性能要件的にバックトレース無効にしてる可能性もある
性能要件的にバックトレース無効にしてる可能性もある
788デフォルトの名無しさん
2025/11/21(金) 10:16:37.50ID:z62qyAHj とにかく全部ハンドリングしようぜ
あらゆるケースを想定するべきだ
あらゆるケースを想定するべきだ
789デフォルトの名無しさん
2025/11/21(金) 10:30:47.14ID:aLBJCcru 設定に異常値が紛れ込んでもpanicで止めたくないならunwrapをunwrap_or_defaultあたりに替えとけばいいよ
とりあえず動く
とりあえず動く
790デフォルトの名無しさん
2025/11/21(金) 11:56:46.17ID:x3e9+uyj >>779
横からだがこの議題でpanicと呼ばれていることはpanic!を引き起こすassert!やunreachable!やexpectなどの総称でしょう
横からだがこの議題でpanicと呼ばれていることはpanic!を引き起こすassert!やunreachable!やexpectなどの総称でしょう
791デフォルトの名無しさん
2025/11/21(金) 11:59:34.90ID:x3e9+uyj792デフォルトの名無しさん
2025/11/21(金) 12:10:50.33ID:Bq7cxlpS 今回のCloudflareの件で言うとあそこでpanicさせなかったら
事前に確保したより大きなメモリ確保しようとしてプロセスがランダムにkillされたり
より意味不明な事態になったかもね
事前に確保したより大きなメモリ確保しようとしてプロセスがランダムにkillされたり
より意味不明な事態になったかもね
793デフォルトの名無しさん
2025/11/21(金) 12:38:52.46ID:kvfum7jC panic肯定派は色々と分かっていないなぁ。
「続行不能ならpanicさせて緊急停止させるべき」というなら、緊急停止させた後のことも考えて状況を制御しろ。panicさせた後のことは分からん、と言うのならpanicさせるな。
それすら思いつかない無能コーダーが大半なんだから、無能コーダー向けのsafe rustはpanic禁止すべき。
「続行不能ならpanicさせて緊急停止させるべき」というなら、緊急停止させた後のことも考えて状況を制御しろ。panicさせた後のことは分からん、と言うのならpanicさせるな。
それすら思いつかない無能コーダーが大半なんだから、無能コーダー向けのsafe rustはpanic禁止すべき。
794デフォルトの名無しさん
2025/11/21(金) 12:52:05.82ID:bQYXRKni >>792
>Enabling more global kill switches for features
障害発生時の構えとして特定機能(今回でいうならボット管理)を無効化する考えを公式が示しているわけで
すなわちこれが本来あるべき姿、「unwrap任せで勝手にpanicする」のはネットワークインフラを提供する側としてありえない設計であると言っているのもしかりでは
>An outage like today is unacceptable. We've architected our systems to be highly resilient to failure to ensure traffic will always continue to flow. When we've had outages in the past it's always led to us building new, more resilient systems.
>Enabling more global kill switches for features
障害発生時の構えとして特定機能(今回でいうならボット管理)を無効化する考えを公式が示しているわけで
すなわちこれが本来あるべき姿、「unwrap任せで勝手にpanicする」のはネットワークインフラを提供する側としてありえない設計であると言っているのもしかりでは
>An outage like today is unacceptable. We've architected our systems to be highly resilient to failure to ensure traffic will always continue to flow. When we've had outages in the past it's always led to us building new, more resilient systems.
795デフォルトの名無しさん
2025/11/21(金) 13:18:58.19ID:x3e9+uyj796デフォルトの名無しさん
2025/11/21(金) 13:22:16.60ID:aLBJCcru >>791
上位でcatch_unwindはしてると思うけど延々と同じ異常値使ってpanic繰り返してた感じでしょ
自分もpanicで抜ける方が正しいと思うけどこれだけpanicに文句言う人が多いなら異常値無視して動かした方がよくね?
設定無視しても多少セキュリティに穴が開く程度だろうし
上位でcatch_unwindはしてると思うけど延々と同じ異常値使ってpanic繰り返してた感じでしょ
自分もpanicで抜ける方が正しいと思うけどこれだけpanicに文句言う人が多いなら異常値無視して動かした方がよくね?
設定無視しても多少セキュリティに穴が開く程度だろうし
797デフォルトの名無しさん
2025/11/21(金) 13:35:17.28ID:bQYXRKni798デフォルトの名無しさん
2025/11/21(金) 13:54:38.91ID:x3e9+uyj799デフォルトの名無しさん
2025/11/21(金) 14:11:04.02ID:bQYXRKni おーらい
800デフォルトの名無しさん
2025/11/21(金) 14:57:18.03ID:fa/ssAob unwrapがあったらリリースビルドが失敗するようにしてほしいよね
801デフォルトの名無しさん
2025/11/21(金) 15:31:33.26ID:xINfobxx rustのdrop traitってメモリー解放前の前処理を記述する場所で
dorpはメモリーを開放するというのは違うよね
dorpはメモリーを開放するというのは違うよね
802デフォルトの名無しさん
2025/11/21(金) 15:53:54.77ID:G3R9bFuG drop は明示的に呼出し (いわゆる早期 drop) てもそれ自体がメモリを解放するとは限らないが、言語機能と融合している特別なトレイトなのでメモリの解放のタイミングに影響を与えることはありうる。
803デフォルトの名無しさん
2025/11/21(金) 23:25:47.85ID:auLVIhoC redditからの借り物
https://i.imgur.com/oEZoQJd.png
https://i.imgur.com/oEZoQJd.png
804デフォルトの名無しさん
2025/11/21(金) 23:56:05.84ID:kB1g97LF そんなもんだ
過去を引きずる案件以外でC++を使う人は消えていく
過去を引きずる案件以外でC++を使う人は消えていく
805デフォルトの名無しさん
2025/11/22(土) 00:16:12.45ID:Z+ns1hWs こんなもん完成に用途によるだろ
実際にそれ系本場の組み込みとかでの普及率こそ指標とするべきではないの?
実際にそれ系本場の組み込みとかでの普及率こそ指標とするべきではないの?
806デフォルトの名無しさん
2025/11/22(土) 00:17:49.35ID:Z+ns1hWs ❌完成に
⭕完全に
⭕完全に
807デフォルトの名無しさん
2025/11/22(土) 00:18:35.18ID:VyR9oLxq updateもカウント
https://www.reddit.com/r/rust/comments/1p2tfi1/media_new_releases_on_pypi_rust_vs_cc/
> But… I’m interested in those subsequent updates.
https://www.reddit.com/r/rust/comments/1p2tfi1/media_new_releases_on_pypi_rust_vs_cc/
> But… I’m interested in those subsequent updates.
808デフォルトの名無しさん
2025/11/22(土) 01:07:20.55ID:iexvlmA9 >>789
>設定に異常値が紛れ込んでもpanicで止めたくない
入力値と設定そのものを混同してるよね?
設定に反映させるために読み込んだ入力値が必須条件を満たしてないだけであってアプリの振る舞いを左右する設定自体に異常値が紛れ込んでいるわけではないよ
>設定に異常値が紛れ込んでもpanicで止めたくない
入力値と設定そのものを混同してるよね?
設定に反映させるために読み込んだ入力値が必須条件を満たしてないだけであってアプリの振る舞いを左右する設定自体に異常値が紛れ込んでいるわけではないよ
809デフォルトの名無しさん
2025/11/22(土) 05:50:44.36ID:6IzbV+e7 クラウドフレアでのやらかしでrustも失墜だね
810デフォルトの名無しさん
2025/11/22(土) 05:58:51.95ID:CapHAAXn 遅くて安全じゃないって最悪じゃん
811デフォルトの名無しさん
2025/11/22(土) 07:02:46.20ID:Hhj8j98Q812デフォルトの名無しさん
2025/11/22(土) 07:04:22.51ID:IiIf7f1d813デフォルトの名無しさん
2025/11/22(土) 08:36:23.79ID:TcBJjde/ >>811
Mutex使用禁止ということか
Mutex使用禁止ということか
814デフォルトの名無しさん
2025/11/22(土) 08:57:51.52ID:m6/1q0Jm815デフォルトの名無しさん
2025/11/22(土) 10:11:24.12ID:YjCm7wO7816デフォルトの名無しさん
2025/11/22(土) 11:09:17.53ID:2DsIii2D Rustのunwrap()というのはそもそも前提が壊れたらpanicするイディオムであるので、
もしpanic厳禁派を標榜するならケースバイケースで使っていいものではなく絶対にソースコード上に登場させてはならない
もしpanic厳禁派を標榜するならケースバイケースで使っていいものではなく絶対にソースコード上に登場させてはならない
817デフォルトの名無しさん
2025/11/22(土) 12:33:52.35ID:TG+W7F+c unwrapの使い方なんてrustユーザー側の設計思想やリスク管理に依るものであって、結局は開発組織の質の問題よ
818デフォルトの名無しさん
2025/11/22(土) 12:59:01.17ID:W9tILc9J unwrapの間違った使い方をしたり間違った使い方を正しいと思い込んでる人がこれだけいるんだから開発組織の質の問題として片付けられないよ
Rustの構造的な問題と言っていい
Rustの構造的な問題と言っていい
819デフォルトの名無しさん
2025/11/22(土) 13:01:14.64ID:GfzAj2LS820デフォルトの名無しさん
2025/11/22(土) 13:03:18.34ID:GfzAj2LS821デフォルトの名無しさん
2025/11/22(土) 13:34:45.55ID:m6/1q0Jm >>819
>両立ができる
「言語の持つ安全性を盲信することは容易に問題となりうること」を理解した上でそれらをどこまで両立させるかの見極めこそが、まさに設計の要では
両者がトレードオフであることを意識してこそ妥協点が見えるわけであり
でなくばいずれは一方が他方の隘路になるのかと
際限のない両立などに再現性はあるまいて
>両立ができる
「言語の持つ安全性を盲信することは容易に問題となりうること」を理解した上でそれらをどこまで両立させるかの見極めこそが、まさに設計の要では
両者がトレードオフであることを意識してこそ妥協点が見えるわけであり
でなくばいずれは一方が他方の隘路になるのかと
際限のない両立などに再現性はあるまいて
822デフォルトの名無しさん
2025/11/22(土) 14:08:27.01ID:HvD57uvC unwrapとかシンプルすぎて誤用の余地ないだろ
823デフォルトの名無しさん
2025/11/22(土) 14:16:46.80ID:iWDV6POw unwrapは未定義動作を生じないという意味においては安全
その結果として自動運転車が人混みに突っ込んだり原子炉がメルトダウンしたりしないことを保証するものではない
その結果として自動運転車が人混みに突っ込んだり原子炉がメルトダウンしたりしないことを保証するものではない
824デフォルトの名無しさん
2025/11/22(土) 14:55:39.41ID:W1QChhvL 分かってない人が多いけど、unwrap_or_default で安全サイドなデフォルト値で動かせば絶対に問題なんて起きないんだが
そのための設計だし初期値で動かないとしたらそもそも設計ミス
単にunwrap使ってそのままというのはダメ。世の中急に止めたら復旧大変なシステムとかもあるんでね
そのための設計だし初期値で動かないとしたらそもそも設計ミス
単にunwrap使ってそのままというのはダメ。世の中急に止めたら復旧大変なシステムとかもあるんでね
825デフォルトの名無しさん
2025/11/22(土) 15:08:23.48ID:H7KzHlst ResultやOptionを返す関数を使用する前にそれがエラーやNoneになるようなケースがチェック済みで、改めて不要なエラー処理を書くのが面倒な時くらいかな、 unwrap を使うのは
826デフォルトの名無しさん
2025/11/22(土) 15:29:04.79ID:udVmyb6K >>824
Mutexでunwrap_or_defaultを使う状況は俺にはちょっと思いつかないな
Mutexでunwrap_or_defaultを使う状況は俺にはちょっと思いつかないな
827デフォルトの名無しさん
2025/11/22(土) 16:34:26.43ID:MIiCzofv >>822
これ見て久しぶりに思い出した
設計と実装の食い違いがあったら「この実装なら設計意図はこうであったはずだ、よって実装は正しい」とか言い出すような奴だった
そりゃあ誤用だなんて認められるわけないし話が通じるはずもないわな
これ見て久しぶりに思い出した
設計と実装の食い違いがあったら「この実装なら設計意図はこうであったはずだ、よって実装は正しい」とか言い出すような奴だった
そりゃあ誤用だなんて認められるわけないし話が通じるはずもないわな
828デフォルトの名無しさん
2025/11/22(土) 16:52:31.93ID:j8/gV38c 安全性を考えれば#[no_panic]的なものがあったほうがいいのは間違いない
だがRustで実現するのはもう不可能だろうから次の言語に期待する
だがRustで実現するのはもう不可能だろうから次の言語に期待する
829デフォルトの名無しさん
2025/11/22(土) 18:45:43.86ID:xjdWzo5J パニックにならずに落ち着いて死ぬような言語がほしいよな
830デフォルトの名無しさん
2025/11/22(土) 19:04:52.97ID:JQXO3OU6 unwrapを禁止するようなコーディング規約ないの?
831デフォルトの名無しさん
2025/11/22(土) 19:42:01.39ID:4rTcW/kk unwrap()は必ずチェックをしてくれるsafeな関数
unwrap_unchecked()がチェックをしないunsafeな関数
後者はチェックが不要であることを人間が保証する形で用いる
unwrap_unchecked()がチェックをしないunsafeな関数
後者はチェックが不要であることを人間が保証する形で用いる
832デフォルトの名無しさん
2025/11/22(土) 20:40:38.59ID:HvD57uvC unwrap禁止の次はassertとかunreachableも禁止とか言い出しそうだな
let value = match opt_value {
Some(value) => value,
None => unreachable!(),
};
let value = match opt_value {
Some(value) => value,
None => unreachable!(),
};
833デフォルトの名無しさん
2025/11/22(土) 21:12:35.60ID:vyXuY/G9 不定値や未定値や異常値のままプログラムが進まないように
プログラムを安全に停止させるために確実にチェックしてくれるunwrap()がある
これを危険扱いする人がいるとは呆れる
プログラムを安全に停止させるために確実にチェックしてくれるunwrap()がある
これを危険扱いする人がいるとは呆れる
834デフォルトの名無しさん
2025/11/22(土) 22:13:14.17ID:uzDjtnGz 相手にされない三連休に三連投 by 複おじ
835デフォルトの名無しさん
2025/11/22(土) 23:23:19.76ID:IVuDBUhf836デフォルトの名無しさん
2025/11/23(日) 03:30:04.39ID:Ff/3hvXU837デフォルトの名無しさん
2025/11/23(日) 04:50:26.53ID:BHgpzqsU Rustとしてvalidであるかどうか以外興味がないので知りません
838デフォルトの名無しさん
2025/11/23(日) 05:34:23.83ID:PnhKXlJE > Rustに関してどう思ってますか?
> 正直C++から逃げた人たちが使ってる言語ってイメージですね
> 正直C++から逃げた人たちが使ってる言語ってイメージですね
839デフォルトの名無しさん
2025/11/23(日) 07:29:25.08ID:GChC/JkO ?でエラーを上に投げて最上部でunwrapしたときにパニックして途中のスタックトレース取れないんだけどどうしたらええの?
840デフォルトの名無しさん
2025/11/23(日) 09:48:44.88ID:YVm57Y35 unwrap は実質的に assert だよ。
ロジック的に失敗するはずがないのに失敗したならその場でパニックさせるべき。
そしてプログラムを修正すべき。
巨大なシステムを突然死させるわけにいかないような場合にどうしても継続するなら最後までなんとかハンドリングしろ。
中途半端に上まで上げてから unwrap とかクソみたいなことをしたらもうどうしようもない。
ロジック的に失敗するはずがないのに失敗したならその場でパニックさせるべき。
そしてプログラムを修正すべき。
巨大なシステムを突然死させるわけにいかないような場合にどうしても継続するなら最後までなんとかハンドリングしろ。
中途半端に上まで上げてから unwrap とかクソみたいなことをしたらもうどうしようもない。
841デフォルトの名無しさん
2025/11/23(日) 10:01:30.46ID:tHBK63qU いやいやいや
ヤベェやつしかいねーな
ヤベェやつしかいねーな
842デフォルトの名無しさん
2025/11/23(日) 10:07:23.20ID:FUNf3ZwY 外部リソースをオープンしていたら、終了時にできる限りクローズさせるべきで、
エラーを上に上げるというのはクローズ処理までエラーを届かせるということ
panicさせる前にクローズ処理を呼び出すでもいいけど、大抵はクローズ処理を行うポイントは決まっていて、内部ロジックのあちこちで呼び出していいなんてことにはなっていないから、そのポイントまでエラーを届けることが必要になる
外部リソースへのアクセスがないロジックだけのプログラムなら、別にいきなりpanicで落としても問題なくて
あとはデバッグのしやすさのために、どうエラーメッセージを出すかだけの話になる
エラーを上に上げるというのはクローズ処理までエラーを届かせるということ
panicさせる前にクローズ処理を呼び出すでもいいけど、大抵はクローズ処理を行うポイントは決まっていて、内部ロジックのあちこちで呼び出していいなんてことにはなっていないから、そのポイントまでエラーを届けることが必要になる
外部リソースへのアクセスがないロジックだけのプログラムなら、別にいきなりpanicで落としても問題なくて
あとはデバッグのしやすさのために、どうエラーメッセージを出すかだけの話になる
843デフォルトの名無しさん
2025/11/23(日) 10:21:09.71ID:n/KY4xZ8 とんでもないプログラマーしかいないなこのスレ
システムは何があっても止めちゃダメなんだよ、不具合があるのは多くの場合は外部とのインターフェースなんだが、いちいち外部からのリクエストの不整合で止めたりしたら客先から鬼電来るの知らんのか?
とりあえず、デフォルト値でもいいから動き続けて様子を見てもらいつつ、その間に詳細な調査をするっていう帳尻合わせや時間稼ぎがないとフィールドのエンジニアからガンガンに怒られるよ
エラーの伝播はそりゃやりゃできればいいが、ログに痕跡残すだけでいいじゃろ。工夫しろ、規模が大きくなればなるほど確率的に何か障害は起きやすくなるけど全部バグを直さなくてもそれなりに動くシステムが健全なシステムだぞ
システムは何があっても止めちゃダメなんだよ、不具合があるのは多くの場合は外部とのインターフェースなんだが、いちいち外部からのリクエストの不整合で止めたりしたら客先から鬼電来るの知らんのか?
とりあえず、デフォルト値でもいいから動き続けて様子を見てもらいつつ、その間に詳細な調査をするっていう帳尻合わせや時間稼ぎがないとフィールドのエンジニアからガンガンに怒られるよ
エラーの伝播はそりゃやりゃできればいいが、ログに痕跡残すだけでいいじゃろ。工夫しろ、規模が大きくなればなるほど確率的に何か障害は起きやすくなるけど全部バグを直さなくてもそれなりに動くシステムが健全なシステムだぞ
844デフォルトの名無しさん
2025/11/23(日) 10:24:31.62ID:W+o2V/Ez 意図を明示するなら unwrap は是
意図を隠蔽するなら unwrap は非
意図を隠蔽するなら unwrap は非
845デフォルトの名無しさん
2025/11/23(日) 10:33:12.45ID:FUNf3ZwY >>843
障害の内容とシステム構成によるよ
障害の内容とシステム構成によるよ
846デフォルトの名無しさん
2025/11/23(日) 11:01:41.72ID:lSbx7jjN >>842
panicでもデストラクタは呼ばれるから心配すんな
機構は例外と同じだ
https://doc.rust-lang.org/nomicon/unwinding.html
Unwinding
Rust has a tiered error-handling scheme:
If something might reasonably be absent, Option is used.
If something goes wrong and can reasonably be handled, Result is used.
If something goes wrong and cannot reasonably be handled, the thread panics.
If something catastrophic happens, the program aborts.
Option and Result are overwhelmingly preferred in most situations, especially since they can be promoted into a panic or abort at the API user's discretion. Panics cause the thread to halt normal execution and unwind its stack, calling destructors as if every function instantly returned.
panicでもデストラクタは呼ばれるから心配すんな
機構は例外と同じだ
https://doc.rust-lang.org/nomicon/unwinding.html
Unwinding
Rust has a tiered error-handling scheme:
If something might reasonably be absent, Option is used.
If something goes wrong and can reasonably be handled, Result is used.
If something goes wrong and cannot reasonably be handled, the thread panics.
If something catastrophic happens, the program aborts.
Option and Result are overwhelmingly preferred in most situations, especially since they can be promoted into a panic or abort at the API user's discretion. Panics cause the thread to halt normal execution and unwind its stack, calling destructors as if every function instantly returned.
847デフォルトの名無しさん
2025/11/23(日) 11:13:39.06ID:FdXSQ6Mu Cloudflareとかだとabortにしてると思うんだよな
848デフォルトの名無しさん
2025/11/23(日) 11:21:43.98ID:FdXSQ6Mu >>842
>外部リソースへのアクセスがないロジックだけのプログラムなら、別にいきなりpanicで落としても問題なくて
>あとはデバッグのしやすさのために、どうエラーメッセージを出すかだけの話になる
自分しか使わない趣味のプログラムならそれでいいけど
それ以外のプログラムでそんな雑なpanicしたらダメだよ
>外部リソースへのアクセスがないロジックだけのプログラムなら、別にいきなりpanicで落としても問題なくて
>あとはデバッグのしやすさのために、どうエラーメッセージを出すかだけの話になる
自分しか使わない趣味のプログラムならそれでいいけど
それ以外のプログラムでそんな雑なpanicしたらダメだよ
849デフォルトの名無しさん
2025/11/23(日) 11:36:16.03ID:Up/nW61P850デフォルトの名無しさん
2025/11/23(日) 11:38:31.64ID:FUNf3ZwY >>848
そうですか、ではなぜダメなのかをご教授ください
そうですか、ではなぜダメなのかをご教授ください
851デフォルトの名無しさん
2025/11/23(日) 12:17:14.82ID:BHgpzqsU 雑魚のくせにテキトーなこと書いて複おじを調子づかせないでよ〜
852デフォルトの名無しさん
2025/11/23(日) 12:36:29.44ID:FdXSQ6Mu853デフォルトの名無しさん
2025/11/23(日) 12:46:55.64ID:S9L/cvUF 対象コードのレビュー履歴を見てみたい
「なんか雑な気もするけどまあいいか」的なやり取りがあったりしたのかも
同様に件のファイルサイズ上限値の妥当性についても
「なんか雑な気もするけどまあいいか」的なやり取りがあったりしたのかも
同様に件のファイルサイズ上限値の妥当性についても
854デフォルトの名無しさん
2025/11/23(日) 12:54:45.11ID:W+o2V/Ez 旧アーキからエイヤとコピーした際に意図なく混入しただけなオチ
855デフォルトの名無しさん
2025/11/23(日) 13:02:01.49ID:W+o2V/Ez 現に旧アーキ側ではくだんの障害によるクラッシュなどはしておらず
ただし、すべてのトラフィックに対しボット判定かましてしまい、正規のアクセスまでもがブロックされてしまったわけだが
ただし、すべてのトラフィックに対しボット判定かましてしまい、正規のアクセスまでもがブロックされてしまったわけだが
856デフォルトの名無しさん
2025/11/23(日) 13:33:21.85ID:9zNPJk7D 問題なく動いてるフリさせといて異動でバイバイが有能だよ
857デフォルトの名無しさん
2025/11/23(日) 13:36:27.63ID:V3sZ/SAP858デフォルトの名無しさん
2025/11/23(日) 13:39:21.27ID:4nuItE/E 誰か>793にまともな反論できんのかな。
panicはプログラム緊急停止という重大な結果をもたらすから、緊急停止した後のことを制御できないなら使うべきじゃない。
このスレみたいに、それすら思いつかない無能コーダーが多いんだから、Safe Rustはpanic禁止すべき。
panicはプログラム緊急停止という重大な結果をもたらすから、緊急停止した後のことを制御できないなら使うべきじゃない。
このスレみたいに、それすら思いつかない無能コーダーが多いんだから、Safe Rustはpanic禁止すべき。
859デフォルトの名無しさん
2025/11/23(日) 13:55:54.10ID:Mgu/JJm0860デフォルトの名無しさん
2025/11/23(日) 14:14:22.85ID:FUNf3ZwY861デフォルトの名無しさん
2025/11/23(日) 15:06:02.14ID:um5S+wK/ んなわけない
>外部リソースへのアクセスがないロジックだけのプログラム
そんなものは存在しないというか、作ることは可能だが実用上存在意義がない
>外部リソースへのアクセスがないロジックだけのプログラム
そんなものは存在しないというか、作ることは可能だが実用上存在意義がない
862デフォルトの名無しさん
2025/11/23(日) 15:11:25.84ID:DNsCraN8863デフォルトの名無しさん
2025/11/23(日) 15:17:59.59ID:DNsCraN8864デフォルトの名無しさん
2025/11/23(日) 15:21:17.45ID:DNsCraN8 正しくは #![deny(unwrap_in_result)]だった
865デフォルトの名無しさん
2025/11/23(日) 15:22:45.23ID:FUNf3ZwY >>862
うん、そういう意味。
うん、そういう意味。
866デフォルトの名無しさん
2025/11/23(日) 16:12:59.81ID:DNsCraN8 >>865
そういう意味ならCloudflareのは外部リソースへのアクセスがないロジックだけのプログラムと言える
でも外部リソースの後片付けをした後ならpanicしていいわけじゃないからpanicが許される状況かどうかの判断基準としては適切じゃないよ
そういう意味ならCloudflareのは外部リソースへのアクセスがないロジックだけのプログラムと言える
でも外部リソースの後片付けをした後ならpanicしていいわけじゃないからpanicが許される状況かどうかの判断基準としては適切じゃないよ
867デフォルトの名無しさん
2025/11/23(日) 16:53:37.55ID:FUNf3ZwY >>866
> 外部リソースの後片付けをした後なら
ええと、話の前提として、プログラムやサービスをこのまま動作させることが適当でないエラーが発生した状況で、というのがあると思うんだが
今ここで話をしているのは、プログラムやサービスをこのまま動作させることが適当でないエラーが発生しうる箇所で、意図的に unwrapやpanicを使って終了させて良いか、そうでなくてエラーを上に上げるべきという意見が出たけどそれはどういうことか、という話だと思っていたんだけど違うのかな
それで >>842 で、外部リソースをオープン中ならその場で即終了するのはダメでクローズする必要がある、そのためにエラーを上に上げるべきで、そうでないならそこで終了しても問題ない、と答えたんだけど、それ以外にどんなケースや判断基準があるだろうか
> 外部リソースの後片付けをした後なら
ええと、話の前提として、プログラムやサービスをこのまま動作させることが適当でないエラーが発生した状況で、というのがあると思うんだが
今ここで話をしているのは、プログラムやサービスをこのまま動作させることが適当でないエラーが発生しうる箇所で、意図的に unwrapやpanicを使って終了させて良いか、そうでなくてエラーを上に上げるべきという意見が出たけどそれはどういうことか、という話だと思っていたんだけど違うのかな
それで >>842 で、外部リソースをオープン中ならその場で即終了するのはダメでクローズする必要がある、そのためにエラーを上に上げるべきで、そうでないならそこで終了しても問題ない、と答えたんだけど、それ以外にどんなケースや判断基準があるだろうか
868デフォルトの名無しさん
2025/11/23(日) 16:56:29.82ID:VRvQaZYz いやTCPのコネクションを開いてるでしょ
869デフォルトの名無しさん
2025/11/23(日) 17:24:25.83ID:PnhKXlJE Cloudflareの件で今回やるべきだったのは、パニックする前に監視システム向けに
最高の重要度でログだかイベントだかを送ることでしょ
最高の重要度でログだかイベントだかを送ることでしょ
870デフォルトの名無しさん
2025/11/23(日) 17:51:52.37ID:W+o2V/Ez >Enabling more global kill switches for features
>An outage like today is unacceptable.
当該サービスに限るなら公式が既に上記の見解を示しているかと
同様の障害時には「(ボット管理)機能を無効化する」が彼らの構え
つまり「安全に停止(パニック)する」よりも「可用性を優先すべき」がネットワークインフラを提供する立場としてのあるべき姿と見たわけだ
>An outage like today is unacceptable.
当該サービスに限るなら公式が既に上記の見解を示しているかと
同様の障害時には「(ボット管理)機能を無効化する」が彼らの構え
つまり「安全に停止(パニック)する」よりも「可用性を優先すべき」がネットワークインフラを提供する立場としてのあるべき姿と見たわけだ
871デフォルトの名無しさん
2025/11/23(日) 17:54:30.97ID:n/KY4xZ8872デフォルトの名無しさん
2025/11/23(日) 18:19:01.62ID:IuEnIF/H うーん、別にボット管理だけが特別に落ちやすいってわけでもないだろうに、後知恵対策の感が否めないなあ
実際にその通りやるかはともかく、世間に納得されやすそうな分かりやすい対策案を記載したんだろ
根本的な問題は誤ったパラメータファイルをロールバックできる仕組みがなかったことで、
そこを何とかしない限り今後何でもかんでもフェールソフト設計にしなきゃいけなくなりそう
実際にその通りやるかはともかく、世間に納得されやすそうな分かりやすい対策案を記載したんだろ
根本的な問題は誤ったパラメータファイルをロールバックできる仕組みがなかったことで、
そこを何とかしない限り今後何でもかんでもフェールソフト設計にしなきゃいけなくなりそう
873デフォルトの名無しさん
2025/11/23(日) 19:14:51.30ID:76/k8vRg >>870
限るならからあるべき姿まで語り出すのは飛躍
今回のは(可用性向上するための)ボット対策が悪さするなら止める方がマシなだけ
機密性やら完全性やら欠いても動かすかどうかは別問題
あるべき姿として可用性優先してるのではない
限るならからあるべき姿まで語り出すのは飛躍
今回のは(可用性向上するための)ボット対策が悪さするなら止める方がマシなだけ
機密性やら完全性やら欠いても動かすかどうかは別問題
あるべき姿として可用性優先してるのではない
874デフォルトの名無しさん
2025/11/23(日) 19:34:48.38ID:W+o2V/Ez >>873
つ >同様の障害時には
前後の文脈読まれたし
その上でより丁寧に書き直すなら以下になるかと
当該サービス(の当該案件)に限るなら、「安全に停止(パニック)する」よりも「可用性を優先すべき」がネットワークインフラを提供する立場としてのあるべき姿と見たわけだ
少なくとも以下の文章からは可用性をサービスの要と見ている節が読み取れるような気もするが
ただしだからといってそれが「機密性やら完全性やら欠いても動かすかどうかは別問題」と矛盾する趣意かは別問題
>An outage like today is unacceptable. We've architected our systems to be highly resilient to failure to ensure traffic will always continue to flow. When we've had outages in the past it's always led to us building new, more resilient systems.
つ >同様の障害時には
前後の文脈読まれたし
その上でより丁寧に書き直すなら以下になるかと
当該サービス(の当該案件)に限るなら、「安全に停止(パニック)する」よりも「可用性を優先すべき」がネットワークインフラを提供する立場としてのあるべき姿と見たわけだ
少なくとも以下の文章からは可用性をサービスの要と見ている節が読み取れるような気もするが
ただしだからといってそれが「機密性やら完全性やら欠いても動かすかどうかは別問題」と矛盾する趣意かは別問題
>An outage like today is unacceptable. We've architected our systems to be highly resilient to failure to ensure traffic will always continue to flow. When we've had outages in the past it's always led to us building new, more resilient systems.
875デフォルトの名無しさん
2025/11/23(日) 19:52:12.24ID:W+o2V/Ez >>872
実際はボット管理で言えばくだんのフィーチャーファイルとやらによる「更新をしない」分岐とかでは(エラーログの通知、及びそれに伴う都度の運用判断することなどは前提として)
当該機能の性格上、頻繁な更新を要することが今回の騒動に拍車をかけた形だろうし(その部分だけで見れば「(前提をネストさせた上で、にもかかわらずそれを無視すれば)"落ちやすい"」)
それにしては肝心のファイル生成をする当のクエリをノールック(あるいは見たけどスルー)でDBの権限変更したのはあまりに杜撰と見る向きもあるが
ちなみに改善手順と銘打って記載列挙された中には、上記のファイルに関するくだりも見られ、要するに「内部生成されたファイルも外部のそれと同等に扱う」とのことらしい
- Hardening ingestion of Cloudflare-generated configuration files in the same way we would for user-generated input
- Enabling more global kill switches for features
- Eliminating the ability for core dumps or other error reports to overwhelm system resources
- Reviewing failure modes for error conditions across all core proxy modules
しかしあの規模の、世界的なインフラ最大手がまさかの現場猫案件かますとは
後知恵バイアスと言われてしまえばそれまでなのだが、それにしてもな感はある
実際はボット管理で言えばくだんのフィーチャーファイルとやらによる「更新をしない」分岐とかでは(エラーログの通知、及びそれに伴う都度の運用判断することなどは前提として)
当該機能の性格上、頻繁な更新を要することが今回の騒動に拍車をかけた形だろうし(その部分だけで見れば「(前提をネストさせた上で、にもかかわらずそれを無視すれば)"落ちやすい"」)
それにしては肝心のファイル生成をする当のクエリをノールック(あるいは見たけどスルー)でDBの権限変更したのはあまりに杜撰と見る向きもあるが
ちなみに改善手順と銘打って記載列挙された中には、上記のファイルに関するくだりも見られ、要するに「内部生成されたファイルも外部のそれと同等に扱う」とのことらしい
- Hardening ingestion of Cloudflare-generated configuration files in the same way we would for user-generated input
- Enabling more global kill switches for features
- Eliminating the ability for core dumps or other error reports to overwhelm system resources
- Reviewing failure modes for error conditions across all core proxy modules
しかしあの規模の、世界的なインフラ最大手がまさかの現場猫案件かますとは
後知恵バイアスと言われてしまえばそれまでなのだが、それにしてもな感はある
876デフォルトの名無しさん
2025/11/23(日) 20:20:59.87ID:hAxz+HBT Cargoの管理ファイルがウザイな。
lib.rsまでは良しとしてmod.rsまで必要かえ?
PlatformIOのように全体一発でモジュールとクレート管理できんもんかね?
lib.rsまでは良しとしてmod.rsまで必要かえ?
PlatformIOのように全体一発でモジュールとクレート管理できんもんかね?
877デフォルトの名無しさん
2025/11/23(日) 20:57:42.13ID:6RGNEouq Rustのモジュール設計ってPythonのパクり?
878デフォルトの名無しさん
2025/11/23(日) 23:28:58.23ID:rr5Ei7G8879デフォルトの名無しさん
2025/11/23(日) 23:44:04.11ID:rr5Ei7G8 もっともCloudflareの事例はプログラムやサービスを停止させる必要はなくて古い設定値のままトラフィックを捌き続ければよかった
880デフォルトの名無しさん
2025/11/24(月) 00:16:32.96ID:JEY6AAvW >>858
いや、プログラムが緊急停止した場合の対策が出来ない無能はシステムを運用すべきじゃない、だろ。
いや、プログラムが緊急停止した場合の対策が出来ない無能はシステムを運用すべきじゃない、だろ。
881デフォルトの名無しさん
2025/11/24(月) 08:08:42.17ID:ToUcbaMD >>880
その発言だと開発のポカは運用でカバーできるのが前提になっているけど、panicみたいに緊急停止するような状況はどんなに上手く運用したとしても回避するのは困難かと。
しかもCloudflareの場合は
https://blog.cloudflare.com/ja-jp/18-november-2025-outage/
自動生成した設定ファイルが原因だから、コードに詳しい開発側じゃなければわからない。
これを「運用が無能だから発生した」とか言うんだったら、運用側は「panicは最小限度にしろ」「panicが発生するコードは全て明記して管理しろ」「管理できなければpanicさせるな」と要求するわな。
その発言だと開発のポカは運用でカバーできるのが前提になっているけど、panicみたいに緊急停止するような状況はどんなに上手く運用したとしても回避するのは困難かと。
しかもCloudflareの場合は
https://blog.cloudflare.com/ja-jp/18-november-2025-outage/
自動生成した設定ファイルが原因だから、コードに詳しい開発側じゃなければわからない。
これを「運用が無能だから発生した」とか言うんだったら、運用側は「panicは最小限度にしろ」「panicが発生するコードは全て明記して管理しろ」「管理できなければpanicさせるな」と要求するわな。
882デフォルトの名無しさん
2025/11/24(月) 10:00:06.15ID:JEY6AAvW >>881
あのな、言いたい事は分かるし、プログラマはシステムが止まらないよう最大限の努力しろというのはその通りだが、超新星爆発や太陽フレアやコーヒーが零れるのは止められないからな。それを念頭に運用は速やかにシステムを復旧出来るようにしとけよ。それが出来ずにプログラムやプログラマを非難するだけの運用なら無能というはなし。
あのな、言いたい事は分かるし、プログラマはシステムが止まらないよう最大限の努力しろというのはその通りだが、超新星爆発や太陽フレアやコーヒーが零れるのは止められないからな。それを念頭に運用は速やかにシステムを復旧出来るようにしとけよ。それが出来ずにプログラムやプログラマを非難するだけの運用なら無能というはなし。
883デフォルトの名無しさん
2025/11/24(月) 10:32:10.42ID:NcJaUoGt884デフォルトの名無しさん
2025/11/24(月) 10:45:36.91ID:ToUcbaMD >>882
なんのために制約キツくてコーティング面倒臭いRustを使っているのか、という話だわな。
Rustを採用するマネジメント層からすれば、トラブルの無い安定運用がRustに期待するところであって、Cloudflareみたいなサービス停止トラブルはあってはならない悪夢でしかない。その原因が無能コーダーが不用意に突っ込んだunwrapなんだから、管理側が「SafeRustではpanic禁止にしたい」と考えるのは当然じゃないんかね。
なんのために制約キツくてコーティング面倒臭いRustを使っているのか、という話だわな。
Rustを採用するマネジメント層からすれば、トラブルの無い安定運用がRustに期待するところであって、Cloudflareみたいなサービス停止トラブルはあってはならない悪夢でしかない。その原因が無能コーダーが不用意に突っ込んだunwrapなんだから、管理側が「SafeRustではpanic禁止にしたい」と考えるのは当然じゃないんかね。
885デフォルトの名無しさん
2025/11/24(月) 10:54:15.58ID:6bKOYnAL886デフォルトの名無しさん
2025/11/24(月) 11:23:49.40ID:3cdeWV/q887デフォルトの名無しさん
2025/11/24(月) 12:50:03.58ID:fg7M9od0888デフォルトの名無しさん
2025/11/24(月) 12:51:36.71ID:OH3b+FiZ Rustが保証するのはメモリ安全であって、それ以上の機能を言語自体に期待してはいけないね
889デフォルトの名無しさん
2025/11/24(月) 13:52:56.65ID:wHdQFDSx 3年かけて数多のスレを潰してようやく分かったか?
890デフォルトの名無しさん
2025/11/24(月) 15:25:42.29ID:xtd+oazR 今後Rustは使用必須のスタートラインに過ぎないからな
891デフォルトの名無しさん
2025/11/24(月) 17:08:28.30ID:Ya054j8a Rustの次の言語に期待
892デフォルトの名無しさん
2025/11/24(月) 17:14:22.69ID:eqWikkbY 実際、Rust以降ってこれといった言語出てなくない?
893デフォルトの名無しさん
2025/11/24(月) 17:19:31.65ID:mGEasdrD Rustより安全性の高い言語でないと企業が採用しない
Rustのような書きやすさと両立したプログラミング言語は出現しそうにない
Rustのような書きやすさと両立したプログラミング言語は出現しそうにない
894デフォルトの名無しさん
2025/11/24(月) 17:45:09.92ID:kI+d7siV メモリの安全性だけでなくnull safetyやmatchのexhaustivenessなど堅牢なソフトウェアを作るための機能が言語に備わっている
にもかかわらずそれらバイパスする間違ったunwrapやpanicの使い方を「正しい」と思い込んでる人たちを少なからず作り出しているということと、その誤った使い方を構造的に防止する方法がないということがソフトウェアの安全性に対するRustの問題点
にもかかわらずそれらバイパスする間違ったunwrapやpanicの使い方を「正しい」と思い込んでる人たちを少なからず作り出しているということと、その誤った使い方を構造的に防止する方法がないということがソフトウェアの安全性に対するRustの問題点
895デフォルトの名無しさん
2025/11/24(月) 18:01:28.20ID:p5vlTQW+ unsafeの中以外は⊂(^ω^)⊃ セフセフ!!
896デフォルトの名無しさん
2025/11/24(月) 18:21:57.08ID:eehF78R0 >>894
理解できていないのは君だろ
null safetyは必ずnullチェックがなされることを指す
unwrapは必ずnullチェックをする安全な方法
安全でないのはnullチェックをしないunwrap_unchecked()
理解できていないのは君だろ
null safetyは必ずnullチェックがなされることを指す
unwrapは必ずnullチェックをする安全な方法
安全でないのはnullチェックをしないunwrap_unchecked()
897デフォルトの名無しさん
2025/11/24(月) 18:37:03.11ID:rjCnBMS+898デフォルトの名無しさん
2025/11/24(月) 18:43:35.39ID:t2YHlRQh >>892
Zigがあるじゃん
Zigがあるじゃん
899デフォルトの名無しさん
2025/11/24(月) 18:48:01.50ID:eehF78R0900デフォルトの名無しさん
2025/11/24(月) 18:53:21.46ID:fgR96Ue8 >>898
何年前に出て、現在どれだけ使われてるの?
何年前に出て、現在どれだけ使われてるの?
901デフォルトの名無しさん
2025/11/24(月) 19:30:54.35ID:t2YHlRQh902デフォルトの名無しさん
2025/11/24(月) 19:58:53.90ID:0956DWdq >>901
聞いたのは個別具体な事例ではなく、どれだけ使われているか、つまり普及のいかんについてであるのと、あと出た時期Rustと変わんなくない?
聞いたのは個別具体な事例ではなく、どれだけ使われているか、つまり普及のいかんについてであるのと、あと出た時期Rustと変わんなくない?
903デフォルトの名無しさん
2025/11/24(月) 21:00:06.05ID:/4tPGgp6 Crate.ioには、std::fmt::Debugをインプリしていないクレートが一杯あるんやね。
UartDriverだけかと思いきや、結構ある。
Wrapper作ってのインプリ作業がマンドクセ。
でないと、クレート、モジュールの外部変数Mutex.setもできん。
いろいろ手間のかかる言語だ。
UartDriverだけかと思いきや、結構ある。
Wrapper作ってのインプリ作業がマンドクセ。
でないと、クレート、モジュールの外部変数Mutex.setもできん。
いろいろ手間のかかる言語だ。
904デフォルトの名無しさん
2025/11/24(月) 21:14:00.28ID:P1qKutdV ラップして Debug を実装するだけならマクロでかなり自動化できると思う。
というかそういうクレートはありそう。 知らんけど。
というかそういうクレートはありそう。 知らんけど。
905デフォルトの名無しさん
2025/11/24(月) 22:02:41.96ID:BE69Oim8 >>896
言語に機能は備わっているけど誤った使い方でそれを活用できていない人たちがいるという話に対して「unwrapは必ずnullチェックをする」という言語に備わった機能を紹介しても意味ないでしょ
ちなみにnull safetyは必ずnullチェックがなされることを指すわけではないよ
null safetyを実現するための一手段ではあるけれどね
言語に機能は備わっているけど誤った使い方でそれを活用できていない人たちがいるという話に対して「unwrapは必ずnullチェックをする」という言語に備わった機能を紹介しても意味ないでしょ
ちなみにnull safetyは必ずnullチェックがなされることを指すわけではないよ
null safetyを実現するための一手段ではあるけれどね
906デフォルトの名無しさん
2025/11/24(月) 22:03:30.71ID:Ucl2n3b7907デフォルトの名無しさん
2025/11/24(月) 22:07:33.53ID:qMEdPPRT908デフォルトの名無しさん
2025/11/24(月) 22:25:07.64ID:BE69Oim8 >>907
ケースバイケースなのは当然の話なんだがunwrapの誤った使い方によって大障害につながったCloudflareのケースを念頭に話をしてるわけで
あれが「誤った使い方」と断言できない人がこんなスレだけで複数いることがRustの抱えてる問題
ケースバイケースなのは当然の話なんだがunwrapの誤った使い方によって大障害につながったCloudflareのケースを念頭に話をしてるわけで
あれが「誤った使い方」と断言できない人がこんなスレだけで複数いることがRustの抱えてる問題
909デフォルトの名無しさん
2025/11/24(月) 22:28:17.91ID:qMEdPPRT910デフォルトの名無しさん
2025/11/24(月) 22:31:40.94ID:fg7M9od0 >>906
Rust API Guidelines でもパブリックな型にはDebugトレイトを実装することを推奨してるけど
https://rust-lang.github.io/api-guidelines/debuggability.html
Rust API Guidelines でもパブリックな型にはDebugトレイトを実装することを推奨してるけど
https://rust-lang.github.io/api-guidelines/debuggability.html
911デフォルトの名無しさん
2025/11/24(月) 22:32:27.20ID:vfRWkEzS >>908
その無理矢理な「Rustの抱えている問題」との書き込みからアンチらしき人にみえます
その無理矢理な「Rustの抱えている問題」との書き込みからアンチらしき人にみえます
912デフォルトの名無しさん
2025/11/24(月) 22:41:07.93ID:pZ21ptJQ 「所有権の複製」の人って
その発言の前はそもそもクソコードいっぱいこのスレに書いてた人よな?
あの人よくunwrap書いてたような記憶あるけど記憶違いかな
その発言の前はそもそもクソコードいっぱいこのスレに書いてた人よな?
あの人よくunwrap書いてたような記憶あるけど記憶違いかな
913デフォルトの名無しさん
2025/11/24(月) 23:02:06.99ID:A7gFxydS unwrap使わない人はassertも使わないのかな
条件が破れた時にpanicの発生源になるし
条件が破れた時にpanicの発生源になるし
914デフォルトの名無しさん
2025/11/25(火) 00:13:09.71ID:8A3kV+Bq 除算は常にchecked_div使ってそう
915デフォルトの名無しさん
2025/11/25(火) 00:17:03.45ID:x+ek8sa9 物事を点でしかとらえられない知的障害者が大勢いるのがよくわかってかなしい
早くAIに置換したい
早くAIに置換したい
916デフォルトの名無しさん
2025/11/25(火) 00:21:51.64ID:GjnKMvo7 0か100か思考の例
917デフォルトの名無しさん
2025/11/25(火) 01:08:59.76ID:0646GGZx >>909
Cloudflareのunwrapの使い方が誤った使い方でないと思ってるならそう思う根拠を述べて反論できないの?
Cloudflareのunwrapの使い方が誤った使い方でないと思ってるならそう思う根拠を述べて反論できないの?
レスを投稿する
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【速報】習主席とトランプ大統領が電話会談 台湾問題について★2 [ニョキニョキ★]
- 【速報】習主席とトランプ大統領が電話会談 台湾問題について★3 [ニョキニョキ★]
- 人生初黒星の神童、那須川天心がリング上で土下座 [牛丼★]
- 中国人「『日本は危ないから行かないように』と言われたが、日本に来たらとても安全だった」 [お断り★]
- 石破前総理「どうすれば台湾有事にならないかを考えるべき」★2 [1ゲットロボ★]
- 毛寧(もう・ねい)報道官 「日本は実際の行動で対話への誠意を示すべき」 中国、高市首相に改めて発言撤回を要求 [ぐれ★]
- 【高市朗報】高橋洋一「これあまり知られてないんですが、財政が悪化し続けば勝手に円高になります」🤔・・・😰??? [931948549]
- 【号外】習近平、米大統領のトランプと首脳会談を行う!日本のの武力による台湾脅しついて共有の追及をする意思統一でおこなう [339712612]
- 【高市悲報】トランプおやびん「偉大な指導者である習近平首席、米国は中国にとっての台湾問題の重要性を理解しています」 [115996789]
- 【愛国者悲報】高市早苗、ガイキチスマイルwwwwwww [856698234]
- まったりおじゃる丸待機スレ🏡
- 「琉球有事は中国有事」 中国のネトウヨが拡散 これには日本のネトウヨ叩きのめされる [241672384]
