Rust part30

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2025/05/28(水) 09:31:36.60ID:ciITeZ5D
公式
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 part29
https://mevius.5ch.net/test/read.cgi/tech/1746200850/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
2025/06/01(日) 17:34:03.73ID:WYn8l9li
>>305
なるほどありがとう
普通のWebViewアプリやブラウザでは再現しないから何かバグってるんだな
WebViewに全部まかせてるわけじゃないのか
2025/06/01(日) 17:41:33.42ID:bcDCNWwh
比較がおかしい
WebViewを使うGUIフレームワーク同士を比較しないと意味がない
2025/06/01(日) 18:16:51.61ID:7HYVfiGT
いまだにまともなGUI一つ作れないっておかしくね?
316デフォルトの名無しさん
垢版 |
2025/06/01(日) 18:29:20.11ID:qAHg6uzj
>>314
TauriでもElectronでもWailsでも、サンプルに入ってるような小さなアプリをビルドすれば分かるんじゃない?
2025/06/01(日) 18:38:52.12ID:EuGkxJef
>>315
誰も気にしていないどうでもいいことで叩き合ってるだけ
GUIは多数あり実用に使われている
2025/06/01(日) 18:45:14.37ID:DK16msZE
>>317
果たしてそうだろうか。
2025/06/01(日) 18:49:41.21ID:Afq2fQNa
>複オジの品質基準では「何の問題もない」
>一般的な品質基準では「問題ありまくり」

これに尽きる
2025/06/01(日) 19:12:46.36ID:4sBAU+Od
GUIを好む人はバグを再現する最小のコードを書きたがらない
反GUIの人はバグがなくても最小のコードを書いてる
2025/06/01(日) 19:12:53.21ID:F948rj57
Rustに限らずGUIフレームワーク全般に言えることなんだけど、優秀なプログラマほどGUIを使わなくなるから、
ボランティアベースのGUIフレームワークってロクなの無いんだよね。
実際、Rustで成功しているGUIアプリの代表的な例として、ターミナルエミュレータがある。
Rust製のAlacrittyやWezTermはターミナルエミュレータとしては非常に人気があり、日本語も問題ない。
2025/06/01(日) 19:29:51.30ID:pwCmtyNg
Alacritty スクショ
https://i.imgur.com/rDqVWcO.png
2025/06/01(日) 19:32:30.27ID:qAHg6uzj
Rustで書くことが目的化してる人に何を言っても変わらないでしょ
ちょっとくらい見た目や動作に問題があっても、Rustで作られてるならそちらの方が優れてる的な価値観なわけだし
普通の人は逆で、作りたいものが先にあって、それを達成するのにどの道具が良いかを検討するものなんだけど
2025/06/01(日) 20:23:59.45ID:/r9EZP3i
基本的な入力動作すらまともに動かなくてもメモリ安全であればいいんでしょ
そんなアプリを誰が使うのか
2025/06/01(日) 20:31:34.92ID:EOVsDC2W
>>322
さすがにこの状態でまともに使えるとは言わんよ
手元の環境ではこんなことにはならないからAlacritty使ってるけど
2025/06/01(日) 21:05:48.26ID:P1xiFI4O
>>322
それおまえの環境がおかしいんじゃね?
こちらでは起きない
そんな問題も上がっていない
2025/06/01(日) 21:07:24.61ID:P0zCx+Hv
Rustのような新興システムプログラミング言語の優位性を
業務アプリすらWebばっかで、デスクトップ開発の需要自体が死んでる令和の時代になぜかデスクトップGUIフレームワークなんかで決めようとしてる時点で
Rustはクソ言語C++のほうが優れてるみたいな感じに持ってくのがゴールなんだよね
2025/06/01(日) 21:13:17.99ID:gyZ55+5M
安心安全のはずのRustがGUIではバグだらけ
不思議
2025/06/01(日) 21:15:37.04ID:P1xiFI4O
>>328
バグがあるなら示してみろ
2025/06/01(日) 21:20:41.09ID:oe0B6NCW
示されてるのに「こちらではおきない」で無かったことにしてるのはお前だろ。
2025/06/01(日) 21:34:08.02ID:t7W26l2E
Alacrittyは人気のターミナルエミュレータでもう9年目だけどそんなバグは聞いたことないな
2025/06/01(日) 21:35:32.32ID:zL90snIl
>>305
Tauri v2もこのウィンドウ移動によるバグがあるけど誰も指摘しないから
これぐらいの軽度バグは世間的には許されるってことじゃないか?
日本語対応は100点満点じゃないけど70点ぐらいはある
2025/06/01(日) 21:49:21.86ID:P0zCx+Hv
IME使った文字の入力中にウインドウを移動するっていうユースケースが、どれだけ日常かという話
2025/06/01(日) 21:52:14.83ID:vHN87OYL
>>333
>>305の手順では必ずしも文字の入力中ではない様だけど
2025/06/01(日) 21:58:36.70ID:vHN87OYL
>>332
そう自分で直すのが面倒だから見て見ぬふりするね
使うだけの側からしたら代わりは幾らでもある、そっと閉じ
2025/06/01(日) 22:02:27.70ID:t7W26l2E
Rustを叩きたい人が通常ではありえない使い方をして無理やりにAlacrittyを批判してるだけか
2025/06/01(日) 22:22:04.75ID:/r9EZP3i
脆弱性もありえない使い方すると出てくるんでは
メモリ安全だからロジックに集中できて完成度があがるはずじゃなかったんすかw
2025/06/01(日) 22:28:33.11ID:EOVsDC2W
Windows11のAlacrittyでIME入力中にウィンドウ移動しても普通に追従するけどな
環境と再現手順を知りたいところ
2025/06/01(日) 22:34:44.87ID:4sBAU+Od
Rustのコードが1行もないソフトに同じバグがあればとりあえず安心
2025/06/01(日) 22:38:36.61ID:6z/uSzky
>>322,338

Alacritty 異常動作(IMEオンするパターン)
Alacritty起動
IMEオン
タイトルバーをつまんでウィンドウを少し移動
キーボードでa
デスクトップ右下に変換候補ウィンドウ

Windows11
2025/06/01(日) 22:42:20.46ID:6z/uSzky
>>338
変換候補ウィンドウが出た後にAlacrittyウィンドウを移動するのではなく
>>340の順番通りにやると再現率半分くらい
(IMEオンはAlt+`)
2025/06/01(日) 22:43:57.89ID:6z/uSzky
Microsoft IME
旧バージョン互換性オプションオフ
2025/06/01(日) 22:45:30.38ID:6z/uSzky
再現率が半々で、ウィンドウを移動しなくても時々発生するので
ウィンドウを移動が根本原因ではない可能性もあるかと
2025/06/01(日) 22:46:29.92ID:HyrzgXWk
tao(tauri版winit)の実装見たけど少なくともWindowsのIMEはあまりやる気ないな
WM_IME_*が↓でしかヒットしないしWM_IME_REQUESTもWM_IME_CONTROLも出てこない

https://github.com/tauri-apps/tao/blob/dev/src/platform_impl/windows/minimal_ime.rs

winitも同じかな
2025/06/01(日) 22:46:30.67ID:6z/uSzky
今の所、WezTermでは同様のバグは発生してないですね
2025/06/01(日) 22:51:47.81ID:6z/uSzky
>>343
再現率低いAlacritty 異常動作(IMEオンするパターン)

Alacritty起動
IMEオン
キーボードでa
デスクトップ右下に変換候補ウィンドウ
2025/06/01(日) 22:57:05.24ID:UP9ZJCIN
今度はAlacrittyですか…
>Alacrittyはパフォーマンスとシンプルさを重視した自由かつオープンソースのGPUアクセレレーション端末エミュレータである。
知らんがな
2025/06/01(日) 23:03:02.79ID:EOVsDC2W
>>340
おお、確かになるね
IMEオン状態のままだとならないから切り替え直後の1回だけって感じ?
ここ数年常用してて見たことないし、うちの環境ではウィンドウ移動なしでは発生しないっぽいかな
2025/06/01(日) 23:11:44.02ID:0CmIhd20
>>340
Rustを叩くためにそんなありえない使い方をして深刻なバグだと吹聴していたとは呆れた
2025/06/01(日) 23:15:24.99ID:7HYVfiGT
Rustは安心安全
※ただしありえない使い方をしない時にかぎる
2025/06/01(日) 23:45:33.58ID:sQgPtell
ありえおじ
2025/06/01(日) 23:46:59.52ID:0CmIhd20
>>350
ありえない使い方をしても問題ないことをRust叩きしてる人が証明してくれた
2025/06/02(月) 00:05:41.71ID:fXikgHg9
ミニマム再現条件にすると滑稽ですが
好みの位置にウィンドウを持って来るのは普通の事なので(デスクトップ)
ありえない使い方と言うよりも、windowsでネイティブ日本人がテストしてないのか?品質に出ていますね

「ウィンドウ移動する前には、IMEはオフにせよ」なんて使用条件の方が変かと
2025/06/02(月) 00:06:41.28ID:fXikgHg9
>>348
確認できたのはそのパターンです、自分は常用してないので他のバグ発生条件までは分かりませんね
(念のためPowerToysを落としても状況は同じだった)

Dioxus TodoMVCの方はIMEオン直後だけではなくウィンドウ移動後の1キー目で>>298こうなります
2025/06/02(月) 00:07:15.73ID:fXikgHg9
>>332,335
ターミナルで日本語入力する事自体が稀なのでAlacrittyには70点あげても良いですが
Dioxusは「そっと閉じ」の方ですね
2025/06/02(月) 00:09:31.08ID:9UmaDGug
>>355
じゃあ、Dioxusでターミナル作ったら?
2025/06/02(月) 00:11:29.28ID:fXikgHg9
>>344
納得しましたw
2025/06/02(月) 00:13:19.40ID:fXikgHg9
>>355
Readmeみたらそっと閉じ

windowsでの品質は現時点も先々もこんな感じなんですかね
2025/06/02(月) 00:18:26.39ID:Z4CT4v88
Windowsを使う人は滅多にいないだろうしな
普通はLinuxかMac
360デフォルトの名無しさん
垢版 |
2025/06/02(月) 00:33:24.53ID:FhxrXIqd
人間の頭から放電した場合は下記の経路になる
人間は電磁界【脳波8Hz〜40Hz】【電線【60Hz】の電圧と同じ】なので周囲に影響を与えれる範囲が狭い

人体への雷撃パターン |身を守る| 雷の知識
https://www.franklinjapan.jp/raiburari/knowledge/safety/61/
超低周波電磁界にばく露した人体に起きる電磁的現象
https://www.jeic-emf.jp/public/web_mag/explanation/1016/

1 人間の頭部から放電しないことはここで説明されている
2 お風呂場で湯船につかっているのでお湯の方に電流が流れる
3 頭からお湯をかぶっているやシャワーを浴びている場合はお湯にそって電流が流れる
4 雨降りの時は雨によって地面の方に電流が流れる
5 何か物に接している【手で手すりを触っているなど】場合はその者にそって電流が流れる

などこれらの条件がそろっているのに外部の人が対象者の思考や動作がわかるはおかしなことを話している
2025/06/02(月) 01:35:42.19ID:d/cxZYnc
>>321
何を言ってるんだか。
2025/06/02(月) 02:03:54.92ID:wOJOfP6S
Windowsのtauriは余計なことしないでwebview2に丸投げすればIMEは普通に動きそうな気がするんだけど
クロスプラットフォームの抽象化があるから単純ではないのかな
363デフォルトの名無しさん
垢版 |
2025/06/02(月) 07:27:24.42ID:GgLxuemZ
>>359
GUIアプリってプログラマでなく一般ユーザーに使ってもらうために作るものじゃないの?
シェア率が70%もあるWindowsを「滅多に使わない」?
2025/06/02(月) 08:02:49.76ID:zmXNsHtd
どちらかというとIME切り替えながらウィンドウ動かす、というのがないかな…
数年間毎日使って気付かなかったし正直どうでもいい
直してくれるならそれに越したことはないけども
2025/06/02(月) 08:51:42.98ID:h4tRZExf
いや、ウィンドウズはほぼ毎日使うよ
会社でも同じだわ
2025/06/02(月) 10:49:02.15ID:XWrf3Dm6
IDEなら編集しながらコンパイルしてるから不愉快な挙動をするのは火を見るより明らか
367デフォルトの名無しさん
垢版 |
2025/06/02(月) 11:11:49.92ID:NteO/GBi
>>293
Rustに限らずZigとかC#とか、extern cできる言語ならなんでもAndroidで使えるよ
Androidのjniやndkに全部C互換があるから
2025/06/02(月) 11:15:54.47ID:aX5lnsqr
出来るけど公式にサポートしているもののほうが楽ではある。
2025/06/02(月) 12:21:45.02ID:yqv+vYMm
Amazon Aurora DSQLは当初はJavaVM上のKotlinで開発されたものの、バグの混入を避けるためなどの理由でメモリ安全なRust言語での開発に切り替えたところ、それだけで性能が約10倍向上したとも説明されています。
https://www.publickey1.jp/blog/25/awspostgresqldbamazon_aurora_dsql.html
2025/06/02(月) 12:27:33.61ID:XWrf3Dm6
オールド公式とニュー公式どっちを選ぶかは結局自分で判断するしかない
2025/06/02(月) 13:03:04.42ID:cfmG04/d
再現方法を見てウィンドウ動かさなければ問題ないだろうと考える人は経験が浅すぎるわな
そういう感覚で物作ってると行き着くところは「複オジ品質基準」だぞ
2025/06/02(月) 13:17:30.01ID:aX5lnsqr
わかった上で重大ではない (から放置で良い) と判断することはあるだろうけど……
そういう小さなことが積み重なってよくわからん挙動を引き起こすこともそれなりにある話。
2025/06/02(月) 14:20:48.94ID:w8zlJvU9
>>369
困るとそれを貼り付けるね
374デフォルトの名無しさん
垢版 |
2025/06/02(月) 14:21:05.82ID:czhP5p30
>>369
やはりサーバー分野はRustが最強だな
375デフォルトの名無しさん
垢版 |
2025/06/02(月) 14:21:43.53ID:czhP5p30
>>373
どゆこと?
376デフォルトの名無しさん
垢版 |
2025/06/02(月) 14:31:27.48ID:czhP5p30
373がなにを否定したいのかよく分からないがRustの並列処理は非常に効率がよい
Rustで再開発することによりこの恩恵を受けて大幅に性能が向上した
今回AWSが正式リリースしたAurora DSQLは並列処理に重きをおいたものだから特に高い効果を得られたのだろう
2025/06/02(月) 14:41:07.84ID:XWrf3Dm6
カオスは初期値だけで引き起こせるんだよね
途中の小さな積み重ねは原因ではなく結果
378デフォルトの名無しさん
垢版 |
2025/06/02(月) 14:49:11.87ID:z+CFOxG+
KotlinというかJavaの並行処理はむっちゃ安全だけどその代わりにパフォーマンスが犠牲になってる。
C++のはパフォーマンスが良いけどみんなご存知のように安全性がゴミ。
Goのはパフォーマンスも安全性もいいからRustかGoのどちらを使うかでRustが選ばれたんでしょ知らんけど。
379デフォルトの名無しさん
垢版 |
2025/06/02(月) 15:15:13.25ID:z+CFOxG+
俺が考察せずともAWSの当事者の後日談的な記事あるじゃん。
KotlinのJVMのガベージコレクションのオーバーヘッドが敵だったみたいね。
もともとKotlinのスペシャリストであってRustは初心者だった開発チームが苦労の果てにコンパイル可能なコードを実行してみたらなんとKotlinで書いていたコードの10倍性能がよかった。
気分を良くした開発チームがどんどんKotlinのコードをRustに書き換えていったんだって。

Just make it scale: An Aurora DSQL story
https://www.allthingsdistributed.com/2025/05/just-make-it-scale-an-aurora-dsql-story.html
2025/06/02(月) 15:31:24.30ID:AD6qUyw7
そんでこれはオープンソースなのか?
381デフォルトの名無しさん
垢版 |
2025/06/02(月) 15:53:39.10ID:z+CFOxG+
CLI部分はオープンソースだよ
2025/06/02(月) 15:55:37.90ID:3XGAbOaK
本体をオープンソースにしろよw
2025/06/02(月) 15:58:30.64ID:bKFtipAC
>>378
単に会社の方針としてJavaかKotlinかC/C++かRustで、Goは選択肢にないんだろう
379の元記事読んだけど技術選定の際に社内実績をかなり重視してそうだし、そもそも制約がなきゃKotlinなんか選ばないでしょ
2025/06/02(月) 15:59:31.58ID:WAnrQ9FR
>>378
Goは同じくガベージコレクションのある言語だから厳しい
385デフォルトの名無しさん
垢版 |
2025/06/02(月) 16:03:48.59ID:z+CFOxG+
やはり敵はガベコレにあり。
2025/06/02(月) 16:06:35.67ID:qTYmSia5
敵はオープンソース資産を食い逃げする企業だろ
2025/06/02(月) 16:28:08.28ID:owUgTJXK
>>384
GoのGCはJVMと比較すると低遅延だから、記事の通りGCによる停止が問題になっている状況なら選択肢になりうる
2025/06/02(月) 16:40:40.26ID:k0FlxjxP
>>387
GCによる害悪2つのうちレイテンシ悪化はGoで軽減できるが全体パフォーマンスはGoも悪化する
2025/06/02(月) 16:43:17.43ID:/ossn2s1
悲報!Rust版AV1デコーダーがCより5%遅い問題が解決できず、カネで解決しようとする
https://www.memorysafety.org/blog/rav1d-perf-bounty/

Macではもっと遅かったしRustじゃなくてGoで良い領域だな
2025/06/02(月) 16:49:07.25ID:/ossn2s1
>>236 >>243
Arc削除できないと返答してるな
391デフォルトの名無しさん
垢版 |
2025/06/02(月) 16:52:44.19ID:Ca4PuVUf
シャープ、PythonによるAIデバイス向け高位合成ツールをオープンソースで公開
https://news.mynavi.jp/techplus/article/20250602-3343055/

博報堂メディカル、生成AIを用いた審査業務効率化ソリューションを開発 [
https://news.mynavi.jp/techplus/article/20250602-3342950/

「AIをより魅力的にする戦略」がAIチャットボットに「薬物使用を促す」といった有害な考えを強化させる可能性があると研究で判明
https://gigazine.net/news/20250602-ai-chatbots-user-influence-attention/
2025/06/02(月) 16:54:15.56ID:64YfA+90
Arcは所有者を増やすときのみカウンタ+1のオーバーヘッドがある
参照はderefによりコストゼロ
2025/06/02(月) 17:21:42.21ID:fJbPstNP
>>390
なるほど
幸先良くスタートしたけど分かっていても直せない箇所が出て来る訳ね
2025/06/02(月) 17:27:52.34ID:64YfA+90
所有者を増やしまくる愚を犯さない限りArcにデメリットはない
2025/06/02(月) 17:49:16.64ID:iSmTN9kp
>>379
Aurora DSQLは、データベース管理ソフト(DBMS)であり、データを収めているのは原則としてHDDやSSD。
だから、メインメモリーは、キャッシュのために少し使う、というのが基本のはず。
だから、データ集約に関係する高度なアルゴリズムはHDD/SSDに対して必要となるが、
メインメモリに対しては余り必要ない。だから、Rustが適す。
2025/06/02(月) 17:52:38.64ID:F42JmYRi
>>395
もうちょっと調べた方が良いよ、DB全般
2025/06/02(月) 17:59:35.62ID:iSmTN9kp
>>396
ちゃんとした言葉で反論してください。
2025/06/02(月) 18:02:50.08ID:owUgTJXK
>>397
Geminiに聞いてやったぞ

ご指摘のコメントは、データベースの仕組みとRustに関する理解に多くの誤解があるようです。
* DBのメインメモリ利用の認識違い: データベースはキャッシュだけでなく、データ処理やソート、インデックスなど、パフォーマンスのためにメインメモリを広範に活用します。「少し使う」というのは誤りです。
* Rust適用の理由が不適切: Rustはメモリを安全かつ効率的に制御できるため、DBのようなパフォーマンスが求められるシステム開発には適しますが、「メインメモリをあまり必要としないから」という理由は論理が破綻しています。
したがって、このコメントは技術的に見て多くの点で適切ではありません。
2025/06/02(月) 18:04:48.37ID:iSmTN9kp
>>398
DBMSの場合、メインメモリーに置いておく集約構造は、データの量が小さい。
だから、ある程度の速度性能が出れば、全体の速度には影響が及びにくい。
2025/06/02(月) 18:05:34.76ID:iSmTN9kp
そのGeminiの回答は、理解が浅い。
2025/06/02(月) 18:06:28.04ID:owUgTJXK
>>399
お相手の方の返信も、やはりデータベースのメモリ利用とパフォーマンスに関する誤解が続いていますね。
主な問題点
* 集約構造のデータ量は「小さい」は誤り: データベースは、高速化のために可能な限り多くの集約データや中間結果をメモリに置こうとします。データ量が多いほど、メモリを効率的に使う必要があります。
* 「ある程度の速度」で全体の速度に影響が出にくいは誤り: メモリ上の処理が非効率だと、それが全体のパフォーマンスのボトルネックになり、特に大規模データや高負荷環境では深刻な影響が出ます。少しの遅延でも、積み重なると大きな差になります。
データベースの性能は、メモリの効率的な活用に大きく依存します。

書き込む前にAIにチェックしてもらうことをお勧めする
2025/06/02(月) 18:08:30.83ID:iSmTN9kp
>>401
ただ、ネットで使うことが多い DBMSは、単位時間当たりの書き込み回数が小さい傾向がある。
そういう事まで含めて考えれば、あなたやGeminiの回答は理解が浅い。
2025/06/02(月) 18:11:00.40ID:iSmTN9kp
論理ではなく、トータルの必要時間を数式で考えないといけない。
2025/06/02(月) 18:13:55.93ID:64YfA+90
>>399
一番効果が大きいのはメモリ上のキャッシュ効果
そのキャッシュ構造管理もRustがベスト選択
2025/06/02(月) 18:16:26.41ID:iSmTN9kp
>>404
DBMSに必要な処理の特徴が、Rustとは相性がいいとは言えるかもしれないが、
DBMS以外のアプリではもっと別の特徴が必要となることが有る。
2025/06/02(月) 18:25:01.24ID:iSmTN9kp
>>404
「405」で「キャッシュ」という言葉を使ったが、CPUの中のキャッシュの事ではなく、
メインメモリー自体が HDD/SSDに対するキャッシュとみなせるという意味で使った。
混乱してはいけない。
2025/06/02(月) 18:32:11.04ID:iSmTN9kp
>>406
誤: 405
正: 395
408デフォルトの名無しさん
垢版 |
2025/06/02(月) 18:40:12.36ID:KbudeIgC
次からスレタイ「複おじ Part31」に変えようぜ
2025/06/02(月) 18:42:37.74ID:64YfA+90
>>406
DBはそのHDD/SDDに対するキャッシュ効果が最も効く
そのキャッシュ管理にもRustが最適
2025/06/02(月) 18:44:18.26ID:iSmTN9kp
>>409
もちろん、KotlinやJavaよりは効くだろう。
2025/06/02(月) 18:50:00.32ID:uLOpbVD1
>>408
別にそれでもいいよw
普通にRustスレ立ててもおかしな人間がやって来て自説を繰り返すだけだから
2025/06/02(月) 19:31:43.37ID:a238vP89
それやっても自分でRustスレ立てて何事もなかったかのように振る舞うだけだと思う
2025/06/02(月) 20:32:38.85ID:ddfioDeu
>>389
GCがあり不便なGoは適用範囲がほとんどないのよ
Goが使われている領域の狭さを見つめてね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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