Rust part33

レス数が900を超えています。1000を超えると表示できなくなるよ。
2025/11/08(土) 17:35:27.61ID:bNW9jxHO
詳しくないんだけど、サポート外になるCPUってどんなの?
古いPCに使われてるものなのか、それとも組込み機器など特定分野で使われてるものなのか
AMDやARMしか知らないから、実際どういうところが影響受けるのかいまいち想像が付かない
2025/11/08(土) 17:37:34.34ID:pXyjl95e
>>594
誰も使ってないから気にしなくていいよ
2025/11/08(土) 17:46:52.09ID:tF6dEOxV
Cで書こうがRustで書こうがllvmではコンパイルできない感じ?
2025/11/08(土) 18:37:24.47ID:ICj3I2sk
>>588
意味なくないよ
マルチスレッド対応してるから
データをバッファに貯めてからまとめてDBに書くような処理を実行しながら
ユーザーアクションに応じたデータを同じDBから読み込んで表示するみたいなことが同時にできるわけで

とりあえず同期/非同期とシングルスレッド/マルチスレッドを区別しようよ
長時間かかる同期処理を通常の非同期タスクスケジューラにそのまま投げたらダメだということと
sqliteのマルチスレッド対応状況とは何の関係もないからさ
2025/11/08(土) 18:51:24.50ID:Mkz3TZ2+
そんな話は誰もしていなくて>>579氏はsqliteが非同期対応していないもどかしさを述べてるね
素直に let res = sqlite. request(x).await; と書きたい話だと思うよ
2025/11/08(土) 19:28:31.98ID:tF6dEOxV
シングルスレッドかつ同期 => 悪い
マルチスレッドまたは非同期 => 良い
シングルスレッドかつ非同期 => 書けない

非同期とマルチスレッドの二刀流のようなものが正解
2025/11/08(土) 20:59:10.51ID:fJHSi6K0
Rustはマルチスレッド非同期がデフォルトだよ
事情があればシングルスレッド指定しても非同期使えるけど
2025/11/08(土) 21:17:23.23ID:bNW9jxHO
>>600
Rustがじゃなくてtokioがじゃない?
言語そのものは非同期ランタイムなんて持ってないわけだし
2025/11/08(土) 21:20:49.42ID:xFyQtacU
いや、ほとんどの場合はマルチスレッド同期でじゅうぶん
なにかと非同期にしたがるのは意識高い系の所業
603デフォルトの名無しさん
垢版 |
2025/11/08(土) 21:44:26.91ID:yMZK+1Tu
昔はselectやpollで捌いていたけど
Rustの非同期タスクとtokioスケジューラで便利になったよ
意識が高いではなくプログラミングのしやすさと実用面から非同期が使われてるの
2025/11/08(土) 22:40:31.33ID:tF6dEOxV
なんでも文字列で入出力したらGCの意識じゃなくて価値が低くなる
価値を高騰させろ
循環参照を考えろ
605デフォルトの名無しさん
垢版 |
2025/11/10(月) 20:26:15.74ID:nKQhltod
rustのクレートは公式が作ってるやつかそうじゃないやつか区別する方法ある?
2025/11/10(月) 20:35:29.89ID:7Gr7b5bQ
クレート ←全て非公式
標準ライブラリ ←公式
2025/11/10(月) 22:52:23.28ID:L0hwR/50
どの言語でも
公式だから保証があるわけでもなく
公式だから非公式より良いとは限らず
公式の意味も範囲も様々だから拘ってもしょうがないよ
2025/11/11(火) 01:03:25.98ID:+abQG+dZ
知覚は不完全なので
存在すること=知覚されること
とは言えない
また、目に見えないものがあるから目は役に立たない、とも言えない
2025/11/11(火) 11:43:38.90ID:62BX6ziF
開発チームの人が作っているクレートなんかだと準公式くらいの立場のものはあるが、逆に言えばそこまで作っていて標準に入れないのは相応の理由があるのかもしれない。
個々に検証しないとわからん。
610デフォルトの名無しさん
垢版 |
2025/11/11(火) 17:32:20.73ID:44T7zLr5
Rustは開発ルールがガチガチすぎるんよ
俺はその恩恵をただ受ける側だからいいけど作ってる神々は燃え尽きかかってる
2025/11/11(火) 18:12:33.19ID:tSeZWguW
だからまずC++で作ってそれからRustで作り直すのが正解
2025/11/11(火) 18:35:34.65ID:PwE4XjAp
>>610
開発ルールがガチガチすぎるって何?
どこで誰が何をする時の話?
613デフォルトの名無しさん
垢版 |
2025/11/11(火) 20:40:33.25ID:44T7zLr5
>>612
ごめん。ほとんど独り言のつもりで書いた
Rustプロジェクトが、破壊的変更禁止とメモリ安全とスレッド安全と型安全とゼロコスト抽象化のすべてに
妥協を許さない方針を取ってるの、冷静に考えると狂ってるなーと
2025/11/11(火) 21:27:34.80ID:Fmu+Vf5K
それらを守らない言語があったらヤバくね?
2025/11/11(火) 22:52:59.49ID:+abQG+dZ
時間を守らないっていう妥協をしてみるといい
それで、時間だけは絶対守れと言い出したらそいつが神々を疲弊させた狂人だ
616デフォルトの名無しさん
垢版 |
2025/11/12(水) 15:15:46.80ID:YK2oTH5Z
おいどん、コンピュータさんて0か1しか分からないのになんでcやらrustとかあるのがわからない
機械語マスターすればreactだのrustだのの「流行り」に惑わされること、なくなるやん?😊
2025/11/12(水) 15:55:18.49ID:9DKi0uHD
CPU の設計理念にも流行はあるよ。
2025/11/12(水) 16:34:57.41ID:Nz02cUZf
>>616
機械語でプログラムを作ると異なるアーキテクチャのCPUで動かない
機械語でプログラムを作るよりRustで書いたほうが楽で保守性もいい
実行速度もよほど手動で頑張らない限りRustで書いた方が速い
その理由はコンパイラがループ展開や並列化を含めた様々な最適化をしてくれるため
619デフォルトの名無しさん
垢版 |
2025/11/12(水) 20:01:46.19ID:aWyMb0Qa
>>616
おう、0と1でモンハン作ってみようぜ!
620デフォルトの名無しさん
垢版 |
2025/11/12(水) 20:14:40.22ID:qKWUWDdw
機械語と言っても日本語や英語のように多くの系統と方言があるからなあ
2025/11/12(水) 20:21:55.06ID:9WC7063A
機械語でアプリを書くとなるとABIやカーネルコールの仕様も把握してないといけないしな
2025/11/12(水) 23:27:09.63ID:lg2d8nXO
Rustの中にインラインで機械語を書けて便利だよ
asm!
naked_asm!
global_asm!
2025/11/12(水) 23:39:25.75ID:1WaieLXY
>>622
それ機械語じゃなくてアセンブリ言語な👈
2025/11/12(水) 23:50:12.50ID:Nz02cUZf
それは同じ
2025/11/13(木) 01:48:22.68ID:gXd8sYh3
CPUは商品だから次々と流行らせるが
C言語はもう物を売るってレベルじゃねえし二転三転させる意味がない
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
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 パスワード漏えいの可能性などが指摘されている

安全神話が崩壊しちゃったね
2025/11/13(木) 19:09:10.61ID:uSciVBzH
>>627
どういうタイプの脆弱性?
メモリ関係ではないの?
2025/11/13(木) 19:40:16.39ID:qlDXnzni
>>628
パスワード入力中にタイムアウトすると
入力文字列を標準出力にエコーする普通の動作に戻ってしまった時にパスワードが画面に表示されてしまう漏洩リスクらしい

