Rust part17at TECH
Rust part17 - 暇つぶし2ch214:デフォルトの名無しさん
22/10/25 18:21:31.05 RZIJ148t.net
structのフィールドにasyncのクロージャ持たせるの面倒だな

215:デフォルトの名無しさん
22/10/26 00:21:17.27 +/Fbza6R.net
>>210
Pin<Box<dyn Future<Output = T>>> ではだめ?

216:デフォルトの名無しさん
22/10/26 01:59:13.05 TlW6c1+d.net
>>211
Box<dyn Fn() -> Pin<Box<dyn Future<Output = T>>>>
こんな感じ

217:デフォルトの名無しさん
22/10/26 03:12:53.76 J4zGWIbj.net
>>200
全部とは言っていないローカル変数だけだ

218:デフォルトの名無しさん
22/10/26 07:48:04.37 i0Q+rT9S.net
>>213
GoだってJavaだってローカル変数はスタックを利用する。

219:デフォルトの名無しさん
22/10/26 08:03:17.30 xzd5i3vP.net
>>214
Go は知らんが Java は値型しかスタックに確保しないよ
配列使うだけでヒープ使う

220:デフォルトの名無しさん
22/10/26 10:03:48.91 8iR+QuRY.net
んなこと言ったらRustだってBox使うだけでヒープ使われるだろ

221:デフォルトの名無しさん
22/10/26 10:28:26.80 poB2zSjv.net
ピープアレルギーでも湧いたのか?

222:デフォルトの名無しさん
22/10/26 10:55:30.37 xzd5i3vP.net
>>216
そりゃあえてBox使えばヒープ使うわな
極論バカ乙w

223:デフォルトの名無しさん
22/10/26 12:39:08.43 61QnplYU.net
ヒープで思いついたけどtest::benchってなんで使用したメモリ量出てこないの?Rustだってアロケーター自作できるなら出せなくないと思うんだが

224:デフォルトの名無しさん
22/10/26 13:39:05.90 29TlHyS0.net
c言語なんかも int a[n] とかはスタックから取ってきてる。昔はmallocしてたが。
とはいえlinuxのスタック領域はヒープとそんな変わらん。

225:デフォルトの名無しさん
22/10/26 13:49:21.71 OrdcPqRc.net
環境によるが、Rust のスレッドごとのスタックサイズのデフォルトが2MBとかで
バカでかいローカル変数や引数を使おうとすると、
簡単に実行時エラー/スタックオーバーフローを実現できるという
ちなみに、String はヒープを使う

226:デフォルトの名無しさん
22/10/26 14:58:21.99 XcmPInF1.net
>>220
ん?
何が変わらんの?

227:デフォルトの名無しさん
22/10/26 16:10:38.33 +/Fbza6R.net
>>219
issueはあるが放置されてる
URLリンク(github.com)
こういうのは欲しい人が積極的に動かないとなかなか進まないよね

228:デフォルトの名無しさん
22/10/26 18:56:12.77 m/VlzFSs.net
C 以外の言語は、すべて浅いコピー・shallow copy でしょ。
実体はコピーされずに、参照だけがコピーされる
たぶん、ローカル変数も参照だけがスタックにあって、
実体はヒープにあるのでしょ

229:デフォルトの名無しさん
22/10/26 19:32:11.84 /Jbhrlo+.net
そもそもスクリプト言語はマシンスタック使ってないから
C/C++/Rust/Goみたいなコンパイル言語とスクリプト言語(PythonとかRuby)とではメモリモデルが全く違う
JVMのJITはVMスタックをマシンスタックに引き継ぐって処理をやってるけど

230:デフォルトの名無しさん
22/10/26 19:35:12.65 +/Fbza6R.net
>>224
Cにdeep copyの概念ある?

231:はちみつ餃子
22/10/26 19:39:57.27 UI6BPQPg.net
>>226
たぶん >>224 は Java や C# などでいう参照型のことを言ってると思う。

232:デフォルトの名無しさん
22/10/26 19:41:30.91 WAf5RIwU.net
Box<T>って出現頻度の割に表記が長いよな
boxキーワードに変える案はどうなったんだ?

233:デフォルトの名無しさん
22/10/26 20:19:12.15 SEIcgM+j.net
>>220
まーた思いつきで適当なこと言ってるの?

234:デフォルトの名無しさん
22/10/26 21:39:27.98 xibmu52f.net
シャローコピーもディープコピーもプログラマに意識させるような言語の方がいいと思うけどなあ

235:デフォルトの名無しさん
22/10/27 17:59:59.22 36nf4K/2.net
C言語は低レベルすぎるからshallow copyやdeep copyを意識する必要がそもそもないしな
ポインタをそのまま複製するのがshallow copyでポインタをデリファレンスしてからその値を複製するのがdeep copyってだけやし

236:デフォルトの名無しさん
22/10/27 18:19:49.08 mzG41rMz.net
cだってポインタがネストされてたら順番に見てかないといけないのは他の言語と同じでしょ。
ネストを考慮しなくて良いならjavaだってcloneで一発コピーできる

237:デフォルトの名無しさん
22/10/27 22:00:27.64 rMi5UTbc.net
>>231
> C言語は低レベルすぎるからshallow copyやdeep copyを意識する必要がそもそもないしな
むしろ意識しまくりだろ
shallow copyとかdeep Copyとかのおしゃれな名前では呼んでないけど

238:デフォルトの名無しさん
22/10/27 22:11:49.94 olmwGZ8d.net
複製おじさんディープコピー知らなかったもんねw

239:デフォルトの名無しさん
22/10/27 22:27:03.43 DBkkmtck.net
あえていうならCにおいては構造体のメンバをそのまま代入するのがshallow copy
構造体のメンバのポインタの領域を新しく領域を確保してコピー元の構造体を再帰的にmemcpyするのがdeep cooy

240:デフォルトの名無しさん
22/10/27 23:13:57.69 qcIge2ki.net
Cではというが大多数の言語がそうじゃね

241:デフォルトの名無しさん
22/10/28 00:02:58.28 Rl5QKwW8.net
deep copy は、ネストするから難しい
Ruby などは参照のリンクを断つために、
一旦、JSON などの文字列にしてから、オブジェクトを再構築したりする
Marshal もあるけど、色々な条件がつく。
IO, Proc, 特異メソッドが使えないとか

242:デフォルトの名無しさん
22/10/28 01:13:37.77 jXOvR4PJ.net
なんか話の脈絡も流れもなく各人が単語に反応して書きたいこと垂れ流すだけのスレと化してんな

243:デフォルトの名無しさん
22/10/28 03:43:44.96 01u53tKZ.net
高階関数はGCの性能に影響を及ぼすの?

244:デフォルトの名無しさん
22/10/28 09:27:53.24 jXOvR4PJ.net
Webpackの後継となる新バンドルツール「Turbopack」が登場。Rust製のネイティブアプリケーションでWebpackの700倍高速に。Next.js Conf 2022 - Publickey
URLリンク(www.publickey1.jp)

245:デフォルトの名無しさん
22/10/28 16:15:00.57 AMrJHSke.net
JavaScriptっていつまでバンドルとかやるん?

246:デフォルトの名無しさん
22/10/28 16:24:46.58 muqJ433+.net
いっそコンパイルしたら

247:デフォルトの名無しさん
22/10/28 16:28:04.57 AMrJHSke.net
wasmでそれやろうとしてるけど
wasmランタイムよりJavaScriptランタイムの方がまだ速いというトホホな状態

248:デフォルトの名無しさん
22/10/28 19:59:50.54 eNUtjibx.net
じゃあasmjsでよくね

249:デフォルトの名無しさん
22/10/30 11:39:14.94 zV+ownbZ.net
何いってんだ
JavaScriptはRustの大口顧客だぞ
バカにするなんてとんでもない
JavaScriptの市場が大きいほどRustが儲かる仕組みなんだ

250:デフォルトの名無しさん
22/10/30 13:52:59.67 Ffhte1rz.net
moziraとgoogle, Microsoftと主要ブラウザメーカーが推進してるからな

251:デフォルトの名無しさん
22/10/30 19:41:21.29 TG2fSMWC.net
なんでvecの&mutに*が不必要なのか、いまいち理解してなかったけど
fn calc(n: &mut Vec<usize>) {
 (*n).push(1);
}
こういうことかー。そういうことだったのかー

252:デフォルトの名無しさん
22/10/30 23:24:15.56 tkb7REiJ.net
struct User {
name : String,
age : u32,
}
fn main() {
let mut user = User {
name : "sato".to_string(),
age : 30,
};
user.age = 40;
user.name = "aaaa".to_string();
println!("{}{}", user.name, user.age);
}
"sato".to_string()で生成したStringは
user.name = "aaaa".to_string()後はどうなるの?
mainの}抜ける=プログラム終了時ようやく解放?

253:デフォルトの名無しさん
22/10/30 23:41:49.13 fG4j0a7a.net
Dropを自分で実装した型で試せばわかる

254:デフォルトの名無しさん
22/10/31 19:06:46.94 DHbQvQ7c.net
相変わらずLinusに怒られまくってるね

255:デフォルトの名無しさん
22/11/01 06:39:05.97 y5vMQo4Y.net
rust導入してもディレクトリ構造が汚くなるだけなのにどうして導入したんだろうね
正直撤回して欲しいわ

256:デフォルトの名無しさん
22/11/01 07:47:38.45 6ZBnCRFC.net
ディレクトリ構造なんかより優先すべきことがあるからだろ
rust使う意味を何も分かってないな

257:デフォルトの名無しさん
22/11/01 14:04:14.12 w6yg6Ajb.net
もうlinusがカーネル用にsafeな言語作った方がいいんじゃないの
既成言語じゃ既存の処理系と整合性をとらないといけないから
いろいろな不整合が生じる

258:はちみつ餃子
22/11/01 14:12:23.10 XoXOtAeK.net
エコシステムの充実はユーザ規模によるところがあるから
たとえ言語の設計としてベストマッチでも特化しすぎると
(使い手が増えなくて) 雑多なツールやライブラリが出揃い難いということもありうる。
Linux くらいの規模なら専用言語を作っても割に合ったりするかな?

259:デフォルトの名無しさん
22/11/01 14:25:52.66 smDWdngC.net
linusがなんか言ったの?
ググってもlinux 6.1にrustが取り込まれた話しか見つけられなかった

260:デフォルトの名無しさん
22/11/01 14:50:17.04 FsVxrWah.net
>>253
なにそのgitな流れは。
凄まじく少ないコードで実現してしまいそうで恐ろしい。
ピーキーなのになって、普通の人は使えないのを期待しちゃう。

261:デフォルトの名無しさん
22/11/01 14:58:39.21 O+5UiM+O.net
>>253
linusはgcc拡張のCが最高だと思ってる人だよ

262:デフォルトの名無しさん
22/11/01 18:29:34.49 cxS6KzKc.net
>>250
どれ?

263:デフォルトの名無しさん
22/11/02 15:56:44.98 ohjjd8k9.net
linuxもデフォルトcというよりもかなりカーネル用の拡張してるからrustもそうすればええわってのが
linusの主張でしょ。

264:デフォルトの名無しさん
22/11/02 16:18:07.00 qqWWqhkC.net
一応clangでもlinuxカーネルコンパイルできるようになっているということは、
LLVMに必要な機能はそろっているということだろうから、
rustcからそれらの機能を呼び出せるようにできれば良いのかね

265:デフォルトの名無しさん
22/11/02 16:35:45.00 F11hp17c.net
リーナスゴシップとかどうでもいいスレチネタを続けるなよ

266:デフォルトの名無しさん
22/11/03 02:16:08.55 atTBpfYp.net
しょーもないシンタックスの話より有意義だけどな。

267:デフォルトの名無しさん
22/11/03 05:38:58.72 CtTK5dM6.net
1要素タプルの書き方Pythonと同じなんだね
パターンマッチで参照外しと絡むとややこしいなぁ
// 要素1のタプルはカンマ必要
let (mut a, ) = (1, );
a = 100;
println!("{}", a); //=> 100
// 要素1のタプルはカンマ必要
let &(mut a, ) = &(1, );
a = 100;
println!("{}", a); //=> 100
// (式)と区別つかないからとか
let &(mut a) = &(1);
a = 100;
println!("{}", a); //=> 100
// error[E0308]: mismatched types
let &mut a = &1; // ←ココ
a = 100;
println!("{}", a);
// こっちはok
let &(mut a) = &1;
a = 100;
println!("{}", a); //=> 100
mutがどっちに付くのが優先なのか(イミュータブルなaの参照なのかaのイミュータブル参照なのか)覚えてないと適切に()付けられないね、覚えりゃいいんだけども
Rustの話に限らずもっと根本的な解決方法ってないのかな?
()をいろんな意味に酷使し過ぎでは?関数の引数部分、式の評価順変更、タプル、等々
型は後置修飾なのに&やmutはなんで前から懸かるの?
これ全部RPNにすれば解釈の曖昧さがなくなって優先順位の()が要らなくなり、関数呼び出しもf1(1, f2(2, 3), f3(4))は1 2 3 f2 4 f3 f1となって、タプル以外の()撲滅できないか?

268:デフォルトの名無しさん
22/11/03 19:40:23.88 4W4icteo.net
>>263
()を色々使いすぎというのは同意だけどRPNだと今よりもっと使われないよ。
連鎖性言語とか好きだけど。

269:デフォルトの名無しさん
22/11/03 21:14:31.73 Z+updFpk.net
()については他の言語と同じだしそこで変に独自性を出してもなぁという感じ

270:デフォルトの名無しさん
22/11/03 21:15:01.48 t6ap+kyc.net
for &i in vec![0_usize; 5].iter() {
 //iのままなんちゃら
}
for i in vec![0_usize; 5].iter() {
 //*iでなんちゃら
}
参照外しはどっちをつかってる人のほうが一般的なん?

271:デフォルトの名無しさん
22/11/03 21:21:15.76 0fRPRys5.net
Copy実装してる型なら別にどっちでも……

272:デフォルトの名無しさん
22/11/03 21:35:17.79 b1nVlp4p.net
union で定義した型があり、タグビットに相当するビットで variant を区別できる場合に
enum と同じ表現でパターンマッチするというようなことは出来ませんかね?
マニュアルを見た感じでは出来なさそうなので駄目で元々な相談なんですが……。
それが欲しくなった事情としては抽象的なバイトコードマシンが定義されていて
そのバイトコードをそのまま enum にマッピングできれば楽なのになと思った次第です。

273:デフォルトの名無しさん
22/11/04 04:42:50.90 QJXSkaei.net
.expect("なんとかかんとかfailed.");
expectの引数はこんな文章になりがち
.expect("なんとかexpected, but かんとか found");
ならまだいいけど
コード読むときexpectというメソッド名からその引数には"期待しているものの説明"を"期待"してしまう
慣れるんだろうか…

274:デフォルトの名無しさん
22/11/04 08:57:52.35 KcmeiRV8.net
>>269
英単語を声に出して読んでみ

275:デフォルトの名無しさん
22/11/04 09:12:11.15 NSu48ax/.net
>>269
公式のドキュメントにも
.expect("failed to parse number")
という例があるしあまり気にしない方がよさそう
URLリンク(doc.rust-lang.org)

276:デフォルトの名無しさん
22/11/04 09:15:25.47 yWEsFaag.net
>>271
これ英語の分からん奴が書いたんだろう

277:デフォルトの名無しさん
22/11/04 09:25:36.66 u3TD418O.net
>>269
まあ慣れるしかないわな
俺もこの名前はおかしいと思うし世の中でもおかしいと思う人はいるようだ
URLリンク(stackoverflow.com)

278:デフォルトの名無しさん
22/11/04 09:47:45.14 QJXSkaei.net
>>273
よかった、俺だけではなかったか

279:デフォルトの名無しさん
22/11/04 09:54:11.00 NSu48ax/.net
推奨されるメッセージのスタイルが定義されているので>>269は正しい
URLリンク(doc.rust-lang.org)
どうしても気になるならこれを根拠にしてメッセージを修正するpull req送ると良いと思う

280:デフォルトの名無しさん
22/11/04 11:58:42.90 hgziOenm.net
君、ぼくのおちんちんを舐めてみないかい

281:デフォルトの名無しさん
22/11/04 12:36:39.57 8jcY9XF+.net
.expect("ン拒否するゥ");

282:デフォルトの名無しさん
22/11/04 13:14:11.67 u3TD418O.net
.expect("もう少しぶっといイチモツを用意すべきです")

283:デフォルトの名無しさん
22/11/05 21:07:51.50 EPLuMYxk.net
expectがそもそも期待するという意味より、予想するという意味合いで使われてることが多い気がする

284:デフォルトの名無しさん
22/11/05 21:47:55.53 6MdwxjIj.net
ここまで1.65の話題ゼロか

285:デフォルトの名無しさん
22/11/05 21:51:57.09 4ktyBPoJ.net
GAT難しいからw

286:デフォルトの名無しさん
22/11/05 21:58:52.83 B2i8Nuif.net
Rust 1.65.0 の発表
2022 年 11 月 3 日 · Rust リリース チーム
URLリンク(blog.rust-lang.org)
新しい Rust リリースの詳細に入る前に、イランの宗教道徳警察によるMahsa Amini の悲劇的な死と、他の多くの人々の死と暴力的な抑圧に注意を向けたいと思います。詳細については、 URLリンク(en.wikipedia.org)を参照してください。私たちは、人権のために闘っているイランの人々と連帯します。
↑BLMといいウクライナといい海外ITの政治的主張入れて当然みたいなノリ苦手
質実剛健のイメージだったがRustチームも同じでちょっとガッカリ

287:デフォルトの名無しさん
22/11/05 22:23:37.34 CC30py/U.net
嫌な世の中だな

288:デフォルトの名無しさん
22/11/05 22:33:26.02 zxpwXxCd.net
そういうのが嫌なら使わなければよろしい

289:デフォルトの名無しさん
22/11/06 03:47:36.18 5A+TXyoz.net
お、Backtraceがstabilizeされたか
めでたい

290:デフォルトの名無しさん
22/11/06 23:25:31.82 tr7TV8Z+.net
>>285
うむ

291:デフォルトの名無しさん
22/11/07 14:30:18.00 5gh9UgGm.net
むしろ政治的な要素が少しでもあると過敏反応する日本IT連中のがキモいわ

292:デフォルトの名無しさん
22/11/07 14:37:07.26 3k6QMezQ.net
RustってSDGsだよね

293:デフォルトの名無しさん
22/11/07 16:35:16.97 F5fz3af4.net
みんなMSRVいくつにしてる?

294:デフォルトの名無しさん
22/11/07 21:29:16.68 oBOm8exD.net
日本人はまあ事なかれ主義だから仕方がない

295:デフォルトの名無しさん
22/11/09 08:18:29.70 JQdb1AnG.net
過剰反応というかツイッターでも左翼のトレンド操作がバレてしまったし
そういう必死な印象操作する奴らに全く反応しないのも正常性バイアスなだけで危険だと思うけどね

296:デフォルトの名無しさん
22/11/09 08:49:14.30 jv4fVWS/.net
別に操作でもなんでもなく前から人が選んでるって言ってたじゃん。
だからそういうのを過剰反応って言うんだよ。

297:デフォルトの名無しさん
22/11/09 09:39:55.00 LmGx5OMY.net
>>291
ナイーブなやっちゃなぁ
どの国でも底辺ほど極右化しちゃうのは物事が見えてないからなんやな

298:デフォルトの名無しさん
22/11/09 09:48:57.31 fSnT1d04.net
貧困老人って左傾化してるイメージある

299:デフォルトの名無しさん
22/11/09 12:28:40.18 aAawVede.net
>>292
トレンドはどのように決定されますか?
トレンドはアルゴリズムによって決定され、初期設定では、フォローしているアカウント、興味関心、位置情報をもとにカスタマイズされています。
こういうAI系にRustが使われる可能性ありそうかな?

300:デフォルトの名無しさん
22/11/09 12:56:20.73 YZQA7nNX.net
>>295
コア部分がC++、FortranからRustに変わるとかはありそう

301:デフォルトの名無しさん
22/11/09 13:03:43.26 tbXsBHme.net
>>294
それもまたナイーブな見方やなぁ
反自民党なら左、親自民党なら右やと思ってるんやろ?

302:デフォルトの名無しさん
22/11/09 14:25:41.02 bNBw/HLH.net
>>296
rustのGPU周りのツールチェインは整備進んでるの?

303:デフォルトの名無しさん
22/11/09 19:49:39.97 8uuc6jgH.net
>>298
GPGPU系は普通に使えそうな感じはしてるけどdeep learning周りはNvidiaが乗り気になるまで無理かもしれないと思えてきた

304:デフォルトの名無しさん
22/11/12 21:53:46.90 PWetNf5n.net
eguiつよそうだけどみんな興味ないの?

305:デフォルトの名無しさん
22/11/13 01:00:16.84 1Xo91Kz4.net
guiはeguiとtauriの2強になりそう

306:デフォルトの名無しさん
22/11/13 02:09:24.41 Uh0BavN1.net
eguiはエグイ

307:デフォルトの名無しさん
22/11/13 02:33:53.13 RFRBhoEy.net
言うほど2強か?
URLリンク(www.publickey1.jp)

308:デフォルトの名無しさん
22/11/13 21:44:40.30 S


309:eSkk5iM.net



310:デフォルトの名無しさん
22/11/13 22:06:12.87 iM/fRtPp.net
脱Electronした純Rust製コードエディタが出ないことには評価し辛いな。

311:デフォルトの名無しさん
22/11/13 22:58:55.78 T5PK/vl5


312:.net



313:デフォルトの名無しさん
22/11/15 00:12:55.17 dw7MQVYD.net
Bevyの変更量エグいな。1.0到達まで様子見するわ
URLリンク(bevyengine.org)

314:デフォルトの名無しさん
22/11/15 00:20:45.30 aZkMwykQ.net
米国家安全保障局、CやC++からメモリー安全性の高いJavaなどへの移行を推奨
URLリンク(japan.zdnet.com)
ハッカーらによるリモートコード実行(RCE)をはじめとするさまざまな攻撃からコードを保護するために、C#やGo、Java、Ruby、Swift、Rustといったメモリー安全性の高い言語に移行するよう推奨している。

315:デフォルトの名無しさん
22/11/15 00:37:48.72 91d2LP66.net
CやC++で書かれているライブラリに依存するのもやめた方が良いのかね

316:デフォルトの名無しさん
22/11/15 01:26:07.72 5Bng48RE.net
実績というのは何にも代えがたい証明だからね。
十分に広く長く使われて枯れたライブラリをすぐさま使用停止するほどではないと思う。
長期的には移行せざるを得ないと思うが。

317:デフォルトの名無しさん
22/11/15 02:05:15.69 9SlnRoJw.net
>プログラマー側での実行に大きく依存している
言語の問題ではなくて、処理系と設計の問題だろうけど
C/C++と同程度の注意力であっても、
比較的楽に安全な実装が可能という話か

318:デフォルトの名無しさん
22/11/15 05:58:46.96 XpLYghoG.net
RubyはRustの誤植な気がする

319:デフォルトの名無しさん
22/11/15 06:20:05.09 dw7MQVYD.net
Javaもnull非安全クソ言語じゃんぬるぽ

320:デフォルトの名無しさん
22/11/15 07:20:48.25 GEd0aXfX.net
>>312
元の記事でも
The National Security Agency (NSA) is urging developers to shift to memory safe languages – such as C#, Go, Java, Ruby, Rust, and Swift
って書いてあるから誤植とかでは無いと思うがNSAのソースを示してほしいね
URLリンク(www.zdnet.com)

321:デフォルトの名無しさん
22/11/15 08:46:43.91 91d2LP66.net
メモリ安全という意味ではRubyは条件満たしてはいるのでは
Pythonがないのは気になるが

322:デフォルトの名無しさん
22/11/15 08:47:01.64 UduTysKC.net
ソース
URLリンク(media.defense.gov)

323:デフォルトの名無しさん
22/11/15 09:09:11.17 ott+UO1u.net
人工衛星イザナミ・イザナギでも、mruby を使っている
C はポインターでバグるから、
文字列処理などはポインターを使わない、安全なmrubyが良い
それで、mrubyから、Cのライブラリを呼び出せば安全

324:デフォルトの名無しさん
22/11/15 11:32:13.77 LEUpsbho.net
文字列処理でポインタを使わないってどうやんの?

325:デフォルトの名無しさん
22/11/15 11:45:11.75 Ohwd0nE1.net
陽に使わないって事だろ

326:デフォルトの名無しさん
22/11/15 12:05:46.25 91d2LP66.net
言わんとすることは分かるけど人工衛星と文字列処理はあんまり関係なさそう

327:デフォルトの名無しさん
22/11/15 12:16:51.72 REyE3AUr.net
>>316
これからメモリーセーフな言語が沢山出てきそうだな

328:デフォルトの名無しさん
22/11/15 12:57:18.27 37NRafRf.net
メモリセーフかつGC無しの言語ってRust以外に増える気配ないよな
需要あるのに

329:デフォルトの名無しさん
22/11/15 13:11:29.50 bU8+MPV6.net
C++ は安全な言語に混ぜてもらえなかったんだな。
C++はCに寄せられてしまったのかと。

330:デフォルトの名無しさん
22/11/15 13:50:50.90 eF4hIM3d.net
「生ポインタを使わずスマートポインタを使う」
「オブジェクトのコピーはすべてムーブを使う」
を徹底すればそこまで危険ではないんだけどね

331:デフォルトの名無しさん
22/11/15 13:53:08.34 Ohwd0nE1.net
>>323
まあやろうと思えばCと同じことができちゃうからね

332:デフォルトの名無しさん
22/11/15 14:25:30.22 5Bng48RE.net
>>324
知っててもクソみたいな誤りをするのが人だからな。

333:デフォルトの名無しさん
22/11/15 15:49:10.51 91d2LP66.net
Google Chromeのバグの7割がメモリ安全関連というし、
C++で安全性を保ちつつ大規模複雑なアプリケーションを作るのは難しいのでは

334:デフォルトの名無しさん
22/11/15 16:00:29.49 AMPFJlS8.net
そりゃ「〇〇するよう気をつければ良い」が通るんならそもそもバグらないよう気をつけられるはずだしな
人間が気をつけるのと機械的にチェックできることの間には大きな差がある

335:デフォルトの名無しさん
22/11/15 21:18:52.91 oaKUlL5c.net
>「オブジェクトのコピーはすべてムーブを使う」
微妙に意味が分からん

336:デフォルトの名無しさん
22/11/16 03:16:38.83 +3Ecu7Qb.net
>>329
クラスにムーブコンストラクタとムーブ代入演算子を必ず実装して
それが呼び出されように書くということね
ゼロから書く場合は可能
つまりRustっぽく書く
しかし外部ライブラリを使う場合は破綻するので無理なのだが

337:デフォルトの名無しさん
22/11/16 07:33:54.12 NR4h2Di6.net
F#をトライしていたのですが、VSは重いし、VScodeは動かすことができず
Sublimeは何とか動くが、ライブラリをうまくアクセスできず図を出力できず
コマンドラインでの実行もバージョンが古いせいかこれもライブラリにアクセスできず
で、似ているというRUSTをテストしてみました
インストールも簡単、クレートの設定も簡単
コンソールでコンパイル、実行も簡単
webにあるサンプルをテスト、5つほどwarningがでていましたが図を出力できました
F#では実行環境を作るのに四苦八苦しましたが、RUSTはあっというま
感激してここにアップしました
今から勉強します

338:デフォルトの名無しさん
22/11/16 07:35:45.01 16ZvLDN4.net
「コピーは使わないでムーブする」なら意味が通じたが

339:デフォルトの名無しさん
22/11/16 12:12:43.09 I1e3AS0A.net
>>332
そのつもりで書いてた。
推敲不足だったな。回線ケーブルで首釣るかもしれん。

340:デフォルトの名無しさん
22/11/16 18:02:22.96 +n4YDZit.net
一部のアスペ以外はそれぐらいの推論はできるからあまり気にしなくていいよ

341:デフォルトの名無しさん
22/11/16 18:02:43.41 QMFF+6Ax.net
そういうのは吊るを使う

342:デフォルトの名無しさん
22/11/16 18:29:22.77 XyYlAbZW.net
>>333
お前は誰だよw
俺を語ってんじゃねー

343:デフォルトの名無しさん
22/11/16 20:20:41.18 Lkj73ShV.net
.netでrustが使えれば無敵なのに

344:デフォルトの名無しさん
22/11/16 21:13:44.67 y4GxYc69.net
GCのランタイム環境でRUSTは意味ないんじゃ?

345:デフォルトの名無しさん
22/11/16 21:37:10.96 eOApcCVI.net
ML 系言語が Rust を高水準にした感じじゃない?
(というか ML の研究からリージョン推論が生まれて Rust に繋がっていったのだが……。)
.NET 用だと F# があるから使ってみても面白いかもね。

346:デフォルトの名無しさん
22/11/16 21:59:45.42 /cIgFYP8.net
.NETのライブラリが使いたいとかでは

347:デフォルトの名無しさん
22/11/17 00:08:08.45 Wvvh1amI.net
rust難しすぎません?
僕はまだまだ、たぶん無理だけど、そこそこできるようになったとしても、全体の底上げがなければ普及が難しいのではという自己弁護

348:デフォルトの名無しさん
22/11/17 00:34:44.66 /MItGujg.net
既存のC/C++のコードをRustに書き直すのは
頑張らなくても良いですと言われていても
世界に一人ぐらい頑張る人がいて
再実装しましたみたいなのが時々出てくるな

349:デフォルトの名無しさん
22/11/17 00:48:28.80 SzkkMxOu.net
C++ 何となく使っているけど、Rust って難しいの?
C++ より難しいなら、先に勉強しようかな

350:デフォルトの名無しさん
22/11/17 01:00:11.07 EPum3E1i.net
>>343 とりあえず動かすのはRustのが難しい
正しく動かすのはC++のが難しい

351:デフォルトの名無しさん
22/11/17 01:28:33.22 MDHZgFO+.net
C++ は未定義を踏むのがさすがに簡単すぎるのがいけない。

352:デフォルトの名無しさん
22/11/17 01:54:53.99 6uPAxih4.net
>>330
これを徹底すればC++も問題ないよ

353:デフォルトの名無しさん
22/11/17 03:15:48.27 Oh632irx.net
>>344
Rustは安全性と処理効率を保ったままさらに高みに登ろうとすると、C++では
可能だったことが不可能なことがある。

354:デフォルトの名無しさん
22/11/17 05:38:42.23 MvDxl/Xz.net
>>346
徹底するのが難しい、って話だろ

355:デフォルトの名無しさん
22/11/17 05:39:00.42 7vp/wPcJ.net
>>346
「〇〇を徹底します」みたいな精神論が再発防止にならないのは業界の常識

356:デフォルトの名無しさん
22/11/17 05:39:30.88 7vp/wPcJ.net
>>347
具体的にはどういうケース?

357:デフォルトの名無しさん
22/11/17 07:38:31.41 HsWuKvxv.net
>>350
大規模なマルチスレッドとかじゃない?
それこそ「共有メモリは排他制御を徹底すべし」ってだけの話だけど
数百万行のコードベース全体に対して常時気をつけ続けるというのは人間には無理だろう

358:デフォルトの名無しさん
22/11/17 07:44:38.30 EPum3E1i.net
>>351 マルチスレッドこそRustの得意分野だと思うんだけど

359:デフォルトの名無しさん
22/11/17 07:48:15.39 AvIWLuzY.net
rustは所有権とかライフタイムとかなければ簡単で使いやすそうって印象

360:デフォルトの名無しさん
22/11/17 07:53:43.04 HKu8SavS.net
所有権やライフタイムがいらないならrustである必要ないのでは

361:デフォルトの名無しさん
22/11/17 08:37:34.35 HsWuKvxv.net
>>352
あ、逆の話か
C++だと不可能なことがRustだと可能になるって読んでた
357のは思いつかんね

362:デフォルトの名無しさん
22/11/17 08:42:54.13 t8CddWfY.net
複雑なマルチスレッドのアプリで俺にしか直せないバグを故意に仕込むことならC++でしかできないかな

363:デフォルトの名無しさん
22/11/17 09:56:45.90 AvIWLuzY.net
>>354
プログラマが全知全能でメモリ関係のバグを踏まないって仮定したら所有権やライフタイムがなくてもrustはc++以上の優れた型システムを持ってる

364:デフォルトの名無しさん
22/11/17 10:21:30.69 oUYdn6MU.net
>>357
Haskellの方が優れてるよ

365:デフォルトの名無しさん
22/11/18 17:50:50.73 nTmfkfcZ.net
米GitHubは11月18日までに、2022年にGitHub上で多く使用されたプログラミング言語ランキングを発表した。
その結果、1位は「JavaScript」だった。以降、2位「Python」、3位「Java」、4位「Typescript」、5位「C#」、
6位「C++」、7位「PHP」、8位「Shell」、9位「C」、10位「Ruby」と続いた。
Rubyに負けたらいけないだろw

366:デフォルトの名無しさん
22/11/18 17:57:22.15 G2UZSnwT.net
企業の人ってGitHub使えるのかな?
企業が使い始めたら増えると思うけど。

367:デフォルトの名無しさん
22/11/18 18:25:40.22 nTmfkfcZ.net
真の意味でホビーユーザーに支持されなきゃだめだよ

368:デフォルトの名無しさん
22/11/18 18:31:52.75 UFs4jVzI.net
ゆきひろにより開発されたオブジェクト指向スクリプト言語か

369:デフォルトの名無しさん
22/11/18 18:55:51.18 fYiWUan7.net
このグラフ、Typescriptの躍進とRubyの凋落が対照的で興味深かった。

370:デフォルトの名無しさん
22/11/18 19:00:57.54 WkS6x7hj.net
これか
URLリンク(i.imgur.com)

371:デフォルトの名無しさん
22/11/18 21:08:51.27 8iIh2nXZ.net
C/C++の減少分がRustじゃね

372:デフォルトの名無しさん
22/11/18 21:48:16.28 G2UZSnwT.net
その説が正しい使い方気がした

373:デフォルトの名無しさん
22/11/19 00:42:59.64 h9f1WTcb.net
>>350
効率よくリンクリストやグラフ構造を使うこと。
この(前?)スレで散々議論されていた。

374:デフォルトの名無しさん
22/11/19 00:49:11.67 UL/detO7.net
いい加減スレ違いはやめろって

375:デフォルトの名無しさん
22/11/19 04:53:18.01 c1VeRjNF.net
>>367
全然具体的でなくて草
そりゃ散々議論(のつもりw)になるわ
コードで示すとか出来ないの?

376:デフォルトの名無しさん
22/11/19 09:49:20.36 RDqVxLmi.net
tscがRustだと書き直すのが難しいとか聞いたが

377:デフォルトの名無しさん
22/11/19 10:48:30.65 AeJpea+k.net
>>370
tscをRustに一部移植
元のコードがGC前提だから全体の移植は大変なのでGoに変更
GoはGoで無駄な作業が多くて大変。やっぱりRustのほうが良かったのでRustに戻す
というのが今の状況
来年あたりまたGoに戻ってる可能性はあるが

378:デフォルトの名無しさん
22/11/19 14:18:44.14 UL/detO7.net
>>371
移植とか考えずに仕様だけ洗い出してからRustで実装するのがベストでしょうね
仕様解析チーム(tscを読み込んでドキュメント化する)
とRust実装チーム(Rustのエキスパートたち)
この2チームがいれば十分だし

379:デフォルトの名無しさん
22/11/19 20:51:33.06 W8eLHJQE.net
Rustで実装が難しいようなアルゴリズムは不安全で時代遅れだ説

380:デフォルトの名無しさん
22/11/19 20:55:58.15 LAn7MDSu.net
解析してる間にどんどんtscの仕様は変わっていくよ

381:デフォルトの名無しさん
22/11/19 21:07:54.54 2PIO0unP.net
Rustってお互いに参照し合うようなグラフ構造を表現しにくいイメージある

382:デフォルトの名無しさん
22/11/19 22:17:39.01 ibRUDL6T.net
し難いのか不可能なのかどっちよ

383:デフォルトの名無しさん
22/11/19 22:23:36.77 yb7KRrg5.net
rustcでグラフ構造扱ってるよ
ポインタではなくインデックスでアクセする実装

384:デフォルトの名無しさん
22/11/19 22:41:12.16 yWSzX/NN.net
>>377
なるほどなあ

385:デフォルトの名無しさん
22/11/19 23:28:51.73 PCVv4O5z.net
>>377
前スレ読んでもわかるが、それでやれば出来るのは分かってるんだけど、
効率が落ちるから「ゼロコスト安全性」ではない。

386:デフォルトの名無しさん
22/11/19 23:29:54.28 PCVv4O5z.net
>>373
リンク構造を持つデータ構造は今も発展途上中で今後も開発されていくが、
Rustでは取り扱いにくく、むしろRustこそ時代遅れ。

387:デフォルトの名無しさん
22/11/19 23:31:24.06 PCVv4O5z.net
ポインタが理解できない人は、ポインタが中心に居るところのリンク構造を全て
無視するから、Rustの欠点が理解できないだけ。

388:デフォルトの名無しさん
22/11/19 23:32:17.52 Bzioz9F5.net
>>376
しにくいだけ
>>1のHow to not learn RustとかオライリーのProgramming Rustでも指摘されてたはず

389:デフォルトの名無しさん
22/11/19 23:44:21.19 PCVv4O5z.net
>>376
不可能ではないが、C言語のように参照やポインタでダイレクトに取り扱うのが
不可能なので、インデックスを介してアクセスした、非常に複雑な仕組みで
アクセスしたりする必要があり、効率が落ちる。
マシン語レベルで見ると、アクセスすすために必要なコードが増えるから。

390:デフォルトの名無しさん
22/11/19 23:44:57.71 PCVv4O5z.net
誤:インデックスを介してアクセスした、非常に複雑な仕組みで
正:インデックスを介してアクセスしたり、あるいは、非常に複雑な仕組みで

391:デフォルトの名無しさん
22/11/20 00:54:20.94 uh6X/Buy.net
窮屈だからとか言って車に乗るときにシートベルトを付けないタイプの人かな

392:デフォルトの名無しさん
22/11/20 01:12:16.21 RgPem6BD.net
見かけ上はインデックスアクセスでも最適化がかかると途中のアドレス計算はほとんど消滅してポインタでやるのとそんなに差はなくなるよ。
ポインタを露骨に使うのはコンパイラ技術の未熟さをプログラマに補わせてただけ。
十分に高い能力のコンパイラにとってはプログラマが細々とした効率のための指示をするのはむしろ最適化の邪魔になる。
全体の構成やアルゴリズムの話ならともかく、細々とした部分はコンパイラのほうが人間よりよっぽど賢いんやぞ。

393:デフォルトの名無しさん
22/11/20 01:28:00.24 8zb5D3SN.net
ahoの「アルゴリズムの設計と解析」という古い本で木構造をインデックスアクセスで実装していたけど
rustにふさわしい実装だったんだな
この本はポインタがない言語を想定していたのだろうけど

394:デフォルトの名無しさん
22/11/20 01:29:41.16 mdre8ZhB.net
ポインタで書いた方が速いじゃんて事は現にあったし
昔だと、それでも遅いからってアセンブリ言語で関数書いて呼んだりしたが
今なら、そこまでやらなくてもいいだろう
これは、コンパイラの進化もあるだろうが、CPUの進化の恩恵が大きい

395:デフォルトの名無しさん
22/11/20 01:32:00.55 8zb5D3SN.net
脱ポインタの流れは変わらないと思うけどね
安全性とは程遠いからこれを無くさない限り絶対にメモリ安全性は守られない

396:デフォルトの名無しさん
22/11/20 09:27:21.62 feChXjeV.net
unsafeつかえばいいじゃん

397:デフォルトの名無しさん
22/11/20 13:59:12.71 9/YCbfcZ.net
>>386
インデックスを使おうとすると、1つのオブジェクトを作成する際にヒープから確保できず、
同じ集約(コンテナ)に属する全オブジェクトが入っている配列をreallocするような
動作が必要となり、スプリアス的に「停止時間」が入る。
また、その際キャッシュが大規模クリアされてしまう。

398:デフォルトの名無しさん
22/11/20 14:00:19.95 9/YCbfcZ.net
>>390
前スレ(?)で、それでは済まないことが指摘済み。

399:デフォルトの名無しさん
22/11/20 14:05:25.97 9/YCbfcZ.net
>>389
自分が理解できないことは「ダメ」なこととしたり、排除しようとしてしまう。
典型例としては:
・数学が苦手な人 --> 数学不要論に走り、学校で教えることすら禁止させようとする。
・オブジェクト指向のメリットが理解できない人 -->オブジェクト不要論に走る。
・ポインタが苦手な人 --> ポインタを排除しようとする。
Rustはポインタを使うデータ構造を上手く使えなくなるようになっているので、
ポインタが理解できない人は、他の人も使えなくなって安堵の境地に浸れる。
オブジェクト指向で最も大事なclassの概念も使えなくなっているので、
オブジェクト指向が使えこなせなかった人は、他の人も使えなくなって、
競走上の劣等性を感じなくてすむ様になって得した気分になる。
しかし、現実は、そう甘くは無い。

400:デフォルトの名無しさん
22/11/20 14:06:00.71 RgPem6BD.net
>>391
> 必要となり
ならない。

401:デフォルトの名無しさん
22/11/20 14:09:39.17 9/YCbfcZ.net
>>394
インデックスは「連番」なので、その集約に属する全てのノードが、
1つの配列に入ってなければならない。
だから、ノードを追加した時に配列の容量が足りなくなると、
全ノードを入れるための配列の再確保が必要となる。
(全ノードが十分入る容量の配列を一気に確保して、move 動作が必要となる。
この際にキャッシュがほぼ全クリア状態になる。)

402:デフォルトの名無しさん
22/11/20 14:14:51.22 9/YCbfcZ.net
>>391
[追加]
さらに、それに加えて、インデックスからオブジェクトにアクセスする際には、
オブジェクトのアドレス計算が必要となる。
それに、次のような掛け算が必要となる:
size = sizeof(OBJECT);
address = base + index * size; // 掛け算。
掛け算は計算科学上遅い処理であり、避けるべき処理である事が知られている。

403:デフォルトの名無しさん
22/11/20 14:16:00.87 YFSLlDHr.net
Rustで複雑なことをさせなければいい

404:デフォルトの名無しさん
22/11/20 14:19:02.05 RgPem6BD.net
>>396
> 遅い処理
遅くない。

405:デフォルトの名無しさん
22/11/20 14:19:28.58 9/YCbfcZ.net
>>396
[補足]
ただし、index * size の値を、「offset 値」として予め計算しておいて、
index値ではなく、offset値をindex値の代わりにすると、この掛け算は
除去できる。
このoffset値は、「相対アドレス」や「相対ポインタ」に相当する。

406:デフォルトの名無しさん
22/11/20 14:20:12.92 9/YCbfcZ.net
>>398
ポインタよりは遅い。
32BIT値の掛け算は、16クロックほど掛かる。

407:デフォルトの名無しさん
22/11/20 14:20:23.64 8zb5D3SN.net
>>395
Vec使えばそんな不効率なことはせんよ

408:デフォルトの名無しさん
22/11/20 14:23:27.03 RgPem6BD.net
>>400
かからない。
原理的には掛け算が高コストなのはわかるが現代の CPU は
その差を埋めるために高度なアドレシングモードを用意した。

409:デフォルトの名無しさん
22/11/20 14:26:55.83 9/YCbfcZ.net
>>401
不可能。

410:デフォルトの名無しさん
22/11/20 14:27:54.72 9/YCbfcZ.net
>>402
>その差を埋めるために高度なアドレシングモードを用意した。
全く関係無い。
imul命令のlatencyはどんどん速くなって、いて、いまや 3 クロックほどに
なっているらしいが、アドレッシングモードは関係無い。

411:デフォルトの名無しさん
22/11/20 14:31:49.56 RgPem6BD.net
>>404
imul は使われない。
関係ないものを持ち出しているのはそっち。

412:デフォルトの名無しさん
22/11/20 14:34:23.52 8zb5D3SN.net
この人大丈夫か?
なんか支離滅裂になってきてるが

413:デフォルトの名無しさん
22/11/20 14:43:00.42 AxU0uBeT.net
速度求めるならsizeは2のべき乗にするだろうしそれならバレルシフタで相当昔から1クロックで済むだろ
それほど大きくないサイズならアドレッシングモードでサポートしてるプロセッサーもあるし
ID:9/YCbfcZ はもう少しちゃんと勉強した方がいいと思うよ

414:デフォルトの名無しさん
22/11/20 14:48:48.34 YFSLlDHr.net
Rustで作ったdenoはなぜか遅いんだよな
URLリンク(dev.to)

415:デフォルトの名無しさん
22/11/20 14:49:57.69 9/YCbfcZ.net
>>407
メモリの無駄になるので、一般にはObjectのサイズは2のべき乗には出来ない。

416:デフォルトの名無しさん
22/11/20 14:53:40.99 RgPem6BD.net
>>408
元が根本的にダメだったら単に作り直すだけでも速くなったりするが、
大きなプロジェクトの成果物の性能が良いのは細々としたチューニングを続けてきたという蓄積の賜物。
すぐには越えられないのはごく普通のこと。

417:デフォルトの名無しさん
22/11/20 15:06:31.98 9/YCbfcZ.net
>>405
配列
T a[N];
に対して、
a[index]
のアドレスを計算する時、
address = ((BYTE *)&a) + sizeof(T) * index;
の計算が行なわれ、マシン語レベルでは :
mov rax,(Tのサイズ)
imul rax,(index)
add rax,(aのアドレス)
と計算される。
Tのサイズが、1,2,4,8 の場合に限っては、
lea rax,[(aのアドレス) + (Tのサイズ) * index]
と書けるが、一般の場合には無理。

418:デフォルトの名無しさん
22/11/20 15:15:31.54 feChXjeV.net
>>408
bunが速いのは、denoやnodejsではJSで書かれている部分がbunではzigで書かれていることや
JSエンジンのJITの段数の違いによるもので
rust関係ないという理解なんだけど

419:デフォルトの名無しさん
22/11/20 15:17:09.91 9/YCbfcZ.net
>>412
Bunはおいておいて、node(C++製JSエンジン?)とdeno(Rust製JSエンジン?)
では、denoの方がnodeより遅いと読み取れる。

420:デフォルトの名無しさん
22/11/20 15:17:10.42 feChXjeV.net
>>392
どのレス?もっかい書いてよ

421:デフォルトの名無しさん
22/11/20 15:17:44.33 9/YCbfcZ.net
>>414
レスではなくスレ。
何度も書かない。

422:デフォルトの名無しさん
22/11/20 15:24:09.33 feChXjeV.net
>>413
Rust製JSエンジンとか書いてる時点でよくわかってないのが読み取れる

423:デフォルトの名無しさん
22/11/20 15:26:15.43 feChXjeV.net
>>415
スレのどのレスか教えてよ

424:デフォルトの名無しさん
22/11/20 15:26:41.67 YFSLlDHr.net
>>410
そっか、チューニング大事なんだな

425:デフォルトの名無しさん
22/11/20 15:30:49.96 9/YCbfcZ.net
>>417
検索してくれ。

426:デフォルトの名無しさん
22/11/20 15:34:04.94 9/YCbfcZ.net
>>416
nodeやdenoは余り知らないから。

427:デフォルトの名無しさん
22/11/20 15:39:36.41 feChXjeV.net
>>419
これのこと?
スレリンク(tech板:151番)

428:デフォルトの名無しさん
22/11/20 15:43:51.99 9/YCbfcZ.net
>>421
まあ、そうだ。ただし、それは議論の一部。
ただ、反論する前に、頭がいいことが資格だぞ。
この板は頭の良さに対して全くフィルターが掛かってないから議論が混沌とする。
文字だけで理解するのではなく、イマジネーションと脳内のワーキングメモリー
を働かせて図形的に考えないとダメだぞ。

429:デフォルトの名無しさん
22/11/20 15:45:48.15 feChXjeV.net
>>421のレスはすべてをunsafeにすれば可能と暗に言ってるから、
>>392の言うunsafeを使っても済まない場合には該当しないか

430:デフォルトの名無しさん
22/11/20 15:47:47.99 feChXjeV.net
>>422
そうだね、文章だけではあなたの脳内の意図をちゃんと読み取れないから想像力が重要だね

431:デフォルトの名無しさん
22/11/20 15:56:42.10 9/YCbfcZ.net
>>423
しかし、「すべてをunsafe」にするなら、Rustの意味が全く無いから、
「それでは済まない」。

432:デフォルトの名無しさん
22/11/20 15:57:37.84 9/YCbfcZ.net
>>424
ちゃんと書くには長く書く必要があるが、理解できない人が多いから書けない。
そもそも、5chでは文章が途切れて書ききれない。

433:デフォルトの名無しさん
22/11/20 16:13:12.85 RgPem6BD.net
>>418
チューニングの蓄積は大事だが、チューニングは実行環境 (など) の特性に合わせるということだから
前提となる特性が変われば今までの蓄積が今度は足を引っ張ることもある。
だからたまにはリセット (別プロジェクトとして始動) をするのも必要なことなんだよ。
少しづつ違う方針のものが併存しているのが健全な状態で、
真似したり反発したりしながら新陳代謝をしていくもんだ。

434:デフォルトの名無しさん
22/11/20 19:14:36.78 0EAflA1G.net
グラフとかリンクトリストとかにはarena使えないの?
bumpaloとかtyped-arenaとかid_arenaとかgenerational-arenaとか色々出てるけど

435:デフォルトの名無しさん
22/11/20 19:36:54.78 feChXjeV.net
>>426
じゃあなんでこのスレに書いてるの?

436:デフォルトの名無しさん
22/11/20 19:37:03.39 feChXjeV.net
>>428
普通に使えるよ

437:デフォルトの名無しさん
22/11/20 19:39:01.04 feChXjeV.net
>>425
そもそもすべてをunsafeにする必要があるという前提が偽だよね
特定のデータ構造の操作がプラグラムのすべてなの?

438:デフォルトの名無しさん
22/11/20 20:33:05.68 Y0E2xhem.net
単純なLinkedListのdropでstackoverflow
URLリンク(matklad.github.io)


439:alls-in-a-forest-does-it-overflow-the-stack.html dropが再帰的に呼ばれそうなところでwarning出してくれたら嬉しいんだけどな あ



440:デフォルトの名無しさん
22/11/21 16:56:19.41 qlbniNQc.net
試しにいろいろやってみたけど
引数を含めて参照渡しなのか値渡しなのか完全に区別されてるのがいいね

441:デフォルトの名無しさん
22/11/21 17:12:12.72 VM/mtrCu.net
unsafeは甘え

442:デフォルトの名無しさん
22/11/21 17:26:26.15 EfM99hS7.net
超エキスパートの皆さんが unsafe で
システムプログラミングしてくださるんだろうが

443:デフォルトの名無しさん
22/11/21 21:30:40.94 rgJVysd6.net
URLリンク(qiita.com)


444:01f79d42d63e886 本筋と関係ない部分での強めの態度での批判(というかいちゃもん)、いかにも日本的な陰湿なマウント文化が凝縮されていて笑えない



445:デフォルトの名無しさん
22/11/21 21:46:20.48 bYPD5c9s.net
テスト

446:デフォルトの名無しさん
22/11/21 21:47:48.09 bYPD5c9s.net
お、書けたか
今日から勉強始めて Tour of Rust やってるんだけどなんか分かりづらいような...?
The Book からやったほうがいいのかな

447:デフォルトの名無しさん
22/11/21 21:54:54.43 sdhkglZS.net
Haskellからやった方がいいかも

448:デフォルトの名無しさん
22/11/21 22:00:50.98 bYPD5c9s.net
Haskell... モナド... うっ、頭が

449:デフォルトの名無しさん
22/11/21 23:01:50.99 gRBDBkQB.net
>>436
本当にこれ
ワイもその記事のコメント欄読んでいたけど
@Akira-T-Hatakeyamaが的外れの癖に高圧的に書いていて見ていて気分が悪くなったわ
サンプルコードもそんなおかしいものではないし事実Cではするメモリリークも防げている
まったく害のない記事を上げたがために揚げ足取りを取られていて不憫や

450:デフォルトの名無しさん
22/11/21 23:15:45.42 SGMQ7SqF.net
> Cをきちんと理解していない人が RUST が安全ですと言っても、説得力皆無ですね。
ここに完全同意できてしまうから
この話はもうそこで終わってしまう
批判された側は改善するか記事消すかして
態度で反省を示してほしいわ
ゴミ記事量産すなって話

451:デフォルトの名無しさん
22/11/21 23:45:49.72 /NggQuuk.net
callocの代わりにalloca使えとか揚げ足取りがすぎる
普通のOSならメモリリーク起きないというのも意味不明

452:デフォルトの名無しさん
22/11/21 23:50:01.01 /NggQuuk.net
とはいえ元記事も微妙でメモリ安全の話をするならuse-after-free等の話をして欲しかった

453:デフォルトの名無しさん
22/11/22 06:46:59.40 5norvibI.net
ありがちな不具合を示すサンプルにこうすりゃいいとか言われてもねぇ...
そもそもstr_new()でalloca()使ったらstr_new()から抜けた時に解放されちゃうからもっと酷いことになるのわかってないだろw

454:デフォルトの名無しさん
22/11/22 09:08:14.28 XE2I6odc.net
>>441
コメントしてるやつほどではないにしても
記事もそれなりに害のある記事やろ

455:デフォルトの名無しさん
22/11/22 10:53:06.52 iGHsIGH/.net
コンパイル時評価の欠点
URLリンク(c3.handmade.network)
Rustが攻撃されてる!許せねぇ!

456:デフォルトの名無しさん
22/11/22 11:53:04.77 7hOwVVcX.net
const fnと思ったらmacroの話か
書かれてることはもっともだと思うしrust-analyzerの作者も似たようなことを言っていたような

457:デフォルトの名無しさん
22/11/22 12:05:47.11 5norvibI.net
コンパイル時評価の欠点と言うかマクロは混乱しやすいって話だろ
まあ良薬も使いすぎると毒になるしほどほどに使うのは難しいし、処理系のサポートが難しくてエラーメッセージがイミフになるとかあるから半分ぐらいは同意する

458:デフォルトの名無しさん
22/11/22 13:20:21.25 8XCnEjtt.net
>>447
この文脈でdownsidesを欠点と訳すのは微妙
「コンパイル時評価のマイナス面」みたいにプラス面の存在が当然の前提となる日本語にしないと与える意味が変わる

459:デフォルトの名無しさん
22/11/22 16:03:09.05 gDAAjuMT.net
0..10 で生成されるオブジェクトってイテレータですか?

460:デフォルトの名無しさん
22/11/22 16:12:53.87 7RPBFD0W.net
>>451
はい
0..10はRange<i32>
impl<A> Iterator for Range<A> where A: Step
impl Step for i32

461:デフォルトの名無しさん
22/11/22 17:02:18.19 gDAAjuMT.net
>>452
ありがとうございました

462:デフォルトの名無しさん
22/11/23 08:39:00.67 wkDaFc7P.net
>>453
どういたしまして

463:デフォルトの名無しさん
22/11/23 22:54:55.70 /vguy0QL.net
The Bookの日本語版がRust 1.58で英語版がRust 1.62っぽいんですけど、この差が問題になることありますか?

464:デフォルトの名無しさん
22/11/23 23:36:05.63 Z55i7UcV.net
>>455 ほぼない
強いて言えば新しい書き方が載ってないぐらい
古い書き方でも問題なく動く

465:デフォルトの名無しさん
22/11/24 01:19:12.75 4Rr7WzTC.net
>>455
バージョンの差は問題にならないが日本語版と原文の差は大きい
英語が苦手で原文だと読むのに3倍時間かかるような人でも原文読む方がRustを理解するには圧倒的な近道

466:デフォルトの名無しさん
22/11/24 02:03:20.81 7DmT43os.net
英語が駄目って人は百倍かけても読めない。

467:デフォルトの名無しさん
22/11/24 02:06:19.42 L4U2ehwP.net
The Book自体がそんな一生懸命読むべきもんじゃない
別のそのへんの本屋で売ってるRust本でもいい

468:デフォルトの名無しさん
22/11/24 02:06:45.58 01gKjbzi.net
機械翻訳も良くなったとは言え普通に間違えるし英語読めない人なら日本語版の方がいいでしょ

469:デフォルトの名無しさん
22/11/24 03:11:31.83 7Kcsa8Zb.net
あの日本語版はないわな
Rust習得の弊害でしかない

470:465
22/11/24 09:13:21.63 /ycVFx5q.net
様々な意見、ありがとうございます!
両方を見比べて大きな差がありそうなところは英語版を翻訳して読んでみようと思います

471:デフォルトの名無しさん
22/11/24 09:14:00.12 ZOGzuV/a.net
日本語版の一番の欠点は、基礎や概念を説明している項目が所々抜けてることだろうな
なんもわからないまま結論を覚えるだけになってしまう

472:デフォルトの名無しさん
22/11/24 10:04:24.95 wZ9/qcyF.net
Rustって難しくね?
できればライフタイムあたり意識しないでプログラミングしたいんだけど

473:デフォルトの名無しさん
22/11/24 11:37:21.52 rSYd8nrB.net
そういう難しいところに直に向かい合うための言語なので...

474:デフォルトの名無しさん
22/11/24 12:37:17.60 5MNsXfkj.net
Typeshareが1.0になったけどどない?
URLリンク(github.com)

475:デフォルトの名無しさん
22/11/24 13:01:03.30 lMxgdHP2.net
日本語版ダメだと思うなら添削してくれればいいのに
英語出来る俺スゲーとかマウント取りたいだけの人なんかな

476:デフォルトの名無しさん
22/11/24 13:14:00.92 rSYd8nrB.net
仮に貢献してても5chじゃなくて別のコミュニティで表明するんじゃね

477:デフォルトの名無しさん
22/11/24 13:18:22.75 B8EZvrTz.net
横からだけど義務教育で人並みの勉強をして英語がまったくできないっていうのは
本人の資質に問題があると思っている
(もちろん面と向かってこんなことは言わないけど)

478:デフォルトの名無しさん
22/11/24 13:26:27.68 rSYd8nrB.net
やっぱり>>467の意見が正しいわ

479:デフォルトの名無しさん
22/11/24 13:29:37.83 B8EZvrTz.net
マウント取りたいではなく、それくらい基本的なことなので
日本語版が無いと無理、英語版は無理、的なこと言うのは
それだけで足元見られる可能性がある、という話です

480:デフォルトの名無しさん
22/11/24 14:12:12.17 Td5Dmo+3.net
余計なこと書くからマウント取りに来てると言われる
やりたくない理由とかいちいち書かなくてもいい

481:デフォルトの名無しさん
22/11/24 14:16:41.96 ZOGzuV/a.net
まあ本当に必要なんだったら、翻訳してくれる人にお金を出したらいいんじゃないか?

482:デフォルトの名無しさん
22/11/24 14:22:39.63 B8EZvrTz.net
足元見られるとも知らずにRustに関する発言、情報発信はしないで欲しい。
背伸びしなくて良いよ、一発逆転なんて無いよと思う。
日本語版はそもそも無い方が良い。訳注満載の付加価値がない限り。(>>473には同意)

483:デフォルトの名無しさん
22/11/24 14:31:48.71 Td5Dmo+3.net
日本語版ダメだよ

だったら直してよ

金出して訳してもらえ
こんな感じ?「俺に金出せ!」でもないらしい。

484:デフォルトの名無しさん
22/11/24 14:36:47.65 L4U2ehwP.net
金出して本買え

485:デフォルトの名無しさん
22/11/24 14:39:33.49 B8EZvrTz.net
>>475,476
エンコーディング周り、OS毎の違いなど付加価値要素はたくさん有るので
誰かが有償orタダでやってくれるのには文句はない。
ところで、大人になって英語を敬遠している人って、学校時代、
授業で良い発音で教科書を読む人をクスクス笑ってた人でしょ?

486:デフォルトの名無しさん
22/11/24 14:50:48.56 7DmT43os.net
そりゃあ個々人としては英語を読めりゃあそれに越したことはないがなぁ。
だけど自国のコミュニティ、自国語の資料をそろえることが出来ないというのは格好悪い話であるのも確かだよな。

487:デフォルトの名無しさん
22/11/24 14:59:33.05 B8EZvrTz.net
>>478 クスクス笑ってた側の人ですか?
あと、このスレ、執筆家が何人かいる気がするのは何故?

488:デフォルトの名無しさん
22/11/24 15:18:32.24 /JtPgST+.net
>>469みたいな主張の人は能率の高低論を読める読めない論にすり替えている
日本の義務教育の英語レベルは英語の技術資料を日本語と同等にすらすら
読めるとはほど遠いだろう
英語が読めても日本語と比べたら低能率って人は少なくないという点を無視している

489:デフォルトの名無しさん
22/11/24 15:23:14.78 SV+v/fkD.net
ここはRustスレなので、英語の話がしたいなら英語スレへ

490:デフォルトの名無しさん
22/11/24 15:33:59.04 rSYd8nrB.net
一方rustコミュニティはコンパイラのdiagnosticの翻訳者を募集していたのであった
URLリンク(blog.rust-lang.org)
>>474はこういうのもやらない方が良いと思ってる?

491:デフォルトの名無しさん
22/11/24 15:36:53.62 rSYd8nrB.net
bookもどんどん翻訳するなら支援するとのこと
> We'd love help translating the book!
URLリンク(github.com)

492:デフォルトの名無しさん
22/11/24 15:41:27.99 3VG0Xg5C.net
とりあえず日本語で学びたいという人はちゃんとした日本語書籍を買って読むことをすすめる
とにかく最初からあの低品質の日本語訳読むのはオススメしない
ただThe Bookレベルの英語は読めるようにしないとリファレンスも読めないしStackOverflowや公式フォーラムも読めないからすぐ詰むよ

493:デフォルトの名無しさん
22/11/24 15:41:58.17 B8EZvrTz.net
>>480
>英語が駄目って人は百倍かけても読めない。
これを受けて、読める読めない論を展開していたんだけど、読解力の問題?
>>482,483
>まあ本当に必要なんだったら、翻訳してくれる人にお金を出したらいいんじゃないか?
なんにしても、必死に日本語版、自国語の資料を擁護する勢力がいることに新鮮な驚き。
クスクス笑ってた側の人ですか?

494:デフォルトの名無しさん
22/11/24 15:45:21.17 B8EZvrTz.net
>>484 前半、後半、ともに同意です

495:デフォルトの名無しさん
22/11/24 15:55:09.50 rSYd8nrB.net
個々人の生存戦略としてはそりゃ英語読めた方が良いけど
コミュニティとしては裾野を広げるために各種言語のリソースは用意されてた方が良い
bookの翻訳が不十分なのは課題だが、だからといって翻訳の取り組み自体を否定するのは違うんじゃないの?
それとも英語等のハードルを越えた人間のみ触れるものであるべきという思想なのかな

496:デフォルトの名無しさん
22/11/24 15:59:42.08 gyRXVBW5.net
Rustの翻訳コミュニティって以前から揉めてるけど
それがよくわかるスレだね

497:デフォルトの名無しさん
22/11/24 16:03:48.82 B8EZvrTz.net
>>487
いやいや、英語を奉り過ぎだって。
それくらい基本的なことなのに英語を敬遠する勢力がRustコミュニティで発言、情報発信はしないで欲しい。
クスクス笑ってた側の人かどうか、そろそろ表明してくれませんか?

498:デフォルトの名無しさん
22/11/24 16:11:10.23 rSYd8nrB.net
>>489
残念ながらその態度はCoCに反するのでコミュニティで行動していけないのはあなたの方なんだよなぁ
URLリンク(www.rust-lang.org)

499:デフォルトの名無しさん
22/11/24 16:19:22.01 B8EZvrTz.net
>>490
ポリコレを真に受けて衆愚コミュニティにしたいなら、あなた自らが翻訳を率先するのが筋です。

500:デフォルトの名無しさん
22/11/24 16:23:22.95 rSYd8nrB.net
>>491
平気でライセンス違反とかしちゃう人?
少なくとも自分がコミュニティで望まれてない人材とは自覚しておいてね

501:デフォルトの名無しさん
22/11/24 16:32:29.37 B8EZvrTz.net
>>492
多分それは別人です。
自分はRustコミュニティに何の貢献もしてませんが、
あなたは、The Book日本語版(Rust 1.58)に携わった方ですか?
それともライターさんですか?

502:デフォルトの名無しさん
22/11/24 16:38:28.16 WiL1nOOz.net
Rust は崇高なものであるべき
みたいな人がいるんだな…

503:デフォルトの名無しさん
22/11/24 16:39:48.68 t2djUU2z.net
てかそんなやつばっかじゃん。プライド高くてさ。

504:デフォルトの名無しさん
22/11/24 17:03:55.18 B8EZvrTz.net
>>494,495
そんな思い上がりは全くありません。英語一つでここまで必死に拒絶する、単純翻訳を崇め奉る勢力の存在、その資質に興味があるだけです。
こちらは翻訳の際の付加価値について認めているのに、翻訳活動を全否定されたかのような反応、読解力。
最初は冗談半分でしたが、本当にクスクス笑ってた側の人、うぇーい、したいだけの人のイメージが浮かんで来ます。
純粋に、資質に興味があるだけです。
それとも、本当にライターさん(ネットメディア?)か何かなんですかね。

505:デフォルトの名無しさん
22/11/24 17:36:37.60 rSYd8nrB.net
>>496
あなたの言う付加価値はローカライゼーションにまつわる固有事情の記事を追加せよという話だよね
付加価値があって初めて価値があるという発言は翻訳そのものには価値を認めてないんだから翻訳自体を全否定してるんじゃないの
あなたの発言は英語もできないやつは人間のカスだからrustに近づくんじゃないとしか読めないんだけど、解釈間違ってる?

506:デフォルトの名無しさん
22/11/24 17:46:15.18 B8EZvrTz.net
>>497
前半:全否定されたかどうかが気になってしょうがないのでしょうが、こちらはそこに含意は無く、付加価値が満載なら文句は無いです、有償無償問わず。
後半:ずいぶん卑屈な受け止め方ですね。なんでそんな感性が身にしみついちゃったんですか?拡大解釈し過ぎです。

507:デフォルトの名無しさん
22/11/24 17:49:09.85 B8EZvrTz.net
追加:自分は一言多いとよく言われます。誤解されやすい人です。

508:デフォルトの名無しさん
22/11/24 17:52:10.07 CxyqHr52.net
仮に日本語で読解に1時間かかるとする。英語だと読解に1.5時間かかるとする
100人いたらその差は50時間
これを英語は読めれば問題ないなどと正当化していたら競争力が落ちるのは当然であろう

509:デフォルトの名無しさん
22/11/24 18:12:49.43 /hunkqEb.net
俺は人に教える時に重宝してるけど
初めはざっくり理解できればいいし

510:デフォルトの名無しさん
22/11/24 18:13:50.45 B8EZvrTz.net
>>500
その仮定、その足し算に何の意味があるのか、誰の競争力の話か分かりませんが、とにかく頑張ってください。付加価値期待してます。
追加:1.5倍くらいなら英語で頑張り続けたら長くても1~2ヶ月くらいで、≒1倍になるのが適正な資質
その間の努力、時間配分が出来ないならタダの背伸び、無いものネダリ、わがまま、甘え

511:デフォルトの名無しさん
22/11/24 18:15:51.60 B8EZvrTz.net
>>501
わかります。ものになるかわからない人に時間を掛けたくないですよね。

512:デフォルトの名無しさん
22/11/24 18:16:33.16 7DmT43os.net
入門ってのは基本的な概念を知らん状態なわけだもんな。
母語の資料があってもそれなりにしんどいので英語は勘弁してつかぁさい。
基本理念がわかればそこから後はまあまあわかるよ。

513:デフォルトの名無しさん
22/11/24 18:19:43.47 tZHOriba.net
言うてまあこれが一発目の言語ならともかく
普通は(?)CもC++もやってからこれに手を出すやろ?
今更英語とかどうとか言う話になる?
プログラミング言語一般のリテラシーが英語を乗り越えてしまうやろ?

514:デフォルトの名無しさん
22/11/24 18:20:35.82 4/0XLjMc.net
Rust入門レベルを英語で読むって学部1年レベルの線形代数を英語で読むようなものだよ

515:デフォルトの名無しさん
22/11/24 18:46:40.03 VGz25HBF.net
>>502
その理屈が通るなら日本語に限らず母国語の資料なんて不要になる
もちろんそんなことはない時点であなたの主張は破綻している

516:デフォルトの名無しさん
22/11/24 19:08:31.32 B8EZvrTz.net
>>504 100倍の人ですね。
>>505 せめてPython/JavaScriptでも十分(失礼)ですから先にやっておいて欲しいですよね。
>>506 線型代数、高校のベクトル・行列とは何だったのかレベル。
新概念習得と外国語(英語)は相性が良いですよ。すべてが専門用語だとみなせます。むしろ日常会話の単語チョイスに支障が出ますが。

517:デフォルトの名無しさん
22/11/24 19:16:37.71 B8EZvrTz.net
>>507 拡大解釈し過ぎです。何の話をしている文脈なのか、読解力、国語力とは。
1~2ヶ月くらいの努力、時間配分を怠ると、一生ローカライズ産業(非最先端)の食い物にされます。食い物にする側に組する立場ですか?
ライターさん?今後のRust記事注目します。

518:デフォルトの名無しさん
22/11/24 19:18:22.16 RwBqHjG8.net
どうしちゃったの、このスレw
まあ、それほど王道と言えるルートが無くて
多少混沌とした落とし穴のある、いばらの道なのかな

519:デフォルトの名無しさん
22/11/24 19:31:21.34 tZHOriba.net
>>510
常にどうかしちゃってるのがこのスレ
意味不明なマウント合戦や
「所有権の複製」なる謎用語が平気で飛び交うスレ

520:デフォルトの名無しさん
22/11/24 19:34:18.21 gyRXVBW5.net
トレイト境界の翻訳で一生揉めてたから
翻訳の話題はNGにしないか?

521:デフォルトの名無しさん
22/11/24 19:44:14.11 wuF6EKEG.net
いっそのこと日本語での書き込み禁止で

522:デフォルトの名無しさん
22/11/24 19:50:46.51 5MNsXfkj.net
みこちは一兎(ぺこら)しか追ってないのに得られないよね…

523:デフォルトの名無しさん
22/11/24 19:52:52.93 5MNsXfkj.net
誤爆した恥ずかしい(*/□\*)
ちなみにこちらです↓
【バーチャルyoutuber】兎田ぺこら#254【ホロライブ/hololive】ID無し
スレリンク(sugiuraayano板)

524:479
22/11/24 20:23:00.17 B8EZvrTz.net
決して面と向かっては言えない私的な世界観ですが、予想以上の反応がありためになりました。
特に、執筆家・ライター・翻訳家・ネット記事・出版などと推測される、母国語資料勢・ローカライズ産業の存在を意識したことはこれまでなかったので。逆に英語一つで足元見る奴がいることに驚いた人もいるかもしれません。
自分的には、今後ネットのRust記事(日本語)と5chスレの関連性に注目してみます。

525:デフォルトの名無しさん
22/11/24 20:27:49.73 aQORibhF.net
この手の奴って英語なんて読めて当然だ言うくせに国語を英語にすればいいとか言わないよな
結局の所イキりたいだけの自己中なんだろう。社会にとって有害なタイプじゃね

526:デフォルトの名無しさん
22/11/24 20:33:45.50 sBZ5giiA.net
日本語版見て勉強してたけど英語版から欠落した情報があるんだな
よく分からなかったところを見比べてみるわ

527:デフォルトの名無しさん
22/11/24 20:45:47.88 ZPzzCY+f.net
英語読めるに越したことはないし翻訳怪しい所は原文見た方がいいけど日本語版あるのにわざわざ日本人が英語版を読む必要はない
英語の勉強するならそれ専用でやった方がはるかに効率的なので

528:デフォルトの名無しさん
22/11/24 20:46:18.83 tqD1idY4.net
あの日本語訳はこういうのが盛りだくさん
「最後の違いは、定数は定数式にしかセットできないことです。関数呼び出し結果や、実行時に評価される値にはセットできません。」
時間を使って読むに値しない

529:デフォルトの名無しさん
22/11/24 20:55:01.86 V/Uo5ox3.net
英語もコンピュータ言語も全くできない人は無理せず日本語で勉強すればいいと思うけど、JavaScript を読めるレベルなら、英語読まないでコードから読んで英語は補助的に読んでみたりとか、工夫のしようはあるで。

530:デフォルトの名無しさん
22/11/25 00:02:56.61 HP+HUenZ.net
文句言うばっかりで誰もpull req出さないから変な日本語が放置されるという
変だなと思ったら気軽に修正案投げられるような仕組みがあるとよいね

531:デフォルトの名無しさん
22/11/25 00:11:51.41 mKVQfMbx.net
プルリク何百個だせばいいんだよってなる
サンクコストとして捨てちゃったほうが日本のRustコミュニティにとってはプラスなんじゃないかな

532:デフォルトの名無しさん
22/11/25 00:14:11.06 9EBigD0X.net
>>520
確かにいい訳ではないけど
理解できない原因は
専門用語をちゃんと理解していないことに
起因することが多い
この文も「定数」「定数式」「セット」が理解できれば
そんなに難しいことは書いていない

533:デフォルトの名無しさん
22/11/25 00:32:29.91 HP+HUenZ.net
>>523
何百くらいなら一人一回PR送るだけでもほぼ直るんじゃね

534:デフォルトの名無しさん
22/11/25 00:39:08.22 +ImZ41H+.net
>>524
誰かが理解できないって言ってた?

535:デフォルトの名無しさん
22/11/25 00:39:41.10 FYsweZxP.net
>>524
本当に書いてること理解できてるか
もう一度よく読み直そうか

536:デフォルトの名無しさん
22/11/25 07:45:02.58 HZEumDr5.net
>>526
理解できるなら問題なくね?

537:デフォルトの名無しさん
22/11/25 07:48:42.32 6Yi+j4c1.net
安心安全のために少し日本語がスパゲッティ状態になるのは仕方がないんだろ

538:デフォルトの名無しさん
22/11/25 08:02:50.13 v7fq4Pg1.net
プログラム一般論だけど
書籍抜きで進めて、分からない事をぐぐって行くと
最終的には stackoverflow 辺りにたどり着くんじゃない

539:デフォルトの名無しさん
22/11/25 08:11:39.93 m5nB+QH5.net
>>520
これ原文は
The last difference is that constants may be set only to a constant expression, not the result of a function call or any other value that could only be computed at runtime.
だけど、どう訳すのが適切なの?

540:デフォルトの名無しさん
22/11/25 08:12:56.32 ROoDFC7c.net
日本の商業技術書は中身がググるレベルのクソ雑魚なのはあるある
特に流行物はその確率が高く、下手すると同人技術書の方がマシまである

541:デフォルトの名無しさん
22/11/25 08:19:17.40 8BzXPUw/.net
日本での旧Xam○rinコミュニティの構図が思い出されます。
技術本位で勝負している人たちの大多数に見透かされましたからね。
Rust日本語訳勢の一部もそういう構図があるんですな。
英語苦手同士で助け合いましょ

わかる

機械翻訳を手作業で体裁整えました。すごい努力でしょ?

時間を使って読むに値しない

英語得意な人、普通に助けてくれるでしょ?一人一回PR送るだけなんだからね!

は?学生時代、クスクス笑ってた側を助けるわけないじゃん

私をマウントしないでください。英語苦手な人の方が多数派でコミュニティの裾野を広げるため...

は?繋がりピラミッド構図作ってマウントしたがってるのはそっち

542:デフォルトの名無しさん
22/11/25 08:23:37.14 tPlp31O1.net
学生時代にクスクス笑われたのがトラウマになってんのか、かわいそうに

543:デフォルトの名無しさん
22/11/25 09:06:15.37 fjezKZFE.net
旧Xam○rin(現MAUI)の話で言うと、多数の別スレで毎日大暴れのMAUI君、英語苦手なのにガンガン成果?を見せてくるあたりは技術志向が強くてバイタリティーがあるので、問題発言だらけだけど許容範囲かな(Flutter側にもバイタリティーが欲しい)
英語苦手って人もいろんな貢献の仕方があるよね。

544:デフォルトの名無しさん
22/11/25 10:07:23.50 9BOxb4Qm.net
>>534
あ~あ言っちゃいましたね。Rustでガリ勉してる人の事も内心ではクスクス笑ってるんだろ。

545:デフォルトの名無しさん
22/11/25 11:07:23.77 vXLNQ2UM.net
機械翻訳使うなっていうのは志賀の件で合意得られたはずなのになんでやるかなぁ

546:デフォルトの名無しさん
22/11/25 11:15:50.25 cn0AfbS4.net
英語読めないやつはRustそもそも向いてないと思う
日本語の情報が充実している言語にしておいた方がいいよ

547:デフォルトの名無しさん
22/11/25 11:22:23.99 4bp1jaeM.net
被害妄想なんかにまじめに付き合ってられないよ

548:デフォルトの名無しさん
22/11/25 11:22:31.94 2L/AZJad.net
あれ?いつの間にか機械翻訳使ってるなんて証拠でも出たんか?
またいつもの人が妄想膨らませてるだけと思ってたけど

549:デフォルトの名無しさん
22/11/25 11:33:46.83 HP+HUenZ.net
>>531
定数は定数式にしかセットできない

定数には定数式しかセットできない
の方がすんなり読めるんだけどセットの意味合いが他と整合性とれなくなったりする?

550:デフォルトの名無しさん
22/11/25 11:47:02.77 PJRcnhAQ.net
そもそもの内容を理解していないのなら翻訳をする資格はないよね。
そっとしておいてほしい。機械翻訳なんてもってのほか。

551:デフォルトの名無しさん
22/11/25 12:05:22.61 v5uvIKgG.net
あるいは、原文の疑問点になりそうな箇所は須らくコードで実証すべし
機械翻訳がやってくれない人間による付加価値

552:デフォルトの名無しさん
22/11/25 12:17:11.54 9A6C+y48.net
>>538
これでいいと思う。

553:デフォルトの名無しさん
22/11/25 12:21:48.12 OY9VtEiW.net
>>538
現状はそれでいいと思う

554:デフォルトの名無しさん
22/11/25 12:24:24.73 tJ38pL4L.net
>>541
かく乱しないで欲しい。

555:デフォルトの名無しさん
22/11/25 12:32:01.12 pYHT3oH4.net
今構造体の勉強してんだけどユニット構造体ってどう言う時に使うの?
トレイトで使うって見たけどいまいちわからん

556:デフォルトの名無しさん
22/11/25 12:32:35.70 3NnLJm/9.net
マジで荒らすな
ここに来るな
単発Ngするぞ

557:デフォルトの名無しさん
22/11/25 12:32:54.94 hG6NI52Y.net
>>531
deepl下敷きにして修正すりゃいい。
最後の違いは、定数は定数式にのみ設定でき、関数呼び出しの結果や実行時にのみ計算される他の値には設定できないことです。
any otherが残念だけど、まあOKだろ。

558:デフォルトの名無しさん
22/11/25 12:37:02.65 9dhUDnXy.net
>>549
ダメだろ
ところで>>541 はSF時間で仕事している人かな?

559:デフォルトの名無しさん
22/11/25 12:39:37.74 hG6NI52Y.net
>>550
駄目な理由を指摘できない無能がマウントしてくるからRustは駄目なんだよ。

560:デフォルトの名無しさん
22/11/25 12:39:46.16 scn2u8sN.net
>>549
DeepL とか英語全く出来ない人の発想なので、他所では言わん方がいいで。
使うのはいいけど、コッソリ使ってね。

561:デフォルトの名無しさん
22/11/25 12:44:43.95 dNgwgIBZ.net
>>531
そういえば以前、全訳に挑んでいる、とかいう妄想を見たけど関連あったりする?

562:デフォルトの名無しさん
22/11/25 12:48:03.92 hG6NI52Y.net
>>552
内容を見ないで手段に文句をつけるのは無能のやることだよ。

563:デフォルトの名無しさん
22/11/25 12:57:12.51 qsZx06Ly.net
>>551
マジでRustはどうでもよくてピラミッド作りたい奴なのか。
ここにいるお人好しhelperさんを底辺に組み込みたいのか?

564:デフォルトの名無しさん
22/11/25 13:00:28.35 Y7KZiKcU.net
どうせ素人相手にマウント取っているアフィカスだろ
素人に毛が生えた程度なので突っ込まれても反論できない
具体的な議論は出来ないから話題そらしに終始する
最近この手の輩はここだけじゃなくあちこちのスレで見るわ

565:デフォルトの名無しさん
22/11/25 13:02:05.70 HZEumDr5.net
>>541
そもそも
> 定数は定数式にしかセットできない

> 定数には定数式しかセットできない
じゃ意味違うよね
上は「定数式 = 定数」
下は「定数 = 定数式」
英文読む限りは上のような気がするが言語仕様的には下のような気がする
どっちが正しいんだ?

566:デフォルトの名無しさん
22/11/25 13:08:19.55 ZVM62PVL.net
>>556 このスレは何処かでまとめられてるの? 話題そらし: 旧Xam○rin(現MAUI)の話で言うと... 今構造体の勉強してんだけどユニット構造体ってどう言う時に使うの? ところで>>541 はSF時間で仕事している人かな? どっちが正しいんだ?



568:デフォルトの名無しさん
22/11/25 13:21:30.46 D+kphDHJ.net
>アフィカス
まだ気が早いけどワッチョイを使えば多少は防げるもんなの?

569:デフォルトの名無しさん
22/11/25 13:31:54.44 j44SSeWl.net
>>557
be setだから下だろバカ

570:デフォルトの名無しさん
22/11/25 14:44:15.84 wOyL9/CI.net
>>555
???
>>550のどこにhelper要素ある?
マウントばかり取ろうとする役立たずの無能を底辺に組み込みたいというのは肯定するけど、
>>550がお人好しhelperというのは否定するわ。

571:デフォルトの名無しさん
22/11/25 14:52:48.53 NT6Ragjt.net
>>560
set A B (SVOO)…(ア)

A := B
set B to A (SVOC)…(イ)

A := B
(ア)は以下2通りの受動態に書き換えられる
A is set B …(1)
B is set to A …(2) (O2を主語にする場合O1の前にtoを補う必要がある)
(イ)は以下1通りの受動態に書き換えられる
B is set to A …(3)
(1)と(2)(3)ではA, Bの並びが逆になるから「be setだから下だろバカ」は間違いで、「be set toだから上だろバカ」が正しいように思える
しかしGoogle翻訳だと、
The variable is set to "バカ"
を英語に翻訳すると、
変数は「バカ」に設定されています
に、
"バカ" is set to The variable
を英語に翻訳するとこちらも、
変数に「バカ」を設定
に、
なるんだよなぁ…
不思議!

572:デフォルトの名無しさん
22/11/25 15:02:34.88 TzWxad5d.net
>>557
URLリンク(www.enago.jp)
In the first case, gamma is set to 1.
で「最初のケースの場合、gammma は 1 に設定される」
みたいな意味らしいから、
I set X to 1.
は、「私は X を 1 に設定した」のような意味になることが有る。
一方、
I assign 1 to X.
は、「Xに1を代入する」の意味になる。
to Y と書いたとき、Y が代入先(dest)なのか、代入元(src)なのかは、
動詞や文脈によって変わってきてしまうのかも知れない。
assgin の場合は、assign src to dest に固定されているはず。
set の場合は、文脈によってどちらも有りうるかも知れない。

573:デフォルトの名無しさん
22/11/25 15:04:42.52 RgnS8UuF.net
>>559
ならない。IDコロコロがワッチョイコロコロになるだけだし常識ある人が離れる分悪化する可能性が高い
奴の主張によればワッチョイが違うから別人だ!になるのは明らかだし、それで盲目信者の巣窟になった
スレをいくつも見てきた
てかアマゾンや一部のブログを弾いているくせにアフィYoutbeが野放しになっている時点で・・・

574:デフォルトの名無しさん
22/11/25 15:06:25.98 v7fq4Pg1.net
定数をバインドする式を定数式と呼ぶってことだろ
公式原文も色々怪しくて論議があるから、脳内で意訳しとけ

575:デフォルトの名無しさん
22/11/25 15:08:01.76 TzWxad5d.net
>>563
[続き]
I set X to 1.
とかけて、Xがdest(式の左辺)、1が src(式の右辺)であり、
X = 1;
の意味になる。
「The last difference is that constants may be set only to a constant expression,
not the result of a function call or any other value that could only be computed at runtime.」
の意味は、定数の右辺は、定数式、つまり、
constants = constant expression.
だけが許されて、
consttants = f(・・・);
などの、実行時に計算するしか結果が分からないような値は、右辺に来ることは無い、
という意味になるようだ。

576:デフォルトの名無しさん
22/11/25 15:13:16.78 TzWxad5d.net
>>562
>set B to A (SVOC)…(イ)
>も
>A := B
set以外の動詞の英語の基本原則からするとその通りで、
動詞 A B

動詞 B to A
は多くの場合、同じような意味になることが多い。
ところが、set の場合、話がややこしいらしく、
実は、
set B to 1
は、
B := 1
の意味になるらしい。
setだけが原則を破って必ず逆になっているのか、それとも、
文脈によって変わってきてしまうのかは不明。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch