[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/22 14:52 / Filesize : 279 KB / Number-of Response : 1015
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Rust part16



1 名前:デフォルトの名無しさん mailto:sage [2022/06/27(月) 08:17:03.45 ID:gDlfKP6u.net]
公式
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/

101 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 02:21:34.94 ID:dzYoxo9e.net]
>>99
そもそもJSの時点で速度に不満の有る人がどれだけいることか、という点がある。
C++なら既存の資産もあるし、nativeアプリと互換性を持たせることが出来る
メリットもあるが、Rustにはない。

102 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 02:26:10.32 ID:dzYoxo9e.net]
twitterを見ていると、Rust派の人は、JSより高速になることをメリットと考えている
ようだが、JS自体がもともと結構速いので、多くの用途では実際にはほとんど
体感速度は高速にはならない。
なので、Wasmの意味が無い、用途が無い、という結論に至ってしまう。
これはそもそも、Wasmが作られた経緯を無視しているから。
WasmはC++をブラウザで使いたい、という事から始まったもの。
EmscriptenでC++をasm.js化していたものが、それをさらに効率よくするために
生み出された。
だから、もともとJSを高速化したいことが目的ではなく、C++を使うことが
目的だった。
Rustでは駄目なのだ。Rustでやろうとするから、そもそも論に陥る。
そもそも、そんなに高速にする意味があるのか、という。

103 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 02:29:04.40 ID:dzYoxo9e.net]
Rustはメンドクサイのだ。
だから、「そこまでして高速にする必要があるのか」という疑問に至る。
ところが、C++はRustほどはめんどくさくない。
普通に直感的に書いたものが、JSの5倍程度の速さを安定してたたき出す。
なので、C++で書くと楽なので意味があるが、Rustはめんどくさいので意味が無い、

104 名前:> ということになり、Wasm不要論へと繋がっていく。
しかしそれは、Rustを使おうとしたことがそもそも間違いなのだ。
[]
[ここ壊れてます]

105 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 03:29:33.96 ID:IpMp4A6f.net]
てか明らかにvueもreactもいじったことない奴が騒いでるだけだろ。
まともに相手するだけ無駄だわ。

106 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 03:50:27.37 ID:A6Umne1m.net]
世界中のIT技術者から愛されているプログラミング言語はなにか。
プログラミング関連のQ&Aサイト「Stack Overflow」を運営する米Stack Exchangeがそのような調査結果を発表した。
各言語の「Loved」(愛している)と「Dreaded」(恐れている)の比率でLovedが最も高かったのは「Rust」(86.73%)で7年連続で1位になった。
回答数は7万1467件。
https://www.itmedia.co.jp/news/articles/2206/24/news128.html

107 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 03:54:07.92 ID:A6Umne1m.net]
https://www.atmarkit.co.jp/ait/articles/2107/08/news112.html
「WebAssemblyアプリケーションの作成に使用している言語は何か」と質問したところ、Rustが最も多くの回答を集めた。
「WebAssemblyアプリケーションの作成に今後最も使用したい言語は何か」という質問でも、Rustを挙げた回答が最も多かった。

108 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 07:40:44.40 ID:xnM4EaFU.net]
そりゃそうなるわな
既存のメンテ以外ではC++で書くことはない
時間とともにRust一色となるだろう

109 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 08:33:17.69 ID:tt1RzXNI.net]
Rustは圧倒的にコーティングしやすい
様々な近代的なパラダイムを洗練して採り入れたことが大きい
メモリ解放も完全自動で気にしなくていいのにC並に高速というオマケ付き



110 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 09:36:25.32 ID:yj7fRD7v.net]
こういう頭悪いのいい加減やめろって
複オジさん

111 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 09:40:08.35 ID:0zvrEFac.net]
大きな代償はあるけどな

112 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 10:48:20.41 ID:+dvng9gb.net]
>>108
安全安心のおまけもついてくる

>>110
Rustに大きな代償はない

113 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 11:37:22.22 ID:BkE0C3wS.net]
煩雑。
参照でツリーが作れない。
リンクリストが本来の性能を引き出せない。