別問題としてPAMを扱うコードのunsafeまみれを指摘する人がいた
https://imgur.com/a/j2hu5qL
2025/11/13(木) 20:09:45.19ID:G8QMiauZ
ソフトウェア設計上のミスは防げねえわな
631デフォルトの名無しさん
垢版 |
2025/11/13(木) 20:20:51.60ID:oZ4iIE5v
須藤て別にc版でいいと思うけど既存のコードをristにするてメリットあるんかな
速度とか負荷とゆう点ではc rustてそんな変わらないんでしょ
2025/11/13(木) 20:46:57.75ID:2rBWuGzk
>>631
sudoのC版はこれまでに無数の脆弱性が報告されてきていて今年の7月にもCVE-2025-32462とCVE-2025-32463が出ています
今後も対応のためにコードを修正する可能性があるため基本的なところでエンバグしないようRust版にするのもアリでしょう
2025/11/13(木) 20:59:48.07ID:VkErwoN3
>>627
Rustが安全って言われる理由を調べず、Rustならあらゆる脆弱性は起きないと主張されてると解釈する人は
ちょっと自頭が悪すぎるので、筋肉しか使わない末端の肉体労働者したほうがいいと思う
2025/11/13(木) 21:34:52.46ID:vqxsuTJm
>>629
なんでそんな脆弱性を作っちゃったのかね?
Rust版特有の脆弱性なんだよね?
2025/11/13(木) 22:58:39.37ID:Uts3H+u4
>>633
今は筋肉だけ使う肉体労働者はいらない
636デフォルトの名無しさん
垢版 |
2025/11/13(木) 23:03:11.45ID:TN3oskXo
タイムアウトするとパスワードを表示するというプログラムを作ったわけか
2025/11/13(木) 23:37:33.52ID:YQEmvuBX
rawモードがcookedに戻ればそうなるよな
パスワード入力中以外では正しい動作
2025/11/14(金) 10:43:34.59ID:RMIqsCD4
仕様上もテスト設計上も基本的な状態遷移を整理できていないということだからかなり深刻なバグ
他にも同じ原因のバグがあると思って間違いない
2025/11/14(金) 11:05:52.45ID:XXTzgKKv
Rustとは全く無関係な要因で一安心
2025/11/14(金) 11:58:01.94ID:GEpZQLRP
よかった!Rustは安心安全なんだね!
2025/11/14(金) 15:25:11.70ID:S1LIbQUa
ロジックの穴を潰すのは完璧な手法など存在せず、見つかる度に修正し続ける歴史の積み重ねだ。
最初から書き直すならその歴史もやりなおし。
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
2025/11/14(金) 16:10:06.99ID:R48s/t59
>>638
構造的な問題だな
バザール方式 + 質の低い開発者 => バグだらけのソフトウェア
2025/11/14(金) 16:21:06.29ID:WluAx6w+
逆にRustアンチの仕業と見做す信者はいそう
2025/11/14(金) 16:30:00.84ID:HUzsh9SZ
Rustが質の低い開発者を引き寄せる側面があるんだろう
2025/11/14(金) 16:54:12.78ID:hwCkzTBr
言語に自分のアイデンティティを求めちゃう人は開発者として質が低いよね。
そしてRustがその手のタイプを引き寄せる傾向があるのは残念ながら事実。
2025/11/14(金) 18:42:26.40ID:daHga20Z
言語にアイデンティティ持つような考え方は体育会系に多いだろうね
組織に対する忠誠心みたいなのと言語アイデンティティは同一だと言われるし
頭空っぽの体育会系Rustceanを追い出さないと質は下がる
648デフォルトの名無しさん
垢版 |
2025/11/14(金) 19:14:03.70ID:/xnnTPah
結局、仕事では言語に選択肢無いので。
言語にこだわるのはプログラマーじゃなくて(私のような)言語オタク。
ただ、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でまったく使われてないからかなり嫌われてるんじゃろうなとは思うけど
2025/11/14(金) 21:38:51.97ID:cHWkSnWA
JavaをやるってのはSpringをやることだと言っても過言じゃないぐらいあれ1強だからなあ
せめてRailsのパクりみたいなのがJavaでも幅効かせてたら、趣味でもメインにしてたかもしれない
2025/11/14(金) 22:13:12.18ID:DRghBkPx
>>645,646
フクリンのことか───────っ!!!!!
2025/11/14(金) 22:31:32.76ID:aWJv2uWS
>>649
JavaはAndroidだろうがSpringだろうがディレクトリ構成にドメインをひっくり返したディレクトリ階層を使うだろう
その階層がクラス名にそのまま適用されてクラス名をユニークなものにする
デフォルトはcom exampleになってたりするけどちゃんとした開発ならばユニークなドメイン名を使う
2025/11/14(金) 23:52:35.24ID:MNrI4Z33
Moving From Rust to Zigって記事に
Rustはコンパイル単位がクレートで、クソ遅いコンパイルを改善するためにクレートにまとめたいけど
論理的な構造とクレート単位にずれがあるとやりづらい
更にcrates.ioに公開すると、コンパイルの都合で分割した内部用クレートが公開用クレートと同じ並びに出てきて混乱を招く
って書いてあった
2025/11/15(土) 07:40:31.46ID:JIXSXIkC
会社でRustやらされてるヤツは負け組
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使えるプログラマーが確保できれば新規開拓しやすくなるやね。
2025/11/15(土) 19:36:39.90ID:Yrz/bNnl
学生にとっても、著名なOSSにメモリ安全性で難癖付けて単純移植するだけで就活に使える実績を作れるからな
構造的に言語アイデンティティ君を生む宿命にある
659デフォルトの名無しさん
垢版 |
2025/11/15(土) 19:40:09.72ID:pddDIdqI
今どきの大学生はとりあえずTypeScriptとRustをやりPythonを常識程度に触るのがトレンド
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なんていうやつは素人。
2025/11/16(日) 08:48:05.53ID:pNoPg36+
そうだね。
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/ouyx3U
>>657
人材派遣みたいな企業でRust使うか?
発注側にとっても、リソースが足らないから外注してるわけで、そういう組織で開発者人口の少ない言語を選ぶのってリスクでしかなくね?
667デフォルトの名無しさん
垢版 |
2025/11/16(日) 20:08:10.20ID:r6khXsKc
>>666
あ、そうね。
純粋なソフトハウスってそういう形態だったね。
医療機器メーカーとか自動車メーカーの開発陣を想定してた。
ソフトハウス的なところだとRustプログラマーの数だけでなく、そのメンバーで何が作れるのかも把握できないと商売にならんね。
ピンチはチャンスなので、自社で鉄板の環境構築するなり、ライブラリ整備して得意ジャンル持てば逆に強みになるだろうけど。
2025/11/16(日) 22:08:25.71ID:MPC0Zo4Y
>>96のRustのフリーランス単価が1位になった理由は需要が確実にあるのに人材が足りないためなの?
2025/11/16(日) 22:11:31.80ID:Zz64Y+1W
Rustの一番駄目なところはなぜか誰も使ってないところ
2025/11/16(日) 22:41:12.45ID:nix4z4BT
知能が低いとコンパイルを通せないか回避のためメモリをムダに豪快に使ったコードでバレてしまう恐ろしい言語
2025/11/16(日) 22:44:10.76ID:uefCmtO3
そんな欠陥言語なの?
2025/11/16(日) 22:53:45.70ID:DR0gsB60
実際スクリプト上がりの意識高い系なんかは
基礎の所有権すらさっぱりでcloneの嵐なコードを書いて、Rust使い気取ってそう
2025/11/16(日) 23:05:58.98ID:uefCmtO3
一生懸命clone減らして、ライフタイム注釈まみれの読みづらいコードに書き換えたところで
大して速くならないオチ
674デフォルトの名無しさん
垢版 |
2025/11/16(日) 23:08:47.79ID:r6khXsKc
>>669
なぜか学習コストが高い(難しい)と思われているから。
Haskellも別に分からなくても良いモナドで似たような状態。
(もともと関数型言語自体が使われてないが)

それでもHaskellは関数型言語の中ではLispに次いで有名になったし、Rustもなんだかんだでシェア伸ばすと思われ。
ライブラリが揃わないうちは、そもそもライブラリが使えない環境の組み込みから伸びるかも。
675デフォルトの名無しさん
垢版 |
2025/11/16(日) 23:20:05.76ID:r6khXsKc
というか、GCがあっても問題にならない分野じゃJavaやC#よりC/C++/Rustが速いって言っても、そんなに問題になるわけじゃないからわざわざ移行はしないかな。
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++より開発速度上がりそうだし、ワンチャンって感じか。
2025/11/16(日) 23:26:21.73ID:5GeqVtAQ
>>673
その視点が既に間違っている
ライフタイム注釈があると可読性が上がる
2025/11/16(日) 23:28:00.27ID:Zu7VaKFu
>>675
Rustで昔から最も開発が盛んで利用が多いのはWeb分野
2025/11/16(日) 23:35:13.00ID:pNoPg36+
Rust がゲーム作成に有用だとしたらゲームエンジン部分、下支え部分だと思う。
ゲームの面白さというのはやってみないとわからんということが多い。
設計してから具体化するというウォーターフォール的な開発ではなく大雑把に作ってから試行錯誤で細部を詰めていくのでメモリまわりのチューニングなんて後回しにしたい。
682デフォルトの名無しさん
垢版 |
2025/11/16(日) 23:40:54.60ID:b6L0JEIH
速さはjavaとかとそんな変わらんだろうけどハードウェアにかかる負荷は結構違う希ガス
2025/11/16(日) 23:45:32.91ID:uefCmtO3
Javaより速い遅いじゃなくて、クラウド環境でメモリケチりたいからRustなんじゃないの?
2025/11/16(日) 23:46:04.27ID:pNoPg36+
>>682
それはある。
クラウドはリソース消費量に課金されるからユーザーから見た性能が同じでもリソース消費を抑制できるほうが有利。

なんだかんだで「儲かる」のは広告業界なんだよ。
ウェブの世界のマネタイズは広告が中心。
Rust がウェブの世界で求められるのは Rust が開発に向いているというよりも、たとえ向いていなくてもコストをかけて性能を出せばそれ以上のリターンが見込めるという経済的な理由だと思う。
ある程度は向いていると思うけど、開発のしやすさとしては決定的にウェブ向きとは感じない。
2025/11/16(日) 23:48:32.30ID:qFE0dQpO
ライバル同士のIT大手企業たちが超珍しく新言語に対して手を取り合って支持を表明した最大の理由は初めてウェブでちゃんと使える言語が登場したことが大きい
クラウドもCDNも何でもウェブベースなのでそこで実用的に使える言語を誰もが欲していた
2025/11/16(日) 23:51:56.94ID:JEozs9Dz
各スクリプト言語のライブラリやツールが最近はRustで書かれるようになったね
687デフォルトの名無しさん
垢版 |
2025/11/16(日) 23:52:11.56ID:r6khXsKc
>>680
でも大企業とかじゃなくてスタートアップかオープンソースのボランティアでそ。
求人情報に載るような分野としては多分Webよりそっちのが多くなる。
(見てないから分らんけど、現状でもその可能性はある)
2025/11/16(日) 23:53:43.24ID:+pDSs9+T
開発しやすいRustへ流れてるな
2025/11/16(日) 23:56:05.64ID:0dQk4LuH
>>687
思い込みが激しすぎ
2025/11/16(日) 23:58:07.38ID:uefCmtO3
>>686
PythonやNodeはたしかにそうだね
RubyやPerl、PHPはどうなんだろ?
691デフォルトの名無しさん
垢版 |
2025/11/16(日) 23:59:27.52ID:E2ep2LMQ
>>687
大企業が採用したことが普及した決め手だよ
692デフォルトの名無しさん
垢版 |
2025/11/17(月) 00:02:19.40ID:kjA30/Ru
>>682
>>683
人を雇ってまでそこをケチる余裕がある企業はそうするかもね。
でも、すでにもう、一度作ってるのをRustで作り直してまでケチりたいと思う企業ってそんな多くない。

C/C++しか選択肢が無くて辛酸辛苦を舐め続けてきた組み込み分野の方がコスト掛けてでもRustに移行する圧力が上がりそうだし、組み込み分野に広がらないなら、他の分野でも大して広がらない。
2025/11/17(月) 00:02:29.67ID:Rp6IrtZJ
>>668
高スキル層の求人しかないからだよ
694デフォルトの名無しさん
垢版 |
2025/11/17(月) 00:03:00.76ID:kjA30/Ru
>>689
そういう場所だもん。
妄想大爆発☆
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の普及を望んでいる。その先に関数型言語の普及を夢見ているから)
(望み薄なのは言わずもがなだが、夢見ても良いぢゃない)
2025/11/17(月) 00:39:24.91ID:G813vGFZ
>>696
それらの言語がだめだったのは遅いポンコツ言語だったから
Rustがウェブ方面で企業に採用されたのは速くて使いやすい唯一の言語だから
698デフォルトの名無しさん
垢版 |
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しか見たことない。
それでもシェアが増え続けている。

実行速度より開発速度の方が重要だという証拠。
2025/11/17(月) 06:47:38.76ID:h4vPK8yF
>>698
WordPressはリソースの無駄遣いだから追加料金がかかるのも仕方ないかと
2025/11/17(月) 07:08:05.24ID:P2ZXnPrq
>>698
それ意外にRustがぴったりの分野かもよ
ユーザーにとっては内部で動いてるものがPHP製かRust製か気にしないのだから世界中の電気代とハードウェアリソースを節約できるチャンスだったりして
2025/11/17(月) 07:28:31.18ID:bg/nzq32
>>700
バックエンドだけでお腹いっぱい
Rustでフルスタックはロクなのないや
2025/11/17(月) 07:45:27.44ID:P2ZXnPrq
>>701
何を言ってるの?
PHP版WordPressやPython版MezzanineのRust版が商機とエコを実現させる話だよ
703デフォルトの名無しさん
垢版 |
2025/11/17(月) 08:37:32.15ID:Jv1DTVB6
Rustがマネジメント層で流行っているのはバッファオーバーランをやらかす無能コーダーを排除したいからじゃないの?
ビルド通らなきゃ成果0で報酬払わなくていいし。
704デフォルトの名無しさん
垢版 |
2025/11/17(月) 08:42:58.54ID:c2tXlnGe
コード資産の観点が無いのかコード資産を物ともしないスーパープログラマなのか意識的に無視してる(欲ボケ?)のか何なのだろ
2025/11/17(月) 08:50:02.44ID:3j143G+x
Rustが一番使われてる分野はlinuxコマンドの置き換え
2025/11/17(月) 09:11:50.77ID:rk5/i4ud
Rustの求人はここが毎月レポート出してるけど会社名とか見ると結構面白い
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
など
2025/11/17(月) 12:14:58.26ID:ts/k/VO2
Rustスゲー!驚いた!驚いた!
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
プログラミング言語は手段にすぎないと本当にわかっていない人間ほど、どうでもいいことにこだわって、メンテナンスを難しくしてしまう。それをメンテナンスを容易にしたと逆のことを言う。
2025/11/17(月) 13:38:29.57ID:nOBhzk4k
まともなIT企業ならRust求人を出すか内部で育てているだろうから当たり前の結果だろう
2025/11/17(月) 16:02:02.11ID:Ip91Dbfz
こういうデータリテラシーの低いやつらはRustじゃなくPythonでもやったほうがよさそう
714デフォルトの名無しさん
垢版 |
2025/11/17(月) 18:32:10.14ID:HSUpJzNx
>>690
Rubyにもuvみたいなrvってのが作られてるね
2025/11/17(月) 19:01:46.89ID:vNXRFJJm
>>714
uv自体がcargoみたいなものとして作られてるのに
連鎖してるのか
2025/11/17(月) 20:06:46.87ID:5au0Bd62
Rust文化が各言語のRust製ツールと共に各言語へ広がっていく
2025/11/17(月) 23:07:50.41ID:ZrD1t19B
>>711
あるある
その時その時で良い言語を選べばいいのに些細などうでもいいことにこだわって保守性の低い古臭い言語を使い続ける人いるね
今なら保守性の高いRustが登場したのに
2025/11/18(火) 07:24:09.28ID:zkUX7uJh
おもしろいじゃん
2025/11/18(火) 09:35:50.76ID:7gHRjkAE
>>707
ディズニーがRustを何に使うの?
2025/11/18(火) 09:44:02.46ID:44PlOks7
配信系じゃないか
2025/11/18(火) 09:45:19.44ID:R4KlmKwj
確かDisney+の配信フロントエンドがwasmでRustだったはず
2025/11/18(火) 10:04:09.86ID:NUbx/bSt
ディズニー求人
https://www.disneycareers.com/en/search-jobs?k=rust
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はオヌヌメだよ。 本当に。
725デフォルトの名無しさん
垢版 |
2025/11/18(火) 21:33:50.31ID:9E8x7tFx
驚いた!
2025/11/18(火) 23:38:02.37ID:hMgPiOc6
>>724
その手の問題のほとんどがクラスを捨ててトレイトを採用すると解決するよね
純粋仮想関数という奇妙な名前を含めた概念もトレイトの『実装必須メソッド』とそれらを用いた特定の型に依存しない『デフォルト実装提供メソッド』の二つに整理されると使いやすくわかりやすい
依存性の注入や逆転も『トレイトを利用する型々⇔トレイト⇔トレイトを実装する型々』と最初から分離されて対応している
Value Objectもどこまで何をやるかで多少変わるけど基本的にはラッパーにPartialEq/EqやClone/Copyそしてバリデーション付き生成のTryFromなど基本トレイトを必要なだけ実装していくだけで大方の対応ができる
2025/11/19(水) 00:21:53.18ID:IfvLhI2w
iter().filter(...).map(...) みたいなのってデバッグ用のビルドだとすごく遅くない?
リリースビルドだと最適化されるんだろうけど、 デバッグ時のことを考えると要素数が大きい場合は普通に for で書いた方が良いんだろうか
2025/11/19(水) 04:26:37.69ID:VwytrS17
libxml2がメンテナー不在状態になっちゃったらしいけど
これってRust採用に有利に働くのでは?
しかも、最後のメンテナーが「セキュリティバグ満載の趣味プログラムだから製品に採用してる大企業の方がおかしい」とか言い出してる

