Rust part28

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2025/03/24(月) 17:37:00.15ID:NJwebgj2
公式
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 part27
https://mevius.5ch.net/test/read.cgi/tech/1733146370/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
2デフォルトの名無しさん
垢版 |
2025/03/24(月) 19:03:47.22ID:/lNBwDBZ
O2
3デフォルトの名無しさん
垢版 |
2025/03/24(月) 19:10:22.24ID:CX9jwcEn
Boundsを制約と訳すスレ
2025/03/24(月) 19:46:45.83ID:BbPiLIal
そろそろ自転車置き場決めた?
2025/03/24(月) 22:53:31.24ID:b54DQihz
ピンポーン「トレイト境界のほうから来ました」
2025/03/24(月) 23:29:23.83ID:a0wY9RFf
>>3
boundsの意味もtrait boundsでの用法もある範囲や領域の限界や限度や際や境界を意味しています
trait boundsはそのままトレイト境界が正しいです
英語においても制約を意味するconstraintを用いずに境界などを意味するboundsを採用しています
2025/03/25(火) 02:01:12.77ID:+IhEiupF
Goを布教する人が「ジュニアクラスとシニアクラスとで書き方が変わらない」と主張していた

格上と比較され、どっちも同じと評価される
この戦術をもし使い回すとしたら意訳ではなく直訳を推すだろうと思う
2025/03/25(火) 07:38:53.95ID:4wgArwVx
日本語訳プロジェクトを引き継いで「トレイト制約」で統一すりゃいいんじゃないんかな。
日本語訳プロジェクトは最新版に追随できていないから、誰も文句言わないだろ。
2025/03/25(火) 07:51:42.61ID:4yBAp1pH
>>8
Trait Bounds自体は制約の意味ではなくてトレイトを満たす型の集合の境界を表している
制約が起きるのはジェネリックな型パラメータに対してであって一般的に型制約(Type Constraint)と呼ばれる
つまり『トレイト境界』によって対象となる型パラメータに『型制約』が生じるという関係
2025/03/25(火) 11:02:27.42ID:bp/26Ayj
すげーなトレイト制約
これだけで無限に荒らせるじゃん
2025/03/25(火) 11:31:46.22ID:+IhEiupF
いつも批判する人「いつでも自由だった」
いつもなら批判を批判する人「今だけ自由じゃん すげーな自由って」
2025/03/25(火) 11:34:50.46ID:QJthngu+
蒸し返しピンポンダッシュやり続ける境界が荒らし
2025/03/25(火) 12:10:04.70ID:zWA13Zet
>>9
>Trait Bounds自体は制約の意味ではなくて
bounds自体に制限する/限定する/制約するという意味があるのだからその解釈は無理筋
14デフォルトの名無しさん
垢版 |
2025/03/25(火) 12:19:02.68ID:mIj4qXEO
そもそも前後の文脈から境界の意味で使ってるのは明白なのに議論する意味あるの?
2025/03/25(火) 13:34:38.92ID:0qfTf8vd
オライリーが「トレイト制限」で訳してたらもう少し穏便だったな
「制約」にしたせいで「境界」との互換性が破壊された
2025/03/25(火) 15:25:12.69ID:szLyc3VO
『トレイト境界』には解散命令が出されたな
2025/03/25(火) 15:30:05.21ID:jMXJz1LS
空の境界
2025/03/25(火) 15:32:23.67ID:6deS3uMO
間を取ってトレイトバウンズで平和
2025/03/25(火) 15:43:50.99ID:RJloQ+7U
>>15
「境界」との互換性ってなんだ?
2025/03/25(火) 16:25:54.64ID:9htJLIhl
「制限はしているが制約はしていない」by トレイト境界
21デフォルトの名無しさん
垢版 |
2025/03/25(火) 19:06:21.64ID:d+t8RnIb
Out of bounds.
略してOB
2025/03/25(火) 19:55:23.90ID:BNsR0jH8
だからトレイトが実装されていないときにOut of Boundsと言われて納得するかと書いたよね?
違和感しかない
2025/03/25(火) 20:19:08.10ID:4wgArwVx
だからとっとと「トレイト制約」に修正した最新版のRust Book日本語訳を作って公開しなよ。

日本語で参照できるドキュメントが「トレイト境界」なんだから、今のままじゃ「トレイト制約」が普及することなんてありえん。
2025/03/25(火) 21:04:47.63ID:hi2v3TCB
それはそう。
間違っていると思うなら正しいと思う形のものを出していくしかないし、それを認めさせないと個人的に何を思おうがコミュニティの意見の代表にはなれない。
少なくとも真っ先に翻訳を出すような熱心な人々は境界と言ってるし、技術用語の習慣としては妥当性がある。
2025/03/25(火) 22:06:22.48ID:+IhEiupF
>>23
性的マイノリティっぽい人に「口先だけでなくとっとと本格的な手術をしなよ」と言っているような意見だ
2025/03/25(火) 22:20:34.71ID:Ubis8hes
「find」コマンドよりシンプル&爆速の検索コマンド「fd」の使い勝手を確かめてみた、Rust製でGitHubスター数は3万個以上
https://gigazine.net/news/20250324-fd-find-alternative/
27デフォルトの名無しさん
垢版 |
2025/03/25(火) 23:17:31.98ID:i5RyQuwv
>>26
> コマンド名が2文字しかなく、4文字のfindよりも50%短い

すげえ
2025/03/25(火) 23:33:14.22ID:GDvE8n+u
>>27
もし R 言語っての作ったらRustより75%向上って言ってもらえるのか
29デフォルトの名無しさん
垢版 |
2025/03/25(火) 23:45:58.20ID:i5RyQuwv
あるぞR言語
2025/03/25(火) 23:58:55.68ID:nTXQg+Lw
>>9
RustのTraitのもとになったのはHaskellのType Class
RustのTrait Boundsに相当するものはHaskellではType Class Constraints
Traits Boundsは単語の意味的にも用途的にも型を制約するために存在していて型制約の一種
2025/03/26(水) 00:41:57.44ID:GtdqDP2q
もうやめて! 旧トレイト境界のライフはもうゼロよ!!!
2025/03/26(水) 00:58:31.81ID:nyTgHXkW
'a: 'bをlifetime boundって呼ぶのだけは理解できるが
Ty: 'aとかTy: Trがboundかって聞かれるとなあ
2025/03/26(水) 01:44:15.30ID:IVLHb+fu
lifetimeってスコープじゃないんかい
NLLと言うなら尚更
lexicalではないがスコープではあるんだと誰でも思うでしょ
2025/03/26(水) 02:11:13.95ID:VitzB+KX
>>26
> fdは同じ処理を約0.25秒で完了しました。
> 実に6倍以上の速度で処理を行えていることが分かります。

Windowsでも6倍も速くなったということはOsStrのWTF8の影響は微々たるものなのか回避しているのかどちらなのだろう
いずれにせよRustで爆速に作れるんだな
2025/03/26(水) 09:49:55.18ID:UzCdJdTB
>>33
lifetime boundsはライフタイムそのものではなくてライフタイムを使ったジェネリックの型制約のこと
2025/03/26(水) 10:06:58.48ID:uCBEdIAV
>>34
time fd --threads=1 > /dev/null と time find . -print > /dev/null
で比べると、findの方が倍程度速かったからfdのはマルチスレッドの威力かな
2025/03/26(水) 10:09:23.49ID:uCBEdIAV
>>36はWindows MSYS2での結果だからOsStrrのWTF8の影響でfd(シングルスレッド)が遅いのかも
2025/03/26(水) 12:02:53.58ID:+KalETz6
Rustってlinuxコマンドの焼き直しばかりしてるイメージ
2025/03/26(水) 12:17:05.16ID:IF1WIx2a
>>38
確かにRustは清書用とは良く例えたもんだ、Rustは仕様追加変更に弱そうだし

出始めは高速で注目されたalacrittyなんて文字関連不具合は非対応の一点張りだしなあ
TypeScriptコンパイラ(type checker)で言うと、何年もかけてRustで作ったら、その間の停滞はもちろん、その後も進化止まるからなあ
2025/03/26(水) 12:19:09.43ID:VitzB+KX
「Google Chrome」のフォント処理がC/C++言語からRust言語に
「FreeType」からの移行でメモリ安全性を改善
https://forest.watch.impress.co.jp/docs/news/1672186.html
2025/03/26(水) 12:21:00.15ID:bllph6O/
性能などでC実装の既存コマンドを越えられるポテンシャルがあるからね
あとは利用者のバックグラウンドがUNIX系の人多いのかな
Goはランタイム付いてきてバイナリが肥大化するから魅力ない
2025/03/26(水) 12:25:26.75ID:rpkYHztH
>>30
最初から結論出てたんだな
境界関係者の詭弁にはもう騙されない
2025/03/26(水) 12:35:10.24ID:8nhBW1ew
>>30
本物アカデミア発のHaskellは流石
44デフォルトの名無しさん
垢版 |
2025/03/26(水) 12:37:17.45ID:wQYu/WJ8
>>42
HaskellでBoundsを引数にConstraintsの境界を指定したからといって
BoundsがConstraintsと等価にはならないだろう
2025/03/26(水) 13:00:48.37ID:Rp5VJ7+C
拗らせ詭弁爺>>44は境界(boundsじゃないよ、boundaryだよ)の数学的定義も知らずに妄信してるんだろ
2025/03/26(水) 13:32:04.61ID:omia1HUs
>>40
Chromeも次々とRust化されていってるな
停滞しているFirefoxを追い抜いてRust化が進むのだろう
2025/03/26(水) 13:56:36.97ID:GlRCQ5iu
>>46
FirefoxはちょっとRustにかまけたせいで停滞したからな
chromeはお大事に
(カラーとかSVGが済んで今後10-20年間はフォント関係の大きな規格追加変更しないつもりかもね)
2025/03/26(水) 13:59:25.21ID:GlRCQ5iu
>>41
>>36によるとそのポテンシャルは発揮されてないし、マルチスレッドの力技ならGoの方が柔軟で規格追加変更に強そう
2025/03/26(水) 14:06:07.26ID:1e+q4ua7
>>48
Windowsなんて相手にしてないんよ。MS製品使いなよギガジン
MSのDos窓のfindとの比較してもなあ
2025/03/26(水) 14:11:51.14ID:b+j3piho
恥ずかしいの沸いとるしw
msys2知らんのやろな
2025/03/26(水) 14:30:05.79ID:1e+q4ua7
そんなものの上で比較して何が嬉しいギガジンと言っている
LinuxDesktop使わんかい
2025/03/26(水) 14:31:52.57ID:1e+q4ua7
せめてmacOSだな
ドザーしかギガジンにはおらんのかもな
2025/03/26(水) 14:33:11.38ID:Ep1QhWaG
Rustはリファクタリングや変更に強いため
それらでエンバグしやすい言語よりもRustを使うのが好ましい
2025/03/26(水) 14:41:56.21ID:T3pkuVQ+
恥の上塗りすこいな ID:1e+q4ua7
>>34が気にかけてるOsStr/WTF8の影響の話だからな
windowsでやらなきゃ意味ないよ

とは言えRust自体がWindowsなんて相手にしてない節が多々あるので、RustがWindowsで遅いと言われても納得ではある

> LinuxDesktop使わんかい
まずLinuxでこれやって見ては
> time fd --threads=1 > /dev/null と time find . -print > /dev/null
2025/03/26(水) 14:45:41.09ID:1e+q4ua7
ガハハ、Linuxで遅いと残念だから調査してみますか
2025/03/26(水) 14:52:45.05ID:rX+At6OX
一般的にマルチスレッド対応をする時
並列に動作できるようにアルゴリズムを組み替える
シングルスレッドで動かすと最善アルゴリズムではなく最善より不利になったとしても、並列化できることを最優先にアルゴリズムを変える
そういう常識を知らない無知な人が「--threads=1」で実行して速度比較してしまう
2025/03/26(水) 15:01:36.90ID:HFWxx5Om
>>56
そんな保険張らなくても良いと思うよ

数値計算などを含めると分割コストが馬鹿にならないけど、ディレクトリトラバーサルはロスなくマルチスレッドが効きやすい処理だから
自分は昔から自作のMPMCキューとスレッドプールでその手の処理やらせてる
58デフォルトの名無しさん
垢版 |
2025/03/26(水) 15:05:10.71ID:wQYu/WJ8
>>57
第一生命の人にそれ言えるの?
59デフォルトの名無しさん
垢版 |
2025/03/26(水) 15:08:57.08ID:NpEBbPpg
FreeTyoe終了するんか胸熱
2025/03/26(水) 15:10:32.50ID:2W1ljvQ/
あの記事の比較を真に受けるやつはどうかしてるぞ
簡単なベンチマークすらできないのか?
2025/03/26(水) 15:12:31.05ID:NpEBbPpg
>>53
リファクタリングって車輪の再発明のことだよ
2025/03/26(水) 15:33:35.65ID:tAQnxLhJ
>>60
fd vs (gnu)findの記事で、(ms cmd)dir -s をしかも powershell(.net) 上でやるのが良い味だしてるよなw

--threads=1 比較はこのスレでの話
2025/03/26(水) 17:16:48.66ID:+byiBRe6
>>53
そこまで言うなら論より証拠が欲しいな

お題スレで697が型変更(BigInt要件追加703,706)で困ってるかもしれないので助けてあげて
C++の方は難なく型変更出来た、それも(おそらくアルゴリズム内容に感知しない)別人が
https://mevius.5ch.net/test/read.cgi/tech/1691038333/697
2025/03/26(水) 18:28:10.20ID:/yA7e5F+
rustは身内よりも
外からの攻撃に耐えてる感じか
素性がいいからな
ポテンシャルが危険視されてんだろ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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