114 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 11:38:06.57 ID:BkE0C3wS.net]
これらのRustの問題点は、教授レベルでも理解出来てない人が多い。

115 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 11:48:29.39 ID:xlXEUxdt.net]
教授レベル?!

複オジ大先生 vs 数学100点大先生のやり取りはいつもいつも有意義有意義ww

116 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 12:04:57.77 ID:0zvrEFac.net]
今日日曜だけどつまらない書き込みしてんじゃないぞ

一日最低1000行書かないとレスしたらダメだぞ

117 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 12:06:35.28 ID:0zvrEFac.net]
ライフタイムがらみで一日なんどかキーボードかマウスを投げたくなる
自動で判定しろよ

118 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 12:53:49.06 ID:E6Fi7aBt.net]
>>116
そんな悩むようなことか?
そこまで酷いのは何か基本理解の欠如があるのではないか
簡単な具体例を出すことを勧める

119 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 13:33:15.09 ID:/eA4inlP.net]
オブジェクトの寿命に関するルールは実際には C++ とそれほど差が無い。
厳密に検証するということと、検証に必要なちょっとしたアノテーションが必要ってだけ。



120 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 14:26:00.76 ID:HrPxrbHk.net]
1000行書くという謎の目標にこだわってるからライフタイムの理解がおろそかになってるのでは
エラーが出るたびに原因をしっかり調べれば同じ過ちを何度も繰り返すことはなくなるでしょ

121 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 14:38:47.08 ID:Tm7q4JxH.net]
登大遊は凡人レベルのコードでいいなら1日1万行は余裕で書けるって豪語してて草生えたな
一時期は天才少年プログラマーと持て囃されてた彼も所詮日本の凡才駄プログラマーだったな
彼を見てるとわかるが日本人は手段にこだわって目的を達成できずに結果残せないないアホばかりなんよ
SNSやナレッジコミュニティやオフ会でドヤ顔で偉そうに蘊蓄たれてイキリ散らかしてるやつばかりなのって要するに日本の終わってるゼネコンビジネスIT業界で楽しみを見出せる要素がそこしかないからなんだってことよ
如何に日本のプログラマーがゴミで哀れな奴らかわかる

122 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 15:03:07.11 ID:E6Fi7aBt.net]
そもそもコードを書く時間よりもその
コードのリファクタリングなどの時間の方が多い
そしてリファクタリングでは行数は減る方向が多い
書く行数の多さを

123 名前:Cにするのは質ベースより量ベースの典型的なダメパターン []
[ここ壊れてます]

124 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 15:32:59.76 ID:EctOodKi.net]
普通にプログラミングするには問題ない程度にライフタイムを理解した上でも、
Rustには沢山の欠点が有り、ライフタイムをこれ以上理解しても、それは
解決しないと思ってる。
なぜなら言語そのものが持つ欠点だから。

125 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 16:05:52 ID:/eA4inlP.net]
それはそう。
足りない諸々は unsafe でやれ (プログラマが正しさを保証しろ) というデザインであって、全部を面倒見れるとは誰も思ってないよ。

126 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 16:42:05.24 ID:HrPxrbHk.net]
コード例ちょうだいよ

127 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 17:02:40.60 ID:j5zH7gpx.net]
大先生方wとまともに議論が成り立つわけないじゃんww

128 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 17:03:35.61 ID:EctOodKi.net]
>>123
しかし、Rustの方式では、ある種のアルゴリズムは、unsafe の中だけに
閉じ込めきれないことがあり、結局、アプリでそのアルゴリズムを本来の
効率では使えないことがある。
これも言ってることを理解するには経験と深いイマジネーションが必要なので
反論してくる人が居てもその反論が間違いで、Rustの欠点として本当に存在
している。
昔、C言語が登場した頃、アセンブラほどには速度を引き出せ無い事が有ったが、
大事な部分の関数をアセンブリコードで書けばそれで解決した。だから、
C言語がこんなに普及した。
ところが、Rustでは、それと同じ事が出来ない。
unsafeの中だけに閉じ込めきれず、「はみ出してくる」部分がsafeに扱えないので破綻してしまう。