ま、Rustからlibxml2呼んで使ってた人もいるかもしれんが
2025/11/19(水) 08:24:12.23ID:R5nvtzxr
>>728
これは追い風だな
自社開発せなあかんとなれば金払ってでも雇うだろうし
2025/11/19(水) 10:14:56.27ID:DEKdhoZN
https://blog.cloudflare.com/18-november-2025-outage/#memory-preallocation
ふう
今回もRust自体の問題じゃなくてRustを誤用したCloudflareの無能のせいでよかったよかった
2025/11/19(水) 10:38:40.48ID:VwytrS17
>>730
Cloudflareですら、本番環境で雑にunwrap()呼んでるんだから
この関数はもう許されたんだな
2025/11/19(水) 11:21:56.78ID:dZVJ1Iyu
>>731
Result返す関数内だから
.unwrap();

?;
にするだけなのにな
2025/11/19(水) 11:50:56.97ID:GsWNWOPW
そのままmainまで巻き戻ってエラー値でプロセス終了
panicじゃないからねって責任分散w

真面目に言語として対策するならResult::unwrap()をunsafeにする事だな
2025/11/19(水) 12:57:15.96ID:WcZFNgrM
>>733
設定ファイルの読み出しでエラーなのだから、続行することが悪なのであって、panicもしくはmainでエラー値を返して終了のどちらでも正しい。
このプログラムの異常終了を検知して、然るべき自動対応もしくは人間へアラートを発生させることが通常のシステム運用だ。
2025/11/19(水) 16:36:17.53ID:a6iYqrEC
>>733
unwrap()は必ずチェックをしてくれるsafeな関数
チェックをしないunwrap_unchecked()がunsafeな関数
後者はチェックが不要であることを人間が保証しなければいけない
2025/11/19(水) 18:15:22.62ID:FpyXWrvw
unwrap()じゃパニックした理由が分からんから、せめてexpect()を使うべきだったのでは?
2025/11/19(水) 18:44:42.33ID:NvQTXkF4
>>730
>今回もRust自体の問題じゃなくてRustを誤用したCloudflareの無能のせいでよかったよかった
こういうおバカな考え方をするやつにシステムプログラミングをさせてはいけない
絶対にダメ
2025/11/19(水) 19:17:35.77ID:AEqphh7h
そもそも「Rustを誤用した」箇所がないだろ
フェールセーフなシステム運用では異常時に異常なデータのまま動き続けることこそ最悪な惨事
パニックでプロセスが落ちてくれれば上位で必ず検知できてその対処ができる
739デフォルトの名無しさん
垢版 |
2025/11/19(水) 19:18:38.06ID:Rm5s9Hvl
Rcってスマートポインター自体はポインターとサイズ一緒で参照先にカウンターがあるんだよね
2025/11/19(水) 22:57:00.67ID:CLMpOrw3
>>739
スタック上のサイズは通常のポインターと同じだけど
スタック上のポインターだけを指して「Rcのスマートポインター自体」と呼ぶのはちょっと微妙
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
2025/11/19(水) 23:50:27.39ID:H3eXqgcn
まーたフェイク垂れ流してんなw
2025/11/19(水) 23:59:17.25ID:3P61Qd+t
正しくても嘘だフェイクだと暴れるだけのおじさん
2025/11/20(木) 02:07:52.80ID:ncYlBBwT
ChromeはXSLT機能を廃止するらしい
件のlibxml2と同じ人がメンテしてて放棄されたlibxsltにセキュリティ問題があると見て
2025/11/20(木) 05:14:44.24ID:MGDS7leX
Rustすごい!驚いた!
2025/11/20(木) 10:18:35.91ID:9zm/YaRl
Cloudflareの障害って半年前のGoogle Couldの障害と同じパターンじゃん
確か「Rustなら防げた」とかアホなこと言ってたやつがいたな
2025/11/20(木) 10:22:16.48ID:syoVlbLx
>>736
実際にはパニックと同時に出るバックトレース以上の情報なんて書けないからいらないと思う
中身がおかしいです!それはわかってる。
2025/11/20(木) 10:47:57.16ID:9zm/YaRl
>>747
>中身がおかしいです!それはわかってる。
ファイルの中身がおかしいと特定するのに2時間もかかったのに?
2025/11/20(木) 11:21:06.60ID:syoVlbLx
>>748
バックトレースでわかる、落ちたソース行と変数がわかっててもそれなりに調査がいる部位で
ここが落ちた原因はこのファイルです!加えてこのファイルがおかしい理由はこれです!って
人間様なら事前に言えるのかって話だけど・・・。しかも全てのunwrapで
2025/11/20(木) 12:03:26.09ID:21pecUNF
>>738
フェイルセーフを勘違いしてるな
雑にunwrapするのはこういうやつだろ
2025/11/20(木) 12:37:12.92ID:k44P4Y1f
>>738
> 上位で必ず検知できてその対処ができる

この手の信者が野放しのせいで#[no_panic]が通らない
2025/11/20(木) 14:34:42.78ID:MlUTgZBl
>>749
要するにバックトレースでは不十分だったということ
expectのメッセージがあれば解決がかなり早まった可能性が高い

ただ外部データを読み込んでその妥当性をチェックした結果のResultなんだからパニックさせるのが論外
2025/11/20(木) 14:38:44.38ID:MlUTgZBl
今回も前回もアホなこと言ってるやつは同じだね
https://mevius.5ch.net/test/read.cgi/tech/1748392296/807-n
2025/11/20(木) 19:55:50.61ID:xKPp4vJ3
>>752
みんながパニックさせるのを正解と言ってるのに一人だけパニックさせるのが論外と主張するからには代案を書きなさいよ
755デフォルトの名無しさん
垢版 |
2025/11/20(木) 20:59:55.94ID:3WAFNuDQ
>>730
Rustに投資するマネジメント層からすれば、
「想定可能なケースでpanicするな」「終了するなら理由を明らかにしろ」「終了した後のことを考えろ」
あたりだよなぁ。

panicなんてシステムが異常になるレベルで初めて使うことを考えるようなもの。
コーダーには触らせたくないから、SafeRustはpanic禁止でいいと思うわ。
2025/11/20(木) 21:09:11.15ID:vBNaAq/W
ワイも unwrap は論外と思うやで。
ロジック的に失敗があり得ないから失敗の場合のことは書くのを省略するというのが 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禁止言いたくなるわな。
2025/11/20(木) 21:39:21.39ID:lwx9Ifqo
>>754
パニックさせるのが正解などというバカのことを言ってるのは複オジ一人だけじゃん
自分の意見を複製してもなりすまし書き込みしてもみんなが言ってることにはならないよ
2025/11/20(木) 21:50:20.55ID:H4pjbMpd
これは普通にpanicで正解でしょ
メモリを固定ではなくfeatureファイルに合わせて動的アロケーションするようにしていれば即障害にはならなかっただろうけど、
それはunwrapの是非とかの次元の話じゃないし、複おじの頭はそこまで回らないだろう
2025/11/20(木) 21:50:58.54ID:ao6/JbGK
続行不可能なのだからどこかで必ずpanicすることになる
C言語ならexit(non-0)
Rustはもっと賢いpanicがありそれを使う
他に手はない
2025/11/20(木) 21:56:43.11ID:uDj2zLmM
続行可能なら上位へエラーを返せばいいんだよね
続行不可能なら上位へエラーを返すより即panicさせるのが正しいよ
その方がバックトレース的にも有利
762デフォルトの名無しさん
垢版 |
2025/11/20(木) 22:04:24.95ID:A4EEH+q2
続行可能/不可能はコーダーが判断することではないよ。ふつうにエラーを返せ。
2025/11/20(木) 22:09:40.31ID:uDj2zLmM
>>762
続行不可能なのにエラーを返してどうするの?
そこでpanicさせるしかないよ
2025/11/20(木) 22:18:59.74ID:H4pjbMpd
>>762
起動時に必要なデータなんだろうから、エラー返したところで上位でもどうしようもないでしょ
仮にエラーを無視してそのまま起動させたとして、不正な状態だからってリクエストを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:iIZE15hu
>>764
>起動時に必要なデータなんだろうから

そーなん?どこ情報?
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を返していることを意にも介さず、ハンドリングしないのは言語の思想にもとるかと
パニックの好悪ではなく、サービス要件、場面に対してミスマッチだと指摘されているのでは
2025/11/21(金) 02:41:53.57ID:7QFg1F5C
panic禁止派がいるからでしょ
結局プログラムを終了させるなら深いところでpanicさせることでバックトレース情報を最大化しましょう
773デフォルトの名無しさん
垢版 |
2025/11/21(金) 03:02:34.17ID:aQgyxReD
panic禁止派って、正常な関数だと辿りつかない状態になったらどうすんの?
anyhowとかでthis is bugとかって返すの?
2025/11/21(金) 03:12:36.25ID:BgHvS9/N
それを議論して何か自分のためになることがあると思うの?
775デフォルトの名無しさん
垢版 |
2025/11/21(金) 03:19:36.71ID:szwMnzU9
てかたまに思うんだけどエラー処理てif文でよくね?
2025/11/21(金) 04:06:05.39ID:bmEBh7Lw
>>771
Resultが返ってきた時にpanicさせることは立派なハンドリングだよ
例えば読み込み必須なデータファイルがopenできずにErrを返しプログラムが続行できないからpanicなど
2025/11/21(金) 06:09:46.10ID:pxhgH2KX
日本語翻訳があるんだから、少しは元記事に目を通せや。
https://blog.cloudflare.com/ja-jp/18-november-2025-outage/

