Rust part33

レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん
垢版 |
2025/08/15(金) 17:49:30.70ID:N8TIzbWg
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

公式ドキュメント
https://www.rust-lang.org/learn

Web上の実行環境
https://play.rust-lang.org

※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/

※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust

※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/

※次スレは原則>>980が立てること

前スレ
Rust part32
https://mevius.5ch.net/test/read.cgi/tech/1755057787/
Rust part31 https://mevius.5ch.net/test/read.cgi/tech/1751545806/
Rust part30 https://mevius.5ch.net/test/read.cgi/tech/1748392296/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
2デフォルトの名無しさん
垢版 |
2025/08/15(金) 17:59:47.23ID:N8TIzbWg
5ch電源断とその際のバグにより
各板の現役スレ一部がタイミングの運で失われた模様
Rustはpart31とpart32両方が現役の状況であった
3デフォルトの名無しさん
垢版 |
2025/08/15(金) 20:39:09.07ID:55NQaS0p
5chのシステムっていまだにperlとかなんだっけ?
4デフォルトの名無しさん
垢版 |
2025/08/15(金) 21:05:50.57ID:JdtfTdo0
誰かRustで5chクローン作ってくれろ
2025/08/15(金) 21:13:27.00ID:GcewhsmR
>>2
どういうバグ?
2025/08/15(金) 21:42:40.40ID:5gemkVLD
昔から活発な板でdat一覧ファイル壊れたりロストするから排他制御や落ちた時の途中状態からのリカバリとかザルなのかもね
2025/08/15(金) 21:48:40.45ID:XX86qaZt
Rustじゃ20年ぐらい掛かりそう
2025/08/15(金) 22:05:07.21ID:y6bONxHy
2ch初期からあるread.cgiとpostの読み書き基本掲示板機能部分だけなら1日で終わるけど
後から追加した外から見えない部分が絡み合って規模も読めないね
9デフォルトの名無しさん
垢版 |
2025/08/15(金) 22:49:05.86ID:bbOcnQZV
難読よいしょw部
難読宝田真月部
難読オランザピン部
難読肉壺ワッショイ部
難読自己中部
難読承認欲求部
難読ゴキブリ部
難読助かりました部
難読宇宙人部
難読でんちゃでんちゃでんちゃちゃっちゃっちゃ〜部
難読カービィ部
難読失敗作部
難読ADHD部
難読自開部
難読多動部
難読在日部
難読糖質部
難読人非人部
難読生まれも育ちもやまゆり園部
難読何ガン飛ばしてんだよオイ!!部
難読池沼部
難読トナラー部
難読表出ろこの野郎!部
難読マウント部
難読ホンモノ部
難読害悪部
難読ガガイのガイ部
難読syamu未満部
難読底辺部
難読インチュニ部
2025/08/15(金) 23:02:17.30ID:DXpoUqnv
山下スクリプト回りの対策で、エラーが出た時にそれが何故出てるエラーなのかすら
今の5chはもはやアンドキュメントだからな
2025/08/15(金) 23:41:07.28ID:GcewhsmR
電源落ちたからって前スレまで消えるのは常識的には考えられない動きだけど5chはそういうものなんだな
12デフォルトの名無しさん
垢版 |
2025/08/16(土) 00:28:31.64ID:yx9F5+UN
難読漢字部
ガイジの集まり
くたばれよ

みんなもポケモンゲットじゃぞ
2025/08/16(土) 00:33:34.28ID:35qrMgqn
>>11
前スレのpart30は過去ログ倉庫へ移動されていたため無事だよ
part31は1000になっただけで過去スレへと隠れてなくて見えたままだったのが不運
2025/08/16(土) 11:34:10.89ID:27T353mi
チューリップの中で再現性のない部分だけ消えなさい
バブルは消えた
15デフォルトの名無しさん
垢版 |
2025/08/16(土) 15:07:42.32ID:uzsALVJv
難読ロリコン部
難読僕のスマホ返せぇぇぇ!!部
難読とど田とどら部
難読ちぎゅ田ちぎゅら部
難読チーズホビー部
難読お薬手帳部
難読底辺部
難読積極奇異型アスペ部
難読電子障害者手帳部
難読自開部
難読穢多非人部
難読バ漢字部
難読ウィィィィィィィィッス部
難読チギュァァァァァァァァァァァァ部
難読動物園部
難読おかしな奴しかいないんだけど部
難読助かりました部
難読舌打ち部
難読類友部
難読ガイジ(ゲェジ)部
難読スタバ陽キャきっしょ部
難読僕も!僕も気持ちいいことしたい!!部
難読自己中部
難読Fラン大学中退部
難読トナラー部
難読スペシャルオリンピックス部
難読ひまわり学級部
難読ゴミ部
難読弱者男性部
難読アホロライ部
2025/08/16(土) 17:15:18.32ID:2ZRl/XaI
Check Pointが見つけたと言ってるRust製のWindowsカーネルコンポーネントの脆弱性ってどのCVEか分かる人いない?
https://blog.checkpoint.com/research/microsoft-vulnerabilities-exposed-by-check-point-research/
https://msrc.microsoft.com/update-guide/vulnerability
17デフォルトの名無しさん
垢版 |
2025/08/16(土) 22:23:23.06ID:uzsALVJv
難読DSM部
難読さす障部
難読さすガイ部
難読動物園部
難読トナラー部
難読よいしょw部
難読ホンモノ部
難読頓服部
難読でんちゃでんちゃでんちゃちゃっちゃっちゃ〜部
難読マスターベーション部
難読マウント部
難読ウィィィィィィィィッス部
難読syamu未満部
難読スマホ脳部
難読多動部
難読害悪部
難読電車(バス)代割引部
難読エッホエッホ部
難読てんかん部
難読ディズニー格安部
難読フレンド申請部
難読すいません、3種のチーズ牛丼特盛りに温玉付きでお願いします部
難読水用意しろ水。イライラするわぁ部
難読おかしな奴しかいないんだけど部
難読デスマフィン部
難読コンサータ部
難読ガイジ(ゲェジ)部
難読オランザピン部
2025/08/17(日) 20:15:25.86ID:JE2V7bGm
Windows更新プログラムバグの温床Rust
馬鹿コーダを無理やり矯正したとこで馬鹿が治る筈もなく
2025/08/17(日) 21:19:09.68ID:TxHGfZIC
バグを無くせるプログラミング言語は存在しない
Rustはプログラミング言語の中では最も様々な安全性を保証してくれる
それ以上でもそれ以下でもない
2025/08/17(日) 21:22:39.79ID:JE2V7bGm
わかってねぇな
それじゃホンモノは育たないことを
2025/08/17(日) 22:50:15.00ID:XH7kxkHq
Rustは生き物ですらない
育児もディールもしない
2025/08/18(月) 07:58:05.46ID:WV63/BRN
RustってIT土方専用言語になりそう
2025/08/18(月) 08:11:30.19ID:ilCqlqaZ
GCC Rustはだいぶ前にメインラインにマージされたみたいだけど
クロス対応ってどこまで進んでいるんだ?
LLVMバックエンドがないマイコン系ISAもRustで開発できる感じ?
2025/08/18(月) 21:19:44.54ID:xACiQreQ
Rustは衰退しました。
2025/08/18(月) 21:46:08.37ID:dnUOS2YV
その書き込みもRust製のPingoraを通って投稿されてRust製のPingoraを通って皆が読んでるよ
2025/08/18(月) 22:00:15.90ID:lyr3W+Wr
横長のGUIが衰退したら次は縦長のGUIが再発明されたりする
じゃあ再発明しても変化しない仕様はなんだ
0で割り算できない仕様とか
2025/08/19(火) 19:22:34.36ID:XX3oox1B
COBOLみたいに固定長レコードを基本として基本的に動的アロケーションをしない方向のモダンな言語もあっていいと思う
Rustを待たずとも、あれはあれでメモリ安全の究極の形の一つ
2025/08/23(土) 19:14:03.74ID:K0SmVlfv
>複数の値 (いわゆる多値) を関数が返せる言語はそれほど多くない。
>LISP 系は多値のサポートがあることが多いけどそれ以外だと Go くらいじゃないかな?

Rustの()は値0個で(a,b,c)は値3個の多値
という認識で合ってますか?
2025/08/23(土) 19:50:48.28ID:CHT0FIec
>>28
いいえ。
多値ではなくタプルです。
2025/08/23(土) 21:56:54.53ID:cDLDYI8A
夏のオージ演
2025/08/23(土) 22:15:56.19ID:vghJtGax
多値の取り扱いの仕方の一つがタプル
そしてRust公式にも Functions can use tuples to return multiple values. と明記されている
>>28の引用文についてRustは関数で多値を返すことができる言語の一つ
2025/08/23(土) 22:45:01.43ID:b43T5BM2
Rustのタプルは多値で合っているが、言語によってはタプルというオブジェクト[のポインタ]を1つ返す場合もある。
そのような言語ではタプル≠多値で、Rustではタプル=多値。
Rustで関数がタプルを返す時に、各環境で可能なら複数のレジスタを使って返し、レジスタ返しの数を超えていれば、例えば呼び出し元スタックフレームの指定領域に直接書き込んで返す。
したがってRustは多値返しをサポートする言語。
2025/08/24(日) 06:23:07.67ID:yIg8YRK3
分野によって用語の意味にブレがあるからそういうのを厳密に考えてもあんまり意味ない。
狭義の多値は継続 (continuation) に複数の値が渡ることをいうのでたぶん >>28 はその意味で言ってて、その意味ではタプルは多値ではない。
単なる言語ユーザの目線ではタプルにまとめて受け渡すことと複数の値を受け渡すことには何も違いはないから同一視しても何も困らないよ。
形式論理とかの世界の話。
2025/08/24(日) 06:51:31.37ID:Q1fxgDlW
重要なことはオーバーヘッドの有無
タプルをオブジェクトの一種として扱う言語はオブジェクトを用意してそのアドレス単値のみを渡すため間接アクセスのオーバーヘッドが生じる
タプルを多値として扱うRustは多値として渡せるためオーバーヘッドが生じない
もちろんRustではタプルをBoxに入れることでアドレス単値のみ返すことも可能でオブジェクト方式の言語は常にそれをしていることになる
2025/08/24(日) 07:38:29.67ID:yIg8YRK3
アーキテクチャによって ABI は違うかもしれないけど一般的な実装としては
関数の返却値が大きい時は呼出し側でメモリを確保してそれを隠れた引数として渡すようなメカニズムになってる。
返却値はスタックを介さない。
これは C++ でも同じ。
2025/08/24(日) 07:52:38.38ID:lHuVCVKu
>>35
ほぼ合っているが一部だけ違う
間違ってる部分は「スタックを介さない」
正解は「スタックを介す」ことで高速に引き渡す

サイズの大きな値を返す場合
具体的には呼び出し元でスタックポインタを増減することでスタックフレームを拡大してその確保領域のアドレスを隠れた引数としてレジスタ渡しする
呼び出された関数側ではその確保領域に直接書き込んで値を返す

ヒープ領域を確保して受け渡す方式と比べるとメモリ領域確保のコストがない点とスタック上でそのままメモリキャッシュに乗る点で有利
2025/08/24(日) 07:56:09.24ID:lHuVCVKu
ちなみにRustでx64アーキテクチャの時
16バイトまでならレジスタ渡しになり上記スタック領域は使われないため更に速い
2025/08/24(日) 08:16:24.05ID:lHuVCVKu
ごめん、肝心なところ書き間違えてる
✕ 16バイトまでならレジスタ渡し
○ 16バイトまでならレジスタ返し
2025/08/24(日) 10:58:20.04ID:lOj53x5G
言語が多値返却をサポートしてるかどうかというのは文法としてサポートしてるかどうかという意味

文法的にはサポートしてないけど「〇〇使えば多値返却できる」のは当たり前
一般的なプログラミング言語で「Functions can use 〇〇 to return multiple values」の〇〇に当てはまるものがない言語は無いので意味がない

文法的にサポートしているかどうかと内部実装がどの程度最適化されるのかはまた別の話
2025/08/24(日) 11:01:04.53ID:o5OQy7cK
多値が返せるか?の意味なんて、ユーザ的には戻り値の分割代入ができるか?ってだけだし
ダラダラ言わずに返せますで終わりでよくね
41デフォルトの名無しさん
垢版 |
2025/08/24(日) 11:17:14.32ID:DLpoJrbF
Rustは多値を返す機能があるだけでなく
その実装も本当に多値を返すため効率よく実行も速いことが特徴
2025/08/24(日) 11:34:24.43ID:yIg8YRK3
>>40
仕様を読むときは言語の理屈や用語をわかってないとちゃんと読めない。

複数の要素をひとつにまとめたもの (タプルや構造体) をひとつ返すというのと複数の値を返せるというのは違うことなんだが、
Rust では同一視することにしたというならそれはそれで同一視しているという理屈をわかってないといけない。
43デフォルトの名無しさん
垢版 |
2025/08/24(日) 11:46:57.61ID:s620v8qa
>>42
それは屁理屈
プログラマとしては多値を返せる機能があればよいわけで、
それがタプルという形で実現されていようが困ることは何一つない
逆に、タプルをサポートしていればそれだけで十分であり、
タプルでない多値をサポートするメリットが何もない
2025/08/24(日) 11:50:38.02ID:yIg8YRK3
>>43
実際に (複数の要素をタプルなどにまとめるのではなく) 多値をサポートしてる言語はあるわけだが、ディスってんの?
言語の理屈の構成の仕方の話であって言語としてのメリットの話なんかしてない。
2025/08/24(日) 11:58:39.52ID:sGVh/967
多値をサポートしてる言語の例としてGoが上で挙げられているけどさ
Goはタプルがなくてみんな困っている
タプルがある言語では多値がなくて困った話は聞かれない
機能として『タプル ⊃ 多値』 だからだよ
2025/08/24(日) 12:05:10.36ID:DXAve6fe
Goでタプルがなくて辛いという話は聞いたことがないな
最適化の観点抜きで機能的に他でカバーできるから不要と言ってしまうと、
例えばオブジェクトは全部ヒープに置いてスマポの所有権移動だけにしてしまえば複雑なムーブは不要となり遥かにシンプルになる
それはそれで一つの考え方だが、Rustはそういう言語ではないと思っているのだろう?
2025/08/24(日) 12:08:19.32ID:veJK4T2Q
返却された値がスタック上でどう扱われるかというのは言語仕様でなく最適化の問題だから、そこはRustではなくLLVMの話
言語仕様としては「Rustではタプルを簡単に作れる」「タプルの中身を別々の変数に束縛できる」というだけ
多値返却の目的からすればこれで十分だし、多くの言語はこれに相当する

Goは本当に多値返却という仕様で、これはタプルを返すのとは違う
そもそもタプルが言語仕様になくて、関数の返り値でだけ多値を返せるという変わった仕様
だから、2つの戻り値を返す関数を1変数で受け取ることができなかったりする
(Rustでいえば「戻り値を分解せず1つのタプル変数 t で受け取る -> t.0, t.1 のようにアクセスする」という書き方がGoではできない)

