公式
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/
探検
Rust part28
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2025/03/24(月) 17:37:00.15ID:NJwebgj22デフォルトの名無しさん
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を採用しています
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)と呼ばれる
つまり『トレイト境界』によって対象となる型パラメータに『型制約』が生じるという関係
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
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
略して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/
https://gigazine.net/news/20250324-fd-find-alternative/
27デフォルトの名無しさん
2025/03/25(火) 23:17:31.98ID:i5RyQuwv2025/03/25(火) 23:33:14.22ID:GDvE8n+u
>>27
もし R 言語っての作ったらRustより75%向上って言ってもらえるのか
もし 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は単語の意味的にも用途的にも型を制約するために存在していて型制約の一種
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かって聞かれるとなあ
Ty: 'aとかTy: Trがboundかって聞かれるとなあ
2025/03/26(水) 01:44:15.30ID:IVLHb+fu
lifetimeってスコープじゃないんかい
NLLと言うなら尚更
lexicalではないがスコープではあるんだと誰でも思うでしょ
NLLと言うなら尚更
lexicalではないがスコープではあるんだと誰でも思うでしょ
2025/03/26(水) 02:11:13.95ID:VitzB+KX
>>26
> fdは同じ処理を約0.25秒で完了しました。
> 実に6倍以上の速度で処理を行えていることが分かります。
Windowsでも6倍も速くなったということはOsStrのWTF8の影響は微々たるものなのか回避しているのかどちらなのだろう
いずれにせよRustで爆速に作れるんだな
> fdは同じ処理を約0.25秒で完了しました。
> 実に6倍以上の速度で処理を行えていることが分かります。
Windowsでも6倍も速くなったということはOsStrのWTF8の影響は微々たるものなのか回避しているのかどちらなのだろう
いずれにせよRustで爆速に作れるんだな
2025/03/26(水) 09:49:55.18ID:UzCdJdTB
>>33
lifetime boundsはライフタイムそのものではなくてライフタイムを使ったジェネリックの型制約のこと
lifetime boundsはライフタイムそのものではなくてライフタイムを使ったジェネリックの型制約のこと
2025/03/26(水) 10:06:58.48ID:uCBEdIAV
>>34
time fd --threads=1 > /dev/null と time find . -print > /dev/null
で比べると、findの方が倍程度速かったからfdのはマルチスレッドの威力かな
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で作ったら、その間の停滞はもちろん、その後も進化止まるからなあ
確かに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
「FreeType」からの移行でメモリ安全性を改善
https://forest.watch.impress.co.jp/docs/news/1672186.html
2025/03/26(水) 12:21:00.15ID:bllph6O/
性能などでC実装の既存コマンドを越えられるポテンシャルがあるからね
あとは利用者のバックグラウンドがUNIX系の人多いのかな
Goはランタイム付いてきてバイナリが肥大化するから魅力ない
あとは利用者のバックグラウンドがUNIX系の人多いのかな
Goはランタイム付いてきてバイナリが肥大化するから魅力ない
2025/03/26(水) 12:25:26.75ID:rpkYHztH
2025/03/26(水) 12:35:10.24ID:8nhBW1ew
>>30
本物アカデミア発のHaskellは流石
本物アカデミア発のHaskellは流石
44デフォルトの名無しさん
2025/03/26(水) 12:37:17.45ID:wQYu/WJ82025/03/26(水) 13:00:48.37ID:Rp5VJ7+C
拗らせ詭弁爺>>44は境界(boundsじゃないよ、boundaryだよ)の数学的定義も知らずに妄信してるんだろ
2025/03/26(水) 13:32:04.61ID:omia1HUs
2025/03/26(水) 13:56:36.97ID:GlRCQ5iu
2025/03/26(水) 13:59:25.21ID:GlRCQ5iu
2025/03/26(水) 14:06:07.26ID:1e+q4ua7
2025/03/26(水) 14:11:51.14ID:b+j3piho
恥ずかしいの沸いとるしw
msys2知らんのやろな
msys2知らんのやろな
2025/03/26(水) 14:30:05.79ID:1e+q4ua7
そんなものの上で比較して何が嬉しいギガジンと言っている
LinuxDesktop使わんかい
LinuxDesktop使わんかい
2025/03/26(水) 14:31:52.57ID:1e+q4ua7
せめてmacOSだな
ドザーしかギガジンにはおらんのかもな
ドザーしかギガジンにはおらんのかもな
2025/03/26(水) 14:33:11.38ID:Ep1QhWaG
Rustはリファクタリングや変更に強いため
それらでエンバグしやすい言語よりも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
>>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」で実行して速度比較してしまう
並列に動作できるようにアルゴリズムを組み替える
シングルスレッドで動かすと最善アルゴリズムではなく最善より不利になったとしても、並列化できることを最優先にアルゴリズムを変える
そういう常識を知らない無知な人が「--threads=1」で実行して速度比較してしまう
2025/03/26(水) 15:01:36.90ID:HFWxx5Om
>>56
そんな保険張らなくても良いと思うよ
数値計算などを含めると分割コストが馬鹿にならないけど、ディレクトリトラバーサルはロスなくマルチスレッドが効きやすい処理だから
自分は昔から自作のMPMCキューとスレッドプールでその手の処理やらせてる
そんな保険張らなくても良いと思うよ
数値計算などを含めると分割コストが馬鹿にならないけど、ディレクトリトラバーサルはロスなくマルチスレッドが効きやすい処理だから
自分は昔から自作の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 比較はこのスレでの話
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
そこまで言うなら論より証拠が欲しいな
お題スレで697が型変更(BigInt要件追加703,706)で困ってるかもしれないので助けてあげて
C++の方は難なく型変更出来た、それも(おそらくアルゴリズム内容に感知しない)別人が
https://mevius.5ch.net/test/read.cgi/tech/1691038333/697
2025/03/26(水) 18:28:10.20ID:/yA7e5F+
rustは身内よりも
外からの攻撃に耐えてる感じか
素性がいいからな
ポテンシャルが危険視されてんだろ
外からの攻撃に耐えてる感じか
素性がいいからな
ポテンシャルが危険視されてんだろ
2025/03/26(水) 18:45:50.26ID:vEMRQKYf
2025/03/26(水) 18:47:25.84ID:vEMRQKYf
2025/03/26(水) 19:03:18.26ID:GKti4th2
再発明禁止したらLispしか書けなくなるぞ
それはそれでいいか
それはそれでいいか
2025/03/26(水) 19:05:21.95ID:fvsJG7TC
>>41,53,64
そのポテンシャル、いつ発揮するの?
そのポテンシャル、いつ発揮するの?
2025/03/26(水) 19:06:51.25ID:fvsJG7TC
>>41,53,64
そのリファクタリング、いつやるの?
そのリファクタリング、いつやるの?
2025/03/26(水) 19:09:36.76ID:GKti4th2
Ubuntuのcoreutilの一部をRust実装にしてみる予定あるよ
ゆっくりかもだが着実に浸透していく
ゆっくりかもだが着実に浸透していく
2025/03/26(水) 19:16:40.14ID:DX3iKWhq
2025/03/26(水) 19:19:09.38ID:/yA7e5F+
>>71
乗っ取ってる最中だな
乗っ取ってる最中だな
2025/03/26(水) 19:20:31.32ID:DX3iKWhq
やりがいあるのかね
> linuxコマンドの焼き直しばかり
やらされるようになったら愛され言語陥落
> linuxコマンドの焼き直しばかり
やらされるようになったら愛され言語陥落
2025/03/26(水) 19:22:06.71ID:DX3iKWhq
>>72
ははw、Linuxはデバドラで軒下貸しただけのつもりだったのかな
ははw、Linuxはデバドラで軒下貸しただけのつもりだったのかな
2025/03/26(水) 19:33:31.85ID:GKti4th2
Linuxはカーネルだけだから関係ないぞ
置き換えてるのはGNUのコマンドだね
置き換えてるのはGNUのコマンドだね
2025/03/26(水) 19:36:49.23ID:1ptNiZfL
>>63
Rustは強い静的型付け言語なのでその手で問題があれば必ずエラーとなり教えてくれる
問題児となる暗黙の型変換や(!Copyの時の)暗黙のコピーがないため優秀
エラーに従いそれらを手入れしてやるだけだ
もちろんコピーせずに済むところは参照を使い必要なところのみclone()する
アルゴリズムの変更は必要ない
ここまで一般的な話だが
BigIntに限ればさらに効率高めるためにxxx_assign系を使うように変えられるとヒープ割り当て抑制でさらに効率が上がるだろう
頑張れ
Rustは強い静的型付け言語なのでその手で問題があれば必ずエラーとなり教えてくれる
問題児となる暗黙の型変換や(!Copyの時の)暗黙のコピーがないため優秀
エラーに従いそれらを手入れしてやるだけだ
もちろんコピーせずに済むところは参照を使い必要なところのみclone()する
アルゴリズムの変更は必要ない
ここまで一般的な話だが
BigIntに限ればさらに効率高めるためにxxx_assign系を使うように変えられるとヒープ割り当て抑制でさらに効率が上がるだろう
頑張れ
2025/03/26(水) 19:42:15.95ID:/yA7e5F+
BSDがカーネルからgcc消した時もまずはコマンド(linuxからしたらユーザーランド)からコツコツやってたな
2025/03/26(水) 19:44:59.97ID:WKIoyxAu
でかくて体力あるとこが立ち泳ぎしてる段階
79デフォルトの名無しさん
2025/03/27(木) 00:25:51.02ID:UR4LJQwW 車輪の再発明でもいいからOpenCVのRust版みたいなの欲しい、とは思う
巨大だから作り直しが面倒というのは目に見えてるが
巨大だから作り直しが面倒というのは目に見えてるが
2025/03/27(木) 01:13:52.13ID:Gs7UoxFU
Rustは車輪の再発明に向かないよな。というのもコスパ悪いから。すでにバグ取りして動いてるC++とかライブラリーをわざわざ書き直すなんて俺たちはしないな
どちらかと言うと真新しいライブラリーの設計するときに導入しやすいし、チームにも勧めやすい。俺たちのチームでは一からスキーマ決めて新しい機能追加していこうってなったときテストコード含めて一括で書けるからライブラリークレイトがデグレイドしなくて開発効率上がってる
0->1型開発ならRustでやりますと言っても承認降りるよ。品質保証部とかの人もリリース済み製品の変更は嫌うが、新規開発は好きにやってと言ってくるし
どちらかと言うと真新しいライブラリーの設計するときに導入しやすいし、チームにも勧めやすい。俺たちのチームでは一からスキーマ決めて新しい機能追加していこうってなったときテストコード含めて一括で書けるからライブラリークレイトがデグレイドしなくて開発効率上がってる
0->1型開発ならRustでやりますと言っても承認降りるよ。品質保証部とかの人もリリース済み製品の変更は嫌うが、新規開発は好きにやってと言ってくるし
2025/03/27(木) 11:37:12.40ID:vU3T1Sq/
OpenCVのRust版はもうあるんじゃないの
pureRustしか勝たんのなら知らん
pureRustしか勝たんのなら知らん
2025/03/27(木) 11:43:38.51ID:vU3T1Sq/
2025/03/27(木) 12:03:44.42ID:oA1Vk6uc
2025/03/27(木) 12:07:49.67ID:vU3T1Sq/
2025/03/27(木) 12:09:12.20ID:oA1Vk6uc
2025/03/27(木) 12:12:23.94ID:vU3T1Sq/
>>83
なるほどね
なるほどね
2025/03/27(木) 12:14:17.75ID:vU3T1Sq/
>>85 の 799 に答えるなら「OpenCVは既に入っている」なんだけどね
2025/03/27(木) 12:26:21.40ID:UV4Rce1I
>>80
どの言語からどの言語に移植するのもコスパ悪いので必要ないならする意義はない
しかしそれでもRustへの移植が行われているのは実利があるからでその2大理由は
CPUメモリのリソース効率が良くなる場合
セキュリティ脆弱性を含めた安全性が良くなる場合
もちろん単純な移植ではなく再設計を伴うならばそれ自体がRustを選ぶ理由になる
どの言語からどの言語に移植するのもコスパ悪いので必要ないならする意義はない
しかしそれでもRustへの移植が行われているのは実利があるからでその2大理由は
CPUメモリのリソース効率が良くなる場合
セキュリティ脆弱性を含めた安全性が良くなる場合
もちろん単純な移植ではなく再設計を伴うならばそれ自体がRustを選ぶ理由になる
89デフォルトの名無しさん
2025/03/27(木) 12:35:05.22ID:rSJQMcmU そこでGoです
90デフォルトの名無しさん
2025/03/27(木) 12:40:56.78ID:rSJQMcmU つまり簡単に言えばTrait制約は誤訳ってこと?
91デフォルトの名無しさん
2025/03/27(木) 12:49:37.81ID:OnnNAMTi つまり、英語の単語と日本語の単語は一対一対応ではないということ
2025/03/27(木) 12:58:01.56ID:3vznYkp6
>>90
一貫することが技術用語としては正しい態度なんだよ。
自然言語的な意味で誤訳かどうかは最初から問題じゃなくて「Rust 用語では境界ということにする」という先駆者たちの合意に反して新しい語をあてるのはよくなきだよなって話。
一貫することが技術用語としては正しい態度なんだよ。
自然言語的な意味で誤訳かどうかは最初から問題じゃなくて「Rust 用語では境界ということにする」という先駆者たちの合意に反して新しい語をあてるのはよくなきだよなって話。
2025/03/27(木) 13:10:41.28ID:tmx8Uwvy
バイナリサイズが大きくならない
も入れておこう。Docker imageなどでは重視される
も入れておこう。Docker imageなどでは重視される
2025/03/27(木) 13:13:21.28ID:RnRbuasr
>>93
Cと比べて小さかったら、機能がそろってないだけだな
Cと比べて小さかったら、機能がそろってないだけだな
95デフォルトの名無しさん
2025/03/27(木) 13:13:44.07ID:rSJQMcmU Goはインストールすれば必ず動くから
Dockerの必要なし
繰り返す
Dockerの必要なし
Dockerの必要なし
繰り返す
Dockerの必要なし
2025/03/27(木) 13:15:12.84ID:3vznYkp6
>>95
docker を何だと思ってんの?
docker を何だと思ってんの?
2025/03/27(木) 13:17:24.49ID:tmx8Uwvy
>>94
Rustなら同等サイズで同機能狙えるでしょ。アピールポイントやで
Rustなら同等サイズで同機能狙えるでしょ。アピールポイントやで
2025/03/27(木) 13:46:24.95ID:3vznYkp6
C の主要な関数は実質的に OS の一部みたいになってる (libc.so) からその分だけ実行ファイルは小さくなる。
工夫すれば Rust でも同等を狙うことは出来るが Rust らしさは失われるよ。
工夫すれば Rust でも同等を狙うことは出来るが Rust らしさは失われるよ。
2025/03/27(木) 13:56:42.17ID:tmx8Uwvy
コードの見た目と安全性がRustのままならいいよ
libc使うと変わっちゃうか。unsafeが多そう
libc使うと変わっちゃうか。unsafeが多そう
100デフォルトの名無しさん
2025/03/27(木) 14:21:40.81ID:UV4Rce1I101デフォルトの名無しさん
2025/03/27(木) 14:33:43.34ID:+8xdP46W RustでUNICODEのicu(icu4x)を使うと肥大化するで
102デフォルトの名無しさん
2025/03/27(木) 16:58:03.46ID:EMjUNBdM >>92
先駆者www
先駆者www
103デフォルトの名無しさん
2025/03/27(木) 17:12:14.97ID:2OttSvV1 bounds問題は、もうテンプレに入れておけよ
本によって訳語が違うので注意ってことでいいでしょ
コミュニティ内の合意が、出版社に届くとは限らんのだから
本によって訳語が違うので注意ってことでいいでしょ
コミュニティ内の合意が、出版社に届くとは限らんのだから
104デフォルトの名無しさん
2025/03/27(木) 17:34:35.49ID:7P69hYA/ 境界vs制約について議論してるコミュニティあったの?
105デフォルトの名無しさん
2025/03/27(木) 17:37:35.59ID:op3HGEGw >>92
Rust信者が特にC/C++の先駆者に無礼なのを棚に上げるな
Rust信者が特にC/C++の先駆者に無礼なのを棚に上げるな
106デフォルトの名無しさん
2025/03/27(木) 17:42:30.79ID:2OttSvV1107デフォルトの名無しさん
2025/03/27(木) 18:37:05.75ID:WB8UVCI6 libcクレートをフル活用すれば、CのようなRustのような変なプログラムを作れる
テキスト出力にprintf()使うとか
テキスト出力にprintf()使うとか
108デフォルトの名無しさん
2025/03/27(木) 18:43:14.30ID:qPwdpjGN 福沢先生に聞いたら良い
109デフォルトの名無しさん
2025/03/27(木) 19:08:01.78ID:rSJQMcmU 先行者はRustで制御してるってほんとですか?
110デフォルトの名無しさん
2025/03/27(木) 19:12:24.22ID:6YJukqSn GC無いから制御も余裕でしょう
111デフォルトの名無しさん
2025/03/27(木) 22:05:08.25ID:yaqaVOpU どうしても境界を存続させたい勢力(一名)が足掻いてるな
112デフォルトの名無しさん
2025/03/27(木) 22:07:59.51ID:ycBRQ3y2 どっちでもいいけどとっとと手を動かせ。
the rust book 現行版の翻訳があればそれに従う。
the rust book 現行版の翻訳があればそれに従う。
113デフォルトの名無しさん
2025/03/27(木) 22:13:01.55ID:DQS6wNAr まぁ言われてみれば境界ってちょっとおかしいよな
多分境界エラーとかアウトオブバウンズとか
そっちの直訳に引っ張られたんやろけど
制約がいいとも思わんけど
制約のほうが若干マシ
多分境界エラーとかアウトオブバウンズとか
そっちの直訳に引っ張られたんやろけど
制約がいいとも思わんけど
制約のほうが若干マシ
114デフォルトの名無しさん
2025/03/27(木) 22:20:16.49ID:rSJQMcmU でも原文が境界の意味で使ってるからね
115デフォルトの名無しさん
2025/03/27(木) 23:19:56.80ID:+o4VGdTp >>114
根拠を提示しなよ
根拠を提示しなよ
116デフォルトの名無しさん
2025/03/27(木) 23:39:29.81ID:evd2Cb0n トレイト範囲が適訳
制約はアタオカ
制約はアタオカ
117デフォルトの名無しさん
2025/03/28(金) 00:38:42.10ID:vUju0k4U トレイト制限よな
118デフォルトの名無しさん
2025/03/28(金) 11:47:49.50ID:MGLT6E0C >>116
範囲イイね
範囲イイね
119デフォルトの名無しさん
2025/03/28(金) 11:48:49.20ID:MGLT6E0C 制約と言ってる人は意味が分かっていないのでは?
120デフォルトの名無しさん
2025/03/28(金) 12:17:15.99ID:oVOs+4++ トレイトをカタカナにしてるんだから、残りもカタカナでいいんじゃないの?
121デフォルトの名無しさん
2025/03/28(金) 12:43:54.75ID:T80f2PLT トレィト博士?
122デフォルトの名無しさん
2025/03/28(金) 12:44:11.20ID:VPiwRdmL トレイト製薬はCで**をダブルポインタと言うくらい恥ずかしい
123デフォルトの名無しさん
2025/03/28(金) 12:47:15.29ID:VPiwRdmL >>106
石田晴久ですねわかります
石田晴久ですねわかります
124デフォルトの名無しさん
2025/03/28(金) 13:28:02.98ID:v2Oxq7uo 今頃用語に難癖つけてる方が恥ずかしいわ
125デフォルトの名無しさん
2025/03/28(金) 13:38:19.20ID:aE2BjRzu >>118
トレイト視界がしっくりくる
トレイト視界がしっくりくる
126デフォルトの名無しさん
2025/03/28(金) 13:49:09.58ID:pnjW0RJ6 用語も決まらないほど難解なので初心者お断り言語ってことでよろしく
金にもならんぞ
金にもならんぞ
127デフォルトの名無しさん
2025/03/28(金) 13:49:56.56ID:pnjW0RJ6 家族連れはGoでもやっときなさい
128デフォルトの名無しさん
2025/03/28(金) 14:12:04.04ID:W4IssX7d RustやC++がカバーするほとんどの利用領域でGoは役立たずで選ばれていない現実を見なよ
他の言語のスレを荒らすという人間としてしてはいけない醜い行為をせずにGoスレへ帰りなさい
今後ここでGoは禁止
どうしてもやりたい人は「Rust vs Go」スレでやりなさい
他の言語のスレを荒らすという人間としてしてはいけない醜い行為をせずにGoスレへ帰りなさい
今後ここでGoは禁止
どうしてもやりたい人は「Rust vs Go」スレでやりなさい
129デフォルトの名無しさん
2025/03/28(金) 14:21:30.27ID:WrR5QFM2 一般人向けのGolang
孤高の童貞向けRust
という住み分けで
孤高の童貞向けRust
という住み分けで
130デフォルトの名無しさん
2025/03/28(金) 14:22:51.39ID:WrR5QFM2 Rustでドライバを書けるようにした時が
Linux凋落の始まりだった
と言われる未来が見える
Linux凋落の始まりだった
と言われる未来が見える
131デフォルトの名無しさん
2025/03/28(金) 14:24:01.39ID:WrR5QFM2 Trait制約とか言って恥ずかしくないのかな
まるで分っていませんと
自分でいふらしてるようなもの
まるで分っていませんと
自分でいふらしてるようなもの
132デフォルトの名無しさん
2025/03/28(金) 16:01:53.44ID:Hod7H+js C並に標準化が進むと思いますか
133デフォルトの名無しさん
2025/03/28(金) 16:12:38.49ID:FITPWZhb Cはコンパイラ乱立で勝手な拡張方言で標準語を作らざるを得なかった負の側面
134デフォルトの名無しさん
2025/03/28(金) 16:19:19.26ID:pnjW0RJ6 そこまで普及したらいいね。しかし人類には早すぎだからね
135デフォルトの名無しさん
2025/03/28(金) 21:41:02.63ID:NeeSelCN ABIレベルで標準化されてるものはC以外に無いよね
実装はCである必要はない (C++やRustでも良い) けど、FFI用のインターフェースとしてのCの需要は無くならない
正直もう少し表現力のあるものが欲しいけど、これは10年やそこらでは変わらないよなあ
実装はCである必要はない (C++やRustでも良い) けど、FFI用のインターフェースとしてのCの需要は無くならない
正直もう少し表現力のあるものが欲しいけど、これは10年やそこらでは変わらないよなあ
136デフォルトの名無しさん
2025/03/28(金) 22:09:12.96ID:iNY6N2sw cargo build時にlikerオプションとしてスペース込みのパス渡したいんだけど不可能?
137デフォルトの名無しさん
2025/03/29(土) 00:15:10.95ID:s9nxF7WE 不可能です
138デフォルトの名無しさん
2025/03/29(土) 00:39:07.23ID:HRez4USp Ferrous Systems が独自にまとめていた Rust の言語仕様が Rust プロジェクトに寄贈された。
139デフォルトの名無しさん
2025/03/29(土) 13:40:51.83ID:CEPWRujK 「トレイト境界」に文句を言っているやつは先んじて翻訳公開して、「トレイト制約」を定着させないとな。
140デフォルトの名無しさん
2025/03/29(土) 13:42:20.41ID:eO4ALMMP いつまでもうるさいぞ
英語で言え
英語で言え
141デフォルトの名無しさん
2025/03/29(土) 14:49:39.18ID:M3jsTRd4 自分で crates 造ったとき(他人のでもいい)
docs.rs とかの項目って基本的に pub したものしか出ないと思うけど
lib.rs に描いてる #[cfg(test)] や #[test] の(pubじゃない) fn の一覧ってどこで観れる?
docs.rs とかの項目って基本的に pub したものしか出ないと思うけど
lib.rs に描いてる #[cfg(test)] や #[test] の(pubじゃない) fn の一覧ってどこで観れる?
142デフォルトの名無しさん
2025/03/29(土) 15:00:24.95ID:HRez4USp >>141
cargo doc --document-private-items
cargo doc --document-private-items
143デフォルトの名無しさん
2025/03/29(土) 15:28:46.36ID:CpKPYmaM 複オジはことごとく論破されたのがよほど悔しかったんだろう
144デフォルトの名無しさん
2025/03/29(土) 19:54:04.74ID:dzNwKezf トイレット境界
145デフォルトの名無しさん
2025/03/29(土) 20:14:42.70ID:3fotbZye 訳を定着させる前に、
公式のRFCなり、zulipなりに「bindingでは意味が分からないconstraintにすべきだ!」というリクエストを上げて、
公式側から「せやな」って言わせるのが先じゃねーの?
失笑買いそうだけど。
公式のRFCなり、zulipなりに「bindingでは意味が分からないconstraintにすべきだ!」というリクエストを上げて、
公式側から「せやな」って言わせるのが先じゃねーの?
失笑買いそうだけど。
146デフォルトの名無しさん
2025/03/29(土) 22:48:04.91ID:lEg1YEIS147デフォルトの名無しさん
2025/03/29(土) 23:00:53.39ID:JbKrf9v4 >>146
bindingを否定してバカにする意味がわからないが?
trait boundsは境界または境界線、境界エリアあたりで良いんじゃないの
議論ばかりだとRustの実装が進まないし、もう日本語にこだわらずに英語のまま行こうぜ
相互に相手が馬鹿だと思ってても時間の無駄なだけだ
bindingを否定してバカにする意味がわからないが?
trait boundsは境界または境界線、境界エリアあたりで良いんじゃないの
議論ばかりだとRustの実装が進まないし、もう日本語にこだわらずに英語のまま行こうぜ
相互に相手が馬鹿だと思ってても時間の無駄なだけだ
148デフォルトの名無しさん
2025/03/29(土) 23:05:01.36ID:+pSldpuX しょうもないことに執着すんの自閉でしょ
149デフォルトの名無しさん
2025/03/29(土) 23:05:15.30ID:JKA9Rw0q ということで訳者の皆さん、予約語+〇〇な単語は無理にやくさんでいいです
150デフォルトの名無しさん
2025/03/30(日) 00:24:42.12ID:B270st5L >>147
trait boundsのboundとbindingが何か関係があると思ってるの?
trait boundsのboundとbindingが何か関係があると思ってるの?
151デフォルトの名無しさん
2025/03/30(日) 09:13:11.97ID:s1RBDSG3 bindの過去分詞はboundだけどtraitboundsのboundとbindingは何の関係も無い別の単語
152デフォルトの名無しさん
2025/03/30(日) 11:09:56.57ID:YOjuL2uH 境界関係者にとっては本来の単語の意味とかどうでもいいんだろ
誤訳だろうと先駆者wに従うだけだから
誤訳だろうと先駆者wに従うだけだから
153デフォルトの名無しさん
2025/03/30(日) 11:11:48.21ID:4y0c+ddG まだやってんのか
制約でいいじゃん
オライリーがそうなってんだし
制約でいいじゃん
オライリーがそうなってんだし
154デフォルトの名無しさん
2025/03/30(日) 11:33:03.21ID:oLFS0Pje nightlyじゃないとカスタムアロケーターすら使えないんか・・・
Rustって思ったより未完成すぎんな
Rustって思ったより未完成すぎんな
155デフォルトの名無しさん
2025/03/30(日) 12:44:09.91ID:22uPyPsf GlobalAllocは使えないの?
156デフォルトの名無しさん
2025/03/30(日) 17:14:17.40ID:w2PW/L+Y sbrkは使えないの?
157デフォルトの名無しさん
2025/03/30(日) 18:18:08.22ID:qYlvw5QP ゲーム開発したいんかな
158デフォルトの名無しさん
2025/03/30(日) 18:18:10.57ID:VEZofEgk ゲーム開発したいんかな
159デフォルトの名無しさん
2025/03/30(日) 20:01:37.56ID:XoWLs3od egui
160デフォルトの名無しさん
2025/03/30(日) 23:24:44.75ID:1KOgVEB/ >>156
Cでも普通はmalloc/reallocを呼んでその中で間接的にsbrkが使われる
Rustの抽象化層の下も同様にlibcのmalloc/reallocを呼んでいる
直接sbrkを呼び出す独自のアロケータを作ろうとしているのかな
Cでも普通はmalloc/reallocを呼んでその中で間接的にsbrkが使われる
Rustの抽象化層の下も同様にlibcのmalloc/reallocを呼んでいる
直接sbrkを呼び出す独自のアロケータを作ろうとしているのかな
161デフォルトの名無しさん
2025/03/30(日) 23:43:38.72ID:0YGMHJcy Issue出せばいいでしょ。Cで出来ることが出来ないなら考えてくれる人がいるか。自分で実装しても良し
162デフォルトの名無しさん
2025/03/30(日) 23:46:35.01ID:1KOgVEB/ もちろん呼びたければRustからsbrkだろうがmmapだろうが呼び出せる
163デフォルトの名無しさん
2025/03/30(日) 23:51:36.82ID:0YGMHJcy C++みたいにRAIIな基板でお手軽アロケータ実装したいんじゃないの
164デフォルトの名無しさん
2025/03/31(月) 09:09:53.86ID:NkWcWpUf traitのFromを描いたらIntoは描かなくて良い?
Intoを勝手に造ってくれるのは一部だけ?
Intoを勝手に造ってくれるのは一部だけ?
165デフォルトの名無しさん
2025/03/31(月) 11:08:35.12ID:ToWOl/+F >>164
全自動
Fromを実装すれば以下のコードがあるためジェネリックに逆向きのIntoが自動的に実装される
impl<T, U> Into<U> for T
where
U: From<T>,
{
fn into(self) -> U {
U::from(self)
}
}
全自動
Fromを実装すれば以下のコードがあるためジェネリックに逆向きのIntoが自動的に実装される
impl<T, U> Into<U> for T
where
U: From<T>,
{
fn into(self) -> U {
U::from(self)
}
}
166デフォルトの名無しさん
2025/03/31(月) 12:19:01.61ID:lPDrQxU4 blanket implementation というやつ
167デフォルトの名無しさん
2025/04/01(火) 11:58:58.47ID:25dpyBej リファレンスでblanket implementationの定義を確認しようとしたら一つ下にboundの定義もあった
https://doc.rust-lang.org/reference/glossary.html#bound
この定義を踏まえて前スレを読むと境界支持者らの主張はことごとく出鱈目だな
アイツらマジで何なの?
https://doc.rust-lang.org/reference/glossary.html#bound
この定義を踏まえて前スレを読むと境界支持者らの主張はことごとく出鱈目だな
アイツらマジで何なの?
168デフォルトの名無しさん
2025/04/01(火) 12:04:22.14ID:gjHbwVK/ Bound
Bounds are constraints on a type or trait. For example, if a bound is placed on the argument a function takes, types passed to that function must abide by that constraint.
Bounds are constraints on a type or trait. For example, if a bound is placed on the argument a function takes, types passed to that function must abide by that constraint.
169デフォルトの名無しさん
2025/04/01(火) 12:14:34.31ID:DWOYlQp7 その話もうええっちゅうねん
170デフォルトの名無しさん
2025/04/01(火) 12:16:55.39ID:fnMFLzbI 一度こだわり始めたら自分でも制御できないんだ
たぶん自閉症とかの障害がある
たぶん自閉症とかの障害がある
171デフォルトの名無しさん
2025/04/01(火) 12:29:39.99ID:P2vsOxzW Bounds are constraintsワロタw
制約大勝利やんw
制約大勝利やんw
172デフォルトの名無しさん
2025/04/01(火) 12:33:32.91ID:rb2Yplrr >>171
バカだろ
英語をよく読めよ
constraints on a type
つまりいわゆる型制約が正解
トレイト制約になるのはスーパートレイトがサブトレイトに対する時のみに限られる
したがってトレイト制約の訳は間違っている
バカだろ
英語をよく読めよ
constraints on a type
つまりいわゆる型制約が正解
トレイト制約になるのはスーパートレイトがサブトレイトに対する時のみに限られる
したがってトレイト制約の訳は間違っている
173デフォルトの名無しさん
2025/04/01(火) 12:37:50.50ID:rb2Yplrr 俺はトレイト境界よりもトレイト範囲かトレイト限界がベターと思っている派
しかしトレイト境界で定着していて意味するところは同じなのでトレイト境界で構わない
誤訳のトレイト制約だけはNG
しかしトレイト境界で定着していて意味するところは同じなのでトレイト境界で構わない
誤訳のトレイト制約だけはNG
174デフォルトの名無しさん
2025/04/01(火) 12:40:33.02ID:rb2Yplrr 訳はこうなる
「トレイト境界は型(もしくはサブトレイト)に対する制約である」
「トレイト境界は型(もしくはサブトレイト)に対する制約である」
175デフォルトの名無しさん
2025/04/01(火) 13:58:37.31ID:PJuk1MUs やばい、人類が滅亡する!
176デフォルトの名無しさん
2025/04/01(火) 14:18:55.81ID:a32Fz+d6 トレイト世界とか宇宙でどうや
177デフォルトの名無しさん
2025/04/01(火) 14:20:58.62ID:a32Fz+d6 システムプログラミング用言語であるから簡単な用語がいいんだがね
数学はやめいよ
数学はやめいよ
178デフォルトの名無しさん
2025/04/01(火) 14:33:15.61ID:/iF38gH/ この画像を貼る時が来たようだな
https://i.imgur.com/vGcEcQa.png
https://i.imgur.com/vGcEcQa.png
179デフォルトの名無しさん
2025/04/01(火) 15:42:56.21ID:WabwVzC7 グロ中尉
180デフォルトの名無しさん
2025/04/01(火) 15:44:46.09ID:WabwVzC7 Trait
A trait is a language item that is used for describing the functionalities a type must provide. It allows a type to make certain promises about its behavior.
Generic functions and generic structs can use traits to constrain, or bound, the types they accept.
A trait is a language item that is used for describing the functionalities a type must provide. It allows a type to make certain promises about its behavior.
Generic functions and generic structs can use traits to constrain, or bound, the types they accept.
181デフォルトの名無しさん
2025/04/01(火) 18:32:01.55ID:35V+D+1X 旧約聖書の解釈でさえもこのスレほどバトルにはなってないと言うのに!
182デフォルトの名無しさん
2025/04/01(火) 19:37:06.51ID:heNo9Jy4 >>168
バカの極みやね
Bounds are constraints on a type or trait.
Bounds = constraints ではないぞ
トレイト教会がトレイトを聖約するんだぞ
バカの極みやね
Bounds are constraints on a type or trait.
Bounds = constraints ではないぞ
トレイト教会がトレイトを聖約するんだぞ
183デフォルトの名無しさん
2025/04/01(火) 19:51:03.44ID:MORrUUwC Bounds are constraints(境界は制約である)
Bounds are constraints on a type or trait.(境界は、型または特性に対する制約です。)
つまり制約です
Bounds are constraints on a type or trait.(境界は、型または特性に対する制約です。)
つまり制約です
184デフォルトの名無しさん
2025/04/01(火) 19:53:23.79ID:rb2Yplrr いわゆる型制約だよ
型制約と同様にサブトレイト制約でもある
トレイト制約は誤用
型制約と同様にサブトレイト制約でもある
トレイト制約は誤用
185デフォルトの名無しさん
2025/04/01(火) 19:59:34.21ID:MORrUUwC DeepL翻訳
Bounds are constraints(境界は制約である)
Bounds are constraints on a type or trait.(バウンズは型や特性に対する制約である。)
Bounds are constraints(境界は制約である)
Bounds are constraints on a type or trait.(バウンズは型や特性に対する制約である。)
186デフォルトの名無しさん
2025/04/02(水) 08:01:55.21ID:6WURLMGL だからとっとと Rust Book最新版翻訳して、好きな方の用語に統一しとけ。
最新版で「トレイト制約」になっていれば文句言わんよ。
最新版で「トレイト制約」になっていれば文句言わんよ。
187デフォルトの名無しさん
2025/04/02(水) 12:57:04.07ID:ku7Mbk5p 境界信者の反知性主義がここまで凄まじいとは
さすがに想定外
さすがに想定外
188デフォルトの名無しさん
2025/04/02(水) 13:00:58.34ID:doxXhnNc 訳者本人じゃないの
信者の素性はニート?
信者の素性はニート?
189デフォルトの名無しさん
2025/04/02(水) 13:23:48.52ID:ETZ+3G/b 普及率100パーセント、100人中100人が守るルールか
なるほどたしかに法律なら不可能なことが言語なら可能かもしれない
なるほどたしかに法律なら不可能なことが言語なら可能かもしれない
190デフォルトの名無しさん
2025/04/02(水) 13:31:04.44ID:k9Y5euIy 境界と描かれてる本は不良品だから法制化して全数リコール
191デフォルトの名無しさん
2025/04/02(水) 14:20:43.22ID:5SS1+7gJ そろそろ凡俗な人達による用語統一議論終わった?
192デフォルトの名無しさん
2025/04/02(水) 15:11:44.14ID:hi8l+lAW では高尚な話題どうぞ
193デフォルトの名無しさん
2025/04/02(水) 15:17:23.33ID:J7kQrx92 プロジェクト名に '-' を入れるのって非推奨?
194デフォルトの名無しさん
2025/04/02(水) 15:18:40.63ID:Jip2DsUV では高尚な話題です
原語のboundがまず間違っているのでは?
原語のboundがまず間違っているのでは?
195デフォルトの名無しさん
2025/04/02(水) 15:25:44.81ID:hi8l+lAW196デフォルトの名無しさん
2025/04/02(水) 16:15:00.32ID:kFN7dZ5N 電界磁界より電場磁場が適切である様に
トレイトはトレイト場であるべき
トレイトはトレイト場であるべき
197デフォルトの名無しさん
2025/04/02(水) 18:20:52.95ID:ETZ+3G/b ルビを原文ママにするという高尚テクニックがあったなそういえば
解(イコライザ)とか
解(イコライザ)とか
198デフォルトの名無しさん
2025/04/02(水) 19:54:18.16ID:7MGV8+qg 制約と訳すと原文の意味が失われるので技術翻訳では避けるべき
もちろん小説を訳すなら過激な意訳も可
今回の件はTrait境界が妥当でしょう
もちろん小説を訳すなら過激な意訳も可
今回の件はTrait境界が妥当でしょう
199デフォルトの名無しさん
2025/04/02(水) 19:56:28.56ID:7MGV8+qg 分かりやすく言ってみましょうか
Trait制約は制約である
制約は制約である
どうです?
何かが失われていませんか?
Trait境界は制約である
境界は制約である
これなら意味が分かるでしょう
Trait制約は制約である
制約は制約である
どうです?
何かが失われていませんか?
Trait境界は制約である
境界は制約である
これなら意味が分かるでしょう
200デフォルトの名無しさん
2025/04/02(水) 20:00:01.91ID:Jip2DsUV まだ訳の問題だと思っているのか
201デフォルトの名無しさん
2025/04/02(水) 20:36:53.45ID:ZXMS8tUt 制約で決まったみたいだね
202デフォルトの名無しさん
2025/04/02(水) 21:03:24.67ID:Guu+GWGm 『ゼロから学ぶRust』という書籍だとトレイト制約だな
訳なんだから複数あることはあり得るし、それ以上でもそれ以下でもない
訳なんだから複数あることはあり得るし、それ以上でもそれ以下でもない
203デフォルトの名無しさん
2025/04/02(水) 21:24:12.08ID:BbIBPK29 まぁ自分の思う訳語を広めたいんなら本を書いたり記事を書いたりすればいいのであって
このスレでレスバして決めるようなことではないよな
このスレでレスバして決めるようなことではないよな
204デフォルトの名無しさん
2025/04/02(水) 21:33:29.51ID:+3uS3HDF トレイト制約境界にしよう
205デフォルトの名無しさん
2025/04/02(水) 21:56:50.54ID:XDSWIi9m まぁオライリーからして制約なんでしょそもそも
206デフォルトの名無しさん
2025/04/02(水) 22:06:25.87ID:7MGV8+qg オライリーも質が落ちたな
207デフォルトの名無しさん
2025/04/02(水) 22:25:27.67ID:xGG0i3Qy 境界信者 :「boundsに制約の意味はない!」
公式リファレンス:「boundsとは型もしくはトレイトに対する制約のことです」
境界信者 :「制約という単語は真逆の意味だから使ってはいけない」
公式リファレンス:「boundsとは型もしくはトレイトに対する制約のことです」
境界信者 :「トレイト制約派は本質を理解できていないから制約なんて間違った用語を用いてしまう」
公式リファレンス:「boundsとは型もしくはトレイトに対する制約のことです」
www
公式リファレンス:「boundsとは型もしくはトレイトに対する制約のことです」
境界信者 :「制約という単語は真逆の意味だから使ってはいけない」
公式リファレンス:「boundsとは型もしくはトレイトに対する制約のことです」
境界信者 :「トレイト制約派は本質を理解できていないから制約なんて間違った用語を用いてしまう」
公式リファレンス:「boundsとは型もしくはトレイトに対する制約のことです」
www
208デフォルトの名無しさん
2025/04/02(水) 22:47:40.00ID:UyFxJKtn209デフォルトの名無しさん
2025/04/02(水) 23:07:01.46ID:eWxvA1Ub そもそも特定の文脈においてしか「境界」と訳してはいけない単語なのにそれを知らずに誤訳をしてしまったのが間違いの始まり
その後繰り返し指摘があり何度も見直す機会があったにも関わらず自分の誤った判断を修正したくないばかりに「境界」に執着して日本のRustコミュニティの足を引っ張った罪は重い
その後繰り返し指摘があり何度も見直す機会があったにも関わらず自分の誤った判断を修正したくないばかりに「境界」に執着して日本のRustコミュニティの足を引っ張った罪は重い
210デフォルトの名無しさん
2025/04/02(水) 23:08:32.45ID:dxnRa7Rm boundsの訳語を制約としてはいけない理由がようやくわかった
211デフォルトの名無しさん
2025/04/02(水) 23:10:03.40ID:ETZ+3G/b X=X (XはXである) という等式は無意味だとか意味不明だとかいう批判は日本語限定じゃなくて普遍的な話題だ
212デフォルトの名無しさん
2025/04/02(水) 23:13:35.48ID:UyFxJKtn 「制約とは型もしくはトレイトに対する制約のことです」
となり破綻する
だから英語でもboundsとconstraintを使い分けているのだ
となり破綻する
だから英語でもboundsとconstraintを使い分けているのだ
213デフォルトの名無しさん
2025/04/02(水) 23:22:33.90ID:ZXMS8tUt 美味しんぼ「冬のアラは最高たい!」
※ここでのアラはクエのことです
※ここでのアラはクエのことです
214デフォルトの名無しさん
2025/04/02(水) 23:26:13.72ID:dxnRa7Rm boundsの訳語を制約としてはいけない理由はわかったけど
boundsの訳語を何にすると良いのかな
boundsの訳語を何にすると良いのかな
215デフォルトの名無しさん
2025/04/02(水) 23:52:15.22ID:3y9C0Jbf 境界信者:「boundsに制約の意味はない」
境界信者:「trait boundsが何かを制約することはない」
境界信者:「制約の視点で見るやつは本質を理解してない」
(公式リファレンスが指摘されると)
境界信者:「境界は制約である」
www
境界信者:「trait boundsが何かを制約することはない」
境界信者:「制約の視点で見るやつは本質を理解してない」
(公式リファレンスが指摘されると)
境界信者:「境界は制約である」
www
216デフォルトの名無しさん
2025/04/02(水) 23:53:09.75ID:9mU4kqKI 「トレイト制約とは、ジェネリクスとして受け入れる型をトレイトにより制限する機能です」
とでも書けばいいんじゃないの
単語の繰り返しを避けるのは文章表現の問題であって、それらが理屈の上で異なるものという意味ではない
特に英語だと、同じ単語を避けるための言い換えをよく使う
とでも書けばいいんじゃないの
単語の繰り返しを避けるのは文章表現の問題であって、それらが理屈の上で異なるものという意味ではない
特に英語だと、同じ単語を避けるための言い換えをよく使う
217デフォルトの名無しさん
2025/04/02(水) 23:59:24.49ID:iqeRQBxg >>216
それは本質を理解できておらず失格
trait boundsは機能ではない
traitのカヴァーする領域を示している
それが型に対する制約となる
したがってtrait boundsをトレイト制約と訳すのは理解できていない証拠
それは本質を理解できておらず失格
trait boundsは機能ではない
traitのカヴァーする領域を示している
それが型に対する制約となる
したがってtrait boundsをトレイト制約と訳すのは理解できていない証拠
218デフォルトの名無しさん
2025/04/03(木) 00:01:08.33ID:8CqSbYxm いつまで日本語喋ってんだよ
219デフォルトの名無しさん
2025/04/03(木) 00:04:50.72ID:+bCmk9Ai >>215
やめたれw
やめたれw
220デフォルトの名無しさん
2025/04/03(木) 00:15:34.46ID:ZaOVYWDn 他のもので例えるとわかりやすい
「人間は哺乳類である」
これは確かに正しいが人間と哺乳類は意味が異なる
人間と言うべきところで哺乳類と言うのは間違い
「boundsは制約(constraint)である」
これは確かに正しいがboundsと制約(constraint)は意味が異なる
boundsと言うべきところで制約と言うのは間違い
「人間は哺乳類である」
これは確かに正しいが人間と哺乳類は意味が異なる
人間と言うべきところで哺乳類と言うのは間違い
「boundsは制約(constraint)である」
これは確かに正しいがboundsと制約(constraint)は意味が異なる
boundsと言うべきところで制約と言うのは間違い
221デフォルトの名無しさん
2025/04/03(木) 00:16:55.80ID:yptlPnek 「制約は制約である」という文は数学的には全く問題ないのだ
でも工学的あるいは商業的には、役に立たない(気がする)文は過度に問題視される
でも工学的あるいは商業的には、役に立たない(気がする)文は過度に問題視される
222デフォルトの名無しさん
2025/04/03(木) 00:20:44.56ID:ZaOVYWDn 人間は哺乳類である
哺乳類は生物である
いずれも正しいが意味が明確に異なる
boundsはconstraintである
これも同様に両者は意味が明確に異なる
だからわざわざ別の単語を用いている
両者を共に同じ「制約」と訳すのは頭が弱い人であると断言できる
哺乳類は生物である
いずれも正しいが意味が明確に異なる
boundsはconstraintである
これも同様に両者は意味が明確に異なる
だからわざわざ別の単語を用いている
両者を共に同じ「制約」と訳すのは頭が弱い人であると断言できる
223デフォルトの名無しさん
2025/04/03(木) 01:01:25.93ID:SsrDHKVx >>221
なんと進次郎構文だ
なんと進次郎構文だ
224デフォルトの名無しさん
2025/04/03(木) 01:08:41.15ID:yptlPnek >>223
詐欺にも誹謗中傷にもならない、比較的安全な構文だ
詐欺にも誹謗中傷にもならない、比較的安全な構文だ
225デフォルトの名無しさん
2025/04/03(木) 01:17:18.29ID:fEBWzqBi Trait制約と言ってる人は理解が足りていない
226デフォルトの名無しさん
2025/04/03(木) 01:32:50.74ID:aMSce+h/ 文脈を無視して対訳表だけで機械的に翻訳しようとするからゴミ翻訳ができあがる
それも指摘されたそばからやってるんだから始末に終えない
それも指摘されたそばからやってるんだから始末に終えない
227デフォルトの名無しさん
2025/04/03(木) 01:57:47.64ID:jzL1ni2p Trait BoundsやLifetime BoundsなどでのBoundsは一般名詞ではなくて専門用語として位置付けられてるよ
だからBoundsの日本語訳も常に一貫して同一の訳を当てないといけない
そして使われ方の意味合いがconstraint (制約)とは異なるため少なくとも「制約」とは異なる訳を当てないといけないね
だからBoundsの日本語訳も常に一貫して同一の訳を当てないといけない
そして使われ方の意味合いがconstraint (制約)とは異なるため少なくとも「制約」とは異なる訳を当てないといけないね
228デフォルトの名無しさん
2025/04/03(木) 07:34:50.76ID:x1QSEzan いつまでもアホなこと言っていないで、まずはRust Book最新版の翻訳を作って統一しとけ。
最新版で「トレイト制約」になっていれば文句言わんよ。
最新版で「トレイト制約」になっていれば文句言わんよ。
229デフォルトの名無しさん
2025/04/03(木) 07:55:55.24ID:OyObPfFB 機械翻訳みたいに一対一に当て嵌めてるのはどっちなんだか
辞書で引けば constraint = 制限、制約、圧迫、束縛 などいろいろあるよ?
英語だと
bound is a constraint that restricts the type ...
のように、ある概念を伝えるのに複数の語を使うことをよく行う
これは同じ単語の繰り返しを避ける (そういう文章を拙いと見做す) 文化があるのと、単語が誤って理解されないようにというのがある
この例なら、 bound が「飛び跳ねる」などの意味と解釈されないよう、 constraint や restrict などと言い換えることでそれが制限・制約という意味だと伝わるようにする
もちろん用語としては trait bonud が正式な名称だから、これを trait constraint や trait restriction とは呼ばない
けど、意味としてはこれらに近いということ
辞書で引けば constraint = 制限、制約、圧迫、束縛 などいろいろあるよ?
英語だと
bound is a constraint that restricts the type ...
のように、ある概念を伝えるのに複数の語を使うことをよく行う
これは同じ単語の繰り返しを避ける (そういう文章を拙いと見做す) 文化があるのと、単語が誤って理解されないようにというのがある
この例なら、 bound が「飛び跳ねる」などの意味と解釈されないよう、 constraint や restrict などと言い換えることでそれが制限・制約という意味だと伝わるようにする
もちろん用語としては trait bonud が正式な名称だから、これを trait constraint や trait restriction とは呼ばない
けど、意味としてはこれらに近いということ
230デフォルトの名無しさん
2025/04/03(木) 11:23:23.08ID:6oWT3dN7 >>226が批判してるのはboundを制約と訳すとBounds are constraints on a type or traitが「制約は制約である」となってしまうからtrait boundsもトレイト制約と訳すべきではないと言ってるやつのほうでしょ
231デフォルトの名無しさん
2025/04/03(木) 12:16:36.08ID:v+gtq4Fg その一文だけ、うまく訳せばいいんじゃないの?
動詞の方を簡易な日本語表現にすれば進次郎構文は避けられる
動詞の方を簡易な日本語表現にすれば進次郎構文は避けられる
232デフォルトの名無しさん
2025/04/03(木) 12:19:56.95ID:XzSm1dM6 トレイト制約という明らかに間違った別の訳をしつこく持ち出す人はRust界の混乱を狙った荒らしなんだと思うよ
なぜtrait constraintではなくtrait boundsなのかという一番本質的なRustでの概念の違いに興味を持たないことからも
なぜtrait constraintではなくtrait boundsなのかという一番本質的なRustでの概念の違いに興味を持たないことからも
233デフォルトの名無しさん
2025/04/03(木) 12:20:15.17ID:v+gtq4Fg 制約を英英辞典か国語辞典で調べて考えよう
234デフォルトの名無しさん
2025/04/03(木) 12:23:12.59ID:v+gtq4Fg 英語的にはboundsの方が身近な表現かもしれんな。コンストなんちゃらは共和党支持層が嫌うラテン語由来なのだっけ
235デフォルトの名無しさん
2025/04/03(木) 12:33:49.45ID:qiqxc1gJ さっさとペンキの色決めろよ
236デフォルトの名無しさん
2025/04/03(木) 12:34:32.24ID:4NO2Gn5f237デフォルトの名無しさん
2025/04/03(木) 12:39:11.80ID:v+gtq4Fg トレイト緊縛で決まりな
238デフォルトの名無しさん
2025/04/03(木) 12:52:17.06ID:66iDY+yi 「トレイトバウンド」よりも日本語話者の理解を助ける言葉じゃなければ意味がないんだよな
その意味では同じ誤訳でも「トレイト境界」より「トレイト束縛」のほうがベターな訳だった
その意味では同じ誤訳でも「トレイト境界」より「トレイト束縛」のほうがベターな訳だった
239デフォルトの名無しさん
2025/04/03(木) 12:55:25.10ID:v+gtq4Fg トレイト緊縛。大勝利ってこと
240デフォルトの名無しさん
2025/04/03(木) 15:48:03.91ID:+bCmk9Ai 制限でいいよ
Javaの場合は
「Bounded Type Parameters」
https://docs.oracle.com/javase/tutorial/java/generics/bounded.html
google翻訳では「制限付き型パラメータ」
凄くわかりやすいよね
制約よりも境界よりもずっとわかりやすいよね
Javaの場合は
「Bounded Type Parameters」
https://docs.oracle.com/javase/tutorial/java/generics/bounded.html
google翻訳では「制限付き型パラメータ」
凄くわかりやすいよね
制約よりも境界よりもずっとわかりやすいよね
241デフォルトの名無しさん
2025/04/03(木) 17:10:42.17ID:fy3xRWQw 次スレは
Rust 29constraints
だね
Rust 29constraints
だね
242デフォルトの名無しさん
2025/04/03(木) 18:04:14.96ID:g1vkomnK そういう変なことしだすと隔離失敗するからやめてね
243デフォルトの名無しさん
2025/04/03(木) 18:08:12.59ID:LgxNjrJf Javaの日本語リファレンス終わったのか。Java終了だな
244デフォルトの名無しさん
2025/04/03(木) 18:23:21.08ID:CH3VtQpy245デフォルトの名無しさん
2025/04/03(木) 18:30:06.80ID:N2gRzLe2 トレイト制約はトンデモ勘違いだから絶対避けるべきだけど
トレイト境界やトレイト範囲やトレイト領域やトレイト上界やトレイト上限やトレイト限界などの意味するところが合ってる用語ならばどの用語に統一されても構わないよ
もちろんトレイト境界のままでもOK
トレイト境界やトレイト範囲やトレイト領域やトレイト上界やトレイト上限やトレイト限界などの意味するところが合ってる用語ならばどの用語に統一されても構わないよ
もちろんトレイト境界のままでもOK
246デフォルトの名無しさん
2025/04/03(木) 18:38:58.21ID:e7eRGvBW Bound単体を「型制約」と訳したいならTrait Boundsは「トレイトによる型制約」とでも訳せばいいだろ
重要なのは形式よりも意味のほうなんだから
重要なのは形式よりも意味のほうなんだから
247デフォルトの名無しさん
2025/04/03(木) 18:48:27.65ID:6vk0Qg+y248デフォルトの名無しさん
2025/04/03(木) 19:00:17.94ID:PM+GnFWY >>246
普通に「トレイト境界は型やサブトレイトに対する制約である」でええやん
普通に「トレイト境界は型やサブトレイトに対する制約である」でええやん
249デフォルトの名無しさん
2025/04/03(木) 19:07:19.95ID:+bCmk9Ai サブトレイトって言い続けてる奴一人な件w
250デフォルトの名無しさん
2025/04/03(木) 19:13:35.15ID:PM+GnFWY どういうこと?
みんな使っていてRustのどの記事を見てもスーパートレイトとサブトレイトと訳されてるけど別の訳があるの?
みんな使っていてRustのどの記事を見てもスーパートレイトとサブトレイトと訳されてるけど別の訳があるの?
251デフォルトの名無しさん
2025/04/03(木) 19:32:15.98ID:yptlPnek 形式主義って、完全情報ゲームなんだよな
オリジナルの原文にない情報が後知恵で追加されたらそれは完全情報とは言えないよね
オリジナルの原文にない情報が後知恵で追加されたらそれは完全情報とは言えないよね
252デフォルトの名無しさん
2025/04/03(木) 19:35:30.32ID:SaeLc9s2 公式ではなくても定着していてカジュアルな場面では当たり前のように使われる用語ってあるからなぁ。
C++ で構造体とかアップキャストとかメソッドとか言ってることは結構あるでしょ。
C++ で構造体とかアップキャストとかメソッドとか言ってることは結構あるでしょ。
253デフォルトの名無しさん
2025/04/03(木) 20:32:04.51ID:XfeSNHGY ほかに話すことはいくらでもあるのに永遠にboundの訳語だけを言い争い続けるこのスレ、終わってるよ
ていうか別スレ立ててそっちでやれや
ていうか別スレ立ててそっちでやれや
254デフォルトの名無しさん
2025/04/03(木) 21:30:43.37ID:fy3xRWQw structのdrop定義したとき
元のstructのmemberに別のstrustがあったら
どっちのdropが先に呼ばれる?
あと元のstructのmemberに自分のstructがあったら?
元のstructのmemberに別のstrustがあったら
どっちのdropが先に呼ばれる?
あと元のstructのmemberに自分のstructがあったら?
255デフォルトの名無しさん
2025/04/03(木) 21:31:56.02ID:g1vkomnK >>253
ほかに話すことがないからこうなってるんだって
ほかに話すことがないからこうなってるんだって
256デフォルトの名無しさん
2025/04/03(木) 21:45:12.33ID:EBCyuD6U257デフォルトの名無しさん
2025/04/03(木) 21:58:57.73ID:9igU0B0K >>254
最初に構造体自身の drop が呼ばれて、その後に各フィールドの drop が宣言順に呼ばれる
例えば
struct Foo { bar: Bar, baz: Baz }
なら、最初に Foo::drop が呼ばれて、その後に Bar::drop, Baz::drop の順に呼ばれる
「元のstructのmemberに自分のstructがあったら」はちょっと意図が汲み取れなかった
Rcで自身への参照を子が持つようなケースであれば、drop が呼ばれずメモリリークする
(親がdropしないと子がdropしない、子がdropしないと親がdropしない、という関係になるため)
最初に構造体自身の drop が呼ばれて、その後に各フィールドの drop が宣言順に呼ばれる
例えば
struct Foo { bar: Bar, baz: Baz }
なら、最初に Foo::drop が呼ばれて、その後に Bar::drop, Baz::drop の順に呼ばれる
「元のstructのmemberに自分のstructがあったら」はちょっと意図が汲み取れなかった
Rcで自身への参照を子が持つようなケースであれば、drop が呼ばれずメモリリークする
(親がdropしないと子がdropしない、子がdropしないと親がdropしない、という関係になるため)
258デフォルトの名無しさん
2025/04/03(木) 22:12:13.45ID:lMDfDaJq259デフォルトの名無しさん
2025/04/03(木) 22:12:45.42ID:1N6AvgYL weekじゃなくてweak
260デフォルトの名無しさん
2025/04/03(木) 22:20:03.44ID:a28tTbld261デフォルトの名無しさん
2025/04/03(木) 22:44:11.30ID:lMDfDaJq >>260
仮に「境界は制約である」が正しいとしても「制約は境界である」とは限らないので「boundsは境界である」は成り立たないぞ
仮に「境界は制約である」が正しいとしても「制約は境界である」とは限らないので「boundsは境界である」は成り立たないぞ
262デフォルトの名無しさん
2025/04/03(木) 22:54:37.51ID:jBjTQcyj Rustの公式リファレンスを見ればわかるけど
boundsはそのトレイトやライフタイムなどが取り得る範囲を意味している
それがジェネリックな型に対しては制約となるという扱い
例えばCopy bounds等の表現があるがCopyという制約があるわけではない
むしろCopyという特性を持つ
結果的にジェネリックな型に対しては制約となるだけである
したがってトレイト制約というねじ曲がった用語はふさわしくない
boundsはそのトレイトやライフタイムなどが取り得る範囲を意味している
それがジェネリックな型に対しては制約となるという扱い
例えばCopy bounds等の表現があるがCopyという制約があるわけではない
むしろCopyという特性を持つ
結果的にジェネリックな型に対しては制約となるだけである
したがってトレイト制約というねじ曲がった用語はふさわしくない
263デフォルトの名無しさん
2025/04/03(木) 23:11:56.25ID:+bCmk9Ai 彼はたった一人で>>262のような主張を繰り返すのである
逆走老人が「みんなが逆走してる」と主張するかのように
逆走老人が「みんなが逆走してる」と主張するかのように
264デフォルトの名無しさん
2025/04/03(木) 23:58:29.10ID:nPA8ABXZ トレイト境界は型パラメータに対してだけではなくトレイトオブジェクトでもdyn TraitA + TraitB + TraitCと指定するけど
機能を列挙していく感じで使うから制約とは真逆のイメージだわ
機能を列挙していく感じで使うから制約とは真逆のイメージだわ
265デフォルトの名無しさん
2025/04/04(金) 00:08:35.54ID:OzC2/LQ/ 拡張ってこと
266デフォルトの名無しさん
2025/04/04(金) 00:13:55.18ID:vNtVyPjO >>264
それは trait object であって bound とは呼ばないんじゃないか?
trait Foo オブジェクト, trait Foo+Baz オブジェクトといった感じ
Rust by example だとそもそも bound の説明はジェネリクスの章の中にある
(14. Generics > 14.4. Bounds という構成。ちなみに trait object は 16. Traits の中)
Boundはどちらかというとジェネリクスの型を制限する用途の方を指すと思う
それは trait object であって bound とは呼ばないんじゃないか?
trait Foo オブジェクト, trait Foo+Baz オブジェクトといった感じ
Rust by example だとそもそも bound の説明はジェネリクスの章の中にある
(14. Generics > 14.4. Bounds という構成。ちなみに trait object は 16. Traits の中)
Boundはどちらかというとジェネリクスの型を制限する用途の方を指すと思う
267デフォルトの名無しさん
2025/04/04(金) 00:20:38.53ID:OoQgsVdq 昔は実行時に検査していたことをコンパイル時に検査できるという見方はものすごく理解を助ける
だから検査や制約を強調していい
もしバランスを崩したくないと思ってるなら、単一の言語にこだわること自体がバランス悪いから
Pythonでも使ってみればいい
だから検査や制約を強調していい
もしバランスを崩したくないと思ってるなら、単一の言語にこだわること自体がバランス悪いから
Pythonでも使ってみればいい
268デフォルトの名無しさん
2025/04/04(金) 00:25:07.15ID:OzC2/LQ/ rubyの方が型無いよ
269デフォルトの名無しさん
2025/04/04(金) 00:40:23.72ID:E6ySPclo >>266
一応それもBoundの範疇みたいだけどね
https://doc.rust-lang.org/reference/types/trait-object.html
まあどっちにしろどちらの視点で見るかの話はジェネリクスとなんら変わりない
Boundの公式定義にある通り
一応それもBoundの範疇みたいだけどね
https://doc.rust-lang.org/reference/types/trait-object.html
まあどっちにしろどちらの視点で見るかの話はジェネリクスとなんら変わりない
Boundの公式定義にある通り
270デフォルトの名無しさん
2025/04/04(金) 00:44:33.84ID:E6ySPclo いやジェネリクスのように好き勝手に追加していけないという制約があるから
トレイトオブジェクトのほうが「機能を列挙していく」という視点にはより無理があるかもな
トレイトオブジェクトのほうが「機能を列挙していく」という視点にはより無理があるかもな
271デフォルトの名無しさん
2025/04/04(金) 00:45:23.73ID:uFTmKMED そういえば最近use boundとか来てたんだっけ
272デフォルトの名無しさん
2025/04/04(金) 00:54:43.92ID:r+OUZNte >>266
そこに明記されてるね
Trait objects are written as the keyword dyn followed by a set of trait bounds,
トレイトオブジェクトはキーワードdynに続くトレイト境界のセットとして記述される
but with the following restrictions on the trait bounds.
ただしトレイト境界に以下の制限がある
(以下略)
そこに明記されてるね
Trait objects are written as the keyword dyn followed by a set of trait bounds,
トレイトオブジェクトはキーワードdynに続くトレイト境界のセットとして記述される
but with the following restrictions on the trait bounds.
ただしトレイト境界に以下の制限がある
(以下略)
273デフォルトの名無しさん
2025/04/04(金) 10:34:51.57ID:8rdTlYhI こんな分かりきったことで議論する意味は何なのか
制約ではまるっきり意味が違う
制約ではまるっきり意味が違う
274デフォルトの名無しさん
2025/04/04(金) 11:01:51.62ID:OoQgsVdq トレイト制約(バウンズ)の集合の制限
これ、「ポインタのポインタのポインタ」をいちいちtypedefするやつと同じパターンだな
だから単語の重複が許せないんだな
これ、「ポインタのポインタのポインタ」をいちいちtypedefするやつと同じパターンだな
だから単語の重複が許せないんだな
275デフォルトの名無しさん
2025/04/04(金) 11:17:35.72ID:22bgX6/4 AsRefやAsMutはtraitになってるのに
sliceのAsPtrやAsMutPtrがtraitになっていないのはなぜ?
sliceのAsPtrやAsMutPtrがtraitになっていないのはなぜ?
276デフォルトの名無しさん
2025/04/04(金) 11:54:32.49ID:Gh2v3Rhy アホなこと言っていないで、とっととRust Book最新版の翻訳を作って統一しとけ。
最新版で「トレイト制約」にすりゃいいだろ。
最新版で「トレイト制約」にすりゃいいだろ。
277デフォルトの名無しさん
2025/04/04(金) 12:57:24.90ID:XamlPiqQ278デフォルトの名無しさん
2025/04/04(金) 14:23:46.45ID:8rdTlYhI279デフォルトの名無しさん
2025/04/04(金) 14:43:55.26ID:eR4DolQd >>277
これブックマークしとけばええんかの
これブックマークしとけばええんかの
280デフォルトの名無しさん
2025/04/04(金) 15:06:26.98ID:8rdTlYhI RustやるにもC++から始めたほうが良いんじゃないかな
なぜそうなってるのか理解が進むと思う
なぜそうなってるのか理解が進むと思う
281デフォルトの名無しさん
2025/04/04(金) 15:10:43.72ID:eR4DolQd CやらないとC++分からないからCからオススメ
282デフォルトの名無しさん
2025/04/04(金) 16:14:54.75ID:yJNeJM2G >>277
“Bounds are constraints on a type or trait.”のbe動詞も、
「AはBである」と訳すものではなく、
「AはBになる(Bの特性を持つ)」で、どっちかといえばhasに近い意味合いになるんだよなぁって思ってる。
“Bounds are constraints on a type or trait.”のbe動詞も、
「AはBである」と訳すものではなく、
「AはBになる(Bの特性を持つ)」で、どっちかといえばhasに近い意味合いになるんだよなぁって思ってる。
283デフォルトの名無しさん
2025/04/04(金) 19:30:24.62ID:SRZxkDOr まだトイレ制限やってんのか
284デフォルトの名無しさん
2025/04/04(金) 22:39:40.99ID:optItjd0 >>270
トレイトオブジェクトで自動トレイト以外のトレイト境界を複数用いる場合は合成になるね
いわゆるメソッド無し「{}」宣言
// トレイト境界の合成
trait TraitAB: TraitA + TraitB {}
// 合成トレイト境界の実装 (使う型の分)
impl TraitAB for T1 {}
impl TraitAB for T2 {}
// あとは同じ
let x: &dyn TraitAB = &t1;
// または
let y: Box<dyn TraitAB> = Box::new(t2);
トレイトオブジェクトで自動トレイト以外のトレイト境界を複数用いる場合は合成になるね
いわゆるメソッド無し「{}」宣言
// トレイト境界の合成
trait TraitAB: TraitA + TraitB {}
// 合成トレイト境界の実装 (使う型の分)
impl TraitAB for T1 {}
impl TraitAB for T2 {}
// あとは同じ
let x: &dyn TraitAB = &t1;
// または
let y: Box<dyn TraitAB> = Box::new(t2);
285デフォルトの名無しさん
2025/04/04(金) 22:42:52.75ID:mQ0/kONA トイレット境界は難しいよ。いつもスリッパ履き替えるの忘れる
286デフォルトの名無しさん
2025/04/04(金) 22:52:47.44ID:saOSS87s 複オジの苦し紛れのクソみたいな言い訳自演も秒で否決されてて草
さすがにみんな複オジ耐性を身につけたか
さすがにみんな複オジ耐性を身につけたか
287デフォルトの名無しさん
2025/04/04(金) 23:41:57.03ID:XamlPiqQ >>284
トレイト境界は制約ではなく使う機能の列挙という理解でいいんだよな
トレイト境界は制約ではなく使う機能の列挙という理解でいいんだよな
288デフォルトの名無しさん
2025/04/04(金) 23:56:38.69ID:Y4yVUbBr289デフォルトの名無しさん
2025/04/05(土) 00:41:02.94ID:fzOXtcwa 子供扱いさせてから、大人も子供もどっちもどっちだと洗脳するんだよ
そうやって、自分は大人と同じだと思ってる子供を量産する
そうやって、自分は大人と同じだと思ってる子供を量産する
290デフォルトの名無しさん
2025/04/05(土) 01:02:47.81ID:VKg4cIYU291デフォルトの名無しさん
2025/04/05(土) 01:15:11.42ID:a8YBrxtn >>282
そんなバカげた見方をしなくても英語でも日本語でも同じで修飾語がある時にそれ省けば同等を意味しない
例えば
「彼はわたしにとって味方である」
「彼はあなたにとって敵である」
これは両立しえて対象を抜きに彼自体は味方でも敵でもない
「boundsは型に対する制約である」
これもbounds自体は制約でも何でもない
あくまでも型に対しては制約となるだけだ
それを理解できない人がbounds自体を制約と訳してしまうと、
他の至る所で日本語訳が破綻してしまう例が既にいくつも挙げられている通りだ
そんなバカげた見方をしなくても英語でも日本語でも同じで修飾語がある時にそれ省けば同等を意味しない
例えば
「彼はわたしにとって味方である」
「彼はあなたにとって敵である」
これは両立しえて対象を抜きに彼自体は味方でも敵でもない
「boundsは型に対する制約である」
これもbounds自体は制約でも何でもない
あくまでも型に対しては制約となるだけだ
それを理解できない人がbounds自体を制約と訳してしまうと、
他の至る所で日本語訳が破綻してしまう例が既にいくつも挙げられている通りだ
292デフォルトの名無しさん
2025/04/05(土) 02:11:02.04ID:sg9Ur0Fb293デフォルトの名無しさん
2025/04/05(土) 04:31:02.03ID:UUup59E1 >>292
トレイト境界は必要となる機能を足していくイメージで使うから+がしっくり来るよ
トレイト境界は必要となる機能を足していくイメージで使うから+がしっくり来るよ
294デフォルトの名無しさん
2025/04/05(土) 09:21:38.69ID:7yyM+PYz +はor
*はand
これが基本
traitA * traitB は traitAが実装されている=1 traitBが実装されている=1 と言う時だけ 1(true)
だからこれが正しい
トレイト境界だと表現が矛盾している
+だと traitAもしくはtraitBでtrueなのでやはりベン図的な境界ではありえない
*はand
これが基本
traitA * traitB は traitAが実装されている=1 traitBが実装されている=1 と言う時だけ 1(true)
だからこれが正しい
トレイト境界だと表現が矛盾している
+だと traitAもしくはtraitBでtrueなのでやはりベン図的な境界ではありえない
295デフォルトの名無しさん
2025/04/05(土) 09:25:04.62ID:7yyM+PYz トレイト制約なら+がしっくりくる
条件がtraitAに加えてtraitBとなるので常識的だと思う
条件がtraitAに加えてtraitBとなるので常識的だと思う
296デフォルトの名無しさん
2025/04/05(土) 09:31:25.64ID:UUup59E1297デフォルトの名無しさん
2025/04/05(土) 09:33:43.02ID:7yyM+PYz トレイト境界なんて変な言葉使ってるけど実際は集合論的な境界とはかけ離れている
298デフォルトの名無しさん
2025/04/05(土) 09:37:39.22ID:UUup59E1 型パラメータTを使う場合でも同じ
例えば型Tをデバッグ表示したくなったら
T: Trait1+ Trait2 既存のここへ
デバッグ機能も使えるように足す
T: Trait1+ Trait2 + Debug
制約なんて発想はどこにもないよ
例えば型Tをデバッグ表示したくなったら
T: Trait1+ Trait2 既存のここへ
デバッグ機能も使えるように足す
T: Trait1+ Trait2 + Debug
制約なんて発想はどこにもないよ
299デフォルトの名無しさん
2025/04/05(土) 09:59:12.29ID:7yyM+PYz trait境界がベン図的であると言うのはただの勘違いである
300デフォルトの名無しさん
2025/04/05(土) 10:05:02.72ID:7yyM+PYz A or Bはtypsscriptのユニオン型でそっちは |でつなげている
301デフォルトの名無しさん
2025/04/05(土) 11:05:30.39ID:FmPOHx1d 「境界」と書かれてる本は読むに値しない
という事だけはよくわかった
という事だけはよくわかった
302デフォルトの名無しさん
2025/04/05(土) 11:17:04.10ID:in25MGhG 可能なら英語の原文を読む方がいいのは間違いない
bound⇔制約みたいな謎対訳を意識しなくて済む
洋書は高いけどね
bound⇔制約みたいな謎対訳を意識しなくて済む
洋書は高いけどね
303デフォルトの名無しさん
2025/04/05(土) 11:17:57.15ID:r2N1m9n9 >>301
わかりやすいリトマス試験紙だよね
わかりやすいリトマス試験紙だよね
304デフォルトの名無しさん
2025/04/05(土) 11:19:18.81ID:/EY1L6NJ >>301
境界はどうでもいいが
trait boundsの日本語訳をトレイト制約としてしまうとRust公式リファレンスのあちこちで困ったことになることが今回のこのスレでの調査で判明した
少なくともトレイト制約と訳してはいけないことが明白になった
境界はどうでもいいが
trait boundsの日本語訳をトレイト制約としてしまうとRust公式リファレンスのあちこちで困ったことになることが今回のこのスレでの調査で判明した
少なくともトレイト制約と訳してはいけないことが明白になった
305デフォルトの名無しさん
2025/04/05(土) 11:58:20.02ID:fzOXtcwa たとえばcobolをjavaに直訳できない問題って
新しい要素を追加した方に原因があるのか?
新しい要素を追加した方に原因があるのか?
306デフォルトの名無しさん
2025/04/05(土) 13:46:49.67ID:Ur9Vw4Z1307デフォルトの名無しさん
2025/04/05(土) 13:48:18.46ID:Ur9Vw4Z1308デフォルトの名無しさん
2025/04/05(土) 14:22:39.14ID:fzOXtcwa309デフォルトの名無しさん
2025/04/05(土) 14:29:32.69ID:7yyM+PYz >>307
日付変わったらid変わるんだよ…馬鹿なのかなあ?
日付変わったらid変わるんだよ…馬鹿なのかなあ?
310デフォルトの名無しさん
2025/04/05(土) 14:30:52.53ID:7yyM+PYz と思ったけど同じ日だな
5chがおかしいんだろ
5chがおかしいんだろ
311デフォルトの名無しさん
2025/04/05(土) 21:54:28.18ID:kbjS/M49 >>302
洋書のほうが断然安いだろ
洋書のほうが断然安いだろ
312デフォルトの名無しさん
2025/04/05(土) 22:12:55.39ID:+mdv7JT9 ものによるよ
具体的に比較せねば
具体的に比較せねば
313デフォルトの名無しさん
2025/04/05(土) 22:23:17.94ID:JwBnCnrW 日本で洋書を買うなら輸入品だもの。
円安の情勢で高くなるのは仕方ないよ。
円安の情勢で高くなるのは仕方ないよ。
314デフォルトの名無しさん
2025/04/05(土) 22:38:25.51ID:gU7LWJwv TraitやTrait boundsが制約だと思ったんだろな
特性や特性の範囲を示しているだけで
必ずしも制限に使われると限らないのだが
特性や特性の範囲を示しているだけで
必ずしも制限に使われると限らないのだが
315デフォルトの名無しさん
2025/04/05(土) 22:41:49.78ID:+mdv7JT9 オライリーならサブスクで洋書PDF読み放題があったような
316デフォルトの名無しさん
2025/04/05(土) 22:54:56.00ID:UT8OnkGd Lifetime boundは?
317デフォルトの名無しさん
2025/04/05(土) 23:36:18.07ID:yh9xzdzz >>284
>>let x: &dyn TraitAB = &t1;
その合成したトレイト境界によるトレイトオブジェクトを、
一昨日リリースのRust 1.86からこのようにスーパートレイトへアップキャストできるようになったという理解でいいんだよな。
let xa: &dyn TraitA = x;
let xb: &dyn TraitB = x;
結局この+によるトレイト境界の合成も、制約したと考えるより、両方の特性(機能)を持たせたと考える方が理に適ってるよな
>>// トレイト境界の合成
>>trait TraitAB: TraitA + TraitB {}
>>let x: &dyn TraitAB = &t1;
その合成したトレイト境界によるトレイトオブジェクトを、
一昨日リリースのRust 1.86からこのようにスーパートレイトへアップキャストできるようになったという理解でいいんだよな。
let xa: &dyn TraitA = x;
let xb: &dyn TraitB = x;
結局この+によるトレイト境界の合成も、制約したと考えるより、両方の特性(機能)を持たせたと考える方が理に適ってるよな
>>// トレイト境界の合成
>>trait TraitAB: TraitA + TraitB {}
318デフォルトの名無しさん
2025/04/06(日) 01:02:23.74ID:upKL4j/Q 境界の合成ならorでしょう?なんでandになるんだよ
319デフォルトの名無しさん
2025/04/06(日) 01:05:52.29ID:1+4HzuoN その特性を持つか持たないか
両方の特性を持つようになるから'+'がふさわしい
両方の特性を持つようになるから'+'がふさわしい
320デフォルトの名無しさん
2025/04/06(日) 01:12:53.80ID:upKL4j/Q 質問
トレイト境界と言う言葉があまりしっくりきません
chapGPTの答え
「トレイト境界(trait bound)」っていう言葉、ちょっとピンとこないというのは自然な感覚です。
むしろ「型に課す条件」とか「型パラメータの制約」というようなイメージの方が、Rustの使い方としてもしっくりくるかもしれませんね。
「trait bound」という言葉は英語の「bound(拘束、制約、限界)」の訳で、おそらく「型に制約を課す」という意味から来ています。
ただ、日本語で「境界」というと、物理的な境目やある範囲をイメージしやすく、それが逆にわかりづらくしているかもしれません。
しっくりくる言い換え候補いくつか
表現 ニュアンス
トレイト条件 Tに必要な条件、論理的に「T ∈ Debugを満たす型の集合」
トレイト制約 Tにかかる制限。構文的にも意味的にも合ってる
トレイト必須要件 必須で満たさなければならない要件
実装条件 implが意味する「Tは〜を実装していないといけない」
実装制限 実装可能な範囲を制限する
トレイト境界と言う言葉があまりしっくりきません
chapGPTの答え
「トレイト境界(trait bound)」っていう言葉、ちょっとピンとこないというのは自然な感覚です。
むしろ「型に課す条件」とか「型パラメータの制約」というようなイメージの方が、Rustの使い方としてもしっくりくるかもしれませんね。
「trait bound」という言葉は英語の「bound(拘束、制約、限界)」の訳で、おそらく「型に制約を課す」という意味から来ています。
ただ、日本語で「境界」というと、物理的な境目やある範囲をイメージしやすく、それが逆にわかりづらくしているかもしれません。
しっくりくる言い換え候補いくつか
表現 ニュアンス
トレイト条件 Tに必要な条件、論理的に「T ∈ Debugを満たす型の集合」
トレイト制約 Tにかかる制限。構文的にも意味的にも合ってる
トレイト必須要件 必須で満たさなければならない要件
実装条件 implが意味する「Tは〜を実装していないといけない」
実装制限 実装可能な範囲を制限する
321デフォルトの名無しさん
2025/04/06(日) 01:15:32.61ID:upKL4j/Q トレイト境界は誤訳で言いたいならトレイトバウンドでいい
これがFA
これがFA
322デフォルトの名無しさん
2025/04/06(日) 01:23:12.69ID:upKL4j/Q 欧米でのboundと日本の境界は必ずしも同じ意味ではない
そもそもの単語の概念が違う
boundの制約部分の意味合いを翻訳者が取れずにboundの一番目に来る訳語の境界を当ててしまった
これが結論
そもそもの単語の概念が違う
boundの制約部分の意味合いを翻訳者が取れずにboundの一番目に来る訳語の境界を当ててしまった
これが結論
323デフォルトの名無しさん
2025/04/06(日) 02:18:12.24ID:n88cNHgB うっかりミスをしただけなら喧嘩にはならんがな
原作を改変することは許されない的なルールを守る意志があるだろ
原作を改変することは許されない的なルールを守る意志があるだろ
324デフォルトの名無しさん
2025/04/06(日) 03:03:56.95ID:6x/xr+p4 安いな
https://www.rustinaction.com
https://www.manning.com/books/rust-in-action
高いな
https://www.ama損.co.jp/dp/1617294551
輸入だとしてもなんでこんな値段になるんだ
https://www.rustinaction.com
https://www.manning.com/books/rust-in-action
高いな
https://www.ama損.co.jp/dp/1617294551
輸入だとしてもなんでこんな値段になるんだ
325デフォルトの名無しさん
2025/04/06(日) 08:58:25.67ID:2WEREMbe つまらん言い争いする前にとっとと Rust Book最新版翻訳して、好きな方の用語に統一しとけ。
最新版の翻訳も無いのに日本語和訳とかゴミみたいな話しても無駄だろ。
最新版の翻訳も無いのに日本語和訳とかゴミみたいな話しても無駄だろ。
326デフォルトの名無しさん
2025/04/06(日) 14:12:55.00ID:n88cNHgB 無駄は利益でも損失でもない
つまり有益でも有害でもない
つまり有益でも有害でもない
327デフォルトの名無しさん
2025/04/06(日) 14:48:28.98ID:MSyTNjpB ゴミ翻訳が何万人ものユーザーに悪影響を与えてるんだから単なる無駄どころかガチ害悪
328デフォルトの名無しさん
2025/04/06(日) 18:52:05.55ID:n88cNHgB でも、あなたの影響は0だった
329デフォルトの名無しさん
2025/04/06(日) 21:35:24.97ID:POwi82Q3 >>320
すげーまともだな
すげーまともだな
330デフォルトの名無しさん
2025/04/07(月) 17:37:54.88ID:Hr3jPqkP Trait制約では意味が全く違う
331デフォルトの名無しさん
2025/04/07(月) 17:41:13.06ID:Ww5VQZEx Javaのインターフェイス程度の代物にそんあ小難しい概念いらんけどな
332デフォルトの名無しさん
2025/04/07(月) 17:42:09.21ID:SejWwHdL 「トレイト制約」が正しい!
333デフォルトの名無しさん
2025/04/07(月) 18:06:19.68ID:tzb+Pi1x Trait boundsが正解
無理に日本語にすんな
無理に日本語にすんな
334デフォルトの名無しさん
2025/04/07(月) 18:31:33.33ID:H5zq3RB8 >>330
どう意味が違うの?
どう意味が違うの?
335デフォルトの名無しさん
2025/04/07(月) 22:20:40.10ID:dUVt/NLM ジェネリクスは小難しいから普及が遅かった
Javaのインターフェースはそれ自体はジェネリクス普及前からあった
Javaのインターフェースはそれ自体はジェネリクス引数の制約ではない
ここで重要なのは、主語を変えても同じことが言えるなどといった保証はないってことだ
Javaのインターフェースはそれ自体はジェネリクス普及前からあった
Javaのインターフェースはそれ自体はジェネリクス引数の制約ではない
ここで重要なのは、主語を変えても同じことが言えるなどといった保証はないってことだ
336デフォルトの名無しさん
2025/04/07(月) 23:52:56.67ID:RGwsG0mw ジェネリクスはAda発祥やで
337デフォルトの名無しさん
2025/04/08(火) 00:14:35.10ID:2Ld3Figm CLUやろ
338デフォルトの名無しさん
2025/04/08(火) 10:44:56.88ID:fi2+odQD Java界隈も「境界」という訳の異常性に気付いて徐々に避けるようになってる
339デフォルトの名無しさん
2025/04/08(火) 14:07:35.74ID:hfo/+BmV 制約とか言ってる低能
340デフォルトの名無しさん
2025/04/08(火) 14:17:58.70ID:TmSh0jTk traitも日本語訳すべきだろ
大陸中国語では「特質」と訳してるらしい
ただし漢字は簡体字で
大陸中国語では「特質」と訳してるらしい
ただし漢字は簡体字で
341デフォルトの名無しさん
2025/04/08(火) 14:31:57.06ID:dbg0dckm 特質系とか漫画の読みすぎかよ
漫画の語彙を訳に使うのあるかもしれん
無量空所
漫画の語彙を訳に使うのあるかもしれん
無量空所
342デフォルトの名無しさん
2025/04/08(火) 15:12:55.89ID:shzc/EQE boundが”trait bounds”のような名詞のでしか出てこないのであれば”トレイトバウンド”で十分なんだが動詞としてもその過去分詞が形容詞としても使われるから意味の通じる日本語にする必要はあるだろうな
343デフォルトの名無しさん
2025/04/08(火) 15:13:35.03ID:BOqdaM8X 君らの議論見てると日本語と英語の意味が完全には一致してないからもめてるんだろ
適切な言葉が日本語にないのなら原語そのまま使えよ
どうしても日本語にしたけりゃ新語つくっちゃえよ、トレイト制界とかトレイト境約とか
適切な言葉が日本語にないのなら原語そのまま使えよ
どうしても日本語にしたけりゃ新語つくっちゃえよ、トレイト制界とかトレイト境約とか
344デフォルトの名無しさん
2025/04/08(火) 15:25:59.18ID:bT7tyFQB 完全には一致してないではなくて
境界は完全に間違ってるからな
境界は完全に間違ってるからな
345デフォルトの名無しさん
2025/04/08(火) 15:32:05.13ID:dbg0dckm ワッチョイつけようぜ
346デフォルトの名無しさん
2025/04/08(火) 15:32:48.21ID:y+3ouVjs 10人中8〜9人がおおよその意味を想像できるような新語ならともかく想像できないような新語なら訳さないほうがよっぽどマシ
347デフォルトの名無しさん
2025/04/08(火) 15:37:41.98ID:0DGOjuLN トレイト境界(trait bounds)のboundsは境界・領域・範囲などどれでもいいんだけど、
境界はもちろん二次的な意味の二者間の意味ではなく単独の意味の方で、
どうしても二者間に固執したい人なら内と外の二者間の境界と考えて。
境界はもちろん二次的な意味の二者間の意味ではなく単独の意味の方で、
どうしても二者間に固執したい人なら内と外の二者間の境界と考えて。
348デフォルトの名無しさん
2025/04/08(火) 15:47:16.64ID:Spaoq+uw なんでもいいというのが一番困る、という寓話があるが、その寓話には名前がない
349デフォルトの名無しさん
2025/04/08(火) 15:59:24.30ID:v0gybFAh 題名も何でもいいからか
350デフォルトの名無しさん
2025/04/08(火) 16:48:31.19ID:zjl9w56y 道?
351デフォルトの名無しさん
2025/04/08(火) 17:08:27.56ID:lq55yQzg トレイト執着
352デフォルトの名無しさん
2025/04/08(火) 17:19:56.75ID:dbg0dckm 粘着やな
353デフォルトの名無しさん
2025/04/08(火) 17:56:08.61ID:2okZDSQp354デフォルトの名無しさん
2025/04/08(火) 20:49:57.66ID:0DGOjuLN >>353
Drop::drop()が呼ばれるのは親が先で子が後になるけど、
実際のptr::drop_in_place()が自動で呼ばれるのはもちろん子の処理を終えた後に親が後になる。
そのため安全に全自動で任せつつ、子の処理の前に親がやっておきたいdrop以外の前処理だけを親のDrop::drop()に書くことができる。
複数の子どもの処理の順序や自動の有無も含めて制御したい時はManuallyDropをつかう。
Drop::drop()が呼ばれるのは親が先で子が後になるけど、
実際のptr::drop_in_place()が自動で呼ばれるのはもちろん子の処理を終えた後に親が後になる。
そのため安全に全自動で任せつつ、子の処理の前に親がやっておきたいdrop以外の前処理だけを親のDrop::drop()に書くことができる。
複数の子どもの処理の順序や自動の有無も含めて制御したい時はManuallyDropをつかう。
355デフォルトの名無しさん
2025/04/08(火) 21:53:23.33ID:Spaoq+uw The impl Trait syntax ... is actually syntax sugar for a longer form known as a trait bound
構文糖じゃない方のトレイト
実際のトレイト
構文糖じゃない方のトレイト
実際のトレイト
356デフォルトの名無しさん
2025/04/09(水) 12:19:06.96ID:KZk4pTLo トレイト制約などといってる輩は全く理解できていないと自白してるようなもの
357デフォルトの名無しさん
2025/04/09(水) 15:01:13.51ID:SwtFlD5e 糖質境界
358デフォルトの名無しさん
2025/04/09(水) 18:04:17.50ID:3/XtwXUj もうちょっと正義感が強かったら
べつにカジノ経営者が自白しなくても、カジノは特殊詐欺とほぼ同じというのは確定事項として扱えるようになる
べつにカジノ経営者が自白しなくても、カジノは特殊詐欺とほぼ同じというのは確定事項として扱えるようになる
359デフォルトの名無しさん
2025/04/09(水) 18:54:36.47ID:NcLuCgfe 三店制約
360デフォルトの名無しさん
2025/04/09(水) 18:55:51.86ID:PAP9iIr7 パチ屋
361デフォルトの名無しさん
2025/04/09(水) 19:16:50.12ID:8s5+aT/q インターフェース統一協会
362デフォルトの名無しさん
2025/04/09(水) 19:33:46.61ID:a0uoZNgJ 言語仕様らしきものに忠誠心を示すのはわかるけど
誤訳された用語にすら全面的に支持して従うってどういうことなの?
誤訳された用語にすら全面的に支持して従うってどういうことなの?
363デフォルトの名無しさん
2025/04/09(水) 19:34:49.38ID:PAP9iIr7 開発してない人なんでしょう
評論家
評論家
364デフォルトの名無しさん
2025/04/09(水) 19:44:27.38ID:eKbqXV9X 仮に誤訳だとしても理解を妨げるほど害悪あるほどじゃない
通じれば用は足りてる
他分野でもそんなのはいくらでもある
ひっくり返さないと気がすまないのは幼稚なだけ
通じれば用は足りてる
他分野でもそんなのはいくらでもある
ひっくり返さないと気がすまないのは幼稚なだけ
365デフォルトの名無しさん
2025/04/09(水) 19:59:28.62ID:a0uoZNgJ 拘るほうが幼稚
普及を目指すなら誰にでも理解しやすい用語を選ぶのが唯一の正義
普及を目指すなら誰にでも理解しやすい用語を選ぶのが唯一の正義
366デフォルトの名無しさん
2025/04/09(水) 20:09:07.64ID:PAP9iIr7 普及目指してないよ
分かるやつだけ使え
一般人はPHPでも使っとき
分かるやつだけ使え
一般人はPHPでも使っとき
367デフォルトの名無しさん
2025/04/09(水) 20:15:02.42ID:a0uoZNgJ 前はトレイト境界やライフタイム境界でググったらもしかしてトレイト協会とかもしかしてライフタイム協会って出てた
368デフォルトの名無しさん
2025/04/09(水) 20:29:27.44ID:KZk4pTLo >>364
Trait境界は正確な訳と言って良いと思います
Trait境界は正確な訳と言って良いと思います
369デフォルトの名無しさん
2025/04/09(水) 20:33:30.34ID:KZk4pTLo Trait制約は、引数を関数というような感じですね
全く意味が違います
全く意味が違います
370デフォルトの名無しさん
2025/04/09(水) 20:35:28.68ID:PAP9iIr7 どうでもいいーー
371デフォルトの名無しさん
2025/04/09(水) 20:41:17.16ID:KXz/CDBQ Rustが嫌いだってblogがバズってるらしい
たぶん訳語がおかしいせいだろうな
しらんけど
たぶん訳語がおかしいせいだろうな
しらんけど
372デフォルトの名無しさん
2025/04/09(水) 20:43:27.68ID:PAP9iIr7 あれはCやったことないからRustの恩恵がわからないちゃんだろ
GC言語だけ使っておけ案件
GC言語だけ使っておけ案件
373デフォルトの名無しさん
2025/04/09(水) 21:32:51.79ID:a0uoZNgJ GC言語でいい人はRust使うメリットはないからな
374デフォルトの名無しさん
2025/04/09(水) 21:42:42.42ID:OL648qCg >>371
見たけどあまりに初心者で慣れてなくて知らなかった話が話が大半だった
結局どの言語でも同じで慣れたら何ら問題ない話ばかりだった
コンパイルが多少遅いのは仕方ないが
初心者コピペで以下の状況だったのが笑えた
>>[profile.release]
>>lto = true
>>codegen-units = 1
>>opt-level = 3
>>panic = "abort"
>>strip = true
>
>この設定ですが意味を理解して書かれてます?
>LTOはリンク時最適化なので有効にすればビルドは遅くなります。
>codegen-units は最大何並列でコード生成するかなので1にすれば当然ビルドは遅くなります。
見たけどあまりに初心者で慣れてなくて知らなかった話が話が大半だった
結局どの言語でも同じで慣れたら何ら問題ない話ばかりだった
コンパイルが多少遅いのは仕方ないが
初心者コピペで以下の状況だったのが笑えた
>>[profile.release]
>>lto = true
>>codegen-units = 1
>>opt-level = 3
>>panic = "abort"
>>strip = true
>
>この設定ですが意味を理解して書かれてます?
>LTOはリンク時最適化なので有効にすればビルドは遅くなります。
>codegen-units は最大何並列でコード生成するかなので1にすれば当然ビルドは遅くなります。
375デフォルトの名無しさん
2025/04/09(水) 21:45:24.08ID:a0uoZNgJ 初心者相手に俺つえーしてる時点でカッコ悪いとしか…
みじめなのはどっちなんだろう
みじめなのはどっちなんだろう
376デフォルトの名無しさん
2025/04/09(水) 21:49:28.76ID:OL648qCg377デフォルトの名無しさん
2025/04/09(水) 21:54:31.24ID:EdteNgmQ 人によるから分からんぞ。PHPのスレ行って聞いてきな
378デフォルトの名無しさん
2025/04/09(水) 21:57:14.91ID:KXz/CDBQ PHPerはあまりにユーザー層が違うので、同じ言葉で語り合うことはできない
379デフォルトの名無しさん
2025/04/09(水) 22:02:44.82ID:a0uoZNgJ 大多数のGCあり言語だとほぼ意識しなくていいノイズみたいなところをC,C++やRustは意識しないといけない
380デフォルトの名無しさん
2025/04/09(水) 22:03:09.70ID:ad8YJVBj だろ。Rustに慣れる前に使い出せない人種が沢山いるということさ
普及は諦めよう
普及は諦めよう
381デフォルトの名無しさん
2025/04/09(水) 22:05:24.58ID:a0uoZNgJ ちゃんとメリットをしめして脱落者を出さなければプログラマの一般教養的なところまで
押し上げることは出来ると思うけどねえ
今は動機付けが薄い
学習のハードルが高い
押し上げることは出来ると思うけどねえ
今は動機付けが薄い
学習のハードルが高い
382デフォルトの名無しさん
2025/04/09(水) 22:08:21.15ID:3/XtwXUj 自動車の作り方も普及させる気ないじゃん
現に、自力で自動車作れなくなった人達が反乱を起こしている
現に、自力で自動車作れなくなった人達が反乱を起こしている
383デフォルトの名無しさん
2025/04/09(水) 22:10:28.34ID:a0uoZNgJ 自分は最初伝統的なenumの比較すらできなくて困った覚えがある
わかればわかったになるけど他の人がすんなりとそのことについて知識を得て使えるのかどうかと言えば
使えないで脱落するんだろうなと
わかればわかったになるけど他の人がすんなりとそのことについて知識を得て使えるのかどうかと言えば
使えないで脱落するんだろうなと
384デフォルトの名無しさん
2025/04/09(水) 22:10:51.20ID:ad8YJVBj 作り方は分かるけど給料が高いから作っても売れないという問題だったような
385デフォルトの名無しさん
2025/04/09(水) 22:12:01.49ID:ZMWXeYiA >>379
その違いは慣れてしまえば大した問題ではない
慣れて対応できるようになるだけでGC言語のデメリットから解放される
特にRustなら扱いを間違えていればコンパイラが指摘してくれるので困ることもない
その違いは慣れてしまえば大した問題ではない
慣れて対応できるようになるだけでGC言語のデメリットから解放される
特にRustなら扱いを間違えていればコンパイラが指摘してくれるので困ることもない
386デフォルトの名無しさん
2025/04/09(水) 22:14:58.46ID:a0uoZNgJ 扉が開かない限り入ってこないで回れ右して帰っていくよ
そういう人が悪いのではない
違うなら違うと言う説明を気づかせないとダメかな
知ってる人は知ってるだけなのでそれが偉いと言う話ではない
そういう人が悪いのではない
違うなら違うと言う説明を気づかせないとダメかな
知ってる人は知ってるだけなのでそれが偉いと言う話ではない
387デフォルトの名無しさん
2025/04/09(水) 22:15:05.70ID:ZMWXeYiA >>380
Rustごときを使えないようならプログラマとしてはかなり能力が低い人か頭が硬くなってしまった人のどちらか
Rustごときを使えないようならプログラマとしてはかなり能力が低い人か頭が硬くなってしまった人のどちらか
388デフォルトの名無しさん
2025/04/09(水) 22:16:00.82ID:13Xj1tSa 名前忘れたけど、構文がRustでGC付きの言語が発表されてたよね
389デフォルトの名無しさん
2025/04/09(水) 22:16:14.95ID:a0uoZNgJ もう一度言うけど
知ってる人は知ってるだけなのでそれが偉いと言う話ではない
知ってる人は知ってるだけなのでそれが偉いと言う話ではない
390デフォルトの名無しさん
2025/04/09(水) 22:18:40.23ID:ZMWXeYiA391デフォルトの名無しさん
2025/04/09(水) 22:20:09.93ID:a0uoZNgJ その硬くなっていない頭でtsもjsもpythonも日常的に使えているのかなあ???
392デフォルトの名無しさん
2025/04/09(水) 22:25:09.60ID:ad8YJVBj393デフォルトの名無しさん
2025/04/09(水) 22:27:48.21ID:czqUXFNF GCって多少のパフォーマンスと引き換えにC/C++の面倒を大きく減らすものだからな
Javaが流行った理由もそれだし
Rustなら借用チェッカが安全性の問題をうまく解決するといっても、GCに慣れてる人からすれば、他の言語ではそもそも問題にならないようなものを課題として取り上げて解いてるだけに思えるかもしれない
C/C++の速度が必要な分野ならRustは強力だけど、それ以外の分野だと学習コストや面倒くささが上回ると思うのもまあわかる
Javaが流行った理由もそれだし
Rustなら借用チェッカが安全性の問題をうまく解決するといっても、GCに慣れてる人からすれば、他の言語ではそもそも問題にならないようなものを課題として取り上げて解いてるだけに思えるかもしれない
C/C++の速度が必要な分野ならRustは強力だけど、それ以外の分野だと学習コストや面倒くささが上回ると思うのもまあわかる
394デフォルトの名無しさん
2025/04/09(水) 22:31:27.91ID:ad8YJVBj ワイの周りにもRustは勧められないんよな。趣味でやるベエ
395デフォルトの名無しさん
2025/04/09(水) 22:33:41.47ID:czqUXFNF396デフォルトの名無しさん
2025/04/09(水) 22:51:34.96ID:ad8YJVBj Beam VM上のか
397デフォルトの名無しさん
2025/04/09(水) 22:57:26.37ID:vrO9vcWo398デフォルトの名無しさん
2025/04/09(水) 23:23:57.52ID:huhl+UxL >>397
「境界」は辞書を引くとわかるけど
「何かと何かの境界」という二者間の意味二次的であって
「対象となる範囲の境界」が原義なんだよ
これは古語辞典だとよりはっきりして
境界は「自分の認識の及ぶ対象・範囲」が原義で
更に「自分の能力の及ぶ範囲」という意味が加わってくる
トレイト境界はもちろん二者間ではなく原義の方
「境界」は辞書を引くとわかるけど
「何かと何かの境界」という二者間の意味二次的であって
「対象となる範囲の境界」が原義なんだよ
これは古語辞典だとよりはっきりして
境界は「自分の認識の及ぶ対象・範囲」が原義で
更に「自分の能力の及ぶ範囲」という意味が加わってくる
トレイト境界はもちろん二者間ではなく原義の方
399デフォルトの名無しさん
2025/04/09(水) 23:26:38.18ID:p9TCxcQX 古語辞典?w
400デフォルトの名無しさん
2025/04/09(水) 23:32:36.15ID:3/XtwXUj 意味が全然分からないレベルになるともう実質的に名前がないのと同じ
名前がないものは世の中にいくらでもある
名前がないものは世の中にいくらでもある
401デフォルトの名無しさん
2025/04/09(水) 23:32:43.95ID:huhl+UxL これは一般生活で使われる境界も同じ例えば「土地の境界」といえば(自分もしくは対象の)土地の境界であり
特定の誰々さんの土地との境界ではない
「市の境界」も同じでその市の範囲を意味していてどこか特定の市町村との境界ではない
トレイト境界も同じでそのトレイトの効力やカバーする範囲や領域
特定の誰々さんの土地との境界ではない
「市の境界」も同じでその市の範囲を意味していてどこか特定の市町村との境界ではない
トレイト境界も同じでそのトレイトの効力やカバーする範囲や領域
402デフォルトの名無しさん
2025/04/09(水) 23:35:09.82ID:p9TCxcQX なんか自他境界なさそう
403デフォルトの名無しさん
2025/04/09(水) 23:36:43.93ID:D9djoT/y 領域展開
404デフォルトの名無しさん
2025/04/10(木) 01:14:23.84ID:BQ7YpPB/ >>398
>境界は「自分の認識の及ぶ対象・範囲」が原義で
>更に「自分の能力の及ぶ範囲」という意味が加わってくる
それは仏教用語でキョウガイと読む
現代日本語の境界(キョウカイ)にはそのような意味はない
境界(キョウカイ)の原義でもなく違う言葉
仏語を当ててトレイトキョウガイと読ませたかったのか?
>境界は「自分の認識の及ぶ対象・範囲」が原義で
>更に「自分の能力の及ぶ範囲」という意味が加わってくる
それは仏教用語でキョウガイと読む
現代日本語の境界(キョウカイ)にはそのような意味はない
境界(キョウカイ)の原義でもなく違う言葉
仏語を当ててトレイトキョウガイと読ませたかったのか?
405デフォルトの名無しさん
2025/04/10(木) 01:18:20.37ID:BQ7YpPB/ boundsも古典英語なら現代日本語の境界(キョウカイ)の意味もあるが
現代英語には境界(キョウカイ)の意味は基本的にはない
日本語の境界はboundary
現代英語でboundsを境界と意訳してもいいのは
out of boundsやwithin boundsなど
前置詞を伴って範囲の内か外だけに焦点があたっている状況のみ
現代英語には境界(キョウカイ)の意味は基本的にはない
日本語の境界はboundary
現代英語でboundsを境界と意訳してもいいのは
out of boundsやwithin boundsなど
前置詞を伴って範囲の内か外だけに焦点があたっている状況のみ
406デフォルトの名無しさん
2025/04/10(木) 01:24:45.88ID:WYZDSkTO 飽きたからXで訳者に凸してきなよ
407デフォルトの名無しさん
2025/04/10(木) 01:29:38.95ID:BQ7YpPB/ >>401
これもなんとも無理やりだなぁ
現代日本語における境界は境・境目・境界線のことで基本的に「線」の概念
境界という線により区切られた結果としてその内側の範囲や領域ができるが
境界という言葉が区切られた結果としてできる内側の範囲や領域を示すわけではない
境界(キョウカイ)という概念は境界を通して接している二つのものがなければ成り立たない
これもなんとも無理やりだなぁ
現代日本語における境界は境・境目・境界線のことで基本的に「線」の概念
境界という線により区切られた結果としてその内側の範囲や領域ができるが
境界という言葉が区切られた結果としてできる内側の範囲や領域を示すわけではない
境界(キョウカイ)という概念は境界を通して接している二つのものがなければ成り立たない
408デフォルトの名無しさん
2025/04/10(木) 09:28:59.90ID:sl4+KigV >>381
そんなことしたらゴミが増えるだけ
そんなことしたらゴミが増えるだけ
409デフォルトの名無しさん
2025/04/10(木) 09:34:45.39ID:sl4+KigV >>398
水平線地平線がしっくりくる
水平線地平線がしっくりくる
410デフォルトの名無しさん
2025/04/10(木) 09:37:18.05ID:V2R2z6S+ で、結局Windowsアプリ用としてのGUIフレームワークは どれがおすすめなん?
411デフォルトの名無しさん
2025/04/10(木) 10:02:20.15ID:sl4+KigV412デフォルトの名無しさん
2025/04/10(木) 11:31:17.20ID:sl4+KigV >>324
>Rust での解説はこれから市民権を得ていくでしょうか。もしそうなるとすると、自分が一番馴染みがある言語で学べることになりとてもワクワクします。
今後こんな糞スペックのが増えてくるんだろうな
>Rust での解説はこれから市民権を得ていくでしょうか。もしそうなるとすると、自分が一番馴染みがある言語で学べることになりとてもワクワクします。
今後こんな糞スペックのが増えてくるんだろうな
413デフォルトの名無しさん
2025/04/10(木) 11:43:14.72ID:Qbt6Bavv >>410
Tauri以外にあるの?
Tauri以外にあるの?
414デフォルトの名無しさん
2025/04/10(木) 11:46:18.80ID:5Ye07Eg9 >>410
いつの間にか、eguiで日本語インライン入力できるようになっている
いつの間にか、eguiで日本語インライン入力できるようになっている
415デフォルトの名無しさん
2025/04/10(木) 12:11:08.05ID:Vy3uEQTj >>410
個人的には slint が使いやすいとは思ってるが、 Windows の知識が充分にあるという前提なら windows-rs 経由で API を直接に呼ぶのが楽という人もいると思う。
個人的には slint が使いやすいとは思ってるが、 Windows の知識が充分にあるという前提なら windows-rs 経由で API を直接に呼ぶのが楽という人もいると思う。
416デフォルトの名無しさん
2025/04/10(木) 16:33:28.17ID:SZxFOwGT >>369
その通り
ちなみにRustには4つの関数があり
{fn} キャプチャのない関数
Fn - {fn} キャプチャ時の値を参照してしまう関数
FnMut - Fn キャプチャ時の値を書き換えてしまう関数
FnOnce - FnMut キャプチャ時の値を消費してしまい1度しか呼べない関数
その通り
ちなみにRustには4つの関数があり
{fn} キャプチャのない関数
Fn - {fn} キャプチャ時の値を参照してしまう関数
FnMut - Fn キャプチャ時の値を書き換えてしまう関数
FnOnce - FnMut キャプチャ時の値を消費してしまい1度しか呼べない関数
417デフォルトの名無しさん
2025/04/10(木) 18:07:01.46ID:P/kW37Nh 自分と会話し始めちゃったよw
それも全く意味がない会話を
それも全く意味がない会話を
418デフォルトの名無しさん
2025/04/10(木) 18:27:16.96ID:mUlJ1kr4 foo.bar()はfooを移動したのか参照したのか見た目で区別できない
移動かと思ったらじつはCopyだったりするし
foo()も同じ
移動かと思ったらじつはCopyだったりするし
foo()も同じ
419デフォルトの名無しさん
2025/04/10(木) 19:11:04.12ID:6uiVDoq6420デフォルトの名無しさん
2025/04/10(木) 22:19:50.16ID:5Ye07Eg9 >>418
そういうのはIDEがやる仕事でしょ
そういうのはIDEがやる仕事でしょ
421デフォルトの名無しさん
2025/04/10(木) 22:42:29.86ID:mBJ9AdtP オープンソースの翻訳にいちゃもん付ける活動してるのは技術評論社だっけ?
本買え本って言ってたよな
本買え本って言ってたよな
422デフォルトの名無しさん
2025/04/11(金) 11:22:05.80ID:7EX5STKN423デフォルトの名無しさん
2025/04/11(金) 11:46:40.40ID:HX71i0gu 共感できることに共感するのは有能だがどんな妄想にも共感するやつは無能だ
424デフォルトの名無しさん
2025/04/11(金) 12:20:13.15ID:yx7ZxPSb いいかげん中身のない主張やめて、とっととthe rust book 最新版を翻訳して用語を統一しろ。
the rust book 翻訳を古いまま放置して、偉そうに翻訳を語るなよ。
the rust book 翻訳を古いまま放置して、偉そうに翻訳を語るなよ。
425デフォルトの名無しさん
2025/04/11(金) 12:57:51.71ID:mXJpW1vK Rust bookみたいな聖書があるのに聖書の翻訳が気に入らないからと文句つける奴は頭おかしいわ
トレイト境界でもういいだろ。聖書にそう書いてあんだよ
トレイト境界でもういいだろ。聖書にそう書いてあんだよ
426デフォルトの名無しさん
2025/04/11(金) 13:02:09.03ID:/8vt7NNX 今の時間crates.ioメンテでもしてんのか?
反応クッソ遅いんだが
反応クッソ遅いんだが
427デフォルトの名無しさん
2025/04/11(金) 16:09:31.37ID:Dvk3nAyu 日本語の本読んでる時点でダメだ。原書の話題だけ頼む
428デフォルトの名無しさん
2025/04/11(金) 16:29:00.90ID:9opbn0me >>427
原著が日本語ならこんな翻訳の問題起きなかったって言いたそうだけど違うぞ
どの言語だろうと聖書に書かれた内容に食ってかかる反体制派とか左翼っぽいのが生まれる社会土壌の問題だ
英語が母国語でもこういうタイプの輩は、boundsという用語を使ったことに対して反抗してconstraintsで統一しろとか騒ぐ
言語の問題なんかじゃ無い。心の問題であり態度の問題だ
原著が日本語ならこんな翻訳の問題起きなかったって言いたそうだけど違うぞ
どの言語だろうと聖書に書かれた内容に食ってかかる反体制派とか左翼っぽいのが生まれる社会土壌の問題だ
英語が母国語でもこういうタイプの輩は、boundsという用語を使ったことに対して反抗してconstraintsで統一しろとか騒ぐ
言語の問題なんかじゃ無い。心の問題であり態度の問題だ
429デフォルトの名無しさん
2025/04/11(金) 16:32:35.54ID:Dvk3nAyu いや、面倒だからフィルタになるでしょ
って程度だよ
このスレ自体を英語だけにしてもいいぞ
って程度だよ
このスレ自体を英語だけにしてもいいぞ
430デフォルトの名無しさん
2025/04/11(金) 16:50:22.75ID:UKjoRWuA431デフォルトの名無しさん
2025/04/11(金) 18:38:06.51ID:nsFUcEzJ 境界信者はやっぱり宗教詳しいんだね
学会や壺も他宗教について詳しいもんね
学会や壺も他宗教について詳しいもんね
432デフォルトの名無しさん
2025/04/11(金) 18:43:51.54ID:Lf3Jev+n rustの仕様見たけど肝心なlifetimeの情報が網羅されてなくて本当にこれが仕様として働くのか疑問に思った
433デフォルトの名無しさん
2025/04/11(金) 19:27:00.96ID:HX71i0gu なんでも動的にチェックする簡易な実装を考えたほうがわかりやすい
434デフォルトの名無しさん
2025/04/11(金) 21:09:53.34ID:dq5UKFva435デフォルトの名無しさん
2025/04/11(金) 22:11:47.10ID:cSKsCytU436デフォルトの名無しさん
2025/04/12(土) 06:43:32.65ID:IMDrBc8a USO-800
437デフォルトの名無しさん
2025/04/12(土) 11:10:12.54ID:mEwUzKIx Rust境界例
438デフォルトの名無しさん
2025/04/12(土) 12:46:42.80ID:G/Z86Z6L439デフォルトの名無しさん
2025/04/12(土) 13:53:53.64ID:Mda8ZghK このスレの結論
trait boundの翻訳の議論を除けばRustには欠点がないと思っていいかな?
trait boundの翻訳の議論を除けばRustには欠点がないと思っていいかな?
440デフォルトの名無しさん
2025/04/12(土) 13:55:52.66ID:0buiik+f GC言語経験者には、難しいというのは欠点かも
441デフォルトの名無しさん
2025/04/12(土) 14:14:59.77ID:6rJMqtUM 文字列処理の経験者は案外GCを使わない経験をしているはず
だが文字列指向を捨てるよう訓練された人が一番苦労する
だが文字列指向を捨てるよう訓練された人が一番苦労する
442デフォルトの名無しさん
2025/04/12(土) 14:32:57.78ID:fDddIcJn toastyっていつになったら使えるようになるの?
443デフォルトの名無しさん
2025/04/12(土) 16:12:49.92ID:l+qhzSG7 >>442
toastyがどこまでやるのか途上でわからんけどさ
O/Rマッパーを名乗ってるから単純なものには使えても一般的にはORMの様々な欠点を抱えるっしょ
だからORMではないSQLxが人気だけど非同期ORMの需要もあるから既にSeaORMやDiesel-asyncがある状況で
新たにtoastyをtokio直下プロジェクトで進めようとしてるのはRDBよりむしろNoSQL対策がメインと見ていいのかね
toastyがどこまでやるのか途上でわからんけどさ
O/Rマッパーを名乗ってるから単純なものには使えても一般的にはORMの様々な欠点を抱えるっしょ
だからORMではないSQLxが人気だけど非同期ORMの需要もあるから既にSeaORMやDiesel-asyncがある状況で
新たにtoastyをtokio直下プロジェクトで進めようとしてるのはRDBよりむしろNoSQL対策がメインと見ていいのかね
444デフォルトの名無しさん
2025/04/12(土) 16:14:41.99ID:kMx1QAlk >>435
品質管理系の規格 (ISO9001) だと「発生したトラブル (不良品) に対して対策をする手続きが存在していてその手続き通りに実施しているか」を審査されるが、対策の効果や妥当性は審査対象ではない。
実際問題として作ってる製品の性質によるから審査しようがないし。
26262 がどういう性質のものなのかググったくらいでは全然わからんが 9001 と同じようにメタな部分を審査するんじゃないかな……。
ダングリング防止の機能があることなどは審査されてもどういうメカニズムで実現されるかは審査対象外なのかもしれん。
品質管理系の規格 (ISO9001) だと「発生したトラブル (不良品) に対して対策をする手続きが存在していてその手続き通りに実施しているか」を審査されるが、対策の効果や妥当性は審査対象ではない。
実際問題として作ってる製品の性質によるから審査しようがないし。
26262 がどういう性質のものなのかググったくらいでは全然わからんが 9001 と同じようにメタな部分を審査するんじゃないかな……。
ダングリング防止の機能があることなどは審査されてもどういうメカニズムで実現されるかは審査対象外なのかもしれん。
445デフォルトの名無しさん
2025/04/12(土) 17:46:03.85ID:GwdhqqDc >>438
まともな回答じゃなくても妥当性を判断する材料にはなる
まともな回答じゃなくても妥当性を判断する材料にはなる
446デフォルトの名無しさん
2025/04/12(土) 20:51:24.81ID:6rJMqtUM ニューメディアには二種類ある
知りたいことだけを問い合わせるメディアと
従来は網羅できなかったことを網羅するメディア
知りたいことだけを問い合わせるメディアと
従来は網羅できなかったことを網羅するメディア
447デフォルトの名無しさん
2025/04/13(日) 10:15:42.59ID:9+E6vnhP これよな
そう思えるのはお前も信者だからだろ
結局のところRust信者はポリコレ過ぎる
これも「政治的に」Linusにチクって解決しようとしたところ、ブチ切れられただけ
記事の話が全部本当だとして総合的に推定すると、
Rustから叩く為のラッパ的な物を用意しようとしたところ政治闘争となり、両者辞任の痛み分け、
カーネル自体のコードには今後ともRustは無し、という所ではないかと
これは「支持」ではなく「容認」だろうよ
ただまあ、何でそんな物が『カーネル側に』必要なのか技術的に疑問ではあるがな
RustからCのAPIを叩けないなんて事はあり得ないだろうし、仮にそうだとしても、API変換をRust側でやればよかっただけの話
俺はHellwigの方が正しいと思う。まあLinus案も落とし所としてはありなだろうけど
(というかLinusはこの辺が断然上手い)
Rust信者は、技術的理由ではなく、非Rust話者を排除する為にRustを使う
TypeScriptにも似たような奴はいると思うけど
そう思えるのはお前も信者だからだろ
結局のところRust信者はポリコレ過ぎる
これも「政治的に」Linusにチクって解決しようとしたところ、ブチ切れられただけ
記事の話が全部本当だとして総合的に推定すると、
Rustから叩く為のラッパ的な物を用意しようとしたところ政治闘争となり、両者辞任の痛み分け、
カーネル自体のコードには今後ともRustは無し、という所ではないかと
これは「支持」ではなく「容認」だろうよ
ただまあ、何でそんな物が『カーネル側に』必要なのか技術的に疑問ではあるがな
RustからCのAPIを叩けないなんて事はあり得ないだろうし、仮にそうだとしても、API変換をRust側でやればよかっただけの話
俺はHellwigの方が正しいと思う。まあLinus案も落とし所としてはありなだろうけど
(というかLinusはこの辺が断然上手い)
Rust信者は、技術的理由ではなく、非Rust話者を排除する為にRustを使う
TypeScriptにも似たような奴はいると思うけど
448デフォルトの名無しさん
2025/04/13(日) 13:34:29.88ID:2lLYGSci ボランティア翻訳に訳の分からんいちゃもん付けるのはたいてい技術評論社
奴らは本を売りたいだけだから無視して良いと思う
奴らは本を売りたいだけだから無視して良いと思う
449デフォルトの名無しさん
2025/04/13(日) 13:40:39.46ID:4yNzrwxr 抽象化モデルが非効率だったと何年もたってから発覚したときにはそのモデルに依存しきっていて全体の書き直ししか修正しようがないということをリーナスは書いている。
プログラムを凝らずに書けることが良いというよりは、凝ったプログラムが柔軟性がない (修正しにくい) ことを問題視してるように見える。
実行効率はやってみないとわからん場合もあるし事情が変わる場合もあるから、ある時点で設計として真っ当であってもずっとそうだとは限らんのだな。
プログラムを凝らずに書けることが良いというよりは、凝ったプログラムが柔軟性がない (修正しにくい) ことを問題視してるように見える。
実行効率はやってみないとわからん場合もあるし事情が変わる場合もあるから、ある時点で設計として真っ当であってもずっとそうだとは限らんのだな。
450デフォルトの名無しさん
2025/04/13(日) 15:14:15.49ID:1Z67A7m7451デフォルトの名無しさん
2025/04/13(日) 15:55:50.50ID:c6Sg9WHG 突然メルカリのリンクを貼られてドン引き
452デフォルトの名無しさん
2025/04/13(日) 16:47:42.50ID:h93U4QKi 会社もメルカリで売ってるのかすごいな
453デフォルトの名無しさん
2025/04/13(日) 17:58:50.92ID:gxlD4b+C SDGsの時代だからね
454デフォルトの名無しさん
2025/04/14(月) 14:43:52.73ID:NMEkC5si ますます怪しいな
455デフォルトの名無しさん
2025/04/14(月) 16:15:10.37ID:w0ewOdij ボランティアは文句つけられるけど
うちから出せば金が出るよってことか
うちから出せば金が出るよってことか
456デフォルトの名無しさん
2025/04/14(月) 16:17:16.70ID:w0ewOdij ボランティア叩き企業なのに
指摘されて即座に擁護が湧くのが怪しいと思う
指摘されて即座に擁護が湧くのが怪しいと思う
457デフォルトの名無しさん
2025/04/14(月) 23:45:08.90ID:5Y8yian5 >>447
そうではなくて、
既に進みつつある(デバイスドライバを含めた)カーネルモジュールのRust化の利便性のために、
Rust用のAPIをLinux公式としてサポートする方針でLinusもOKを出したんだよ。
カーネルのコア部分はC言語のままだけど、各カーネルモジュールは新規分からRustへ置き換わっていってる。
そうではなくて、
既に進みつつある(デバイスドライバを含めた)カーネルモジュールのRust化の利便性のために、
Rust用のAPIをLinux公式としてサポートする方針でLinusもOKを出したんだよ。
カーネルのコア部分はC言語のままだけど、各カーネルモジュールは新規分からRustへ置き換わっていってる。
458デフォルトの名無しさん
2025/04/14(月) 23:48:27.55ID:bfiqihn+ マジかー
お爺ちゃん達Rustやりだすの?
お爺ちゃん達Rustやりだすの?
459デフォルトの名無しさん
2025/04/15(火) 10:08:30.99ID:CbsPdu2a Option<Ordering> を得たいときに i64 とか i32 の integer 型の condition があるとして
let hoge =
if condition == 0 { Some(Ordering::Equal) }
else if condition < 0 { Some(Ordering::Less) }
else if condition > 0 { Some(Ordering::Greater) }
else { None }
;
で hoge に Option<Ordering> が得られるのですが
hoge を反転させた状態を hoge から直接得るにはどうすれば良いのでしょうか
上の例のコードで -condition に置き換えたときに得られる結果と同じものを
コードの重複を避けて hoge から !hoge みたいに取得したいのです
let hoge =
if condition == 0 { Some(Ordering::Equal) }
else if condition < 0 { Some(Ordering::Less) }
else if condition > 0 { Some(Ordering::Greater) }
else { None }
;
で hoge に Option<Ordering> が得られるのですが
hoge を反転させた状態を hoge から直接得るにはどうすれば良いのでしょうか
上の例のコードで -condition に置き換えたときに得られる結果と同じものを
コードの重複を避けて hoge から !hoge みたいに取得したいのです
460デフォルトの名無しさん
2025/04/15(火) 10:42:57.35ID:5gq1dzTA hoge.map(Ordering::reverse)
461デフォルトの名無しさん
2025/04/15(火) 10:51:02.82ID:b7lMQ02q462デフォルトの名無しさん
2025/04/15(火) 11:01:31.96ID:l4YFawe/ 【脳科学】「政治行動の激しさ」に関連する脳回路の存在が研究で判明 [すらいむ★]
http://egg.5ch.net/test/read.cgi/scienceplus/1744637408/
上記のリンクをたどったリンク先の本文とコメントを読まれると・・・
余裕ありますか・・・
大々的にインターネット上にばらまかれました!
http://egg.5ch.net/test/read.cgi/scienceplus/1744637408/
上記のリンクをたどったリンク先の本文とコメントを読まれると・・・
余裕ありますか・・・
大々的にインターネット上にばらまかれました!
463デフォルトの名無しさん
2025/04/15(火) 17:11:35.23ID:8Z5eSApz PartialOrdを実装してるようには見えんよな
464デフォルトの名無しさん
2025/04/15(火) 21:09:18.10ID:r3aLc7OM XY問題っぽいけど本人がいいなら別にいいんじゃね
465デフォルトの名無しさん
2025/04/15(火) 23:20:57.63ID:I/RUKS+a >>459
それらi32やi64はOrd境界を満たしている
そしてOrdにはsupertrateとしてのトレイト境界PartialOrdがある
まずそのifの4分岐を使わずともx.partial_cmp(&0)でOption<Ordering>を得ることができる
ただしOrdも満たす整数型では常にSomeとなりNoneになることはない
一方でf64などの浮動小数点は!Ordなのでpartial_cmpでNoneが返りうる
自分でstruct Pair(i32, i32)を作り二つのi32のcmpが同じ時のみpartial_cmpをSomeにする型等も同様にNoneが返りうる
そのためにPartialOrdとOrd(: PartialOrd)の二段階に分かれている
今回のi32型やi64型はOrdも実装されているためNoneが返ることは絶対にない
したがって今回はx.cmp(&0)でOrderingを返すのが正しい
それらi32やi64はOrd境界を満たしている
そしてOrdにはsupertrateとしてのトレイト境界PartialOrdがある
まずそのifの4分岐を使わずともx.partial_cmp(&0)でOption<Ordering>を得ることができる
ただしOrdも満たす整数型では常にSomeとなりNoneになることはない
一方でf64などの浮動小数点は!Ordなのでpartial_cmpでNoneが返りうる
自分でstruct Pair(i32, i32)を作り二つのi32のcmpが同じ時のみpartial_cmpをSomeにする型等も同様にNoneが返りうる
そのためにPartialOrdとOrd(: PartialOrd)の二段階に分かれている
今回のi32型やi64型はOrdも実装されているためNoneが返ることは絶対にない
したがって今回はx.cmp(&0)でOrderingを返すのが正しい
466デフォルトの名無しさん
2025/04/16(水) 00:32:42.55ID:BZ2/m9bV >それらi32やi64はOrd境界を満たしている
トレイト制約とトレイト実装の区別ができてないやつをちょくちょく見かけるけどあれ境界本の影響だったのか
トレイト制約とトレイト実装の区別ができてないやつをちょくちょく見かけるけどあれ境界本の影響だったのか
467デフォルトの名無しさん
2025/04/16(水) 00:40:00.05ID:nlneFEtY ある型がXxx境界を満たすこと=その型がXxxを実装していること、だから正しいよね
468デフォルトの名無しさん
2025/04/16(水) 09:39:47.23ID:VD2CYluq 境界を満たすことって表現が気持ち悪い
日本語的じゃない
区域に含まれるようでいてそういう話でもない
日本語的じゃない
区域に含まれるようでいてそういう話でもない
469デフォルトの名無しさん
2025/04/16(水) 10:00:02.42ID:kz9c6vLk470デフォルトの名無しさん
2025/04/16(水) 11:16:05.15ID:DaU8fra8 明らかに間違った言葉を使っていても”テクニカルタームってそういうもんなので”で済ませるメンタリティの持ち主が誤訳を生み出して広めるってことだな
役に立つ誤訳ならいいけど>>465からも分かるように境界は足を引っ張る誤訳だから早く止めるに越したことはない
役に立つ誤訳ならいいけど>>465からも分かるように境界は足を引っ張る誤訳だから早く止めるに越したことはない
471デフォルトの名無しさん
2025/04/16(水) 11:28:23.19ID:aXNp1hi+ traitボヨヨ~ンでいいよ。
472デフォルトの名無しさん
2025/04/16(水) 11:30:24.19ID:PbGbU7xO 普通にC#/TypeScript/Kotlinあたりで採用されているconstraint: 制約 でよかったと思うけどね
Rustは変な選民意識が足を引っ張っている
Rustは変な選民意識が足を引っ張っている
473デフォルトの名無しさん
2025/04/16(水) 11:33:26.57ID:aXNp1hi+ Cの置き換え言語に高尚な意識は要らん
474デフォルトの名無しさん
2025/04/16(水) 11:34:30.78ID:aXNp1hi+ 組込みやってる人達と接点は持ったほうがいいね
475デフォルトの名無しさん
2025/04/16(水) 12:15:29.62ID:zTEGEKkW くだらない議論する労力あるならとっととthe rust book 最新版を翻訳して用語統一しろよ。
476デフォルトの名無しさん
2025/04/16(水) 12:22:24.48ID:D06utXB5 プログラム という単語自体がもうおかしいからな
そこに目を瞑ってる時点で同じ穴の狢よ
そこに目を瞑ってる時点で同じ穴の狢よ
477デフォルトの名無しさん
2025/04/16(水) 12:41:52.97ID:ApyifYby478デフォルトの名無しさん
2025/04/16(水) 12:48:16.89ID:QI1tlKT9479デフォルトの名無しさん
2025/04/16(水) 15:44:17.59ID:PbGbU7xO 意識高い系プログラミング言語界隈はbindを多用しすぎていて曖昧になってしまっているのは問題
ネイティブにとってクールで知的な語感なのか知らんがどんだけ束縛プレイ好きなんだよ
ネイティブにとってクールで知的な語感なのか知らんがどんだけ束縛プレイ好きなんだよ
480デフォルトの名無しさん
2025/04/16(水) 16:00:15.57ID:aXNp1hi+ 緊縛緊縛
481デフォルトの名無しさん
2025/04/16(水) 18:39:21.33ID:VD2CYluq AとBの境界を満たすって意味がもうすでに訳が分からないので気持ち悪い
482デフォルトの名無しさん
2025/04/16(水) 19:25:04.78ID:vwXsH1ob 上界下界
483デフォルトの名無しさん
2025/04/16(水) 19:28:02.69ID:VD2CYluq AとBの条件を満たすならわかる
AとBの境界を満たすのは意味不明
Aの境界を満たすですら意味不明
AとBの境界を満たすのは意味不明
Aの境界を満たすですら意味不明
484デフォルトの名無しさん
2025/04/16(水) 19:31:37.92ID:vwXsH1ob 簡単な概念に難しい言葉使いすぎ。共和党党員でも理解出来るdealみたいな簡単な単語にする
computerとかラテン語っぽいのは嫌われちゃうぞ
computerとかラテン語っぽいのは嫌われちゃうぞ
485デフォルトの名無しさん
2025/04/16(水) 21:14:58.28ID:kz9c6vLk テクニカルタームってのは「その分野に固有の定義がある語」なので日常用語の意味で解釈されないようにしなきゃならないんだよ。
その分野を学んだことがない初心者でも自然に読めてしまうのは用語の選定が失敗した証だとも言える。
法律用語の「悪意」「ないし」あたりは日常用語とは明瞭に意味が異なるのに日常用語としても解釈できてしまうので良くない例だ。
その一方では全く由来のないデタラメに作り出した語は単純に言いにくいし覚えにくい。
境界と言うかわりにププイータとかフニャコソとか言ったって (それで統一されるなら) 辻褄は合うが、さすがにそれはあんまりというものだろう。
そういう微妙な機微を踏まえて選定するものなんだよ。
その分野を学んだことがない初心者でも自然に読めてしまうのは用語の選定が失敗した証だとも言える。
法律用語の「悪意」「ないし」あたりは日常用語とは明瞭に意味が異なるのに日常用語としても解釈できてしまうので良くない例だ。
その一方では全く由来のないデタラメに作り出した語は単純に言いにくいし覚えにくい。
境界と言うかわりにププイータとかフニャコソとか言ったって (それで統一されるなら) 辻褄は合うが、さすがにそれはあんまりというものだろう。
そういう微妙な機微を踏まえて選定するものなんだよ。
486デフォルトの名無しさん
2025/04/16(水) 21:17:18.07ID:Owp+m7kF ボヨヨ~ン一択
487デフォルトの名無しさん
2025/04/16(水) 21:24:19.59ID:nlneFEtY >>477
それは最適化されるので大丈夫
「-condition」を使ってはいけない
これはi32::MIN時にoverflowする
したがってそのif文で書くならばGREATERとLESSを入れ替えるか
「condition > 0」と「condition < 0」を入れ替えることになる
しかしOrderingについて「if文で多分岐させる」こと自体がいけない
可読性に劣るとともにケアレスミスも起きうるだけでなく
生成コードを見ると以下の正解よりも少し長くなりえて遅くなりうることがわかる
正解はこれ
普通のまま: condition.partial_cmp(&0)
逆にする時: condition.partial_cmp(&0).map(|x| x.reverse())
逆にする時: condition.partial_cmp(&0).map(Ordering::reverse) 【上記と同じ】
いずれも生成コードがそのif文より短くなりうる
そして可読性も優れている
ただしconditionにi32やi64の整数型を使うとpartial_cmp()がNoneになることはない
Option<Ordering>を使う必要はなくcmp()でOrderingを得れば十分
真の正解はこれ
普通のまま: condition.cmp(&0)
逆にする時: condition.cmp(&0).reverse()
それは最適化されるので大丈夫
「-condition」を使ってはいけない
これはi32::MIN時にoverflowする
したがってそのif文で書くならばGREATERとLESSを入れ替えるか
「condition > 0」と「condition < 0」を入れ替えることになる
しかしOrderingについて「if文で多分岐させる」こと自体がいけない
可読性に劣るとともにケアレスミスも起きうるだけでなく
生成コードを見ると以下の正解よりも少し長くなりえて遅くなりうることがわかる
正解はこれ
普通のまま: condition.partial_cmp(&0)
逆にする時: condition.partial_cmp(&0).map(|x| x.reverse())
逆にする時: condition.partial_cmp(&0).map(Ordering::reverse) 【上記と同じ】
いずれも生成コードがそのif文より短くなりうる
そして可読性も優れている
ただしconditionにi32やi64の整数型を使うとpartial_cmp()がNoneになることはない
Option<Ordering>を使う必要はなくcmp()でOrderingを得れば十分
真の正解はこれ
普通のまま: condition.cmp(&0)
逆にする時: condition.cmp(&0).reverse()
488デフォルトの名無しさん
2025/04/16(水) 22:12:59.22ID:talPcQtH てすと
489デフォルトの名無しさん
2025/04/16(水) 23:55:34.09ID:4m7V5jbh Rustでの抽象化したコードの方が可読性の良さだけでなく速いんだよな
様々な抽象化したコードの連鎖もRustでの最適化と下請けのLLVMでの最適化のおかげで速くなってる
様々な抽象化したコードの連鎖もRustでの最適化と下請けのLLVMでの最適化のおかげで速くなってる
490デフォルトの名無しさん
2025/04/17(木) 00:27:01.07ID:IaMMIkKx エイリアス解析は最適化の重要な要素だから参照関係を明瞭に追える Rust は有利。
491デフォルトの名無しさん
2025/04/17(木) 06:01:08.25ID:KpBsw54w Rustはオワコン
492デフォルトの名無しさん
2025/04/17(木) 11:32:45.05ID:W4vMp3MB493デフォルトの名無しさん
2025/04/17(木) 11:47:53.19ID:pEkBySlv494デフォルトの名無しさん
2025/04/17(木) 12:04:31.60ID:tER9i4ve これは嘘です
その場合でも.map(Ordering::reverse)が一番速いです
>>493
>>conditionから新規に反転した値を取得したいのなら当たり前だけど.map(Ordering::reverse)を使わないほうが速い
その場合でも.map(Ordering::reverse)が一番速いです
>>493
>>conditionから新規に反転した値を取得したいのなら当たり前だけど.map(Ordering::reverse)を使わないほうが速い
495デフォルトの名無しさん
2025/04/17(木) 12:20:41.10ID:Yukgj1cx ところがRustならゼロコストなんだなあ
496デフォルトの名無しさん
2025/04/17(木) 13:46:18.29ID:oKypZfow ユースケース説明してくれないのに速いとかなんとか言っても不毛だし境界の話に戻ろうぜ!
497デフォルトの名無しさん
2025/04/17(木) 14:21:55.09ID:fw0OLUjq498デフォルトの名無しさん
2025/04/17(木) 15:59:50.14ID:szbpCwWd 【AI】OpenAIが「GPT 4.1」のAPIを公開、100万トークン対応と実用性能で飛躍的進化を遂げた次世代AIモデル [すらいむ★]
http://egg.5ch.net/test/read.cgi/scienceplus/1744724723/
上記のリンク先のコメントを読んでもまだ医者の威厳を保てるのか?
http://egg.5ch.net/test/read.cgi/scienceplus/1744724723/
上記のリンク先のコメントを読んでもまだ医者の威厳を保てるのか?
499デフォルトの名無しさん
2025/04/17(木) 18:53:03.37ID:47PJMP+S >>459
それと全く同じ動作をする関数fはこれが速さも簡潔さもベスト
fn f(condition: i64) -> Option<Ordering> {
condition.partial_cmp(&0)
}
Less/Greaterを反転させた関数f_revはこれが速さも簡潔さもベスト
fn f_rev(condition: i64) -> Option<Ordering> {
0.partial_cmp(&condition)
}
アセンブリ手書きでもこれらの生成コードより速くできないことをx86-64で確認した
それと全く同じ動作をする関数fはこれが速さも簡潔さもベスト
fn f(condition: i64) -> Option<Ordering> {
condition.partial_cmp(&0)
}
Less/Greaterを反転させた関数f_revはこれが速さも簡潔さもベスト
fn f_rev(condition: i64) -> Option<Ordering> {
0.partial_cmp(&condition)
}
アセンブリ手書きでもこれらの生成コードより速くできないことをx86-64で確認した
500デフォルトの名無しさん
2025/04/17(木) 19:35:44.38ID:Yukgj1cx501デフォルトの名無しさん
2025/04/17(木) 19:48:15.83ID:47PJMP+S >>497
論理反転ではないからreverseだと思う
論理反転ならlt⇔ge gt⇔le eq⇔neだろうけど
Orderingはlt,eq,gtの3種
そしてOrdering::reverseはlt⇔gtだから
論理反転ではないからreverseだと思う
論理反転ならlt⇔ge gt⇔le eq⇔neだろうけど
Orderingはlt,eq,gtの3種
そしてOrdering::reverseはlt⇔gtだから
502デフォルトの名無しさん
2025/04/17(木) 22:47:28.82ID:wYSSkCRf 結局RustではC風に書くより抽象的に書いた方が、
可読性が良いだけでなく実行速度でも有利なんだな。
可読性が良いだけでなく実行速度でも有利なんだな。
503デフォルトの名無しさん
2025/04/17(木) 22:49:00.49ID:p3EBjLeO504デフォルトの名無しさん
2025/04/17(木) 23:42:56.97ID:oLU/r15m simple is best
505デフォルトの名無しさん
2025/04/17(木) 23:59:58.22ID:VFw/RNHq506デフォルトの名無しさん
2025/04/18(金) 06:24:24.51ID:cH2b3I6U なんでビルドのときからボコボコボコボコDLさせるの?
なんでアクセスさせようとするの?
なんでアクセスさせようとするの?
507デフォルトの名無しさん
2025/04/18(金) 07:02:30.53ID:AZglsXQc 他の言語も同じ
508デフォルトの名無しさん
2025/04/18(金) 07:04:06.26ID:5hEkFobl >>506
標準ライブラリだけ使っていればDLしないよ
他のライブラリを使うなら自動的に依存関係がDLされるのは当たり前
もちろん事前にDLしておけばオフラインでも cargo build −−offline できるよ
標準ライブラリだけ使っていればDLしないよ
他のライブラリを使うなら自動的に依存関係がDLされるのは当たり前
もちろん事前にDLしておけばオフラインでも cargo build −−offline できるよ
509デフォルトの名無しさん
2025/04/18(金) 07:57:54.21ID:x/7ySqvh >>505
ScalaやHaskellとかと同じ道を歩んでるな
ScalaやHaskellとかと同じ道を歩んでるな
510デフォルトの名無しさん
2025/04/18(金) 08:25:24.05ID:P5voSsBY511デフォルトの名無しさん
2025/04/18(金) 09:03:11.60ID:mYy6SV15512デフォルトの名無しさん
2025/04/18(金) 09:55:44.96ID:D+dZTohS .partial_cmp(&0) ってダサくない?
なんで
.partial_cmp(0) に出来ないの?
なんで
.partial_cmp(0) に出来ないの?
513デフォルトの名無しさん
2025/04/18(金) 10:28:07.41ID:ZAhA/Z3u 0と比較した結果をOrderingで返す関数とか無用の長物じゃね?
514デフォルトの名無しさん
2025/04/18(金) 10:32:03.94ID:D+dZTohS 確かに >>499 は無駄そのもの
515デフォルトの名無しさん
2025/04/18(金) 10:47:04.28ID:OYio1Suj >>512
出来ない
出来ない
516デフォルトの名無しさん
2025/04/18(金) 10:47:35.98ID:FSJ/87pm517デフォルトの名無しさん
2025/04/18(金) 11:56:29.53ID:iABbAYzg518デフォルトの名無しさん
2025/04/18(金) 12:06:41.66ID:l4HkHLRc >>512
初心者っぽいから説明すると
大きな構造体や文字列やBigIntなど含めた様々なデータを比較する関数だよ
参照を渡す方が良いことを理解できるよね?
もちろん数値の場合はコード上は他のデータと同じく参照を渡していても最適化で参照を使わずに数値同士が比較されるから心配しなくていい
初心者っぽいから説明すると
大きな構造体や文字列やBigIntなど含めた様々なデータを比較する関数だよ
参照を渡す方が良いことを理解できるよね?
もちろん数値の場合はコード上は他のデータと同じく参照を渡していても最適化で参照を使わずに数値同士が比較されるから心配しなくていい
519デフォルトの名無しさん
2025/04/18(金) 12:21:49.30ID:9tQNo+Cx gpt o3がバックエンドはRustがオススメです。
みたいに推してくるから、理由を聞いたら、「何にでも雑に強い」からだって開き直りよった
みたいに推してくるから、理由を聞いたら、「何にでも雑に強い」からだって開き直りよった
520デフォルトの名無しさん
2025/04/18(金) 12:25:55.76ID:LTc7knjt 可読性ですね判ります
521デフォルトの名無しさん
2025/04/18(金) 12:29:26.06ID:LQ9k+WsD 政治を嫌うやつがほしがるのは共感でも最適解でもなく、政治的ではないことが保証された解だな
だから乱数や賭博を嫌いになれないのか
だから乱数や賭博を嫌いになれないのか
522デフォルトの名無しさん
2025/04/18(金) 20:38:04.94ID:8ipzMSW5 Rustで書くとLLVMが最適化するので事実上最速のコードであることが保証されます
523デフォルトの名無しさん
2025/04/18(金) 21:32:44.78ID:LQ9k+WsD 単に競争を回避するだけならできなくはないと思うが
政治家の競争と民間企業?の競争を区別するのは無理ゲーだ
政治家の競争と民間企業?の競争を区別するのは無理ゲーだ
524デフォルトの名無しさん
2025/04/18(金) 21:55:39.18ID:U7NtBk6M >>514
それコンパイルしたらSETccとCMOVcc使って最短最速の分岐していて無駄ないよ
それコンパイルしたらSETccとCMOVcc使って最短最速の分岐していて無駄ないよ
525デフォルトの名無しさん
2025/04/19(土) 04:04:16.66ID:FhCqpqMY 【2025年最新】自然な声の音声読み上げソフト5選!AI技術で ...
https://ondoku3.com/ja/post/natural-voice-software/
※無料で5000文字まで音声合成エンジンで読み上げ可能
※音声合成エンジンは人間の声のサンプルから声質が作成されている
「Grok」が過去の会話を覚え続けるようになった--ChatGPTに追従 オフにする方法は?
2025年04月18日 05時20
http://japan.cnet.com/article/35231959/
>>「ChatGPT」やGoogleの「Gemini」も同様の記憶機能を導入している。これらのサービスも、長期的な会話履歴を保持し、ユーザーに合わせた回答が可能となっている。
※GrokはChatGPTで規制されていることも返答するようになっている
統合失調症の幻聴で半分人間半分AIと申されていた
統合失調症の幻聴で宇宙人とも話されていたのでかなり昔からできていたと思われる
※対象者【統合失調症】の考えに対しては何を考えているかは対象者【統合失調症】に聞いてみないことには意味不明⒮
https://ondoku3.com/ja/post/natural-voice-software/
※無料で5000文字まで音声合成エンジンで読み上げ可能
※音声合成エンジンは人間の声のサンプルから声質が作成されている
「Grok」が過去の会話を覚え続けるようになった--ChatGPTに追従 オフにする方法は?
2025年04月18日 05時20
http://japan.cnet.com/article/35231959/
>>「ChatGPT」やGoogleの「Gemini」も同様の記憶機能を導入している。これらのサービスも、長期的な会話履歴を保持し、ユーザーに合わせた回答が可能となっている。
※GrokはChatGPTで規制されていることも返答するようになっている
統合失調症の幻聴で半分人間半分AIと申されていた
統合失調症の幻聴で宇宙人とも話されていたのでかなり昔からできていたと思われる
※対象者【統合失調症】の考えに対しては何を考えているかは対象者【統合失調症】に聞いてみないことには意味不明⒮
526デフォルトの名無しさん
2025/04/19(土) 21:57:19.62ID:fY+o1xZs >>524
それRustのOption<Ordering>が速い理由がわかったわ
Orderingが8bitであることに加えてOption<Ordering>も8bitに抑えてる
しかもOrderingとSome(Ordering)が同じ8bit表現になるようにしている
それらにより8bitしか変化させてくれないsetCC命令をゼロ拡張や事前ゼロクリア無しに使えるわけだ
それRustのOption<Ordering>が速い理由がわかったわ
Orderingが8bitであることに加えてOption<Ordering>も8bitに抑えてる
しかもOrderingとSome(Ordering)が同じ8bit表現になるようにしている
それらにより8bitしか変化させてくれないsetCC命令をゼロ拡張や事前ゼロクリア無しに使えるわけだ
527デフォルトの名無しさん
2025/04/19(土) 22:46:36.80ID:cJmAkIgz Option が特別扱いなわけではなく、全般に空いているビットに詰め込む仕組みがあるのでいろんなところで効いてくる
528デフォルトの名無しさん
2025/04/19(土) 22:55:31.71ID:vmwnv5nR Option持たない言語や持っていても使われない言語は別途bool値などで表すしかないためOptionのような対応処理ができずに不利だね
529デフォルトの名無しさん
2025/04/19(土) 23:14:20.43ID:cJmAkIgz 詰め込む分だけ取り出すコストが生じる場合もあって、どちらが良いとは一概には言えないんだけど Rust は上手くやれてるみたいだね。
530デフォルトの名無しさん
2025/04/19(土) 23:27:11.24ID:9Z8ZvqW5 Optionを持たない流派とかどうでもいい
相性に依存したくないし
相性に依存したくないし
531デフォルトの名無しさん
2025/04/20(日) 02:35:00.94ID:q3Yzhl/7 Some(Equal)
どちらが良いとも言えない
None
どうでもいい
どちらが良いとも言えない
None
どうでもいい
532デフォルトの名無しさん
2025/04/20(日) 08:28:25.78ID:8i8LLpN+ ぬるぽ
533デフォルトの名無しさん
2025/04/20(日) 10:53:41.23ID:stub9h6D 今どきの言語だと大体は string? みたいな記法はあるし
unwrap_or や map, and_then に相当する操作も普通にできるから、 optional は実はあまり困らない
(演算子で書けるぶん、こちらのほうが記述も簡潔)
Resultは無いから、欲しい場面は結構ある
unwrap_or や map, and_then に相当する操作も普通にできるから、 optional は実はあまり困らない
(演算子で書けるぶん、こちらのほうが記述も簡潔)
Resultは無いから、欲しい場面は結構ある
534デフォルトの名無しさん
2025/04/20(日) 11:10:13.02ID:stub9h6D HaskellはリストやOption (Maybe), Tree などをモナドという構造として抽象化できると考えた
これは理論的な美しさはあるけど、実用的にはエラーハンドリングのための専用の構文があつた方が多くの場面で便利
Optionに限れば、C#やTS, Kotlin などにもそういうものがある
Resultも含めるとRustの?演算子はバランスがいいと思う
(これを monadic bind と説明せず、エラーの場合の早期リターンとして説明してる点も含めて)
これは理論的な美しさはあるけど、実用的にはエラーハンドリングのための専用の構文があつた方が多くの場面で便利
Optionに限れば、C#やTS, Kotlin などにもそういうものがある
Resultも含めるとRustの?演算子はバランスがいいと思う
(これを monadic bind と説明せず、エラーの場合の早期リターンとして説明してる点も含めて)
535デフォルトの名無しさん
2025/04/20(日) 12:25:33.06ID:q3Yzhl/7 構造ってのはコタツから出なくても向こうから勝手に押しかけてくる
たとえばCではOOPができないって言って、本当のOOP探しをする必要は全くない
それと同じ
たとえばCではOOPができないって言って、本当のOOP探しをする必要は全くない
それと同じ
536デフォルトの名無しさん
2025/04/20(日) 12:55:01.09ID:9sumJC+c 錆みたいな名前なんとかならなかったのかね
システムに使うには縁起が良くない
システムに使うには縁起が良くない
537デフォルトの名無しさん
2025/04/20(日) 13:52:39.43ID:q3Yzhl/7 とりあえず占い師をクビにして、祟りが起きたらその時に考える
これが効率化だ
これが効率化だ
538デフォルトの名無しさん
2025/04/20(日) 14:06:28.40ID:Y0fKmU/t 名前の由来もちゃんとあるから調べたらいい
539デフォルトの名無しさん
2025/04/20(日) 14:07:44.47ID:Y0fKmU/t 枯れたものでシステム作ろうとするくせに生意気な
お似合いの名前の由来じゃん
お似合いの名前の由来じゃん
540デフォルトの名無しさん
2025/04/20(日) 14:13:49.78ID:RiHDJnuQ 糖分多め
541デフォルトの名無しさん
2025/04/20(日) 15:51:30.56ID:9sumJC+c ・さび菌よる多くの病害はさび病と呼ばれ、農業・林業において重大な病害を含む
・サビの進行度によっては、チェーンリング強度低下、チェーン張力の低下、チェーン断裂のリスクなどの可能性がある
草
・サビの進行度によっては、チェーンリング強度低下、チェーン張力の低下、チェーン断裂のリスクなどの可能性がある
草
542デフォルトの名無しさん
2025/04/20(日) 15:53:22.75ID:deXhde/G 鉄は表面だけ錆びさせることで破壊が起きるような深い錆びを起こさないように出来るのだ
543デフォルトの名無しさん
2025/04/20(日) 16:27:55.26ID:2QlbS353 このスレに巣食っている信者が喧伝しているような「メモリ安全でコンパイルが通れば
バグがないことが保障される」信頼性が高い言語だから名前はTrustだ!とドヤ顔で言い切る
自信が開発者にはなかったんだろうな。
バグがないことが保障される」信頼性が高い言語だから名前はTrustだ!とドヤ顔で言い切る
自信が開発者にはなかったんだろうな。
544デフォルトの名無しさん
2025/04/20(日) 16:32:59.12ID:LRWB5aQw 開発当初にそこまで自信ないだろ
1人で作り出したのでしょ
1人で作り出したのでしょ
545デフォルトの名無しさん
2025/04/20(日) 16:35:34.71ID:LRWB5aQw ロジックのバグは開発者の責任だからね
あとCよりマシと言う所が抜けてる
Cの地獄はやったものしかわからないだろ、あれから比べたら劇的に楽に違いない
あとCよりマシと言う所が抜けてる
Cの地獄はやったものしかわからないだろ、あれから比べたら劇的に楽に違いない
546デフォルトの名無しさん
2025/04/20(日) 16:38:39.63ID:LRWB5aQw フレームワーク上でビジネスロジックしか組んでないアプリレベルの開発者には無用の長物なんだよ。
業界的にはアプリレベル開発者が80%だろうし、違いの分かり恩恵がある開発者は20%だからね
業界的にはアプリレベル開発者が80%だろうし、違いの分かり恩恵がある開発者は20%だからね
547デフォルトの名無しさん
2025/04/20(日) 17:07:39.21ID:C+zI7Cbk このスレの今盛り上がってるこのお題
プログラミングのお題スレ Part22
https://mevius.5ch.net/test/read.cgi/tech/1691038333/712
Rustだと桁違いに速く解けるみたいだけど
これは言語の差なの?
プログラミングのお題スレ Part22
https://mevius.5ch.net/test/read.cgi/tech/1691038333/712
Rustだと桁違いに速く解けるみたいだけど
これは言語の差なの?
548デフォルトの名無しさん
2025/04/20(日) 17:59:03.47ID:q3Yzhl/7 ハードウェアを固定して言語を色々変えるなら
ハードの差には絶対にならない
ハードの差には絶対にならない
549デフォルトの名無しさん
2025/04/20(日) 20:56:57.67ID:3sgfyr+I550デフォルトの名無しさん
2025/04/20(日) 22:09:40.01ID:q3Yzhl/7 課題を変えたら課題の差が計測されてしまう
既に、良い課題と悪い課題があるみたいな空気になりかけている
既に、良い課題と悪い課題があるみたいな空気になりかけている
551デフォルトの名無しさん
2025/04/20(日) 22:12:48.98ID:C+zI7Cbk >>549
他の言語で速いプログラムが出てこないのはなぜなのかなと思って
他の言語で速いプログラムが出てこないのはなぜなのかなと思って
552デフォルトの名無しさん
2025/04/20(日) 22:45:33.70ID:zDf/Vo48 速度に固執してる奴がたまたまRust信者だっただけだな
まだアルゴリズムの改善でオーダーが変わっている段階であり、細かい最適化とかの次元ではない
遅くない言語であれば十分
まだアルゴリズムの改善でオーダーが変わっている段階であり、細かい最適化とかの次元ではない
遅くない言語であれば十分
553デフォルトの名無しさん
2025/04/20(日) 22:51:31.25ID:ACqBfiTY clangでも同じにできるよね
どちらもLLVM
どちらもLLVM
554デフォルトの名無しさん
2025/04/20(日) 22:53:22.13ID:BStMFpBy rustが本当に速かったらもっと普及したと思う
555デフォルトの名無しさん
2025/04/20(日) 22:57:10.24ID:ACqBfiTY CやFORTRANより速くはならんからな
556デフォルトの名無しさん
2025/04/20(日) 23:05:02.71ID:3sgfyr+I こういうミクロなベンチマークは速度を追求すると最終的には拡張命令等によるハードウェア依存の最適化に行き着くから、Rustに勝ち目はない
一応Rustコンパイラを使い続けながら最速に到達することは可能かもしれないが、もはやRustとは呼べない何かになる
一応Rustコンパイラを使い続けながら最速に到達することは可能かもしれないが、もはやRustとは呼べない何かになる
557デフォルトの名無しさん
2025/04/20(日) 23:16:39.25ID:fDFjIRaB インラインでsseして頑張ろう
558デフォルトの名無しさん
2025/04/20(日) 23:24:22.62ID:R/7Xf2QC559デフォルトの名無しさん
2025/04/20(日) 23:37:04.43ID:fDFjIRaB 知ってる知ってる
560デフォルトの名無しさん
2025/04/20(日) 23:51:55.62ID:cSEBA2fB お題スレでノッてくれる人が少ないからってこっちに持ってくんなよって一瞬思いかけたけど
ある意味最初からこっちでやるべきだった話かもしれん
ある意味最初からこっちでやるべきだった話かもしれん
561デフォルトの名無しさん
2025/04/21(月) 00:30:33.79ID:7JbXAl3S Rustを叩きたいならばRustのコードより速く解を出す別言語のコードを実際に示さないとな
562デフォルトの名無しさん
2025/04/21(月) 00:34:48.87ID:i9cdiUcL ビット演算とか負けそう
563デフォルトの名無しさん
2025/04/21(月) 02:27:05.65ID:+vt/r7vG ローテートとか多倍長計算出来るのけ?
564デフォルトの名無しさん
2025/04/21(月) 12:26:55.06ID:M3LNhDSR 調べたらRustはなんでもあるんだな
reverse_bits
count_ones
leading_ones
trailing_ones
rotate_left
rotate_elements_left
carrying_add
carrying_mul
carrying_mul_add
widening_mul
reverse_bits
count_ones
leading_ones
trailing_ones
rotate_left
rotate_elements_left
carrying_add
carrying_mul
carrying_mul_add
widening_mul
565デフォルトの名無しさん
2025/04/21(月) 14:43:44.89ID:Yit9TUrJ 直交性は無いよ
566デフォルトの名無しさん
2025/04/21(月) 18:14:51.15ID:kMaH7s+f どれについて何の直交性が必要とされてる話だろうか。
全てに該当するレジスタの直交性関連の話だと、制限のあるCISCでは必要があればmov命令の前置きコードが生成される場合もあるかもしれないが、Rustの変数や式で気にする必要はないか。唯一型について、ビットのカウント数/シフト数やilog/power指数はどの型に対してもu32型となるくらい。
全てに該当するレジスタの直交性関連の話だと、制限のあるCISCでは必要があればmov命令の前置きコードが生成される場合もあるかもしれないが、Rustの変数や式で気にする必要はないか。唯一型について、ビットのカウント数/シフト数やilog/power指数はどの型に対してもu32型となるくらい。
567デフォルトの名無しさん
2025/04/21(月) 22:52:58.94ID:8M5kDrcZ >>552
じゃあRust以外の言語でゼロから作ってみせてよ
じゃあRust以外の言語でゼロから作ってみせてよ
568デフォルトの名無しさん
2025/04/21(月) 23:26:48.36ID:+8SUWDlR しかし、裁判所の言う事を聞かない人間が世界中に出没しているから
法廷では、物的証拠が、っていうの時代錯誤だよな
法廷では、物的証拠が、っていうの時代錯誤だよな
569デフォルトの名無しさん
2025/04/21(月) 23:35:15.33ID:p/ZevgM0 ひろゆきの悪口か
いいぞもっとやれ
いいぞもっとやれ
570デフォルトの名無しさん
2025/04/21(月) 23:36:25.44ID:p/ZevgM0571デフォルトの名無しさん
2025/04/21(月) 23:57:43.20ID:Aow9BV7f そのRustのコードはCで書けば速くなるような部分もなさそ
572デフォルトの名無しさん
2025/04/22(火) 00:16:50.91ID:ZQ5oZMZY >>571
興味があるならハイパフォーマンスコンピューティングという魔界を覗いてくるといい
実はあまり言語は関係なくてRustで同じことができないわけでもないが、Rustの抽象化云々とはかけ離れた異次元の世界だ
興味があるならハイパフォーマンスコンピューティングという魔界を覗いてくるといい
実はあまり言語は関係なくてRustで同じことができないわけでもないが、Rustの抽象化云々とはかけ離れた異次元の世界だ
573デフォルトの名無しさん
2025/04/22(火) 00:26:30.67ID:8hwhaSPF HPCのライブラリなんかなんの言語で書かれていても良いけど、インストールだけはCargoで楽にやりたいものだ
574デフォルトの名無しさん
2025/04/22(火) 00:35:43.68ID:d/X8b3ZB アーキテクチャの性能を引き出すためのチューニングというのは高速化できるパターンの蓄積だったりするんだよ。
いいかんじのアルゴリズムを使えば全部綺麗に高速になるなんていうシンプルな世界ではない。
コンパイラは単純に巨大な辞書を持ってる。
分量が強い。
投資が多いほうが強い。
同程度に活発なら歴史が長いほうが強い。
素人がちょっと画期的なことを思いついたくらいでは覆せない物量の世界。
いいかんじのアルゴリズムを使えば全部綺麗に高速になるなんていうシンプルな世界ではない。
コンパイラは単純に巨大な辞書を持ってる。
分量が強い。
投資が多いほうが強い。
同程度に活発なら歴史が長いほうが強い。
素人がちょっと画期的なことを思いついたくらいでは覆せない物量の世界。
575デフォルトの名無しさん
2025/04/22(火) 00:38:12.62ID:9wLhNa5g HPCのライブラリがなんで書かれていても良いと言うのはどういう意味なのか
利用する側として現状c,c++でしか使えない物が主流だと思うんだけど
CUDAカーネルもrustで書けるようだけど今のところ利点がない
利用する側として現状c,c++でしか使えない物が主流だと思うんだけど
CUDAカーネルもrustで書けるようだけど今のところ利点がない
576デフォルトの名無しさん
2025/04/22(火) 00:50:02.20ID:F18K4UsR 入出力用言語ということか
577デフォルトの名無しさん
2025/04/22(火) 08:24:52.50ID:YssDApDh Rustは清書用
578デフォルトの名無しさん
2025/04/22(火) 09:00:24.01ID:S18G88V1 HPCは、行指向のデータ構造、動的アロケーションを避ける、データ並列、といった性質があるのでRustと対極なんだよね
Rustがそれらを苦手とするわけではないけど、特に強みがない
Rustがそれらを苦手とするわけではないけど、特に強みがない
579578
2025/04/22(火) 09:02:46.96ID:S18G88V1 失礼、列指向の間違い
580デフォルトの名無しさん
2025/04/22(火) 10:00:51.24ID:5HMV43CK Rustで作られたOSとかwebブラウザとかないの?
581デフォルトの名無しさん
2025/04/22(火) 10:01:41.11ID:lO2L/Kdb HPCとRustという別の階層のものを比較してるのは滑稽だ。
HPCは大昔からあるものであって、システム構成もGPU時代になってどんどん変わっていってるし、 使用言語もFortranから最近はPythonまであり、そしてRustでの試みもある。
HPCは大昔からあるものであって、システム構成もGPU時代になってどんどん変わっていってるし、 使用言語もFortranから最近はPythonまであり、そしてRustでの試みもある。
582デフォルトの名無しさん
2025/04/22(火) 10:38:41.79ID:AOKbZsXj クリエイターと消費者がよく比較されるのも滑稽すぎてウンザリする
583デフォルトの名無しさん
2025/04/22(火) 12:00:21.29ID:suLLda9X 比較のレイヤーがごっちゃになってカブトムシとライオンを比較するような意味不明な記事が投稿されるのが問題
日本語特有の課題なんだけどね。外国語だったら比較対象が厳密だからこんな比較はされない
外人に生まれたかった
日本語特有の課題なんだけどね。外国語だったら比較対象が厳密だからこんな比較はされない
外人に生まれたかった
584デフォルトの名無しさん
2025/04/22(火) 12:04:09.96ID:VDU9dGyn585デフォルトの名無しさん
2025/04/22(火) 12:21:14.17ID:lkDatlsU >>584
Chromeもこの前のバージョンからRust
Chromeもこの前のバージョンからRust
586デフォルトの名無しさん
2025/04/22(火) 14:56:33.88ID:CQcCOa17587デフォルトの名無しさん
2025/04/22(火) 15:01:02.62ID:z9I6mhsO >>584
USO-800
USO-800
588デフォルトの名無しさん
2025/04/22(火) 23:38:16.08ID:gOfYIqHC ほとんどの分野でRust化が進んでいるといってもOSとブラウザは巨大すぎてRustへの部分置き換えの領域が広がっていく感じだろう
589デフォルトの名無しさん
2025/04/22(火) 23:40:56.68ID:uv87i4ng LinuxはカーネルモジュールがRustでも作れるようになっただけね
ごく一部の置き換えが始められるかどうかってところだけ
ごく一部の置き換えが始められるかどうかってところだけ
590デフォルトの名無しさん
2025/04/23(水) 00:32:40.73ID:fW7CNVPb なんかい同じ話しとんねんきみら
591デフォルトの名無しさん
2025/04/23(水) 07:26:01.78ID:aWedmqOO 現状でLinuxやFirefoxのコードベース中のRustの割合ってどれくらいなん?
592デフォルトの名無しさん
2025/04/23(水) 07:40:34.19ID:Uy1fHQTV そろそろChromeの方がFirefoxよりRustの割合高くなってるだろ
593デフォルトの名無しさん
2025/04/23(水) 07:45:28.98ID:FseCbehs PythonでもRust製のuvが今後天下を取りそうな流れになりつつある
爆速すぎる
爆速すぎる
594デフォルトの名無しさん
2025/04/23(水) 07:50:08.26ID:yb1dQj0Y CPythonのRust版まだー?
595デフォルトの名無しさん
2025/04/23(水) 08:11:24.03ID:l+v1pS2m >>591
%1ぐらいじゃね
%1ぐらいじゃね
596デフォルトの名無しさん
2025/04/23(水) 08:34:59.19ID:Uy1fHQTV uvは開発速度が異常に速いな
どうなってるんだ?
どうなってるんだ?
597デフォルトの名無しさん
2025/04/23(水) 08:51:58.21ID:P67C9oqU uvが速いのはパッケージをインストールする際のダウンロードとコピーを避けてるからで、別にRustだから速いわけではないんだけど、
Rustの速そうなイメージを利用してPythonに群がる雰囲気コーダー達にうまく売り込んだよね
シングルバイナリだから細々とスクリプトを読むより起動時のロードが速いくらいの効果はあるかもしれんが
Rustの速そうなイメージを利用してPythonに群がる雰囲気コーダー達にうまく売り込んだよね
シングルバイナリだから細々とスクリプトを読むより起動時のロードが速いくらいの効果はあるかもしれんが
598デフォルトの名無しさん
2025/04/23(水) 09:25:47.00ID:4v1FSs9u Rustが速いはCが速いというのと同じぐらい実装依存でしょ
正しくはuvの実装が良くて実行速度が速いだけじゃん
正しくはuvの実装が良くて実行速度が速いだけじゃん
599デフォルトの名無しさん
2025/04/23(水) 09:26:47.77ID:yoO2Q6CW600デフォルトの名無しさん
2025/04/23(水) 09:42:39.16ID:FBWMxycZ >>598
そう、だからRust最強したいだけの層はuvのようなアーキテクチャの根本的な見直しではなく単純な書き換えばかりに傾倒する
Rust界隈はトランスレートばかりやってて何も生み出してないと揶揄されることが多いが、その原因はまさにこれ
(念を押すが、uvはそれには該当しない)
そう、だからRust最強したいだけの層はuvのようなアーキテクチャの根本的な見直しではなく単純な書き換えばかりに傾倒する
Rust界隈はトランスレートばかりやってて何も生み出してないと揶揄されることが多いが、その原因はまさにこれ
(念を押すが、uvはそれには該当しない)
601デフォルトの名無しさん
2025/04/23(水) 10:37:52.74ID:PSneroc7 >>597
596は開発速度の話だろ
596は開発速度の話だろ
602デフォルトの名無しさん
2025/04/23(水) 11:18:25.26ID:7LPwNZei Rustは開発効率が良いもんな
603デフォルトの名無しさん
2025/04/23(水) 11:41:00.34ID:nIc2Gxfq uvの人がシゴデキで暇なだけじゃね
604デフォルトの名無しさん
2025/04/23(水) 11:43:34.82ID:nbgWWj+a あの人普段何して収入を得ているんだろうな
605デフォルトの名無しさん
2025/04/23(水) 11:47:44.34ID:uqhnESs+ アーキテクチャを変えればアーキテクチャの差が評価される
言語以外何も変えなければ言語の差が評価される
言語以外何も変えなければ言語の差が評価される
606デフォルトの名無しさん
2025/04/23(水) 11:50:43.26ID:FBWMxycZ uvの開発元はスタートアップ企業としてVCから多額の出資を受けてるから開発者の生活は安泰
いずれビッグテックへの買収でイグジットか、Anacondaみたいにエンタープライズ向けのサポートで金取るんだろう
いずれビッグテックへの買収でイグジットか、Anacondaみたいにエンタープライズ向けのサポートで金取るんだろう
607デフォルトの名無しさん
2025/04/23(水) 11:52:11.03ID:nbgWWj+a uvもそのうちAnacondaみたいになっちゃうってコト!?
608デフォルトの名無しさん
2025/04/23(水) 11:52:38.07ID:nIc2Gxfq おお、会社なんだ
CLIツールで企業できるとか夢のようだな
CLIツールで企業できるとか夢のようだな
609デフォルトの名無しさん
2025/04/23(水) 12:12:50.41ID:FBWMxycZ610デフォルトの名無しさん
2025/04/23(水) 12:16:36.99ID:nIc2Gxfq デファクトになったらボランティアベースでも回るかね
611デフォルトの名無しさん
2025/04/23(水) 20:50:51.07ID:uqhnESs+ ディール だけ で回るかどうかの方が知りたい
612デフォルトの名無しさん
2025/04/23(水) 21:20:01.21ID:TDm/u4ft >>609
uvはRustで書かれたオープンソースでライセンスはApache2&MIT
つまり自由にフォーク可能
したがってuvでサポート契約サービスはありえても
uvを使用料でお金を取る可能性は低く
もしそうなれば有志たちがuvをフォークして無料提供を続けるパターンとなる
したがってuvを気にせずに使っても問題ない
uvはRustで書かれたオープンソースでライセンスはApache2&MIT
つまり自由にフォーク可能
したがってuvでサポート契約サービスはありえても
uvを使用料でお金を取る可能性は低く
もしそうなれば有志たちがuvをフォークして無料提供を続けるパターンとなる
したがってuvを気にせずに使っても問題ない
613デフォルトの名無しさん
2025/04/23(水) 21:38:33.95ID:WPvg2tW3614デフォルトの名無しさん
2025/04/23(水) 21:40:20.32ID:WPvg2tW3 GPTに聞いた答え
実際に「Apache 2.0で公開 → 後にクローズドライセンスで商用展開」する事例はかなり多い
実際に「Apache 2.0で公開 → 後にクローズドライセンスで商用展開」する事例はかなり多い
615デフォルトの名無しさん
2025/04/23(水) 21:45:14.93ID:TDm/u4ft もちろんライセンス変更後はフォークできないけど
ライセンス変更前はフォークできるためそれは問題とならない
ライセンス変更前はフォークできるためそれは問題とならない
616デフォルトの名無しさん
2025/04/23(水) 21:46:24.20ID:PSneroc7617デフォルトの名無しさん
2025/04/23(水) 21:49:14.92ID:WPvg2tW3 企業向けは有料でクローズドで個人向けはオープンのままに変わることもよくある話
618デフォルトの名無しさん
2025/04/23(水) 21:53:14.31ID:uqhnESs+ 何言ってんだいニューメディア
紙の本はみんな有料さ
紙の本はみんな有料さ
619デフォルトの名無しさん
2025/04/23(水) 21:54:56.18ID:TDm/u4ft620デフォルトの名無しさん
2025/04/23(水) 21:58:30.25ID:WPvg2tW3 実際開発してるのはその団体でソースがあってもそれからフォークして新たに開発しながら使うのは少ない
mariaDBとかみたいに開発者が分裂してるなら開発者がフォーク先にも残るけど
mariaDBとかみたいに開発者が分裂してるなら開発者がフォーク先にも残るけど
621デフォルトの名無しさん
2025/04/23(水) 22:20:06.96ID:gHP82hJN これまでの有力筆頭だったRyeもuvに統合となったし
Pythonで最強静的解析ツールのRuffもuvと同じところで作られていてRust製だよ
Pythonで最強静的解析ツールのRuffもuvと同じところで作られていてRust製だよ
622デフォルトの名無しさん
2025/04/23(水) 22:26:23.93ID:P67C9oqU クラウドサービスは有償クローズドでCLIはOSSのままというのはよくあるパターン
自然に課金に誘導できOSS乞食も納得させやすい合理的な形なのだけど、
uvやruffって今のところ囲い込みというより既存のPythonツールセットを一部置き換える形で容易に導入できることを売りにしてるから、
クラウドサービスと統合されたPython開発スイートみたいな方向へ行くのはユーザー離れを招きそうだね
自然に課金に誘導できOSS乞食も納得させやすい合理的な形なのだけど、
uvやruffって今のところ囲い込みというより既存のPythonツールセットを一部置き換える形で容易に導入できることを売りにしてるから、
クラウドサービスと統合されたPython開発スイートみたいな方向へ行くのはユーザー離れを招きそうだね
623デフォルトの名無しさん
2025/04/23(水) 22:45:26.71ID:WPvg2tW3 そこに資金回収のフロンティアが残されている
624デフォルトの名無しさん
2025/04/23(水) 22:51:38.64ID:Pf4IRGe7 Ruffもuvもgithub上でコミュニティによってIssue/Pullベースで開発されているのを知らない無知なやつが有料化されるぞ!とか見当外れな批判していてワロタ
625デフォルトの名無しさん
2025/04/23(水) 22:52:58.24ID:fW7CNVPb 複おじ頻出単語集
となる
となる
626デフォルトの名無しさん
2025/04/23(水) 22:56:52.19ID:b6DagpWu つまり、uvの作者は霞を食べて生きてるってことでいいの?
627デフォルトの名無しさん
2025/04/23(水) 23:08:49.69ID:N+tdJcQb 開発チームにはripgrep, bat, hyperfine, maturinの開発者にCPythonのコア開発者たちがいると書かれてるな
つまりRust&Pythonの開発者たちの本流だ
>>626
企業がサポートをお願いしたい時の筆頭候補になる
つまりRust&Pythonの開発者たちの本流だ
>>626
企業がサポートをお願いしたい時の筆頭候補になる
628デフォルトの名無しさん
2025/04/23(水) 23:09:00.88ID:uqhnESs+ いつの価値観で断罪したいのか知らんけど、どうせ現在の価値観ではOKだろ
629デフォルトの名無しさん
2025/04/23(水) 23:23:47.07ID:aWedmqOO630デフォルトの名無しさん
2025/04/23(水) 23:33:07.28ID:ASKXB7Kt PythonのRuffとuvのAstralはサイトのトップページにオープンを理念とすると掲げているとともに信頼があり多くの有能開発者たちが協力しているプロジェクト
631デフォルトの名無しさん
2025/04/24(木) 01:17:00.64ID:2X7oX7JP Don’t be evilとか言ってた企業が世界一evilな企業になるみたいな話だね
632デフォルトの名無しさん
2025/04/24(木) 01:49:00.09ID:x6sR980L anacondaがやばすぎて疑心暗鬼になってる人たち
俺も一員
俺も一員
633デフォルトの名無しさん
2025/04/24(木) 02:13:25.73ID:pnRjJMwb 企業としてマネタイズする場合、ソフト自体を有償化する (無償版と並列に運用する体制) パターンと付随するサービスのほうで稼ぐパターンとその会わせ技のパターンがある。
uv はパッケージマネージャなわけだからエンタープライズ向けに精査されたパッケージリポジトリの提供とかで商売になるんじやないかなぁ。
uv はパッケージマネージャなわけだからエンタープライズ向けに精査されたパッケージリポジトリの提供とかで商売になるんじやないかなぁ。
634デフォルトの名無しさん
2025/04/24(木) 02:51:42.67ID:/mu+RrCU OS依存をおそれないC/C++はコンパイラもライブラリもOSで管理するから問題ない
自称OS非依存の方がかえって邪悪になるってことかな
自称OS非依存の方がかえって邪悪になるってことかな
635デフォルトの名無しさん
2025/04/24(木) 03:01:04.69ID:TkOo4M39 OS というかディストリビューションのパッケージマネージャに乗っかるのが C/C++ の伝統ではあるな。
ただ、本来は実行環境の管理に使うべきシステムだから開発環境の管理に使うのは微妙に行き届かない面もあり、事情がややこしくなる部分もある。
ただ、本来は実行環境の管理に使うべきシステムだから開発環境の管理に使うのは微妙に行き届かない面もあり、事情がややこしくなる部分もある。
636デフォルトの名無しさん
2025/04/24(木) 08:59:09.87ID:0duaLY4u >>630
Astralが信頼できるかどうかは関係ない
VCから貰った金が底を尽きたら会社は即潰れるし、貰った金はいずれ100倍にして返すよう常に期限付きでプレッシャーをかけられる
そして見通しが厳しくなれば最終的にVCは事業の持続的成長を放棄した強引な方法で回収にかかる
dockerやanacondaがいい例だ
これは善い悪いという話ではなくスタートアップ企業の構造上の宿命なの
Astralが信頼できるかどうかは関係ない
VCから貰った金が底を尽きたら会社は即潰れるし、貰った金はいずれ100倍にして返すよう常に期限付きでプレッシャーをかけられる
そして見通しが厳しくなれば最終的にVCは事業の持続的成長を放棄した強引な方法で回収にかかる
dockerやanacondaがいい例だ
これは善い悪いという話ではなくスタートアップ企業の構造上の宿命なの
637デフォルトの名無しさん
2025/04/24(木) 09:35:38.68ID:pnRjJMwb この手のスタートアップは最終的に大手に買われるのがゴールとなるのが一般的だ。
企業の信頼性というのは理念ではなく企業体力 (資本力) で測られる。
個人ユーザ程度の些細なところでマネタイズしなくて良いくらいに資本がある会社が運用してくれるのがユーザとしては安心できるシナリオと言える。
オープンソースの一大拠点である Github だってマイクロソフト傘下なんだぞ。
企業の信頼性というのは理念ではなく企業体力 (資本力) で測られる。
個人ユーザ程度の些細なところでマネタイズしなくて良いくらいに資本がある会社が運用してくれるのがユーザとしては安心できるシナリオと言える。
オープンソースの一大拠点である Github だってマイクロソフト傘下なんだぞ。
638デフォルトの名無しさん
2025/04/24(木) 13:31:41.47ID:ndm7u60W LibreOfficeのスレかと思った
639デフォルトの名無しさん
2025/04/24(木) 14:34:38.61ID:8pJUwD28 MSになってgithubから脱出したOSSもあるけどな
640デフォルトの名無しさん
2025/04/24(木) 17:58:43.83ID:XhsO3LV3 >>632
その件があったからuvとRuffのAstralはオープンを方針として明記していて
https://astral.sh/about
オープンさを大切にしてオープンソースで寛容なライセンスを信念として掲げている
だから開発コミュニティに協力してくれる人たちが集まってる
その件があったからuvとRuffのAstralはオープンを方針として明記していて
https://astral.sh/about
オープンさを大切にしてオープンソースで寛容なライセンスを信念として掲げている
だから開発コミュニティに協力してくれる人たちが集まってる
641デフォルトの名無しさん
2025/04/24(木) 18:41:31.45ID:0duaLY4u 理念がどうあれ、事実としてVCから出資を受けてしまっている以上、必ずVCは利益を目的として意思決定に介入する
もし高尚な理念を本当にこの先守っていきたいなら、VCへの株式譲渡などせず財団方式で運営すべきだった
君の信心に対してとやかく言う筋合いはないが、君が信じているのは果たして誰なのか?は考えてみたほうがいいよ
もし高尚な理念を本当にこの先守っていきたいなら、VCへの株式譲渡などせず財団方式で運営すべきだった
君の信心に対してとやかく言う筋合いはないが、君が信じているのは果たして誰なのか?は考えてみたほうがいいよ
642デフォルトの名無しさん
2025/04/24(木) 20:59:08.21ID:/mu+RrCU 理念が期待通りに機能しないのは人間が悪いんだよ
理念が撃つのではない 人が撃つのだ
理念が撃つのではない 人が撃つのだ
643デフォルトの名無しさん
2025/04/24(木) 22:09:03.03ID:xYJ9bO0b 人間を襲ったクマを駆除するのか生け捕りにして山に還すのかどっちが正しいんか
644デフォルトの名無しさん
2025/04/24(木) 22:13:28.49ID:B7M2FwrP Astralって今はカネとってる商品一つもないの?
645デフォルトの名無しさん
2025/04/24(木) 22:38:38.78ID:/mu+RrCU646デフォルトの名無しさん
2025/04/25(金) 19:05:53.27ID:fabJEIST 中立でなくて中庸では?
647デフォルトの名無しさん
2025/04/25(金) 20:10:42.17ID:FfAt1dci >>643
検討の余地はない
検討の余地はない
648デフォルトの名無しさん
2025/04/25(金) 20:50:10.25ID:DbDcSEbW 目の前に6億積まれてこの金で開発に集中していいよと言われたら断れないよね
創業者はSentryのシンパらしいからそのうちクラウドサービスでマネタイズを試みるんじゃないかな
ビッグテックが欲しがるのは基本的にプラットフォームであり、コードそのものにはあまり価値を認めないから、まずはクラウドを成功されられるか次第だろうな
創業者はSentryのシンパらしいからそのうちクラウドサービスでマネタイズを試みるんじゃないかな
ビッグテックが欲しがるのは基本的にプラットフォームであり、コードそのものにはあまり価値を認めないから、まずはクラウドを成功されられるか次第だろうな
649デフォルトの名無しさん
2025/04/25(金) 23:36:31.47ID:9WzjZMyy なるほど、合法な6億も違法な6億も、返せ返せと言われる点ではどっちもどっちだ
650デフォルトの名無しさん
2025/04/25(金) 23:39:57.43ID:v7JcTsu2 Python方面でも最近の良いものは全てRust製なんだね
651デフォルトの名無しさん
2025/04/26(土) 00:28:58.67ID:lxu0QMrc uv以外ある?
652デフォルトの名無しさん
2025/04/26(土) 00:29:47.79ID:lxu0QMrc polarsだっけpandas的なやつ
653デフォルトの名無しさん
2025/04/26(土) 00:38:28.74ID:Ov7+kHPs qiskitのrustが進んでる
654デフォルトの名無しさん
2025/04/26(土) 00:38:45.64ID:Ov7+kHPs qiskitのrust化が進んでる
655デフォルトの名無しさん
2025/04/26(土) 00:48:53.01ID:lxu0QMrc 量子コンピュティングか。何も分からん
656デフォルトの名無しさん
2025/04/26(土) 08:40:09.93ID:c5NITHBq Python以外、例えばRubyのライブラリをRustで書くといった動きってあるの?
657デフォルトの名無しさん
2025/04/26(土) 08:49:32.69ID:MQn0RGBc RubyだとJITコンパイラ(YJIT)がRustで書かれてるね
658デフォルトの名無しさん
2025/04/26(土) 09:38:41.16ID:iRBbkycD 完全にグルー言語と割り切って使われているPythonと違って、Rubyって未だに絶頂期の変なプライドを引きずってる人が多いからRustの採用は広まらなそう
yjitみたいに元々Cで書かれている部分を置き換える分には抵抗がないだろうけども
yjitみたいに元々Cで書かれている部分を置き換える分には抵抗がないだろうけども
659デフォルトの名無しさん
2025/04/26(土) 10:00:27.35ID:G2uFKMwF rubyってmatzがcかc++で書いてたんでしょ?今のところ書き換える意味はないよ
仮に替えるとしてコンパイラを書き換える理由はなんだ?
rustで書いてみたかったとか
仮に替えるとしてコンパイラを書き換える理由はなんだ?
rustで書いてみたかったとか
660デフォルトの名無しさん
2025/04/26(土) 10:07:34.20ID:iRBbkycD yjitはMRIと比較して普通に速い
もちろんRustだから速いのではなく、元々の実装がヘボいだけ
もちろんRustだから速いのではなく、元々の実装がヘボいだけ
661デフォルトの名無しさん
2025/04/26(土) 10:29:27.39ID:pbPDl6lv ゆるゆるRubyをRustで描き治すなんて発狂しそう
662デフォルトの名無しさん
2025/04/26(土) 10:59:05.36ID:4hz3gxa1 Pythonにしても元々Cで書かれていたライブラリのコア実装をRustに切り替えてるだけで、PythonからRustになったりはあまりしてないと思うが…
Rubyの場合pure Rubyなライブラリが多くてRustにできる余地が少ないイメージだけど実際どうなんだろうね
Rubyの場合pure Rubyなライブラリが多くてRustにできる余地が少ないイメージだけど実際どうなんだろうね
663デフォルトの名無しさん
2025/04/26(土) 11:35:09.77ID:OmZIap2o 理念をどうこう言っても理念通りにいかないのも普通のこと。
現実はトレードオフの連続で、微妙な判断の連続を繰り返したら汚くもなってくる。
「綺麗なのは使われてないものだけ」という格言もある。
不恰好なのは現実の道具として使われてきた証とも言える。
ただ、現実の事情は変わっていくからね。
昔の現実に合わせたものが今の事情にマッチしなくなっていく。
プログラミング言語だってたまには新しいものが現れて過去をリセットしつつまた汚く (しかし現実に都合よく) なっていくんだろう。
現実はトレードオフの連続で、微妙な判断の連続を繰り返したら汚くもなってくる。
「綺麗なのは使われてないものだけ」という格言もある。
不恰好なのは現実の道具として使われてきた証とも言える。
ただ、現実の事情は変わっていくからね。
昔の現実に合わせたものが今の事情にマッチしなくなっていく。
プログラミング言語だってたまには新しいものが現れて過去をリセットしつつまた汚く (しかし現実に都合よく) なっていくんだろう。
664デフォルトの名無しさん
2025/04/26(土) 11:35:21.29ID:tLquDHIY 改善点無しで書き換えるのはやらん方が良い
665デフォルトの名無しさん
2025/04/26(土) 11:37:10.07ID:Opf+QDvF 多神教、二元論はピュアじゃないとか、データさえあればプログラミングは不要とかいう一元論は今でも絶頂期
666デフォルトの名無しさん
2025/04/26(土) 12:05:07.12ID:EVE9ATPb 実際、業務システムならDBが全て
ドメイン駆動とかほざくアホは無視し、Postgres上で徹底的に業務ルールを定義するのが最善
ドメイン駆動とかほざくアホは無視し、Postgres上で徹底的に業務ルールを定義するのが最善
667デフォルトの名無しさん
2025/04/26(土) 13:13:44.82ID:8siE2IDQ 結局Rustはなにならできるの?
668デフォルトの名無しさん
2025/04/26(土) 13:33:53.91ID:KvigRu5f 全部出来るでしょ。ただC並みに細かくなるので、業務アプリレベルのものは、GC付き業務フレームワークのPythonやrubyでいいよ
669デフォルトの名無しさん
2025/04/26(土) 13:34:17.50ID:KvigRu5f アプリ用DSLか
670デフォルトの名無しさん
2025/04/26(土) 13:44:16.81ID:N0vsCMMC >>667
Rubyを高速に動かすために不可欠なYJITがRust製
Rubyを高速に動かすために不可欠なYJITがRust製
671デフォルトの名無しさん
2025/04/26(土) 14:26:52.65ID:EVE9ATPb >>667
主に、有効であることが既に確認されている既存のソリューションの高速化に用いられる。
新規性の高い未確立なソリューションの開発に用いられることは少ない。
Rustは信頼性とパフォーマスに優れている一方で、柔軟性が乏しいため試行錯誤の必要な開発には向かないと思われているのだろう。
もちろん異論はあるだろうが、実態としてな。
主に、有効であることが既に確認されている既存のソリューションの高速化に用いられる。
新規性の高い未確立なソリューションの開発に用いられることは少ない。
Rustは信頼性とパフォーマスに優れている一方で、柔軟性が乏しいため試行錯誤の必要な開発には向かないと思われているのだろう。
もちろん異論はあるだろうが、実態としてな。
672デフォルトの名無しさん
2025/04/26(土) 14:42:28.20ID:N0vsCMMC >>671
それは真逆だ
Rustでの開発は柔軟性が高いため
新たな設計による機能強化や高速化などにRustが用いられている
一方で単なる既存の書き換えだけではどの言語間でも効果は限られる
スクリプト言語からRustへ移植する場合でも少なくとも中核部分はそのままよりも設計し直した方がより高速化と省メモリに繋がる
それは真逆だ
Rustでの開発は柔軟性が高いため
新たな設計による機能強化や高速化などにRustが用いられている
一方で単なる既存の書き換えだけではどの言語間でも効果は限られる
スクリプト言語からRustへ移植する場合でも少なくとも中核部分はそのままよりも設計し直した方がより高速化と省メモリに繋がる
673デフォルトの名無しさん
2025/04/26(土) 14:59:40.76ID:KvigRu5f CとGC言語両方経験者ならすぐ分かるような質問多いね
精進頑張って
精進頑張って
674デフォルトの名無しさん
2025/04/26(土) 15:12:31.71ID:G2uFKMwF 全レスにそれってあなたの感想ですよねって返されても何も言えない
図書館言ったらプログラム書籍のコーナーが1つ棚が減っていてその分AI等の書籍の棚が出来ていた
どこにこんなに本があったのかと
ゴミみたいなRust入門書とPython入門書などが書庫行きになってた
図書館言ったらプログラム書籍のコーナーが1つ棚が減っていてその分AI等の書籍の棚が出来ていた
どこにこんなに本があったのかと
ゴミみたいなRust入門書とPython入門書などが書庫行きになってた
675デフォルトの名無しさん
2025/04/26(土) 15:37:01.99ID:Opf+QDvF 個人の感想とか個人の試行錯誤は良いぞ
全体主義的な試行錯誤はダメだ
全体主義的な試行錯誤はダメだ
676デフォルトの名無しさん
2025/04/26(土) 15:58:41.44ID:IX/fzv3g677デフォルトの名無しさん
2025/04/26(土) 16:18:14.26ID:OmZIap2o678デフォルトの名無しさん
2025/04/26(土) 16:27:16.63ID:G2uFKMwF ソースが短い内容なのに実行時ランタイムが必要な奴を置き換えてる
679デフォルトの名無しさん
2025/04/26(土) 17:16:17.24ID:Opf+QDvF 観測が任務だったのにろくに観測しない
1話でやったやつを見てない
0話切り
1話でやったやつを見てない
0話切り
680デフォルトの名無しさん
2025/04/26(土) 17:41:13.28ID:Ov7+kHPs681デフォルトの名無しさん
2025/04/26(土) 17:51:31.23ID:Cl6IuO5W コード書きなよ。そして考える。読んで考える
682デフォルトの名無しさん
2025/04/26(土) 18:04:49.72ID:OmZIap2o >>678
これは割と効いてくるので良い方針だと思う。
いまどきは Ruby でも JavaScript でも JIT でかなり高速化してるんだけど、 JIT だと何度も通過する内にだんだんネイティブコードに置き換わっていく仕組みだからガッと動いてすぐ終わるようなコードだとぜんぜん JIT の恩恵がない。
それでいてそこそこ大きいランタイムのロードには時間がかかるからあまり向いてないんだよね。
これは割と効いてくるので良い方針だと思う。
いまどきは Ruby でも JavaScript でも JIT でかなり高速化してるんだけど、 JIT だと何度も通過する内にだんだんネイティブコードに置き換わっていく仕組みだからガッと動いてすぐ終わるようなコードだとぜんぜん JIT の恩恵がない。
それでいてそこそこ大きいランタイムのロードには時間がかかるからあまり向いてないんだよね。
683デフォルトの名無しさん
2025/04/26(土) 18:05:29.29ID:iRBbkycD >>672
そんなもん完成形は目の前にあるんだから、頻繁に大規模な手戻りが発生するようなら設計した奴が無能なだけ
スタートアップなんかでのガチで新規性の高い開発ってのは、そもそも作っているものに価値が無い可能性が高い
そのような性質の開発にRustは適していると思う?
俺自身の意見はともかく、現状その問いにYesと言えるだけの実績がRustに無いのは事実だ
そんなもん完成形は目の前にあるんだから、頻繁に大規模な手戻りが発生するようなら設計した奴が無能なだけ
スタートアップなんかでのガチで新規性の高い開発ってのは、そもそも作っているものに価値が無い可能性が高い
そのような性質の開発にRustは適していると思う?
俺自身の意見はともかく、現状その問いにYesと言えるだけの実績がRustに無いのは事実だ
684デフォルトの名無しさん
2025/04/26(土) 18:06:58.12ID:SE+oHzey WebブラウザWasm、CDN Edge、クラウドなどもRustが言語筆頭候補の領域
685デフォルトの名無しさん
2025/04/26(土) 18:21:45.82ID:Vj7XK48K rustから他の言語に書き直すのは大変そう
686デフォルトの名無しさん
2025/04/26(土) 18:50:24.41ID:vxR7V27Y687デフォルトの名無しさん
2025/04/26(土) 19:24:47.94ID:iRBbkycD YJITやuvやruffが新規なのか
別に煽るつもりも否定するつもりもないのだけど、平均的なRust開発者の認識がそうなんだとしたら、Rustは実際にそういう言語なんだろうね
別に煽るつもりも否定するつもりもないのだけど、平均的なRust開発者の認識がそうなんだとしたら、Rustは実際にそういう言語なんだろうね
688デフォルトの名無しさん
2025/04/26(土) 19:37:07.61ID:ZNj+yWV2 276,406行のC++コードを捨ててRustへ移行したスタートアップの技術的決断
https://zenn.dev/rwcolinpeng/articles/14760991836800
https://zenn.dev/rwcolinpeng/articles/14760991836800
689デフォルトの名無しさん
2025/04/26(土) 19:40:30.88ID:oUxoHCOL Cからrustへの書き換えはわりとうまく行きそうだけどC++からだとしんどそう
690デフォルトの名無しさん
2025/04/26(土) 19:49:20.55ID:7Pa19F9r スタートアップでも開発効率の高いRustを採用する方が当然有利ってことだな
691デフォルトの名無しさん
2025/04/26(土) 21:18:45.78ID:Opf+QDvF 試行錯誤ってカーゴカルトを正当化するんだな
滑走路作ってみな
飛ぶぞ
滑走路作ってみな
飛ぶぞ
692デフォルトの名無しさん
2025/04/26(土) 21:47:38.26ID:w8ZEIOp2 別の視点でスタートアップであろうとなかろうと
競合相手がいて他の条件がほぼ同等ならRustを採用した方がおそらく有利っぽい
速度の面でも使用リソースの面でも
競合相手がいて他の条件がほぼ同等ならRustを採用した方がおそらく有利っぽい
速度の面でも使用リソースの面でも
693デフォルトの名無しさん
2025/04/26(土) 22:16:38.86ID:Cl6IuO5W 開発者が優秀だからじゃないか
同じ人が開発する時の速度に影響するかなあ
同じ人が開発する時の速度に影響するかなあ
694デフォルトの名無しさん
2025/04/26(土) 22:43:45.38ID:BBm+0pf8 kindle 日替わり500円
695デフォルトの名無しさん
2025/04/26(土) 23:08:38.66ID:ZxsqU4Rq Cのままだとライセンス違反になりそうなグレーゾーンをRustで書き換えて解決ってか
696デフォルトの名無しさん
2025/04/26(土) 23:13:16.03ID:aIZ11R/f 言語を書き換えてもライセンス抵触なら無意味
それ以前にいまどき落とし穴の未定義動作だらけにC言語なんて使うのはコンパイラ指定な特殊な組み込み環境くらいだろ
それ以前にいまどき落とし穴の未定義動作だらけにC言語なんて使うのはコンパイラ指定な特殊な組み込み環境くらいだろ
697デフォルトの名無しさん
2025/04/26(土) 23:22:10.41ID:ZxsqU4Rq >>689
その通りなんだがC++の機能にどの程度依存してたかだな
その通りなんだがC++の機能にどの程度依存してたかだな
698デフォルトの名無しさん
2025/04/26(土) 23:40:40.79ID:Ov7+kHPs >>695
freebsdカーネルは完全にgcc捨ててllvm化が終わってる
freebsdカーネルは完全にgcc捨ててllvm化が終わってる
699デフォルトの名無しさん
2025/04/27(日) 05:42:31.77ID:68J8pPED >>688
C++エキスパートなら、必要なスキルが揃っているから移行コストが少ない、というのがデカイね。
逆にC++で大規模開発するのにコーティング規約を決めてなかったみたいだから、コーダーが好きにやって破綻している感じもある。
C++標準化委員会は標準的なコーティング規約を決めた方がいいんだろうけど、宗教戦争になりかねないから難しいか。
C++エキスパートなら、必要なスキルが揃っているから移行コストが少ない、というのがデカイね。
逆にC++で大規模開発するのにコーティング規約を決めてなかったみたいだから、コーダーが好きにやって破綻している感じもある。
C++標準化委員会は標準的なコーティング規約を決めた方がいいんだろうけど、宗教戦争になりかねないから難しいか。
700デフォルトの名無しさん
2025/04/27(日) 06:03:34.96ID:3KVBTXf3 C++を完全に捨てるしかなかったな
>>688
>>C++ はプログラマーに多くの柔軟性を与えますが、それには代償が伴います。バグを埋め込むのが非常に簡単であり、その多くは非常に厄介です。しかし、それ以上に C++ プログラムのデバッグは非常に困難です。特に並行プログラミングにおいてはなおさらです。
>>依存関係の管理が面倒です。たとえば CMake のように、C++ プロジェクトのコンパイルを自動構成するツールはありますが、開発者は依存ライブラリの構成やインストールを手動で行う必要があります。
>>標準テンプレートライブラリ(STL)は、たとえばネイティブなコルーチンのサポートなど、モダンプログラミングの一部ツールに対応していません。その結果、開発者は多くのコミュニティプロジェクトに依存せざるを得ず、これらの多くは長期的なサポートがありません。
>>品質保証が難しいです。C++ は非常に多機能な言語であるがゆえに、開発者ごとにまったく異なるコーディングスタイルで C++ を書いてしまう傾向があります。異なるバックグラウンドを持つ開発者がチームに増えると、コードの可読性を維持できなくなりました。さらに、C++ コードのバグは簡単には特定できず、コードレビューが非常に困難になる原因でもありました。
>>688
>>C++ はプログラマーに多くの柔軟性を与えますが、それには代償が伴います。バグを埋め込むのが非常に簡単であり、その多くは非常に厄介です。しかし、それ以上に C++ プログラムのデバッグは非常に困難です。特に並行プログラミングにおいてはなおさらです。
>>依存関係の管理が面倒です。たとえば CMake のように、C++ プロジェクトのコンパイルを自動構成するツールはありますが、開発者は依存ライブラリの構成やインストールを手動で行う必要があります。
>>標準テンプレートライブラリ(STL)は、たとえばネイティブなコルーチンのサポートなど、モダンプログラミングの一部ツールに対応していません。その結果、開発者は多くのコミュニティプロジェクトに依存せざるを得ず、これらの多くは長期的なサポートがありません。
>>品質保証が難しいです。C++ は非常に多機能な言語であるがゆえに、開発者ごとにまったく異なるコーディングスタイルで C++ を書いてしまう傾向があります。異なるバックグラウンドを持つ開発者がチームに増えると、コードの可読性を維持できなくなりました。さらに、C++ コードのバグは簡単には特定できず、コードレビューが非常に困難になる原因でもありました。
701デフォルトの名無しさん
2025/04/27(日) 06:08:20.98ID:Vt2v/90n >>688
C++エキスパートかどうかは何も痕跡がないな
むしろJava屋さんじゃね(Initial commit)
https://github.com/risingwavelabs/risingwave/tree/cb527ae81e9d9f51010da4b16ad9101447b7670b
C++エキスパートかどうかは何も痕跡がないな
むしろJava屋さんじゃね(Initial commit)
https://github.com/risingwavelabs/risingwave/tree/cb527ae81e9d9f51010da4b16ad9101447b7670b
702デフォルトの名無しさん
2025/04/27(日) 06:20:56.04ID:Ytmxd4+G >>688
こういう極端な例しか出て来ないよね
こういう極端な例しか出て来ないよね
703デフォルトの名無しさん
2025/04/27(日) 06:23:06.49ID:EwmWReBG704デフォルトの名無しさん
2025/04/27(日) 07:51:33.32ID:Mi41ddJF libuvを使うのじゃ
全くおすすめできない
全くおすすめできない
705デフォルトの名無しさん
2025/04/27(日) 07:52:41.59ID:Mi41ddJF 非同期並列並行が標準装備なんて恵まれた言語ばかりになってグスン
706デフォルトの名無しさん
2025/04/27(日) 08:04:58.94ID:X0KzsrtM 設計の見直しがあるとRustは辛いよなぁ
Goのほうが柔軟な気がする
Goのほうが柔軟な気がする
707デフォルトの名無しさん
2025/04/27(日) 09:24:24.45ID:PvBOOBWE Kotlin もよろしく
708デフォルトの名無しさん
2025/04/27(日) 09:26:48.67ID:gUGAvcfj Oracle怖いので
709デフォルトの名無しさん
2025/04/27(日) 10:46:11.91ID:RSOujG5D > 開発者は多くのコミュニティプロジェクトに依存せざるを得ず、これらの多くは長期的なサポートがありません。
これを理由にしてRustへ行くのはちょっと本末転倒感あるけどなあ
数年後には、古くなったcrateに縛られてモダンでクールな〇〇をイントロデュースするのベリーハードだぜフ〇ックとかブツブツ言ってるだろうな
これを理由にしてRustへ行くのはちょっと本末転倒感あるけどなあ
数年後には、古くなったcrateに縛られてモダンでクールな〇〇をイントロデュースするのベリーハードだぜフ〇ックとかブツブツ言ってるだろうな
710デフォルトの名無しさん
2025/04/27(日) 10:48:58.05ID:UOWnN6XZ 処理系のサポートは重要だよね
IntelのCコンパイラ使ってるプロジェクトあったな
最適化の都合かもしれんけど
IntelのCコンパイラ使ってるプロジェクトあったな
最適化の都合かもしれんけど
711デフォルトの名無しさん
2025/04/27(日) 11:29:27.41ID:oHyIRNV3 新しいものの方が魅力的に映るのは当然のことだが、当面の最大のリスクはRustより魅力的な言語が出現したときにどうなるか、だな
>>688の例でも必死に言い繕っているように、新しいものを使いたかっただけではなく真の合理的判断の結果であれば問題にならないはずだが、果たして本当にそうだったのかはそのときに明らかになる
Rustがいかに優れていようと、その時はいずれ必ず来るわけだが、Rustエコシステムは未だそれを経験していない
>>688の例でも必死に言い繕っているように、新しいものを使いたかっただけではなく真の合理的判断の結果であれば問題にならないはずだが、果たして本当にそうだったのかはそのときに明らかになる
Rustがいかに優れていようと、その時はいずれ必ず来るわけだが、Rustエコシステムは未だそれを経験していない
712デフォルトの名無しさん
2025/04/27(日) 11:31:45.33ID:gUGAvcfj それを言ったら、CもJavaも出だしの頃は散々使えないって言われてたので。自己責任で腹を据えるしか無い
713デフォルトの名無しさん
2025/04/27(日) 11:33:37.49ID:gUGAvcfj zigは難しいし、まあRustの20年が始まるよ。
714デフォルトの名無しさん
2025/04/27(日) 12:18:30.81ID:bBpGWVZ5 RustのようにCと同等の速さを出すことが可能で
Rustよりも安全な言語は当面出現しそうにない
C言語からRust出現まで43年間かかった
そしてC出現から53年たった現在もCも使われているように
50年後もRustは使われているだろう
Rustよりも安全な言語は当面出現しそうにない
C言語からRust出現まで43年間かかった
そしてC出現から53年たった現在もCも使われているように
50年後もRustは使われているだろう
715デフォルトの名無しさん
2025/04/27(日) 12:39:43.81ID:gUGAvcfj 実現したとしてもRustと同程度の2番煎じじゃ意味ないのよね
Rustでは出来ない問題を解決しなきゃ
Rustでは出来ない問題を解決しなきゃ
716デフォルトの名無しさん
2025/04/27(日) 13:04:11.13ID:DF5I7qXF > Rustでは出来ない問題
未知の新言語に誰にでも使える容易さがあればRustは消えることになる
未知の新言語に誰にでも使える容易さがあればRustは消えることになる
717デフォルトの名無しさん
2025/04/27(日) 13:16:54.38ID:gUGAvcfj 50年後かな
718デフォルトの名無しさん
2025/04/27(日) 13:55:43.56ID:rRExk4WB >>709
Rustも放置cratesだらけだよな
Rustも放置cratesだらけだよな
719デフォルトの名無しさん
2025/04/27(日) 14:05:22.78ID:iLjF0beD 少なくともC/Rustと同等の速さ省メモリでRustの安全性を満たす言語というのが最低限の条件だから超難関だよな
今のC/Javaの立ち位置と同様に数十年間はRustの時代が続きそうだ
今のC/Javaの立ち位置と同様に数十年間はRustの時代が続きそうだ
720デフォルトの名無しさん
2025/04/27(日) 14:17:14.93ID:DF5I7qXF これからの言語でダングリングやメモリリークが容易に解消できるようなAIエディタかAIコンパイラが出てきたら
Rustは安泰なのだろうか?
c++は人間には早すぎたし記述性が悪いけど記述性が良くてメモリを完全に制御可能なAIコンパイラを持つ言語が出てきたらどうなるのかは不明
Rustは安泰なのだろうか?
c++は人間には早すぎたし記述性が悪いけど記述性が良くてメモリを完全に制御可能なAIコンパイラを持つ言語が出てきたらどうなるのかは不明
721デフォルトの名無しさん
2025/04/27(日) 14:28:13.70ID:FZdQbkSH >>720
そのダングリングやメモリリークが容易に解消できるようにしたコンパイラがRust
その記述性が良くてメモリを完全に制御可能な言語がRust
AIにコードを書かせるならばRustが最も望ましく相性も良い
可読性も良いから人間がチェックしやすくメンテもしやすい
そのダングリングやメモリリークが容易に解消できるようにしたコンパイラがRust
その記述性が良くてメモリを完全に制御可能な言語がRust
AIにコードを書かせるならばRustが最も望ましく相性も良い
可読性も良いから人間がチェックしやすくメンテもしやすい
722デフォルトの名無しさん
2025/04/27(日) 14:37:02.73ID:oHyIRNV3 超高水準言語から直接(人間による理解や編集を意図した中間表現を介さないという意味で)実行可能バイナリを生成するAIが、
Rustをパフォーマスや信頼性で凌駕する日はそう遠くないだろうね
パイプラインにおける内部的な中間表現としてRustが採用されることはありうるが、もはや人間にとってはどうでもいいことだ
Rustをパフォーマスや信頼性で凌駕する日はそう遠くないだろうね
パイプラインにおける内部的な中間表現としてRustが採用されることはありうるが、もはや人間にとってはどうでもいいことだ
723デフォルトの名無しさん
2025/04/27(日) 14:38:49.51ID:0aN/b0Iq724デフォルトの名無しさん
2025/04/27(日) 14:43:44.86ID:FZdQbkSH >>722
人類がAIに支配されないためには必ず人類がチェックできる形で運用される
AIに吐かせる最善の言語Rustを読み書きできるかどうかが今後の生き残るプログラマの必須条件となる
AIに遅い言語のコードを吐かせても無意味
人類がAIに支配されないためには必ず人類がチェックできる形で運用される
AIに吐かせる最善の言語Rustを読み書きできるかどうかが今後の生き残るプログラマの必須条件となる
AIに遅い言語のコードを吐かせても無意味
725デフォルトの名無しさん
2025/04/27(日) 15:00:33.83ID:rRExk4WB AIちゃんに夢観過ぎ
Rustを課題評価し過ぎ
Rustを課題評価し過ぎ
726デフォルトの名無しさん
2025/04/27(日) 16:04:39.65ID:0aN/b0Iq 当面 (半世紀くらい) のAI は人無しでそこそこの規模のプログラムを自律的に完成させられるほど高度にはならないと予想する。
単純にコストに対して割に合わないから。
人に教育したほうがマシだし、 現状の AI 程度でも補助として使えばかなりハードルは下がっている。
AI に必要な電力がかなり大きいことがわかってきて、理論の発展で計算量を抑えられる余地もあまりないのでより発展させるにはより多くのエネルギを投入するしかない。
単純にコストに対して割に合わないから。
人に教育したほうがマシだし、 現状の AI 程度でも補助として使えばかなりハードルは下がっている。
AI に必要な電力がかなり大きいことがわかってきて、理論の発展で計算量を抑えられる余地もあまりないのでより発展させるにはより多くのエネルギを投入するしかない。
727デフォルトの名無しさん
2025/04/27(日) 16:22:32.90ID:jrwbPW8D 後のAI時代でもそれまでの現在でもRustが最適な点で強いね
速さと使いやすさと安全性で他に代わるものがない
速さと使いやすさと安全性で他に代わるものがない
728デフォルトの名無しさん
2025/04/27(日) 16:24:48.87ID:DF5I7qXF >>721
それを人間じゃなくてコンパイラやエディタが自律的に解消できるようになるのが次世代言語だと思う
それを人間じゃなくてコンパイラやエディタが自律的に解消できるようになるのが次世代言語だと思う
729デフォルトの名無しさん
2025/04/27(日) 16:28:25.84ID:jrwbPW8D730デフォルトの名無しさん
2025/04/27(日) 16:37:08.79ID:DF5I7qXF コンパイラ以前に他人と言葉が通じない人間がいる
731デフォルトの名無しさん
2025/04/27(日) 16:58:02.84ID:jrwbPW8D AIがRustプログラミングの補助やコード生成するわけだろ
Rustより良い言語の候補でもあるの?
Rustより良い言語の候補でもあるの?
732デフォルトの名無しさん
2025/04/27(日) 17:00:26.65ID:DF5I7qXF コードは書くだけじゃなくてコードリーディングする必要がある
現在のrustのままだと結局学習しなくてはならないから一般人には向いてない
現在のrustのままだと結局学習しなくてはならないから一般人には向いてない
733デフォルトの名無しさん
2025/04/27(日) 17:02:23.79ID:0aN/b0Iq734デフォルトの名無しさん
2025/04/27(日) 17:03:14.27ID:AFXJD6qk 次世代の言語が出るとしたら「AIの支援を多く受けられる」を標榜するものになると思う
けど、「次の言語」はもう出ないのではないかという見方もある
みんながAIを使うようになると、AIが良いコードを生成しやすい言語が選ばれるようになり、現時点でAIが未学習の新言語はますます選ばれないだろうという見方
未来は分からないけど、今後どうなるんだろうな
けど、「次の言語」はもう出ないのではないかという見方もある
みんながAIを使うようになると、AIが良いコードを生成しやすい言語が選ばれるようになり、現時点でAIが未学習の新言語はますます選ばれないだろうという見方
未来は分からないけど、今後どうなるんだろうな
735デフォルトの名無しさん
2025/04/27(日) 17:03:49.55ID:DF5I7qXF736デフォルトの名無しさん
2025/04/27(日) 17:22:21.32ID:jrwbPW8D737デフォルトの名無しさん
2025/04/27(日) 17:25:13.85ID:i1fb9OUg はいはいrust最強
738デフォルトの名無しさん
2025/04/27(日) 17:40:43.10ID:DF5I7qXF739デフォルトの名無しさん
2025/04/27(日) 17:45:37.44ID:jlBc2dWq ちょっと前に「Rustが嫌いです」ってZennであったけど,Rustの弱点をうまく捉えてたな
このスレで「Rustで書けば理論上バグは混入しない」とか言ってるエアプよりしっかり勉強してるんじゃないかな
このスレで「Rustで書けば理論上バグは混入しない」とか言ってるエアプよりしっかり勉強してるんじゃないかな
740デフォルトの名無しさん
2025/04/27(日) 17:59:42.25ID:Mi41ddJF ロジック的なバグだけになる。ということだから、Cレベルのしょうもないバグを直した人しかその意味は捉えられないと思うよ
741デフォルトの名無しさん
2025/04/27(日) 18:19:07.13ID:kInycGWP >>735
モダンな言語を理解して使いこなせる普通のプログラマーから見るとjavaやjsは悪い言語
javaやjsを良い言語と書いてるあなたはモダンな言語を理解できていない低質なプログラマー
このスレに来る資格すらない老害
モダンな言語を理解して使いこなせる普通のプログラマーから見るとjavaやjsは悪い言語
javaやjsを良い言語と書いてるあなたはモダンな言語を理解できていない低質なプログラマー
このスレに来る資格すらない老害
742デフォルトの名無しさん
2025/04/27(日) 18:19:57.09ID:kInycGWP743デフォルトの名無しさん
2025/04/27(日) 18:24:19.35ID:wtLp04RM 対話は必要不可欠ではないけどね
特に、被造物ではないものを理解するとき、
作者を特定して作者と対話(ディール)するという方法はナンセンスになる
特に、被造物ではないものを理解するとき、
作者を特定して作者と対話(ディール)するという方法はナンセンスになる
744デフォルトの名無しさん
2025/04/27(日) 18:24:21.34ID:DF5I7qXF745デフォルトの名無しさん
2025/04/27(日) 18:37:48.95ID:kBhEh79C >>744
「モダンはC++が持ち出してきた概念」はウソでしょ
例えばC++20のrange導入などでようやくC++も他より遅れてモダンになってきたけど
C++プログラマーのほとんどはまだ理解していなくて使えないよね
「モダンはC++が持ち出してきた概念」はウソでしょ
例えばC++20のrange導入などでようやくC++も他より遅れてモダンになってきたけど
C++プログラマーのほとんどはまだ理解していなくて使えないよね
746デフォルトの名無しさん
2025/04/27(日) 18:42:03.43ID:AFXJD6qk C++以外の言語でもモダンという表現は使うぞ
モダンJavaとかモダンC#という表現は聞くし
「古い言語に追加された新しい書き方」という意味でなく、本当に新しい言語かつ人気のものとなると Go, Rust, TypeScript, Kotlin くらいじゃない?
どれもだいぶ特性の異なる言語だから、「モダンな言語では〜」といって共通認識になる概念ってあまり無いと思う
モダンJavaとかモダンC#という表現は聞くし
「古い言語に追加された新しい書き方」という意味でなく、本当に新しい言語かつ人気のものとなると Go, Rust, TypeScript, Kotlin くらいじゃない?
どれもだいぶ特性の異なる言語だから、「モダンな言語では〜」といって共通認識になる概念ってあまり無いと思う
747デフォルトの名無しさん
2025/04/27(日) 18:47:36.67ID:DF5I7qXF それだけ理解していればモダンな言語と言うのは虚像だとわかるはず
748デフォルトの名無しさん
2025/04/27(日) 18:48:57.82ID:DF5I7qXF それに今気が付いたけどおじいちゃんは勘違いしてる
javaやjsを良い言語だとは一言も言ってない
javaやjsを良い言語だとは一言も言ってない
749デフォルトの名無しさん
2025/04/27(日) 18:50:47.27ID:DF5I7qXF Rustの一番の弱点は学習に時間がかかること
750デフォルトの名無しさん
2025/04/27(日) 18:55:49.11ID:kBhEh79C そのへんのモダンなGC言語の知識と
C++11でいいからmoveからshared_ptrまでのメモリ管理の知識さえあれば
Rustに難しい面は何も無いと思うんだけど
Rustの学習が難しいと主張してる人は何が難しいの??
C++11でいいからmoveからshared_ptrまでのメモリ管理の知識さえあれば
Rustに難しい面は何も無いと思うんだけど
Rustの学習が難しいと主張してる人は何が難しいの??
751デフォルトの名無しさん
2025/04/27(日) 18:57:07.46ID:kBhEh79C >>749
それはあなたがC++11のメモリ管理もモダンな言語も理解できていないからでしょ?
それはあなたがC++11のメモリ管理もモダンな言語も理解できていないからでしょ?
752デフォルトの名無しさん
2025/04/27(日) 18:57:50.17ID:AFXJD6qk 可読性ならGoは高い
あれは「読み手に優しい」と言われる言語で、書く分には冗長で面倒だけど、そこをAIにやらせるなら読みやすさやレビューしやすさは強みになる
Rustは型の表現力が強くて、型がドキュメントになる
それ自体は強みだけど、理解するまでは大変
Arc<Mutex<_>> とか impl FnOnce とか、分かる人にとっては meaningful だけど、そこに至るまでにはある程度の素養と時間が必要ではある
あれは「読み手に優しい」と言われる言語で、書く分には冗長で面倒だけど、そこをAIにやらせるなら読みやすさやレビューしやすさは強みになる
Rustは型の表現力が強くて、型がドキュメントになる
それ自体は強みだけど、理解するまでは大変
Arc<Mutex<_>> とか impl FnOnce とか、分かる人にとっては meaningful だけど、そこに至るまでにはある程度の素養と時間が必要ではある
753デフォルトの名無しさん
2025/04/27(日) 19:05:12.57ID:AFXJD6qk >>751
「お前らバカにはRustを理解できまい」みたいな思想があるなら、それこそRustの弱点じゃないの?
あなたのいう「良い言語」って、例えば「ジュニアクラスの開発者も含むチームで、どの技術を使うとサービスを開発・保守しやすいか」みたいな観点での価値判断をまるっきり排除してるでしょ?
「お前らバカにはRustを理解できまい」みたいな思想があるなら、それこそRustの弱点じゃないの?
あなたのいう「良い言語」って、例えば「ジュニアクラスの開発者も含むチームで、どの技術を使うとサービスを開発・保守しやすいか」みたいな観点での価値判断をまるっきり排除してるでしょ?
754デフォルトの名無しさん
2025/04/27(日) 19:09:59.10ID:DF5I7qXF おじいはいくら言われても言葉が通じないから無駄
755デフォルトの名無しさん
2025/04/27(日) 19:10:10.15ID:kBhEh79C >>753
大昔の「C++11のメモリ管理」と
今普通に使われている「モダンな言語」を理解できていれば
Rustの学習に困ることは何も無いんだよ
それらを理解していてRustの学習で困った人はいないよ
大昔の「C++11のメモリ管理」と
今普通に使われている「モダンな言語」を理解できていれば
Rustの学習に困ることは何も無いんだよ
それらを理解していてRustの学習で困った人はいないよ
756デフォルトの名無しさん
2025/04/27(日) 19:13:10.29ID:DF5I7qXF Rustを使うには様々な概念及び実際のコーディングテクニックを習得しなくてはならない
それがハードル
そのハードルを恐らく可能な限り低くするか無くすで在ろう存在がAIなどの補助を受けた次世代言語
それがハードル
そのハードルを恐らく可能な限り低くするか無くすで在ろう存在がAIなどの補助を受けた次世代言語
757デフォルトの名無しさん
2025/04/27(日) 19:15:07.05ID:wtLp04RM Javaにたとえると
intはObjectではないとかintはポインタではないとかが難しいね
整数もオブジェクトにしてしまうスクリプトが最もユーザーフレンドリー
intはObjectではないとかintはポインタではないとかが難しいね
整数もオブジェクトにしてしまうスクリプトが最もユーザーフレンドリー
758デフォルトの名無しさん
2025/04/27(日) 19:32:31.58ID:y/d9q7Zt >>757
そういう全ての型をオブジェクトへのポインタとして扱う言語は非効率なのでRustに勝つことはを絶対に不可能だよん
そういう全ての型をオブジェクトへのポインタとして扱う言語は非効率なのでRustに勝つことはを絶対に不可能だよん
759デフォルトの名無しさん
2025/04/27(日) 19:37:46.28ID:AFXJD6qk Fn, FnMut, FnOnce とか Box, Rc, Arc の区別って、GCのある言語ならそもそも必要のないものだからな
Rustのメモリモデルでは必要だけど、無くて済むならその方が楽だろ
GCを避けたい人のための言語であって、簡単さや分かりやすさを目指した言語ではないよ
Rustのメモリモデルでは必要だけど、無くて済むならその方が楽だろ
GCを避けたい人のための言語であって、簡単さや分かりやすさを目指した言語ではないよ
760デフォルトの名無しさん
2025/04/27(日) 19:46:27.37ID:5IY8oWQm Rustは他の言語で苦労しないと存在意義が分からない要素が多くて学習曲線が絶壁になってる
別言語を踏み台にしないと登れないレベル
Goはシンプルな言語だけどC++/Javaが例外を導入した経緯を無視して例外を取っ払ったから
例えばchdirの成否判定を忘れたまま処理を継続するようなC言語時代のバグを復活させてしまった
(RustもResultのmust_useで警告出すだけだから警告無視勢は救えないけど)
別言語を踏み台にしないと登れないレベル
Goはシンプルな言語だけどC++/Javaが例外を導入した経緯を無視して例外を取っ払ったから
例えばchdirの成否判定を忘れたまま処理を継続するようなC言語時代のバグを復活させてしまった
(RustもResultのmust_useで警告出すだけだから警告無視勢は救えないけど)
761デフォルトの名無しさん
2025/04/27(日) 19:46:33.19ID:wrVeCsQy762デフォルトの名無しさん
2025/04/27(日) 20:00:29.67ID:wrVeCsQy763デフォルトの名無しさん
2025/04/27(日) 20:13:51.24ID:DF5I7qXF 世界中のプログラマが容易にRustを理解出来るならジジイが今すぐ世界を回ってすべてのプロジェクトを止めさせて
Rustで書けと言って回ればいいじゃないか?
特にC++とか
Rustで書けと言って回ればいいじゃないか?
特にC++とか
764デフォルトの名無しさん
2025/04/27(日) 20:16:02.23ID:ZOVCNh+7765デフォルトの名無しさん
2025/04/27(日) 20:31:16.89ID:xt2DuFOL >>764
C#はGC言語だから無理だよ
Swiftはリファレンスカウンタ方式なのでGC言語の1種と見ることもできるね
C++/Rustから見るとshared_ptr/Arcを常用する重い方式なのでSwiftが遅いのはそのため
Rustは可読性が高いよ
どの言語もその言語を知らない人にとっては呪文に見えるのは当たり前だよ
可読性の高い低いはその各言語を使いこなせる人にとってどうかが判断基準だよ
C#はGC言語だから無理だよ
Swiftはリファレンスカウンタ方式なのでGC言語の1種と見ることもできるね
C++/Rustから見るとshared_ptr/Arcを常用する重い方式なのでSwiftが遅いのはそのため
Rustは可読性が高いよ
どの言語もその言語を知らない人にとっては呪文に見えるのは当たり前だよ
可読性の高い低いはその各言語を使いこなせる人にとってどうかが判断基準だよ
766デフォルトの名無しさん
2025/04/27(日) 20:41:03.96ID:RSOujG5D 読むときにノイズが多いのは事実だと思うよ
BoxとかArcとかdynとかはコードの機能的な側面だけをざっと理解したいときには鬱陶しく感じる
BoxとかArcとかdynとかはコードの機能的な側面だけをざっと理解したいときには鬱陶しく感じる
767デフォルトの名無しさん
2025/04/27(日) 20:46:59.09ID:0aN/b0Iq768デフォルトの名無しさん
2025/04/27(日) 20:52:56.47ID:xt2DuFOL >>766
それはRustのコーティングしたことがないから勘違いしてるんじゃないかなー
RustではBoxであろうがArcであろうがスタック上の値であろうが、区別は一切なく他の関数に渡す時は単なる参照&Tになるからコード上でノイズにならないんだよ
Boxを作って返す時またはBox固有の機能を使うというレアケースのみBoxが出てくるだけだね
それはRustのコーティングしたことがないから勘違いしてるんじゃないかなー
RustではBoxであろうがArcであろうがスタック上の値であろうが、区別は一切なく他の関数に渡す時は単なる参照&Tになるからコード上でノイズにならないんだよ
Boxを作って返す時またはBox固有の機能を使うというレアケースのみBoxが出てくるだけだね
769デフォルトの名無しさん
2025/04/27(日) 21:28:49.41ID:AFXJD6qk このスレで実際に自分のいる組織やチームの開発言語をRustに変更できた人ってどれくらいいるの?
小さいプロジェクトや個人なら好きにできるけど、実際なかなか難しいのでは
小さいプロジェクトや個人なら好きにできるけど、実際なかなか難しいのでは
770デフォルトの名無しさん
2025/04/27(日) 21:34:07.27ID:Mi41ddJF PHPからGoにするのも難しいよ。Pythonは皆出来る
771デフォルトの名無しさん
2025/04/27(日) 21:38:12.88ID:EEDqpxPk 5chもperlやめてRUSTで書き換えてくれ
772デフォルトの名無しさん
2025/04/27(日) 21:39:18.11ID:Mi41ddJF まだperlで消耗してるのw
アラフィフだけどもう使わないし読めない
アラフィフだけどもう使わないし読めない
773デフォルトの名無しさん
2025/04/27(日) 21:50:42.18ID:RQi02CYb >>734
パイチョンとかblackでガチガチにコードスタイル決めてるからaiが扱うコードとしては有利だろうな
パイチョンとかblackでガチガチにコードスタイル決めてるからaiが扱うコードとしては有利だろうな
774デフォルトの名無しさん
2025/04/27(日) 23:35:08.03ID:/q0dsRVF >>769
今まであちこち見たり体験したりしてきてると
どの言語でもどのフレームワークやサービス類でも言われて義務的に学習し始める人が多い環境はダメ
良さそうなものが出た時に興味を持って自分から学習し始める人が多い環境は行ける
後者はまだ手を出してない新たなものに対しても対応力が高い
前者の環境でくすぶってる人は抜け出した方がよさそう
今まであちこち見たり体験したりしてきてると
どの言語でもどのフレームワークやサービス類でも言われて義務的に学習し始める人が多い環境はダメ
良さそうなものが出た時に興味を持って自分から学習し始める人が多い環境は行ける
後者はまだ手を出してない新たなものに対しても対応力が高い
前者の環境でくすぶってる人は抜け出した方がよさそう
775デフォルトの名無しさん
2025/04/27(日) 23:38:14.26ID:gUGAvcfj 後者は変態だね。変態揃ってます。という採用アピールしよう
776デフォルトの名無しさん
2025/04/28(月) 00:33:05.01ID:gd16jUat ノイズが多い説が面白いのは、ノイズを学習する義務なんてあるわけがないから
そんなことを知っているのは物好きだけだと言えるところ
そんなことを知っているのは物好きだけだと言えるところ
777デフォルトの名無しさん
2025/04/28(月) 02:54:28.25ID:hDmEwqG0 >>751
>それはあなたがC++11のメモリ管理もモダンな言語も理解
C++もモダンな言語もそれらはそれら自身でメモリ管理もモダンな処理も理解出来るのに
RustはRust以外のC++やモダンな言語で先にそちの理解を済ませないとRust自身で理解が完結出来ないと言ってるんですねわかります
Rustの欠陥じゃまいか
>それはあなたがC++11のメモリ管理もモダンな言語も理解
C++もモダンな言語もそれらはそれら自身でメモリ管理もモダンな処理も理解出来るのに
RustはRust以外のC++やモダンな言語で先にそちの理解を済ませないとRust自身で理解が完結出来ないと言ってるんですねわかります
Rustの欠陥じゃまいか
778デフォルトの名無しさん
2025/04/28(月) 05:10:35.52ID:EkWxmo4a >>777
どちらも各々は容易に学習できる
だから片方を知っていればRustの学習は容易く問題になっていない
もちろんどちらも知らない人たちも多いのだ
別方面のその二つを同時に学習することになるため難易度が高くなる
そのためRustは難しいと感じてしまう
しかしそんな無茶な学習方法をするのが悪いのだ
良い学習方法は段階的に学習することだ
そこには様々なやり方がある
例えば
どちらも各々は容易に学習できる
だから片方を知っていればRustの学習は容易く問題になっていない
もちろんどちらも知らない人たちも多いのだ
別方面のその二つを同時に学習することになるため難易度が高くなる
そのためRustは難しいと感じてしまう
しかしそんな無茶な学習方法をするのが悪いのだ
良い学習方法は段階的に学習することだ
そこには様々なやり方がある
例えば
779デフォルトの名無しさん
2025/04/28(月) 05:15:04.65ID:EkWxmo4a >>778の続き
良い学習方法は段階的に学習することだ
例えばヒープを一切使わずに数値型と配列だけでも非常に多くの学習と練習ができる
イテレータメソッドチェーンでクロージャを渡して処理するなどの経験をしたことがなければ学習できる
さらに自分でイテレータを作るのもIteratorトレイトのメソッド実装という良い学習になる
さらに自分定義のトレイト作ってその自作イテレータをメソッド化するのも良いだろう
次はそれらをi32型などで作ってきたところの型を整数型一般にジェネリック化をすることでトレイト境界の意義もよくわかるだろう
このようにヒープを一切使わなくても数値型と配列だけでもRustの学習をどんどん進めることができる
以上の制約があまりにキツいならcollectでVecを生成するなどならばヒープを使ってもメモリ管理まで気にしなくて済む
そしてRustの機能を一通り学んだ後にようやくヒープを本格的に用いてメモリ管理分野の学習に入ればよい
段階的に学べばRustは難しくない
良い学習方法は段階的に学習することだ
例えばヒープを一切使わずに数値型と配列だけでも非常に多くの学習と練習ができる
イテレータメソッドチェーンでクロージャを渡して処理するなどの経験をしたことがなければ学習できる
さらに自分でイテレータを作るのもIteratorトレイトのメソッド実装という良い学習になる
さらに自分定義のトレイト作ってその自作イテレータをメソッド化するのも良いだろう
次はそれらをi32型などで作ってきたところの型を整数型一般にジェネリック化をすることでトレイト境界の意義もよくわかるだろう
このようにヒープを一切使わなくても数値型と配列だけでもRustの学習をどんどん進めることができる
以上の制約があまりにキツいならcollectでVecを生成するなどならばヒープを使ってもメモリ管理まで気にしなくて済む
そしてRustの機能を一通り学んだ後にようやくヒープを本格的に用いてメモリ管理分野の学習に入ればよい
段階的に学べばRustは難しくない
780デフォルトの名無しさん
2025/04/28(月) 06:40:53.40ID:ic5UWCA9 境界知能の次はコレ?
781デフォルトの名無しさん
2025/04/28(月) 08:33:19.21ID:LU5KMJmp 将来のAI前提なら、無駄に抽象度の高いコードは廃れて把握しやすいグラフ中心だろ。
ユースケース図くらいかせいぜいUMLで、フローチャートレベルの実装詳細はライブラリアンくらいしか触らないんじゃないんかね。
ユースケース図くらいかせいぜいUMLで、フローチャートレベルの実装詳細はライブラリアンくらいしか触らないんじゃないんかね。
782デフォルトの名無しさん
2025/04/28(月) 09:19:52.67ID:AuNLagCl783デフォルトの名無しさん
2025/04/28(月) 09:22:16.38ID:AuNLagCl >>739
30年前と違って今はweb系から先にプログラミング入門しちゃう人がいるんだな
30年前と違って今はweb系から先にプログラミング入門しちゃう人がいるんだな
784デフォルトの名無しさん
2025/04/28(月) 09:27:48.27ID:DzCqdkTm >>780
ずっと境界知能だが
ずっと境界知能だが
785デフォルトの名無しさん
2025/04/28(月) 09:38:56.02ID:8CAU371s >>782
Rustを学ぶのにC++の知識は全く不要
Rustはムーブも所有権もあっさり単純化されてる
むしろ複雑化しているC++の知識があるとかえって混乱する人もいれば
すぐにRustでは非常にシンプルになってると気付く人もいる
スタック領域とヒープ領域の違いといった現在のコンピューターの基本常識を身に着けていればRustの学習は大丈夫
ただし何のためにそんなことしているのか必要性の納得がいかない人は自分でCでmalloc()とfree()を使ってプログラムを書いてみる体験するしかないね
Rustを学ぶのにC++の知識は全く不要
Rustはムーブも所有権もあっさり単純化されてる
むしろ複雑化しているC++の知識があるとかえって混乱する人もいれば
すぐにRustでは非常にシンプルになってると気付く人もいる
スタック領域とヒープ領域の違いといった現在のコンピューターの基本常識を身に着けていればRustの学習は大丈夫
ただし何のためにそんなことしているのか必要性の納得がいかない人は自分でCでmalloc()とfree()を使ってプログラムを書いてみる体験するしかないね
786デフォルトの名無しさん
2025/04/28(月) 09:41:49.31ID:xqBJYdnj787デフォルトの名無しさん
2025/04/28(月) 10:06:05.66ID:L3M/APjY 英語圏のパッケージソフトやOSS等のドキュメントを読んでると日本がITで勝てない理由がよくわかるよね
論理的な言語能力が段違い
奴らRedditの便所の落書きですら関心するくらい論理的かつ丁寧だからな
論理的な言語能力が段違い
奴らRedditの便所の落書きですら関心するくらい論理的かつ丁寧だからな
788デフォルトの名無しさん
2025/04/28(月) 10:34:28.00ID:gd16jUat 時間の使い方がおかしいんじゃないの
プロが1分で思いついたムーブが、アマチュアが何時間か探索した手に勝てる保証は全くない
プロが1分で思いついたムーブが、アマチュアが何時間か探索した手に勝てる保証は全くない
789デフォルトの名無しさん
2025/04/28(月) 13:19:02.28ID:uQHt/LFN >>783
今はそんな子ばかりだよ。Javaも触ってないから型付き言語に憧れる。GoぐらいにしとけばいいのにRustやって恨み言を言ってるようだが、それはそう
今はそんな子ばかりだよ。Javaも触ってないから型付き言語に憧れる。GoぐらいにしとけばいいのにRustやって恨み言を言ってるようだが、それはそう
790デフォルトの名無しさん
2025/04/28(月) 21:56:45.28ID:W90Pka9c スレ読んでたら、今更Trait制約などと宣う馬鹿が居て驚いた
791デフォルトの名無しさん
2025/04/28(月) 22:03:15.48ID:LU5KMJmp 制約でも境界でもどちらでもいいからとっととthe rust book 最新版を翻訳して用語を統一しとけ。
最初に翻訳した方を使うことにするわ。
最初に翻訳した方を使うことにするわ。
792デフォルトの名無しさん
2025/04/28(月) 23:45:26.03ID:VLo3P2tE >>779
そういう段階を踏んだ学習をすればRustをほとんどの人が理解できるだろうけど下層プログラマーだけは理解できないと思う
下層プログラマーは既に現在のAIでもうすぐ不要となる人たちだから問題はなさそう
そういう段階を踏んだ学習をすればRustをほとんどの人が理解できるだろうけど下層プログラマーだけは理解できないと思う
下層プログラマーは既に現在のAIでもうすぐ不要となる人たちだから問題はなさそう
793デフォルトの名無しさん
2025/04/29(火) 00:00:51.63ID:qhqmYF5L プログラミングの学習ってそれだけじゃないからな
ジュニアクラスのエンジニアに仕事を教える上で、メモリ管理などの低レベルの技術を教えるよりも、Webの仕組み (インフラだったり、フロントエンドのフレームワークだったり) を教えた方が戦力として役立つという組織も多いだろう
もちろんRustが必要な分野もあるけど、そうでないならRustに時間をかけるより、もっと製品やサービスの開発に直結するものを学んだ方が効率が良い場面も多い
ジュニアクラスのエンジニアに仕事を教える上で、メモリ管理などの低レベルの技術を教えるよりも、Webの仕組み (インフラだったり、フロントエンドのフレームワークだったり) を教えた方が戦力として役立つという組織も多いだろう
もちろんRustが必要な分野もあるけど、そうでないならRustに時間をかけるより、もっと製品やサービスの開発に直結するものを学んだ方が効率が良い場面も多い
794デフォルトの名無しさん
2025/04/29(火) 00:15:51.93ID:qhqmYF5L 自分はWeb系詳しくないから分からんけど、他の言語に比べて特筆して使いやすいフレームワーク (ツールが揃ってるとか、学習リソースが多いなどの点も含めて) があるわけでもないでしょ?
言語の構文よりも、フレームワークの使いやすさや導入しやすさの方が技術選定の上では重要なはず
高パフォーマンスが必要な分野でC++よりもすっと開発しやすい言語だというのはそう
言語の構文よりも、フレームワークの使いやすさや導入しやすさの方が技術選定の上では重要なはず
高パフォーマンスが必要な分野でC++よりもすっと開発しやすい言語だというのはそう
795デフォルトの名無しさん
2025/04/29(火) 00:48:55.50ID:MtXZxAjC 合格ラインギリギリを狙うのが最高に効率が良い
多分AIもギリギリ驚いてあげてもいいレベルで止まる
多分AIもギリギリ驚いてあげてもいいレベルで止まる
796デフォルトの名無しさん
2025/04/29(火) 01:09:26.08ID:4awPUBx2 効率最重視なら当然ギリギリ合格するかどうかという水準がベスト
でも効率最重視より突き詰めて設計したいよね
マージンあった方が安心だぜ
でも効率最重視より突き詰めて設計したいよね
マージンあった方が安心だぜ
797デフォルトの名無しさん
2025/04/29(火) 02:08:43.12ID:Norf50c9798デフォルトの名無しさん
2025/04/29(火) 02:43:09.44ID:Evjw1qeU >>794
クラウドでは CPU やメモリに課金される。
クラウド上のサービスは経営者から金の動きの形で観測できるので高パフォーマンスを求める圧力が強くなってる。
ユーザから見た性能としては必要なくてもコストというわかりやすいビジネス的要因が絡んでる。
サービスの規模によるがウェブは高パフォーマンスが必要な分野なんだよ。
クラウドでは CPU やメモリに課金される。
クラウド上のサービスは経営者から金の動きの形で観測できるので高パフォーマンスを求める圧力が強くなってる。
ユーザから見た性能としては必要なくてもコストというわかりやすいビジネス的要因が絡んでる。
サービスの規模によるがウェブは高パフォーマンスが必要な分野なんだよ。
799デフォルトの名無しさん
2025/04/29(火) 02:47:28.58ID:Norf50c9 アクセス多いサービスはいいなあ
サーバ代10万くらいで済むと経営からの圧力など無い🥺
サーバ代10万くらいで済むと経営からの圧力など無い🥺
800デフォルトの名無しさん
2025/04/29(火) 02:57:41.06ID:KZALrqD+ >>690 >>797
スタートアップを含めてWebバックエンドでRustを採用すべき理由としてよくまとまってるとされてるのがこれ
https://dockyard.com/blog/2025/03/18/why-rust-is-winning-backend-systems-startup-must-know
Web関係はフロントエンドのJS/TS部分を除いてRustが最善解
スタートアップを含めてWebバックエンドでRustを採用すべき理由としてよくまとまってるとされてるのがこれ
https://dockyard.com/blog/2025/03/18/why-rust-is-winning-backend-systems-startup-must-know
Web関係はフロントエンドのJS/TS部分を除いてRustが最善解
801デフォルトの名無しさん
2025/04/29(火) 07:14:39.79ID:qhqmYF5L Rustが辛いという記事も同様に見つかるね
3年間使った上で最終的にRustを手放したという話なんかは、多分あなたよりもずっと真面目にRustに向き合った上でこの結論を出してると思うよ
https://www.propelauth.com/post/i-love-building-a-startup-in-rust-i-wouldnt-pick-it-again
https://loglog.games/blog/leaving-rust-gamedev/
https://deadmoney.gg/news/articles/migrating-away-from-rust
当然だけど「最高の言語」なんてものは無い
それは組織やプロジェクトの特性によるし、開発者が個々に判断すべき話
(Rustがそうでないのと同様に、Goが最高だとかC#が最高だとか、そんなものもあり得ない)
3年間使った上で最終的にRustを手放したという話なんかは、多分あなたよりもずっと真面目にRustに向き合った上でこの結論を出してると思うよ
https://www.propelauth.com/post/i-love-building-a-startup-in-rust-i-wouldnt-pick-it-again
https://loglog.games/blog/leaving-rust-gamedev/
https://deadmoney.gg/news/articles/migrating-away-from-rust
当然だけど「最高の言語」なんてものは無い
それは組織やプロジェクトの特性によるし、開発者が個々に判断すべき話
(Rustがそうでないのと同様に、Goが最高だとかC#が最高だとか、そんなものもあり得ない)
802デフォルトの名無しさん
2025/04/29(火) 07:59:59.47ID:4awPUBx2803デフォルトの名無しさん
2025/04/29(火) 08:10:37.04ID:SlclBfrE コンパイルの遅さ、中間生成物のでかさ、データ構造の変更に弱い、並列性周りのキャッチアップ
このあたりはRustの弱点よな
このあたりはRustの弱点よな
804デフォルトの名無しさん
2025/04/29(火) 08:11:53.11ID:LggudSN5 >>801
ちゃんとそれらの記事を読んだか?
それらを読んだが全てRustは素晴らしいという話だったぞ
1つ目の記事はRustの良い点を列挙してくれている
ただし最後に
「in Rust, for our use case, they both require at least a rough understanding of pinning」
RustだとPin留めについての理解が必要になるというだけの話だった
2つ目の記事の結論は
「Once you get good at Rust all of these problems will go away」
Rustを上達してしまえばこれらの問題はすべて解消されます
3つ目の記事はRustの問題ではない
今回のゲーム作りのタイプが(Rust製の)BevyよりUnityが向いていたというだけの話だった
そしてRustとBevyについても
「 I have immense respect for both and may well use them again for different projects.」
別のプロジェクトでは使う可能性があると書いている
ちゃんとそれらの記事を読んだか?
それらを読んだが全てRustは素晴らしいという話だったぞ
1つ目の記事はRustの良い点を列挙してくれている
ただし最後に
「in Rust, for our use case, they both require at least a rough understanding of pinning」
RustだとPin留めについての理解が必要になるというだけの話だった
2つ目の記事の結論は
「Once you get good at Rust all of these problems will go away」
Rustを上達してしまえばこれらの問題はすべて解消されます
3つ目の記事はRustの問題ではない
今回のゲーム作りのタイプが(Rust製の)BevyよりUnityが向いていたというだけの話だった
そしてRustとBevyについても
「 I have immense respect for both and may well use them again for different projects.」
別のプロジェクトでは使う可能性があると書いている
805デフォルトの名無しさん
2025/04/29(火) 09:07:02.50ID:2WjdTDVx やっぱRustは清書用だな、気楽にバグ有りでも良いから作る分には役割が重すぎる
806デフォルトの名無しさん
2025/04/29(火) 09:07:31.63ID:xTPXppS5 この決めつけで他人に圧を掛けるレスをずっとしてる病人はなんなんだろ?
807デフォルトの名無しさん
2025/04/29(火) 09:08:03.86ID:LggudSN5 >>805
何を根拠にそんな頓珍漢な主張を?
何を根拠にそんな頓珍漢な主張を?
808デフォルトの名無しさん
2025/04/29(火) 09:09:59.77ID:xTPXppS5 rustが使えない人間の方がこの世に多いし今後もそれは変わらない
こんな単純な事実を否定して使えないやつは馬鹿だみたいな圧を掛ける馬鹿
こんな単純な事実を否定して使えないやつは馬鹿だみたいな圧を掛ける馬鹿
809デフォルトの名無しさん
2025/04/29(火) 09:12:09.63ID:2WjdTDVx >>807
Pythonみたいなスクリプト言語と比べて気楽さはないでしょ
Pythonみたいなスクリプト言語と比べて気楽さはないでしょ
810デフォルトの名無しさん
2025/04/29(火) 09:21:01.67ID:5LYm1eZb811デフォルトの名無しさん
2025/04/29(火) 09:25:37.97ID:85zQBF62 801の一番目の記事で言われている、
> Perf is easy when you have AWS credits.
これはWeb分野固有の事情として極めてクリティカル
スタートアップ向けの無料クレジット云々はともかく、金さえ出せば解決するのは事実だからな
そして多くの場合、人間の時間の方が高い
> Perf is easy when you have AWS credits.
これはWeb分野固有の事情として極めてクリティカル
スタートアップ向けの無料クレジット云々はともかく、金さえ出せば解決するのは事実だからな
そして多くの場合、人間の時間の方が高い
812デフォルトの名無しさん
2025/04/29(火) 09:27:24.85ID:yenpBK7D813デフォルトの名無しさん
2025/04/29(火) 09:33:07.30ID:MtXZxAjC 熊を生け捕りにする「圧」がもし本当にあるなら猟銃は必要なくなる
814デフォルトの名無しさん
2025/04/29(火) 09:34:23.44ID:Lw8Z4q0k815デフォルトの名無しさん
2025/04/29(火) 09:37:59.27ID:85zQBF62 >>814
実際に10倍高く、かつそれが機会損失コストと人件費を上回ることが予測できた段階で置き換えればよい
君が実際にプロダクションのWeb開発をやったことがあればわかるはずだが、そんな状況は滅多にお目にかかれない
実際に10倍高く、かつそれが機会損失コストと人件費を上回ることが予測できた段階で置き換えればよい
君が実際にプロダクションのWeb開発をやったことがあればわかるはずだが、そんな状況は滅多にお目にかかれない
816デフォルトの名無しさん
2025/04/29(火) 09:40:09.63ID:5wcVf3HC >>811
記事その部分の前提を見てごらん。
every new employee that isn’t familiar with Rust will run into this. You’ll either need to prioritize Rust experience when hiring or get good at training people.
つまりRustに不慣れな人にとっては、Rustを使わずにAWSに高い料金を払った方が良い場合がある、というだけであって、Rustに慣れてしまえばRustで書いた方が良いね。
記事その部分の前提を見てごらん。
every new employee that isn’t familiar with Rust will run into this. You’ll either need to prioritize Rust experience when hiring or get good at training people.
つまりRustに不慣れな人にとっては、Rustを使わずにAWSに高い料金を払った方が良い場合がある、というだけであって、Rustに慣れてしまえばRustで書いた方が良いね。
817デフォルトの名無しさん
2025/04/29(火) 09:43:15.06ID:SlclBfrE やっぱりRustを使える自分,にアイデンティティの拠り所を求めてるやつがいるなぁ
あるいは知識だけあって使えない反動で書いてるのかな
あるいは知識だけあって使えない反動で書いてるのかな
818デフォルトの名無しさん
2025/04/29(火) 09:43:33.48ID:5wcVf3HC >>815
それはクラウドに高い料金を支払い続けることになり損でしょう。
Web利用側にとっても、反応が速いほうがうれしいでしょう。
Rustに慣れてしまえば解決する問題なのだから、Rustで書くのが正解だと思うよ。
それはクラウドに高い料金を支払い続けることになり損でしょう。
Web利用側にとっても、反応が速いほうがうれしいでしょう。
Rustに慣れてしまえば解決する問題なのだから、Rustで書くのが正解だと思うよ。
819デフォルトの名無しさん
2025/04/29(火) 09:50:15.06ID:MtXZxAjC Rustを使える者、の集合がどうしても必要なのは統計学者だよ
個人のアイデンティティではなく集合の定義が必要なのだ
個人のアイデンティティではなく集合の定義が必要なのだ
820デフォルトの名無しさん
2025/04/29(火) 09:52:34.33ID:xTPXppS5 こいつなんでいつもIDコロコロしてんの?
821デフォルトの名無しさん
2025/04/29(火) 09:53:09.96ID:85zQBF62 >>818
経験があるなら当然知っているはずだが、残念ながらWebのボトルネックはほとんどの場合IOとDBなのです
経験があるなら当然知っているはずだが、残念ながらWebのボトルネックはほとんどの場合IOとDBなのです
822デフォルトの名無しさん
2025/04/29(火) 10:00:39.70ID:uEyS9h0C 「俺はRustが使えないから遅くてもPythonで書いたほうが効率がいいんだ!」と言う主張にも一理ある
しかしそれは個人の事情だろう
Rustスレに書き込んでここを荒らす必要があるのか?
今後はどうしてもRustを叩きたいならば専用のRustアンチスレに書き込みなさい
Rustアンチスレ
https://mevius.5ch.net/test/read.cgi/tech/1509028624/
しかしそれは個人の事情だろう
Rustスレに書き込んでここを荒らす必要があるのか?
今後はどうしてもRustを叩きたいならば専用のRustアンチスレに書き込みなさい
Rustアンチスレ
https://mevius.5ch.net/test/read.cgi/tech/1509028624/
823デフォルトの名無しさん
2025/04/29(火) 10:03:44.71ID:xTPXppS5824デフォルトの名無しさん
2025/04/29(火) 10:08:41.96ID:6lSK2oCI >>821
だからこそRustが有利というのがこの業界の常識
RustならばそのWebのIOとDB待ちの間に並行かつ並列でいくらでも他を安全に捌くことができる
そのためWebの世界はどんどんRust化が進んでいる
ちなみにRustの側でも最も使われている分野がWebサーバーサイドとアンケート結果が出ている
だからこそRustが有利というのがこの業界の常識
RustならばそのWebのIOとDB待ちの間に並行かつ並列でいくらでも他を安全に捌くことができる
そのためWebの世界はどんどんRust化が進んでいる
ちなみにRustの側でも最も使われている分野がWebサーバーサイドとアンケート結果が出ている
825デフォルトの名無しさん
2025/04/29(火) 10:09:02.51ID:qhqmYF5L >>804
Rustへの称賛以外の文章が目に見えない病気なんですかね…
1番目は最後の締めくくりで
But if I look back at it, as much as I love Rust, I absolutely would not choose Rust again.
と言ってるのだけど
開発者が個人としてRustが好きというのと、自分のチームでRustを選ぶべきかというのは別問題
自分もRustは好きだけど、会社だと現状ごく一部のプロジェクトでしか使えないと思ってるし、全てRustという主張は馬鹿だと分かる程度の良識はあるぞ
Rustへの称賛以外の文章が目に見えない病気なんですかね…
1番目は最後の締めくくりで
But if I look back at it, as much as I love Rust, I absolutely would not choose Rust again.
と言ってるのだけど
開発者が個人としてRustが好きというのと、自分のチームでRustを選ぶべきかというのは別問題
自分もRustは好きだけど、会社だと現状ごく一部のプロジェクトでしか使えないと思ってるし、全てRustという主張は馬鹿だと分かる程度の良識はあるぞ
826デフォルトの名無しさん
2025/04/29(火) 10:15:18.14ID:6lSK2oCI Rustを使えない人がいるからRustを使えないケースがあるというのは当たり前だけどそのチームの問題だからここで取り上げても意味ないんじゃないかな
このスレはRustを使いたい人や学びたい人だけで十分
例えばC++のスレでC++を使えない人もいるんだ!とか言い出したら完全に荒らし行為だぞ
このスレはRustを使いたい人や学びたい人だけで十分
例えばC++のスレでC++を使えない人もいるんだ!とか言い出したら完全に荒らし行為だぞ
827デフォルトの名無しさん
2025/04/29(火) 10:20:15.08ID:xTPXppS5 c++はほぼ誰でも普通に使えるだろ
メモリリークなどが発生するだけで
メモリリークなどが発生するだけで
828デフォルトの名無しさん
2025/04/29(火) 10:25:53.49ID:85zQBF62829デフォルトの名無しさん
2025/04/29(火) 10:27:02.06ID:6lSK2oCI >>827
C++使えるならRustも使える
そんなことよりもだな
Rustを使えない人が、Rustを使えないからRustを使うのはよくない!反対!とRustスレに書き込みに来るのはおかしい
荒らし行為だ
C++使えるならRustも使える
そんなことよりもだな
Rustを使えない人が、Rustを使えないからRustを使うのはよくない!反対!とRustスレに書き込みに来るのはおかしい
荒らし行為だ
830デフォルトの名無しさん
2025/04/29(火) 10:29:40.74ID:6lSK2oCI831デフォルトの名無しさん
2025/04/29(火) 10:29:40.82ID:xTPXppS5832デフォルトの名無しさん
2025/04/29(火) 10:31:19.04ID:6lSK2oCI833デフォルトの名無しさん
2025/04/29(火) 10:32:07.53ID:xTPXppS5 普通にストローマン論法だね
相手の主張を捻じ曲げてそれに対して批判するやり方
相手の主張を捻じ曲げてそれに対して批判するやり方
834デフォルトの名無しさん
2025/04/29(火) 10:33:11.40ID:xTPXppS5 > C++使えるならRustも使え
これは間違い
これは間違い
835デフォルトの名無しさん
2025/04/29(火) 10:36:53.75ID:6lSK2oCI スレを荒らしてる人は自覚ないのかな
ここはRustを使いたい人のためのRustスレ
Rustアンチスレがちゃんと別にあるのだから棲み分けしよう
ここはRustを使いたい人のためのRustスレ
Rustアンチスレがちゃんと別にあるのだから棲み分けしよう
836デフォルトの名無しさん
2025/04/29(火) 10:48:01.46ID:jqe5wR1K Rustは好きだけど、Rustを過剰に持ち上げるカルティストは嫌い
こういう輩のせいでRustは信者がうざいとか言われるし、まともな開発者にも迷惑がかかる
良い点も悪い点も含めて、言語の特性や現状を正しく認識しようというのがなぜできないのか
こういう輩のせいでRustは信者がうざいとか言われるし、まともな開発者にも迷惑がかかる
良い点も悪い点も含めて、言語の特性や現状を正しく認識しようというのがなぜできないのか
837デフォルトの名無しさん
2025/04/29(火) 10:54:37.77ID:MtXZxAjC838デフォルトの名無しさん
2025/04/29(火) 10:59:16.54ID:k6/eUMBS839デフォルトの名無しさん
2025/04/29(火) 11:00:35.07ID:xTPXppS5 狂信者がrustの地位や評判を落としてるのでその他の人間には迷惑
840デフォルトの名無しさん
2025/04/29(火) 11:03:29.06ID:nQBNOV6L 言語にアイデンティティを求めてる人の極論はともかく、他は別にRustを叩いているようにも荒らしているようにも見えないな
議論をするときには自己のポジションとアイデンティティを自分の中で区別しておいた方がいい
このスレは優しい方で、特にRustを採用できるような分野でやってきたいならそれができないと辛い思いするよ
議論をするときには自己のポジションとアイデンティティを自分の中で区別しておいた方がいい
このスレは優しい方で、特にRustを採用できるような分野でやってきたいならそれができないと辛い思いするよ
841デフォルトの名無しさん
2025/04/29(火) 11:07:36.96ID:k6/eUMBS842デフォルトの名無しさん
2025/04/29(火) 11:13:28.83ID:xTPXppS5 陰暴論でなんでもない
> C++使えるならRustも使える
これが間違いだと理解できないのは狂信者だろ
C++は型あり言語からやってきたらだいたいの人はコードを書ける
ただ危険なコードも容易に書ける
Rustはそれを阻止するために縛りがある 危険でない部分でもそれが必要になる
その概念を理解しないとコンパイルエラーから抜け出せないので実用的な成果物は作れない
> C++使えるならRustも使える
これが間違いだと理解できないのは狂信者だろ
C++は型あり言語からやってきたらだいたいの人はコードを書ける
ただ危険なコードも容易に書ける
Rustはそれを阻止するために縛りがある 危険でない部分でもそれが必要になる
その概念を理解しないとコンパイルエラーから抜け出せないので実用的な成果物は作れない
843デフォルトの名無しさん
2025/04/29(火) 11:21:05.72ID:Gj8Ry772 >>842
Rust初心者がコンパイル通らなくて困ってるのかな
どの言語でもその言語の決まりを守らないとコンパイルエラーだよ
C++に関して言えば弱い型付け言語で未定義動作もエラーにしないからコンパイルエラーは少なくなるけど
今は強い型付けで未定義動作を許さない言語のほうが主流になってるよ
Rust初心者がコンパイル通らなくて困ってるのかな
どの言語でもその言語の決まりを守らないとコンパイルエラーだよ
C++に関して言えば弱い型付け言語で未定義動作もエラーにしないからコンパイルエラーは少なくなるけど
今は強い型付けで未定義動作を許さない言語のほうが主流になってるよ
844デフォルトの名無しさん
2025/04/29(火) 11:35:49.34ID:MtXZxAjC >危険でない部分でもそれが必要になる
ギリギリ危険でないコードを不合格にするんだな
極めてなにか効率にたいする侮辱を感じます
ギリギリ危険でないコードを不合格にするんだな
極めてなにか効率にたいする侮辱を感じます
845デフォルトの名無しさん
2025/04/29(火) 11:50:27.89ID:85zQBF62 可変参照の排他性なんかは場合によっては効率性を犠牲にしても安全側に倒してる例だね。
846デフォルトの名無しさん
2025/04/29(火) 11:58:15.87ID:Gj8Ry772847デフォルトの名無しさん
2025/04/29(火) 12:02:19.93ID:Evjw1qeU C++ を使えている人なら Rust のチュートリアルを読めば簡単な実務を始められるくらいにはなれそうな感覚があるんだけどなぁ。
難易度の高さをしきりに主張する人がずっといるのがなんだかよくわからない。
いや、難しいと感じる人だっているというのを否定するつもりはないんだけどさ……
C++ はかなり面倒な部類だぞ。
その面倒な C++ を使いこなせるくらいの能力という前提を付けられるときに Rust がそこまで激烈にしんどいか?
難易度の高さをしきりに主張する人がずっといるのがなんだかよくわからない。
いや、難しいと感じる人だっているというのを否定するつもりはないんだけどさ……
C++ はかなり面倒な部類だぞ。
その面倒な C++ を使いこなせるくらいの能力という前提を付けられるときに Rust がそこまで激烈にしんどいか?
848デフォルトの名無しさん
2025/04/29(火) 12:13:51.06ID:85zQBF62 C++からの移行についてはそれほど議論の余地はなくて、周辺環境が許せば移行すればよい、で終わり
C++の開発というのは比較的ニッチかつ保守的なので、C++を使っていて、かつ周辺環境が移行を許す状況というのがそもそも稀
C++の開発というのは比較的ニッチかつ保守的なので、C++を使っていて、かつ周辺環境が移行を許す状況というのがそもそも稀
849デフォルトの名無しさん
2025/04/29(火) 12:50:13.98ID:qhqmYF5L C++が分かるならRustは学びやすい、というのはその通り
だけどそもそもC/C++をやらずに仕事できてる人も今はずっと多いわけで
> C++ はかなり面倒な部類だぞ。
> その面倒な C++ を使いこなせるくらいの能力という前提を付けられるときに
の「前提」というのが既に世間一般の感覚とズレてるのでないかと思う
だけどそもそもC/C++をやらずに仕事できてる人も今はずっと多いわけで
> C++ はかなり面倒な部類だぞ。
> その面倒な C++ を使いこなせるくらいの能力という前提を付けられるときに
の「前提」というのが既に世間一般の感覚とズレてるのでないかと思う
850デフォルトの名無しさん
2025/04/29(火) 13:27:22.82ID:uvfd+gUP C++は学んだことないけど
スタック領域とヒープ領域の違いは理解できていたからRustを学ぶうえで特に困ったことはなかったよ
ライフタイムも関数を抜けたら消えちゃうスタック領域とその変数に管理されて依存するヒープ領域
関数の呼び出し入れ子で祖先側のスタック領域は子孫側のスタック領域より長生きというだけの話だった
スタック領域とヒープ領域の違いは理解できていたからRustを学ぶうえで特に困ったことはなかったよ
ライフタイムも関数を抜けたら消えちゃうスタック領域とその変数に管理されて依存するヒープ領域
関数の呼び出し入れ子で祖先側のスタック領域は子孫側のスタック領域より長生きというだけの話だった
851デフォルトの名無しさん
2025/04/29(火) 13:56:05.54ID:Evjw1qeU852デフォルトの名無しさん
2025/04/29(火) 14:28:41.68ID:V0qLshIG Rustは脳死で使えるイディオムが豊富なので楽
C++は時代によって流儀が変わりすぎる
C++は時代によって流儀が変わりすぎる
853デフォルトの名無しさん
2025/04/29(火) 14:32:21.54ID:4awPUBx2 昔からム板は平均より遥かに上のひとしかおらんがな
平均的なプログラマーは3年目ぐらいからは勉強すらしてないし
平均的なプログラマーは3年目ぐらいからは勉強すらしてないし
854デフォルトの名無しさん
2025/04/29(火) 16:32:22.17ID:YYaK7+X4 >>852
C++ は設計理念のひとつとしてプログラマに選択の余地を与える (間違いの可能性があっても) というものを含んでいるので意図通りの結果ではある。
分野ごとの流儀や時代の要請が言語の流儀と噛み合わなくなると単にその言語が使われなくなるだけなので長く生き残るには (汚くても) 色々とできるように詰め込むしか仕方がないんだ。
C++ は設計理念のひとつとしてプログラマに選択の余地を与える (間違いの可能性があっても) というものを含んでいるので意図通りの結果ではある。
分野ごとの流儀や時代の要請が言語の流儀と噛み合わなくなると単にその言語が使われなくなるだけなので長く生き残るには (汚くても) 色々とできるように詰め込むしか仕方がないんだ。
855デフォルトの名無しさん
2025/04/29(火) 16:32:23.99ID:jZEw8P94 ム板が平均よりはるかに上?
856デフォルトの名無しさん
2025/04/29(火) 16:48:30.04ID:YYaK7+X4 大半の人は情報収集しないしコミュニティに属さないのは本当だ。
そういう意味では多少なりとも交流を持とうとしているのは平均以上の可能性が高い。
その一方で、ガチの上級者はガチの業務をしてるしガチなコミュニティに属しているからこんなとこにいない。
そういう意味では多少なりとも交流を持とうとしているのは平均以上の可能性が高い。
その一方で、ガチの上級者はガチの業務をしてるしガチなコミュニティに属しているからこんなとこにいない。
857デフォルトの名無しさん
2025/04/29(火) 17:51:47.71ID:uvfd+gUP >>854
Rustはどうしても必要不可欠ならばその汚いもの(unsafe)を関数やモジュールやクレートの中に閉じ込めて清らかな(safe)インターフェイスを公開する枠組みを持たせたね
そのように閉じ込めることでコンパイラによる自動保証の外の範囲も限定して管理できるようになり安全性と柔軟性や高速性の両立バランスをRustは手に入れた
Rustはどうしても必要不可欠ならばその汚いもの(unsafe)を関数やモジュールやクレートの中に閉じ込めて清らかな(safe)インターフェイスを公開する枠組みを持たせたね
そのように閉じ込めることでコンパイラによる自動保証の外の範囲も限定して管理できるようになり安全性と柔軟性や高速性の両立バランスをRustは手に入れた
858デフォルトの名無しさん
2025/04/29(火) 18:17:31.81ID:MtXZxAjC 交流しているのは評論家だけ
クリエイターの能力値はDS並に謎に包まれている
クリエイターの能力値はDS並に謎に包まれている
859デフォルトの名無しさん
2025/04/29(火) 18:25:25.23ID:1/cFi/QG いちいち訳語につっかかったり普及してるかどうかのレスバしかしてない奴らの集団が平均以上なわけないじゃん
860デフォルトの名無しさん
2025/04/29(火) 18:37:35.61ID:qhqmYF5L Rustでイディオムっぽく感じるのって個人的にはビルダーくらいな気がする
オプション引数やオーバーロードが無いから慣習的にビルダーを多様する、みたいなもので
他は割と言語デザインに沿って素直に書けるという感じ
オプション引数やオーバーロードが無いから慣習的にビルダーを多様する、みたいなもので
他は割と言語デザインに沿って素直に書けるという感じ
861デフォルトの名無しさん
2025/04/29(火) 18:45:02.43ID:Q2Q+JRXz どっかでビルダーパターンは良くないぞ、考え直せって記事を読んだ気がするが
内容を忘れてしまった
誰か教えて
内容を忘れてしまった
誰か教えて
862デフォルトの名無しさん
2025/04/29(火) 19:13:59.81ID:Evjw1qeU ウェブショッピンクサービス ViaWeb (後に Yahoo に買われた) の創設者であるポール・グレアムはイディオム (デザインパターン) が必要とされる言語は悪い言語だと述べてる。
頻繁に使われるパターンがあるならそのパターンは言語機能やライブラリになっているべきで、ユーザがパターンに沿って書くのはあほくさいという話。
頻繁に使われるパターンがあるならそのパターンは言語機能やライブラリになっているべきで、ユーザがパターンに沿って書くのはあほくさいという話。
863デフォルトの名無しさん
2025/04/29(火) 19:30:07.84ID:Evjw1qeU >>857
汚い部分を隠して残る綺麗な部分は Rust の流儀だ。
Rust では Rust 的ではない抽象化ができないようになっている。
C++ 的な混沌よりは Rust の流儀を強制されたほうが今のところはマシなんだが、そうはいっても未来がどうなるかはわからんからなぁ……という現実が理想的ではないという話。
汚い部分を隠して残る綺麗な部分は Rust の流儀だ。
Rust では Rust 的ではない抽象化ができないようになっている。
C++ 的な混沌よりは Rust の流儀を強制されたほうが今のところはマシなんだが、そうはいっても未来がどうなるかはわからんからなぁ……という現実が理想的ではないという話。
864デフォルトの名無しさん
2025/04/29(火) 19:30:23.61ID:o2zlgANI リスパーの言うことなんか聞くな
865デフォルトの名無しさん
2025/04/29(火) 19:40:07.38ID:XmZc7X21 BufWriterとかでnewにinnerを丸呑みさせて用が済んだらinto_innerで摘出するパターンもRust特有だと思う
他の言語だとinnerは参照で渡しそうだけどRustでそれやると可変参照のライフタイムでカオスになる
このパターンに慣れるまで何回かカオスを経験した
他の言語だとinnerは参照で渡しそうだけどRustでそれやると可変参照のライフタイムでカオスになる
このパターンに慣れるまで何回かカオスを経験した
866デフォルトの名無しさん
2025/04/29(火) 19:41:32.29ID:Evjw1qeU Common Lisp は有用な選択肢だと思うけどなあ。
ガッとラフに作れるというのと機械語レベルでのチューニングもできるという良いとこ取りだ。
ただ、ユーザが少ないと使えるライブラリも少なくて、だからユーザが伸びないというスパイラルがある。
物量が正義というのが現実なんだよね……。
ガッとラフに作れるというのと機械語レベルでのチューニングもできるという良いとこ取りだ。
ただ、ユーザが少ないと使えるライブラリも少なくて、だからユーザが伸びないというスパイラルがある。
物量が正義というのが現実なんだよね……。
867デフォルトの名無しさん
2025/04/29(火) 19:45:09.79ID:85zQBF62 builder嫌い
たかが構造体にパラメータ詰めるだけのことにいちいちオリジナリティを出すな
たかが構造体にパラメータ詰めるだけのことにいちいちオリジナリティを出すな
868デフォルトの名無しさん
2025/04/29(火) 19:52:58.08ID:Zs9DBDpd >>848
RustとC++の相性は最悪
RustとC++の相性は最悪
869デフォルトの名無しさん
2025/04/29(火) 20:05:56.08ID:Q2Q+JRXz870デフォルトの名無しさん
2025/04/29(火) 21:09:44.91ID:FS6BNYIE >>861
これかな?
ビルダーの代わりにinit struct pattern というのを提案してる
https://xaeroxe.github.io/init-struct-pattern/
ボイラープレートが少なくて簡単だけど、初期化用の構造体のフィールドがpublicなのは好みが分かれる
現状はビルダーの方が主流
外部に公開するライブラリのAPIとして使うのは微妙だけど、自分たちのコードの内部で使う分にはアリかもしれない
これかな?
ビルダーの代わりにinit struct pattern というのを提案してる
https://xaeroxe.github.io/init-struct-pattern/
ボイラープレートが少なくて簡単だけど、初期化用の構造体のフィールドがpublicなのは好みが分かれる
現状はビルダーの方が主流
外部に公開するライブラリのAPIとして使うのは微妙だけど、自分たちのコードの内部で使う分にはアリかもしれない
871デフォルトの名無しさん
2025/04/29(火) 21:30:51.12ID:Q2Q+JRXz872デフォルトの名無しさん
2025/04/29(火) 22:02:39.41ID:MtXZxAjC 車オブジェクトに高度を変えるメソッドがあったらおかしい
空飛ぶ車オブジェクトは一時的にメソッドの存在自体を消すシステムをもつべき
空飛ぶ車オブジェクトは一時的にメソッドの存在自体を消すシステムをもつべき
873デフォルトの名無しさん
2025/04/30(水) 01:02:26.08ID:RVMp5la+ こっち見といたほうがいいと思う
https://kerkour.com/rust-abolish-the-builder-pattern
YakShaverInitをinitしてYakShaver返すとかいろんな意味で微妙
YakShaverBuilderをbuildしてYakShaver返す癖が抜けてない
https://kerkour.com/rust-abolish-the-builder-pattern
YakShaverInitをinitしてYakShaver返すとかいろんな意味で微妙
YakShaverBuilderをbuildしてYakShaver返す癖が抜けてない
874デフォルトの名無しさん
2025/04/30(水) 01:03:45.45ID:RVMp5la+ どっちかが絶対いいというものではなくて使い分けるもの
875デフォルトの名無しさん
2025/04/30(水) 01:38:53.14ID:AZF3og04 >>873
the best code is no code at all か、なるほどね
構造体更新記法を使ってもらわないと、メンバー追加したときにコンパイル通らなくなるけど
それを問題視する人としない人がいるって感じ?
個人的には、今のRustはその程度の軽い互換性破壊は日常茶飯事だから別にいいのでは?って気がするけど
the best code is no code at all か、なるほどね
構造体更新記法を使ってもらわないと、メンバー追加したときにコンパイル通らなくなるけど
それを問題視する人としない人がいるって感じ?
個人的には、今のRustはその程度の軽い互換性破壊は日常茶飯事だから別にいいのでは?って気がするけど
876デフォルトの名無しさん
2025/04/30(水) 06:24:04.68ID:aRycYPw9 内部用は自由だが
少なくとも公開ライブラリの構造体の初期化の結論は出ている
まず各フィールド個別のpub化は以下の点で良くない
・構造体の値個別や全体の制約による無矛盾性を保証できない
・内部実装の改善による構造の変化に対応できない
・今後の機能拡張によるフィールド増加に弱い
したがってどうしてもビルダーパターンを使いたくないのならば
Foo初期化指定用の構造体FooConfigを更に用意してそれはpubを許して
Foo::init(FooConfig { FooConfig:: default(), i: 123, s: "abc" })?
またはこうする
FooConfig { FooConfig:: default(), i: 123, s: "abc" }.init()?
そしてinit()内で指定値チェックと本当の内部構造への変換をする形になる
同じことはビルダーパターンだとderive_builderを用いると提供側は簡単
使う側はおなじみの以下の形になる
FooBuilder::default().i(123).s("abc").build()?
どちらの方式も指定の構文が異なるだけで同じような形になってることがわかる
個人的にはビルダーパターンの方がよりシンプルだと思う
そしてRustでの主流となっている
少なくとも公開ライブラリの構造体の初期化の結論は出ている
まず各フィールド個別のpub化は以下の点で良くない
・構造体の値個別や全体の制約による無矛盾性を保証できない
・内部実装の改善による構造の変化に対応できない
・今後の機能拡張によるフィールド増加に弱い
したがってどうしてもビルダーパターンを使いたくないのならば
Foo初期化指定用の構造体FooConfigを更に用意してそれはpubを許して
Foo::init(FooConfig { FooConfig:: default(), i: 123, s: "abc" })?
またはこうする
FooConfig { FooConfig:: default(), i: 123, s: "abc" }.init()?
そしてinit()内で指定値チェックと本当の内部構造への変換をする形になる
同じことはビルダーパターンだとderive_builderを用いると提供側は簡単
使う側はおなじみの以下の形になる
FooBuilder::default().i(123).s("abc").build()?
どちらの方式も指定の構文が異なるだけで同じような形になってることがわかる
個人的にはビルダーパターンの方がよりシンプルだと思う
そしてRustでの主流となっている
877デフォルトの名無しさん
2025/04/30(水) 10:08:02.30ID:uCqRd3Sw 強制すれば良いのに
878デフォルトの名無しさん
2025/04/30(水) 11:07:06.59ID:8LRHZRl/ ビルダー自体が便利だとは思えないんだよな
オプション引数やオーバーロードが無いのを解決するためのもので、他の言語から来ると戸惑うと思う
(型で遷移を表現するなど、パターン自体は Rust らしいし、理解自体は容易だけど)
オーバーロードは別の面倒を生むから無くて良いと思うけど、オプション引数は個人的にはあると嬉しい気がする
実はGoもオプション引数が無い言語で、代わりに functional option パターンというのを使うんだけど、これもイディオムを知らない人にとって直観的でないと言われがち
同時期に登場した言語がどちらも採用しなかったんだから、多分それなりの理由があるんだろうな
オプション引数やオーバーロードが無いのを解決するためのもので、他の言語から来ると戸惑うと思う
(型で遷移を表現するなど、パターン自体は Rust らしいし、理解自体は容易だけど)
オーバーロードは別の面倒を生むから無くて良いと思うけど、オプション引数は個人的にはあると嬉しい気がする
実はGoもオプション引数が無い言語で、代わりに functional option パターンというのを使うんだけど、これもイディオムを知らない人にとって直観的でないと言われがち
同時期に登場した言語がどちらも採用しなかったんだから、多分それなりの理由があるんだろうな
879デフォルトの名無しさん
2025/04/30(水) 11:52:30.40ID:MOUA/jrw 簡単に言えば、virtualを使ってないデザインパターンは追放されない
880デフォルトの名無しさん
2025/04/30(水) 12:05:47.96ID:yPZIq5F0 ム板全体が限界過疎集落化してるのに
Rustスレだけ人が居るのはなぜ?
他に交流の場が無いのかな?
Rustスレだけ人が居るのはなぜ?
他に交流の場が無いのかな?
881デフォルトの名無しさん
2025/04/30(水) 12:11:54.22ID:VKtsx7kS 自作自演
882デフォルトの名無しさん
2025/04/30(水) 12:21:33.61ID:TMleEpRy 規模が大きくなるにつれてbestよりconsistentの重要性が高まるものだ
将来的な変更容易性がどうのと言って必要以上に凝ろうとする奴に限って、
革新的で最高にクールなニュースタイルのビルダーが出てきたらすぐにちゃぶ台返しをする
まあ初期化時のパラメータの与え方なんて壊滅的変更されたところで大した問題じゃないから、
そういう奴に自由にオナニーさせて発散させておくにはいいのかもね
将来的な変更容易性がどうのと言って必要以上に凝ろうとする奴に限って、
革新的で最高にクールなニュースタイルのビルダーが出てきたらすぐにちゃぶ台返しをする
まあ初期化時のパラメータの与え方なんて壊滅的変更されたところで大した問題じゃないから、
そういう奴に自由にオナニーさせて発散させておくにはいいのかもね
883デフォルトの名無しさん
2025/04/30(水) 12:21:42.88ID:THYm3xdc 単に書き方がちょっと面倒というのを解決したいならマクロを使えばよいということだと思う。
実際にそういう使われかたをしてるし。
実際にそういう使われかたをしてるし。
884デフォルトの名無しさん
2025/04/30(水) 12:44:48.88ID:s47+7HVZ 自演
885デフォルトの名無しさん
2025/04/30(水) 13:00:34.55ID:uCqRd3Sw886デフォルトの名無しさん
2025/04/30(水) 14:42:30.43ID:UhuBHLAw >>878
Builderパターンは設定(引数渡し)とオブジェクト生成を分離するのが本質的な特徴。
デフォルトの省略とか渡す順番の自由化とかあるけど、それも設定と生成の分離から派生した特徴でしか無い。また分離した結果として複数個所からの同時アクセスに弱いけど、そういうのを理解して使えばいい。
Builderパターンは設定(引数渡し)とオブジェクト生成を分離するのが本質的な特徴。
デフォルトの省略とか渡す順番の自由化とかあるけど、それも設定と生成の分離から派生した特徴でしか無い。また分離した結果として複数個所からの同時アクセスに弱いけど、そういうのを理解して使えばいい。
887デフォルトの名無しさん
2025/04/30(水) 15:49:41.55ID:AZF3og04 あちこちがガンガン破壊的変更されていくRust界で、
初期化のとこだけBuilderパターンで互換性ありますよーってあんまり意味ない気がする
初期化のとこだけBuilderパターンで互換性ありますよーってあんまり意味ない気がする
888デフォルトの名無しさん
2025/04/30(水) 16:17:15.30ID:JQkc0XME >>880
約一名必死なやつがいるから
約一名必死なやつがいるから
889デフォルトの名無しさん
2025/04/30(水) 17:44:14.52ID:y1rgmJae >>887
Rustは他の言語と比べても破壊的変更は少ない方じゃないかな
しかもRustにはEditionという概念があって必ずCargo.tomlに指定したうえでソースコードを書く
そのため破壊的変更より前の古いソースコードも影響を受けずにコンパイルできて実行できたりする
第三者が作ったライブラリ(crate)についてはCargo.tomlにバージョン番号を指定して使っていれば
そのまま当時のソースコードを使うためコンパイルできて実行できたりする
もちろん古いものセキュリティホールなどが発見されれば対応せざるをえないのは当然だけどね
いずれも全てのケース100%で今後も永遠に大丈夫というわけではないかもしれないけど
バージョンの違いなどで苦しんでるプログラミング言語などと比べたらRustは恵まれてると思うよ
Rustは他の言語と比べても破壊的変更は少ない方じゃないかな
しかもRustにはEditionという概念があって必ずCargo.tomlに指定したうえでソースコードを書く
そのため破壊的変更より前の古いソースコードも影響を受けずにコンパイルできて実行できたりする
第三者が作ったライブラリ(crate)についてはCargo.tomlにバージョン番号を指定して使っていれば
そのまま当時のソースコードを使うためコンパイルできて実行できたりする
もちろん古いものセキュリティホールなどが発見されれば対応せざるをえないのは当然だけどね
いずれも全てのケース100%で今後も永遠に大丈夫というわけではないかもしれないけど
バージョンの違いなどで苦しんでるプログラミング言語などと比べたらRustは恵まれてると思うよ
890デフォルトの名無しさん
2025/04/30(水) 18:21:50.73ID:JJ8dHA07 ワシらの作るサービスがヒットするわけ無いだろ。打率0割0分5厘
スーパーなプロデューサに仕えねば
スーパーなプロデューサに仕えねば
891デフォルトの名無しさん
2025/04/30(水) 18:50:26.71ID:61w1rbBX892デフォルトの名無しさん
2025/04/30(水) 19:04:33.02ID:v8y83nww893デフォルトの名無しさん
2025/04/30(水) 19:17:57.26ID:JJ8dHA07 エディションの機能あるのRustだけじゃね。
Cなんかもコンパイラオプションでゴニョゴニョ出来るけど
Cなんかもコンパイラオプションでゴニョゴニョ出来るけど
894デフォルトの名無しさん
2025/04/30(水) 19:18:18.80ID:y1rgmJae895デフォルトの名無しさん
2025/04/30(水) 19:52:49.23ID:v8y83nww そんなNPTがあるから核兵器は安全だ!みたいなこと言われてもな
896デフォルトの名無しさん
2025/04/30(水) 19:53:45.22ID:THYm3xdc ひとつのプロジェクトに異なるエディションが混在することもできるけど、そうなると ABI の互換性は切れないし、エディションという仕組みがどれくらい長期的に機能するかちょっと読めない。
旧エディションを際限なくサポートするわけにもいかんし、ある程度古くなったエディションはそのうちサポートは切られるんじゃないかな?
新エディションに書き換えるツールは提供されてるので定期的に書き換えてメンテナンスするくらいは必要じゃない? もちろんプログラマも新エディションの機能を把握するのは要る。
旧エディションを際限なくサポートするわけにもいかんし、ある程度古くなったエディションはそのうちサポートは切られるんじゃないかな?
新エディションに書き換えるツールは提供されてるので定期的に書き換えてメンテナンスするくらいは必要じゃない? もちろんプログラマも新エディションの機能を把握するのは要る。
897デフォルトの名無しさん
2025/04/30(水) 19:56:05.44ID:JJ8dHA07 それは、仕方なし
898デフォルトの名無しさん
2025/04/30(水) 20:02:14.30ID:y1rgmJae899デフォルトの名無しさん
2025/04/30(水) 20:02:41.40ID:JQkc0XME Rust ABIは一度も安定化したことがないから保つべき互換性なんてものはないので安心してください
900デフォルトの名無しさん
2025/04/30(水) 20:03:10.33ID:etHuYXUz 他でも同じ
python2 python3
python2 python3
901デフォルトの名無しさん
2025/04/30(水) 20:04:46.85ID:v8y83nww 塩漬けにするなら普通は処理系のバージョンも含めて塩漬けにするもんだし、
>>896の指摘するように古いエディションのサポートが切られたら否が応でもそうするしかなくなる
>>896の指摘するように古いエディションのサポートが切られたら否が応でもそうするしかなくなる
902デフォルトの名無しさん
2025/04/30(水) 20:05:30.86ID:etHuYXUz この件でrustが優れていると言うのは違うかと
903デフォルトの名無しさん
2025/04/30(水) 20:09:05.80ID:JQkc0XME C/C++だってコンパイラオプションで規格明示すればいいだけだしねえ
904デフォルトの名無しさん
2025/04/30(水) 20:30:24.75ID:y1rgmJae 3年毎のエディションの仕組みが明確にあって
ソースコードのCargo.tomlにエディションが必ず指定されてるから
コンパイルオプション指定も含めてソースコードを全く変更せずに動く
という点が他とは異なるね
あと将来は古いのは切るかもしれないけど
今のところ最新コンパイラもエディション2015,2018,2021,2024を全てサポートしていてコンパイルして動くね
その時コンパイラが警告してくれるし移行ツールもあるのでエディション移行もしやすい
ソースコードのCargo.tomlにエディションが必ず指定されてるから
コンパイルオプション指定も含めてソースコードを全く変更せずに動く
という点が他とは異なるね
あと将来は古いのは切るかもしれないけど
今のところ最新コンパイラもエディション2015,2018,2021,2024を全てサポートしていてコンパイルして動くね
その時コンパイラが警告してくれるし移行ツールもあるのでエディション移行もしやすい
905デフォルトの名無しさん
2025/04/30(水) 20:53:46.40ID:THYm3xdc >>903
C/C++ には欠陥報告という制度があって、規格の過去の版に遡って修正されることがある。
大半は文章の曖昧さの修正や緩和の方向だから深刻な互換性問題にはあまりならないんだけど、なにせ修正の件数自体が多いから割合として少なくても互換性を損なう修正もそこそこある。
つまり昔の C++11 と今の C++11 は別物と考える必要がある。
そんでコンパイラによって規格の修正の反映具合が違ったりして混沌としてるんだわ。
実際に昔のコードを今のコンパイラでコンパイルしようとしてもエラーがゼロなんて場合はほとんどない。
C/C++ には欠陥報告という制度があって、規格の過去の版に遡って修正されることがある。
大半は文章の曖昧さの修正や緩和の方向だから深刻な互換性問題にはあまりならないんだけど、なにせ修正の件数自体が多いから割合として少なくても互換性を損なう修正もそこそこある。
つまり昔の C++11 と今の C++11 は別物と考える必要がある。
そんでコンパイラによって規格の修正の反映具合が違ったりして混沌としてるんだわ。
実際に昔のコードを今のコンパイラでコンパイルしようとしてもエラーがゼロなんて場合はほとんどない。
906デフォルトの名無しさん
2025/04/30(水) 21:04:19.22ID:v8y83nww そりゃC++は時間のスケールが違うからな
C++を引き合いに出すなら、20年待たないとRustのエディションが主張通りに機能したかどうか結論は出ない
C++を引き合いに出すなら、20年待たないとRustのエディションが主張通りに機能したかどうか結論は出ない
907デフォルトの名無しさん
2025/04/30(水) 21:20:15.53ID:Jt3SshjK ここ覗いてるのってメーカー勤めの技術的リスク取れないチキンな皆さんなのかね
やっていこうぜ。不満があればイシューツリーかパッチ投げよう
やっていこうぜ。不満があればイシューツリーかパッチ投げよう
908デフォルトの名無しさん
2025/04/30(水) 21:30:45.31ID:y1rgmJae >>906
現に10年前のRust 2015 edition指定のコードが動いているから大丈夫だと思うよ
最新コンパイラが2015 editionをサポートする間はそのままコンパイルできて動作するね
その話と関係なくcargo fix -editionで半自動でedition移行ができるから自分のソースコードなら手直ししてすぐ解決
現に10年前のRust 2015 edition指定のコードが動いているから大丈夫だと思うよ
最新コンパイラが2015 editionをサポートする間はそのままコンパイルできて動作するね
その話と関係なくcargo fix -editionで半自動でedition移行ができるから自分のソースコードなら手直ししてすぐ解決
909デフォルトの名無しさん
2025/04/30(水) 21:47:40.41ID:MOUA/jrw 自分のソースコードしか手直しできないってなんでだろう
もっと他人のソースコードを批評したり手直ししたりすれば楽しいのに
もっと他人のソースコードを批評したり手直ししたりすれば楽しいのに
910デフォルトの名無しさん
2025/04/30(水) 22:24:04.29ID:OzkHKJVN 人のもやればいいけど技術以外の問題があるだけでしょ
コミット権限がないとか
コミット権限がないとか
911デフォルトの名無しさん
2025/04/30(水) 23:07:35.68ID:aRycYPw9 >>878
今回の構造体初期化のビルダーパターンと比べて
名前なしオプション引数やオーバーロードは以下の点で劣っている
・コードを書くときに間違いを起こしやすい
・コードを読む時にもわかりにくい
・同じ型が区別できない (同じ型のheightとwidthの片方だけ指定したい時)
・多数あると組み合わせ爆発が起こる
したがって利用可能な方法は名前指定オプション引数となる
例えば
f(name1=value1, name2=value2, ...)
一方でビルダーパターンでは例えば
f().name1(value1).name2(value2) ...
コードを書く側としてはどちらも大して変わらない
慣れだけの問題であり一瞬で適応できる
利用側としては上記のように大した差はないが
提供する側のコードが面倒で冗長になることがビルダーパターンの欠点であった
しかしこの問題をRustではderive_builderが解決してしまった
初期化したい構造体への簡単な修飾でそのビルダー構造体と実装を自動生成してくれる
他に改善すべき点や案などあるだろうか
今回の構造体初期化のビルダーパターンと比べて
名前なしオプション引数やオーバーロードは以下の点で劣っている
・コードを書くときに間違いを起こしやすい
・コードを読む時にもわかりにくい
・同じ型が区別できない (同じ型のheightとwidthの片方だけ指定したい時)
・多数あると組み合わせ爆発が起こる
したがって利用可能な方法は名前指定オプション引数となる
例えば
f(name1=value1, name2=value2, ...)
一方でビルダーパターンでは例えば
f().name1(value1).name2(value2) ...
コードを書く側としてはどちらも大して変わらない
慣れだけの問題であり一瞬で適応できる
利用側としては上記のように大した差はないが
提供する側のコードが面倒で冗長になることがビルダーパターンの欠点であった
しかしこの問題をRustではderive_builderが解決してしまった
初期化したい構造体への簡単な修飾でそのビルダー構造体と実装を自動生成してくれる
他に改善すべき点や案などあるだろうか
912デフォルトの名無しさん
2025/04/30(水) 23:46:19.22ID:HBKx6hEm 一面しか見ないバカ
相変わらずだな
相変わらずだな
913デフォルトの名無しさん
2025/05/01(木) 00:06:22.35ID:wMrbWiVF rustは関数オーバーロードがないからビルダーパターンに頼らざるを得ない
914デフォルトの名無しさん
2025/05/01(木) 00:23:28.70ID:KmLg46A3 Builderと大して変わらないと思うけど
内部非公開のstruct Fooに対して内部公開のstruct FooDraftを用意して
let foo: Foo = FooDraft {
i: 123,
s: "abc",
..Default::default(),
}.try_into()?;
みたいな形は考えたことある
まじめにやるならFooDraftはnon_exhaustiveを付けた方がいい
内部非公開のstruct Fooに対して内部公開のstruct FooDraftを用意して
let foo: Foo = FooDraft {
i: 123,
s: "abc",
..Default::default(),
}.try_into()?;
みたいな形は考えたことある
まじめにやるならFooDraftはnon_exhaustiveを付けた方がいい
915デフォルトの名無しさん
2025/05/01(木) 00:34:22.74ID:wMrbWiVF どちらにしてもコンストラクタがライトウェイトじゃなくなるし利便性も低下する
916デフォルトの名無しさん
2025/05/01(木) 01:16:01.59ID:MWOwr0re お前らしょうもない言い争いしてる暇あったらRustでプログラミングしようぜ
楽しいぞ😎
楽しいぞ😎
917デフォルトの名無しさん
2025/05/01(木) 01:28:23.84ID:f3hi8cvW f(a,b,c);
g(a,b,c);
h(a,b,c);
ももっと短くするべきで、引数をstructにすればこの問題も解決する
が、キーワード引数はこのコードを更に長くしてしまう
g(a,b,c);
h(a,b,c);
ももっと短くするべきで、引数をstructにすればこの問題も解決する
が、キーワード引数はこのコードを更に長くしてしまう
918デフォルトの名無しさん
2025/05/01(木) 01:50:56.00ID:cAYi0wMW919デフォルトの名無しさん
2025/05/01(木) 01:53:34.42ID:cAYi0wMW920デフォルトの名無しさん
2025/05/01(木) 01:58:46.40ID:cAYi0wMW >>907
ダブスタ意見はやめとけ
ダブスタ意見はやめとけ
921デフォルトの名無しさん
2025/05/01(木) 02:00:23.14ID:N2U44pfA ワイはメーカーじゃないので暇つぶし
922デフォルトの名無しさん
2025/05/01(木) 10:03:23.98ID:nTiKCI2R 完全無欠ωのRustにリスクがあることを認めるのですねわかります
923デフォルトの名無しさん
2025/05/01(木) 10:37:30.35ID:TCz7x/v2 何にでもリスクはある
924デフォルトの名無しさん
2025/05/01(木) 10:38:10.43ID:TCz7x/v2 成功する宝くじだけ買いたいなんて文科省だけだぞ
925デフォルトの名無しさん
2025/05/01(木) 10:49:46.51ID:1Pg0gBiY コロンブスがリスクを取らなければいまだにアメリカ大陸は無人の動物王国だった
アムンゼンしかり、いつの時代も最初にリスク取る人間は周りに理解されない
アムンゼンしかり、いつの時代も最初にリスク取る人間は周りに理解されない
926デフォルトの名無しさん
2025/05/01(木) 10:58:47.12ID:/KCrsMZn ガチでリスクを取れる人間は今はバイブコーディング&動いてるっぽいからリリースしようぜ!に夢中なはず
Rustはコントロールできないリスクは取りたくないくせに俺スゲーしたい中途半端な人間向け
Rustはコントロールできないリスクは取りたくないくせに俺スゲーしたい中途半端な人間向け
927デフォルトの名無しさん
2025/05/01(木) 11:49:06.01ID:nTiKCI2R インディアンと呼ばれた先住民が動物とはこれいかに
928デフォルトの名無しさん
2025/05/01(木) 12:04:15.65ID:TCz7x/v2 >>926
リスクだけ取りたいなら登山でもしてて
リスクだけ取りたいなら登山でもしてて
929デフォルトの名無しさん
2025/05/01(木) 12:07:18.57ID:f3hi8cvW 射程距離が長い武器は接近戦から逃げているだけだな
当たると豪語するが結局当たらない
当たると豪語するが結局当たらない
930デフォルトの名無しさん
2025/05/01(木) 13:11:13.65ID:VlXKY8Xt MSが今ビルダーパターン多用してる
過去の実績から言うとMSは99%技術選定を間違えるからそれが不安要素
MSは失敗のベンチマークとでも呼べる
過去の実績から言うとMSは99%技術選定を間違えるからそれが不安要素
MSは失敗のベンチマークとでも呼べる
931デフォルトの名無しさん
2025/05/01(木) 14:40:42.80ID:nTiKCI2R version3か3回目の名称変更でちょびっと安定してくるやつね
932デフォルトの名無しさん
2025/05/01(木) 14:48:48.72ID:JYSVmYdO 大手は何にでも手を出してるから失敗も多いだけ。
成功も多い。
成功も多い。
933デフォルトの名無しさん
2025/05/01(木) 15:32:50.49ID:/KCrsMZn 逆に大手が手を引けばその技術は失敗と見做される
MSがそれで抹殺してきたのは主に自社の技術だからともかく、GoogleなんかはコミュニティのOSSを殺すから悪質
MSがそれで抹殺してきたのは主に自社の技術だからともかく、GoogleなんかはコミュニティのOSSを殺すから悪質
934デフォルトの名無しさん
2025/05/01(木) 16:02:09.47ID:f3hi8cvW バカに見つかることの何が問題なの?
見つけてもいつか手を引くから問題だ
じつに論理的だ
見つけてもいつか手を引くから問題だ
じつに論理的だ
935デフォルトの名無しさん
2025/05/01(木) 23:47:13.30ID:CL+IXcrI >>913
構造体の初期化にオーバーロードは役に立たないよ
構造体の初期化にオーバーロードは役に立たないよ
936デフォルトの名無しさん
2025/05/02(金) 03:09:37.33ID:OL9VZPix Rustの欠点やRustに対する不満は数多存在するが
CやC++に対するそれらとの程度問題に過ぎない
それを殊更Rustを過剰に持ち上げるから話が可笑しくなる
そのせいで期待の裏返しで粗が目立つことにもなる
RustはRustと限界も理解した上で節度を持って付き合う距離感が大事
CやC++に対するそれらとの程度問題に過ぎない
それを殊更Rustを過剰に持ち上げるから話が可笑しくなる
そのせいで期待の裏返しで粗が目立つことにもなる
RustはRustと限界も理解した上で節度を持って付き合う距離感が大事
937デフォルトの名無しさん
2025/05/02(金) 08:31:39.96ID:yPmkkGew 過剰なのは期待ではないよ
期待などを過剰に可視化するのをやめればいいだけだ
期待などを過剰に可視化するのをやめればいいだけだ
938デフォルトの名無しさん
2025/05/02(金) 09:01:58.80ID:bAYfXEJ2 Rustを教訓にした次の言語に期待
939デフォルトの名無しさん
2025/05/02(金) 09:11:30.86ID:i8P7c2SF Rustの最大の教訓は、どんな言語でも有名になればバカ(必ずしも頭が悪いわけではなく、本来その言語が想定しない用途に使おうとする奴も含む)が使うってことだろう
Rustの仕様はそれほど効率が重要でない分野でテキトーに使おうとすると無駄なコピーが増えたりしてかえって非効率になりがちな面があるから、
そのあたりのバランスをうまく取れば非常に広く使われる言語になったかも
とはいえ次はAIの時代だからもう従来の意味での新しいプログラミング言語は必要なくなった
Rustの仕様はそれほど効率が重要でない分野でテキトーに使おうとすると無駄なコピーが増えたりしてかえって非効率になりがちな面があるから、
そのあたりのバランスをうまく取れば非常に広く使われる言語になったかも
とはいえ次はAIの時代だからもう従来の意味での新しいプログラミング言語は必要なくなった
940デフォルトの名無しさん
2025/05/02(金) 09:18:30.31ID:l65Gmtfc オプション引数やキーワード引数については他言語が内部的にやってることをRustの場合は開発者が自分でやらなきゃいけないことになっててバカらしい
しかも関数シグニチャに情報をまとめられないから書く方も読む方も煩雑になるだけで開発者的には何もメリットがない
しかも関数シグニチャに情報をまとめられないから書く方も読む方も煩雑になるだけで開発者的には何もメリットがない
941デフォルトの名無しさん
2025/05/02(金) 13:09:45.81ID:27eNBEi7 本来Rustに触るべきじゃない層にまで浸透しつつあるのはええの
942デフォルトの名無しさん
2025/05/02(金) 15:42:00.82ID:D7XvqJPq >>939
無駄なコピーが増えて非効率?
そんなのどの言語でも参照を使わずにコピーしていたら起きるだろ
さらに言語によってはコピーしてるつもりがなくても内部でコピーしてることもある
一方でRustならプリミティブな整数などを除いて、コピーは明示的にCopy実装するかclone()した時のみ起きる
そして参照を様々な形でサポートしていいるため、Rustで無駄なコピーが増えて非効率になることはない
無駄なコピーが増えて非効率?
そんなのどの言語でも参照を使わずにコピーしていたら起きるだろ
さらに言語によってはコピーしてるつもりがなくても内部でコピーしてることもある
一方でRustならプリミティブな整数などを除いて、コピーは明示的にCopy実装するかclone()した時のみ起きる
そして参照を様々な形でサポートしていいるため、Rustで無駄なコピーが増えて非効率になることはない
943デフォルトの名無しさん
2025/05/02(金) 15:48:12.35ID:5gJO9Aey Cで構造体を関数に引数渡しするとコピーが走るわけだが、Rustでは同様の問題はないのですかの
944デフォルトの名無しさん
2025/05/02(金) 16:14:46.67ID:LUc36ySD >>943
ムーブは機械語レベルではコピーと同じだとドキュメントにも書いてある。
つまり素朴な解釈ではコピーされるし、コピーのコストはある。
その上で最適化によってコピーが避けられることもある。
Rust の性質的にエイリアス解析が万全なので C よりは有利に最適化できる。
ムーブは機械語レベルではコピーと同じだとドキュメントにも書いてある。
つまり素朴な解釈ではコピーされるし、コピーのコストはある。
その上で最適化によってコピーが避けられることもある。
Rust の性質的にエイリアス解析が万全なので C よりは有利に最適化できる。
945デフォルトの名無しさん
2025/05/02(金) 16:16:32.01ID:5gJO9Aey 確実に引数のコピーを避けるなら参照渡しだよね。Cと同じかの
946デフォルトの名無しさん
2025/05/02(金) 16:28:29.66ID:LUc36ySD コストよりも所有権の事情で決めるもんだよ。
参照を渡すかどうかはコストの問題ではなく所有権を渡すのが妥当かどうかの話。
参照を渡すかどうかはコストの問題ではなく所有権を渡すのが妥当かどうかの話。
947デフォルトの名無しさん
2025/05/02(金) 16:39:23.11ID:5gJO9Aey スタックサイズに制限がある環境では、スタック使用量を見積もれないとマズいのです。
高速道路公団になっちゃうよ
高速道路公団になっちゃうよ
948デフォルトの名無しさん
2025/05/02(金) 17:10:01.59ID:PM49hp/O 今どきキーワード引数が無いのは普通に不便なんだけど
追加しないのはどういうこだわりなの?
追加しないのはどういうこだわりなの?
949デフォルトの名無しさん
2025/05/02(金) 17:25:37.72ID:9xoZUliT >>943
Rustの構造体は明示的にCopy実装した時のみコピー値渡しできるようになる
逆にコピー値渡しの必要がなければCopy実装しないのが通常
ちなみにヒープを所有するものを含むとそもそもCopy実装できない
Copy実装していなければムーブ渡しになる
生成コードでのムーブの実装はコピーして元を捨てる(=それ以降は使えない使われない)
元が使われないため、生成コードでは最適化によりコピーが消える場合が多い
他の関数へムーブしてしまうとそれ以降は使えないため、実際にムーブが使われるケースはいくつかのパターンとなり、それ以外はムーブではなく参照を渡す
ムーブが使われる例としては、初期化作成して渡すだけ、他の型へ変換、他の型の一部に組み込み、など
Rustの構造体は明示的にCopy実装した時のみコピー値渡しできるようになる
逆にコピー値渡しの必要がなければCopy実装しないのが通常
ちなみにヒープを所有するものを含むとそもそもCopy実装できない
Copy実装していなければムーブ渡しになる
生成コードでのムーブの実装はコピーして元を捨てる(=それ以降は使えない使われない)
元が使われないため、生成コードでは最適化によりコピーが消える場合が多い
他の関数へムーブしてしまうとそれ以降は使えないため、実際にムーブが使われるケースはいくつかのパターンとなり、それ以外はムーブではなく参照を渡す
ムーブが使われる例としては、初期化作成して渡すだけ、他の型へ変換、他の型の一部に組み込み、など
950デフォルトの名無しさん
2025/05/02(金) 17:48:28.97ID:5gJO9Aey >>949
ありがとう。慣れれば簡単そうね
ありがとう。慣れれば簡単そうね
951デフォルトの名無しさん
2025/05/02(金) 18:13:18.00ID:n0wyIh3y >>948
ABI を策定してみて。
ABI を策定してみて。
952デフォルトの名無しさん
2025/05/02(金) 18:30:03.50ID:06aFKDyR キーワード引数とABIは関係なくない?
例えば fn func(foo: i32, bar: i32) というシグニチャの関数について、
呼び出し側で func(bar: 10, foo: 20); のように記述したものが func(20, 10); に置き換えられるような仕組みだし、
コンパイル時に解決する問題な気がする
そもそもRustは (C互換のコードを除いて) 安定したABIを持ってないんじゃないっけ?
例えば fn func(foo: i32, bar: i32) というシグニチャの関数について、
呼び出し側で func(bar: 10, foo: 20); のように記述したものが func(20, 10); に置き換えられるような仕組みだし、
コンパイル時に解決する問題な気がする
そもそもRustは (C互換のコードを除いて) 安定したABIを持ってないんじゃないっけ?
953デフォルトの名無しさん
2025/05/02(金) 18:34:07.60ID:bAYfXEJ2 >>943
コピーしたくなければポインタで渡すだけでいいんだぞ
コピーしたくなければポインタで渡すだけでいいんだぞ
954デフォルトの名無しさん
2025/05/02(金) 18:53:01.38ID:d0ZtlBkd キーワード引数は関数の型との兼ね合いだろうな
fn foo(a: u32)
を
fn foo(a: u32, b: u32 = 0)
に変えたときに
F: Fn(u32)
に渡せるかみたいなややこしい話が出てくる
最初から
fn foo(a: u32, opt_args: FooOptArgs)
で頑張ってもらった方が分かりやすい
fn foo(a: u32)
を
fn foo(a: u32, b: u32 = 0)
に変えたときに
F: Fn(u32)
に渡せるかみたいなややこしい話が出てくる
最初から
fn foo(a: u32, opt_args: FooOptArgs)
で頑張ってもらった方が分かりやすい
955デフォルトの名無しさん
2025/05/02(金) 18:57:27.48ID:kIVCyVUc オプション引数はそのままOption<T>型の引数で使われていて困らないね
956デフォルトの名無しさん
2025/05/02(金) 19:34:53.93ID:PM49hp/O キーワード引数があれば、Builderパターンとか要らなくなるんだけど
957デフォルトの名無しさん
2025/05/02(金) 19:49:08.87ID:rPO248eK >>944
copyが発生しうるmoveのときは暗黙でcopy出来るかどうかderive(Clone, Copy)
暗黙にcopy出来ないけどcopyの必要なmoveが起こるときはコンパイル時にエラー
copyが発生しうるmoveのときは暗黙でcopy出来るかどうかderive(Clone, Copy)
暗黙にcopy出来ないけどcopyの必要なmoveが起こるときはコンパイル時にエラー
958デフォルトの名無しさん
2025/05/02(金) 19:49:28.92ID:i8P7c2SF959デフォルトの名無しさん
2025/05/02(金) 19:51:56.60ID:5gJO9Aey カリー化を覚えよう
960デフォルトの名無しさん
2025/05/02(金) 19:54:40.88ID:GN+wBpsy961デフォルトの名無しさん
2025/05/02(金) 19:55:06.57ID:rPO248eK >>955
doudt
doudt
962デフォルトの名無しさん
2025/05/02(金) 20:07:31.93ID:GN+wBpsy オプション引数は結局Option型などで渡すか、あるいは、省略時の値として長い引数の個数を渡すしかない
それを避けるには可変個引数にして引数の個数を持たせて処理していくが効率もよくない
それを避けるには可変個引数にして引数の個数を持たせて処理していくが効率もよくない
963デフォルトの名無しさん
2025/05/02(金) 20:10:27.21ID:tUdMCpmj 他の言語を知っているといろいろと勉強になるから使った方が良い
964デフォルトの名無しさん
2025/05/02(金) 20:14:10.43ID:i8P7c2SF >>960
それは952も示している通りコンパイル時に呼び出し元に展開するだけ
互換性の問題はあるが実用上問題になることは稀だ
Kotlinのようにランタイムのペナルティを許容して被呼び出し側で条件分岐する流派もあるが、Rustはそっちは選ばないだろう
それは952も示している通りコンパイル時に呼び出し元に展開するだけ
互換性の問題はあるが実用上問題になることは稀だ
Kotlinのようにランタイムのペナルティを許容して被呼び出し側で条件分岐する流派もあるが、Rustはそっちは選ばないだろう
965デフォルトの名無しさん
2025/05/02(金) 20:14:30.16ID:n0wyIh3y >>957
繰り返すがここで言うコピーは機械語レベルでのコピーの話、ビットパターンのコピーの話をしてる。
(実行コストについての文脈なので。)
ムーブのコンパイル結果はコピーのコンパイル結果と同一であることの説明であって言語仕様の話をしてないので言語仕様の説明は不要。
繰り返すがここで言うコピーは機械語レベルでのコピーの話、ビットパターンのコピーの話をしてる。
(実行コストについての文脈なので。)
ムーブのコンパイル結果はコピーのコンパイル結果と同一であることの説明であって言語仕様の話をしてないので言語仕様の説明は不要。
966デフォルトの名無しさん
2025/05/02(金) 20:16:15.41ID:wHxIFaHv 構造体の初期化をビルダー方式にするとメリットが多い
・長い引数がなく読みやすい
・必要な指定のみメソッドでチェーンで指定すればよく書きやすい
・Rustでは多くの場合inline化されて構造体の各フィールド指定と同じコードになり効率がよい
デメリットは初めて見る人は慣れていないこと
慣れたらデメリットは消える
・長い引数がなく読みやすい
・必要な指定のみメソッドでチェーンで指定すればよく書きやすい
・Rustでは多くの場合inline化されて構造体の各フィールド指定と同じコードになり効率がよい
デメリットは初めて見る人は慣れていないこと
慣れたらデメリットは消える
967デフォルトの名無しさん
2025/05/02(金) 20:19:38.05ID:tUdMCpmj カーニハンの時代のC言語は仕様上構造体は引数に値渡しできず戻せなかった
実際はある程度をすぎると可能だったらしいが
実際はある程度をすぎると可能だったらしいが
968デフォルトの名無しさん
2025/05/02(金) 20:26:25.98ID:n0wyIh3y >>967
K&R 第一版の時点でも将来的に出来るようになると明瞭に書かれていて、単に構想に実装が追い付いてなかっただけ。
K&R 第一版の時点でも将来的に出来るようになると明瞭に書かれていて、単に構想に実装が追い付いてなかっただけ。
969デフォルトの名無しさん
2025/05/02(金) 20:32:31.01ID:06aFKDyR 呼び出し側も定義する側にとっても冗長なのは普通にデメリットじゃない?
ビルダーは「Rustの制約を考慮すると現状これが最も妥当」くらいのものでしょ
このパターンが「便利だから」という理由で他の言語でも流行る、なんてことは想像しづらい
ビルダーは「Rustの制約を考慮すると現状これが最も妥当」くらいのものでしょ
このパターンが「便利だから」という理由で他の言語でも流行る、なんてことは想像しづらい
970デフォルトの名無しさん
2025/05/02(金) 20:36:36.68ID:tUdMCpmj ビルダパターンはオブジェクトなどの生成が複雑な場合に使われるべき
引数がやや多いと言うだけで使うのは論外
単純なものは他の仕組みファクトリーパターンでも十分では
本当に引数が多い場合もビルダーパターンは適さない
あくまでも生成が複雑なものに限定すべきである
今は過剰にビルダーパターンが使われているけど将来的には減っていくと思われる
引数がやや多いと言うだけで使うのは論外
単純なものは他の仕組みファクトリーパターンでも十分では
本当に引数が多い場合もビルダーパターンは適さない
あくまでも生成が複雑なものに限定すべきである
今は過剰にビルダーパターンが使われているけど将来的には減っていくと思われる
971デフォルトの名無しさん
2025/05/02(金) 20:43:33.27ID:z720W3rP972デフォルトの名無しさん
2025/05/02(金) 20:48:35.63ID:5gJO9Aey 筋肉ビルダーとして鍛えよう。AIには出来ない仕事だ
973デフォルトの名無しさん
2025/05/02(金) 20:49:38.85ID:tUdMCpmj シグネチャの範疇で済むものをキーワード名メソッドとして外に出して記述している
記述法にもよるが一覧性が低下する
記述法にもよるが一覧性が低下する
974デフォルトの名無しさん
2025/05/02(金) 20:50:39.57ID:tUdMCpmj そして記述漏れが出る恐れが出てくる
975デフォルトの名無しさん
2025/05/02(金) 20:54:15.01ID:bGn62aq8 Option型があると言っても
hoge(None, None, None, None, Some(1))
みたいなのはダサいよね
hoge(None, None, None, None, Some(1))
みたいなのはダサいよね
976デフォルトの名無しさん
2025/05/02(金) 20:56:32.63ID:tUdMCpmj structと整合性がない
977デフォルトの名無しさん
2025/05/02(金) 20:59:30.84ID:z720W3rP978デフォルトの名無しさん
2025/05/02(金) 21:00:36.60ID:z720W3rP >>976
嘘を付き出すのはよろしくないかと
嘘を付き出すのはよろしくないかと
979デフォルトの名無しさん
2025/05/02(金) 21:01:59.09ID:z720W3rP >>975
そういうケースのために記述性も効率も良いビルダー方式がある
そういうケースのために記述性も効率も良いビルダー方式がある
980デフォルトの名無しさん
2025/05/02(金) 21:06:06.88ID:tUdMCpmj >>977-978
理解力が低下してるな
デフォルト値を書き換えるのを忘れると言っている
特定の組み合わせが必要なものがあったとして、それを強制する仕組みがない
それに数個必要な引き渡しがいくつ必要なのかを覚えなくてはならない
理解力が低下してるな
デフォルト値を書き換えるのを忘れると言っている
特定の組み合わせが必要なものがあったとして、それを強制する仕組みがない
それに数個必要な引き渡しがいくつ必要なのかを覚えなくてはならない
981デフォルトの名無しさん
2025/05/02(金) 21:09:06.51ID:06aFKDyR982デフォルトの名無しさん
2025/05/02(金) 21:09:43.98ID:z720W3rP983デフォルトの名無しさん
2025/05/02(金) 21:13:02.11ID:5gJO9Aey スクリプト言語じゃないとキーワード引数実装無理じゃね
984デフォルトの名無しさん
2025/05/02(金) 21:13:29.15ID:z720W3rP >>981
derive_builderを使ったことがなく文句を言ってるのかね
この方式のほうが簡潔で冗長がなくなる
オプションキーワード引数方式だと自分でそのシグネチャを書かなければならなく冗長になる
ビルダー方式は冗長がなく有利
derive_builderを使ったことがなく文句を言ってるのかね
この方式のほうが簡潔で冗長がなくなる
オプションキーワード引数方式だと自分でそのシグネチャを書かなければならなく冗長になる
ビルダー方式は冗長がなく有利
985デフォルトの名無しさん
2025/05/02(金) 21:14:00.07ID:bGn62aq8 アニメーションの毎フレーム毎に呼び出すような、パフォーマンスが大事な関数でもbuilderパターン使えるの?
986デフォルトの名無しさん
2025/05/02(金) 21:15:34.05ID:i8P7c2SF キーワード引数なら完全にゼロコストにできる
ビルダーだと、余計な初期化用の構造体が必要だし、値を指定しているパラメータについても最初にデフォルト値のコピーが走っちゃうからゼロコストにならない
ビルダーだと、余計な初期化用の構造体が必要だし、値を指定しているパラメータについても最初にデフォルト値のコピーが走っちゃうからゼロコストにならない
987デフォルトの名無しさん
2025/05/02(金) 21:16:03.15ID:n0wyIh3y 他に膨大な議論をしてるのにキーワード引数なんてたいして重要てはない割に面倒なものは後回しだろ。
(一応は名前つき引数の提案は何年も前に出てはいる。)
(一応は名前つき引数の提案は何年も前に出てはいる。)
988デフォルトの名無しさん
2025/05/02(金) 21:18:16.83ID:5gJO9Aey マクロを使えばなんとか
989デフォルトの名無しさん
2025/05/02(金) 21:22:00.73ID:q0/bxH7J990デフォルトの名無しさん
2025/05/02(金) 21:24:13.63ID:06aFKDyR >>983
コンパイルされる言語でも使うよ (C#やKotlin)
コンパイルされる言語でも使うよ (C#やKotlin)
991デフォルトの名無しさん
2025/05/02(金) 21:24:49.07ID:BP5o1HEV >>989
何と比較してゼロコストだと言ってる?
何と比較してゼロコストだと言ってる?
992デフォルトの名無しさん
2025/05/02(金) 21:25:45.04ID:bGn62aq8 昔々、X ToolkitはCでキーワード引数を実現するために
配列を使ってなかったっけ?
末尾に終端マーカーを置き忘れると落ちる
配列を使ってなかったっけ?
末尾に終端マーカーを置き忘れると落ちる
993デフォルトの名無しさん
2025/05/02(金) 21:29:20.61ID:tUdMCpmj994デフォルトの名無しさん
2025/05/02(金) 21:30:23.29ID:5gJO9Aey >>990
おお、コンパイラ賢い
おお、コンパイラ賢い
995デフォルトの名無しさん
2025/05/02(金) 21:31:43.23ID:q0/bxH7J996デフォルトの名無しさん
2025/05/02(金) 21:34:42.77ID:z720W3rP 構造体の初期化のために
キーワード付オプション引数の関数のシグネチャを記述するのは冗長でバカげている
Rustのderive_builder利用のビルダー方式が最も簡潔でベスト
キーワード付オプション引数の関数のシグネチャを記述するのは冗長でバカげている
Rustのderive_builder利用のビルダー方式が最も簡潔でベスト
997デフォルトの名無しさん
2025/05/02(金) 21:38:09.58ID:06aFKDyR SerdeやPythonのnumpy並みに「その言語の利用者ならみんな知ってる」ライブラリならともかく、ユーティリティ程度のものでも特定のライブラリにロックインするのがベストなもんかね
998デフォルトの名無しさん
2025/05/02(金) 21:38:30.32ID:n0wyIh3y >>993
キーワード引数なら間違えないのか?
キーワード引数なら間違えないのか?
999デフォルトの名無しさん
2025/05/02(金) 21:39:36.25ID:n0wyIh3y >>997
マクロってそういうもんだよ。
マクロってそういうもんだよ。
1000デフォルトの名無しさん
2025/05/02(金) 21:40:47.47ID:tUdMCpmj Rustおじさん論破した
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 39日 4時間 3分 48秒
新しいスレッドを立ててください。
life time: 39日 4時間 3分 48秒
10021002
Over 1000Thread 5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★3 [Hitzeschleier★]
- 【将棋】福間香奈 女流六冠が会見 妊娠・出産でタイトル戦の事実上不戦敗 「妊娠したら、どちらか一方を諦めないといけない状況」★2 [冬月記者★]
- かつや、明日からカツ丼(竹)790円→590円、ロースカツ定食830円→630円、カツカレー(竹)990円→790円 画像あり [お断り★]
- タイがカンボジアを空爆、トランプ氏仲介の和平合意は“事実上崩壊”軍事衝突へ タイ首相「もはや対話の余地ない」 [お断り★]
- 空自機レーダー照射、音声データ公開 中国 ★5 [蚤の市★]
- 【速報】 米国政府、中国が日本の自衛隊にレーダー照射を批判、同事案で中国を批判するのは初めて ★2 [お断り★]
- 【愛国】田母神俊雄「日本は米国に追い込まれて真珠湾攻撃に踏み切っただけ」 [834922174]
- 【世界人権デー】“胎児も事故の被害者”と認めるよう県議会が国に意見へ _スカラカ、チャカポコ。チャカポコ、チャカポコ。。。 [979264442]
- 防衛省「了解は言っていない」 [966095474]
- 中国、日本人tiktokの収益剥奪開始wmwmwmwmwmwm [834922174]
- 【速報】共同通信スクープキタ━(゚∀゚)━!!「実際は日本の自衛隊機が中国機に対してレーダ照射ロックオンしていたことが発覚」 [339712612]
- マリン船長のラーメン、投げ売りされてしまう😭