129 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 18:00:07.94 ID:K4HcDkkQ.net]
具体性の欠片もないフワフワした話しかできないんなら黙ってりゃいいのにw



130 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 21:50:25.68 ID:HrPxrbHk.net]
linked listの人の完全論破されたら潜伏してほとぼりが冷めてから全く同じ主張を繰り返すムーブ何回目だよ

131 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 22:08:21.67 ID:tiLDs1XL.net]
>>126
具体的なことを何一つ言えない時点で話にすらならないが
一つ重要なアドバイスをしてあげよう

unsafeとは他の言語と同じ状態ということ
つまりunsafeについて批判すればするほどそれはRust以外の言語がいかにダメなのかを語っていることになる

ちなみにRustはunsafeの中でC言語と同じことができるしもちろんインラインアセンブラも書ける
つまりRustはC言語と同じ機能及び性能を有している側面がまず第一としてある

その上で外部を巻き込むことなくunsafeな部分を内部に完全に閉じ込めた各モジュール例えば標準ライブラリなどを次々と生み出すことにも成功している
そしてRustコンパイラが安全性を保証するプログラムを現実に書くことができることを実証してきた
だからこそIT大手各社が共同でRustを支持する状況にまでなったのだ

132 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 22:47:34.33 ID:a+FSzkH8.net]
なんか違う気がする

133 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 23:17:08.11 ID:x9P0i8er.net]
なんか違うというレベルじゃなく一番大事なところが間違ってるよ

134 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 23:41:56.43 ID:ha/kcOac.net]
このスレでよく見かけるパターン
Rustアンチな人は不利になると「なんか違う」「間違ってる」など呟くが具体的には何も言えない

135 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 23:48:10.53 ID:uYnkpWRD.net]
このスレじゃなくて5chすべてがそうなんだよ馬鹿www
こんな便所の落書きにすら劣るキチガイの巣窟で正論打っても意味ねーんだよ
こいつらはこいつら自身が一番嫌いなDQNやチンピラと同じ大いなる無駄なことして暇つぶしてるガイジどもなんだよwww

136 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 23:57:49 ID:vZYSRByq.net]
複オジは信者の自分以外はみんなアンチにみえちゃうみたいw

137 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 00:48:50.97 ID:H2jYU4qp.net]
cと同じに欠けるってのは明らかに嘘だろ。メモリモデルが違いすぎるっつーの。

138 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 01:01:44.47 ID:zU5p2DDn.net]
>>129
あなたは理解できてない。

139 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 01:54:43.58 ID:3k8jHKP2.net]
>>135
たとえば?



140 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 02:12:28.58 ID:WMds9h9Q.net]
rustには定義されたメモリモデルはないわけだが何を比較してCと違うと言っているの?
https://doc.rust-lang.org/reference/memory-model.html

141 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 03:21:25.34 ID:zU5p2DDn.net]
>>135
「メモリモデル」という言い方は、PC-9801のような16BIT MS-DOS時代に
別の意味で使っていたから混乱を招くが、言いたいことは分かる。

142 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 04:54:10.56 ID:086teQVY.net]
言いたいことが分かるなら説明すればいいのに...

143 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 07:57:34.42 ID:aE2+UZrf.net]
>>139
結局のところ>>129で合っているわけか

144 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 09:03:48.35 ID:tfDB1jS/.net]
>>138
そんな真面目な用語じゃなくて
プログラマがメモリに対して持つメンタルモデルとかそのくらいの意味ではないかと思われる

145 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 09:23:30 ID:YSvCn/0F.net]
メンタルモデルw

146 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 09:24:13 ID:WMds9h9Q.net]
>>142
そのレベルの話だとしてもスタックやヒープの使い方はrustもcも同じだよね
何をもって違いすぎると言っているのかがわからん

147 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 11:11:40 ID:1aJxC781.net]
>>129
>unsafeとは他の言語と同じ状態ということ
unsafeでもRust特有のメリットもあればデメリットもある
特にC/C++とは担保されてるsafetyのレベルが根本的に違うので「unsafeなら他の言語と同じ」とか言ってる人はunsafeをまるで理解してないので騙されないように