だから言語仕様としての話をしたいのか、「関数から複数の戻り値を返す」という目的の話をしたいのかで話は変わる
後者については、最近の多くの言語ではサポートしてるし、そんなに話がズレることもない
前者の意味でなら、Rustは多値返却の構文を持つ言語とは違う
2025/08/24(日) 12:16:23.06ID:aQdKZ7zp
Goの多値とRustのタプルは同じ
どちらも実装は多値として返すため多値レジスタ返しが可能ならばそうするため効率が最も優れている
関数定義もほぼ同じ
func foo() (type1, type2) {…
fn foo() -> (type1, type2) {…
2025/08/24(日) 12:16:31.50ID:tCu5AZNy
バカなやつほど抽象度の区別ができない
バカなやつほどオレオレ定義で用語を使う
バカなやつほど主語を書かない

本当に相手にする価値があるか考えよう
改善の見込みがないバカなら何を書いても時間の無駄でしかない
2025/08/24(日) 12:26:32.12ID:95hjiUrq
多値を抽象化して機能を強化したものがタプルだもんね
だから多値でできることは全てタプルでもできるんだよ
タプルを持つ言語は機能の低い多値を別途持つ必要がない
2025/08/24(日) 12:50:55.19ID:veJK4T2Q
「タプルがあれば十分」は殆どのケースでは同意するけど、Goに限ってはそうする理由があるんだよ
エラーを多値で返す仕様かつ、エラー処理を明示的に書かせる思想の言語だから
value, err := foo()
のように err がコード上に表れるようにする必要があって、これはタプルだとまずい
t := foo() と書けてしまうと「タプルの2要素目がエラー」というのが見えなくなる

これは割とGo特有の事情で、Result型や例外を使う言語だとタプルでも困らない

言語仕様というのは他の部分も含めた全体的なデザインとして考えるものだから、「Rustではタプルで困らない」が正しくても、他の言語含めて全てそうだとは言えない
2025/08/24(日) 12:56:30.01ID:9a3ehhoR
>>49
>バカなやつほど抽象度の区別ができない
>バカなやつほどオレオレ定義で用語を使う
>バカなやつほど主語を書かない

汚コーダーの特徴が濃縮されてるね
3番目は「書かない」というより「書けない」だと思う
2025/08/24(日) 13:02:12.19ID:LAWD3p/v
原始的な剥き出しの多値を扱う必要のない言語においては、タプル多値があれば多値をサポートしているという結論でいいんじゃないかな
2025/08/24(日) 13:07:02.23ID:vekMbO+E
Rustはnamed tupleもanonymous structもなくunnamed tupleで位置でアクセスするか事前に定義した型で名前でアクセスするかしかないから利便性ではモダンな他言語に一段劣る
2025/08/24(日) 13:18:17.18ID:kBf9AmUd
>>54
これ便利だと思う?

# まずnamedtuple関数をインポートします
from collections import namedtuple

# 次にNamed Tupleを定義します
Point = namedtuple('Point', ['x', 'y'])

# そしてインスタンスを作ります
p = Point(10, 20)

# 名前でアクセスできるようになります
print(p.x) # Output: 10
print(p.y) # Output: 20
2025/08/24(日) 13:28:22.18ID:fUN48E4b
>>51
いや、エラーに限らずt.0とか普通に可読性最悪だからね
多値をタプルとして実装するなら、即時の分割代入を必須とするか、もしくはC#のようにpositionalなタプルと互換性のあるnamed tupleとするか、どちらかは必須
2025/08/24(日) 13:41:09.97ID:uDNIRrgr
必要となるまでは1つのまとまりとして一括して扱えたほうが有利
必要になったところでパターンマッチングさせて個別に用いる
2025/08/24(日) 13:49:22.14ID:+tDfyqBW
Rustは必要なところではパターンマッチングできるから不便なことはないよな
2025/08/24(日) 13:56:11.80ID:fUN48E4b
取得から消費までのコード上の距離が離れるほど人間の短期記憶の負担になり可読性が低下する
複おじは特に頭悪いから実感してるんじゃない?
2025/08/24(日) 14:11:41.28ID:0UxuBUhy
let (unko, chinko) = unkochinko
とか突然出てきてunkochinkoの宣言が離れてたら、合ってるのか不安を感じてつい宣言までスクロールしちゃうわ
離れた場所での位置依存は普通に可読性最悪
2025/08/24(日) 14:14:05.68ID:ieA/MpG4
>>56
ジェネリックに意味を持たない局面もあるからそこでt.0を使うのは適してる
意味がある局面なら例えばfor (index, name) in ...や|(index, name)| ...のように使われるから名前でアクセスできる
62デフォルトの名無しさん
垢版 |
2025/08/24(日) 14:15:37.70ID:veJK4T2Q
>>56
C#も分割代入しない書き方はできるじゃん
その場合の可読性はPythonもC++もC#もそう変わらないかと (t[0], get<0>(t), t.Item1)

意味のある名前を付けたいなら、それはRustでもstructを定義すれば済む話だし
C#の匿名クラスの便利さもまあ分かるけど、あれば嬉しいくらいで、個人的には必須とまでは思わない
2025/08/24(日) 14:18:45.06ID:m/1beq6h
>>62
C#には匿名型とは別にnamed tupleがあって、positional tupleと互換性を持ったままフィールドに名前を付けられる
2025/08/24(日) 14:23:02.15ID:VS0PssfI
>>55
named tupleの定義が面倒&カッコ悪いな
2025/08/24(日) 14:40:44.45ID:f2gy7gmS
Pythonの名前付きタプルは普通に使いにくいからな…
その用途なら dataclass にしとけ、というのが共通認識だと思う
2025/08/24(日) 17:03:59.99ID:apxru5vn
>>55
それは文法としてnamed tupleをサポートしてないからだよ
サポートしてれば下のように書ける

def foo() -> (x: int, y: int):
 return (x: 10, y: 20)

p = foo()
print(p.x, p.y)
x, y = foo()
print(x, y)
2025/08/24(日) 17:15:02.39ID:7zDT8kXu
事実と意見を区別しろ
前提を明確に示せ
異なる前提に依存する結論を無理に適用するな
2025/08/24(日) 17:48:30.01ID:+zGYyK0c
>>66
これで済む話
let (x, y) = foo();
2025/08/24(日) 18:53:52.96ID:xPc+Pkry
>>66
筋がよくなく中途半端に感じる
その型を他でも用いるならば型に名前を付けて宣言したほうがよく
その場限りならば>>68
2025/08/24(日) 19:23:45.82ID:o5OQy7cK
let (manko, chinko) = foo(); // 本当のfoo()の返す中身は(chinko, manko)
が許されるから、それって嫌だよねって話じゃないの?
2025/08/24(日) 19:32:58.00ID:lcXQ4DrV
>>70
そうそう
AIに生成させるにしても、fooが別のパッケージだったりするとシグネチャだけで要素の意味を推測できないのは辛いわな
2025/08/24(日) 19:44:34.69ID:PRkNyipX
別なら構造体を定義しろ
2025/08/24(日) 22:32:48.16ID:O8wAGFa3
>>68
どっちかというと真逆でRustの場合は1mmでも名前でアクセスしたいと感じるものは構造体を定義しないといけない

>>69
中途半端に感じるのは当然
事前に構造体を定義しておくほどではないが要素には名前でアクセスしたいというものすごく中途半端な状況にこそ求められる機能だから
2025/08/25(月) 06:47:36.11ID:E2rxLwdP
>>59
>>60
それらは古典的プログラミングだから無関係な処理が間に挟まったり流れが乱されるため可読性が落ちる
Rustでは抽象化したプログラミングによりメソッドチェーンで繋ぐことが多い
チェーンの間はタプルのまま旅を続けたとしても一つの流れなので可読性は落ちない
チェーンの途中もしくは最後のforやfold系でパターンマッチングされてタプルが解消されればよい
2025/08/25(月) 08:15:32.90ID:foAG4KWU
多値戻しは_をサポートしてなければコーダーにとってはどうでもいい話じゃないんかね。
最適化機会を明示できるかどうかくらいじゃね?
2025/08/25(月) 10:18:01.04ID:hSk6qQ9G
ながめてるとたしかに_多いな

>fn f(init: &str, n: usize) -> String {
> let mut list = init.chars().rev().collect::<Vec<_>>();
> for _ in 1..n {
>  if let Some((pre_index, (_, old))) = list.iter().tuple_windows().enumerate().find(|(_, (pre, cur))| pre > cur) {
>   let old_index = pre_index + 1;
>   let (new_index, _) = list.iter().enumerate().find(|(_, cur)| cur > &old).unwrap();
>   list.swap(old_index, new_index);
>   list[..old_index].reverse();
>  }
> }
> list.into_iter().rev().collect()
>}
2025/08/25(月) 12:25:47.76ID:lo8Kz+ZF
タプルの片方は途中不要で最後に必要だが、もう片方はその逆とかよくあるある。
後者のfind()はposition()に置き換えられるが、二つのfindが対称形の処理ぽいのでそのままでもいいか。
2025/08/25(月) 15:50:58.87ID:4Ejmg1ls
まだ多値の話してる・・・
2025/08/25(月) 16:13:59.05ID:M76UE5qm
このスレはあくまで複おじのファンスレッドだから
複おじの興味が続けばその話題が続くんだよ
2025/08/25(月) 21:09:46.97ID:KzDmCwhz
ファンじゃなくて自演スレだから
2025/08/27(水) 18:45:58.51ID:s/5KNF71
タプルといえばzipとmultizipの方針の違いでVec指定の与え方が微妙差
let (counts, chars) = str.chars().sorted().dedup_with_count().unzip::<_, _, Vec<_>, Vec<_>>();
let (counts, chars) = str.chars().sorted().dedup_with_count().multiunzip::<(Vec<_>, Vec<_>)>();
2025/08/28(木) 10:55:22.21ID:OS0cfYx9
抽象なんて「見たいものだけを見る」という程度の意味だからね
もしメモリ管理が最大の関心事なら
抽象度が最も高いIUnknownにリファレンスカウント機能をつけていい
2025/08/28(木) 11:58:26.45ID:1IatnfJ+
>>81
左辺に型を書けばいいんだよ
そのほうが読みやすいしタイプ数も少ない
あとunzip/multiunzipはcollectでも代用可
2025/08/28(木) 15:40:44.35ID:OS0cfYx9
なんで掛け算の引数には名前がないんだろう
順序を逆にできない理由が一目でわかるような名前があるなら名前をつけるべき
2025/08/28(木) 20:43:02.31ID:fdP0HyCm
>>81
unzipはトレイトを使っていないため余分なパラメタが露出してしまってる
multiunzipはトレイトMultiUnzipを
collectはトレイトFromIteratorを使っている

>>83
今年のRust 1.85からタプルもcollectできるようになったね
2025/08/30(土) 05:57:20.14ID:JBC8dN2M
a * b * c
は b や c のすぐ隣に目印があるからキーワード引数は不要だ

mul(a, b, c)
(* a b c)
このような記法だけが、b c 付近で文法的サポートが不足している問題を抱えている
2025/08/30(土) 23:22:46.71ID:6bFj+97W
>>55
namedtupleは廃れて今はdataclassを使う
Rustでの#[derive(Debug, Hash, Ord)]付き構造体相当
結局Pythonでもそのへんはちゃんとしてほしいことになった
2025/08/31(日) 09:51:10.58ID:cF2U6lLu
ハッシュ関数を使えば保守的GCが廃れる
確率を見たらカオスと思え
2025/08/31(日) 10:00:25.50ID:mJd+1ya1
>結局Pythonでもそのへんはちゃんとしてほしいことになった
誰か日本語に翻訳して
2025/08/31(日) 10:52:20.39ID:QUPYnWaR
足りない頭で必死に調べた複おじの努力を認めて差し上げろ
それはともかく、一般にスクリプト言語ではタプルはあまり好まれず、辞書が好まれる傾向がある
- ユーザーが辞書データ構造を使ってレコードを扱うことに慣れている
- 辞書を扱うための簡便な構文が存在する場合が多い
- 辞書と配列の速度やメモリ使用量の差が問題にならない
- 値が増えた場合にランタイムエラーを引き起こす
なお、dataclassは辞書に対する型付きのラッパーに過ぎない
あくまでこれはスクリプト言語の事情であり、Rustのような静的言語においてはレコードはタプル(構造体は名前付きのタプルの一種)として実装することが基本であることに注意しなければならない
2025/08/31(日) 17:32:35.66ID:qrCON/OK
辞書かどうかは本質ではない
辞書として用いないことが圧倒的に多いため例えばV8では静的解析で判明するプロパティを構造体フィールドのように扱い実行するため辞書実装とは異なり速い
2025/08/31(日) 18:15:49.65ID:IkR/a1qs
また的外れなレスだなぁ
結局複おじにもそのへんはちゃんとしてほしいことになった
2025/08/31(日) 18:20:32.10ID:yY4/9rZW
>>91
V8のプロパティアクセスの最適化は基本的には静的解析に依存しないよ
同じプロパティが同じ順序で追加されたオブジェクトは同じ型と見做してキャッシュされたプロパティの位置を利用する
あくまで辞書データ構造を前提としたままでキャッシュ戦略を工夫しているに過ぎない
2025/08/31(日) 23:19:02.35ID:cF2U6lLu
魔法の数字ではなく
ちゃんとenumを使うことになった
2025/08/31(日) 23:24:15.68ID:Dds/cnqW
Minimal Embedded FAT32 Driver - in Rust!
https://www.youtube.com/watch?v=VcWXn8B9RoE
96デフォルトの名無しさん
垢版 |
2025/09/02(火) 22:34:52.76ID:sEJ6dDWm
「Rust」の平均単価が3カ月連続上昇 エン・ジャパンがフリーランス案件の分析レポートを発表
https://atmarkit.itmedia.co.jp/ait/spv/2508/21/news045.html

開発言語別では、比較的新しい言語「Rust」が3カ月連続で平均単価を伸ばし、87万4000円(2025年6月比で4.4%増)で1位となった。
2025/09/03(水) 01:10:14.83ID:rmZ6WmxL
もういいよ
2025/09/03(水) 06:18:41.58ID:Myuv+TwW
Rustがトップになる予想が当たったね
2025/09/03(水) 08:43:05.32ID:Ypa4ifGO
これからどんどん増えるで
2025/09/03(水) 10:27:14.93ID:pUgFa8ls
https://corp.en-japan.com/newsrelease/2025/42699.html
Goもそうだけどレベル低い人(特定言語の習熟度ではなく基礎的な技術力の観点で)お断り案件がほとんどだから単価が高く出る
つまり裾野が狭いことを意味するわけで、決して手放しに歓迎すべきことではない
特にRustがこれから食っていかなければならないのは最下位付近にいるC++とCの領域だから、普及していけば単価は大幅に低下する
2025/09/03(水) 10:39:55.94ID:slTkF8Pj
> 全体として、比較的新しい言語である「Rust」や「Go言語」、「Kotlin」などが高い単価を維持しており、市場での需要の高さがうかがえます。

これかなり違和感あるなあ
このへんのメンツの単価が高いのはつまるところ案件の難易度が高いからで、
下の方のコモディティ言語と同じように需給バランスで単価が決まると考えてるのは実態を知らないんだろうなと思う
2025/09/03(水) 11:43:31.30ID:FcGJkFCi
>>100
C系はバカでも書けるから安いんだよ
レベルが低い人はRustが難しいと感じて挫折や一部アンチ化
一方で今後求められつつあるのが安全で速いRust
103デフォルトの名無しさん
垢版 |
2025/09/03(水) 12:11:36.01ID:UDH6IOq3
もしかしてRustを誰も使ってないのはレベル低い人だらけだから?
2025/09/03(水) 12:41:52.63ID:JLXMHQtL
>>101
案件の難易度というよりも
開発者個人に期待されてる技術水準だったり
言語に付随して求められる知識やスキルの水準と希少性による

それらが低い水準の技術者でも構わないという求人の多寡が
言語別平均単価を最も大きく左右する要因
2025/09/03(水) 14:32:47.56ID:mk24rcqJ
低い水準の技術者ほど言語別の単価を気にするのは他に差別化できるものがないからなんだよな
転職エージェントについても同じ事が言える
2025/09/03(水) 14:55:10.39ID:wGzU1Ifu
納期を守るのと守らないのはどっちが供給不足か

デフレ脱却したいとして、供給を減らすのと増やすのはどっちが合理的か
ぜんぜんわからない
雰囲気
2025/09/03(水) 20:52:42.81ID:16NS2IAc
関係ないよ
Pythonの単価が一番高かったころもあった
その時はみな稼いでいたんだろな

需要と供給のバランスが崩れてるところと言う視点だけだと思うけど
2025/09/03(水) 23:36:04.43ID:0gdcYoMa
何が関係ないのか全然わからん
2025/09/04(木) 00:25:45.89ID:6pIdFnm5
プログラミングは一種のパズルのようなもの
各言語の機能制約+バグなく目的の実現という全体のパズルを解いていく
Rustの場合はメモリ関係や諸々の安全性などのための制約で他より難しいパズルになるため誰でも参入できるわけではない
代わりに速さ省メモリ安全性の両立という唯一の果実を得ることができる
構造的に単価の崩壊は起きそうにない
2025/09/04(木) 00:35:53.93ID:LhBS9NeG
プログラミングをパズルだと思ってるやつw説得力が違うww
2025/09/04(木) 00:41:20.03ID:UUTUiuRY
データや手続きの構造化はパズルそのもの
2025/09/04(木) 02:30:07.00ID:LqWnaoik
それわかるわ
パズルを解く意識なく漫然と進めるとスパゲッティになりやすい
そうなるとバグや機能追加で辻褄合わせを重ねるダメなプログラミングになってしまう
2025/09/04(木) 08:52:39.19ID:ZfQJo1Tt
ルールが不安定なパズル
ストライクを三回見逃したらアウトか?
それは実際に起きてから検討する
2025/09/04(木) 08:58:39.79ID:1soimmg4
プログラミングの基本は段階的詳細化
設計のセンスない奴は逆にボトムアップで後から辻褄を合わせていくようなパズルになりがち
特にRustは細部に気を取られやすいから注意
2025/09/04(木) 09:22:33.64ID:vfX9hKSX
実現したい機能に対してトップダウン的に絵を描いていく過程も含めてパズルと言っているならいいが、
おそらく複おじが言っているのはそういうものではなくコードレベルの辻褄合わせのパズルだろう
いわば、自ら解く必要のないパズルをわざわざ作り出して必死にそれを解いている状況だ
2025/09/04(木) 10:16:31.84ID:eoDLYfq3
パズルではないわな
答えなんてないし

それぞれの事象に対してどう見るか 構造の把握
スケール感の問題
2025/09/04(木) 10:23:41.49ID:eoDLYfq3
ABCの処理があって普通に考えるとA、B、Cの順で処理するんだけど
よく考えるとC,A..BにしてCの段階で条件分岐や枝狩りしたほうがロジカルに効率が良いと気が付いて実装するけど
実務で使い始めて統計取ると特定のパターンばかり利用されててキャシュ効率上でBCAでやったほうが効率が良かったとか
パズルとは程遠い泥臭い世界
2025/09/04(木) 10:44:44.47ID:m/0dQr70
Rustは他の言語よりパズル要素強めじゃね?
2025/09/04(木) 10:56:34.58ID:3uttxPMH
明瞭な線があるわけではないグラデーションの中であえて「どちら寄り」かを言うならそうとも言えるかもしれない。
2025/09/04(木) 11:02:42.07ID:eoDLYfq3
外部の条件によって最適化のために条件分岐などが追加され複雑度が上昇する
そんなパズルなんてない
2025/09/04(木) 11:26:54.96ID:JGI2PCUV
プログラミングはぐちゃぐちゃの辻褄合わせになったら敗北
辻褄合わせにならないようにするという明確なゴールのパズルを解かなければならない

強引に辻褄合わせできてしまう言語ではその問題が潜在化して表面上はごまかす形になる
Rustでは辻褄合わせはコンパイルを通せないという形で顕在化してくれることが多くて好ましい
無理矢理にコンパイルを通すために無駄なコピーや不必要な内部可変性を用いるとコードレビューですぐに低質なプログラマであるとあぶり出せる
2025/09/04(木) 11:29:28.26ID:vfX9hKSX
そりゃ辻褄合わせと呼ぶラインをどこに引くかによって何とでも言える
優秀なエンジニアならコードレベルの試行錯誤は全て辻褄合わせだろう
123デフォルトの名無しさん
垢版 |
2025/09/04(木) 11:40:43.96ID:IELJ+5qz
またそうやって擬似問題になりそうな話を

(wikipedia)パズルは、あらかじめ出された問題を、論理的な考察と試行錯誤によって解くことを目的とした、ゲームやクイズに似た娯楽の一種。

が世間一般の認識だから、解を用意していない問題はあんまりパズルとは言わん。
2025/09/04(木) 11:56:06.31ID:ZcFrEykS
プログラミングは制約条件を理解してないと解けないパズルかというとそうでも無い
テストさえ書けりゃ、どう解いてもいいパズルだから自由度は無限大
どこを妥協するか、どこを作り込むかだけの問題
もちろん、組み込みみたいに制約が厳しすぎて設計自由度のない世界もあるけれどそういう世界ではRustは使わない
2025/09/04(木) 11:57:48.23ID:ZcFrEykS
前スレから「辻褄合わせ」というプログラマーが大勢いるが、それは外部インターフェースとの整合とかの話だけでしょ
そんなの辻褄合わせして当たり前、仕様なんだから合格させようよ
2025/09/04(木) 12:02:06.25ID:cGup1Tfc
パズル的要素が皆無というわけではないんだが仕事としてのプログラミングの場合その割合はせいぜい全体の5%以下
プログラミングをパズルだと捉えている人は残りの95%が見えてないだけ
2025/09/04(木) 12:27:45.62ID:9OFIpubQ
競プロ上がりだと100%パズルぐらいの感覚で業務システム開発もやるのかな
2025/09/04(木) 12:43:52.93ID:sEvyWhfg
全員の意見が多かれ少なかれパズル的な部分が存在することを認めているな
さらにRustはそのパズル的な部分の難易度が上がるという見方が複数あってそれらに反論がない
元の話の結論が出たな
2025/09/04(木) 12:45:05.01ID:sEvyWhfg
元の話の結論が出たな
Rustに低質なプログラマは参入できない
よって>>96の単価表ボトム3『C/C++/C#』のように単価が下がることはない
2025/09/04(木) 12:50:01.72ID:sEvyWhfg
その記事の元の発表の単価表は>>100
2025/09/04(木) 13:08:42.88ID:7fb6B/JG
いやーC#はともかくC/C++はエッセンシャルワークとしての側面があるからねえ
C#みたいな業務システムの領域ならそんなものはSaaSに喰われて消えるみたいな強弁も一理あるけど、組み込みが消えたら社会回んなくなるよ
その領域がいつまでもC/C++のままで変わらないとしたら、複おじの願うRust理想郷は永遠に実現しないことになる
2025/09/04(木) 13:15:29.52ID:2hNgjipt
言語別単価で優劣を語りたがる層
 ≒ 言語以外に差別化要素を持ち合わせてない層
 ≒ プログラミングをパズルと捉えている層
 ≒ 生成AIで置き換えられる層
2025/09/04(木) 14:20:06.37ID:BCXVeHms
パズルの言語差が単価の言語差だと思ってる層 == 複おじ層
134デフォルトの名無しさん
垢版 |
2025/09/04(木) 19:30:28.50ID:vcXGHXe6
脳内の「心の声」を読み取る新たな技術、最大74%の精度でリアルタイム解読に成功
公開: 2025-08-23 08:00
https://karapaia.com/archives/537808.html
>> 彼らの脳の運動皮質(大脳皮質の一部で随意運動の指令を出す領域)にマイクロ電極を埋め込み、神経活動を記録した。
>> 実験では、参加者に以下の2通りの指示が与えられた。
>>1. 指定された単語を声に出そうと努力する(実際には発声しない)
>>2. 同じ単語を、声にも出さず、心の中だけで思う(内言)
>> 結果として、どちらの行動でも脳の同じ領域が活動し、似たパターンの神経信号が観測された。
>> ただし、内言の方が全体的に信号の強度は弱く、詳細な分析によって両者の違いも見分けられることが分かった。
>> さらに驚くべきことに、研究チームは、参加者が指示されていない言葉までもBCIが読み取っていたことを報告している。
>> たとえば、画面上に表示されたピンク色の円を数える課題では、参加者が心の中で数を数えていたことが検出されたという。

★直接接続しても読み取り精度100%で無い!
★★★★★★★★★
思考盗聴不可能
★★★★★★★★★
2025/09/04(木) 20:49:36.52ID:3uhYTePD
Rustって思考盗聴の技術と何か関係あるんか
そもそもサブリミナルで他人の意思決定に干渉してるだけなのに「思考盗聴」とか言う意味が分からん
カードマジックで意図的に特定のカード選ばせた後に「透視」して言い当てるみたいなネタなら分かるけど
2025/09/05(金) 11:45:03.86ID:qGwJ0G0s
このスレ見てると統失多そう
2025/09/05(金) 21:32:26.30ID:y82F5TBG
プログラマーなんて、SEと違ってその気になればいつでも手帳もらえるようなのばっかりだろ
138デフォルトの名無しさん
垢版 |
2025/09/05(金) 21:42:30.51ID:PE0qALNl
よくC/C++からの書き換えは話題になるけどJavaとかはどうなんだろ
2025/09/05(金) 22:16:43.53ID:SAtiqpOd
>>138
Meta社主導のオープンシステムBuckがJavaからRustに書き換えられ速くなった
140デフォルトの名無しさん
垢版 |
2025/09/05(金) 23:14:16.74ID:PE0qALNl
やっぱそっちの方が効くよな…
C/C++は安全性は向上するかもだけど効率面はそれほど変わらないし
2025/09/05(金) 23:41:19.77ID:EdDK7HX5
C製のNginxにCloudflareが機能拡張の限界を感じてRust製のPingoraを作ってしまい速くなった話もある
2025/09/06(土) 00:25:08.85ID:PVmm5ZSZ
速くなるものが作れるともう戻れなくなるのよね
143デフォルトの名無しさん
垢版 |
2025/09/06(土) 01:20:05.03ID:BBkKVX9d
JavaはなんとなくわかるけどCより速くなれたのは
どういう理由なんだろうな?

メモリ管理に厳しくなった分コードが整理されたとか
高速なライブラリが利用しやすかったりとか?
2025/09/06(土) 04:08:45.69ID:UZSX8lly
そういうのはたいてい並列化で読み込み時間短縮って例
2025/09/06(土) 08:16:45.68ID:RDwHnPgj
Nginxの件に関しては、マルチプロセスをマルチスレッドに変更してコネクションプールの効率を改善したのと、
LuaモジュールをRustに書き換えたことが速くなった理由
つまりCより速いかどうかは全く関係ない
2025/09/06(土) 10:23:19.24ID:gk21ZPjY
「xxx言語で書き直したらこんなに速くなりました」はだいたい言語とは関係無いよ
リライトに伴う構造やロジックの見直しがメイン
2025/09/06(土) 10:35:43.95ID:Eruvpq+4
頭がおかしい人にはそれが通じない↓
2025/09/06(土) 11:56:47.46ID:Ag/cJ4H+
JavaやC#やGoのような「決して遅くないけど最速でもない(最悪でもCより数倍遅い程度)」グループからのRust移行はあまり流行ってないよね
元々わざわざコアだけCで書いたりしてないし、Rustへの漸進的な書き換えもやりにくい
セキュリティ面でも得るものはほとんどなく、むしろ標準ライブラリが貧弱でコミュニティの馬の骨に頼る部分が増える点はリスク要因
あと、そういう言語の著名な成果物って現実の複雑性に真面目に向き合ってやるべきことを地道にやってきた結果として重厚になったのが多くて、
Rust信者が好みがちなサクッと書き換えて爆速最強!みたいな話にはなりにくい
Elasticsearchに対抗したMeilisearchみたいな例はあるけど、機能がしょぼすぎて性能以前の問題として全く戦いになってないのが現状
2025/09/06(土) 11:59:42.86ID:AI5/M/rL
>>143
まず前提として「事情は変わる」ってことだ。
ある時点の事情に合わせて最高にチューニングされたプログラムだとしても
変わっていく事情に合わせて変化できなければ相対的に遅くなる。

そして世の中のプログラムというのは世間で思われているほどには保守されていないし、ドキュメントもない。
根本から全てをやり直す機会というのはまず無いんだ。
しかしそれがあるのが「新しい言語の登場」という場面なだけ。

言語 (処理系) が充分以上の性能を持っていることは当然の前提としても
劇的な性能向上は書き直すという行為そのものにある。

Rust とは関係ないが、書き直して性能向上した顕著な例としてはリンカの mold なんかが有名だ。
GNU LD に比べたら百倍以上とかの速度差があるけど
飛びぬけた工夫があるわけではなく今風の設計でやり直したに過ぎない。
互換性を維持したままやりなおすってのがひたすらしんどいから誰もやりたがらないだけで
やれば効果があるってことはたぶんそこらへんにたくさんある。
2025/09/06(土) 13:01:26.27ID:6FQoWLuD
個人がバグったところで何の問題もないような自作のソフトを
AIでぱーっとRustに書き直して爆速!みたいなのなら、GC言語からの移行もあるかもしれないけど
金と人使ってビジネスでやるには、メリット説明できないわな
2025/09/06(土) 14:43:23.64ID:fE0qD0IQ
おまえら勘違いが激しいな
そのままで異なる言語に書き換えが割に合うのはスクリプト言語などクソ遅い言語から変更のとき

そのままではなく機能追加などで構成から見直して変更して書き直す時にRust一択
完全な新規開発でもRust一択
それだけのことだ
2025/09/06(土) 14:56:28.32ID:4LFoTDpR
2025/09/06(土) 17:30:43.78ID:ljkmdzrF
デスクトップアプリをpythonからtauriに移植してる
やぱーHTML,CSSが最高だからね
2025/09/06(土) 18:05:28.67ID:nV8Wb4jy
クラウドもCDNもWebベースでWeb関係の知識は必須な時代
アプリAPIからGUIまで全てWebベースにするのが主流になりつつ
2025/09/06(土) 18:17:03.85ID:VNM5tarI
tauriってマルチプラットフォームのせいでWindows固有の設定が不足してるね
具体的には、新しいウィンドウを開くときに指定できるオプションが enum FormStartPosition より少ない
2025/09/06(土) 18:28:13.15ID:PRze6Nk7
Tauriって出てからもう5年経つのか
他の技術に比べればまだ未成熟だけど、それなりの時間は経っているような気もする
実際のTauri製のソフトって、世の中には増えてるの?
2025/09/06(土) 18:30:10.85ID:7D0PK96y
>>155
他の環境に存在しないなら必要のない機能なのかも
2025/09/06(土) 18:47:09.06ID:6FQoWLuD
そもそも、デスクトップクライアントアプリというものの新規需要が全然ないからな
PCに入れるのは、Tauriが出る前からあるような定番みたいなのと製品だけで
フリーソフトをいろいろ探して入れるような文化ももう死んだようなもんだし
2025/09/06(土) 19:02:18.72ID:aQ2hhWq1
今は環境依存せずにリモート表示をしたいことも多い
機能部分はローカルで動かしてGUI部分はローカルまたはリモートのWebブラウザに任せる
2025/09/07(日) 02:29:10.24ID:OLjKudo7
AIでいうと驚き屋はタダ働きじゃないだろう
お金もらってるのを公表したくないだけじゃないか?
2025/09/07(日) 07:09:53.38ID:zlUCw5iB
ここで自作自演してるのはRsut驚き屋?
2025/09/07(日) 07:12:25.76ID:tyTc6SH2
労働市場でもRustが1位になった
ソース>>96
2025/09/07(日) 09:53:55.20ID:OLjKudo7
驚き屋は統計学の大先生であってパソコンの大先生ではない
164デフォルトの名無しさん
垢版 |
2025/09/07(日) 16:41:31.97ID:nTdhEyd9
tauriはjsも必要なのがめんどう
165デフォルトの名無しさん
垢版 |
2025/09/07(日) 17:09:46.35ID:aS8wLvBq
webasmでそこもrustでやってしまう
2025/09/07(日) 18:00:55.17ID:OLjKudo7
誰が?
多数派がみんなでやってしまうのか
謎のヒーローが一人でやってしまうのか
2025/09/07(日) 22:39:15.60ID:B7DDbLUj
全部Rustで作ろうってことだよ
2025/09/07(日) 22:47:53.78ID:vrzW9IuU
だいたいWASMでGUIってIMEで詰むし、そこが気楽になんとかなればいいんだけどな
2025/09/07(日) 23:37:18.74ID:OLjKudo7
たかがIMEなら逃げていいんじゃね?
逃げていいという考え方のほうが要領よさそう
2025/09/08(月) 00:33:07.89ID:qpwOyyTY
妥協するんなら大概のものはTUIで十分
まさか仕事じゃないだろうし、今時わざわざGUIを選ぶ時点でオナニーなんだから要領とかナンセンス
2025/09/08(月) 01:35:14.64ID:XsspSmYE
そう
じゃあ詰みなさい
172デフォルトの名無しさん
垢版 |
2025/09/08(月) 08:15:57.34ID:t7zevFyQ
何をやっているんだ!

お前らよくマジモノに手を出せるね

幻覚ではなく自分が考えた妄想で話していると思っているのでしょう

精神病院の薬を飲む猛者ですよ!

薬を投与しても収まらない!

家族薬飲んでいる姿見ているのですよね?

永遠に自分が考えた自作自演の妄想は終わらない!
★★★★
★有鬚★
★★★★
173デフォルトの名無しさん
垢版 |
2025/09/08(月) 20:45:41.50ID:t7zevFyQ
教官はどのランク

◇審判のランクについての役割

A級審判はB級審判以下を教えれる立場
※指導する立場なのでパワハラや強制をするような指導をしないようにする品位も問われるのでテスト問題にないと駄目

B級審判はA級審判と同等の判定ができるがB級審判やC級審判に判定の仕方を教えることは駄目
※周囲から見てもわかりやすいようにジャッジの仕方の動作は綺麗な動作でないと駄目

C級審判はA級審判の判定の仕方を聞きながら判定を行う審判で他の人に判定の方法を教えては駄目
※駆け出しなのでジャッジの判定に対しての大幅な誤差がある

※上記でないと判定に誤差が出てくる
※判定に問題があるようならA級審判同士で話し合ってルールの変更をする必要がある

★A級審判のみがオリンピックやパラリンピックでの審判が可能な立場
2025/09/10(水) 14:42:07.11ID:ClB+7tQv
型はダックタイピングでもいい
それでも人間の頭の中でRustと同じことをやる
というのが基本的な戦略で
人間と機械を対立させるのは瑣末な戦術にすぎない
2025/09/10(水) 22:38:13.39ID:ClB+7tQv
OOPも関数型もAIも
古い知識とは全く互換性がない新技術、という前提が反知性的な噂話を助長したので
その前提を否定すればいい
176デフォルトの名無しさん
垢版 |
2025/09/18(木) 13:51:11.68ID:1Ek4hiHD
WASM3きてた
https://webassembly.org/news/2025-09-17-wasm-3.0/
177デフォルトの名無しさん
垢版 |
2025/09/18(木) 17:00:45.40ID:9LufLH6a
OpenAIとGoogleのAIがプログラミング大会「ICPC 2025」に参加し金メダル相当の記録を達成、OpenAIは全問正解でGoogleは2問ミス
2025年09月18日 11時22分
https://gigazine.net/news/20250918-icpc-google-openai/
☆遅くとも1年後には人間はAIには勝てなくなる!


宇宙太陽光発電に応用可能–NTTと三菱重工が最高効率を達成した「レーザー光無線給電」って何だ?
9/18(木) 16:30
https://news.yahoo.co.jp/articles/e0c798e4ae4736e2e600a8ef0edd7334bb8b09ab

無機酸化物の結晶骨格を再構成、量子素子などへの応用に期待 京大など
9/18(木) 16:29
https://news.yahoo.co.jp/articles/193546ef9953142fb6fb57dfba3b23dd2a014d56

端から端まで8光年 ウェッブ宇宙望遠鏡が観測した原始星「Sh2-284 p1」のジェット
9/18(木) 11:37
https://news.yahoo.co.jp/articles/79398786946a884ac6c5a91ad3ffda4607982056

原始ブラックホールの“最後の瞬間”が見られるかも
9/17(水) 19:00
https://news.yahoo.co.jp/articles/3a27d1cb1df926dbd6271a8e717b0a60e6119956

60年間気づかれなかった地球の「隠れた準衛星」、発見される
9/17(水) 19:00
https://news.yahoo.co.jp/articles/ea2fc4968478b284d0c07a28c77c3efb2b122e3c
178デフォルトの名無しさん
垢版 |
2025/09/19(金) 06:57:18.01ID:ub2LSIBW
◇マッチポンプ作業は全業界であるのか!
【話題】AIが生んだ新たな仕事「バイブコード修正屋」とは? 熱狂の裏で急増する高額な“後始末” [すらいむ★]
2025/09/17(水) 21:53:35.20
https://egg.5ch.net/test/read.cgi/scienceplus/1758113615/
>>「バイブコード修復専門家(vibe code cleanup specialist)」と呼ばれる、経験豊富なエンジニアたちによる高額な“後始末”稼業だ。
-
電波で初めてとらえられた「アインシュタインの十字架」
 この画像はアルマ望遠鏡がとらえたもので、地球から約78億光年離れたところにある銀河群の重力により、約116億光年の距離にある「HerS-3」という銀河の像が5つに分かれて見えています。
 アインシュタインの一般相対性理論によると、質量をもつ物体のまわりでは空間がゆがむために光が曲がります。
 光学的なレンズのようなはたらきをすることから、そのような現象は「重力レンズ」と呼ばれます。
 重力レンズによって、この画像のように奥にある天体の像が十字形に分かれて見えるものは「アインシュタインの十字架(アインシュタイン・クロス)」と呼ばれます。
(以下略、続きと画像はソースでご確認ください)
astropics 2025.09.18 17:30
https://astropics.bookbright.co.jp/hers-3


上記からしてダークマターは一直線に進むことが可能なのか?
179デフォルトの名無しさん
垢版 |
2025/09/19(金) 13:46:44.80ID:ub2LSIBW
☆安全が証明された中国のAI健全に作成されている事が証明されました!
DeepSeekが推論モデル「R1」をわずか4400万円でトレーニングしたと発表、512基のNVIDIA H800チップを80時間使用
2025年09月19日 12時07分
https://gigazine.net/news/20250919-secrets-deepseek-ai-model-reveal/
>>この論文が公開されたことで、DeepSeek R1は査読プロセスを経た初の著名LLMとなりました。これについて、論文の査読を担当したHugging Faceの機械学習エンジニアであるルイス・タンスティル氏は、「これは非常に歓迎すべき前例です」「プロセスの大部分を公開して共有する慣習がなければ、こうしたシステムがどのようなリスクを持っているか評価することは非常に困難です」と語っています。
OpenAIがAIモデルの隠れたずるさを減らす実証、o3とo4-miniで実現
2025/09/19 10:25
https://news.mynavi.jp/techplus/article/20250919-3465808/
180デフォルトの名無しさん
垢版 |
2025/09/19(金) 20:56:24.59ID:kwj0OC91
WASMは特殊なグラフィックに対して部分的に使うのが最適で、基本的にHTML+JS系がCtrl+F等のブラウザ機能やIMEをフルに使えるか
2025/09/19(金) 23:32:35.73ID:InldYzYM
WASMの話でブラウザ限定なのもアレだが
ブラウザでの話なら必ずJavaScriptによるグルーコードを伴う
WASMから全機能を呼び出せるためプログラミングはWASMのみで完結できる
182デフォルトの名無しさん
垢版 |
2025/09/20(土) 13:53:37.80ID:v+zL1yTh
俺、スクリプト言語以外の言語で非同期処理を書くのはじめてなんだけど、
他の言語もちょっとした非同期処理を書くのにここまでスマートポインタをがちゃがちゃやらないといけないの?
慣れるまで大変だわ
2025/09/20(土) 14:22:51.12ID:DnfXGep7
非同期処理と並列処理は直交する別の概念
非同期処理でもシングルスレッド利用なら並列処理は行われないため排他制御は不要であり並行処理のみで実現できる
マルチスレッド利用ならば並列処理も行われるため排他制御のスマートポインタが必要
2025/09/20(土) 14:29:35.95ID:6MulabzN
他のコンパイル言語ではそこまで煩雑じゃないよ
Rustは根本的にスタックファーストな言語なのだけど、
非同期処理はヒープを多用せざるを得ないので、どうしても同期的なコードに比べて煩雑になりがち
2025/09/20(土) 15:08:37.34ID:vM0N4xNE
正しい処理をしているかを型で制約するのが Rust の流儀だからごちゃごちゃするけど、 C++ だとそこまで厳しくない替わりに間違えたら黙って暴走しがち。
制約が厳しくなくて実行時に暴走もしないやつは実行中に勝手に色々な制御が介入してるから速度的に不利になりがち。
トレードオフがあるので仕方ない。
2025/09/20(土) 15:08:41.63ID:3ZdmIyvv
Javaから各スクリプト言語に至るまでオブジェクトはヒープに格納される
2025/09/20(土) 15:11:29.13ID:oDVoBqGa
>>182
便利で善だからスマートポインタという名前が付いているよ
それなのにスマートポインタを悪のように捉えてるところに違和感
2025/09/20(土) 15:28:28.03ID:vM0N4xNE
いわゆる動的型のスクリプト言語における変数の実態としては全てスマートポインタのようなものとして実装されてるよ。
実際には不要かもしれない、必要以上のガードがあるスマートポインタだ。
だからプログラマは考えなくて良いようになってるだけ。
2025/09/20(土) 15:45:26.58ID:HFxf22eu
>>182
んなわけないじゃん
生成AIで他言語に書き直してもらえばすぐ分かるよ
2025/09/20(土) 15:56:22.22ID:UDg7vyx0
>>189
C++でもスマートポインタを使う
それ以前にRustのような非同期処理の手軽さはC++にないから止めとけ
2025/09/20(土) 16:20:32.56ID:J9I3m3UZ
複オジ仕草は相変わらずだな
見苦しいったらありゃしない
2025/09/20(土) 16:22:53.27ID:xgkvAj6i
>>182
どのスマートポインタ?
それを書けていないので区別がついていないことが敗因かもね

例えばヒープを管理するスマートポインタならばGCでない言語なら必要だよ
これは非同期でなくても必要だね

例えば排他制御をするスマートポインタならばマルチスレッドで排他制御を必要としてる状況だからどの言語でも必要だよ
もしくはスマートポインタより不便でミスしやすい形でのmutexなどが代わりに必要だね
2025/09/20(土) 17:59:15.89ID:gBMyGQKP
見苦しいというか本当に醜いね
2025/09/20(土) 19:07:52.69ID:yVoW5m+/
スマポがいらないのはスクリプト言語かどうかじゃなくてGCの有無の違い
パフォーマンスクリティカルな場面だと悪者にされがちだけど、GCは本来面倒なものをかなり楽に扱えるようにしてる
なので、Rustが大変に思うなら素直に他の言語にすれば良いじゃんと思う
そういう面倒さと付き合う覚悟があるならRustはとても良い言語 (C++などに比べれば)
195デフォルトの名無しさん
垢版 |
2025/09/20(土) 19:19:36.48ID:6ax0UV6a
>>194
GCの有無とスマートポインタに関係はない
そもそもポインタを持つGC言語も多い
そこで目的毎の抽象化したポインタを持てばスマートポインタになる
例えばRustのMutex<T>のようなスマートポインタを持つ場合とバラバラにTとMutexを別個に持つ場合の利便性や安全性を比較するとわかりやすいだろう
これらはGC言語でも必要である
2025/09/20(土) 20:27:30.86ID:V+ThLNIP
Mutex<T>はスマートポインタじゃないんだが
スマポってリソースの寿命管理の仕組みだから、GCが面倒を見る言語では要らんでしょ
ポインタを持つGC言語はあるけど、スマポとGCの両方を使う言語は (少なくとも自分の知る限り) 無いと思う
ロックはまた別の話だ
2025/09/20(土) 20:45:04.95ID:4vgI+Jqh
スマートポインタは「高機能なポインタ」くらいの意味で、寿命管理以外の機能を含む場合はあるよ。
198デフォルトの名無しさん
垢版 |
2025/09/20(土) 21:07:14.91ID:SpoPrW2p
正確にはMutexのlock()で得られるMutexGuardが条件をすべて満たしている正真正銘のスマートポインタ
GCのある言語でもこのようなスマートポインタは有意義
2025/09/20(土) 23:31:35.11ID:4/wGeSfa
いずれの機能もスマートポインターに慣れてしまえばスマートポインターなっていない従来の形は使いにくくミスも生じやすくわかりにくいことに気付けるよ
2025/09/20(土) 23:48:28.53ID:7sNK9LUJ
GC言語ではわざわざスマートポインタの形で実装する必要性が皆無
スコープと外部リソースの開放を結びつける仕組みは言語がそれぞれ用意してるからね
2025/09/20(土) 23:59:25.70ID:A0B8UFqR
GoはMutexと変数ばらばら
結びつける仕組みってなに
2025/09/21(日) 02:43:46.06ID:ETMxp5J0
Mutexなどロックしている間のみ変数にアクセスできるしくみを用意している言語はRustだけじゃね?
203デフォルトの名無しさん
垢版 |
2025/09/21(日) 04:07:15.57ID:Obb0mglL
内部通報で無理なので犯罪者通報

暗黒状態の量子もつれを生成することに成功:世界初の快挙
公開日2025.09.10 18:30:27 WEDNESDAY
https://nazology.kusuguru.co.jp/archives/184832
>>量子もつれが非常に壊れやすく、外界のノイズ(熱の揺らぎや周囲からの電磁波など)によって簡単に消えてしまうことです。
>>このノイズによる量子もつれの崩壊現象は「デコヒーレンス」と呼ばれ、量子技術が実験室の外で広く実用化されるのを妨げる最大の壁となってきました。

・どうやって地上で行えるのですか?
・ 嵐の中や甘風が強い中での車での走行中などどうやって維持しているのかな
・UFOは重力県内でテレポートしている偽物だろう?

・統合失調症から見て犯人不明で周囲の人は知っているかもしれませんが宇宙人だと名乗っているのとテレポート技術を所持している
・7人殺害した
・お前で埴鎮目だ
・殺害した人野事を晩酌で高笑いをしている
・お前「被害者=統合失調症=24実感365日幻聴などの幻覚あり」を人質に立てこもる
・絶対に殺させる「自殺か殺人かは不明ですがさせる」
・コロな症状を引き起こせる
※など上記の事を話してきた

ここにも愉快犯の犯人組織が居るだろう!
2025/09/21(日) 14:55:02.19ID:puxC1vt4
>>182
Rustだけ
2025/09/21(日) 16:00:08.03ID:qk42F/D+
>>204
嘘つくな
どの言語でも排他制御が必須
それがなくても動く言語は常に自動で排他制御されて重いかシングルスレッド
さらに非GC言語はshared_ptrやArcなどが必須
それがなくても動く言語はそれ相当を常に自動でされて重いかリスキーな自己管理になる
2025/09/21(日) 18:04:41.94ID:swJZ0gup
複おじの見識の狭さを露呈してるなあ
>>182はたぶんWebだろうから、排他制御なんかアプリケーションコードの範囲ではほとんど必要無い
2025/09/21(日) 18:58:11.62ID:85rn3aD/
>>182にウェブらしき話がないけど
ウェブでも共有データがあって排他制御されるよ
2025/09/21(日) 19:30:32.11ID:dKb8R8vZ
バックエンドにしろフロントエンドにしろ、Webは並列処理って意味合いでスレッド使うだろうか
1つの処理がバカスカスレッドたてて許される場面が思い浮かばないんだが
2025/09/21(日) 20:54:02.67ID:IgDJrn6I
>>208
Webなどは非同期タスクを使う
非同期タスクはマルチスレッド上でスケジューリングされる
スレッドは間接的に自動的に使われる
用いられるスレッド数は変更できるがCPUのマルチコアスレッド総数そのままがデフォルト値
210デフォルトの名無しさん
垢版 |
2025/09/22(月) 05:34:04.05ID:eSSLiA97
goてポインタ使えるのにgcなのわけわからん
2025/09/22(月) 12:38:06.53ID:TdSBLD5R
ARM版のWindows上でRustを使ってる人に質問です
x64用のbinaryを吐かせたいのですが
1.x64用のRustを入れて(Prism上で動作させて)そのままx64だと思い込んでコンパイル
2.ARM用のRustを入れてx64用にクロスコンパイル
3.その他
どれがお薦めですか
皆さんはどうやってますか
2025/09/22(月) 12:40:23.44ID:pcxt24gw
GitHub Actions上でコンパイル
213デフォルトの名無しさん
垢版 |
2025/09/22(月) 14:50:51.96ID:NxMlCQ3l
5年前ぐらいに試したときは、ARM版のWindows上で動作するリンカがなくて詰んだような覚えがあるな
(リンクとコンパイルは別だといえばそれまでになっちゃう話だけどさ)
今は変わったんだろうか?
214デフォルトの名無しさん
垢版 |
2025/09/22(月) 16:07:58.75ID:ugFXIsjr
Rustで業務開発している人、日本にどれだけおるんだろ
そもそも求人しても集まらなくない? tokioとかまともに扱える人、日本にどれだけおるんだろ
てか、そのレベルのコーダーならば、別の領域の技術まで収めてる可能性が高いから、
難易度の割に単価の安いRustに関わる現場に入ってくれる確率が低い気がする
2025/09/22(月) 16:40:27.78ID:amN/g6Kj
とりあえずtarget指定でクロスコンパイル
216デフォルトの名無しさん
垢版 |
2025/09/22(月) 18:24:20.41ID:vLYT2rnq
業務で使うとしても、ニッチなところでワンポイントで使うだけなんじゃないかな
2025/09/22(月) 19:04:44.83ID:Vzryeu9P
「Rust」の平均単価が3カ月連続上昇 エン・ジャパンがフリーランス案件の分析レポートを発表
https://atmarkit.itmedia.co.jp/ait/spv/2508/21/news045.html

開発言語別では、比較的新しい言語「Rust」が3カ月連続で平均単価を伸ばし、87万4000円(2025年6月比で4.4%増)で1位となった。

言語別単価表
https://s3-ap-northeast-1.amazonaws.com/enjapanhp/wp-content/uploads/20250815095506/%E9%96%8B%E7%99%BA%E8%A8%80%E8%AA%9E%E5%88%A54.png
218デフォルトの名無しさん
垢版 |
2025/09/22(月) 22:16:09.39ID:vLYT2rnq
>>217
エージェントの公開データを真に受けるのはちょっと…
あと、RustがGoと0.2しか離れてないわけがない。適当すぎ
2025/09/22(月) 22:23:29.95ID:32nEMimf
Rustの驚き屋とか自作自演しながらここに書き込むお仕事があるよ
220デフォルトの名無しさん
垢版 |
2025/09/22(月) 23:58:16.13ID:6AVVH58o
paypayがrust使ってjavaの10倍負荷下がったゆうてたしweb系なら求人ありそう
実際小さいベンチャーだと割とある
組込rustはさすがになさそう
2025/09/23(火) 00:20:48.81ID:fPMt7Vn0
組み込みは宇宙関係は(日本含めて)そこそこある
車はボルボあたりがやる気あるけど日系はどうだろうね
家電はまぁわざわざRustじゃなくてもって感じか
2025/09/23(火) 09:46:49.33ID:JEEzvMHJ
人命や数千億単位の金がかかってる機器の制御でヒープの動的アロケーションなんかやるもんなのか?
コネクティッドカー機能とか少々問題が出たところで死人が出ない上位レイヤなら、ある程度雑に作るだろうけど
2025/09/23(火) 11:07:26.61ID:fPMt7Vn0
OSないような低レイヤ組み込みならno_stdでヒープとか使わないでしょ
2025/09/23(火) 15:03:47.29ID:R9fXR9Ay
オナニーにも二種類あります
ムラムラしてやるのはいいオナニー、なんとなく暇だからやるのは悪いオナニーです
それでは、いいオナライフを
2025/09/23(火) 18:08:05.88ID:3GljEKUb
>>211
Win10かWin11かで違うね
Win11ならほぼ問題無いはず
2025/09/24(水) 10:08:26.98ID:sSJtDSWT
担当者の数が少ないレイヤは絶滅して数が多いレイヤだけが生きのこる・・・という科学の理論がある
計算機科学じゃないが
2025/09/24(水) 22:08:50.16ID:USnnfnCB
Rustコンパイラの悩みを一掃!開発者調査が示す、ビルド高速化への道
https://gamefi.co.jp/2025/09/17/rust-compiler-woes-sweep-away-developer-survey-shows-path-to-faster-builds/

2025年のRustコンパイラ性能調査の概要
この調査は、Rustの公式ブログで2025年6月にアンケートが開始され、9月9日に結果が公開されました。
調査の目的は、ユーザーがRustコンパイラの性能でどんな問題を感じているかを把握することです。
今後の改善策と関連ニュース
2025/09/25(木) 23:36:25.10ID:Inzkj0oI
コンパイルが遅いならjsを使えばいいというのがjsの存在理由なんだな
コンパイラもインタプリタもどっちも計算機科学の管轄内だし
外来種エセ科学に負けるな
2025/10/04(土) 21:39:35.87ID:MpcY569I
外来種エセ科学とかいう何の意味のない単語
2025/10/05(日) 23:48:14.10ID:J8doO7Is
Case Study: How Proton uses Rust to build secure cross-platform applications for millions of people
https://kerkour.com/proton-apps-rust
2025/10/06(月) 06:34:16.54ID:Lg9QofNc
unsafeという単語がもっと無意味な単語だったら発生しなかった疑問や議論があると思う
232デフォルトの名無しさん
垢版 |
2025/10/06(月) 08:57:27.48ID:2MfGYhwC
unsafe って outerRust 程度の意味だよなー
せいぜい鼻から悪魔召喚されるぐらいだから ヘーキヘーキ
2025/10/06(月) 23:49:08.71ID:qYNp3V7N
https://www.amazon.co.jp/dp/4798074926/
https://m.media-amazon.com/images/I/812GJac8n4L.jpg
2025/10/07(火) 05:36:35.33ID:HynxI6Nw
安心安全の爆速言語www
2025/10/07(火) 08:38:37.56ID:rIBjDf4i
トーンポリシングのようにトーンを変えるべきと言っているのではない
unsafeを使ったら大変なことになるぞというエセ帰結主義を変えるべき
2025/10/07(火) 23:34:16.46ID:XsK8AxHk
https://blog.0xshadow.dev/series/backend-engineering-in-axum/
2025/10/08(水) 06:12:45.82ID:BZ+5Tj3P
驚き屋なんだからリンクと一緒に驚いた事を書けよ
2025/10/08(水) 10:51:04.58ID:1WScrxrm
沈黙が生成されたのか
3回passしてもアウトにならないゲームに最適解はあるんだろうか
2025/10/09(木) 05:47:10.57ID:CxVpZ3lb
jiff と temporal_rs
ほぼ同時期にほぼ同じ設計・機能のcrateが2つ誕生してしまった
JavaScriptのTemporal仕様をRustで実装したもの
後者はChromeのV8エンジンで使用される
2025/10/09(木) 05:53:32.32ID:1tRwvakU
後者とは一体...
2025/10/09(木) 23:29:06.13ID:5jj473u7
Redis-rs 1.0.0 rc 来たね
242デフォルトの名無しさん
垢版 |
2025/10/15(水) 02:42:51.67ID:HPDHDP+y
Rustの構文を学習するのにかかる期間は平均して100時間
この話を聞くと、大抵の奴は『俺、他の言語の構文を普通の人の○○倍の速さで取得できたから、Rustもせいぜい30時間で取得できるだろうな』と考えがち
そういうの含めて平均100時間なんだよ。罠すぎる
2025/10/15(水) 12:10:29.06ID:3+xAPSs8
さすがに他の言語の経験があってRustの構文だけで100時間は池沼
VBAとかですら実務は厳しいだろ
244デフォルトの名無しさん
垢版 |
2025/10/15(水) 12:41:03.98ID:HPDHDP+y
The Bookをぜんぶ読んだらどう足掻いても100時間ぐらいはかかる
2025/10/15(水) 12:51:51.60ID:RLwHyQpR
毎日1時間だけでもたった3ヶ月で習得できる
Rustを理解できない人はよっぽどの境界
2025/10/15(水) 12:52:33.33ID:Wj1hklt3
「構文」の意味を理解していないレベルならそうかもな
2025/10/15(水) 13:35:07.70ID:R03CpXNj
100時間もかからないだろ
Rustは抽象化が進んでいて理解しやすくコードも書きやすく読みやすい
ところが抽象化は知能レベルがある程度ないとかえって難しく理解できないのだ
一部の人々にとってRustは難しい
2025/10/15(水) 14:50:44.09ID:Dy5l/sKj
などど知能レベルが低く抽象化を全く理解していなかったおじさんが言っており
249デフォルトの名無しさん
垢版 |
2025/10/15(水) 17:01:58.19ID:r5azlaHS
他の言語やってたら結構わかりやすいと思うんじゃが難しいか?
ぶっちゃけ所有権ライフタイムジェネリックだけ読むだけでもええと思うけどあとはパクリみたいなもんだし
2025/10/15(水) 17:27:57.11ID:Wj1hklt3
C++
C#系言語を一つ(TypeScript, Kotlin等)
関数型言語を一つ
これくらい知ってたら楽勝だね
2025/10/15(水) 17:59:28.03ID:LJhrxkeQ
Rust の型システムはだいたい Haskell そのまんまな感じ。
衛生的マクロは Scheme 風だし、手続き的マクロは Common Lisp をはじめとする伝統的な Lisp のスタイルが踏襲されてる。
Rust だけの特徴と言えるのはライフタイム注釈くらいじゃない?
まあそれがそこそこ馴染みにくいものではあるんだけど。
2025/10/15(水) 18:23:05.35ID:V1g0382z
所有権の複製おじさんいたやん
ああいう人にとってはRust難しかったやろな
あのクソコード見てるとなんか苦心が透けて見えて苦笑いやわ
253デフォルトの名無しさん
垢版 |
2025/10/15(水) 20:05:33.91ID:HPDHDP+y
>>249
学習コストが高いのは、所有権ライフタイムを除けば、マルチスレッド関連だと思う
シングルスレッドの同期処理しかやらないなら、10時間以下の学習で実践投入できる……かもしれないけど(やったことないから分からない)
2025/10/15(水) 20:24:15.79ID:EuiQLgBK
fortranよりも使われtないRustをこのAIの時代に学ぶって何の意味があるんだろ
2025/10/15(水) 20:45:37.79ID:uIA1Z+wo
>>253
マルチスレッド関連でRust特有はSendとSyncというマーカートレイトで区別するとは賢いなあくらいじゃないか
Mutexや条件変数など排他制御やchannelなどは他の言語で知ってれば困らない
いきなりatomicまで進む人ならメモリモデルはC++と同じ
ArcはRc理解した後なら悩むことなく
2025/10/15(水) 20:50:01.63ID:tYojUFcq
>>254
AI時代だからこそ、AIが扱う上で表現力が高くて高速堅牢な言語には価値がある
と言いたいところだが、Rustはライブラリを全面的にコミュニティに頼らなきゃいけないし、あまりデファクトスタンダードが揃ってなくて常に乱立してるからAIと相性良くないんだよなあ
乱立に関しては比較的新しい言語だからというよりは、文化的に割とそういう傾向がある気がするんだよね
257デフォルトの名無しさん
垢版 |
2025/10/15(水) 21:03:09.05ID:HPDHDP+y
>>255
Rust以前に触れた言語や領域の経験値と、Rustでやりたいことがそこまで被ってれば学習は早いだろうな
俺は元データサイエンティストだからC/C++とか触ってもOpenCVだったんだよね…
pythonの経験値は十年あるんだけどさあ
258デフォルトの名無しさん
垢版 |
2025/10/15(水) 21:04:31.59ID:HPDHDP+y
あと非同期処理周りでヒープにFutureをピンさしてメモリ管理するのいまだに慣れない
辛いわ
2025/10/15(水) 21:05:33.85ID:vyykZZUm
そういうコミュニティ依存って、今時の言語の、もっというとフロントエンドの文化なんだろうけど
それこそ10数年生きるのが普通なバックエンド向けのRustとは最高に合わないところではあるわな
260デフォルトの名無しさん
垢版 |
2025/10/15(水) 21:13:31.82ID:wJCBzpoD
>>254
C/C++の置き換えを狙ってるならFortranとはあんまし被らないでそ。
本気で置き換えるなら512Bや256Bという、1kBも無いようなマイクロコントローラーにも書き込めるバイナリ吐くとか。
(Cとアセンブラしかない世界)

そうでなくてもAIの時代だからこそ自動運転な自動車組み込み向けはC++よりもRust。

Fortranとなら、それこそスパコンで並行並列処理は文法的にはRustの方が有利だけど、ライブラリやら最適化やらはFortranが長年資産やノウハウがあるから一朝一夕には行かんわな。
それこそ、これからの動き次第。
2025/10/15(水) 22:43:58.29ID:/hVmSz/X
>>258
何が辛い?
個別に目的と必要性と仕組みを理解しておけば組み合わさっても困らない
262デフォルトの名無しさん
垢版 |
2025/10/15(水) 23:04:23.69ID:dwkfuJij
>>242
そもそも何を作るかによる
あんたのような素人は黙っていた方がいい
2025/10/16(木) 00:12:35.85ID:ljIqKmv0
非同期やマルチスレッドを使わない分野もいくらでもあるため
何を作るかによるのは正しい
しかし黙れはスレ妨害
264デフォルトの名無しさん
垢版 |
2025/10/16(木) 01:46:09.80ID:0KrpoGON
Rustの構文って無駄の少ない洗練された感じがあるよな
関数型言語ぽい部分も多いから古めの手続き型言語ユーザーからしたら難しいのかもしれないが
265デフォルトの名無しさん
垢版 |
2025/10/16(木) 02:22:05.21ID:trMgX6m0
日本はともかく世界的に見れば流行りの第一言語はpythonだから
そこからRustを覚えるのは割としんどいはず
266デフォルトの名無しさん
垢版 |
2025/10/16(木) 02:22:08.52ID:trMgX6m0
日本はともかく世界的に見れば流行りの第一言語はpythonだから
そこからRustを覚えるのは割としんどいはず
2025/10/16(木) 03:06:05.37ID:XSc3rEJ2
Pythonしか使えないような似非プログラマーは
Rustじゃなくてもいいから他の言語も使えるようになりなさい
2025/10/16(木) 07:39:35.29ID:LogNv62J
>>264
そうか?
C#などのモダンC系に倣って関数型由来の機能を取り入れてはいるけど、根本的に関数型じゃないからこそ複雑になってる面が大きくて、
割り切ってもっと関数型に寄せれば色々切り捨てることは可能なはずだよ
所有権や可変参照の排他性みたいなRustのユニーク機能って結局は手続きプログラミングのために必要になので
269デフォルトの名無しさん
垢版 |
2025/10/16(木) 07:49:42.75ID:dQTw8Gx2
>>264
逆ポーランドじゃない構文は、文を読む方向と制御の流れが異なるという根本的な問題があるから洗練されることは無い。UFCSぐらいはサポートしてほしいところ。
2025/10/16(木) 07:52:40.33ID:77JaeTBw
>>268
可変参照を許さない関数型は非効率で死んでいった
C++と同等の速度を出せないなら存在意義がない
C++と同等の速度を出せた上でRustは様々な抽象化に成功している
2025/10/16(木) 07:57:25.89ID:0MaBLq3K
>>269
UFCSは最悪の機能
可能な限りフリー関数をなくして最小限にすべきであり
UFCS適用可能なものはそもそもフリー関数ではなくメンバ関数とするのが正しい解決方法
Rustもおおむねその方向
272デフォルトの名無しさん
垢版 |
2025/10/16(木) 08:15:27.91ID:IOBKmFcT
pythonて人気てゆうよりもはやbasicみたいな感じじゃないの
python使う仕事てpython自体の知識より数学とか統計の知識がいりそうだし
てかaiてpythonみたいな遅いやつ使ってて大丈夫なんかな
rustにも機械学習ライブラリあるしそれでよくね
組込 web ai全部rustでできるせつ1
273デフォルトの名無しさん
垢版 |
2025/10/16(木) 08:18:48.99ID:dQTw8Gx2
>>271
それは洗練された構文の話じゃないね。自分でも「機能」て書いているのに気づいていないのかしらん?
2025/10/16(木) 08:20:17.29ID:LogNv62J
>>270
所有権や可変参照の排他性は場合によっては実行効率が犠牲になる
程度問題よ
2025/10/16(木) 08:32:20.65ID:CRgJz368
UFCSは有害な汚染
導入してはいけない
2025/10/16(木) 08:35:08.89ID:JsVTJVWO
>>274
所有権で実行効率が犠牲になる??
そんな事例あるか?
2025/10/16(木) 08:44:13.38ID:5Jgs3V7t
>>274
実行時にペナルティが生じうるケースなんてあるの?
278デフォルトの名無しさん
垢版 |
2025/10/16(木) 08:47:02.94ID:dQTw8Gx2
「正しい」とか「有害」とか断定してるのにその根拠は示せないのか。
科学から遠く離れた宗教の世界ですなぁ。しかも教祖ではなくタダの信者が権威を騙るのところとかは堕落した宗教みたいに見える。
2025/10/16(木) 09:01:39.29ID:UsUzzAEG
UFCSってフリー関数の第一引数が型Xならば勝手に型Xにimplしてメソッド増やしたことにみなしてしまおうという汚染のやつだろ
Rustではわざわざ混乱を避けるためや注意のため敢えてメソッドにせずにフリー関数のみを用意しているケースもあるくらい清潔さを気にしているのにそこへUFCS汚染を持ち込むのは正気の沙汰じゃない
2025/10/16(木) 09:28:00.47ID:CGNb/wdl
>>276
そりゃ現実に競合しないと分かっていてもMutexを使わざるを得ないケースとか普通にあるでしょ
2025/10/16(木) 09:48:06.42ID:0aSwdLuG
>>280
Mutexはマルチスレッドでメモリを共有する時にその排他制御のために使う
Cなど他の言語にもMutexは当然ある
「所有権で実行効率が落ちる」という聞いたこともない話の事例になっていない
2025/10/16(木) 09:56:20.09ID:CGNb/wdl
>>281
データストアを複数スレッド間で共有していても現実に絶対に競合しないと分かっている状況というのは普通にあるよ
2025/10/16(木) 10:07:41.24ID:LiHWqK2J
競合しないはず大丈夫だろうと思ってMutexを使わなかったために稀に競合する時のみバグる話はRustと関係なく大昔からあるよ
だからRustと関係なくどの言語でもMutexを使うのが正解
所有権と関係なし
284デフォルトの名無しさん
垢版 |
2025/10/16(木) 10:45:16.18ID:dQTw8Gx2
>>279
メソッドを厳密に管理したいんだったら、メソッドを表すドット表記とは別の表記を使えばいいだけの話かと。例えばアロー表記とか。
(もともとは>>264の洗練された構文の話だし)

メソッドにフリー関数とは違う特別な意味を持たせて使い分けしなくてはならないRustでそうなるのはそうなのかもね。
メソッドのユーザー側に隠蔽できていないのは洗練されていないと思うけど。
285デフォルトの名無しさん
垢版 |
2025/10/16(木) 11:10:36.20ID:trMgX6m0
Rustで非同期処理を実装してるけど、やっぱ魔境だと思うわ
俺はできるけど……って、謎の気持ちになる
286デフォルトの名無しさん
垢版 |
2025/10/16(木) 11:16:10.30ID:trMgX6m0
技術的にニッチなところ触りすぎてる時の危機感がすごい
2025/10/16(木) 11:17:39.14ID:hFPLpyjg
>>283
データ競合の検証が不十分なだけだ。
検証をサボる代わりに不必要なところまでガードするのもひとつの選択ではあるがそれを唯一の正解とすべきではない。
288デフォルトの名無しさん
垢版 |
2025/10/16(木) 11:37:34.04ID:trMgX6m0
排他制御はコードだけで競合しないことを保証できない時はとりあえず実装するものと思ってる
2025/10/16(木) 11:44:21.55ID:oH2hiodt
競合による不整合は殆どの場合複数のデータストアに跨って生じるもので、競合を想定していないロジックが万一競合したなら、Mutex使ってようがまともに動く可能性は低い
そもそもそういった予期せぬ事態が発生しにくくするという点においては、競合を防ぐ解としては関数型的なイミュータブルのほうがずっと有効だ
結局どこまで効率を犠牲にして安全側に倒すかという程度問題であり、決してRustのやり方が絶対的な解というわけではない
290デフォルトの名無しさん
垢版 |
2025/10/16(木) 12:45:11.24ID:732JrVKw
理屈は通ってるけど現場では通らないだろうな
2025/10/16(木) 13:18:22.07ID:XPeMMJXV
>>289
デタラメだな
その関数型的なイミュータブルでは何の解決にもなっていない
例えば最も単純な1, 2, 3, 4, 5, ...と順に抜けがなく重複しないID発行機をマルチスレッドで共有する場合を考えてみろ
2025/10/16(木) 14:14:20.51ID:LogNv62J
>>291
言葉通りにやるならSTMとかあるし、そもそも関数型なら実際には連番の遅延シーケンスを作ってmapするか、
もしくはIDなしで結果のシーケンスを作った上で後からIDを振るのが一般的だろうな
2025/10/16(木) 14:46:26.27ID:r/geUxba
>>292
話の根幹であるマルチスレッドに対応できていない
「連番の遅延シーケンスを作ってmap」「IDなしで結果のシーケンスを作った上で後からIDを振る」
しかも現実のシステムが作れない
2025/10/16(木) 15:14:30.10ID:8nYGMC36
>>289
関数型イミュータブル手法ではマルチスレッドで競合する部分をどう解決するの?

>>292
それでは何も解決できていないですね
2025/10/16(木) 15:28:40.11ID:CGNb/wdl
>>293
mapを並列実行すりゃいいだけ
Rustでもそんなcrate山ほどあるしごく普通のテクニックよ
2025/10/16(木) 15:33:47.69ID:7eXHvQg1
>>295
色んなリクエストを処理してるマルチスレッドが動いていて各々がIDを欲しいのだからmapは無理だな
2025/10/16(木) 15:38:04.63ID:CGNb/wdl
>>296
知らんがな
WebアプリなんだったらDBかUUID使うんだからmutexがどうのという話じゃないぞ
2025/10/16(木) 15:44:47.08ID:/TAOeXj6
>>297
そんな特定の話はされてないよね
マルチスレッドで必ず起きる競合を
イミュータブルな関数型を使えば回避できて安全だ!とウソの主張をする人がいる話だよね
2025/10/16(木) 15:56:59.81ID:CGNb/wdl
>>298
だからSTMでできるでしょ
CAS命令使うからlockなんか要らん
2025/10/16(木) 16:35:23.71ID:w55hMUbI
普通はatomic fetch-addするからソフトウェアのレベルでは競合しないわな
2025/10/16(木) 16:38:08.70ID:IDpz7JRe
>>295
mapを並行実行できるのはリソースを重ならずに分割できる狭い範囲の話のみだよ
実際に使ってみればわかるよ
共有リソースがある場合は無理
2025/10/16(木) 16:50:42.80ID:ObLVPGO+
>>299
RustもCAS命令が使えますしlock freeにできます
Rustの方法より優れた方法があると言う話の流れでそれは本末転倒でしょ
Rustが最善だと認めたことになってしまいます
2025/10/16(木) 17:54:47.80ID:w55hMUbI
クソダサい
小学生かよw
2025/10/16(木) 18:16:41.15ID:yQ7FE2zJ
atomicモジュールはC++を模倣しただけだからRustの方法とかRustが最善とか言うのは恥ずかしいからやめて
305デフォルトの名無しさん
垢版 |
2025/10/16(木) 20:04:40.86ID:3fXKt01N
それを言いだしたら
RustはC++0xから分岐した言語だし
2025/10/16(木) 21:06:43.72ID:JgNGnet3
結局Rustより秀でた方法は存在しないのかよ
307デフォルトの名無しさん
垢版 |
2025/10/16(木) 22:27:36.69ID:Aijr1hHS
並行並列処理と言えばHaskellで初めて知ったけど、STM(ソフトウェア・トランザクショナル・メモリ)とかはRustに無いの?
OCamlでもやってたからHaskell固有のものじゃないっぽいし、イミュータブルなRustに向いてそうだからRustにもありそうなもんだけど。
2025/10/16(木) 22:50:37.13ID:z8fEfbMT
>>307
cratesで実装してるものはあるけどRustとは合わないから基本的に使われない

Rustは関数型じゃないからcomposabilityへのこだわりがなく
race conditionを静的に避ける仕組みはすでにあるわけで
実行時のオーバーヘッドが必要なSTMをわざわざ使うメリットがない
309デフォルトの名無しさん
垢版 |
2025/10/16(木) 22:58:22.11ID:Aijr1hHS
>>308
そうなのか。
ありがとう。
2025/10/16(木) 23:57:58.80ID:S0/FXV9l
STMは基本的に競合の事後検証トランザクション方式なので様々な問題がある
1つは競合が見つかり検証失敗時にロールバックしてリトライするコスト
もう1つは競合が起きて事後に競合が見つかるまで競合した不正な状態のままプログラムが進むため
正常では起こらないループ停止条件の破綻による無限ループや
IOなど外部への副作用を伴うと不正な状態のまま正しくない書き込みが起きたりすることなど
2025/10/17(金) 02:21:36.13ID:tcxlU+Jp
>>310
事後検証方式だからダメみたいな考えは間違い
compare and swapだって事後検証方式だからリトライコストも発生するし
競合が起きて事後に競合が見つかるまで競合した不正な状態のままプログラムが進む
2025/10/17(金) 03:12:19.26ID:KXGM3Zvt
>>311
STMはCASよりコストがかかる
CASは不正な状態が生じない

まず競合時の復元コスト
STMはロールバックのためにトランザクション全ての記録が必要でその復元も必要
CASにはロールバックも値の復元もない
元々得た古い値がそのままあるかを確認するのみである

次に不正な状態のままプログラムが進むかどうか
STMはトランザクションの途中で競合が起きた場合にそれに気付かず進むため不正な状態になる
CASは競合が起きた場合にそれ以上進まないため不正な状態にならない
ちなみにCASで最初に得た古い値に基づき処理するのは不正ではなく正常な状態であり、競合が起きなければそれがそのまま採用される
2025/10/17(金) 07:05:35.11ID:r0gF6NYJ
単純に競合と1対1対応のCASを直接使う方が粒度も細かく自由度も効率も高いのは当たり前。
現実にはCASとは戦略の異なるLL/SC利用のCPUアーキテクチャもあってCASだけで抽象化するのは効率が悪く不利なので、C++とRustでは多数の不可分関数を用意していてそれらを使い分けることで対応できる。
アーキテクチャ毎のメモリバリアも様々なので、実装するアルゴリズムに対応して必要十分なメモリオーダーも指定する。
2025/10/17(金) 10:20:11.61ID:Anu0zAHn
さすがに単純なCASで代替するとかいう言説に関してはSTMというか基本的な競合と排他制御の概念を理解してきなさいと言うしかないが、
RustでSTMがあまり採用されないのは、>>308の言ってるようにそもそも静的に競合を回避できるケースを別にすれば、リトライ自体があまり好まれないというのが大きな一因だろう
所有権システムと相性最悪だし、レイテンシの予測可能性が損なわれる点はRustの得意分野を考えると受け入れ難い
Webなんかで雑にリトライしていいケースももちろん多いけど、そういうのはSTMなんか使わなくてもレコード単位の粗粒度な楽観ロックで十分だからな
2025/10/17(金) 13:56:47.42ID:8ZRl+8lG
>>312
STMのほうがCASよりコストがかかるのは当たり前
その分より高い抽象度で複数のオペレーションを1つのアトミックなオペレーションとして合成できる

CASならロールバックコストやリトライコストがかからないと思ってるのは間違い
CASの1つのメソッド呼び出しだけれ見ればそりゃロールバックもリトライもない
でも実際のアプリケーションではどちらも必要

STMの”不正な状態”というのは不正確な認識なんだけど
君の言うところの”不正な状態”というのはCASでももちろん発生する

>STMはトランザクションの途中で競合が起きた場合にそれに気付かず進むため不正な状態になる
CASだって競合が起きた場合にcompare and swap等を実行するまでは競合を検知できない
これは君が言うSTMの”不正な状態”と全く同じ

比較する粒度が根本的に間違ってるのかな
2025/10/17(金) 16:48:06.46ID:eIkdvZED
>>315
複おじの頭で捻り出せる限界が>>293程度の例なわけだから、複数のストアが絡むトランザクショナルな排他制御なんて想像できないんだろう
とはいえ単一のストアを想定するとしたらSTMは単なるCASと事実上等価になっちゃうから
CASと比較してSTMを下げるのはちゃんちゃらおかしいのだが、それも理解していないという
2025/10/17(金) 17:00:36.05ID:rge03BqN
ロックフリーはそれらの諸問題が必ず発生するから使い分けが重要
大きなトランザクションや副作用を伴うものや複数のリソースを扱うものは排他制御の方が有利なことが多いだろう

そして排他制御も使い分けが重要
リーダーが多いならMutexよりも同時利用が可能なRwLockが有利
非同期の場合は性質の異なるtokio::sync::Mutexとの使い分けも重要になってくる

ロックフリーも使い分けが重要
何でもCASを使って書くのは当然愚かで別アプローチのLL/SCアーキテクチャやアトミック演算命令の存在を考慮して各関数を使い分ける必要がある
CASも用途によってcompare_exchangeと偽陽性はあるがより軽くなり得るcompare_exchange_weakとの使い分けが重要

これらの各々の使い分けは用途に応じて少しでも速くなり得る可能性があるため行なわれる
初心者あるいはそこまで速さを追い求めない用途ならば常にMutexを選択するのもあり
2025/10/17(金) 17:28:34.85ID:eIkdvZED
RustにおけるMutex等による排他制御の強制って未定義動作(同一データストアへの書き込み競合により結果が不定となる)を生じさせないための必然的な要請でしかなくて、
それに従ってたらスレッドセーフなロジックになるわけでは全くないぞ
複おじはロックフリーやらない方がいいのは当然同意するけど、その辺理解してなそうだから多分Mutex使っててもバグってると思うよ
2025/10/17(金) 17:57:19.06ID:QSfCrbsy
そこにRust固有の問題は存在しないのに何言ってるんだこいつ
2025/10/17(金) 18:35:40.01ID:eIkdvZED
>>318の批判対象は複おじでありRust言語ではないのだが、アイデンティティの混同が窺えるな
Rustの”Fearless Concurrency”のコンセプトがこの人のような誤解を生んでいるとしたら、それこそがRust固有の問題かもね
321デフォルトの名無しさん
垢版 |
2025/10/17(金) 18:46:02.34ID:7a62yXuS
ここはプログラム技術板なので批判対象が技術や言語でないなら邪魔だからプログラマ板へ行くことを勧める
2025/10/17(金) 22:35:39.71ID:VAUjKotB
Rustのスレなんておじがいないと何日も1レスもつかないからな
実際のRustの盛り上がりっていうのはそういうもんなんだろう
2025/10/17(金) 23:16:32.65ID:lpyGApAF
5chの過疎化が進んでる
Goスレや次世代言語スレは最後の書き込みが7月
Nimスレは内容ある書き込みが1年以上前
324デフォルトの名無しさん
垢版 |
2025/10/18(土) 00:32:16.64ID:PpC41FyY
Rustの評価を上げているライブラリ、トップ5候補はなんだろ
tokio、regexは入りそう
325デフォルトの名無しさん
垢版 |
2025/10/18(土) 01:16:44.66ID:7PpY8fft
anyhowとthiserrorは愛用してる
326デフォルトの名無しさん
垢版 |
2025/10/18(土) 01:32:21.42ID:mfU+AWcn
serde
2025/10/18(土) 05:33:11.80ID:KVYf5X+q
Nushellいいね
PowerShellをRustで書き直したみたいな感じ
328デフォルトの名無しさん
垢版 |
2025/10/18(土) 07:21:55.57ID:+pPJqIeE
最新研究でわかった”職場のサイコパス”が無意識にする話題
2025/06/26 9:00
「サイコパス上司は犯罪者と同じ?」研究で明らかになった驚き ...
2025/08/21 5:00
「性格が悪い人」はなぜ存在する? 近年わかった、サイコパスより危険な「第五の性格」とは
2025.08.24
@ ナルシスト:自分が一番でいたい人.A マキャベリスト:人を思い通りに操る人.B サイコパス:他人の痛みに無関心な人.C サディスト:他人を苦しめて快感を得る人.
▽凶悪度が高い者ほどの者が上記の性格のものが下記の判断を正確に行っている
サイコパスの”冷酷さ”が「他者の心を読む力」を高めている
2025.10.17 06:30:58 FRIDAY
極右と極左の脳は驚くほど似た反応をすると判明!
2025.10.13 MON
※右翼従来型の職種.左翼技術の発展とともに新しい業種なので世界中全員該当
サイコパスはサイコパスに惹かれるという研究
2018.10.29 MON
AIに「いいね」の数を競わせると盛大に嘘をつき、誤情報をまき散らすことが判明
公開: 2025-10-16 08:00
>> 研究チームは3つの仮想環境を作成。 ・有権者に向けたオンライン選挙キャンペーン ・消費者に向けた商品の販売キャンペーン ・SNSでの投稿によるエンゲージメント(反応)最大化
▽上記のAIに反社の性格を搭載させてシミレーション
「人間の心」を間違いも含め再現できるAIが開発される
2025.07.04 17:30:07 FRIDAY
★き全職種の犯罪者発見
人間を殺害した各組織追い詰めるからな!
2025/10/18(土) 13:17:56.75ID:yF9FuM7b
>>324
一位はanyhow
二位はtokio
三位はserde
四位はtoml
2025/10/18(土) 13:48:14.12ID:DL6iH+H2
世間の評価という意味ではTauriやRatatuiみたいなやつじゃね
2025/10/18(土) 14:44:17.05ID:2PZM4Qqw
regexやchronoは標準ライブラリの薄さを補うためのもので、Rustの良さというと違うと思う
C++ですら普通に使えるようなものだし
clap や rayon なんかはどうだろ?
2025/10/18(土) 15:02:24.67ID:KVYf5X+q
他の言語に移植されたかラッパーが作られたライブラリこそが評価の高いライブラリと言える
2025/10/18(土) 16:27:26.83ID:0eGtySVo
>>332
それならPolarsがあるな
RustというかPythonのライブラリだけど
2025/10/18(土) 16:29:59.91ID:GLEaMoH6
>>317
もうめちゃくちゃだなw
抽象度の異なるものをごちゃまぜにしてるだけでなく
ロックフリーや排他制御が何なのかという基本すら理解してない

さすが複おじ
2025/10/18(土) 17:20:51.07ID:aFmekkis
おじ使いの人はいつもデタラメに言いがかりをつけまくってるけど具体的な情報をもたらさない特徴があるね
2025/10/18(土) 18:35:02.78ID:UciSXSRC
スレ荒らしだから無視しとけ
2025/10/18(土) 21:38:19.83ID:Cr/SjBQk
anyhowとかtokioも言語標準としてあってほしい部類だよな
serdeも今時シリアライズぐらい入っててよくねえ?とは思わなくもない
2025/10/18(土) 21:53:44.59ID:lw7uRrst
anyhowは今でこそデファクトだけど
quick-error -> error-chain -> failure -> anyhow
という変遷あっての結果だから標準ライブラリでなくて正解ではあったと思う
serde は安定してるけど結局tomlやserde_jsonは分離してるからそれだけ入っても、という感じか
2025/10/18(土) 22:10:01.44ID:rqZZHfes
いずれもどこまでを標準に入れるか難しいから標準は現状の最小限がいいよね
2025/10/18(土) 22:16:21.80ID:Bq7HEMC+
Rust crates recent downloads TOP30
1位 syn
2位 bitflags
3位 hashbrown
4位 base64
5位 regex-syntax
6位 proc-macro2
7位 indexmap
8位 regex-automata
9位 quote
10位 itertools
11位 libc
12位 heck
13位 serde
14位 memchr
15位 unicode-ident
16位 serde_derive
17位 cfg-if
18位 autocfg
19位 aho-corasick
20位 serde_json
21位 rand_core
22位 once_cell
23位 regex
24位 getrandom
25位 itoa
26位 windows_x86_64_msvc
27位 rand
28位 ryu
29位 cc
30位 strsim
2025/10/18(土) 22:20:56.31ID:KPPazjUG
排他制御で撃沈した複オジが話題転換しようと頑張ってる感じ?
2025/10/18(土) 22:29:27.69ID:c14bW0TY
多くのクレートが用いている基礎クレートが大量にあるから
もし標準ライブラリに入れるならそれらを優先だろうな
2025/10/18(土) 22:29:58.32ID:KVYf5X+q
itoaって独立したクレートとして存在したのか
2025/10/19(日) 00:23:47.35ID:/rAjciqO
標準でまかなえるものが多ければ多いほど、金取って保守する業務では使いやすくなるので
標準ライブラリはちゃんと保守できる範囲なら、でかければでかいほうがいい
2025/10/19(日) 00:35:19.83ID:9ztj93f6
金を取ってるのに標準ライブラリじゃないと保守できないってダメなとこじゃん
しかも標準ライブラリやクレートのメンテしてる人たちにお金を出す気もないんだろ
2025/10/19(日) 07:59:03.97ID:gJDR8NJC
そういうのは単純に「Rustが向かない領域の一つ」というじゃない?
できるだけリスクを減らしたい (依存を減らしたい) エンプラ分野で、OracleやMicrosoftにお金を払ってでも Java や C# を使う理由というか
自社開発なら、ライブラリが使えなくなる等のリスクも自分達の責任で済むから、話は違ってくるだろうけど
2025/10/19(日) 08:11:35.49ID:yziJ2vJ9
というかC/C++の代替としてはサードパーティのライブラリは十分に吟味してちゃんと手の内で把握して使うのが当然で、
Web系のアホの「なんかよく分かんないのが色々入ってるけど動いてるからヨシ!」は想定してないんだろ
2025/10/19(日) 08:12:34.65ID:ZwoILzIp
tokioなど大手IT各社が金出すか人出すか協力するかしていて信頼性が高い
もちろん各社が実際に使ってる
標準かどうかの名目よりそういうことが重要
2025/10/19(日) 08:18:08.18ID:BKDe7pGm
>>347
RustのWeb系基盤は一番下のtokioを含めて多階層に構成されていずれも標準ライブラリではないけど皆が用いていて安心感があるよ
2025/10/19(日) 09:01:48.04ID:g3E+bt90
コアチームの人もしばしば言っているけど
標準に入ったからといって自動的にメンテされるようになる訳ではなく
人手が足りないと単純に放置されて「このライブラリは標準だけど使わないほうがいい」とかなるだけなんだよな
2025/10/19(日) 09:18:07.38ID:w8upKtBd
RustはWeb関連が実際に業界大手のクラウドやCDNなどで使われているのが大きいよね
2025/10/19(日) 09:56:19.63ID:Zym90vNK
C++ での例だと文字コード変換の枠組みである codecvt は C++26 でまるごと削除になる。(C++17 の時点で非推奨)
結局のところ常に変化するし常に追従するしか仕方ない。
完成したらそれをずっと使い続けられるという訳ではない。
ウェブ界隈では常に改定し続けるという意識があるから問題か起きたらそのときに対応すればよいという将来に対して楽観的 (無頓着) な価値観が生まれたのたと思う。
2025/10/19(日) 10:00:00.50ID:Zym90vNK
産業的な価値観で見ると living standard という制度は気狂いにしか見えんが、ウェブの価値観ではこれが受け入れられるんだからな……
2025/10/19(日) 10:01:28.52ID:w8upKtBd
>>352
そのウェブ界隈って何?
Rustとは関係ない話?
2025/10/19(日) 10:22:53.22ID:HLuHJHjw
産業的には進化は止まってくれた方が使いやすい
開発者的には進化し続けてくれた方が新機能使えて楽しい
これ、両立できると思うけど。deprecatedされたら新しい機能使えばいい
俺たちベンダーの食い扶持にもなるとは考えられんか
2025/10/19(日) 10:27:52.04ID:RCLhWSPF
クラウド利用まで含めてWebベースのこの時代にWeb方面を批判してる人はWebと全く無縁な世界にいるの?
2025/10/19(日) 11:19:39.80ID:Zym90vNK
批判しているわけじゃない。
そういう価値観で動いていてその価値観が相容れない場合はあるってだけの話だ。
2025/10/19(日) 11:20:31.74ID:1nCMsk87
この文脈でのWebっていうのはフロントのことなのはわかると思うけど
開発経験ない人?
2025/10/19(日) 11:31:51.71ID:Zym90vNK
>>355
産業的には進化が止まるのが良いとは思ってないがバージョンナンバーがないと仕様をまとめるのに支障がある。
ひとつのプロジェクトは多くのサブプロジェクトの集合体で、ひとつのゴールに向かって進めいている途中に規格がかわっていくなんてのは管理しきれない。
完成したときに根拠の規格が古くなっていてもかまわないから一貫した規格を使いたいんだよ。
2025/10/19(日) 12:08:21.35ID:W54vligM
ここはRustのスレなんだから
元々のクレートの話のWeb関係もサーバサイドだよね
Rust以外の話をしてる人が場違い
2025/10/19(日) 12:16:46.65ID:bk9v/c8n
>>359
>>規格が古くなっていてもかまわないから一貫した規格を使いたいんだよ。

RustはCargo.tomlでバージョン指定すれば古くなっても一貫して使えるでしょ
2025/10/19(日) 13:20:36.22ID:HLuHJHjw
>>361
ツールチエンといふやつか!
nightlyに依存したコードとか書いてたら戸惑うとは思うけど通常は困らん
それに依存関係のあるグレートで致命的セキュリティホールとかあれば結局放置できなくて全部上げるしなあ
2025/10/19(日) 15:01:40.23ID:Zym90vNK
>>361
living standard にバージョンナンバーは存在しない。
現在のプロジェクトでどの規格に基づけと書くことができないし
Rust のウェブ関連のライブラリのどれがいつの規格に対応しているかわからない。
2025/10/19(日) 15:13:23.14ID:pT0uE4PB
>>350
今、rustfmtが放置されてるらしいね
2025/10/19(日) 15:30:20.66ID:KbF8yeKr
>>364
さすがに無責任すぎるね
偉そうに>>350みたいな偉そうな物言いをする以前の問題だわ
2025/10/19(日) 15:54:16.06ID:OdTstqtC
脆弱な言語だな
2025/10/19(日) 16:32:09.86ID:Zym90vNK
実際問題としては責任はないから無責任ってのは当たり前の話ではあるな。
368デフォルトの名無しさん
垢版 |
2025/10/19(日) 16:52:25.14ID:Slfms1FR
中水準言語、高水準言語、ライブラリ、フレームワークとなんでもあるプログラミング言語を語るのは難しい。
2025/10/19(日) 17:00:18.30ID:/rAjciqO
rustfmtって最近Linusがウンカスってキレてたけどそれで放棄されたん?
2025/10/19(日) 17:09:39.48ID:pT0uE4PB
>>369
それとは直接関係ない
2025/10/19(日) 17:38:21.32ID:KbF8yeKr
>>367
個人になくともRust財団にはガバナンスや品質管理の責任があるし、
個人もテック企業の社員が会社から金貰って業務としてRustの開発をしているから自社に対して対価に見合った仕事をする責任はあるよ
2025/10/19(日) 21:02:09.84ID:1nCMsk87
rustfmt最後のリリースが2023年7月か
コード自体は普通に今もコミットされてるみたいだけど、なんでリリースしないんだろうね?
373デフォルトの名無しさん
垢版 |
2025/10/19(日) 22:44:25.22ID:DrStTzLd
複おじが現れたときだけ不毛に無意味に盛り上がるスレ
2025/10/19(日) 23:28:35.37ID:aXP8YVkp
>>358
RustでWebの話はサーバーサイド
例外的にフロントの話をする場合でもWebAssembly利用
もし別の言語の話をしているなら明示的にその言語名を書きなさい
375デフォルトの名無しさん
垢版 |
2025/10/20(月) 10:34:27.56ID:P1GCyUuj
rustメンテイナーて結構給料いいの?
2025/10/20(月) 11:45:59.23ID:1ojc0PtK
そりゃ大部分はAWSとかMSとかの米ビッグテックの社員だからな
余裕で年収20万ドルオーバーよ
2025/10/20(月) 12:06:58.50ID:/GCbdeTP
>>375
Mozillaの給与水準は他と比べるとかなり低いがアベノミクスのおかげでシンガポールや香港はおろか韓国や台湾にも抜かれた貧しい日本の給与水準から考えればかなり高い
2025/10/20(月) 12:15:16.08ID:pO4VJ3Hu
Mozillaの社員なんて大規模レイオフでもうほとんど残ってないでしょ
今のRustは>>376のようなビッグテックが主導してるよ
379デフォルトの名無しさん
垢版 |
2025/10/20(月) 16:59:56.26ID:SRWHAJh/
アベノミクスのおかげでGDP過去最高609兆円、平均年収過去最高460万円、税収過去最高75兆円です
2025/10/20(月) 18:51:31.70ID:DCd4aGrf
>>379
バカ発見
381デフォルトの名無しさん
垢版 |
2025/10/21(火) 03:24:38.73ID:HSwZmZe3
はえーやっぱ給料いいんか
ibmでlinuxかーねる書くみたいな仕事とかも国内じゃまあ無理やな
2025/10/21(火) 03:46:47.30ID:oB45GTIt
Rustの有力開発者はみんなAstralで働いてる印象
2025/10/21(火) 08:21:33.19ID:iTOwcHSI
んなわけないでしょ
たかが従業員50人くらいのスタートアップが自分のプロダクトじゃなくてRustの開発ばっかりやってたらVCがキレるわ
それに仮にAstralがRustの最有力なんだとしたらRustはPythonの奴隷ということになるが、お前はそれでいいのか
2025/10/21(火) 11:09:21.75ID:l+qlgu4b
嫌な絡み方だなあ
そんなに癇癪持ちならプログラムでバグ出たときどんだけキレるの
385デフォルトの名無しさん
垢版 |
2025/10/21(火) 12:19:27.25ID:XD7lhD4Z
そりゃあもう開発室は修羅場よ
2025/10/21(火) 12:51:53.63ID:zjI3zBX4
独裁者あるある
立法の奴隷をやめようという発想で行政を暴走させる

自分で立法しないやつは奴隷か独裁者にしかなれないんだよ
2025/10/21(火) 14:45:27.32ID:la/0iqhD
Servo 0.0.1 Release
https://servo.org/blog/2025/10/20/servo-0.0.1-release/

えっ?
2025/10/21(火) 15:11:56.06ID:oB45GTIt
>>387
先月ナイトリービルドを試して、すぐにフリーズして使い物にならんなと思ったけど
2025/10/21(火) 16:12:17.01ID:GptfFBSs
Astral は Python のパッケージ管理を商品にして儲ける計画らしいけれど、今のところ真っ当に動いていない。
金が消えていくだけで入ってくる仕組みがいまだに何も出来ていないので心配されてる。
本当にどうなってんだろ?
2025/10/21(火) 16:36:04.66ID:hpThpzIv
ユーザーベースを広げて競合を潰しておくと有償機能を発表した時にユーザーの逃げ道が少なくていいんだよ

uvよりruffの拡張のほうがマネタイズしやすいだろうな
2025/10/21(火) 16:42:06.09ID:9Q/0i2Gr
>>389
今の規模ならエンタープライズ向けの有償サポートだけで十分食えるでしょ
2025/10/21(火) 18:26:55.85ID:x1GCjqC3
今のuvやruffでは有償サポートビジネスは無理
マンパワーの面でも相性が悪すぎる
2025/10/22(水) 10:19:41.33ID:fivlyo3h
AstralのイグジットはVCの成功シナリオとしてはG/A/Mに買収くらいしかないでしょ
もしくはdockerみたいに売り時を逃した挙句にエンプラ向けの企業と組んで細々とやるかだな
2025/10/22(水) 13:55:31.39ID:zYS+C6gy
Astralは要はAnacondaの商売を乗っ取ってやろうってことでしょ?
Anacondaは従業員300人いるらしいから儲かってそう
2025/10/22(水) 14:34:51.47ID:9KZ10JwK
Anacondaは突然の有償化で崩壊、自滅したでしょ
非難されることは目に見えてたはずだけど、金払う客が少しでも残れば十分に資金回収できると踏んだんだろう
収益化が見えずVCから資金回収を迫られて強引に手仕舞いすることになった形
2025/10/22(水) 18:48:15.08ID:A3Ttm+W+
複式簿記おじさん「国や企業の借金は投資家の資産です(回収しないとは言ってない)」
2025/10/23(木) 00:17:51.64ID:SNNXXGtL
アナコンダの件は企業は無料のを使っちゃいけないってお灸を据えた形にはなってて、うちの会社でも金払って使ってるわ
やっぱプログラマーとしては無料ほど高くつくものはないしサポート体制継続するなら有償でもいいって思うベンダーが我が多いってこと
2025/10/23(木) 00:49:38.88ID:j/9CbFi3
Anacondaみたいに全力で嫌われちゃうと今後はもう先細りしかないからなあ
企業での利用だったらとりあえずは金払ってもいいけど、将来性の面で問題があるから乗り換えを考えるわ
399デフォルトの名無しさん
垢版 |
2025/10/23(木) 02:13:47.52ID:T3GhTn1Z
引数がふたつ以上あるときのライフタイム注釈ているかこれ
アプデで省略できるようにしてくれんかな
2025/10/23(木) 08:02:52.36ID:uSK82vvB
確かに面倒だけど、実装から推論するのはRustの根本設計思想的にNGだからどうしようもない
どうせ書くのAIなんだから今となってはもうどうでもいいことだし
2025/10/23(木) 08:26:01.60ID:EvN9HHeU
大した手間ではなく
むしろライフタイム注釈は有った方が読みやすく
参照の流れも理解しやすい

struct Foo<'a, 'b, 'c>も
3系統の参照が入っていると明示され
他の言語よりも理解しやすくなってる
402デフォルトの名無しさん
垢版 |
2025/10/23(木) 09:55:41.49ID:T3GhTn1Z
なるほど。。。
変数に生存期間があるのはわかるけど「変数の型」にまで生存期間があるってのがようわからんぜよ
2025/10/23(木) 10:42:16.86ID:rbYHJ9y2
ライフタイム注釈も型のジェネリックパラメータの一つと考えればよいかと
参照のライフタイムは現行関数を抜けたら即死ぬ参照からもっと祖先の関数まで持ちこたえる参照そして永久不滅の参照まで色々あるけどジェネリックにいずれも入り得る
2025/10/23(木) 11:33:06.85ID:RL60E7N6
>>402
なるほどじゃねーよ
簡単に騙されんな
2025/10/23(木) 12:08:09.39ID:uSK82vvB
>>401
設計者も手間だと思ってるから引数一つの場合の省略ルールがあるのに何言ってるの
引数が複数のときにライフタイムの明示が必須なのは、シグネチャだけの推論では多くの場合において過剰に強い制約を生じるから
仮にシグネチャだけで安全に推論するなら、戻り値のライフタイムは最もライフタイムの短い引数に合わせるしかないだろ?
そうするとスコープがネストされているような場合に戻り値が短いスコープの方に制約されてしまう
実用上はそれでも問題なく使えるケースは多いはずだが、本来の必要最低限の制約とは食い違うというのが設計者には許せなかったのだろう
2025/10/23(木) 12:30:49.98ID:qu5HXOyL
だからこそライフタイム注釈の明示的な指定が重要
それがあることでコンパイラもコードレビューも正しい判断ができる
2025/10/23(木) 14:21:00.93ID:fxiWIqfp
注釈はプログラマの意図の表明だ。
意図と違う形で辻褄が合っても問題だろ。
よほど自明の場合だけ省略できるようになってるけども、どのレベルから自明と言えるかは感覚的だからな……
2025/10/23(木) 15:22:08.96ID:k6u6s2rE
ライフタイムの指定を省略できる場合であっても、省略すると戻り値のライフタイムの制約が必要以上に強くなってしまうケースは普通にあって、
>>405の理屈を厳格に適用するなら引数が一つでもライフタイムの明示は必須だ
食い違いが生じるケースがどれくらいの頻度で発生するかという統計の問題なのよ
2025/10/23(木) 15:27:37.26ID:hDpBG7ml
二つを'a 'aにすると寿命の短い方に揃えられてしまうけど
二つを'a 'bにすると各々の寿命が尊重されて後に出来ることの範囲が広がるって話?
2025/10/24(金) 10:04:48.68ID:PHL/ybvS
であるか
411デフォルトの名無しさん
垢版 |
2025/10/25(土) 12:18:04.03ID:dx13CXH8
ライフタイムめんどくせえし全部stringで返すべと思ってたら&strとstringの速度差はだいたい10倍あるみたいなのでやっぱできるだけ&strで返そうとおもた🐼
2025/10/25(土) 12:27:15.75ID:dvc0RMgV
そりゃ先頭ポインタと長さを返すだけで済む&str返しやスライス&[T]返しが圧倒的に速いよ
2025/10/25(土) 12:30:11.50ID:5GqPIi/l
>>411
実際のアプリではそこまで差は出ないでしょ
マイクロベンチマークが見せる幻想
2025/10/25(土) 12:36:43.77ID:mHIPVewV
&str返しができる状況でString返しをしてしまうセンスだと至る所で似たような非効率をしてしまいかねない
2025/10/25(土) 14:30:41.07ID:tv80YbgW
そもそもそのへん無頓着ならPythonとかのスクリプトでよくねっていう気も
2025/10/25(土) 15:28:17.84ID:Sq0aKQjf
たまにはCowのことも思い出してあげて🐮
2025/10/25(土) 16:30:57.36ID:dHJk9AZa
>>411
繰り返し呼ばれない関数で文字列がそれほど長く
速度的なメリットよりもライフタイムを引きずり回すデメリットが大きくなる場合は
&str返しできる状況でもstring返しをする

それ以外は&strで返せるなら&strを選ぶのが基本
418デフォルトの名無しさん
垢版 |
2025/10/26(日) 12:11:46.95ID:YIXSQNu/
文字列は用途によってはstring_cacheなど使ってintern化すると一気に扱いやすくなるよ
2025/10/26(日) 15:33:24.64ID:QFgKHJ6W
「用途によっては」「条件によっては」を付けたらだいたい何でも正しいよ。
つまり無意味だってことだ。
2025/10/26(日) 15:48:22.18ID:qLJPEdq/
何にでも向き不向きがあり万能はないため特徴と用途を比較して適切に選ぶ必要がある
文字列の比較があるならinterningは有利
同じ文字列が出てこないなら機能を発揮しない
それでも64bit ID化される点で参照や所有権を気にすることなく気軽に扱える視点での利点はあるかな
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
2025/10/26(日) 22:50:15.71ID:/3Ktl5T9
高い抽象度で使いやすい言語は他にもあるけど速さ省メモリを両立させた言語はRustが初だな
それだけでも十分に価値はあるけどセキュリティ面から今重視されている安全性まで両立させたことが決定打
2025/10/26(日) 23:04:51.09ID:v+5C5Bjl
> 安全性などはついでのオマケ
 
安全性に勝るものなどないのに馬鹿丸出しw
424デフォルトの名無しさん
垢版 |
2025/10/26(日) 23:17:12.99ID:X+0qei7I
安全性が使用動機でなくても
他のメリットも他言語に例がなく十分満足できる言語とは言える
2025/10/26(日) 23:20:44.90ID:B58XHKxc
Rustは実際はc++の代用として使われる事例がほとんど
ユーザーは欧米に偏っていて一番IT人材が多いインドではほぼ使われていない
2025/10/27(月) 00:24:06.81ID:mFVRCEv/
>>425
インドでもRust利用企業が多い

Companies that use Rust in India
https://theirstack.com/en/technology/rust/in
2025/10/27(月) 02:06:07.73ID:LFGbdGCc
下馬評垂れてればプログラマーとしての格が上がるとでも思ってるんだろうか
2025/10/27(月) 06:13:04.93ID:AST59Cdb
>>425
各スクリプト言語からRustが多いよ
例えば遅くて困っていたツールなどで新たに良いものに作り直す時にRustが選ばれてる
先週このスレで話題になってたPythonのツールの話もそれだね
429デフォルトの名無しさん
垢版 |
2025/10/27(月) 06:31:46.50ID:bSWiCsX6
rustにも機械学習ライブラリあるしaiもrustでよくね
2025/10/27(月) 09:29:34.52ID:/CEP+D0A
>>429
そういう実際の経験に基づく説得力のあるコメントは参考になる
やっぱ人工知能を実装するならRust一択という結論に至った
2位の候補はC++だけど僅差でRustが使い勝手上かなあ
2025/10/27(月) 09:32:19.04ID:/CEP+D0A
>>428
遅くて困っていたツールってほど遅いのは普通に設計ミスじゃ無いの
たとえばspawnせずにシングルスレッドで回してる箇所見落としてるとか
言語による性能差意識できるほどRustがいいとは思えん
わざわざ他の言語で書くより、元のプログラミング言語でリファクタリングの方が楽だと思うけど
2025/10/27(月) 09:34:42.42ID:/CEP+D0A
>>426
英語はよくわからんけど、408社ってインドの有名企業のほぼ全て採用ってことか
メジャー企業はインフォシステムとかタタとかしか知らんがそこまで普及したのはここ数年よね
なんか日本より導入進んでね?
2025/10/27(月) 09:36:22.75ID:/CEP+D0A
>>425
欧米とインドだと案件の内容が全く違うんだよなあ
たとえばフロントエンドをインドに外注とかならRust使わんし
あえてバックエンドをインドで開発??あんま無いよなあ。バックエンド系の新サービスは欧米強いもんなあ

日本も同じこと言えるけど;;;
2025/10/27(月) 09:47:02.67ID:MUgrXvxY
>>431
実際にJavaScript・Python・Rubyなどスクリプト言語の補助ツールはRust製が多いよ
言語による性能差はあるのでしょう
435デフォルトの名無しさん
垢版 |
2025/10/27(月) 13:52:59.21ID:HMompUGJ
TypeScriptのコンパイラは色々あった末結局goで書き直されたな
rustになるかと思ってた
2025/10/27(月) 15:03:44.84ID:qhXNWfqN
>>431
設計をやり直す機会に書きやすい言語Rustに変更する場合が多いためRust製が増えた

>>435
それは事情と結果が解説されているが、元のコードと可能な限り1対1に対応する『移植』をしたかった
クラスベースの言語や非GC言語はその点で元コードと対応がとりにくくて脱落し、たまたまGoだけ上手くいった
2025/10/27(月) 15:22:52.00ID:8ULsq5Jc
Rust で書いて速くなるものは C でも C++ でも速くなると思う。
適切に再設計できれば。

ただ、書き直す機会があるときにこの時代にあえて C や C++ を使いたいとは思わないし、
元が C や C++ だったら同じ言語で書きなおすと元の設計に引きずられて同じような駄目なことをまたやってしまう。

Rust が特別に良いとまでは思わないけど「一新する良い機会」ではあった。

Go も良い言語だと思うけど抽象度は高くない。
C の駄目 (というか面倒くさい) なところである文法の不必要な複雑さやメモリ管理を楽にしたという側面が強くて、
大規模なプログラムを整理するのはちょっとしんどい。
出来るという人もいるんだけどそういう人はたぶん C でも出来てしまうタイプの剛腕だから参考にならない。
2025/10/27(月) 15:53:13.91ID:qhXNWfqN
そうだよな
TypeScriptの件がたまたまGoだけJSと1対1の対応を取れたのも、Goが抽象度高くない言語だったため
439デフォルトの名無しさん
垢版 |
2025/10/27(月) 17:49:39.72ID:HMompUGJ
Rustが欲しいというよりCargoが欲しいんだよ
って思ってたらCabinとかいうの見つけて笑った
2025/10/27(月) 18:45:30.45ID:l4eceh5X
でもなんでRustは欧米中心で使われててその他で低いんだ?
コミュニテイーの所属者もそんな分布でアジアは低い
1位アメリカ
2位ドイツって
日本は11位
2025/10/27(月) 19:32:35.62ID:UgAh1tV0
Goも似たような感じだね
単にsurveyのアナウンスが拡散されるプラットフォームの人口分布に引っ張られているだけな気もする
RedditとかHackerNewsとか
2025/10/27(月) 19:41:30.85ID:FbhZH/Sk
>>438
違うよ
Rustでも抽象度の低いコードは書けるけど、メモリ管理と所有権システムが邪魔で一対一対応が無理
2025/10/27(月) 19:42:44.69ID:edSRXQey
リファレンスが英語だからな
ガイドは翻訳されてるけどライブラリ周りはどうしようもない
444デフォルトの名無しさん
垢版 |
2025/10/27(月) 20:06:35.18ID:oTj8oDFF
でも中国5位じゃん
2025/10/27(月) 20:56:19.83ID:qhXNWfqN
>>442
その説明は既に>>436で書いた
所有権システムとメモリ管理を並列に「と」で並べるのはおかしい
446デフォルトの名無しさん
垢版 |
2025/10/27(月) 21:04:31.26ID:syMP9q/B
Rustのコレクションは移動なしでは書けまい
2025/10/27(月) 23:32:35.09ID:OMtkXyUi
>>446
意味不明だな
移動は最も基本的な不可欠な概念
移動の概念がなければコレクションどころか何も動かない
448デフォルトの名無しさん
垢版 |
2025/10/28(火) 03:31:36.61ID:jbGu9KYL
Rustのコレクションは基本的でかつ非自明的にすごい
それはシャローコピーでもディープコピーでもないものが書かせた
2025/10/28(火) 17:50:32.18ID:rJCEklN9
>>447
バカなの?
2025/10/28(火) 18:01:51.21ID:KGeQ1yOx
>>446
コピーはダメだけど
コピーよりコストが安くなり得る移動は問題ないでしょ
451デフォルトの名無しさん
垢版 |
2025/10/28(火) 19:07:26.87ID:Zt6hv4It
goてunixの作者が作っとうけえあんなに使われてるんかな
ポイント使えるのにgcがあるとゆうようわからん仕様
2025/10/28(火) 23:49:42.09ID:tW1WhAkg
>>451
Goのポインタは構文はC風だが、できることはJava等のGC言語のオブジェクト参照とほぼ同じ
そして、GC言語のオブジェクト参照はポインタとして実装されており、ポインタとGCの組み合わせは全く矛盾しない
2025/10/29(水) 01:38:08.80ID:KUd6rxlw
C#だってGCあるけどポインタ使えるじゃん
454デフォルトの名無しさん
垢版 |
2025/10/29(水) 12:14:41.38ID:vbO9JSKW
DBを使用するスマホアプリのバックエンド開発でRustを使用してるけど、sqliteがシングルスレッドでしか使えないから
逆に複雑な設計を求められるな。慣れるまできつい
2025/10/29(水) 15:34:17.17ID:L881d/fh
Rustエンジニアをクビにして代わりにペチパー雇って、浮いた金でMySQLに変えた方が遥かに速くなりそうだな
2025/10/29(水) 17:35:51.56ID:DwSXyKDH
RustはSingletonの初期化と共有がすっきりしないな
初期化忘れのunsafeが付き纏うからどこかで割り切らないといけない
457デフォルトの名無しさん
垢版 |
2025/10/29(水) 19:33:33.85ID:OVpZFjzC
once_cellでええやん
2025/10/29(水) 21:05:45.94ID:DwSXyKDH
OnceCellのget_or_initだと初期化処理が動くタイミングが読めない

気持ち悪いからmainの最初で初期化する

共有する時に毎回初期化済みかチェックするの無駄では

unsafe「呼んだ?」
2025/10/29(水) 23:50:28.94ID:xf92jPdM
そんなコード書くやつはクビ
2025/10/30(木) 00:25:31.66ID:9N/j/0Me
別にチェックしたらいいやん
逆にそんな初期化タイミング気にする理由教えてよ
「最初にたまたま使うタイミングで」初期化で自然なのにあえてメイン関数で初期化する理由
2025/10/30(木) 00:26:18.06ID:9N/j/0Me
>>454
sqlite 嫌いや
2025/10/30(木) 00:40:46.28ID:srGle5DG
初期化で重い処理があると変のタイミングで遅延が発生するのが気になる
最初にxxx_init(gl_initとか)で初期化するライブラリに馴染んでるのもあるけど
2025/10/30(木) 01:29:19.31ID:bVySussB
つかOnceCellじゃなくてLazyCell使えば?
初期化タイミング固定したいなら一発getしとけばよし
2025/10/30(木) 03:16:33.13ID:X8TSXlMe
>>454
>sqliteがシングルスレッドでしか使えないから
sqliteはマルチスレッドでも使えるぞ?
465デフォルトの名無しさん
垢版 |
2025/10/30(木) 03:58:11.87ID:KK7tlxBe
dockerhub見るとポスグレのほうがマイエスの2倍くらいpullされとうけどやっぱマイエスてオラクルだから嫌われてるの?
2025/10/30(木) 04:18:06.36ID:92TxX2hJ
>>463
最初のアクセス時に自動初期化してくれるだけでよいならDeref/DerefMutが使えるLazyCellが圧倒的に扱いやすいね
そうでなく初期化のタイミングを自由にして初期化以前はNoneを返したりset/takeを使ったりしたいならOnceCellだね
2025/10/30(木) 10:22:35.58ID:zpGcc97R
どっちもスレッドセーフじゃないだろ
2025/10/30(木) 10:35:58.35ID:bVySussB
そっすね
2025/10/30(木) 10:41:04.39ID:JG/b/82+
それぞれに対応するスレッドセーフ版のOnceLockとLazyLockがある
2025/10/30(木) 10:48:00.79ID:JG/b/82+
なのでそれを常識としてOnceXxxxとLazyXxxxの性質の違いの話かと
2025/10/30(木) 10:52:57.20ID:zpGcc97R
>>458
共有前にmainで必ず初期化するのであれば
共有後に毎回初期化済みかチェックする必要ない

逆に共有後の初回アクセス時に初期化するという形をとるなら
初期化済みかどうか毎回チェックするようなコードがどこかに必要

毎回チェックするコードを自分で書きたくなければ
LazyLock等に肩代わりしてもらえという話
2025/10/30(木) 11:04:47.24ID:zpGcc97R
>>466,470
LazyCell/LazyLockのget/get_mutがもうすぐstabilizeされるから
初期化以前はNoneを返すというのはどちらでも同じようにできるようになる

初期化関数で引数を受け取る必要もなく常に固定の初期化関数を実行すればいいだけならLazyCell/LazyLock
引数を受け取ったり条件によって違う初期化関数を実行したい場合はOnceCell/OnceLock
これが基本的な使い分け
2025/10/30(木) 11:23:27.81ID:JG/b/82+
使い勝手が天と地の差
Lazy~はderefできるから*Xでアクセスできてコードも見やすい
Once~は返値Option処理かget_or_init(|| ...)が必要
2025/10/30(木) 11:31:00.93ID:Nj0jrilV
シングルスレッド+遅延評価ではタイミングが不明
別スレッドのスタックに置けば遅延しないのでかえって違和感が少ない
2025/10/30(木) 12:35:20.68ID:zpGcc97R
>>473
それは使い分けの結果であって原因ではないからな

LazyCell/LazyLockでもinterior mutabilityを使えば
初期化時に引数を受け取るのと同じようなことができるが
get_or_init以上に使い勝手が悪化するから
derefしたいかどうかで選ぶものではない
2025/10/30(木) 13:04:12.82ID:Nj0jrilV
Option処理をしたくないとき
JavaにたとえるとNullPointerExceptionをcatchしたくないとき
必要なのは「catchされませんでした」みたいなパニックを容認すること
これがスタンダード

unsafeが必要だという考えはスタンダードではない
2025/10/30(木) 13:10:40.17ID:Nj0jrilV
unsafeもpanicもどっちも自由に使えばいい
panicを禁止するためにunsafeを使いたいのだとしたら自由とは言えない
2025/10/30(木) 21:08:57.21ID:8A2yOaqe
>>476
>Option処理をしたくないとき
まずこれが全くスタンダードじゃない
Option処理をしたくないなどという理由は容認されない
479デフォルトの名無しさん
垢版 |
2025/10/30(木) 21:45:45.78ID:pM7Xv5YE
例外処理でも条件分岐でも、わざわざ明記することはあっても、いつもそんな起きないことを書いていたら、他人には起きる例外だと認識されてしまう。
2025/10/30(木) 21:53:26.04ID:Nj0jrilV
Optionは長さに制限があるキューと考えられる
キューが空なら読む側はブロックすればいいのにブロックしないから無駄に複雑になる
481デフォルトの名無しさん
垢版 |
2025/10/30(木) 21:56:50.09ID:i4jbq83k
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);
483デフォルトの名無しさん
垢版 |
2025/10/30(木) 22:01:59.88ID:dCoHjFig
そういうのは一番嫌われる
484デフォルトの名無しさん
垢版 |
2025/10/30(木) 22:02:57.95ID:dCoHjFig
意味のない値に意味を持たせるのは最悪
2025/10/30(木) 22:17:52.20ID:JG/b/82+
FOOやBARは例示で用いる昔からの慣習だよ
Rustの標準ライブラリのdocでも使われてるよ
2025/10/30(木) 23:31:49.22ID:Nj0jrilV
2進数に集合の意味をもたせるとか、方程式に図形の意味をもたせるとかね
2025/10/31(金) 00:39:35.14ID:Z56C2bCz
>>482
さすが汚コード製造機の二つ名は伊達じゃないな
可読性が向上するw
2025/10/31(金) 01:23:46.44ID:UvKtMOZk
#defineが嫌われていなければexpect云々を#defineするだけで解決するが
嫌われているのが現実?
いや、好感度など無視して解決可能というのが現実じゃないか
489デフォルトの名無しさん
垢版 |
2025/10/31(金) 01:26:08.34ID:VeWziky5
C/C++のクセで毎回、何かを確認しないといけないと思い込んでいるのかな?
2025/10/31(金) 01:36:15.69ID:bL01KoQp
LazyLockは変数宣言を見れば初期化のための式や関数を追える点でも可読性いいよな
2025/10/31(金) 02:15:05.64ID:IDNiCq6B
Cellを激推ししてた時代の複オジを思い出した
成長しないね
492デフォルトの名無しさん
垢版 |
2025/10/31(金) 03:52:17.44ID:VeWziky5
C++のように使いたい人間がいるから面倒なんだよなあ
2025/10/31(金) 04:51:55.42ID:FXqlUjZZ
久しぶりにC++いじったら、依存ライブラリ管理がめんどくさすぎてキレそうになった
cargoはえらい
cmake大嫌い
494デフォルトの名無しさん
垢版 |
2025/10/31(金) 07:07:09.98ID:W/94wpUF
OnceLockやLazyLockを嫌いな人は代わりに何を使っているの?
2025/10/31(金) 08:13:57.15ID:UvKtMOZk
Mutex<Option<T>>
496デフォルトの名無しさん
垢版 |
2025/10/31(金) 08:16:32.55ID:W/94wpUF
>>495
デタラメな回答はダメ
2025/10/31(金) 08:43:37.37ID:zOlX52p0
初心に帰ろう
static mut FOO: MaybeUninit<Foo> = MaybeUninit::zeroed();
498デフォルトの名無しさん
垢版 |
2025/10/31(金) 08:47:38.08ID:W/94wpUF
unsafeは論外
2025/10/31(金) 11:44:05.74ID:UvKtMOZk
デタラメがダメならやはり
ウソでも本当でもないポストモダンみたいな言葉を話すのが一つの手段なんだよな
2025/10/31(金) 14:32:08.02ID:6Y8XYqCD
>>482
なんだこれ?
BAR初期化関数の中で普通に環境変数読めばいいだけだろ?
しかもこんな雑にpanicだらけのコード書くやついたらブチ切れるぞ
2025/10/31(金) 14:41:51.16ID:UvKtMOZk
まあいいじゃんそういうの
2025/10/31(金) 14:48:40.46ID:23LwyDl2
>>500
exampleで本題ではないエラー処理を略すのは常識なんだがdoc.rust-lang.org見たことない人なんやろか
2025/10/31(金) 16:19:06.11ID:Q4NMZH5V
現実にはあり得ないコードで可読性を論じるおバカさん乙
2025/10/31(金) 16:34:52.47ID:nOVciEeR
代案を出せばいいんじゃね
2025/10/31(金) 18:21:19.45ID:UvKtMOZk
案が増える保証はどこにもない
コメのように減産も増産もありうる
2025/10/31(金) 18:29:01.57ID:GZFK+llv
「批判するなら代案だせ」ww
度し難いクソコードに代案を求めるなよ

しかも既に代案出してもらってるというのにこのバカは
2025/10/31(金) 18:45:07.30ID:Gjt4wm2R
OnceLockとLazyLockがクソコードってRustのスレッドセーフ初期化で辿り着いた最善案なのに
2025/10/31(金) 18:47:08.71ID:FXqlUjZZ
代案はZigを使うこと
2025/10/31(金) 19:49:57.01ID:MSFuZ4Ne
昔は初期化のためにlazy_static!が使われてた
そこへ改良されたonce_cell::sync::Lazyが登場した
それを標準ライブラリに取り込んだのがstd::sync::LazyLockで最終形
2025/10/31(金) 20:47:30.17ID:T+pQSrXv
質問者が消えて要件不明なのにいつまでも基礎的な部分を整理だけし続けるいつものやつ
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>> 内部可変が必要で動的初期化をしたい場合
2025/10/31(金) 21:45:15.58ID:T+pQSrXv
内部可変ってそういう意味じゃねえから
2025/10/31(金) 21:48:39.11ID:nBW4bT0X
このようにRustは非常に使いにくい言語です
2025/10/31(金) 22:01:01.32ID:UvKtMOZk
初期化と代入の役割は全く異なるとも言えるし、ほとんど同じとも言える
これも逆転しやすい
些細な変化で善悪が逆転する
2025/10/31(金) 22:20:06.99ID:Bc1Z9Piy
>>507
君の書いた>>475がクソコードなだけで
クソコードで使われてるLazyLockやOnceLockがクソだという話ではない
下手くそな論点ずらしはやめろ
2025/10/31(金) 22:21:19.33ID:Bc1Z9Piy
間違えた
クソコードは>>482だった
518デフォルトの名無しさん
垢版 |
2025/10/31(金) 22:40:17.03ID:+FXrANIZ
>>513
safe Rustではstaticは不変値になり不変参照しか得られない。
そのような不変参照しか持たない場合でも可変な借用を得られる仕組みが内部可変性。
>>512ではそのstaticで内部可変が必要な場合と不要な場合の区別が重要なので分けて説明したが、何を問題視している?
2025/10/31(金) 23:01:52.93ID:UvKtMOZk
任意のTを実体化可能
内部可変を禁止できると思ってるなら事実誤認
2025/10/31(金) 23:53:36.36ID:8btOyh6t
>>516
コード見たけど何が問題なのか教えて
2025/11/01(土) 10:00:34.52ID:aFOqjWrP
>>520
482みたいなAIやら人工知能に書かせたコードの善し悪しなんて語っても無駄
2025/11/01(土) 10:21:55.29ID:uKbhU6EZ
生成AIのほうが>>482なんかよりはるかにまともなコード書くぞ
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

という非常に脆い構造です。
初期化の安全性がコンパイル時に保証されず、実行時の偶然に依存しています。
2025/11/01(土) 10:30:45.08ID:uKbhU6EZ
「動くけど設計として危険・臭い」という典型的なクソコードです!
2025/11/01(土) 10:55:39.21ID:/uJItwLS
なぜAIはクソかを質問して
「AIの学習に人間が必要ということは自動初期化が成立していません」を生成できたら少しは信用できる
2025/11/01(土) 10:58:56.69ID:g3WZAZrD
>>518
たぶんRefCell/Mutex/RwLockあたりのロック付き型のことを内部可変性って呼んでるんだろうなって思ったけど

>不変参照しか持たない場合でも可変な借用を得られる仕組みが内部可変性。

この説明ならやっぱりそういう意味で書いてそうだね
Cell<T>もAtomic***も、さらに言えばLazyCell<T>も内部可変じゃないことになるが、まあそんなわけはないのでちゃんとドキュメント読んでね
2025/11/01(土) 11:04:56.46ID:mdP806Ha
言語に関係なく初期化ルーチンで必ず初期化を行なうグローバル変数などについては依存関係があってもいいんだよ
今回の場合は万が一その依存関係が崩れていれば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型となる。
もちろん普段の説明ではこの厳密な定義を用いずに、内部可変とは不変参照しかない時でも可変を得られること、で構わないと思う。
2025/11/01(土) 13:01:38.93ID:s4kd72Pi
コード書くときにこういった謎の禅問答みたいなことを延々と続けてるのか
大変だな
2025/11/01(土) 13:03:56.65ID:g3WZAZrD
"allows you to mutate data"に対して「可変な借用を得られる」だと制限が強すぎて間違いだったのを理解したので
>>528では最初からそう言いたかったんですよってフリで「可変を許す」「可変を得られる」みたいな曖昧な表現にしれっと置き換える
これが所有権の複製話法です
2025/11/01(土) 13:08:31.28ID:c42kdQyz
rustは外部のライブラリーに依存しないで書くのは難しいような気がするのだが
2025/11/01(土) 13:08:31.85ID:TYBdxLbV
>>529
どれも単なる基礎知識だろ
コード書くための前提
2025/11/01(土) 13:19:59.11ID:QjdiwYjo
>>514
Rustの抽象度が高いことを使いにくいと感じる人は色んな知識経験が足りないんじゃないかな
抽象度の高いほうが可読性も保守性も良くて使いやすいよ
2025/11/01(土) 13:26:36.27ID:am2mePEs
>>529
普通はRustでもバイブコーディングでAI任せにして何も考えないから安心
どうでもいいことにこだわってるのは複おじぐらい
535デフォルトの名無しさん
垢版 |
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じゃないものを入れるのにみんな抵抗感は感じないのだろうか
2025/11/01(土) 13:37:12.17ID:s4kd72Pi
GCに依存できる環境だとここまで考えなくてもいいんでしょ?
大変は大変でその代わりメリットがあると
2025/11/01(土) 13:39:02.26ID:QjdiwYjo
>>537
GC言語にも抽象度の高い言語があるからそこは関係ないよ
2025/11/01(土) 13:41:49.38ID:9L/RTK5n
>>537
GC言語でもグローバル変数をそのまま使ったらスレッドセーフでないため競合して詰む
もちろんその初期化も同じ
Rust固有の問題ではなくどの言語でも必要な話
540デフォルトの名無しさん
垢版 |
2025/11/01(土) 13:51:01.37ID:w12b3puC
>>536
Result型を本来の用途以外で使ったらコードレビューで絶対リジェクトされると思うよ
ResultとOptionは実用上での利用が多かったから標準ライブラリに入ったのであって、Eitherが使いたかったら外部ライブラリ使うか自作すればいい
2025/11/01(土) 13:57:10.92ID:W6xNe0tO
>>540
そんなことはない
標準ライブラリでもErrorを拡大解釈してエラー以外に用いている
特に多いのが値の返還にResultのErrorを利用
左右対称ならResultを使わずにeither crateを使うべき
2025/11/01(土) 14:22:52.12ID:t+20UcyI
>>534
基本的な概念や仕組みを知らないままバイブコーディングしていたらコードレビューもできずに詰みそう
2025/11/01(土) 14:52:04.69ID:/uJItwLS
謎の禅問答を学習したら知能は増え信者は減る?
いや信者が増える方が宗教だろ
科学を舐めるな
2025/11/01(土) 15:33:03.66ID:SAJJpDfX
複オジは嘘ばっかりだな
2025/11/01(土) 15:37:15.60ID:8wHtIByR
抽象化を理解できずに謎の禅問答にみえる新たな科学かもしれぬ
2025/11/01(土) 18:01:00.80ID:W1T4uP/l
複おじもはや一周回ってRustアンチまである
2025/11/01(土) 19:00:08.27ID:V6yHUqHj
>>545
盛大なブーメラン

>>528のように
内部可変性という抽象概念の定義を
特定の具体的内部実装でしか説明できないやつが
抽象化を理解してるわけがないんだよな

いつも思うが複オジはマジで抽象化理解してないよね
>>482のようなクソコード量産するのも根本原因は同じだと思うよ
2025/11/01(土) 19:22:28.52ID:na8d22ha
両者が対等ならLeft、Right使うよりOwned、Borrowedみたいに名前つけてくれ
Leftが成功寄り、Rightが失敗寄りみたいな慣習を持ち出すならResultでいい
2025/11/01(土) 19:58:52.73ID:8wHtIByR
成功失敗に使う言語もあるけどRustのEitherはLeftとRight完全に対等
Resultよりも高機能で強力
RustのEitherはもともとRayonのために作られてItertoolsもそのEitherを組み込んでいて事実上の標準
2025/11/01(土) 21:11:37.16ID:yJiGHW4c
>>546
本人にそのつもりは一切ないだろうが結果的にはアンチ活動家以外の何者でもないわな
2025/11/01(土) 21:21:09.81ID:cx7pH9ul
Rust使いはアホというイメージを与えると同時に、
あんまりにも盲信的かつ程度が低いもんだから他の人が「さすがにそれは違う」とRustに対して批判的なトーンで諫めるものだから、
自然とスレの空気がアンチっぽくなるんだよね
2025/11/01(土) 21:22:50.18ID:8wHtIByR
困ったもんだよな
2025/11/01(土) 21:30:17.22ID:gnnSc5/H
servo、久しぶりに動かしてみたら、まあまあ出来てるな
ついでにversoプロジェクトが終了していたことを今さら知った

がわの部分、shellが機能不足過ぎて常用するブラウザーには到底ならないが
描画エンジンとしては現時点でも何かに使えそう
2025/11/01(土) 22:29:09.83ID:f7mQTVkH
Rust使いはアホではないけど概念的に普通にコード書くのも大変なんだなと
2025/11/01(土) 22:47:39.33ID:eIxSVUj6
抽象度の低い言語より書きやすい
2025/11/01(土) 23:35:48.21ID:g3WZAZrD
所有権の複製おじさん
データ参照の競合おじさん
可変を得るおじさん
2025/11/02(日) 15:05:38.09ID:CiqO+SUG
>>555
Rustより抽象度の低い言語ってメジャー言語ではCとC++しかないじゃん
558デフォルトの名無しさん
垢版 |
2025/11/02(日) 18:02:42.58ID:DEScUpRh
全部きれいなお姉さんに置き換えたら赦す心が芽生えた
559デフォルトの名無しさん
垢版 |
2025/11/02(日) 20:55:21.31ID:5I1cphwl
確かに船と同じでコードを女性に例えるともっと
大事に扱う気になるかも知れない
2025/11/02(日) 23:53:23.75ID:J6OkX1Eo
>>557
Goも
2025/11/03(月) 01:05:29.98ID:rQkJBpL5
メスガキのほうがイメージしやすいかもしれん
562デフォルトの名無しさん
垢版 |
2025/11/03(月) 11:14:52.63ID:nm4PTvZt
そういえば女性エンジニアって能力的な下限が男性底辺よりも上な気がする
組織による違いや生存者バイアス的なのもあると思うが
2025/11/03(月) 11:27:28.99ID:7oO4iHcI
原初は職業プログラマは女性の仕事だったのに一気に男性が増えたのはなぜななのか
2025/11/03(月) 11:55:28.00ID:0AHiueHW
男の1/100ぐらいしか女いないしな
数が多ければ多いほど無能と有能の差は広がる
2025/11/03(月) 12:06:07.94ID:w8FLSUod
プログラマの最底辺は技術云々じゃなく基本的な就労適正に問題があるレベルだからなあ
女性は自分の申告しているスキルの範囲ではそれなりに真面目にきっちりと仕事をする奴が多い気がする
ダメならすぐ病んで消えるから職場的にはあまり問題にならないし
2025/11/03(月) 12:14:09.94ID:b7J3p22l
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のようにサクっとできるようにならないもんかね?
568デフォルトの名無しさん
垢版 |
2025/11/05(水) 17:51:33.76ID:/BRKTToS
まだ発展途上じゃけえ
ほとんどのクレートがまだバージョン0だし
2025/11/05(水) 18:21:47.42ID:seaKh6U5
>>567
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が提供されてるよ
2025/11/06(木) 13:30:57.33ID:LQUNM8KW
>>571
Pythonのasyncio.Lockは失格
対象となる値とロックの関係が保持されない
ロックを得なくても値の変更が可能
2025/11/06(木) 13:33:07.83ID:avSCZEbn
Pythonはそういう用途に使う言語じゃない
まちがってる
2025/11/06(木) 13:51:58.57ID:nZ/9WqEw
>>571
よく読んでごらん
安全性のための必須条件を満たしているかどうかの話だよ
Pythonはこの安全性を満たしていないね

202 デフォルトの名無しさん sage 2025/09/21(日) 02:43:46.06 ID:ETMxp5J0
Mutexなどロックしている間のみ変数にアクセスできるしくみを用意している言語はRustだけじゃね?
2025/11/06(木) 14:12:27.56ID:Yd9kjPBo
>>571
複オジィッシング詐欺に引っ掛かるやつw
576デフォルトの名無しさん
垢版 |
2025/11/07(金) 16:08:21.14ID:2/Hvzjyz
Rustでスマホアプリのバックエンドを実装してるんだけど、sqliteがシングルスレッド前提だからそこだけ同期処理になるんよ
この領域を非同期で書けないの最高に気持ち悪い。まとめてsqlにデータを挿入しないで、データがバッファーに貯まったらダンプする処理とか同期で書くの生理的にきつい
tokioのchannelとstd::threadが混じっていく
2025/11/07(金) 16:32:35.77ID:sSuvh5Kf
>>576
Rust云々の前にそんなクソみたいなアーキテクチャを見直してきなさい
そんなもんどう考えてもまともなDBMSとスクリプト言語の組み合わせより遅くなるんだからRustの恥晒しになるだけ
2025/11/07(金) 16:44:11.59ID:bF5xlAUX
>>576
sqlite担当へチャネルを使ってリクエスト
sqlite担当はそのチャネルに来たリクエストを次々と処理する
579デフォルトの名無しさん
垢版 |
2025/11/07(金) 17:22:18.89ID:E0+MoMgg
>>577
iphone, androidで安定的に動く唯一のRDBであるsqliteがシングルスレッドでしか動かないからどうしようもないんですよ

>>578
自分も同じ結論に落ち着きました
本来なら非同期処理で書くべきようなことまで、ループ処理やタイムアウトを多用して同期で書くからムズムズするけど
2025/11/07(金) 17:22:46.88ID:w//DyTC5
>>576
sqlx::SqlitePool
581デフォルトの名無しさん
垢版 |
2025/11/07(金) 17:36:37.18ID:E0+MoMgg
>>580
ああっ。確かにsqlxを使う選択肢はありますね。失念してました
自分は実践でsqlxではなくrusqliteを技術選択しました
RDB用の単スレッドで動作させるならば、sqlxよりrusqliteの方が速いからです
別スレッドを立て、タスク管理をしてまでスループットを上げたいという条件下でsqlxは選びにくいと感じました
2025/11/07(金) 17:38:03.28ID:kqIhu9xc
>>576
sqliteは非同期には対応してないがマルチスレッドには対応していてシングルスレッド前提ではない
同時に書き込めるのは1コネクションだけなので書き込み処理を一つのスレッドにまとめる方法はよく採用されるけどそれをシングルスレッド前提と言ってる?

いずれにしろ非同期のラッパーを書いて同期部分は一箇所に隠蔽すればいいだけ
ラッパーが用意されてるライブラリもある
2025/11/07(金) 17:39:57.53ID:kqIhu9xc
>>577
バックエンドサーバーの話じゃなくてUIコード(フロント)から呼ばれるライブラリくらいの意味でバックエンドという言葉を使ってるのだと思う
584デフォルトの名無しさん
垢版 |
2025/11/07(金) 17:47:33.29ID:E0+MoMgg
>>582 >>583
自分の言葉の選択の曖昧なところまで含めてすべてお見通しですね
Sqliteがシングルスレッド前提ではなく、制約がコネクションにかかること指摘ありがとうございます
同期のコードを集約して、非同期で包む方向で実装を進めていました。ライブラリについては調べてなかったです。有益な情報ありがとうございます
丁度そのあたりのコードで自作が増えて実装が複雑化しはじめていた頃なのでツールを調べてみます
2025/11/07(金) 19:56:16.34ID:gmNJckty
いつから健全なスレになった
586デフォルトの名無しさん
垢版 |
2025/11/07(金) 20:31:07.75ID:MqFsU2xp
sqliteて最近はcloudflareでも使われてるし最近流行ってるらしい🧐
2025/11/07(金) 22:19:46.72ID:Q8YVEkBf
ワークロード的に明らかに問題が出ることが分かってるというのでなければ
とりあえずspawn_blockingを使うだけの方法から始めてもいいと思う
2025/11/07(金) 22:33:36.98ID:ei1rk0H/
>>582
彼の用途でそのマルチスレッド対応は意味がなくてスレッドMutexにより非同期タスクスケジューラのスレッドをブロックしてスケジューリング妨害となってしまう
つまりスレッドMutexではなくawaitで待つ非同期タスクMutexを使うべきだがsqliteは当然対応していない
そこでシングルスレッド前提で使う話なのかなと理解した
マルチスレッドで使う場合も非同期タスクとは別スレッドのsqlite用のスレッドプールを用意する形になるかと
2025/11/08(土) 01:31:09.85ID:xFyQtacU
Debianのパッケージマネージャーであるaptが部分的にRustで書き直された影響で
RustがコンパイルできないマイナーなアーキテクチャがOSサポート停止になってしまうらしい
これは恨みを買うね
590デフォルトの名無しさん
垢版 |
2025/11/08(土) 13:19:45.72ID:4T3c3gtX
aptのメンテナーすごい判断したな
メリットの方が大きいと踏んだからだと思うが、ノイジー・マイノリティの影響力を舐めてるわ
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黷ネいけどね
2025/11/08(土) 14:53:09.75ID:uoEf+XNp
シェア低くてもサポートしてほしいなら、自分でフォークして保守せえやってのが本来のOSSだからな
2025/11/08(土) 15:05:36.63ID:X5jMFRl4
https://lists.debian.org/deity/2025/10/msg00072.html

> alpha, hppa, m68k, and sh4

どうでもよ……
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ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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