cloudflareはエラーハンドリングに失敗して原因追求できずに大規模DDoS攻撃と誤認したんだろ。
このケースでpanicが正しかったとはとても思えない。
2025/11/21(金) 07:16:25.89ID:z62qyAHj
現場コーダー(ここでエラーハンドリングしたらそのぶんテストしなきゃいけないな。
でも今日は早めに帰って家でゲームしたいんだよね。うーん…怖いけどunwrapするか。
なーに、下っ端は仕様書の前提をただ信じればいいだけさ。これでよし、帰ろっと。)
53日後…ウェブが死んだ
779デフォルトの名無しさん
垢版 |
2025/11/21(金) 07:27:20.23ID:YVVnWYXM
>>773
「設計通りあれば辿り着きえない」なら assert や unreachable じゃないの?
expected でも良い
これは「どうエラーをハンドルするか」という問題ではなく「ソースコードの読み手に対し設計者の意図をどのように表明するか」という話な気もする
780デフォルトの名無しさん
垢版 |
2025/11/21(金) 07:46:53.00ID:5wtRNmya
https://doc.rust-jp.rs/book-ja/ch09-03-to-panic-or-not-to-panic.html
2025/11/21(金) 08:17:21.30ID:m9VdLfOa
>>777
後からは何とでも言えるが、開発時点でこういった失敗を想定して対処できたのか?って話
Googleも最近似たようなことやらかしてるんだからな
絶対に必要不可欠というわけでもなさそうな処理だが、かといって内部のパラメータさえ適切に設定されていれば無難に動くものなんだろうから、
こうした状況に対処するための設計上の強力なポリシー(おそらく今回のトラブルをきっかけに策定される)がない限り、
それが安易にクリティカルパスに組み込まれてしまうことは仕方ないように思える
逆にデフォルトのポリシーとしてフェイルソフトを優先するようなことをすれば、>>764の通りOptionalだらけのゆるふわ設計につながる
2025/11/21(金) 09:00:31.31ID:P6+MwwhU
>>781
>後からは何とでも言えるが、開発時点でこういった失敗を想定して対処できたのか?って話
むしろなんで想定できなかったのか不思議なくらいの稚拙な問題なんだが
2025/11/21(金) 09:04:46.72ID:XNdnsjIs
>>781
>逆にデフォルトのポリシーとしてフェイルソフトを優先するようなことをすれば、>>764の通りOptionalだらけのゆるふわ設計につながる
これも間違った考え方だな
「フェイルセーフ」の正しい理解と合わせて耐障害性設計の基本を学んだほうがいい
2025/11/21(金) 09:27:12.92ID:7pvsHy8Q
>>781
>後からは何とでも言えるが、開発時点でこういった失敗を想定して対処できたのか?って話

Result「・・・」
2025/11/21(金) 09:34:42.48ID:TUdbr/Fo
>>782
そう思うならさっさとそのクソブラック企業辞めてCloudflareかGoogleに転職したらどうだ
年収150万ドルは堅いぞ
2025/11/21(金) 09:52:08.85ID:aGwiM0lE
>>772
>結局プログラムを終了させるなら深いところでpanicさせることでバックトレース情報を最大化しましょう
Resultを上位に伝播させるのも面倒だし伝播させた後の対応も面倒だから雑にpanicで終了させましょうという話だな
こう考えるやつが少なからずいるようならRustを使う開発者の能力の問題だけでなくRust自身の問題ということになる
2025/11/21(金) 10:02:37.01ID:eVGGGIM3
想定可能なエラーでも続行不能ならpanicさせてバックトレース見ましょうみたいな運用がCloudflareの規模で成り立つわけないのにね

性能要件的にバックトレース無効にしてる可能性もある
2025/11/21(金) 10:16:37.50ID:z62qyAHj
とにかく全部ハンドリングしようぜ
あらゆるケースを想定するべきだ
2025/11/21(金) 10:30:47.14ID:aLBJCcru
設定に異常値が紛れ込んでもpanicで止めたくないならunwrapをunwrap_or_defaultあたりに替えとけばいいよ
とりあえず動く
2025/11/21(金) 11:56:46.17ID:x3e9+uyj
>>779
横からだがこの議題でpanicと呼ばれていることはpanic!を引き起こすassert!やunreachable!やexpectなどの総称でしょう
2025/11/21(金) 11:59:34.90ID:x3e9+uyj
>>789
それは最悪でしょ
異常値や情報不足のままプログラムが動作しないように止める役割がpanic
panicさせないプログラムは信用できない
2025/11/21(金) 12:10:50.33ID:Bq7cxlpS
今回のCloudflareの件で言うとあそこでpanicさせなかったら
事前に確保したより大きなメモリ確保しようとしてプロセスがランダムにkillされたり
より意味不明な事態になったかもね
793デフォルトの名無しさん
垢版 |
2025/11/21(金) 12:38:52.46ID:kvfum7jC
panic肯定派は色々と分かっていないなぁ。

「続行不能ならpanicさせて緊急停止させるべき」というなら、緊急停止させた後のことも考えて状況を制御しろ。panicさせた後のことは分からん、と言うのならpanicさせるな。
それすら思いつかない無能コーダーが大半なんだから、無能コーダー向けのsafe rustはpanic禁止すべき。
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.
2025/11/21(金) 13:18:58.19ID:x3e9+uyj
>>794
panicは必要不可欠なものだという話をしている
unwrapでpanicしろなんて話はしていない

>>794
Cliudflareの話はしていない
panic禁止すべき!と書き込む頭のおかしい人がいるから話をしている
2025/11/21(金) 13:22:16.60ID:aLBJCcru
>>791
上位でcatch_unwindはしてると思うけど延々と同じ異常値使ってpanic繰り返してた感じでしょ
自分もpanicで抜ける方が正しいと思うけどこれだけpanicに文句言う人が多いなら異常値無視して動かした方がよくね?
設定無視しても多少セキュリティに穴が開く程度だろうし
2025/11/21(金) 13:35:17.28ID:bQYXRKni
>>795
安価付けてレスをするならせめて当該のレスツリーくらい把握されては
こちらが指摘かました >>792 氏は明確に今回のCloudflareに言及している
したがって「panicの要否」ではなく、「panicの適否」に対するそれなわけであり
「unwrapでpanicしろなんて話はしていない」んじゃなくって、今回当該サービスにおいてそうした実装がされていたんだよ現実に
その上で「panic禁止すべき!と書き込む頭のおかしい人」への反論をしたいのであれば、くだんのCloudflare大規模障害を文脈に含むレスに安価かますのは筋違いかと
2025/11/21(金) 13:54:38.91ID:x3e9+uyj
すまんな
何らかのミスでアンカが1つずれてた
>>794でなく>>793へのレス
2025/11/21(金) 14:11:04.02ID:bQYXRKni
おーらい
2025/11/21(金) 14:57:18.03ID:fa/ssAob
unwrapがあったらリリースビルドが失敗するようにしてほしいよね
801デフォルトの名無しさん
垢版 |
2025/11/21(金) 15:31:33.26ID:xINfobxx
rustのdrop traitってメモリー解放前の前処理を記述する場所で
dorpはメモリーを開放するというのは違うよね
2025/11/21(金) 15:53:54.77ID:G3R9bFuG
drop は明示的に呼出し (いわゆる早期 drop) てもそれ自体がメモリを解放するとは限らないが、言語機能と融合している特別なトレイトなのでメモリの解放のタイミングに影響を与えることはありうる。
2025/11/21(金) 23:25:47.85ID:auLVIhoC
redditからの借り物
https://i.imgur.com/oEZoQJd.png
2025/11/21(金) 23:56:05.84ID:kB1g97LF
そんなもんだ
過去を引きずる案件以外でC++を使う人は消えていく
2025/11/22(土) 00:16:12.45ID:Z+ns1hWs
こんなもん完成に用途によるだろ
実際にそれ系本場の組み込みとかでの普及率こそ指標とするべきではないの?
2025/11/22(土) 00:17:49.35ID:Z+ns1hWs
❌完成に
⭕完全に
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.
2025/11/22(土) 01:07:20.55ID:iexvlmA9
>>789
>設定に異常値が紛れ込んでもpanicで止めたくない
入力値と設定そのものを混同してるよね?
設定に反映させるために読み込んだ入力値が必須条件を満たしてないだけであってアプリの振る舞いを左右する設定自体に異常値が紛れ込んでいるわけではないよ
809デフォルトの名無しさん
垢版 |
2025/11/22(土) 05:50:44.36ID:6IzbV+e7
クラウドフレアでのやらかしでrustも失墜だね
2025/11/22(土) 05:58:51.95ID:CapHAAXn
遅くて安全じゃないって最悪じゃん
811デフォルトの名無しさん
垢版 |
2025/11/22(土) 07:02:46.20ID:Hhj8j98Q
>>795
>793への返信かね。
panicは大多数のコーダーには不要で有害だという話をしている。
unwrapでpanicするようなコーダーには触れないようにしろという話だよ。
2025/11/22(土) 07:04:22.51ID:IiIf7f1d
>>809
安全性が示されただろ
どこに危険な問題があったんだ?
813デフォルトの名無しさん
垢版 |
2025/11/22(土) 08:36:23.79ID:TcBJjde/
>>811
Mutex使用禁止ということか
2025/11/22(土) 08:57:51.52ID:m6/1q0Jm
>>812
安全性が反面、可用性とはトレードオフであることも示されたのかと
サービスの性格を正確に理解しないまま、言語の持つ安全性を盲信することは容易に問題となりうることも
2025/11/22(土) 10:11:24.12ID:YjCm7wO7
>>813
それは皮肉でもなんでもなくて、Mutexのlock().unwrap()は実際panicするからpanic厳禁派なら絶対NGよ
matchでlockの結果をチェックしないとダメ
2025/11/22(土) 11:09:17.53ID:2DsIii2D
Rustのunwrap()というのはそもそも前提が壊れたらpanicするイディオムであるので、
もしpanic厳禁派を標榜するならケースバイケースで使っていいものではなく絶対にソースコード上に登場させてはならない
2025/11/22(土) 12:33:52.35ID:TG+W7F+c
unwrapの使い方なんてrustユーザー側の設計思想やリスク管理に依るものであって、結局は開発組織の質の問題よ
2025/11/22(土) 12:59:01.17ID:W9tILc9J
unwrapの間違った使い方をしたり間違った使い方を正しいと思い込んでる人がこれだけいるんだから開発組織の質の問題として片付けられないよ

Rustの構造的な問題と言っていい
2025/11/22(土) 13:01:14.64ID:GfzAj2LS
>>814
安全性と可用性は両立ができる
両立が不可能なことは例えば分断時の可用性と一貫性など
2025/11/22(土) 13:03:18.34ID:GfzAj2LS
>>818
unwrap自体に間違った使い方なんてものはないよ
常に安全に用いることができる
2025/11/22(土) 13:34:45.55ID:m6/1q0Jm
>>819
>両立ができる

「言語の持つ安全性を盲信することは容易に問題となりうること」を理解した上でそれらをどこまで両立させるかの見極めこそが、まさに設計の要では
両者がトレードオフであることを意識してこそ妥協点が見えるわけであり
でなくばいずれは一方が他方の隘路になるのかと
際限のない両立などに再現性はあるまいて
2025/11/22(土) 14:08:27.01ID:HvD57uvC
unwrapとかシンプルすぎて誤用の余地ないだろ
2025/11/22(土) 14:16:46.80ID:iWDV6POw
unwrapは未定義動作を生じないという意味においては安全
その結果として自動運転車が人混みに突っ込んだり原子炉がメルトダウンしたりしないことを保証するものではない
2025/11/22(土) 14:55:39.41ID:W1QChhvL
分かってない人が多いけど、unwrap_or_default で安全サイドなデフォルト値で動かせば絶対に問題なんて起きないんだが
そのための設計だし初期値で動かないとしたらそもそも設計ミス
単にunwrap使ってそのままというのはダメ。世の中急に止めたら復旧大変なシステムとかもあるんでね
2025/11/22(土) 15:08:23.48ID:H7KzHlst
ResultやOptionを返す関数を使用する前にそれがエラーやNoneになるようなケースがチェック済みで、改めて不要なエラー処理を書くのが面倒な時くらいかな、 unwrap を使うのは
2025/11/22(土) 15:29:04.79ID:udVmyb6K
>>824
Mutexでunwrap_or_defaultを使う状況は俺にはちょっと思いつかないな
2025/11/22(土) 16:34:26.43ID:MIiCzofv
>>822
これ見て久しぶりに思い出した
設計と実装の食い違いがあったら「この実装なら設計意図はこうであったはずだ、よって実装は正しい」とか言い出すような奴だった
そりゃあ誤用だなんて認められるわけないし話が通じるはずもないわな
2025/11/22(土) 16:52:31.93ID:j8/gV38c
安全性を考えれば#[no_panic]的なものがあったほうがいいのは間違いない
だがRustで実現するのはもう不可能だろうから次の言語に期待する
2025/11/22(土) 18:45:43.86ID:xjdWzo5J
パニックにならずに落ち着いて死ぬような言語がほしいよな
2025/11/22(土) 19:04:52.97ID:JQXO3OU6
unwrapを禁止するようなコーディング規約ないの?
2025/11/22(土) 19:42:01.39ID:4rTcW/kk
unwrap()は必ずチェックをしてくれるsafeな関数
unwrap_unchecked()がチェックをしないunsafeな関数
後者はチェックが不要であることを人間が保証する形で用いる
2025/11/22(土) 20:40:38.59ID:HvD57uvC
unwrap禁止の次はassertとかunreachableも禁止とか言い出しそうだな

let value = match opt_value {
Some(value) => value,
None => unreachable!(),
};
2025/11/22(土) 21:12:35.60ID:vyXuY/G9
不定値や未定値や異常値のままプログラムが進まないように
プログラムを安全に停止させるために確実にチェックしてくれるunwrap()がある
これを危険扱いする人がいるとは呆れる
2025/11/22(土) 22:13:14.17ID:uzDjtnGz
相手にされない三連休に三連投 by 複おじ
2025/11/22(土) 23:23:19.76ID:IVuDBUhf
>>824
頭おかしい
そんなデタラメなプログラミングするやつがいたらクビ
エラー時は上へ上げるかpanicのどちらか
2025/11/23(日) 03:30:04.39ID:Ff/3hvXU
>>835
そんなデタラメなプログラミングとは?

エラーを上へ上げた後どうするの?
panicさせた後どうするの?
2025/11/23(日) 04:50:26.53ID:BHgpzqsU
Rustとしてvalidであるかどうか以外興味がないので知りません
2025/11/23(日) 05:34:23.83ID:PnhKXlJE
> Rustに関してどう思ってますか?
> 正直C++から逃げた人たちが使ってる言語ってイメージですね
2025/11/23(日) 07:29:25.08ID:GChC/JkO
?でエラーを上に投げて最上部でunwrapしたときにパニックして途中のスタックトレース取れないんだけどどうしたらええの?
2025/11/23(日) 09:48:44.88ID:YVm57Y35
unwrap は実質的に assert だよ。
ロジック的に失敗するはずがないのに失敗したならその場でパニックさせるべき。
そしてプログラムを修正すべき。

巨大なシステムを突然死させるわけにいかないような場合にどうしても継続するなら最後までなんとかハンドリングしろ。
中途半端に上まで上げてから unwrap とかクソみたいなことをしたらもうどうしようもない。
2025/11/23(日) 10:01:30.46ID:tHBK63qU
いやいやいや
ヤベェやつしかいねーな
2025/11/23(日) 10:07:23.20ID:FUNf3ZwY
外部リソースをオープンしていたら、終了時にできる限りクローズさせるべきで、
エラーを上に上げるというのはクローズ処理までエラーを届かせるということ

panicさせる前にクローズ処理を呼び出すでもいいけど、大抵はクローズ処理を行うポイントは決まっていて、内部ロジックのあちこちで呼び出していいなんてことにはなっていないから、そのポイントまでエラーを届けることが必要になる

外部リソースへのアクセスがないロジックだけのプログラムなら、別にいきなりpanicで落としても問題なくて
あとはデバッグのしやすさのために、どうエラーメッセージを出すかだけの話になる
2025/11/23(日) 10:21:09.71ID:n/KY4xZ8
とんでもないプログラマーしかいないなこのスレ
システムは何があっても止めちゃダメなんだよ、不具合があるのは多くの場合は外部とのインターフェースなんだが、いちいち外部からのリクエストの不整合で止めたりしたら客先から鬼電来るの知らんのか?

とりあえず、デフォルト値でもいいから動き続けて様子を見てもらいつつ、その間に詳細な調査をするっていう帳尻合わせや時間稼ぎがないとフィールドのエンジニアからガンガンに怒られるよ

エラーの伝播はそりゃやりゃできればいいが、ログに痕跡残すだけでいいじゃろ。工夫しろ、規模が大きくなればなるほど確率的に何か障害は起きやすくなるけど全部バグを直さなくてもそれなりに動くシステムが健全なシステムだぞ
2025/11/23(日) 10:24:31.62ID:W+o2V/Ez
意図を明示するなら unwrap は是
意図を隠蔽するなら unwrap は非
2025/11/23(日) 10:33:12.45ID:FUNf3ZwY
>>843
障害の内容とシステム構成によるよ
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.
2025/11/23(日) 11:13:39.06ID:FdXSQ6Mu
Cloudflareとかだとabortにしてると思うんだよな
2025/11/23(日) 11:21:43.98ID:FdXSQ6Mu
>>842
>外部リソースへのアクセスがないロジックだけのプログラムなら、別にいきなりpanicで落としても問題なくて
>あとはデバッグのしやすさのために、どうエラーメッセージを出すかだけの話になる
自分しか使わない趣味のプログラムならそれでいいけど
それ以外のプログラムでそんな雑なpanicしたらダメだよ
2025/11/23(日) 11:36:16.03ID:Up/nW61P
>>848
これな、プログラマー気取ってるけど要件定義すら怪しい人しかいないよここ
Rust以前の問題かもな。ム板なのに
2025/11/23(日) 11:38:31.64ID:FUNf3ZwY
>>848
そうですか、ではなぜダメなのかをご教授ください
2025/11/23(日) 12:17:14.82ID:BHgpzqsU
雑魚のくせにテキトーなこと書いて複おじを調子づかせないでよ〜
2025/11/23(日) 12:36:29.44ID:FdXSQ6Mu
>>850
なぜダメなのかはCloudflareの障害事例を見たらわかるでしょ

原則としてpanicを発生させるコードが許されるのは
サービスを停止してでもプログラムコードのバグ修正が必要な状況のみ
2025/11/23(日) 12:46:55.64ID:S9L/cvUF
対象コードのレビュー履歴を見てみたい
「なんか雑な気もするけどまあいいか」的なやり取りがあったりしたのかも

同様に件のファイルサイズ上限値の妥当性についても
2025/11/23(日) 12:54:45.11ID:W+o2V/Ez
旧アーキからエイヤとコピーした際に意図なく混入しただけなオチ
2025/11/23(日) 13:02:01.49ID:W+o2V/Ez
現に旧アーキ側ではくだんの障害によるクラッシュなどはしておらず
ただし、すべてのトラフィックに対しボット判定かましてしまい、正規のアクセスまでもがブロックされてしまったわけだが
2025/11/23(日) 13:33:21.85ID:9zNPJk7D
問題なく動いてるフリさせといて異動でバイバイが有能だよ
2025/11/23(日) 13:36:27.63ID:V3sZ/SAP
>>843
>>とりあえず、デフォルト値でもいいから動き続けて

そんな酷いシステムはない
まずほとんどの場合にデフォルト値は存続しない
858デフォルトの名無しさん
垢版 |
2025/11/23(日) 13:39:21.27ID:4nuItE/E
誰か>793にまともな反論できんのかな。

panicはプログラム緊急停止という重大な結果をもたらすから、緊急停止した後のことを制御できないなら使うべきじゃない。
このスレみたいに、それすら思いつかない無能コーダーが多いんだから、Safe Rustはpanic禁止すべき。
2025/11/23(日) 13:55:54.10ID:Mgu/JJm0
>>858
キチガイだな
誰も賛同しない相手にされない
その意見が通ることはない
2025/11/23(日) 14:14:22.85ID:FUNf3ZwY
>>852
Cloudflare って
>外部リソースへのアクセスがないロジックだけのプログラム
なの?
2025/11/23(日) 15:06:02.14ID:um5S+wK/
んなわけない
>外部リソースへのアクセスがないロジックだけのプログラム
そんなものは存在しないというか、作ることは可能だが実用上存在意義がない
2025/11/23(日) 15:11:25.84ID:DNsCraN8
>>860
>>842で君が書いてるのはpanicを発生させる時に外部リソースをオープン中で
クローズ処理などのリソース開放処理が必要な状態のプログラムという意味じゃないの?

そういう意味じゃないとすると外部入出力が一切ないプログラムなんて存在しないから
君の主張する「いきなりpanicで落としても問題ない」プログラムは存在しえないことになる
2025/11/23(日) 15:17:59.59ID:DNsCraN8
>>858
panic禁止は現実的に無理なんだけどunwrapの使用はclippyでかなり制限できるみたい
特に#![forbid(unwrap_in_result)]は使ったほうがいい気がしてきた
2025/11/23(日) 15:21:17.45ID:DNsCraN8
正しくは #![deny(unwrap_in_result)]だった
2025/11/23(日) 15:22:45.23ID:FUNf3ZwY
>>862
うん、そういう意味。
2025/11/23(日) 16:12:59.81ID:DNsCraN8
>>865
そういう意味ならCloudflareのは外部リソースへのアクセスがないロジックだけのプログラムと言える

でも外部リソースの後片付けをした後ならpanicしていいわけじゃないからpanicが許される状況かどうかの判断基準としては適切じゃないよ
2025/11/23(日) 16:53:37.55ID:FUNf3ZwY
>>866
> 外部リソースの後片付けをした後なら

ええと、話の前提として、プログラムやサービスをこのまま動作させることが適当でないエラーが発生した状況で、というのがあると思うんだが

今ここで話をしているのは、プログラムやサービスをこのまま動作させることが適当でないエラーが発生しうる箇所で、意図的に unwrapやpanicを使って終了させて良いか、そうでなくてエラーを上に上げるべきという意見が出たけどそれはどういうことか、という話だと思っていたんだけど違うのかな

それで >>842 で、外部リソースをオープン中ならその場で即終了するのはダメでクローズする必要がある、そのためにエラーを上に上げるべきで、そうでないならそこで終了しても問題ない、と答えたんだけど、それ以外にどんなケースや判断基準があるだろうか
2025/11/23(日) 16:56:29.82ID:VRvQaZYz
いやTCPのコネクションを開いてるでしょ
2025/11/23(日) 17:24:25.83ID:PnhKXlJE
Cloudflareの件で今回やるべきだったのは、パニックする前に監視システム向けに
最高の重要度でログだかイベントだかを送ることでしょ
2025/11/23(日) 17:51:52.37ID:W+o2V/Ez
>Enabling more global kill switches for features
>An outage like today is unacceptable.

当該サービスに限るなら公式が既に上記の見解を示しているかと
同様の障害時には「(ボット管理)機能を無効化する」が彼らの構え
つまり「安全に停止(パニック)する」よりも「可用性を優先すべき」がネットワークインフラを提供する立場としてのあるべき姿と見たわけだ
2025/11/23(日) 17:54:30.97ID:n/KY4xZ8
>>870
こういう設計仕様決めれる人カッコいいわ
社内でも散々揉めたんだろうけどね
2025/11/23(日) 18:19:01.62ID:IuEnIF/H
うーん、別にボット管理だけが特別に落ちやすいってわけでもないだろうに、後知恵対策の感が否めないなあ
実際にその通りやるかはともかく、世間に納得されやすそうな分かりやすい対策案を記載したんだろ
根本的な問題は誤ったパラメータファイルをロールバックできる仕組みがなかったことで、
そこを何とかしない限り今後何でもかんでもフェールソフト設計にしなきゃいけなくなりそう
2025/11/23(日) 19:14:51.30ID:76/k8vRg
>>870
限るならからあるべき姿まで語り出すのは飛躍
今回のは(可用性向上するための)ボット対策が悪さするなら止める方がマシなだけ

機密性やら完全性やら欠いても動かすかどうかは別問題
あるべき姿として可用性優先してるのではない
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.
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

しかしあの規模の、世界的なインフラ最大手がまさかの現場猫案件かますとは
後知恵バイアスと言われてしまえばそれまでなのだが、それにしてもな感はある
876デフォルトの名無しさん
垢版 |
2025/11/23(日) 20:20:59.87ID:hAxz+HBT
Cargoの管理ファイルがウザイな。
lib.rsまでは良しとしてmod.rsまで必要かえ?
PlatformIOのように全体一発でモジュールとクレート管理できんもんかね?
2025/11/23(日) 20:57:42.13ID:6RGNEouq
Rustのモジュール設計ってPythonのパクり?
2025/11/23(日) 23:28:58.23ID:rr5Ei7G8
>>867
前提の認識は合ってる

判断基準は>>852に書いたように「プログラムやサービスをこのまま動作させることが適当でないエラーが発生した状況」がプログラムコードのバグに起因する(としか考えられない)状況ならpanicが選択肢になる

プログラムコードのバグ以外に起因する状況ならpanicは選択肢にならない
エラーハンドリングをしてプログラムやスレッドの処理を終わらせる
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させるな」と要求するわな。
882デフォルトの名無しさん
垢版 |
2025/11/24(月) 10:00:06.15ID:JEY6AAvW
>>881
あのな、言いたい事は分かるし、プログラマはシステムが止まらないよう最大限の努力しろというのはその通りだが、超新星爆発や太陽フレアやコーヒーが零れるのは止められないからな。それを念頭に運用は速やかにシステムを復旧出来るようにしとけよ。それが出来ずにプログラムやプログラマを非難するだけの運用なら無能というはなし。
2025/11/24(月) 10:32:10.42ID:NcJaUoGt
>>876
いらんからmod.rsは非推奨になったのでは
ディレクトリと同名ファイルで管理するようになって
Facadeパターンとして使いやすくなった
884デフォルトの名無しさん
垢版 |
2025/11/24(月) 10:45:36.91ID:ToUcbaMD
>>882
なんのために制約キツくてコーティング面倒臭いRustを使っているのか、という話だわな。

Rustを採用するマネジメント層からすれば、トラブルの無い安定運用がRustに期待するところであって、Cloudflareみたいなサービス停止トラブルはあってはならない悪夢でしかない。その原因が無能コーダーが不用意に突っ込んだunwrapなんだから、管理側が「SafeRustではpanic禁止にしたい」と考えるのは当然じゃないんかね。
2025/11/24(月) 10:54:15.58ID:6bKOYnAL
>>881
>「panicは最小限度にしろ」「panicが発生するコードは全て明記して管理しろ」「管理できなければpanicさせるな」
クリティカルなサービスなら当然の要求な気がする
障害につながらない仕組みが用意されてるpanicと即障害になるpanicは扱いが違うだろうけど管理は必要
ポストモータムにある対策の4番目に該当する

>>882
最大限の努力をしないと無効な入力値が渡されただけでサービス全体が停止するシステムを作ってしまうようなら無能と言われても仕方ない
2025/11/24(月) 11:23:49.40ID:3cdeWV/q
>>883
ファイル名と配置のルールが変わっただけだぞ
エディタのクイックオープン機能なんかで同名ファイルが大量に並ぶのは見づらいというしょーもない理由
887デフォルトの名無しさん
垢版 |
2025/11/24(月) 12:50:03.58ID:fg7M9od0
>>883
非推奨化はしてないと思うが
インテグレーションテストから共有されるモジュールなんかは mod.rs 方式しか使えなかったりするし
2025/11/24(月) 12:51:36.71ID:OH3b+FiZ
Rustが保証するのはメモリ安全であって、それ以上の機能を言語自体に期待してはいけないね
2025/11/24(月) 13:52:56.65ID:wHdQFDSx
3年かけて数多のスレを潰してようやく分かったか?
2025/11/24(月) 15:25:42.29ID:xtd+oazR
今後Rustは使用必須のスタートラインに過ぎないからな
2025/11/24(月) 17:08:28.30ID:Ya054j8a
Rustの次の言語に期待
2025/11/24(月) 17:14:22.69ID:eqWikkbY
実際、Rust以降ってこれといった言語出てなくない?
2025/11/24(月) 17:19:31.65ID:mGEasdrD
Rustより安全性の高い言語でないと企業が採用しない
Rustのような書きやすさと両立したプログラミング言語は出現しそうにない
2025/11/24(月) 17:45:09.92ID:kI+d7siV
メモリの安全性だけでなくnull safetyやmatchのexhaustivenessなど堅牢なソフトウェアを作るための機能が言語に備わっている

にもかかわらずそれらバイパスする間違ったunwrapやpanicの使い方を「正しい」と思い込んでる人たちを少なからず作り出しているということと、その誤った使い方を構造的に防止する方法がないということがソフトウェアの安全性に対するRustの問題点
895デフォルトの名無しさん
垢版 |
2025/11/24(月) 18:01:28.20ID:p5vlTQW+
unsafeの中以外は⊂(^ω^)⊃ セフセフ!!
2025/11/24(月) 18:21:57.08ID:eehF78R0
>>894
理解できていないのは君だろ
null safetyは必ずnullチェックがなされることを指す
unwrapは必ずnullチェックをする安全な方法
安全でないのはnullチェックをしないunwrap_unchecked()
2025/11/24(月) 18:37:03.11ID:rjCnBMS+
>>896
つまり他言語でも

*nullptr = 123;

で「終了」すればnull safetyだとの主張ですな
2025/11/24(月) 18:43:35.39ID:t2YHlRQh
>>892
Zigがあるじゃん
2025/11/24(月) 18:48:01.50ID:eehF78R0
>>897
それはnullチェックをしていないため安全でない
unwrapは必ずnullチェックをする安全な方法
2025/11/24(月) 18:53:21.46ID:fgR96Ue8
>>898
何年前に出て、現在どれだけ使われてるの?
2025/11/24(月) 19:30:54.35ID:t2YHlRQh
>>900
JavaScriptランタイムのBun
あと、SUSEがZigでSSHの再実装するらしい
2025/11/24(月) 19:58:53.90ID:0956DWdq
>>901
聞いたのは個別具体な事例ではなく、どれだけ使われているか、つまり普及のいかんについてであるのと、あと出た時期Rustと変わんなくない?
903デフォルトの名無しさん
垢版 |
2025/11/24(月) 21:00:06.05ID:/4tPGgp6
Crate.ioには、std::fmt::Debugをインプリしていないクレートが一杯あるんやね。
UartDriverだけかと思いきや、結構ある。
Wrapper作ってのインプリ作業がマンドクセ。
でないと、クレート、モジュールの外部変数Mutex.setもできん。
いろいろ手間のかかる言語だ。
2025/11/24(月) 21:14:00.28ID:P1qKutdV
ラップして Debug を実装するだけならマクロでかなり自動化できると思う。
というかそういうクレートはありそう。 知らんけど。
2025/11/24(月) 22:02:41.96ID:BE69Oim8
>>896
言語に機能は備わっているけど誤った使い方でそれを活用できていない人たちがいるという話に対して「unwrapは必ずnullチェックをする」という言語に備わった機能を紹介しても意味ないでしょ

ちなみにnull safetyは必ずnullチェックがなされることを指すわけではないよ
null safetyを実現するための一手段ではあるけれどね
2025/11/24(月) 22:03:30.71ID:Ucl2n3b7
>>903
これまで誰も困っていないのならば
あなたがおかしい可能性を疑ってみてはいかが
2025/11/24(月) 22:07:33.53ID:qMEdPPRT
>>905
その件は一方的な特定の価値観によって「誤った使い方」と断言してる人がおかしい
まずケースバイケースであり更に同じケースでも価値観の相違がある話なので技術的な話ではない
2025/11/24(月) 22:25:07.64ID:BE69Oim8
>>907
ケースバイケースなのは当然の話なんだがunwrapの誤った使い方によって大障害につながったCloudflareのケースを念頭に話をしてるわけで

あれが「誤った使い方」と断言できない人がこんなスレだけで複数いることがRustの抱えてる問題
2025/11/24(月) 22:28:17.91ID:qMEdPPRT
>>908
本気で言ってるなら正気を疑う
まず思い込みの前提から解放されよう
910デフォルトの名無しさん
垢版 |
2025/11/24(月) 22:31:40.94ID:fg7M9od0
>>906
Rust API Guidelines でもパブリックな型にはDebugトレイトを実装することを推奨してるけど
https://rust-lang.github.io/api-guidelines/debuggability.html
2025/11/24(月) 22:32:27.20ID:vfRWkEzS
>>908
その無理矢理な「Rustの抱えている問題」との書き込みからアンチらしき人にみえます
2025/11/24(月) 22:41:07.93ID:pZ21ptJQ
「所有権の複製」の人って
その発言の前はそもそもクソコードいっぱいこのスレに書いてた人よな?
あの人よくunwrap書いてたような記憶あるけど記憶違いかな
2025/11/24(月) 23:02:06.99ID:A7gFxydS
unwrap使わない人はassertも使わないのかな
条件が破れた時にpanicの発生源になるし
2025/11/25(火) 00:13:09.71ID:8A3kV+Bq
除算は常にchecked_div使ってそう
2025/11/25(火) 00:17:03.45ID:x+ek8sa9
物事を点でしかとらえられない知的障害者が大勢いるのがよくわかってかなしい
早くAIに置換したい
2025/11/25(火) 00:21:51.64ID:GjnKMvo7
0か100か思考の例
2025/11/25(火) 01:08:59.76ID:0646GGZx
>>909
Cloudflareのunwrapの使い方が誤った使い方でないと思ってるならそう思う根拠を述べて反論できないの?
レスを投稿する

レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況