公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
Web上の実行環境
https://play.rust-lang.org
日本語の情報
https://rust-jp.rs/
※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 part15
https://mevius.5ch.net/test/read.cgi/tech/1652347700/
探検
Rust part16
■ このスレッドは過去ログ倉庫に格納されています
2022/06/27(月) 08:17:03.45ID:gDlfKP6u
113デフォルトの名無しさん
2022/07/03(日) 11:38:06.57ID:BkE0C3wS これらのRustの問題点は、教授レベルでも理解出来てない人が多い。
114デフォルトの名無しさん
2022/07/03(日) 11:48:29.39ID:xlXEUxdt 教授レベル?!
複オジ大先生 vs 数学100点大先生のやり取りはいつもいつも有意義有意義ww
複オジ大先生 vs 数学100点大先生のやり取りはいつもいつも有意義有意義ww
115デフォルトの名無しさん
2022/07/03(日) 12:04:57.77ID:0zvrEFac 今日日曜だけどつまらない書き込みしてんじゃないぞ
一日最低1000行書かないとレスしたらダメだぞ
一日最低1000行書かないとレスしたらダメだぞ
116デフォルトの名無しさん
2022/07/03(日) 12:06:35.28ID:0zvrEFac ライフタイムがらみで一日なんどかキーボードかマウスを投げたくなる
自動で判定しろよ
自動で判定しろよ
117デフォルトの名無しさん
2022/07/03(日) 12:53:49.06ID:E6Fi7aBt118デフォルトの名無しさん
2022/07/03(日) 13:33:15.09ID:/eA4inlP オブジェクトの寿命に関するルールは実際には C++ とそれほど差が無い。
厳密に検証するということと、検証に必要なちょっとしたアノテーションが必要ってだけ。
厳密に検証するということと、検証に必要なちょっとしたアノテーションが必要ってだけ。
119デフォルトの名無しさん
2022/07/03(日) 14:26:00.76ID:HrPxrbHk 1000行書くという謎の目標にこだわってるからライフタイムの理解がおろそかになってるのでは
エラーが出るたびに原因をしっかり調べれば同じ過ちを何度も繰り返すことはなくなるでしょ
エラーが出るたびに原因をしっかり調べれば同じ過ちを何度も繰り返すことはなくなるでしょ
120デフォルトの名無しさん
2022/07/03(日) 14:38:47.08ID:Tm7q4JxH 登大遊は凡人レベルのコードでいいなら1日1万行は余裕で書けるって豪語してて草生えたな
一時期は天才少年プログラマーと持て囃されてた彼も所詮日本の凡才駄プログラマーだったな
彼を見てるとわかるが日本人は手段にこだわって目的を達成できずに結果残せないないアホばかりなんよ
SNSやナレッジコミュニティやオフ会でドヤ顔で偉そうに蘊蓄たれてイキリ散らかしてるやつばかりなのって要するに日本の終わってるゼネコンビジネスIT業界で楽しみを見出せる要素がそこしかないからなんだってことよ
如何に日本のプログラマーがゴミで哀れな奴らかわかる
一時期は天才少年プログラマーと持て囃されてた彼も所詮日本の凡才駄プログラマーだったな
彼を見てるとわかるが日本人は手段にこだわって目的を達成できずに結果残せないないアホばかりなんよ
SNSやナレッジコミュニティやオフ会でドヤ顔で偉そうに蘊蓄たれてイキリ散らかしてるやつばかりなのって要するに日本の終わってるゼネコンビジネスIT業界で楽しみを見出せる要素がそこしかないからなんだってことよ
如何に日本のプログラマーがゴミで哀れな奴らかわかる
121デフォルトの名無しさん
2022/07/03(日) 15:03:07.11ID:E6Fi7aBt そもそもコードを書く時間よりもその
コードのリファクタリングなどの時間の方が多い
そしてリファクタリングでは行数は減る方向が多い
書く行数の多さを気にするのは質ベースより量ベースの典型的なダメパターン
コードのリファクタリングなどの時間の方が多い
そしてリファクタリングでは行数は減る方向が多い
書く行数の多さを気にするのは質ベースより量ベースの典型的なダメパターン
122デフォルトの名無しさん
2022/07/03(日) 15:32:59.76ID:EctOodKi 普通にプログラミングするには問題ない程度にライフタイムを理解した上でも、
Rustには沢山の欠点が有り、ライフタイムをこれ以上理解しても、それは
解決しないと思ってる。
なぜなら言語そのものが持つ欠点だから。
Rustには沢山の欠点が有り、ライフタイムをこれ以上理解しても、それは
解決しないと思ってる。
なぜなら言語そのものが持つ欠点だから。
123デフォルトの名無しさん
2022/07/03(日) 16:05:52.40ID:/eA4inlP それはそう。
足りない諸々は unsafe でやれ (プログラマが正しさを保証しろ) というデザインであって、全部を面倒見れるとは誰も思ってないよ。
足りない諸々は unsafe でやれ (プログラマが正しさを保証しろ) というデザインであって、全部を面倒見れるとは誰も思ってないよ。
124デフォルトの名無しさん
2022/07/03(日) 16:42:05.24ID:HrPxrbHk コード例ちょうだいよ
125デフォルトの名無しさん
2022/07/03(日) 17:02:40.60ID:j5zH7gpx 大先生方wとまともに議論が成り立つわけないじゃんww
126デフォルトの名無しさん
2022/07/03(日) 17:03:35.61ID:EctOodKi >>123
しかし、Rustの方式では、ある種のアルゴリズムは、unsafe の中だけに
閉じ込めきれないことがあり、結局、アプリでそのアルゴリズムを本来の
効率では使えないことがある。
これも言ってることを理解するには経験と深いイマジネーションが必要なので
反論してくる人が居てもその反論が間違いで、Rustの欠点として本当に存在
している。
昔、C言語が登場した頃、アセンブラほどには速度を引き出せ無い事が有ったが、
大事な部分の関数をアセンブリコードで書けばそれで解決した。だから、
C言語がこんなに普及した。
ところが、Rustでは、それと同じ事が出来ない。
unsafeの中だけに閉じ込めきれず、「はみ出してくる」部分がsafeに扱えないので破綻してしまう。
しかし、Rustの方式では、ある種のアルゴリズムは、unsafe の中だけに
閉じ込めきれないことがあり、結局、アプリでそのアルゴリズムを本来の
効率では使えないことがある。
これも言ってることを理解するには経験と深いイマジネーションが必要なので
反論してくる人が居てもその反論が間違いで、Rustの欠点として本当に存在
している。
昔、C言語が登場した頃、アセンブラほどには速度を引き出せ無い事が有ったが、
大事な部分の関数をアセンブリコードで書けばそれで解決した。だから、
C言語がこんなに普及した。
ところが、Rustでは、それと同じ事が出来ない。
unsafeの中だけに閉じ込めきれず、「はみ出してくる」部分がsafeに扱えないので破綻してしまう。
127デフォルトの名無しさん
2022/07/03(日) 18:00:07.94ID:K4HcDkkQ 具体性の欠片もないフワフワした話しかできないんなら黙ってりゃいいのにw
128デフォルトの名無しさん
2022/07/03(日) 21:50:25.68ID:HrPxrbHk linked listの人の完全論破されたら潜伏してほとぼりが冷めてから全く同じ主張を繰り返すムーブ何回目だよ
129デフォルトの名無しさん
2022/07/03(日) 22:08:21.67ID:tiLDs1XL >>126
具体的なことを何一つ言えない時点で話にすらならないが
一つ重要なアドバイスをしてあげよう
unsafeとは他の言語と同じ状態ということ
つまりunsafeについて批判すればするほどそれはRust以外の言語がいかにダメなのかを語っていることになる
ちなみにRustはunsafeの中でC言語と同じことができるしもちろんインラインアセンブラも書ける
つまりRustはC言語と同じ機能及び性能を有している側面がまず第一としてある
その上で外部を巻き込むことなくunsafeな部分を内部に完全に閉じ込めた各モジュール例えば標準ライブラリなどを次々と生み出すことにも成功している
そしてRustコンパイラが安全性を保証するプログラムを現実に書くことができることを実証してきた
だからこそIT大手各社が共同でRustを支持する状況にまでなったのだ
具体的なことを何一つ言えない時点で話にすらならないが
一つ重要なアドバイスをしてあげよう
unsafeとは他の言語と同じ状態ということ
つまりunsafeについて批判すればするほどそれはRust以外の言語がいかにダメなのかを語っていることになる
ちなみにRustはunsafeの中でC言語と同じことができるしもちろんインラインアセンブラも書ける
つまりRustはC言語と同じ機能及び性能を有している側面がまず第一としてある
その上で外部を巻き込むことなくunsafeな部分を内部に完全に閉じ込めた各モジュール例えば標準ライブラリなどを次々と生み出すことにも成功している
そしてRustコンパイラが安全性を保証するプログラムを現実に書くことができることを実証してきた
だからこそIT大手各社が共同でRustを支持する状況にまでなったのだ
130デフォルトの名無しさん
2022/07/03(日) 22:47:34.33ID:a+FSzkH8 なんか違う気がする
131デフォルトの名無しさん
2022/07/03(日) 23:17:08.11ID:x9P0i8er なんか違うというレベルじゃなく一番大事なところが間違ってるよ
132デフォルトの名無しさん
2022/07/03(日) 23:41:56.43ID:ha/kcOac このスレでよく見かけるパターン
Rustアンチな人は不利になると「なんか違う」「間違ってる」など呟くが具体的には何も言えない
Rustアンチな人は不利になると「なんか違う」「間違ってる」など呟くが具体的には何も言えない
133デフォルトの名無しさん
2022/07/03(日) 23:48:10.53ID:uYnkpWRD このスレじゃなくて5chすべてがそうなんだよ馬鹿www
こんな便所の落書きにすら劣るキチガイの巣窟で正論打っても意味ねーんだよ
こいつらはこいつら自身が一番嫌いなDQNやチンピラと同じ大いなる無駄なことして暇つぶしてるガイジどもなんだよwww
こんな便所の落書きにすら劣るキチガイの巣窟で正論打っても意味ねーんだよ
こいつらはこいつら自身が一番嫌いなDQNやチンピラと同じ大いなる無駄なことして暇つぶしてるガイジどもなんだよwww
134デフォルトの名無しさん
2022/07/03(日) 23:57:49.45ID:vZYSRByq 複オジは信者の自分以外はみんなアンチにみえちゃうみたいw
135デフォルトの名無しさん
2022/07/04(月) 00:48:50.97ID:H2jYU4qp cと同じに欠けるってのは明らかに嘘だろ。メモリモデルが違いすぎるっつーの。
136デフォルトの名無しさん
2022/07/04(月) 01:01:44.47ID:zU5p2DDn >>129
あなたは理解できてない。
あなたは理解できてない。
137デフォルトの名無しさん
2022/07/04(月) 01:54:43.58ID:3k8jHKP2 >>135
たとえば?
たとえば?
138デフォルトの名無しさん
2022/07/04(月) 02:12:28.58ID:WMds9h9Q rustには定義されたメモリモデルはないわけだが何を比較してCと違うと言っているの?
https://doc.rust-lang.org/reference/memory-model.html
https://doc.rust-lang.org/reference/memory-model.html
139デフォルトの名無しさん
2022/07/04(月) 03:21:25.34ID:zU5p2DDn140デフォルトの名無しさん
2022/07/04(月) 04:54:10.56ID:086teQVY 言いたいことが分かるなら説明すればいいのに...
141デフォルトの名無しさん
2022/07/04(月) 07:57:34.42ID:aE2+UZrf142デフォルトの名無しさん
2022/07/04(月) 09:03:48.35ID:tfDB1jS/143デフォルトの名無しさん
2022/07/04(月) 09:23:30.50ID:YSvCn/0F メンタルモデルw
144デフォルトの名無しさん
2022/07/04(月) 09:24:13.06ID:WMds9h9Q145デフォルトの名無しさん
2022/07/04(月) 11:11:40.91ID:1aJxC781 >>129
>unsafeとは他の言語と同じ状態ということ
unsafeでもRust特有のメリットもあればデメリットもある
特にC/C++とは担保されてるsafetyのレベルが根本的に違うので「unsafeなら他の言語と同じ」とか言ってる人はunsafeをまるで理解してないので騙されないように
>unsafeとは他の言語と同じ状態ということ
unsafeでもRust特有のメリットもあればデメリットもある
特にC/C++とは担保されてるsafetyのレベルが根本的に違うので「unsafeなら他の言語と同じ」とか言ってる人はunsafeをまるで理解してないので騙されないように
146デフォルトの名無しさん
2022/07/04(月) 11:57:37.00ID:DrP+xMl0 そこはあまり本質的じゃないな
Rustは機能的にも速度的にもC言語の代替となれる点が本質だろう
そのうえでRustは非常に大きなプラスαがあるからC/C++は不要となった
Rustは機能的にも速度的にもC言語の代替となれる点が本質だろう
そのうえでRustは非常に大きなプラスαがあるからC/C++は不要となった
147デフォルトの名無しさん
2022/07/04(月) 12:04:57.14ID:RBYxpWsA Rustの側で書き換えないから
let a=99;
とかした奴をCに渡してC側で書き換えるのってアウトだよね?
let a=99;
とかした奴をCに渡してC側で書き換えるのってアウトだよね?
148デフォルトの名無しさん
2022/07/04(月) 12:06:52.57ID:qOfLavvD >>146
何の本質??
何の本質??
149デフォルトの名無しさん
2022/07/04(月) 12:45:51.46ID:rY6uXQUu >>142
メンタルモデルなんて言葉ねーよ、ハゲ
メンタルモデルなんて言葉ねーよ、ハゲ
150デフォルトの名無しさん
2022/07/04(月) 12:48:07.99ID:RggUqH9I Rustの登場でC/C++が要らなくなったのは当然
>>147
まずはRustの初歩を学習必須
Rustではlet mut a = 99; とmutを指定すればその変数が書き替え可能
呼び出し先で書き替えたいならば
まずRustの関数を呼び出す時は &mut a と可変参照を渡せば呼び出し先で書き替え可能
Cの関数を呼び出す時はそれを *mut とポインタにして渡せば呼び出し先で書き替え可能
>>147
まずはRustの初歩を学習必須
Rustではlet mut a = 99; とmutを指定すればその変数が書き替え可能
呼び出し先で書き替えたいならば
まずRustの関数を呼び出す時は &mut a と可変参照を渡せば呼び出し先で書き替え可能
Cの関数を呼び出す時はそれを *mut とポインタにして渡せば呼び出し先で書き替え可能
151デフォルトの名無しさん
2022/07/04(月) 12:51:14.14ID:iNsmlcex >>146
全てunsafeにでもしない限り、効率を落とさずには代替になれない例が有ると言っている。
ポインタ値をアプリ全体でLinkedListのノードを識別するための id 値として
利用している場合だ。
index 番号では効率が劇的に下がるケースが多い。
全てunsafeにでもしない限り、効率を落とさずには代替になれない例が有ると言っている。
ポインタ値をアプリ全体でLinkedListのノードを識別するための id 値として
利用している場合だ。
index 番号では効率が劇的に下がるケースが多い。
152デフォルトの名無しさん
2022/07/04(月) 13:07:11.60ID:EPYowFm9 >>151
その件に限らず全てのケースで以下が成立する
基本事項: RustではCと同じ速度&同じ安全度で常に全ての実装が可能
追加事項: RustではCと同じ速度&完全に安全なインタフェースで多くの実装が可能
したがってCが不要となったとの話はもちろん正しい
その件に限らず全てのケースで以下が成立する
基本事項: RustではCと同じ速度&同じ安全度で常に全ての実装が可能
追加事項: RustではCと同じ速度&完全に安全なインタフェースで多くの実装が可能
したがってCが不要となったとの話はもちろん正しい
153デフォルトの名無しさん
2022/07/04(月) 13:15:16.22ID:tfDB1jS/ &a as *const _ as *mut _
154デフォルトの名無しさん
2022/07/04(月) 13:24:41.08ID:iNsmlcex >>152
あなたの理解は浅い。
あなたの理解は浅い。
155デフォルトの名無しさん
2022/07/04(月) 13:39:33.82ID:Lyc/Sj1E156デフォルトの名無しさん
2022/07/04(月) 13:43:31.17ID:NdI05vlq すべての言語にunsafeがあればいいよね
157デフォルトの名無しさん
2022/07/04(月) 14:00:59.16ID:WMds9h9Q >>151
ベンチマークください
ベンチマークください
158デフォルトの名無しさん
2022/07/04(月) 14:07:26.39ID:V2xsx4Ai >>147
FFI呼び出しに要求されるsafetyを満たしてないと言う意味ではアウトだけどそれがどうかした?
FFI呼び出しに要求されるsafetyを満たしてないと言う意味ではアウトだけどそれがどうかした?
159デフォルトの名無しさん
2022/07/04(月) 14:13:33.00ID:hjCO09br まーた複オジ vs 100点オジの低レベルな言い争いになってるから
隔離スレ復活させたほうがいいな
隔離スレ復活させたほうがいいな
160デフォルトの名無しさん
2022/07/04(月) 15:40:19.20ID:iNsmlcex >>155
頭の悪い人は黙ってろ。
頭の悪い人は黙ってろ。
161デフォルトの名無しさん
2022/07/04(月) 16:04:58.57ID:ttcTbGc1162デフォルトの名無しさん
2022/07/04(月) 17:29:54.81ID:3k8jHKP2163デフォルトの名無しさん
2022/07/04(月) 18:02:37.22ID:iNsmlcex >>162
馬鹿には何を言っても理解できない。
馬鹿には何を言っても理解できない。
164デフォルトの名無しさん
2022/07/04(月) 18:07:12.10ID:3k8jHKP2 > 全てunsafeにでもしない限り
誰も問題にしてないところを勝手に取り上げるのはストローマン論法っていうんだぜ!
誰も問題にしてないところを勝手に取り上げるのはストローマン論法っていうんだぜ!
165デフォルトの名無しさん
2022/07/04(月) 18:46:54.41ID:tF6z07pc166デフォルトの名無しさん
2022/07/04(月) 19:49:32.85ID:FTPm+Svf リーナスがこのスレを見ていたらLinuxに採用されることはなかっただろうね
167デフォルトの名無しさん
2022/07/04(月) 19:55:55.02ID:7t9P5Iu7 みたらそっ閉じするだろw
168デフォルトの名無しさん
2022/07/04(月) 19:58:11.73ID:VzaqPz19 >>143
センチメンタルな用語ですね!
センチメンタルな用語ですね!
169デフォルトの名無しさん
2022/07/04(月) 20:06:09.66ID:WMds9h9Q メンタルモデルってプログラマー界隈ではよく知られた言葉だと思ってたんだけど通じない人もいるのね
170デフォルトの名無しさん
2022/07/04(月) 20:26:03.13ID:rP4GYYNg プログラマー界隈で言ってる奴を見たことないしそもそも違い云々の時にそんなもん出されても困惑するだけ
171デフォルトの名無しさん
2022/07/04(月) 20:26:54.96ID:55lLLVgr >>169
普通は通じるからご心配なく
普通は通じるからご心配なく
172デフォルトの名無しさん
2022/07/04(月) 21:09:07.84ID:LgYZqAbq173デフォルトの名無しさん
2022/07/04(月) 21:22:26.69ID:k0bSAJLz 適当な造語をさも常識のように語るのはやめようね
そもそもそんな言葉使わなければいい話
そもそもそんな言葉使わなければいい話
174デフォルトの名無しさん
2022/07/04(月) 21:31:48.17ID:rrB3dRAB175デフォルトの名無しさん
2022/07/04(月) 21:34:43.82ID:tfDB1jS/ そもそも拾う必要すら無かったレスを拾ったばっかりによく分からん論争に
なんかすんませんな
なんかすんませんな
176デフォルトの名無しさん
2022/07/04(月) 21:35:54.46ID:WMds9h9Q >>172
元々は認知心理学の用語でユーザーインターフェイスとか分野から広まって広く知られるようになったんじゃないかと思う
初出は1943年とのこと
https://ja.m.wikipedia.org/wiki/%E3%83%A1%E3%83%B3%E3%82%BF%E3%83%AB%E3%83%A2%E3%83%87%E3%83%AB
元々は認知心理学の用語でユーザーインターフェイスとか分野から広まって広く知られるようになったんじゃないかと思う
初出は1943年とのこと
https://ja.m.wikipedia.org/wiki/%E3%83%A1%E3%83%B3%E3%82%BF%E3%83%AB%E3%83%A2%E3%83%87%E3%83%AB
177デフォルトの名無しさん
2022/07/04(月) 21:44:59.75ID:Xyf5Vl2i 複オジ大先生がそんな言葉ないとおっしゃってるんだぞ!
スーパー自宅開発者の複オジ大先生が間違ってるとでも言うのか!!
スーパー自宅開発者の複オジ大先生が間違ってるとでも言うのか!!
178デフォルトの名無しさん
2022/07/04(月) 21:56:46.09ID:UzLOsPAb もはやここが隔離スレ状態
179デフォルトの名無しさん
2022/07/05(火) 02:12:03.31ID:WHTTcdQX180デフォルトの名無しさん
2022/07/05(火) 04:52:44.77ID:86ZbPeAT だから
> ポインタ値をアプリ全体でLinkedListのノードを識別するための id 値として利用している場合だ。
の場合だけだろ
お前はそんな特殊なアプリしか作らないのかよw
そもそもノードの識別を全体にばらまいてるとか設計がタコなんじゃね?
> ポインタ値をアプリ全体でLinkedListのノードを識別するための id 値として利用している場合だ。
の場合だけだろ
お前はそんな特殊なアプリしか作らないのかよw
そもそもノードの識別を全体にばらまいてるとか設計がタコなんじゃね?
181デフォルトの名無しさん
2022/07/05(火) 05:08:33.40ID:WHTTcdQX >>180
RubyやJava、オブジェクトの「識別番号」が取得できることがあるが、
それはポインタ値だ。通し番号ではない。
つまり、C言語では伝統的に、リンクトリストのノードを識別するために
ポインタ値が使われている。そしてそれこそがリンクリストの本来の使い方。
だれかが間違えて、通し番号で識別する習慣が生まれてしまったが、それは
集団幻覚みたいなもので、誤った使い方だ。
RubyやJava、オブジェクトの「識別番号」が取得できることがあるが、
それはポインタ値だ。通し番号ではない。
つまり、C言語では伝統的に、リンクトリストのノードを識別するために
ポインタ値が使われている。そしてそれこそがリンクリストの本来の使い方。
だれかが間違えて、通し番号で識別する習慣が生まれてしまったが、それは
集団幻覚みたいなもので、誤った使い方だ。
182デフォルトの名無しさん
2022/07/05(火) 05:22:06.16ID:b2cot2gP で、何が言いたいんだ?
Linked Listをアプリ全体にばらまいてるアホ設計を正当化しようとしてるのか?w
Linked Listをアプリ全体にばらまいてるアホ設計を正当化しようとしてるのか?w
183デフォルトの名無しさん
2022/07/05(火) 06:08:27.82ID:8LqsNmpu >>177
気に入らないやつを片っ端から複おじ認定するのは荒らしなんだろうか
気に入らないやつを片っ端から複おじ認定するのは荒らしなんだろうか
184デフォルトの名無しさん
2022/07/05(火) 06:20:58.64ID:Nla2AFrI185デフォルトの名無しさん
2022/07/05(火) 07:54:16.72ID:n+I8xvZo >>181
GC言語では、ポインタと言ってもコストの高いポインタとなっていて、コストの高いガベージコレクションで回収する。
それに加えて、データ競合を防ぐには更に何らかの競合回避コストも加わってくる。
一方で、C/C++ではリンクされたノードリストからノードを外す時に、そのライブラリがノードを解放してしまうと、そこへのポインタを保持していた場合にダングリング発生。
それを回避するためにはshared_ptrなどのコストの高いポインタを使わざるを得ない。
ちなみにC++のshared_ptrはスレッドセーフだからマルチスレッド時でも大丈夫だが、逆に言えばシングルスレッド時には無駄なコストがかかっている。
Rustでは、そこはRcとArcの2種類が提供されており、シングルスレッド時にはコストの低いRc使用、マルチスレッド時にはRcだとコンパイルエラーとなってくれてArc使用と、最小限のコストで済む。
このようにノード解放の観点だけ見ても、考慮すべきことをRustコンパイラは適切に指摘してくれる。
GC言語では、ポインタと言ってもコストの高いポインタとなっていて、コストの高いガベージコレクションで回収する。
それに加えて、データ競合を防ぐには更に何らかの競合回避コストも加わってくる。
一方で、C/C++ではリンクされたノードリストからノードを外す時に、そのライブラリがノードを解放してしまうと、そこへのポインタを保持していた場合にダングリング発生。
それを回避するためにはshared_ptrなどのコストの高いポインタを使わざるを得ない。
ちなみにC++のshared_ptrはスレッドセーフだからマルチスレッド時でも大丈夫だが、逆に言えばシングルスレッド時には無駄なコストがかかっている。
Rustでは、そこはRcとArcの2種類が提供されており、シングルスレッド時にはコストの低いRc使用、マルチスレッド時にはRcだとコンパイルエラーとなってくれてArc使用と、最小限のコストで済む。
このようにノード解放の観点だけ見ても、考慮すべきことをRustコンパイラは適切に指摘してくれる。
186デフォルトの名無しさん
2022/07/05(火) 10:29:00.25ID:1zzLwZyb なんでずっとRustスレでRustのセールストークやってるんだ?
187デフォルトの名無しさん
2022/07/05(火) 10:43:19.79ID:XxVp5yEy RustスレでRustのネガキャンやってるやつよりマシだろ
188デフォルトの名無しさん
2022/07/05(火) 11:28:42.85ID:UQspXvq+ >>182
C言語が速い秘密はLinkedListとそのノードをアプリ全体でポインタ値で識別している
ことにある。先頭を0として1,2,3と割り振った通し番号を使っていたと
したら、全然速度が出ない。
そしてその証拠が、JavaやRubyなどで「識別番号」が8桁の16進数で表示できる
ことだ。その識別番号とは生ポインタ値のことであり、それがそのオブジェクトを
唯一に特定できる最も効率的な方法である。
他の方法では効率が落ちる。
C言語が速い秘密はLinkedListとそのノードをアプリ全体でポインタ値で識別している
ことにある。先頭を0として1,2,3と割り振った通し番号を使っていたと
したら、全然速度が出ない。
そしてその証拠が、JavaやRubyなどで「識別番号」が8桁の16進数で表示できる
ことだ。その識別番号とは生ポインタ値のことであり、それがそのオブジェクトを
唯一に特定できる最も効率的な方法である。
他の方法では効率が落ちる。
189デフォルトの名無しさん
2022/07/05(火) 11:29:55.08ID:UQspXvq+190デフォルトの名無しさん
2022/07/05(火) 12:22:07.18ID:KaO4bask191デフォルトの名無しさん
2022/07/05(火) 12:28:00.80ID:1zzLwZyb >>187
他人に説明できるだけの合理的理由が無いことは自覚してるんだな……
他人に説明できるだけの合理的理由が無いことは自覚してるんだな……
192デフォルトの名無しさん
2022/07/05(火) 12:32:52.81ID:84q7aSs+ えっ、なにか説明が欲しかったのか?
スレ読んでりゃわかると思うがw
スレ読んでりゃわかると思うがw
193デフォルトの名無しさん
2022/07/05(火) 13:04:52.14ID:n+I8xvZo >>189
欠陥があると主張するならば、その理由を示さなければならない。
さらにC++でも採用されていることを知らないのは無知ではないか?
C++のshared_ptr = RustのArc = SwiftのARC が同じ機能であり、スレッドセーフなリファレンスカウンタ利用の共有ポインタ方式。
それらのスレッドセーフでないコストの安いバージョンがRustのRcである。
これらは、安全にポインタを共有しつつ即時解放を行なうために、必須の機能である。
欠陥があると主張するならば、その理由を示さなければならない。
さらにC++でも採用されていることを知らないのは無知ではないか?
C++のshared_ptr = RustのArc = SwiftのARC が同じ機能であり、スレッドセーフなリファレンスカウンタ利用の共有ポインタ方式。
それらのスレッドセーフでないコストの安いバージョンがRustのRcである。
これらは、安全にポインタを共有しつつ即時解放を行なうために、必須の機能である。
194デフォルトの名無しさん
2022/07/05(火) 13:13:39.59ID:Fs2kh1Em >>188
ここでいう効率ってなんの効率?
ここでいう効率ってなんの効率?
195デフォルトの名無しさん
2022/07/05(火) 13:19:57.09ID:MoDZ63yv ラスタシアンは何故算数おじさんに触れずにいられないのか
196デフォルトの名無しさん
2022/07/05(火) 16:10:20.98ID:UQspXvq+197デフォルトの名無しさん
2022/07/05(火) 18:30:15.50ID:Fs2kh1Em198デフォルトの名無しさん
2022/07/05(火) 23:09:51.67ID:n+I8xvZo199デフォルトの名無しさん
2022/07/05(火) 23:19:42.19ID:I5LuZ1z+ >>197
>具体的になにが違うの
平日の昼ひまでこのスレにくるおじさん・じじいは
C++のshared_ptrと同じじゃないということを知ってさえいれば激十分なんだよ。
だから、具体的になにが違うかは(知らないから)答えられない。
C++とRustの深い知識あるようなすごい奴が平日の昼暇でここで遊んでいる
なんてことはないだろう。
>具体的になにが違うの
平日の昼ひまでこのスレにくるおじさん・じじいは
C++のshared_ptrと同じじゃないということを知ってさえいれば激十分なんだよ。
だから、具体的になにが違うかは(知らないから)答えられない。
C++とRustの深い知識あるようなすごい奴が平日の昼暇でここで遊んでいる
なんてことはないだろう。
200デフォルトの名無しさん
2022/07/06(水) 11:32:12.50ID:jpnjV9Mh Full Stack Rust App Template using Yew + Actix!
https://youtu.be/oCiGjrpGk4A
https://youtu.be/oCiGjrpGk4A
201デフォルトの名無しさん
2022/07/06(水) 11:45:22.14ID:UGbPogY6 UIフレームワークはスレチだよしんどけ
202デフォルトの名無しさん
2022/07/06(水) 12:20:02.69ID:b0Oxubv9 ここRustプログラミングに関することならば何でも歓迎
各々の関心がないことの和集合を取ると全体集合になる
特定の人にとって関心がないからと言って排除してはいけない
各々の関心がないことの和集合を取ると全体集合になる
特定の人にとって関心がないからと言って排除してはいけない
203デフォルトの名無しさん
2022/07/06(水) 14:24:50.14ID:oR52wNCu 違いが大きすぎるとどこが違うとかいうのを説明するのが難しくなる。
織田信長とオムライスの違いを説明できるか?
まあ shared_ptr と Rc の違いはさすがにそこまで大きくはないけども、
前提となる C++ と Rust の違いも小さくはないので比較する意味を感じないな。
shared_ptr は shared_ptr だし Rc は Rc としか言いようがないだろう。
織田信長とオムライスの違いを説明できるか?
まあ shared_ptr と Rc の違いはさすがにそこまで大きくはないけども、
前提となる C++ と Rust の違いも小さくはないので比較する意味を感じないな。
shared_ptr は shared_ptr だし Rc は Rc としか言いようがないだろう。
204デフォルトの名無しさん
2022/07/06(水) 16:11:44.19ID:rco22hfx リファレンスカウント方式の複製可能なスマートポインタという点では類似のものと言って良いのでは
元々はc++とrustで実行効率に差があるという話だがその観点でどういう差があるのかね
そもそも実行効率が何のことを言っているのかがよくわからんから議論しても仕方ないか
元々はc++とrustで実行効率に差があるという話だがその観点でどういう差があるのかね
そもそも実行効率が何のことを言っているのかがよくわからんから議論しても仕方ないか
205デフォルトの名無しさん
2022/07/06(水) 18:50:47.56ID:cl7AdtI8 原理と詳細を区別できない人はちょっと……
206デフォルトの名無しさん
2022/07/06(水) 23:39:03.25ID:DBl9eUwS >>203
全く別物の比較なら、信長は人間、オムライスは食べ物、というようなザックリした説明で良くなるのでは?
全く別物の比較なら、信長は人間、オムライスは食べ物、というようなザックリした説明で良くなるのでは?
207デフォルトの名無しさん
2022/07/06(水) 23:45:15.32ID:DBl9eUwS Arcとstd::shared_ptr<>が似てるという人に対して、「いや、std::shared_ptr<>とRcは全然違う」と反論するのがおかしいのでは?
208デフォルトの名無しさん
2022/07/07(木) 00:18:57.43ID:6JbvD3+y209デフォルトの名無しさん
2022/07/07(木) 00:49:54.35ID:Sq6Pkb7P >>208
俺らのレベルではその程度の知識で十分だろ
で、スマートポインタでもなんか違いあるの?と質問されても具体的に答えられなくても
全く問題ないからな。
一方、すごい人からすれはstd::shared_ptr<>とRcは全然違うとなるんだろうが
(すごい人敵にはそれらは例えばstd::shared_ptrは信長で人間、一方、Rcはオムライスで食べ物ぐらい違う!
でも、俺らは人間だって餌として食べることができるから同じだろ)
俺らのレベルではその程度の知識で十分だろ
で、スマートポインタでもなんか違いあるの?と質問されても具体的に答えられなくても
全く問題ないからな。
一方、すごい人からすれはstd::shared_ptr<>とRcは全然違うとなるんだろうが
(すごい人敵にはそれらは例えばstd::shared_ptrは信長で人間、一方、Rcはオムライスで食べ物ぐらい違う!
でも、俺らは人間だって餌として食べることができるから同じだろ)
210デフォルトの名無しさん
2022/07/07(木) 05:04:39.45ID:WPmCyDkS211デフォルトの名無しさん
2022/07/07(木) 08:43:50.09ID:M+xvnEsX 共有ポインタって何?
212デフォルトの名無しさん
2022/07/07(木) 10:54:08.79ID:LNwVrqhE shared pointerじゃね?
213デフォルトの名無しさん
2022/07/07(木) 11:14:16.23ID:xmv5m6Ag 結局参照カウント方式なのは一緒なんでしょ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「日本はパンダがいなくなる状況に直面するだろう」 中国メディア、専門家の見方伝える [♪♪♪★]
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… ★5 [BFU★]
- 【福岡】ミカンの木に逆さ吊りになっていた高齢の男性が死亡 [雑用縞工作★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★11 [樽悶★]
- 止まらぬ「日本売り」 高市財政への懸念で進む金利上昇と円安 ★2 [蚤の市★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★12 [樽悶★]
- コンビニ店長、ついにキレる「なんであなた達にトイレを貸さないといけないんですか?私達はトイレレンタル業ではありません」 [329329848]
- 【高市悲報】大暴落 [115996789]
- 🏡
- 教育ママゴン「うちの子はしんちゃんや特撮、リゼロは見せません。ジブリやディズニーとかしか見させません」こゆのって実際どうなん? [257926174]
- 【速報】東京から人が消える [329329848]
- 力を解放していいかな?