148 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 11:57:37 ID:DrP+xMl0.net]
そこはあまり本質的じゃないな
Rustは機能的にも速度的にもC言語の代替となれる点が本質だろう
そのうえでRustは非常に大きなプラスαがあるからC/C++は不要となった

149 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 12:04:57 ID:RBYxpWsA.net]
Rustの側で書き換えないから
let a=99;
とかした奴をCに渡してC側で書き換えるのってアウトだよね?



150 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 12:06:52 ID:qOfLavvD.net]
>>146
何の本質??

151 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 12:45:51.46 ID:rY6uXQUu.net]
>>142
メンタルモデルなんて言葉ねーよ、ハゲ

152 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 12:48:07.99 ID:RggUqH9I.net]
Rustの登場でC/C++が要らなくなったのは当然

>>147
まずはRustの初歩を学習必須
Rustではlet mut a = 99; とmutを指定すればその変数が書き替え可能
呼び出し先で書き替えたいならば
まずRustの関数を呼び出す時は &mut a と可変参照を渡せば呼び出し先で書き替え可能
Cの関数を呼び出す時はそれを *mut とポインタにして渡せば呼び出し先で書き替え可能

153 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 12:51:14.14 ID:iNsmlcex.net]
>>146
全てunsafeにでもしない限り、効率を落とさずには代替になれない例が有ると言っている。
ポインタ値をアプリ全体でLinkedListのノードを識別するための id 値として
利用している場合だ。
index 番号では効率が劇的に下がるケースが多い。

154 名前:デフォルトの名無しさん [2022/07/04(月) 13:07:11.60 ID:EPYowFm9.net]
>>151
その件に限らず全てのケースで以下が成立する
基本事項: RustではCと同じ速度&同じ安全度で常に全ての実装が可能
追加事項: RustではCと同じ速度&完全に安全なインタフェースで多くの実装が可能
したがってCが不要となったとの話はもちろん正しい

155 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 13:15:16.22 ID:tfDB1jS/.net]
&a as *const _ as *mut _

156 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 13:24:41.08 ID:iNsmlcex.net]
>>152
あなたの理解は浅い。

157 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 13:39:33.82 ID:Lyc/Sj1E.net]
>>153
それはmut宣言していない変数を(先のC関数もしくはRust unsafeで)書き換えてしまうことになるためあまりよろしくない
書き替えるならばmut変数のmut参照を直接*mutにした方が良いのでは
let mut a: 型名 = 初期値;
c_func( & mut a as *mut _ )

>>154
それは>>152で正しい

158 名前:デフォルトの名無しさん [2022/07/04(月) 13:43:31 ID:NdI05vlq.net]
すべての言語にunsafeがあればいいよね

159 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 14:00:59 ID:WMds9h9Q.net]
>>151
ベンチマークください



160 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 14:07:26.39 ID:V2xsx4Ai.net]
>>147
FFI呼び出しに要求されるsafetyを満たしてないと言う意味ではアウトだけどそれがどうかした?

161 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 14:13:33.00 ID:hjCO09br.net]
まーた複オジ vs 100点オジの低レベルな言い争いになってるから
隔離スレ復活させたほうがいいな

162 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 15:40:19.20 ID:iNsmlcex.net]
>>155
頭の悪い人は黙ってろ。

163 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 16:04:58.57 ID:ttcTbGc1.net]
>>160
>>155に間違いは無いようだし
君はさっきから的外れなことばかり書いてるような

164 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 17:29:54.81 ID:3k8jHKP2.net]
>>151
それがどうしたというんだ?
何を言いたいのかわからん。

165 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 18:02:37.22 ID:iNsmlcex.net]
>>162
馬鹿には何を言っても理解できない。

166 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 18:07:12.10 ID:3k8jHKP2.net]
> 全てunsafeにでもしない限り

誰も問題にしてないところを勝手に取り上げるのはストローマン論法っていうんだぜ!

167 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 18:46:54.41 ID:tF6z07pc.net]
>>151
なにを問題にしてるのかよくわからんが必要なら全てunsafeにすればいいやん
それでもCとかと同じでそれ以外のケースではRustの方がより安全なんだし

168 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 19:49:32.85 ID:FTPm+Svf.net]
リーナスがこのスレを見ていたらLinuxに採用されることはなかっただろうね

169 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 19:55:55.02 ID:7t9P5Iu7.net]
みたらそっ閉じするだろw



170 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 19:58:11.73 ID:VzaqPz19.net]
>>143
センチメンタルな用語ですね!

171 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 20:06:09.66 ID:WMds9h9Q.net]
メンタルモデルってプログラマー界隈ではよく知られた言葉だと思ってたんだけど通じない人もいるのね

172 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 20:26:03.13 ID:rP4GYYNg.net]
プログラマー界隈で言ってる奴を見たことないしそもそも違い云々の時にそんなもん出されても困惑するだけ

173 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 20:26:54.96 ID:55lLLVgr.net]
>>169
普通は通じるからご心配なく

174 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 21:09:07.84 ID:LgYZqAbq.net]
>>169
自分の周りでも普通に通じるけど、よく考えるとどこで知った用語か謎かも…
なんか有名なプログラミング系の本とかに書いてあったっけ?

175 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 21:22:26 ID:k0bSAJLz.net]
適当な造語をさも常識のように語るのはやめようね
そもそもそんな言葉使わなければいい話

176 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 21:31:48.17 ID:rrB3dRAB.net]
>>172
プログラミングのコンテキストでよく使われるようになったのはUI/UXデザイン分野でよく使われてたからじゃないかな
ドン・ノーマンの「誰のためのデザイン?」とかかなり昔の本から使われてるよ

177 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 21:34:43.82 ID:tfDB1jS/.net]
そもそも拾う必要すら無かったレスを拾ったばっかりによく分からん論争に
なんかすんませんな

178 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 21:35:54.46 ID:WMds9h9Q.net]
>>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

179 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 21:44:59.75 ID:Xyf5Vl2i.net]
複オジ大先生がそんな言葉ないとおっしゃってるんだぞ!
スーパー自宅開発者の複オジ大先生が間違ってるとでも言うのか!!



180 名前:デフォルトの名無しさん mailto:sage [2022/07/04(月) 21:56:46.09 ID:UzLOsPAb.net]
もはやここが隔離スレ状態

181 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 02:12:03.31 ID:WHTTcdQX.net]
>>165
「全てunsafe」だぞ。
アプリ全体をunsafeということだ。
なら、C/C++で十分。

182 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 04:52:44.77 ID:86ZbPeAT.net]
だから
> ポインタ値をアプリ全体でLinkedListのノードを識別するための id 値として利用している場合だ。
の場合だけだろ
お前はそんな特殊なアプリしか作らないのかよw
そもそもノードの識別を全体にばらまいてるとか設計がタコなんじゃね?

183 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 05:08:33.40 ID:WHTTcdQX.net]
>>180
RubyやJava、オブジェクトの「識別番号」が取得できることがあるが、
それはポインタ値だ。通し番号ではない。
つまり、C言語では伝統的に、リンクトリストのノードを識別するために
ポインタ値が使われている。そしてそれこそがリンクリストの本来の使い方。
だれかが間違えて、通し番号で識別する習慣が生まれてしまったが、それは
集団幻覚みたいなもので、誤った使い方だ。

184 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 05:22:06.16 ID:b2cot2gP.net]
で、何が言いたいんだ?
Linked Listをアプリ全体にばらまいてるアホ設計を正当化しようとしてるのか?w

185 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 06:08:27.82 ID:8LqsNmpu.net]
>>177
気に入らないやつを片っ端から複おじ認定するのは荒らしなんだろうか

186 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 06:20:58.64 ID:Nla2AFrI.net]
>>183
その子はキチガイ
>>159でも気に入らない二人だけが書き込みしてるように見えてる

187 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 07:54:16.72 ID:n+I8xvZo.net]
>>181
GC言語では、ポインタと言ってもコストの高いポインタとなっていて、コストの高いガベージコレクションで回収する。
それに加えて、データ競合を防ぐには更に何らかの競合回避コストも加わってくる。

一方で、C/C++ではリンクされたノードリストからノードを外す時に、そのライブラリがノードを解放してしまうと、そこへのポインタを保持していた場合にダングリング発生。
それを回避するためにはshared_ptrなどのコストの高いポインタを使わざるを得ない。
ちなみにC++のshared_ptrはスレッドセーフだからマルチスレッド時でも大丈夫だが、逆に言えばシングルスレッド時には無駄なコストがかかっている。

Rustでは、そこはRcとArcの2種類が提供されており、シングルスレッド時にはコストの低いRc使用、マルチスレッド時にはRcだとコンパイルエラーとなってくれてArc使用と、最小限のコストで済む。
このようにノード解放の観点だけ見ても、考慮すべきことをRustコンパイラは適切に指摘してくれる。

188 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 10:29:00 ID:1zzLwZyb.net]
なんでずっとRustスレでRustのセールストークやってるんだ?

189 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 10:43:19 ID:XxVp5yEy.net]
RustスレでRustのネガキャンやってるやつよりマシだろ



190 名前:デフォルトの名無しさん mailto:sae [2022/07/05(火) 11:28:42.85 ID:UQspXvq+.net]
>>182
C言語が速い秘密はLinkedListとそのノードをアプリ全体でポインタ値で識別している
ことにある。先頭を0として1,2,3と割り振った通し番号を使っていたと
したら、全然速度が出ない。
そしてその証拠が、JavaやRubyなどで「識別番号」が8桁の16進数で表示できる
ことだ。その識別番号とは生ポインタ値のことであり、それがそのオブジェクトを
唯一に特定できる最も効率的な方法である。
他の方法では効率が落ちる。

191 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 11:29:55.08 ID:UQspXvq+.net]
>>185
あなたは、理解が浅い。
RustのRcやArcには欠陥がある。
そんなもので済むならとっくにCやC++でも採用されている。
C/C++の歴史の長さを舐めてはいけない。

192 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 12:22:07.18 ID:KaO4bask.net]
>>188
同じ話を何度も繰り返すなよ、ボケ爺か?
そうであってもそのアプリがCと同じでそれ以外のアプリならRustの方が安全って書いてあるだろ

193 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 12:28:00.80 ID:1zzLwZyb.net]
>>187
他人に説明できるだけの合理的理由が無いことは自覚してるんだな……

194 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 12:32:52.81 ID:84q7aSs+.net]
えっ、なにか説明が欲しかったのか?
スレ読んでりゃわかると思うがw

195 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 13:04:52.14 ID:n+I8xvZo.net]
>>189
欠陥があると主張するならば、その理由を示さなければならない。
さらにC++でも採用されていることを知らないのは無知ではないか?
C++のshared_ptr = RustのArc = SwiftのARC が同じ機能であり、スレッドセーフなリファレンスカウンタ利用の共有ポインタ方式。
それらのスレッドセーフでないコストの安いバージョンがRustのRcである。
これらは、安全にポインタを共有しつつ即時解放を行なうために、必須の機能である。

196 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 13:13:39.59 ID:Fs2kh1Em.net]
>>188
ここでいう効率ってなんの効率?

197 名前:デフォルトの名無しさん [2022/07/05(火) 13:19:57.09 ID:MoDZ63yv.net]
ラスタシアンは何故算数おじさんに触れずにいられないのか

198 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 16:10:20.98 ID:UQspXvq+.net]
>>193
いや、RustのRcなどは、C++とshared_ptrと同じじゃない。
全然違うと言っても過言ではない。

199 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 18:30:15.50 ID:Fs2kh1Em.net]
>>195
なぜか自分のレスには反応してくれないんだよね

>>196
具体的になにが違うの



200 名前:デフォルトの名無しさん mailto:sage [2022/07/05(火) 23:09:51.67 ID:n+I8xvZo.net]
>>196
違いがあると主張するならば、この議論で意味のある違いがあることを示さなければならない。
さらに前述の、欠陥があると主張した件についても、その欠陥を示さなければならない。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<279KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef