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


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

Rust part17



1 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 22:43:13.96 ID:Re0G7B20.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 part16

2 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 22:43:37.18 ID:Re0G7B20.net]
Rust The Book (日本語版)
https://doc.rust-jp.rs/book-ja/
Rust edition guide (日本語版)
https://doc.rust-jp.rs/edition-guide/
Rust by example (日本語版)
https://doc.rust-jp.rs/rust-by-example-ja/
Rust cookbook (日本語版)
https://uma0317.github.io/rust-cookbook-ja/
Rust API guideline (日本語版)
https://sinkuu.github.io/api-guidelines/
Rust nomicon book (日本語版)
https://doc.rust-jp.rs/rust-nomicon-ja/
Rust async book (日本語版)
https://async-book-ja.netlify.app/
Rust WASM book (日本語版)
https://moshg.github.io/rustwasm-book-ja/
Rust embeded book (日本語版)
https://tomoyuki-nakabayashi.github.io/book/
Rust enbeded discovery (日本語版)
https://tomoyuki-nakabayashi.github.io/discovery/
Rust Design Patterns (日本語版)
https://qiita.com/Yappii_111/items/4ccc3a8461cdd4035651
https://qiita.com/Yappii_111/items/654717e6a6a980722189
Rust API guideline (日本語版)
https://sinkuu.github.io/api-guidelines/

3 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 22:43:46.54 ID:Re0G7B20.net]
Rust CLI (Command Line Interface) apps Book
https://rust-cli.github.io/book/
Rust macro Book
https://danielkeep.github.io/tlborm/book/
Rust Future Book
https://cfsamson.github.io/books-futures-explained/
Rust async-std Book
https://book.async.rs/
Rust tokio Book
https://tokio.rs/tokio/tutorial
Rust rustc Book
https://doc.rust-lang.org/rustc

4 名前:/
Rust rustdoc Book
https://doc.rust-lang.org/rustdoc/
Rust rustup Book
https://rust-lang.github.io/rustup/
Rust Cargo Book
https://doc.rust-lang.org/cargo/
Rust unstable Book
https://doc.rust-lang.org/nightly/unstable-book/
Rust Reference
https://doc.rust-lang.org/reference/
Rust Standard Library
https://doc.rust-lang.org/std/
[]
[ここ壊れてます]

5 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 22:43:58.88 ID:Re0G7B20.net]
☆WebAssembly(WASM) https://webassembly.org/ https://ja.m.wikipedia.org/wiki/WebAssembly
・Wasmer - The Universal WebAssembly Runtime https://wasmer.io/
-> WASI(WebAssembly System Interface)とEmscriptenに準拠したWASMを実行できるランタイム
・WAPM - WebAssembly Package Manager https://wapm.io/
-> WebAssembly製ツール/ライブラリのパッケージマネージャー
☆Rust
・wasm-pack - your favorite rust -> wasm workflow tool!
https://github.com/rustwasm/wasm-pack
-> WebAssemblyのrustcコンパイルサポート
・Yew - Rust / Wasm framework for building client web apps https://yew.rs/ja/
-> WebAssembly によってマルチスレッドな Web アプリのフロントエンドを作ることができる、モダンな Rust のフレームワーク
☆最近のWebAssemblyのニュース
・Publickey - Enterprise IT × Cloud Computing × Web Technology / Blog より https://www.publickey1.jp/programming-lang/webassembly/
・WebAssembly活用プロジェクト https://madewithwebassembly.com/
・WebAssemblyが気になるので調べてみた - Qiita https://qiita.com/t_katsumura/items/ff379aaaba6931aad1c4
・WASMとRustはVue.js/React.jsを打倒するのか? - JSへの侵略の歴史 https://zenn.dev/koduki/articles/c07db4179bb7b86086a1
・Typescriptの次はRustかもしれない https://zenn.dev/akfm/articles/81713d4c1275ac64a75c
・WebAssemblyはJVMやeBPFのリバイバルではない WasmがWeb以外でもアツい理由 - ログミーTech https://logmi.jp/tech/articles/324956
・Rust GUI の決定版! Tauri を使ってクロスプラットフォームなデスクトップアプリを作ろう https://zenn.dev/kumassy/books/6e518fe09a86b2
類似スレ
【wasm】ブラウザでC++。Emscriptenを語ろう https://mevius.5ch.net/test/read.cgi/tech/1547549448/

6 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 22:44:37.34 ID:Re0G7B20.net]
>>1
前スレのurlはれてなったよぉ…
Rust part16
mevius.5ch.net/test/read.cgi/tech/1656285423/

7 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 01:27:41.85 ID:YCt9Quz7.net]
>>1
おつ

8 名前:デフォルトの名無しさん [2022/10/07(金) 11:28:42.39 ID:d4ub3t4L.net]
>>1
O2

Nim に浮気中

9 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 12:26:19.13 ID:+0mlf9Ez.net]
Null安全でないGC言語のNimに浮気する人

10 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 12:31:49.01 ID:7pvxFIpA.net]
Null安全性が入れば雑なスクリプト用としては使えるんだけどな



11 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 13:04:35.78 ID:KVLYaA/l.net]
雑なスクリプト用途ならもっとシェアあって長続きしそうな競合が色々あるからなあ

12 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 13:36:57.50 ID:yqDZzsii.net]
Rustも意外に雑に手軽に書けるケースが多いと分かってきた
数値以外は先にスタック上に変数を用意(=メモリ確保)してしまえば
後はその参照を使ってアクセスするだけで所有権もライフタイムも気にせず気楽にコーディングできるんだな

13 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 15:04:20.94 ID:xg0qXK5h.net]
lifetimeや所有権よりshared xor mutableの方が煩わしいと感じる人は多そうに思う

14 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
僕はヌルヌルおまんこは好きですね

15 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
>>12
Cだと可変ポインタだらけだからその感覚では書けないからねぇ
考え方から矯正しなきゃならんし面倒ではある

16 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
スレッド内ならばCellが使えるから可変性も自由自在だよ

17 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
Cellを使ったら負け

18 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
Cellは安全性・高速性・利便性を両立するRustの最重要パーツの一つ

19 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
だんだんトンデモスレになってきてるね

20 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
Rust2っていつぐらいになりますか?今のままだと使いづらいです。。。



21 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
Cellを使わずにshared xor mutableに囚われて不自由なプログラミングしている初心者は意外と多いね

22 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
>>18
真に受けて複オジ2世が生まれないことを願ってる

23 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
Cellの利便性を知らない初心者がいるのは直感に反するからだろう
Cellは可変参照なくても非可変参照だけで書き換えられるからな

24 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
Cellを使うデメリットはないの?
ないならデフォルトがCell相当になっててもよさそう

25 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
>>23
Cellのデメリットは唯一!Syncだけ
つまりスレッド内部でしか使えない

26 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
誤解のないように言えば
スレッドを使わずにシングルスレッドの状況でももちろんCellを使える

27 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
組み込みとかだとヒープの利用が難しいので自然とスタックメインになる

28 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [[ここ壊れてます] .net]
>>23
コンパイル時の検査を緩めるかわりに実行時に検査が入る。
借用規則に逆らえるわけではない。

29 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
>>27
それはRefCellでは

30 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
>>27
Cellは実行時検査も無くコストゼロです
スレッド内なので借用規則に逆らえます



31 名前:はちみつ餃子 mailto:sage [2022/10/07(金) 18:21:14.63 ID:uxbzrjvk.net]
そっかー。

32 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
CellはCopy traitが必要なので場合によってはとんでなくパフォーマンスが劣化する場合がある

単なる数値なら問題はないが

33 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 19:45:02.34 ID:Znh4X5V+.net]
>>31
そんなことはない
Cell<T>のTは完全に自由でありCopy要件はない
Cellで数値だけでなくVecやString等も自由に使える
例外的に一部のメソッドはCopy要件を持つがそれはOption<T>等でも同じでありそのメソッド特定のみの話

34 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 19:48:12.01 ID:xg0qXK5h.net]
>>31
Cell::takeやCell::replaceなど追加されたのでCopyを実装してない型でも使えるよ
StringやVecなどCopyできない型を扱う場合でも
元の値をtakeして更新後replaceするなどうまく書けばそれほど非効率にもならない

35 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 19:52:07.74 ID:xg0qXK5h.net]
CellやRefCellはshared xor mutableを知った上で適切に使った方が良いと思うので
初学者へ勧めるべきかというと微妙な気はするなあ

36 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 19:58:58.94 ID:Znh4X5V+.net]
>>34
Cellは安全性が完全に保証される型
他の型と同様に万が一に間違った使い方をしたらコンパイルエラーとなり常に安全が保証される
初心者かどうかといった区別や考慮はそこに必要ない

37 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 20:08:27.14 ID:YCt9Quz7.net]
何がしたいの?

38 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 20:16:39.71 ID:CNFz94QB.net]
>>33
takeってデフォルト値に置き換えて所有権をもらうやつでしょ?
うーん、なんか気持ち悪さはあるんだよな

39 名前:デフォルトの名無しさん [2022/10/07(金) 20:49:01.57 ID:3/fEI9MA.net]
>>33
Cellの更新はset()で十分だね
もちろんreplace()してoldを捨てるのと同じ

>>37
take()はdefault値とのreplace()と同じ
これは気持ち悪いことでも何でもなくて
例えばmutableなOption<T>を維持しながら扱う時と同じ操作
その場合もSome(T)からTを取り出す時にdefault値と入れ替えるtake()を使うよね
何かが入っていないと未定義になるからその身代わり
もちろんすぐに更新する場合は概念上だけの扱いとみなせるし
実際の生成コードでもdefault値が入るコードは最適化で消えちゃう
未定義状態を避けるための自然な操作と捉えてよいかと

40 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 21:02:50.21 ID:CNFz94QB.net]
>>38
うーむ確かにそう言われるとむしろRust Wayな気がしてきた



41 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 21:12:11.57 ID:4RElSAp/.net]
不必要にCellを使ってみたくなるのはRust厨二病によくみられる症状
悪影響は少ないから温かく見守っておけばそのうち治るよ

42 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
まとめると実行時に値を書き換えたいオブジェクトにはCellを使う
書き込む場合はset
読み込む場合はtakeを使う

RefCellはオワコン

43 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 21:30:00.49 ID:Znh4X5V+.net]
>>40
内部可変性を知らないのかな?
Cellは内部可変性を与えるものであり
& mutに縛られずにコーディングの自由度を上げるだけでなく
この内部可変性を使わないと記述できない場合もあるほど重要なもの

44 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 22:49:11.13 ID:xg0qXK5h.net]
> inherited mutability is preferred, and interior mutability is something of a last resort.
内部可変性は必要な時だけつかうべき
https://doc.rust-lang.org/std/cell/

45 名前:デフォルトの名無しさん [2022/10/07(金) 23:05:27.46 ID:3/fEI9MA.net]
スレッド間での共有ができないからその場合は内部可変性を避けないとコンパイルエラーとなっちゃう
しかし共有しないものならばいつでも安全に使うことが出来ます
不自由なプログラミングをしてまで内部可変性の利用を避ける必要はありません
そのような場合にはむしろ使うべき時ですよ

46 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 23:15:28.30 ID:GE9TWYxP.net]
The Bookの内容も理解してないようだから厨二病というより厨一病だねぇ

47 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 23:27:40.94 ID:Znh4X5V+.net]
>>45
The Bookでは
CellはSyncを実装していないからマルチスレッド間では使えないことしか書かれていない

48 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 23:41:21.31 ID:xg0qXK5h.net]
>>46
!Syncが許容される場面では常にCellを使うべきだと考えていますか?

49 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 23:44:26.62 ID:Znh4X5V+.net]
>>47
常に?
そんな極端な主張を一度もしていない
他のものと同じで有用な時に使えばよい
そして有用な時が多い
それだけだ

50 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 23:59:28.46 ID:v90MyUH0.net]
Cellは安全なだけでなく
実行コストもかからないし
データ設計の幅も広がるし
メリットだらけだよね



51 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 00:00:53.53 ID:74M5kg9b.net]
後で読むからブログにでもまとめといて

52 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 00:05:55.63 ID:PJN/h6/8.net]
Cellを嫌ってる人って何かの病気なの?
数ある型の一つに過ぎないのに

53 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 00:09:24.75 ID:STUNJ/8C.net]
Rustレスバトル会場
https://mevius.5ch.net/test/read.cgi/tech/1657382429/

54 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 00:21:36.43 ID:iVJbbbtq.net]
Cell使わずにshared xor mutableの制限で苦しんでいる人は単なるバカ

55 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 00:35:12.49 ID:D3DCz8sQ.net]
CellとかRefCellってRustの本にも殆ど解説がないよな
ちょろっとおまけ程度にしかない
これなしでは現実的なプログラム書けないと思うのだが本の著者らはRustを理解してないんだろうか

56 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 00:52:04.60 ID:2tIWkITu.net]
>>54
書籍は見たことないから知らなかったけどそうなのか
自分が使っている著名なcratesのソースを見てみるとCellを使っているcrateも多い
だから普通に皆がCellを使っていてそこにタブーは無いようだ
まあ当たり前か

57 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 00:58:18.16 ID:QzbKhEyQ.net]
Cellなしでは現実的なプログラム書けないというのは言い過ぎ
ある種のプログラムではCellが必要になるくらいが適当では

58 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 01:04:15.77 ID:2tIWkITu.net]
Cellが必須となるプログラムと
Cellが必須でないプログラムがあるだけだよな
まあこれも当たり前かw

59 名前:デフォルトの名無しさん [2022/10/08(土) 01:12:26.49 ID:M3iYd9Ol.net]
Rustで日本が変わる!世界が変わる!
などとほざいてる人は自分では使っていないと思う。
使ってたら、ウーン、こりゃ使えんなあ・・・って言ってると思う。

60 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 01:34:11.88 ID:2tIWkITu.net]
Rustは今までに登場したプログラミング言語の中では一番使いやすく効率がいい程度だな
世界や日本がどうなろうとどうでもいいが
理解できない人たちとの不利有利の二極化は起こるだろう



61 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 03:41:06.69 ID:D3DCz8sQ.net]
>>55
The bookにはRefCellの解説はあるけどCellの解説がないんだよね
だからCellを使ってる人が少ないのかと思う

62 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
各crateのソース調べたらtokioもasync-stdもwasm-bindgenもCell使ってるな
別方面でtauriもyewもeguiもCell使ってるな
他にもproc macro用のsynとかCLI用のclapとか様々なcrateがCell使ってるな
この状況を見るとCellは普通に使って当然っぽい

63 名前:デフォルトの名無しさん [2022/10/08(土) 10:23:03.05 ID:2effy6oa.net]
>>38
それってCellから取り出した値がdefaultだった時の処理を書かないとならないんじゃないんですか?

64 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 10:55:13.71 ID:/5aPtbi3.net]
>>54
Cellは扱いの小さい本が多いがRefCellはだいたいどの本でもしっかり解説されてるでしょ

オライリー本はCellも解説してる

65 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 10:59:24.30 ID:HCP3bqwV.net]
Cellはスレッドローカルの共有状態を管理する時に使う
カウンタとかフラグとか

shared mutability自体多用するもんじゃないからその辺をよく考えてね

66 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 10:59:37.80 ID:kYZ69ulT.net]
>>54
Cの入門本の8割はmallocの使い方を説明してない

67 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 13:18:33.57 ID:HbWzH6SV.net]
どうせなら不変な部分を取り出せるようにしてすればよかったのにな。
参照カウントみたいなどこでも付いて回るのは厄介だけど。

68 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 13:48:31.81 ID:D3DCz8sQ.net]
>>63
ここの議論を見るとCellの解説を最初にやるべきだと思うのになぜRefCellばかりなのだろうという謎が
歴史的経緯みたいなやつか?
日本人の書いた本もRefCellばっかだよ

69 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 14:04:15.39 ID:cMY3Tlwa.net]
カジュアルにCellを使って欲しくないからだよ
よく考えて使わないとバグのもとだから
必要な人向けにはリファレンスで詳しく解説してる

70 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 18:26:38.20 ID:r98Hfriq.net]
>>62
マルチスレッド間共有していないから
空っぽの時に知らぬ間にアクセスされることはないよ
だから大丈夫
そしてすぐに更新することで最適化される
あとはプログラムの組み立て方の話であって言語による管轄の話ではないね



71 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 19:07:57.58 ID:vMI7I1P7.net]
interior mutabilityを持ち所有権を自分が持たないケースは特殊だから説明した方がいいかもしれないが、
interior mutabilityを持ち所有権を自分が持つケースは普通の事だからわざわざ説明するまでもない。

write lockを取るからborrow checkが実行時に遅延されるのも説明しないといけないし。

72 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 19:14:27.64 ID:N7i/LeD2.net]
Cellの使い方教えればRustユーザーも増えると思うな
所有権そのものより副作用を簡単には許さないところにハードルがあるから

73 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 19:30:29.77 ID:Xn47a3bW.net]
>>70
実行時borrow checkされるのはRefCellだけ
Cellはborrow checkもlockも無くてゼロコスト

74 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 20:24:05.46 ID:QzbKhEyQ.net]
カジュアルに使うならマルチスレッドでも使えるMutex使っておけばよいのではという気もするが

75 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 21:19:30.79 ID:BDP0djZ+.net]
CellはCにおけるグローバル変数と同じで真に必要な時以外は極力避けるべきもの
ましてやRustの基本的考え方に慣れてないうちから使うべきものじゃない

76 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 22:01:30.85 ID:LnEoG2Yz.net]
>>73
そこは真逆
Mutexはlockのコストがかかる
Cellはコストがかからない

>>74
Cellはグローバル変数ではなくローカルにいくつも出現可能
そしてグローバル変数のような極力避けるべきものではない

77 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 22:04:07.45 ID:QzbKhEyQ.net]
>>75
ロックのオーバーヘッドを気にする必要があるのはカジュアルに含まれません

78 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 22:06:04.90 ID:aSXXl0gc.net]
immutableなのがいいと言いつつ
mutやinterior mutabilityを結局使わせるダサさなw

79 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 22:39:37.88 ID:K1piK/7g.net]
>>76
Cell<T>ならスレッド内部専用の代わりにロックがなくてTと同じコストで使えるからオススメ

80 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 22:40:45.08 ID:QzbKhEyQ.net]
immutableだけで書きたければそうすれば良いのでは
そのアプローチに窮屈さを感じる人が大半だからshared xor mutableという安全に使えるサブセットが生み出されたわけで



81 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 22:42:33.20 ID:QzbKhEyQ.net]
>>78
ただしマルチスレッド対応させようとすると書き換えが必要だし性能面に大きなこだわりがないなら最初からMutexにした方が良いのでは
Cell<T>はランタイムコスト面ではTと同じかもしれないけどコード記述は結局

82 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 22:43:05.48 ID:QzbKhEyQ.net]
途中で書き込んでしまった

コードの記述の面ではTとは異なるから同じ使い心地にはならないよね

83 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 22:53:58.00 ID:IDy6SwOh.net]
>>80
それは君が勘違いをしている
Cellはマルチスレッドであってもスレッド内で使用することができる
Mutexを使うべき時はマルチスレッドのスレッド間で共有メモリとする時
排他制御のためMutexはコストが重い
したがって両者を互いに代用することは有り得ない

84 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
よくわかんないんだけどMutex<Cell<T>>は有効なの?

85 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 01:31:18.81 ID:LqCUQ5jH.net]
>>83
無効ではない
しかしMutex<T>はlockを取れたら& mut Tも得られて書き込みも可能なのでCellは不要
例えば

fn main() {
 let m = Mutex::new(Vec::new());
 sub(&m);
 let v = m.lock().unwrap();
 assert_eq!(*v, [123, 456]);
}

fn sub(m: &Mutex<Vec<i32>>) {
 let mut v = m.lock().unwrap();
 v.push(123);
 v.push(456);
}

つまりMutexの可変参照をもっていなくても内部の可変性を得られる
ようするにCellで内部可変性を得られるのと同じ
だからMutex<Cell<T>>と二段に重ねる必要はない

86 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 01:46:07.36 ID:NMoxe/se.net]
>>84
なるほどー
めちゃくちゃ勉強になる

87 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 01:48:31.99 ID:2Hsnp4rW.net]
>>82
ランタイムコストが無視できる場合はMutexが使えるけどCellが使えないシチュエーションはないよね
カジュアル用途なら大は小を兼ねる的な意味でCellよりMutexの方が良いのでは?
Cellにすべき理由あるの?

88 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 01:49:26.64 ID:2Hsnp4rW.net]
>>86
一文目逆だった。MutexがCellを置き換えられない場合はないよね、と言いたかった

89 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 01:53:55.32 ID:LqCUQ5jH.net]
>>86
話は非常にシンプル
スレッド間でメモリを共有するならばMutex (ただし排他コストがかかる)
共有しないならばCell (コストはかからない)
適切な方を選べばよい

90 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 02:00:16.80 ID:NMoxe/se.net]
というかRustマジで良くできてんな
考え尽くされてるわ



91 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 02:01:56.84 ID:Z8ziuvVg.net]
要するに変数は全部Cellで囲っておけばいいんでしょ

92 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 02:08:28.77 ID:2Hsnp4rW.net]
>>88
スレッド間で共有しなくてもstatic変数だったらCell使えないのでMutexは単純にマルチスレッド用とも言えないのでは
よくわからない人向けにはMutexをまずは勧めるのが良いのでは

93 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 02:24:40.07 ID:zCVUy+MP.net]
Qt使おうかと考えているけど
バインディングライブラリのritualを勧めている人がいたけど
最後のコミットが去年でサポーターが心配なんだけど
結局Cのライブラリ読み込みや既存ライブラリの利用とかどれを使えばいいの?

94 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 03:05:30.55 ID:LqCUQ5jH.net]
>>91
それは基本的な理解ができていない
static変数はスレッド間で共有が可能なためその型はSync実装を必要とする
だからCellが使えないのは当たり前

スレッド間で共有する必要がないならば
スレッドローカルに持てばSync実装を必要としないためCellを使える
例えば
thread_local! {
 static FOO: Cell<Vec<i32>> = Cell::new(Vec::new());
}
これでスレッド毎に持つことができる
もちろんスレッドを使わないシングルスレッドな状況でも使える

95 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 04:37:34.70 ID:8tdOWvz3.net]
Cellって基本的に値がムーブされるから構造体分はmemcpyが起きると思うんだけどそこはどうなの
RefCellやMutexなら直接参照取れるからそっちの方が効率的だよね

96 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 04:57:14.58 ID:95mox/4o.net]
複オジの嘘に騙される前には少しは頭使え

97 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 05:51:16.25 ID:md7RXs4/.net]
隔離スレに帰れ

98 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 05:51:33.43 ID:LqCUQ5jH.net]
>>94
memcpyは起きない
Cellに関係なく一般的にムーブはあくまでもRustの言語レベルにおける概念的なもの
したがって生成コードでは無駄なメモリ間のムーブ(コピー)は起きずに最適化される

Cellの場合でも同様に最適化される
&Cell<T>に対してtake()してTを更新してset()するコードは
& mut Tに対してTを更新するコードと同じ生成コードとなる

例えばそれらの比較コード
https://godbolt.org/z/1TY9v33YP
完全に同じ生成コードとなっていることが分かる
つまりCell<T>はTと比較して実行時ゼロコストである

99 名前:デフォルトの名無しさん [2022/10/09(日) 07:01:12.90 ID:vVo7+K5Y.net]
RustコンパイラとLLVMは凄いなあ
いつでもそうだけど生成コードではがっちり最適化してくれる
抽象的に書いても安全に書いてもCと同じ速さ

100 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 11:45:38.50 ID:kycCKtGO.net]
おまえも隔離スレに帰れ!ちょっと前にLLVMだから凄い坊があそこで暴れてたけど、ここはgccrsとかやる人の場だ、市ね



101 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 13:36:44.30 ID:1+WY+ral.net]
gccrsって使えるようになったの?

102 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 20:46:00.69 ID:yOxuO3a2.net]
Linux6.1ってRustで組んだってこと?

103 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
ドライバ等をRustでも書けるようになるだけ

104 名前:デフォルトの名無しさん [2022/10/09(日) 23:29:48.75 ID:FY4RBnfH.net]
Pattern alternativesってなんですか?和訳のパターンORもよくわかりません
https://doc.rust-lang.org/book/appendix-02-operators.html
https://doc.rust-jp.rs/book-ja/appendix-02-operators.html

105 名前:デフォルトの名無しさん [2022/10/09(日) 23:53:45.87 ID:vVo7+K5Y.net]
パターンの代替策
つまり「|」記号が
bit演算のORとしてだけでなく
パターンのORとしても使われるよってこと

106 名前:デフォルトの名無しさん [2022/10/10(月) 11:32:20.19 ID:wEJNunBW.net]
>>69
なるほど
マルチスレッドで共有する場合にはどうするのが適切なんでしょうか?

107 名前:デフォルトの名無しさん [2022/10/10(月) 11:45:42.80 ID:wEJNunBW.net]
>>105
これか

https://qiita.com/muumu/items/f264ad781486d3dd037b

108 名前:デフォルトの名無しさん [2022/10/10(月) 18:49:06.89 ID:lNBbmc/N.net]
Linux Kernel6.1は、Rustへ移行した最初のバージョンとなります。
Rustへ移行することにより、C言語バージョンの世代から、およそ30%の高速化を果たしました。

109 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 22:52:16.26 ID:3WEeN/aN.net]
気分はCelltic!
「実はshared xor mutableってしっくりこないんです!」

110 名前:デフォルトの名無しさん [2022/10/10(月) 23:11:02.61 ID:U+uG6kFy.net]
>>105
内部可変性を得たい場合
スレッド内ではCell<T>もしくは参照を持ち出したいならRefCell<T>を使う
スレッド内部で普通の共有ならばそれらの&を使う (&mutでなくてもOK)
スレッド内部で所有者が別となる共有ならばそれらのRc<...>を使う

スレッド間では完全排他のMutex<T>もしくはreaders複数可のRwLock<T>を使う
(ただしTがi32やboolならばもっと軽いAtomicI32やAtomicBoolが使える)
スレッド間で共有は所有者が別となるのでそれらのArc<...>を使う



111 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
>>97
最適化頑張ってるだけでムーブは概念的なものじゃないぞ。RBMMなんだから。

112 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 19:16:08.16 ID:Bl5ahscm.net]
moveがmemcpy呼び出しになるかどうかはあくまでも実装の話で
move自体のセマンティクスはデータのコピーを要求しないということが言いたいのでは

最適化offにして構造体サイズ大きくするとmemcpy呼び出されるから、memcpy起きないというのは嘘だけど

113 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 19:23:40.64 ID:61VrJvDY.net]
>>110
あくまでもRustの言語レベルでの抽象的なレベルではムーブはムーブであってビットコピーの保証はそこには一切ない
そして我々は抽象的な概念に基づいてプログラミングすればよい
生成コードはムーブという抽象的な概念だけを保証して最適化される
だからこそ生成コードではムーブでビットコピーが消え得る

114 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 19:29:43.10 ID:61VrJvDY.net]
>>111
memcpyはたまたまムーブの最適化なしのデフォルト状態で行われる可能性のあるコードにすぎないね
Rustの言語としてはmemcpyが必ず行われることなんて全く保証しない
ムーブはもっと上位の概念であってRustが保証するのはその上位の概念のみだね

115 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 19:51:08.13 ID:Bl5ahscm.net]
>>113
はいはい、>>111は誤読されかねない表現でしたね
(常に)memcpy起きないというのは嘘
と読み替えておいてください

元々の>>94のRefCellやMutexの方が効率的かという質問については、そういう場合もある、というのが答えで良いですよね

生成されるコードがどうなるかは最適化レベルや周囲のコードに依存するわけで、必ずどちらかが効率が高いと言えるようなものではない
感覚的には格納するデータサイズが大きい方がRefCell/Mutexが有利に、小さければCellが有利になりそうだけど、
ちゃんと測定したわけではないので実際のところは分からない

116 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 20:23:10.29 ID:iRs2n6UT.net]
>>114
実はRefCell構造体のメンバーにCellが使われている(現状)

使用されるメモリサイズ
Cell<T> ← Tと同じサイズ
RefCell<T> ← Tのサイズに加えてborrow管理のために内部で使用するCellサイズ分加算

動作コスト
Cell<T> ← (利用後すぐset()すれば)Tと同じコスト
RefCell<T> ← Tのコストに加えてborrow管理のために内部で使用するCellの読み書き操作コスト分加算

117 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 21:44:42.19 ID:P/g9+OyI.net]
ホント笑っちゃうくらい嘘を散りばめてくるよねw

118 名前:デフォルトの名無しさん [2022/10/11(火) 21:58:52.19 ID:lchMb24F.net]
>>114
RefCellやMutexの方が効率的かという質問については
代用として使うならばそれらの方が遅いでしょう
RefCellはボローチェック処理が必ず入ります
Mutexは排他的ロック処理が入るのでさらに遅いです

119 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 22:06:38.86 ID:Bl5ahscm.net]

120 名前:rget="_blank" class="reply_link">>>115
動作コストはT全体を置き換える場合だよね
TがVecで、一要素追加する場合のコストも計算してみてよ

>>117
ボローチェック処理が最適化で消えないことは保証されてるの?
ボローチェックや排他処理のコストはCellで発生するデータコピーより必ず高コストになるの?
[]
[ここ壊れてます]



121 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 14:10:22.75 ID:IRDyECLz.net]
ムーブ元の変数が使われないことがわかってるんだから
その変数の領域を使い回せばよいだけでしょ?
普通に考えてコピーとか起きないと思うんだが

122 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 18:26:20.15 ID:R7/twQcO.net]
自称分かってる人同士のケンカ

123 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 21:47:16.08 ID:TdLmkMrU.net]
RefCell使うのはアロケーションを避けたいからでしょ

124 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 23:29:45.96 ID:MmGzrhE7.net]
Cell<T>もTもメモリ領域は同じサイズで性質が異なるだけなのね

Cell<T>の更新はこうなるから
(1) メモリ→value読み出し // take()その1
(2) メモリ←default-value書き込み // take()その2
(3) valueを更新してnew-value
(4) メモリ←new-value書き込み // set()
コンパイラがまともなら(2)の部分はムダと判断して無くせそうね

さらにvalueの更新内容によっては (例えば足し算など算術の場合など)
その後にLLVMが最適化でメモリに対して直接実行する命令コードにするだろうから読み出し書き込みも消えるわけね

125 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 01:04:10.25 ID:v9vBAx/l.net]
CopyじゃないStringやVecで&mut selfとるメソッドを試せば違いが分かるよ

126 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 02:00:58.56 ID:m/K7Pbd2.net]
Copyを実装しない適当な構造体
#[derive(Default)]
struct Foo {
 inner: i32,
}
の &Cell<Foo> と &mut i32 の両方のケースで
>>122の最適化により同じ生成コードとなるから
Copyを実装してるか否かは関係ないみたい

127 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 03:36:21.71 ID:Oo+uXzBV.net]
>>124
それだと簡単にインライン化出来るからね
アロケーションが必要な型という意味でCopyじゃないStringやVecと言ったんだけど
Dropと言ったほうがよかったのかな

128 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 04:02:18.88 ID:cMF4wuqy.net]
アロケーション発生しなくても(i32, i32)とかにするだけでもう生成アセンブリ同じじゃなくなるね

129 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 08:01:16.32 ID:wSzwAK9q.net]
コンパイラが>>122
(2) メモリ←default-value書き込み
を削除する最適化をすれば
Copy実装なかろうがヒープを使おうが
生成コードは同じになるんじゃね?

130 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 15:12:31.34 ID:FWxI+s/s.net]
>>126
Copyにしてget/setにすれば同じになるかも



131 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 15:31:24.77 ID:WZ96xtHr.net]
macOSにおけるFirefoxのパフォーマンスを劇的に改善した方法とは?
メモリアロケーター「jemalloc」を独自にカスタマイズしたアロケーターを用いてメモリ管理を行っています。Firefoxのアロケーターでは並列処理時のロックを効率的に行うためにOSごとにネイティブなAPIを使用しているとのこと。このロックAPIとして、macOSではOSSpinLockが用いられていました。
https://gigazine.net/news/20221011-firefox-macos/

これって、Rustのメモリアロケーターがjemallocを基にしたRust実装になってるってことだよね?大昔はjemallocだったという話で

132 名前:デフォルトの名無しさん mailto:sage [2022/10/14(金) 21:09:01.17 ID:iCatm8xv.net]
>>136
シッタカも出来ないかまってちゃん不定期
https://searchfox.org/mozilla-central/search?q=servo%2F&path=&case=false®exp=false

133 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 00:38:51.20 ID:ZRY2KlKK.net]
>>130
servoを構成するコンポーネントのうちfirefoxに取り込まれたstyloしか登場してないように見えるが

134 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 10:12:30.40 ID:kho15VFl.net]
複オジにマジレスしても意味ないよ

135 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 21:19:13.19 ID:Sue68NiD.net]
お前の主張は「Firefoxはservo使ってない」であって「styloしか登場してない」では無い、そもそもstyloだけじゃない
途方もなく低い技術力でマウント取りたいことが生きがいの薄汚いオッサン

136 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 01:52:37.08 ID:xR2EqnpB.net]
servoは独立したレンダリングエンジンだからservoを使うと言えるのはgeckoを丸々置き換えた場合では
というかallocatorの話はどうなったんだ

137 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 13:06:47.08 ID:I4ihc4bO.net]
「Firefoxはservo使ってない」定期、顔真っ赤の話しそらしオジサン、geckoを丸々置き換えた場合とか言い出したw
「styloしか登場してない」も消えたwww
あんたはアロケーターなんて興味ないだろwww
したけりゃしろ。自分からは詳しい技術的な話何もできない、マウントしたいだけ、業界にいる寄生虫

138 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 16:22:20.12 ID:xR2EqnpB.net]
>>134
firefoxのレンダリングエンジンはservoじゃなくてgeckoのままだよ
servoは次世代ブラウザ向けのレンダリングエンジンの実装を模索するための実験プロジェクトで、geckoを置き換えることを意図したものではないよ
servoの一部のコンポーネントは完成度が高くgeckoに取り込まれてはいたので、
servoが発展していったらgecko全体がservoで置き換えられる未来もありえたけど、
mozillaがservoの開発者レイオフしちゃったのでその可能性もなくなっちゃったかと

動的ライブラリや静的ライブラリとして他のアプリケーションにリンクするcrateの場合、リンク先のアプリケーションバイナリに含まれる(または、動的リンクされる)allocatorを利用するのが普通なので、
geckoのservo由来のrustコードもそうなっていて独自にallocatorを定義することはしていないんじゃないかな

139 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 18:59:51.30 ID:qTG+zV4j.net]
rust関係ないけどjemallocを日本語で読む時
ジェ-

140 名前:マロック派?それともジェム-アロック派? []
[ここ壊れてます]



141 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 20:24:24.45 ID:xR2EqnpB.net]
Json Evans mallocだからジェーイーマロックって呼んでる

142 名前:はちみつ餃子 mailto:sage [2022/10/16(日) 22:45:33.29 ID:SvF0Fhwf.net]
それを言うなら malloc が (たぶん) memory allocate の略なんだから
ジェーイーエムアロックと呼ぶのが筋というものでは……。

俺はそもそも口頭で読み上げる機会がないから考えたこともなかった。

143 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 23:11:22.79 ID:sz/XVYMu.net]
開発者本人の動画見るとジェイ・マロックに聞こえるが
ジェイ・イー・マロックが短くなってるだけかなこれ
https://youtu.be/RcWp5vwGlYU?t=79

144 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 18:50:40.32 ID:q3uOCHzu.net]
>>136
servoじゃなくてgeckoのままは言い過ぎです、現にベクター系の2Dや、Canvasなどに使用するレンダラーはservo由来の
レンダラーが使用されます。その他はその通りでしょう

145 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 19:52:15.71 ID:gBqRn20s.net]
>>141
geckoを構成するコンポーネントの入れ替わりはあったけど
firefoxのレンダリングエンジンは生まれたときからずっとgeckoだよ
逆にgeckoじゃなかったら何なんだ

146 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 19:58:16.39 ID:gBqRn20s.net]
>>141
FirefoxにRustのコンポーネントを多く導入したQuantumプロジェクトの説明でも、ServoのコンポーネントをGeckoに取り込むと言っていて、
Geckoを置き換えるとは言っていない
https://wiki.mozilla.org/Quantum

147 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 21:29:09.32 ID:MqsTBCMt.net]
Rust関係ないからFirefoxスレでどうぞ

148 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 22:43:40.85 ID:GuOtjDmV.net]
もうその話題はいいよ
しつこいな

149 名前:デフォルトの名無しさん [2022/10/18(火) 10:08:56.84 ID:1nhFYrk9.net]
しつこくやって『Cell<T>はTと同じコスト』(真っ赤な嘘)を流したかったんでしょw

150 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 11:26:14.64 ID:f2tKHPpy.net]
termuxのrustずっとバージョン不整合で動かないな
rustupじゃそもそもインストール出来ない



151 名前:デフォルトの名無しさん [2022/10/18(火) 12:14:53.29 ID:PMaXG0c3.net]
>>147 俺は普通に動いてる
一応聞きたいんだけど、TermuxはF-Droidから入れたよね?
Play Store版はもうメンテナンスされてないから色々バグると思う

152 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 12:23:43.08 ID:lAl7R2Of.net]
>>143
あー、それ見てワカッタ風吹かしてんのな。「Rustのコンポーネントを多く導入」と言ってる時点で、styloだけじゃないし
2DレタリングのwebrenderもservoからのRust製だわ。”誰も”Geckoを置き換える=Geckoが無いなんて言ってない
https://github.com/servo/webrender

153 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 14:03:11.76 ID:f2tKHPpy.net]
>>148
F-Droidから入れてる
何故かlibllvm-14.soのリンクが出来ないと怒られてしまう
で入ってるllvmのバージョンが更新で15に上がってしまってる状態
俺環かも知れんね

154 名前:デフォルトの名無しさん [[ここ壊れてます] .net]
あんまり自信がある訳じゃないんだけど、カーネルが64bitでユーザーランドが32bitみたいな環境だったりしない?

155 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
>>149
Geckoのコンポーネントを置き換える

Geckoを置き換える
は全然意味が違うでしょ

まあ日本語の問題で意図してるところは食い違ってないから反応するのはこれで終わりにするわ

156 名前:デフォルトの名無しさん mailto:sage [[ここ壊れてます] .net]
グーグル、Rustで書かれたセキュアなOS「KataOS」を発表
https://japan.zdnet.com/article/35194751/

157 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 15:37:54.47 ID:f2tKHPpy.net]
>>148,151
すまぬ色々やってる中で入れたnightlyの影響だった
お騒がせした

158 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 03:30:17.24 ID:cvhlJCwu.net]
fucsia「僕はいらない子なの?」

159 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 07:05:26.07 ID:CJepXKVA.net]
>>153
昔「おおっ!!!あのグーグルがまた何か新しいことを始めたぞ!すごそうだ!」
今「まぁーーたはじまったよ・・・」

160 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 11:11:44.42 ID:H7L8/zfi.net]
Googleが立ち上げては潰してきたサービス一覧「Killed by Google」
killedbygoogle.com



161 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 11:23:33.38 ID:iHEkpSLR.net]
何も産まないよりは健全よね

162 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 11:35:06.09 ID:Dqx/r4FW.net]
役に立つかどうかわからんものに手を出せる余裕が
個別の結果に関わらず
部分的な成果の積み上げで会社をブーストさせるんよ

163 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 11:38:58.17 ID:Sj+PYk/j.net]
まあ堅そうな名前ではあるな

164 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 12:24:59.02 ID:j2B3ovC/.net]
IoT向けOSって言ってるし組み込みOSなんて元々百花繚乱だろ。
組み込み機器の脆弱性対応なんて大変だし、そもそもその手の脆弱性が入り込みにくい言語を採用するのは合理的だと思う。

165 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 12:46:33.84 ID:xwPbcXKV.net]
日本ってやらない理由、出来ない理由並べる奴が多いよな
多くの日本企業よりGoogleの方が多く生み出しているし世の役に立っている

166 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 12:48:40.76 ID:aUvB23KT.net]
南朝鮮ってやらない理由、出来ない理由並べる奴が多いよな 多くの南朝鮮企業よりGoogleの方が多く生み出しているし世の役に立っている

167 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 13:00:38.45 ID:xwPbcXKV.net]
Rust Foundationへの参加はNECやFUJITSUよりSamsungの方が早いんじゃないかなぁ
国内大手で積極的にRustを推していこうなんて所はなさそうに見えるし
組み込みのRenesasとかもやる気なさそうだしな

168 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 19:58:52.34 ID:+MAum9P/.net]
出来ない理由を考えるのではなく!

169 名前:デフォルトの名無しさん [2022/10/19(水) 21:32:43.94 ID:mHa4T+cl.net]
日本が後進国になってきたのは政治の責任が大きいけど
IT分野で遅れてるのは総じて教育水準が低いからだよ

170 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 22:51:58.05 ID:owfoFln4.net]
民主主義国は政治の責任=有権者の責任



171 名前:デフォルトの名無しさん [2022/10/19(水) 23:03:48.16 ID:kLmY2FYt.net]
>>167
利権差配と中抜きしか考えない国賊を礼讃して
統一創価売国与党に投票し続けたやつの責任だろ

172 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 00:02:58.60 ID:ce/AQgdF.net]
まったく読むに値しないクソ書き込みの羅列の中で
>>160 だけが唯一価値ある輝きをはなっている

173 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 13:00:10.90 ID:Px+TgmX7.net]
在日だらけ。IT分野で遅れてるのは米国(英語圏)・中国の人口差だし、日本の人口減でもある。
世界中で、歴史上、移民以外で人口減を解決した国は1つもない
そういう意味では韓国などはでは優れたソフトウエアは1つもない。馬鹿な半島はAndoridのOSを
握ろうとTizenなどというゴミを掲げたが、食いついたのはNTTドコモぐらい
いま韓国で起こってるのはソフトウエアサービスの””ガラパゴス化””であり、GoogleやAmazon
Apple Payなどに対して参入障壁を作り防御するような、大昔の古臭い日本あった不公正貿易。
民主党政権時代だって3年あったわけだが、利権

174 名前:と中抜きしかしてない。やったことは仕分けだが
1つも役に立たないどころか、地方医療を崩壊させ、気象変動へ対処できるインフラ投資を
一時的止めた害悪しかなかった。その他にも野田政権による執拗な消費税増税もあった。
今彼らは英国が減税を匂わせただけで大混乱していることを見ずに、消費税ゼロを掲げている。

卑劣にも矛先を反らし、リベラルなのに移民反対派で、リベラルなのに「国賊、売国」などという言葉を使い、
まるで戦争前夜か、共産主義や社会主義のような物言いをするアホが出る時点で若い人の人材不足といえる。
[]
[ここ壊れてます]

175 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 16:07:13.38 ID:zGrDbuOl.net]
英国が減税しただけで、支持率が7% になったw
米国の金利上昇で、韓国の金利も0.5% 上がったw

なのに、借金が1千兆円もある日本の金利が、0%w

狂った世界中の経済学者達が、日本は不正をしている。
日本国債は破綻しなければおかしいと言ってるw

外人が幾ら日本国債を売っても、金利が上がらない。
破綻しないw

いい加減、借金が1千兆円もあるという財務省の嘘に気付け!w

YouTube で勉強しろ。
【TVじゃ絶対言えない話】国の借金は嘘!?中田敦彦が解説

176 名前:デフォルトの名無しさん mailto:sage [2022/10/21(金) 19:45:15.15 ID:xXJwtueL.net]
WEB+DB PRESS、何度目のRust入門なんだい?

177 名前:デフォルトの名無しさん [2022/10/21(金) 20:10:13.59 ID:HoCfXQGg.net]
Rust入門は初めて

178 名前:デフォルトの名無しさん mailto:sage [2022/10/21(金) 21:22:06.02 ID:2TP3mE4K.net]
pythonとrustを一通り試してみた
for文の入れ子で外側のforをbreakできるとか、数値を1_000_000と表現できるとか、
そんなところでrustのほうが行き届いている感じがした

ただpythonのリスト内包表記、添え字の-1で配列の一番最後を表すとかそんなのは便利だな

179 名前:デフォルトの名無しさん mailto:sage [2022/10/21(金) 21:26:14.55 ID:gnp0h5uN.net]
Rust入門という感じではないな
Rustを使ったWeb入門という感じ

180 名前:デフォルトの名無しさん [2022/10/21(金) 22:25:35.46 ID:YCtBy6Lb.net]
>>175
Web+DB Press読者は簡単なWebアプリ開発はいろんな言語で経験済みで理解しやすいだろうからチュートリアルの対象に選んだだけでは?



181 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 13:19:56.51 ID:OES5lhv+.net]
>>176
普段読まないけどRustなので買ってみた
なかなかわかりやすかった
基本文法の解説が明らかに足りないけど
サンプルを理解するだけならこの程度で良いのか
面倒な部分が表に出ないようにうまくサンプルを調整してるし

182 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 21:03:49.60 ID:Vp6sRBIs.net]
借用がどうGCに関係するのかよくわからない
うまく説明しているサイトはないですか?

183 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 21:38:11.55 ID:OES5lhv+.net]
まずスタックとヒープを理解せよ
これは口を酸っぱくして言ってる
でないとRustは理解できない

184 名前:デフォルトの名無しさん [2022/10/22(土) 21:39:04.07 ID:PO/EA+oY.net]
とりあえずThe Bookの4章
https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html

Rustをそれなりに習得しようと思うなら
The Bookとオライリー本を読むのが一番近道

185 名前:デフォルトの名無しさん mailto:sage [2022/10/22(土) 23:56:07.88 ID:OES5lhv+.net]
両方とも初心者には辛いよなあ
わかりやすい入門書が待たれる

186 名前:デフォルトの名無しさん mailto:sage [2022/10/23(日) 00:22:18.48 ID:LnniM1YV.net]
借用するときにデータをスタックに積む
スコープを抜けるときに一気にpopするので
GCがいらない、つまり、早い
heapだとGCのときにデータの移動が必要になる
ので遅い
この理解であってる?

187 名前:デフォルトの名無しさん [2022/10/23(日) 00:29:31.67 ID:jNoMv4k0.net]
ポインタとか参照とか他の言語で扱ったことない?

188 名前:デフォルトの名無しさん mailto:sage [2022/10/23(日) 00:44:57.32 ID:h/oZflgJ.net]
heapが遅いの要因は、メモリの割り当て解放処理があるから処理量が多いとか、
割り当てた領域がバラバラになることでキャッシュ効率がさがることとかかと

189 名前:デフォルトの名無しさん [2022/10/23(日) 13:47:22.46 ID:/F23RQvw.net]
ページング処理みたいなのが、ヒープだと2重に行われるんじゃないの?

190 名前:デフォルトの名無しさん mailto:sage [2022/10/23(日) 14:14:22.62 ID:ioVOctq2.net]
>>182
Rustでのその辺のメモリの動きはオライリー本に詳しく書いてあった気がするから読むべし



191 名前:デフォルトの名無しさん [2022/10/23(日) 15:30:09.10 ID:t4UBj2/5.net]
>>182
>>185
お前ら、具体的にどうされてるからスタックだと速いかわかって無いだろ、、、

192 名前:デフォルトの名無しさん mailto:age [2022/10/23(日) 18:33:19.09 ID:QEVtmAwk.net]
>>182
そんなに物事が単純なら良かったのに...
”スコープを抜けるときにGCがいらない、つまり、早い”、これは間違いでもある。インライン展開されるような高階関数なら良いが
ループ中でアロケーションしてしまうような記述をすると、その度に確保・解放されるので非効率になりかねないし、借用による
メモリーの管理ではないが、参照カウントを使用するSwiftでは、ループでボトルネックになることはある。
このためRustでは高階関数で書く事が一般的に(分かり易く)良い事とされる。あとスタックでどの言語も大体はスコープ外で
消えるのでヒープとスタックの区別は付けましょう

独立したGCスレッドが動く言語だと、スコープ外れでGCするとは限らないので、速い場合がある。一方で、高負荷な環境では
GCスレッドがありで、回収などインターラプトが入るのでRustが有利になる(=※こちらのほうがRustが重要視される理由)
いわゆるSTOP THE WORLD(DIO様風)だ。ただ、これが無ければ良いということではなく、循環参照などを作らなければ
問題ないという話で循環参照を作ってしまうのであれば、独立したGCスレッドは便利でもある

”GCのときにデータの移動が必要”になるかどうかは、GCのアルゴリズム次第であり、厳密には”データの移動が必要”になるのは
メモリーのフラグメント解消つまりコンパクション処理によるところが大きい。これは、近代的なOSでは似たような事を行っていて
これ自体が速度に大幅に影響を及ぼすとは言い難い

193 名前:デフォルトの名無しさん mailto:sage [2022/10/23(日) 19:03:12.25 ID:NZM9O6ur.net]
>>188
> ループ中でアロケーションしてしまうような記述をすると
アホなコードで議論する必要あるの?

194 名前:デフォルトの名無しさん mailto:sage [2022/10/23(日) 20:51:00.62 ID:h/oZflgJ.net]
一体何と何を比較しているのだ

195 名前:デフォルトの名無しさん mailto:sage [2022/10/23(日) 22:09:39.72 ID:HOBBKeJ+.net]
なんかすごい早口で支離滅裂なこと言ってるけど
頭を整理した方が良いよ

196 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 16:50:56.92 ID:SgELnO58.net]
スコープを抜けるときにGCがいらない、つまり、早い

これが間違っている理由を教えてください

197 名前:はちみつ餃子 mailto:sage [2022/10/24(月) 18:09:05.87 ID:VKX4Fsrh.net]
ヒープメモリの管理はそれなりに重い処理だというのが論旨のように見える。

GC を使った場合のように不要なオブジェクトの判別をしていくコストは Rust では生じないが
それを除けば空いてる箇所と使用中の箇所を上手いこと管理する実行時コストは
GC (に付随するメモリ割り当て) でやってるのとたぶんそんなに差はないんじゃね。

198 名前:デフォルトの名無しさん [2022/10/24(月) 18:49:41.29 ID:8+UVFZyO.net]
>>192
>スコープを抜けるときにGCがいらない、つまり、早い

確保したメモリはいつ解放するんだよバカ。

199 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 19:05:34.14 ID:Off49nvS.net]
文法で制約したら、書き手もコンパイラも
変数の寿命を厳密に特定することができて便利だろって事で、
どこにどう確保すると速いとか、そういう話とは別では

200 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 19:14:17.25 ID:FdEAHzhz.net]
GCがないので速い←わかる
スコープを抜けたらpopするだけなので速い←わかる
スコープを抜けるときにGCがいらない←スコープとGCは何の関係もないよね



201 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 20:07:47.96 ID:rCA25jH/.net]
まあGCは常に動く可能性があるからな
逆に全く動かない可能性もある
そこはGCのアルゴリズムによりけり

202 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 21:01:10.53 ID:SgELnO58.net]
スタックを使っているから
pop すればそのままメモリが解放されるという意味では?

203 名前:デフォルトの名無しさん [2022/10/24(月) 21:39:23.30 ID:UxIqfb1a.net]
何と何を比べて何が速いと思ってるのか整理しなよ
話はそれからだ

204 名前:デフォルトの名無しさん [2022/10/24(月) 22:49:30.31 ID:c7GaYtEs.net]
>>198
動的データ全部スタックに積むのか。すげーな。

205 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 22:54:45.01 ID:9jOSWWIs.net]
そんなことよりコンパイルの遅さマジでテコ入れろYO、非力なCeleronでactix-webのコンパイルしたら10分とかふざけてんのか?

206 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 23:05:21.00 ID:XsMeW9pb.net]
コンセプトがコンパイル遅くしても賢くするだから無理

207 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 23:18:23.86 ID:b0depGja.net]
依存ライブラリまで全部自前ビルドさせられてるわけだからな
コンパイル済みcrateの配布とかやってくれればなんとかなりそうではあるが

208 名前:デフォルトの名無しさん mailto:sage [2022/10/24(月) 23:42:51.24 ID:cJUnO/Lg.net]
コンパイル高速化はユーザー側でもいろいろ工夫の余地はあるが
コア数多いマシンを使うのがいちばん効果がある

209 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 07:14:07.04 ID:0Y9XP165.net]
分散コンパイルか、差分コンパイルか、常にバックエンドでコンパイルか

210 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 08:16:49.84 ID:A5TY3R0Y.net]
>>201
流石にもっと良いマシン買えでFA



211 名前:デフォルトの名無しさん [2022/10/25(火) 08:49:49.17 ID:1jHrAe9o.net]
でもRustって錆だよね

212 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 11:17:17.09 ID:5EjxpvPU.net]
ライブラリ類も複雑化・大型化の一途をたどっているご時世だし
Androidをビルド出来ないようなマシンは開発用としては時代遅れじゃね

213 名前:デフォルトの名無しさん [2022/10/25(火) 16:49:21.94 ID:pUVcngq8.net]
環境負荷を下げるためにもTier1プラットフォームはビルド済みか半分ビルド済みを配布できるようにすべき

214 名前:デフォルトの名無しさん mailto:sage [2022/10/25(火) 18:21:31.05 ID:RZIJ148t.net]
structのフィールドにasyncのクロージャ持たせるの面倒だな

215 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 00:21:17.27 ID:+/Fbza6R.net]
>>210
Pin<Box<dyn Future<Output = T>>> ではだめ?

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

217 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 03:12:53.76 ID:J4zGWIbj.net]
>>200
全部とは言っていないローカル変数だけだ

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

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

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



221 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 10:28:26.80 ID:poB2zSjv.net]
ピープアレルギーでも湧いたのか?

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

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

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

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

226 名前:デフォルトの名無しさん [2022/10/26(水) 14:58:21.99 ID:XcmPInF1.net]
>>220
ん?
何が変わらんの?

227 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 16:10:38.33 ID:+/Fbza6R.net]
>>219
issueはあるが放置されてる
https://github.com/rust-lang/rust/issues/22666
こういうのは欲しい人が積極的に動かないとなかなか進まないよね

228 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 18:56:12.77 ID:m/VlzFSs.net]
C 以外の言語は、すべて浅いコピー・shallow copy でしょ。
実体はコピーされずに、参照だけがコピーされる

たぶん、ローカル変数も参照だけがスタックにあって、
実体はヒープにあるのでしょ

229 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 19:32:11.84 ID:/Jbhrlo+.net]
そもそもスクリプト言語はマシンスタック使ってないから
C/C++/Rust/Goみたいなコンパイル言語とスクリプト言語(PythonとかRuby)とではメモリモデルが全く違う

JVMのJITはVMスタックをマシンスタックに引き継ぐって処理をやってるけど

230 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 19:35:12.65 ID:+/Fbza6R.net]
>>224
Cにdeep copyの概念ある?



231 名前:はちみつ餃子 mailto:sage [2022/10/26(水) 19:39:57.27 ID:UI6BPQPg.net]
>>226
たぶん >>224 は Java や C# などでいう参照型のことを言ってると思う。

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

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

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

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

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

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

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

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

240 名前:デフォルトの名無しさん mailto:sage [2022/10/27(木) 23:13:57.69 ID:qcIge2ki.net]
Cではというが大多数の言語がそうじゃね



241 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 00:02:58.28 ID:Rl5QKwW8.net]
deep copy は、ネストするから難しい

Ruby などは参照のリンクを断つために、
一旦、JSON などの文字列にしてから、オブジェクトを再構築したりする

Marshal もあるけど、色々な条件がつく。
IO, Proc, 特異メソッドが使えないとか

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

243 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 03:43:44.96 ID:01u53tKZ.net]
高階関数はGCの性能に影響を及ぼすの?

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

245 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 16:15:00.57 ID:AMrJHSke.net]
JavaScriptっていつまでバンドルとかやるん?

246 名前:デフォルトの名無しさん [2022/10/28(金) 16:24:46.58 ID:muqJ433+.net]
いっそコンパイルしたら

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

248 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 19:59:50.54 ID:eNUtjibx.net]
じゃあasmjsでよくね

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

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



251 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 19:41:21.29 ID:TG2fSMWC.net]
なんでvecの&mutに*が不必要なのか、いまいち理解してなかったけど

fn calc(n: &mut Vec<usize>) {
 (*n).push(1);
}

こういうことかー。そういうことだったのかー

252 名前:デフォルトの名無しさん [2022/10/30(日) 23:24:15.56 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 23:41:49.13 ID:fG4j0a7a.net]
Dropを自分で実装した型で試せばわかる

254 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 19:06:46.94 ID:DHbQvQ7c.net]
相変わらずLinusに怒られまくってるね

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

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

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

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

Linux くらいの規模なら専用言語を作っても割に合ったりするかな?

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

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



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

262 名前:デフォルトの名無しさん [2022/11/01(火) 18:29:34.49 ID:cxS6KzKc.net]
>>250
どれ?

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

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

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

266 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 02:16:08.55 ID:atTBpfYp.net]
しょーもないシンタックスの話より有意義だけどな。

267 名前:デフォルトの名無しさん [2022/11/03(木) 05:38:58.72 ID: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 名前:デフォルトの名無しさん [2022/11/03(木) 19:40:23.88 ID:4W4icteo.net]
>>263
()を色々使いすぎというのは同意だけどRPNだと今よりもっと使われないよ。
連鎖性言語とか好きだけど。

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

270 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 21:15:01.48 ID:t6ap+kyc.net]
for &i in vec![0_usize; 5].iter() {
 //iのままなんちゃら
}

for i in vec![0_usize; 5].iter() {
 //*iでなんちゃら
}

参照外しはどっちをつかってる人のほうが一般的なん?



271 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 21:21:15.76 ID:0fRPRys5.net]
Copy実装してる型なら別にどっちでも……

272 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 21:35:17.79 ID:b1nVlp4p.net]
union で定義した型があり、タグビットに相当するビットで variant を区別できる場合に
enum と同じ表現でパターンマッチするというようなことは出来ませんかね?
マニュアルを見た感じでは出来なさそうなので駄目で元々な相談なんですが……。

それが欲しくなった事情としては抽象的なバイトコードマシンが定義されていて
そのバイトコードをそのまま enum にマッピングできれば楽なのになと思った次第です。

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

274 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 08:57:52.35 ID:KcmeiRV8.net]
>>269
英単語を声に出して読んでみ

275 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 09:12:11.15 ID:NSu48ax/.net]
>>269
公式のドキュメントにも
.expect("failed to parse number")
という例があるしあまり気にしない方がよさそう
https://doc.rust-lang.org/std/result/enum.Result.html#method.inspect

276 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 09:15:25.47 ID:yWEsFaag.net]
>>271
これ英語の分からん奴が書いたんだろう

277 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 09:25:36.66 ID:u3TD418O.net]
>>269
まあ慣れるしかないわな
俺もこの名前はおかしいと思うし世の中でもおかしいと思う人はいるようだ
https://stackoverflow.com/questions/66362625/why-is-rusts-expect-called-expect

278 名前:デフォルトの名無しさん [2022/11/04(金) 09:47:45.14 ID:QJXSkaei.net]
>>273
よかった、俺だけではなかったか

279 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 09:54:11.00 ID:NSu48ax/.net]
推奨されるメッセージのスタイルが定義されているので>>269は正しい
https://doc.rust-lang.org/std/result/enum.Result.html#recommended-message-style
どうしても気になるならこれを根拠にしてメッセージを修正するpull req送ると良いと思う

280 名前:デフォルトの名無しさん [2022/11/04(金) 11:58:42.90 ID:hgziOenm.net]
君、ぼくのおちんちんを舐めてみないかい



281 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 12:36:39.57 ID:8jcY9XF+.net]
.expect("ン拒否するゥ");

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

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

284 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 21:47:55.53 ID:6MdwxjIj.net]
ここまで1.65の話題ゼロか

285 名前:デフォルトの名無しさん [2022/11/05(土) 21:51:57.09 ID:4ktyBPoJ.net]
GAT難しいからw

286 名前:デフォルトの名無しさん [2022/11/05(土) 21:58:52.83 ID:B2i8Nuif.net]
Rust 1.65.0 の発表
2022 年 11 月 3 日 · Rust リリース チーム
https://blog.rust-lang.org/2022/11/03/Rust-1.65.0.html
新しい Rust リリースの詳細に入る前に、イランの宗教道徳警察によるMahsa Amini の悲劇的な死と、他の多くの人々の死と暴力的な抑圧に注意を向けたいと思います。詳細については、 https://en.wikipedia.org/wiki/Mahsa_Amini_protestsを参照してください。私たちは、人権のために闘っているイランの人々と連帯します。

↑BLMといいウクライナといい海外ITの政治的主張入れて当然みたいなノリ苦手
質実剛健のイメージだったがRustチームも同じでちょっとガッカリ

287 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 22:23:37.34 ID:CC30py/U.net]
嫌な世の中だな

288 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 22:33:26.02 ID:zxpwXxCd.net]
そういうのが嫌なら使わなければよろしい

289 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 03:47:36.18 ID:5A+TXyoz.net]
お、Backtraceがstabilizeされたか
めでたい

290 名前:デフォルトの名無しさん [2022/11/06(日) 23:25:31.82 ID:tr7TV8Z+.net]
>>285
うむ



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

292 名前:デフォルトの名無しさん mailto:sage [2022/11/07(月) 14:37:07.26 ID:3k6QMezQ.net]
RustってSDGsだよね

293 名前:デフォルトの名無しさん mailto:sage [2022/11/07(月) 16:35:16.97 ID:F5fz3af4.net]
みんなMSRVいくつにしてる?

294 名前:デフォルトの名無しさん mailto:sage [2022/11/07(月) 21:29:16.68 ID:oBOm8exD.net]
日本人はまあ事なかれ主義だから仕方がない

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

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

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

298 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 09:48:57.31 ID:fSnT1d04.net]
貧困老人って左傾化してるイメージある

299 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 12:28:40.18 ID:aAawVede.net]
>>292
トレンドはどのように決定されますか?
トレンドはアルゴリズムによって決定され、初期設定では、フォローしているアカウント、興味関心、位置情報をもとにカスタマイズされています。

こういうAI系にRustが使われる可能性ありそうかな?

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



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

302 名前:デフォルトの名無しさん mailto:sage [2022/11/09(水) 14:25:41.02 ID:bNBw/HLH.net]
>>296
rustのGPU周りのツールチェインは整備進んでるの?

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

304 名前:デフォルトの名無しさん mailto:sage [2022/11/12(土) 21:53:46.90 ID:PWetNf5n.net]
eguiつよそうだけどみんな興味ないの?

305 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 01:00:16.84 ID:1Xo91Kz4.net]
guiはeguiとtauriの2強になりそう

306 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 02:09:24.41 ID:Uh0BavN1.net]
eguiはエグイ

307 名前:デフォルトの名無しさん [2022/11/13(日) 02:33:53.13 ID:RFRBhoEy.net]
言うほど2強か?
https://www.publickey1.jp/blog/22/electrontauriguitauri-egui_010.html

308 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 21:44:40.30 ID:S ]
[ここ壊れてます]

309 名前:eSkk5iM.net mailto: 丸の内線ってマジでいらんよな []
[ここ壊れてます]

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



311 名前:デフォルトの名無しさん mailto:sage [2022/11/13(日) 22:58:55.78 ID:T5PK/vl5 ]
[ここ壊れてます]

312 名前:.net mailto: そんなんLapceがあるだろ []
[ここ壊れてます]

313 名前:デフォルトの名無しさん [2022/11/15(火) 00:12:55.17 ID:dw7MQVYD.net]
Bevyの変更量エグいな。1.0到達まで様子見するわ
https://bevyengine.org/news/bevy-0-9/

314 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 00:20:45.30 ID:aZkMwykQ.net]
米国家安全保障局、CやC++からメモリー安全性の高いJavaなどへの移行を推奨
https://japan.zdnet.com/article/35195997/

ハッカーらによるリモートコード実行(RCE)をはじめとするさまざまな攻撃からコードを保護するために、C#やGo、Java、Ruby、Swift、Rustといったメモリー安全性の高い言語に移行するよう推奨している。

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

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

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

318 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 05:58:46.96 ID:XpLYghoG.net]
RubyはRustの誤植な気がする

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

320 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 07:20:48.25 ID: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のソースを示してほしいね
https://www.zdnet.com/article/programming-languages-these-top-four-rule-and-developers-are-happy-for-now/



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

322 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 08:47:01.64 ID:UduTysKC.net]
ソース
https://media.defense.gov/2022/Nov/10/2003112742/-1/-1/0/CSI_SOFTWARE_MEMORY_SAFETY.PDF

323 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 09:09:11.17 ID:ott+UO1u.net]
人工衛星イザナミ・イザナギでも、mruby を使っている

C はポインターでバグるから、
文字列処理などはポインターを使わない、安全なmrubyが良い

それで、mrubyから、Cのライブラリを呼び出せば安全

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

325 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 11:45:11.75 ID:Ohwd0nE1.net]
陽に使わないって事だろ

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

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

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

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

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



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

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

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

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

335 名前:デフォルトの名無しさん mailto:sage [2022/11/15(火) 21:18:52.91 ID:oaKUlL5c.net]
>「オブジェクトのコピーはすべてムーブを使う」

微妙に意味が分からん

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

337 名前:デフォルトの名無しさん mailto:sage [2022/11/16(水) 07:33:54.12 ID:NR4h2Di6.net]
F#をトライしていたのですが、VSは重いし、VScodeは動かすことができず
Sublimeは何とか動くが、ライブラリをうまくアクセスできず図を出力できず
コマンドラインでの実行もバージョンが古いせいかこれもライブラリにアクセスできず
で、似ているというRUSTをテストしてみました

インストールも簡単、クレートの設定も簡単
コンソールでコンパイル、実行も簡単
webにあるサンプルをテスト、5つほどwarningがでていましたが図を出力できました
F#では実行環境を作るのに四苦八苦しましたが、RUSTはあっというま
感激してここにアップしました
今から勉強します

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

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

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



341 名前:デフォルトの名無しさん mailto:sage [2022/11/16(水) 18:02:43.41 ID:QMFF+6Ax.net]
そういうのは吊るを使う

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

343 名前:デフォルトの名無しさん mailto:sage [2022/11/16(水) 20:20:41.18 ID:Lkj73ShV.net]
.netでrustが使えれば無敵なのに

344 名前:デフォルトの名無しさん mailto:sage [2022/11/16(水) 21:13:44.67 ID:y4GxYc69.net]
GCのランタイム環境でRUSTは意味ないんじゃ?

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

346 名前:デフォルトの名無しさん mailto:sage [2022/11/16(水) 21:59:45.42 ID:/cIgFYP8.net]
.NETのライブラリが使いたいとかでは

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

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

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

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



351 名前:デフォルトの名無しさん mailto:sage [2022/11/17(木) 01:28:33.22 ID:MDHZgFO+.net]
C++ は未定義を踏むのがさすがに簡単すぎるのがいけない。

352 名前:デフォルトの名無しさん mailto:sage [2022/11/17(木) 01:54:53.99 ID:6uPAxih4.net]
>>330
これを徹底すればC++も問題ないよ

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

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

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

356 名前:デフォルトの名無しさん mailto:sage [2022/11/17(木) 05:39:30.88 ID:7vp/wPcJ.net]
>>347
具体的にはどういうケース?

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

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

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

360 名前:デフォルトの名無しさん mailto:sage [2022/11/17(木) 07:53:43.04 ID:HKu8SavS.net]
所有権やライフタイムがいらないならrustである必要ないのでは



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

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

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

364 名前:デフォルトの名無しさん mailto:sage [2022/11/17(木) 10:21:30.69 ID:oUYdn6MU.net]
>>357
Haskellの方が優れてるよ

365 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 17:50:50.73 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 17:57:22.15 ID:G2UZSnwT.net]
企業の人ってGitHub使えるのかな?
企業が使い始めたら増えると思うけど。

367 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 18:25:40.22 ID:nTmfkfcZ.net]
真の意味でホビーユーザーに支持されなきゃだめだよ

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

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

370 名前:デフォルトの名無しさん [2022/11/18(金) 19:00:57.54 ID:WkS6x7hj.net]
これか
https://i.imgur.com/QE0WMb7.jpg



371 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 21:08:51.27 ID:8iIh2nXZ.net]
C/C++の減少分がRustじゃね

372 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 21:48:16.28 ID:G2UZSnwT.net]
その説が正しい使い方気がした

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

374 名前:デフォルトの名無しさん mailto:sage [2022/11/19(土) 00:49:11.67 ID:UL/detO7.net]
いい加減スレ違いはやめろって

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

376 名前:デフォルトの名無しさん mailto:sage [2022/11/19(土) 09:49:20.36 ID:RDqVxLmi.net]
tscがRustだと書き直すのが難しいとか聞いたが

377 名前:デフォルトの名無しさん mailto:sage [2022/11/19(土) 10:48:30.65 ID:AeJpea+k.net]
>>370
tscをRustに一部移植
元のコードがGC前提だから全体の移植は大変なのでGoに変更
GoはGoで無駄な作業が多くて大変。やっぱりRustのほうが良かったのでRustに戻す

というのが今の状況
来年あたりまたGoに戻ってる可能性はあるが

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

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

380 名前:デフォルトの名無しさん mailto:sage [2022/11/19(土) 20:55:58.15 ID:LAn7MDSu.net]
解析してる間にどんどんtscの仕様は変わっていくよ



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

382 名前:デフォルトの名無しさん mailto:sage [2022/11/19(土) 22:17:39.01 ID:ibRUDL6T.net]
し難いのか不可能なのかどっちよ

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

384 名前:デフォルトの名無しさん [2022/11/19(土) 22:41:12.16 ID:yWSzX/NN.net]
>>377
なるほどなあ

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

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

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

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

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

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



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

392 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 01:12:16.21 ID:RgPem6BD.net]
見かけ上はインデックスアクセスでも最適化がかかると途中のアドレス計算はほとんど消滅してポインタでやるのとそんなに差はなくなるよ。
ポインタを露骨に使うのはコンパイラ技術の未熟さをプログラマに補わせてただけ。
十分に高い能力のコンパイラにとってはプログラマが細々とした効率のための指示をするのはむしろ最適化の邪魔になる。

全体の構成やアルゴリズムの話ならともかく、細々とした部分はコンパイラのほうが人間よりよっぽど賢いんやぞ。

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

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

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

396 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 09:27:21.62 ID:feChXjeV.net]
unsafeつかえばいいじゃん

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

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

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

400 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 14:06:00.71 ID:RgPem6BD.net]
>>391
> 必要となり

ならない。



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

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

403 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 14:16:00.87 ID:YFSLlDHr.net]
Rustで複雑なことをさせなければいい

404 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 14:19:02.05 ID:RgPem6BD.net]
>>396
> 遅い処理

遅くない。

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

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

407 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 14:20:23.64 ID:8zb5D3SN.net]
>>395
Vec使えばそんな不効率なことはせんよ

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

409 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 14:26:55.83 ID:9/YCbfcZ.net]
>>401
不可能。

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



411 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 14:31:49.56 ID:RgPem6BD.net]
>>404
imul は使われない。
関係ないものを持ち出しているのはそっち。

412 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 14:34:23.52 ID:8zb5D3SN.net]
この人大丈夫か?
なんか支離滅裂になってきてるが

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

414 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 14:48:48.34 ID:YFSLlDHr.net]
Rustで作ったdenoはなぜか遅いんだよな

https://dev.to/codesphere/bun-the-new-javascript-runtime-competing-with-deno-and-node-115d

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

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

417 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 15:06:31.98 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 15:15:31.54 ID:feChXjeV.net]
>>408
bunが速いのは、denoやnodejsではJSで書かれている部分がbunではzigで書かれていることや
JSエンジンのJITの段数の違いによるもので
rust関係ないという理解なんだけど

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

420 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 15:17:10.42 ID:feChXjeV.net]
>>392
どのレス?もっかい書いてよ



421 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 15:17:44.33 ID:9/YCbfcZ.net]
>>414
レスではなくスレ。
何度も書かない。

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

423 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 15:26:15.43 ID:feChXjeV.net]
>>415
スレのどのレスか教えてよ

424 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 15:26:41.67 ID:YFSLlDHr.net]
>>410
そっか、チューニング大事なんだな

425 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 15:30:49.96 ID:9/YCbfcZ.net]
>>417
検索してくれ。

426 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 15:34:04.94 ID:9/YCbfcZ.net]
>>416
nodeやdenoは余り知らないから。

427 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 15:39:36.41 ID:feChXjeV.net]
>>419
これのこと?
https://mevius.5ch.net/test/read.cgi/tech/1656285423/151

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

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

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



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

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

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

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

435 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 19:36:54.78 ID:feChXjeV.net]
>>426
じゃあなんでこのスレに書いてるの?

436 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 19:37:03.39 ID:feChXjeV.net]
>>428
普通に使えるよ

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

438 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 20:33:05.68 ID:Y0E2xhem.net]
単純なLinkedListのdropでstackoverflow
https://matklad.github.io/2022/11/18/if-a-tree-f

439 名前:alls-in-a-forest-does-it-overflow-the-stack.html

dropが再帰的に呼ばれそうなところでwarning出してくれたら嬉しいんだけどな
[]
[ここ壊れてます]

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



441 名前:デフォルトの名無しさん [2022/11/21(月) 17:12:12.72 ID:VM/mtrCu.net]
unsafeは甘え

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

443 名前:デフォルトの名無しさん mailto:sage [2022/11/21(月) 21:30:40.94 ID:rgJVysd6.net]
https://qiita.com/ohakutsu/items/5d290

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

445 名前:デフォルトの名無しさん mailto:sage [2022/11/21(月) 21:46:20.48 ID:bYPD5c9s.net]
テスト

446 名前:デフォルトの名無しさん mailto:sage [2022/11/21(月) 21:47:48.09 ID:bYPD5c9s.net]
お、書けたか

今日から勉強始めて Tour of Rust やってるんだけどなんか分かりづらいような...?
The Book からやったほうがいいのかな

447 名前:デフォルトの名無しさん mailto:sage [2022/11/21(月) 21:54:54.43 ID:sdhkglZS.net]
Haskellからやった方がいいかも

448 名前:デフォルトの名無しさん mailto:sage [2022/11/21(月) 22:00:50.98 ID:bYPD5c9s.net]
Haskell... モナド... うっ、頭が

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

450 名前:デフォルトの名無しさん mailto:sage [2022/11/21(月) 23:15:45.42 ID:SGMQ7SqF.net]
> Cをきちんと理解していない人が RUST が安全ですと言っても、説得力皆無ですね。

ここに完全同意できてしまうから
この話はもうそこで終わってしまう

批判された側は改善するか記事消すかして
態度で反省を示してほしいわ
ゴミ記事量産すなって話



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

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

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

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

455 名前:デフォルトの名無しさん [2022/11/22(火) 10:53:06.52 ID:iGHsIGH/.net]
コンパイル時評価の欠点
https://c3.handmade.network/blog/p/8590-the_downsides_of_compile_time_evaluation

Rustが攻撃されてる!許せねぇ!

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

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

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

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

460 名前:デフォルトの名無しさん [2022/11/22(火) 16:12:53.87 ID:7RPBFD0W.net]
>>451
はい

0..10はRange<i32>
impl<A> Iterator for Range<A> where A: Step
impl Step for i32



461 名前:デフォルトの名無しさん mailto:sage [2022/11/22(火) 17:02:18.19 ID:gDAAjuMT.net]
>>452
ありがとうございました

462 名前:デフォルトの名無しさん [2022/11/23(水) 08:39:00.67 ID:wkDaFc7P.net]
>>453
どういたしまして

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

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

465 名前:デフォルトの名無しさん [2022/11/24(木) 01:19:12.75 ID:4Rr7WzTC.net]
>>455
バージョンの差は問題にならないが日本語版と原文の差は大きい

英語が苦手で原文だと読むのに3倍時間かかるような人でも原文読む方がRustを理解するには圧倒的な近道

466 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 02:03:20.81 ID:7DmT43os.net]
英語が駄目って人は百倍かけても読めない。

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

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

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

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



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

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

473 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 11:37:21.52 ID:rSYd8nrB.net]
そういう難しいところに直に向かい合うための言語なので...

474 名前:デフォルトの名無しさん [2022/11/24(木) 12:37:17.60 ID:5MNsXfkj.net]
Typeshareが1.0になったけどどない?
https://github.com/1Password/typeshare

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

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

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

478 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 13:26:27.68 ID:rSYd8nrB.net]
やっぱり>>467の意見が正しいわ

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

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



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

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

483 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 14:31:48.71 ID:Td5Dmo+3.net]
日本語版ダメだよ

だったら直してよ

金出して訳してもらえ

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

484 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 14:36:47.65 ID:L4U2ehwP.net]
金出して本買え

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

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

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

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

489 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 15:23:14.78 ID:SV+v/fkD.net]
ここはRustスレなので、英語の話がしたいなら英語スレへ

490 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 15:33:59.04 ID:rSYd8nrB.net]
一方rustコミュニティはコンパイラのdiagnosticの翻訳者を募集していたのであった
https://blog.rust-lang.org/inside-rust/2022/08/16/diagnostic-effort.html

>>474はこういうのもやらない方が良いと思ってる?



491 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 15:36:53.62 ID:rSYd8nrB.net]
bookもどんどん翻訳するなら支援するとのこと
> We'd love help translating the book!

https://github.com/rust-lang/book

492 名前:デフォルトの名無しさん [2022/11/24(木) 15:41:27.99 ID:3VG0Xg5C.net]
とりあえず日本語で学びたいという人はちゃんとした日本語書籍を買って読むことをすすめる
とにかく最初からあの低品質の日本語訳読むのはオススメしない

ただThe Bookレベルの英語は読めるようにしないとリファレンスも読めないしStackOverflowや公式フォーラムも読めないからすぐ詰むよ

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

494 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 15:45:21.17 ID:B8EZvrTz.net]
>>484 前半、後半、ともに同意です

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

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

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

498 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 16:11:10.23 ID:rSYd8nrB.net]
>>489
残念ながらその態度はCoCに反するのでコミュニティで行動していけないのはあなたの方なんだよなぁ
https://www.rust-lang.org/policies/code-of-conduct

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

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



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

502 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 16:38:28.16 ID:WiL1nOOz.net]
Rust は崇高なものであるべき
みたいな人がいるんだな…

503 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 16:39:48.68 ID:t2djUU2z.net]
てかそんなやつばっかじゃん。プライド高くてさ。

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

505 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 17:36:37.60 ID:rSYd8nrB.net]
>>496
あなたの言う付加価値はローカライゼーションにまつわる固有事情の記事を追加せよという話だよね
付加価値があって初めて価値があるという発言は翻訳そのものには価値を認めてないんだから翻訳自体を全否定してるんじゃないの

あなたの発言は英語もできないやつは人間のカスだからrustに近づくんじゃないとしか読めないんだけど、解釈間違ってる?

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

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

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

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

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



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

512 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 18:16:33.16 ID:7DmT43os.net]
入門ってのは基本的な概念を知らん状態なわけだもんな。
母語の資料があってもそれなりにしんどいので英語は勘弁してつかぁさい。

基本理念がわかればそこから後はまあまあわかるよ。

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

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

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

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

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

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

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

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



521 名前:デフォルトの名無しさん mailto:sage [2022/11/24(木) 19:44:14.11 ID:wuF6EKEG.net]
いっそのこと日本語での書き込み禁止で

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

523 名前:デフォルトの名無しさん [2022/11/24(木) 19:52:52.93 ID:5MNsXfkj.net]
誤爆した恥ずかしい(*/□\*)
ちなみにこちらです↓
【バーチャルyoutuber】兎田ぺこら#254【ホロライブ/hololive】ID無し
https://egg.5ch.net/test/read.cgi/sugiuraayano/1669282879/

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

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

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

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

528 名前:デフォルトの名無しさん [2022/11/24(木) 20:46:18.83 ID:tqD1idY4.net]
あの日本語訳はこういうのが盛りだくさん

「最後の違いは、定数は定数式にしかセットできないことです。関数呼び出し結果や、実行時に評価される値にはセットできません。」

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

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

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



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

532 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 00:14:11.06 ID:9EBigD0X.net]
>>520
確かにいい訳ではないけど
理解できない原因は
専門用語をちゃんと理解していないことに
起因することが多い

この文も「定数」「定数式」「セット」が理解できれば
そんなに難しいことは書いていない

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

534 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 00:39:08.22 ID:+ImZ41H+.net]
>>524
誰かが理解できないって言ってた?

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

536 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 07:45:02.58 ID:HZEumDr5.net]
>>526
理解できるなら問題なくね?

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

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

539 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 08:11:39.93 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 08:12:56.32 ID:ROoDFC7c.net]
日本の商業技術書は中身がググるレベルのクソ雑魚なのはあるある
特に流行物はその確率が高く、下手すると同人技術書の方がマシまである



541 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 08:19:17.40 ID:8BzXPUw/.net]
日本での旧Xam○rinコミュニティの構図が思い出されます。
技術本位で勝負している人たちの大多数に見透かされましたからね。
Rust日本語訳勢の一部もそういう構図があるんですな。

英語苦手同士で助け合いましょ

わかる

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

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

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

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

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

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

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

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

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

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

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

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

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

549 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 11:33:46.83 ID:HP+HUenZ.net]
>>531
定数は定数式にしかセットできない

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

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



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

552 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 12:17:11.54 ID:9A6C+y48.net]
>>538
これでいいと思う。

553 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 12:21:48.12 ID:OY9VtEiW.net]
>>538
現状はそれでいいと思う

554 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 12:24:24.73 ID:tJ38pL4L.net]
>>541
かく乱しないで欲しい。

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

556 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 12:32:35.70 ID:3NnLJm/9.net]
マジで荒らすな
ここに来るな
単発Ngするぞ

557 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 12:32:54.94 ID:hG6NI52Y.net]
>>531
deepl下敷きにして修正すりゃいい。

最後の違いは、定数は定数式にのみ設定でき、関数呼び出しの結果や実行時にのみ計算される他の値には設定できないことです。

any otherが残念だけど、まあOKだろ。

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

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

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



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

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

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

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

565 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 13:02:05.70 ID:HZEumDr5.net]
>>541
そもそも
> 定数は定数式にしかセットできない

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

566 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 13:08:19.55 ID:ZVM62PVL.net]
>>556
このスレは何処かでまとめられてるの?

話題そらし:
旧Xam○rin(現MAUI)の話で言うと...
今構造体の勉強してんだけどユニット構造体ってどう言う時に使うの?
ところで>>541 はSF時間で仕事している人かな?
どっちが正しいんだ? []
[ここ壊れてます]

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

569 名前:デフォルトの名無しさん [2022/11/25(金) 13:31:54.44 ID:j44SSeWl.net]
>>557
be setだから下だろバカ

570 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 14:44:15.84 ID:wOyL9/CI.net]
>>555
???
>>550のどこにhelper要素ある?

マウントばかり取ろうとする役立たずの無能を底辺に組み込みたいというのは肯定するけど、
>>550がお人好しhelperというのは否定するわ。



571 名前:デフォルトの名無しさん [2022/11/25(金) 14:52:48.53 ID: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 名前:デフォルトの名無しさん mailto:sasge [2022/11/25(金) 15:02:34.88 ID:TzWxad5d.net]
>>557
https://www.enago.jp/academy/set-to-be/

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

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

575 名前:デフォルトの名無しさん [2022/11/25(金) 15:08:01.76 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 15:13:16.78 ID:TzWxad5d.net]
>>562
>set B to A (SVOC)…(イ)
>も
>A := B
set以外の動詞の英語の基本原則からするとその通りで、
動詞 A B

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

577 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 15:21:16.45 ID:HP+HUenZ.net]
>>565
バインドの主従が逆じゃね
定数は定数式しかバインドできない
const文の左辺が定数、右辺が定数式

578 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 15:22:45.12 ID:TzWxad5d.net]
>>567
[補足]
(例)
He gave me a chocolate. (1)
He gave a chocolate to me. (2)
は、原則的な意味としては同じ。ただし、meの様な代名詞の場合(1)で書くとは
聞いたことがある。
I assing 1 to X.
I assing X 1.
も同じ意味になるはず。
ところが、
I set X to 1.
は言えても、
I set 1 X.
は多分言えないような気がする。
英語は難しい。

579 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 15:26:46.87 ID:8N49L/hO.net]
力説中のところ申し訳ありませんが、大事なことだと思いますので。

日本語訳の方には、ページごとに原文の特定バージョンへのリンクがあると良いと思いました。

理由
>>531が持って来た原文が現在の原文
The last difference is that constants may be set only to a constant expression, not the result of a value that could only be computed at runtime.
と違うので、はて?と思いHistoryを調べました。

Committed on Jul 24, 2021
https://github.com/rust-lang/book/commit/05d9c4c2312a6542f792492d17a62f79ad6dfd7b#diff-babf686b8b57cc7dd67fd06d087303fe92115f8a5d9fd5dca7cef8645a25bb58R104

日本語版のトップに書いてある日付よりも多少ラグがありました。
https://doc.rust-jp.rs/book-ja/title-page.html
>このテキストのこの版ではRust 1.58(2022年1月13日リリース)かそれ以降が使われていることを前提にしています。

探すのは難しいことではありませんが、手間と言えば手間で、せっかくのcontributeの意欲を削ぎかねません。

580 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 15:35:57.85 ID:TzWxad5d.net]
>>569
どこの話なのかと思っていたが、
https://doc.rust-lang.org/book/ch03-01-variables-and-mutability.html
に書いてあるものだった。
こうなっているから、>>566の解釈で有っている気がする :

The last difference is that constants may be set only to a constant expression, not the result of a value that could only be computed at runtime.

Here’s an example of a constant declaration:

const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3;



581 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 15:41:09.30 ID:TzWxad5d.net]
>>571
[補足]
>const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3;
>The constant’s name is THREE_HOURS_IN_SECONDS and
>its value is set to the result of multiplying 60 (the number of seconds
>in a minute) by 60 (the number of minutes in an hour) by 3
>(the number of hours we want to count in this program).
と書いてあり、能動態に直すと
XXX set its value to 60 * 60 * 3.
となるから、
set A to B

A = B
の意味を伝達しようとしていると考えられて、裏づけが取れた。

582 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 15:45:19.49 ID:xaW1nBc4.net]
>>571,572
混乱の極みを見事に体現してる。原文見た方が良いでしょ?

583 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 15:55:04.06 ID:THLf878Z.net]
>>571,572
昨日の1.5倍の人か100倍の人かわかんないけど、原文見たら0.1倍だったね。

584 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 16:13:51.74 ID:scn2u8sN.net]
プログラム関連で出てくる単語とか限られているから、慣れたら英語でも速く読めるからね。

585 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 16:53:44.00 ID:BP7ibfc5.net]
>>553
いや、全くないが
「読むに値しない」とまで言い切ったからにはどんなすごい名訳が出てくるんかと気になっただけ

586 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 17:08:35.12 ID:N+Zpejdn.net]
>>576
×「読むに値しない」→名訳が出てくる
〇「読むに値しない」→原文を読む

587 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 17:37:57.21 ID:XtySliSs.net]
The Book日本語版、issueやPRが放置気味
https://github.com/rust-lang-ja/book-ja/issues
https://github.com/rust-lang-ja/book-ja/pulls
4人でメンテナンス?頑張ってる方かな?
https://github.com/orgs/rust-lang-ja/people

588 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 18:51:27.43 ID:bTqKud61.net]
日本語かどうかの話とちょっと逸れるけど
MDNのドキュメント初めて見たとき感動したな
親切というか見やすいというか

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/from
↑これは今てけとーにクリックして開いたページだけど
・最初の一行目付近で概要は十分掴める
・実行して試せる
・解説や例が充実

こーいうレベルまでまとまってると捗るよね

589 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 18:55:07.58 ID:HP+HUenZ.net]
>>579
標準ライブラリのrustdocとかこんな感じでは

590 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 19:51:17.64 ID:6Yi+j4c1.net]
英語できないやつはRust禁止でいいだろ



591 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 20:14:50.25 ID:HZEumDr5.net]
>>572
なるほど、なら

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.



最後の違いは定数には関数呼び出しの結果や実行時に計算される値ではなく定数式のみを設定できる事である

くらいかな

592 名前:デフォルトの名無しさん [2022/11/25(金) 21:44:29.00 ID:6OlwGlFl.net]
日本語訳読んだだけで秒で間違いに気付ける箇所を指摘したつもりだったんだがw

そうならないのは>>524が書いてるように「定数」「定数式」「セットする」「値」あたりの意味を理解してないってことなんだよね

593 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 22:47:54.20 ID:GlJDmObA.net]
> 確かにいい訳ではないけど
用語以前に誤訳なわけだが

594 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 22:51:14.61 ID:OHrntoLc.net]
>>547
RangeFullやSinkがunit-like struct
structの中身は空でtrait implのみ

でもそういう用途よりもジェネリックと一緒に使って状態を型で表現して
状態ごとに呼べる関数を制限したいときに使われることが多い
struct NotActivated;
struct Active;
struct Expired;
struct License<State> {…}
impl<State> License<State> {…}
impl License<NotActivated> {…}

595 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 23:36:14.56 ID:9EBigD0X.net]
原文がちょっと不親切ではあるな
これはいい、これは駄目という例を
挙げてくれれば文とかはどうでもよくなるのに

596 名前:デフォルトの名無しさん mailto:sage [2022/11/26(土) 07:16:42.40 ID:PBcpo5Pj.net]
さんざん他言語・多言語愛好者をこけにしておちょくり倒してヘイト集めまくって、
挙句の果てに寄ってたかって素人騙してたくせに、その歴史が消える訳ないだろ。
今度は被害者のふり。最近ちょっと大人しくして良い人ぶって許されたと思ったら大間違い。

597 名前:デフォルトの名無しさん mailto:sage [2022/11/26(土) 09:45:44.06 ID:jkgTkEQQ.net]
ちょっと何言ってるのか分からない

598 名前:デフォルトの名無しさん [2022/11/26(土) 13:29:02.11 ID:NN/Ee4C5.net]
「定数は定数式にしかセットできません」だけならともかく
「定数は関数の呼び出しの結果にはセットできません」
「定数は実行時に評価される値にはセットできません」
と重ねてダメ押しされてるのに間違いに気づかないのは致命的すぎるわな

599 名前:デフォルトの名無しさん [2022/11/26(土) 21:14:12.05 ID:WPAl7BZB.net]
翻訳者の能力の問題もさることながら体制がダメなんだろ

600 名前:デフォルトの名無しさん [2022/11/26(土) 23:30:38.96 ID:MK1npdNM.net]
1コードブロックに3つもバグが埋め込まれて本番環境で不具合でてるのに中の人は誰も気づかない状態

恐ろしい



601 名前:デフォルトの名無しさん mailto:sage [2022/11/26(土) 23:44:35.96 ID:cbpgSLEO.net]
>>582
「定数に定数式を設定」という言葉はsrcとdstがどっちなのかに曖昧さが残るので
「定数を定数式で初期化」または、
「定数に定数式を代入」
「定数=定数式のように初期化」
とはっきり書いたほうが分かり易い。

602 名前:デフォルトの名無しさん [2022/11/27(日) 02:00:12.48 ID:PMZ9qEdk.net]
日本語としてものすごく読みにくいとは思うが
どっちをどっちに設定するかという部分の曖昧さはないだろ

603 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 02:20:50.36 ID:uyoA8rg1.net]
タイムアウト時間を30秒に設定する
timeout_secondsに30を設定する

604 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 07:55:44.11 ID:azI8+vf1.net]
こんなところじゃなくて翻訳版bookのレポジトリで議論してきなよ

605 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 10:18:44.07 ID:8gJa+XiI.net]
個々人の生存戦略としてはそりゃ英語読めた方が良い

同意

コミュニティとしては裾野を広げるために各種言語のリソースは用意されてた方が良い

Rustコミュニティは英語に集中してリソース拡充してきている段階では?

翻訳版bookのコミュニティが、日本でのRustコミュニティとして中心的な位置を取りたいという野望でしょうか?
そんな求心力は無いと思いますが。

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

606 名前:デフォルトの名無しさん [2022/11/27(日) 10:36:54.77 ID:Zv27eWsM.net]
>>594
「30秒にはタイムアウト時間を設定できる」とか言わんやろ
英語を誤訳したやつみたいに日本語ネイティブじゃないやつが誤訳する可能性でも考えてんの?

607 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 11:01:37.30 ID:gXtPf0qn.net]
>>596 日本でのRustコミュニティとして中心的な位置を取りたいという野望
>>597 日本語ネイティブじゃないやつ

えっ、この二つリンクしてるのか?
なんとか協会とか資格試験を作るんですか?
そんなことしたら乗っ取りじゃないですか!
英語原文主義者でも捨て置きならないぞ!

608 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 11:59:56.08 ID:azI8+vf1.net]
>>596
>>482にもあるがすでに翻訳も拡充していこうとしている
というかローカライズにリソース割くのやめたところで英語版の執筆ペースが速くなるわけでもなかろう

609 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 12:31:41.07 ID:H/u9072G.net]
>>599
翻訳版bookの中の人ですね。
本家公認だからって、日本人作のcrate等で活躍している人達を差し置いて
日本Rustコミュニティの中心見たいな態度はどうかと思うぞ。

605: デフォルトの名無しさん sage 2022/11/27(日) 07:55:44.11 ID:azI8+vf1
こんなところじゃなくて翻訳版bookのレポジトリで議論してきなよ

610 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 12:41:05.07 ID:iW9ldzKP.net]
>>ID:azI8+vf1
こんなところでリクルート活動してないで率先してガンガン品質向上しろよ

本家の代弁者見たいな顔するな。
説得力ゼロ



611 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 12:48:50.89 ID:f1nHPrCO.net]
クスクス

612 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 13:27:25.24 ID:/KqYda7b.net]
おれ、この気持

613 名前:ソ共感できる
>日本人作のcrate等で活躍している人達を差し置いて

これだけは断固反対
>なんとか協会とか資格試験を作るんですか?

翻訳版book中の人は、やらないと誓約する必要がある
[]
[ここ壊れてます]

614 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 13:59:45.41 ID:WnQW1xBa.net]
翻訳議論スレ作れよ

615 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 14:35:21.35 ID:azI8+vf1.net]
>>600
ちょっと思い込みが激しすぎやしないですかね
こんなところで翻訳案議論しても何の役にも立たないからせめてコントリビューションして来なさいよという意味

616 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 14:44:21.27 ID:obDxoM1f.net]
横失礼します。
>>603そのものは共感に値します。
>>605さんも同感ですよね?

617 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 15:01:53.97 ID:uyoA8rg1.net]
低レベルな内容ほど議論が紛糾する
英語ではbikesheddingと言います

618 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 15:41:13.95 ID:Cs02dWTs.net]
>>585
どうもありがとう
なんかスレが殺伐としてるね

619 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 16:55:26.99 ID:uHmuK07x.net]
>>597
30秒などの具体的な数値が有る場合には誤解は無い。ところが、
「XをYに設定する。」と書いた場合、
X=Y
Y=X
のどちらにも解釈可能。

620 名前:デフォルトの名無しさん [2022/11/27(日) 17:09:13.26 ID:N296u3Hi.net]
>>609
「XにはYを設定できる」や「XにはYのみ設定できる」という文がY = Xの意味にとれるのか?

日本語ネイティブじゃない人には分かりにくいというのなら理解できなくもない



621 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 17:16:08.15 ID:TRua3A2I.net]
>>610
>>520はそのどれでもなくて「XはYにしかセットできない」の形式だけど
これはどう思う?

622 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 17:17:31.45 ID:F7pPowDS.net]
怪しい部分も大半は文脈と照らし合わせつつコード読めば理解できるレベルの翻訳なのに一々文句付けるぐらいなら翻訳に参加した方が早いのでは?としか思わない

623 名前:デフォルトの名無しさん [2022/11/27(日) 17:20:04.83 ID:ZSA0r6oY.net]
まあそんな些細なことよりさ
項目が抜けてるところに<未翻訳の項目があります>って表示したら、かなり親切になるんじゃないかな

624 名前:デフォルトの名無しさん [2022/11/27(日) 17:26:26.85 ID:97SCWnfr.net]
>>611
どう思うも何も>>520はダメだろ
間違った逆の意味にしか取れないよ
そこに異論がある人はいなくね?

625 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 17:29:51.04 ID:uHmuK07x.net]
>>610
日本語訳では、「定数は定数式にしかセットできない」と書いてあるので、
定数=定数式 (1)
定数式=定数 (2)
のどちらにも解釈可能。
しかし、原文読むと正しいのは、(1)。

626 名前:デフォルトの名無しさん [2022/11/27(日) 17:32:52.38 ID:BVKfKgFe.net]
>>612
ちゃんと読もうとすればほぼ原文全部読まないといけない品質だぞ
あの日本語訳に飛びつくやつがそんなことするとでも思ってるの?

627 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 17:33:05.29 ID:lJvzY49o.net]
google翻訳にかけたらそうなったんだから、しょうがないだろ
という事では

628 名前:デフォルトの名無しさん [2022/11/27(日) 17:47:05.67 ID:UmH2UGTE.net]
>>615
定数や式についての知識が全くない人か
日本語ネイティブじゃない人でなければ
(1)の解釈は無理

629 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 17:58:03.70 ID:Tzlpv0SL.net]
>>611
>>582 の話じゃないのか?
なぜ今更 >>520 の話なんてしてるんだ?

630 名前:デフォルトの名無しさん [2022/11/27(日) 18:01:08.13 ID:AOVlF7rL.net]
>>617
ところがgoogle翻訳のほうがマシな場合も多々あるんだよこれが



631 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 18:48:05.90 ID:WjtNHhGH.net]
ざっと見た感じこの流れが気になる。こんなの秒で同意できるのに。

613: デフォルトの名無しさん sage 2022/11/27(日) 13:27:25.24 ID:/KqYda7b
おれ、この気持ち共感できる
>日本人作のcrate等で活躍している人達を差し置いて

これだけは断固反対
>なんとか協会とか資格試験を作るんですか?

翻訳版book中の人は、やらないと誓約する必要がある

615: デフォルトの名無しさん sage 2022/11/27(日) 14:35:21.35 ID:azI8+vf1
>>600
ちょっと思い込みが激しすぎやしないですかね
こんなところで翻訳案議論しても何の役にも立たないからせめてコントリビューションして来なさいよという意味

616: デフォルトの名無しさん sage 2022/11/27(日) 14:44:21.27 ID:obDxoM1f
横失礼します。
>>603そのものは共感に値します。
>>605さんも同感ですよね?

632 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 18:52:53.78 ID:WnQW1xBa.net]
翻訳の話題NG
想像以上の闇がありそう

633 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 19:05:09.68 ID:vnIlphb/.net]
今の状態でいきなり協会が立ち上がったら遺恨を残すだけ。

634 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 19:25:30.10 ID:oBBhjDqK.net]
てか現状の雑翻訳の張本人=英語マウント君の可能性すらある

635 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 20:48:36.17 ID:Bc2lJjRX.net]
rust-jpあたりに私怨ある人が盛り上がってる感じかな
お大事に

636 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 21:42:32.15 ID:lFtjfrKw.net]
書いてもないことを勝手に読み取って燃え上がるタイプっぽいからいろいろ大変そうだね…

637 名前:デフォルトの名無しさん [2022/11/27(日) 21:46:47.14 ID:ZNWbm5aC.net]
次スレのテンプレから
日本語訳へのリンクは削除で
>>980

638 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 22:01:49.36 ID:WnQW1xBa.net]
翻訳の話題禁止も追加しといてくれ

639 名前:デフォルトの名無しさん [2022/11/27(日) 22:07:24.37 ID:berpMXHg.net]
協会立ち上げるならRust検定も必要だろね。

640 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 23:00:31.47 ID:N2XeKp1i.net]
協会立ち上がったらRustの保証範囲内で国内法損害賠償に応相談?



641 名前:デフォルトの名無しさん [2022/11/27(日) 23:11:10.98 ID:berpMXHg.net]
プログラムに起因する損害を全て保証すれば、Rustの名声も高まるだろうな。

642 名前:デフォルトの名無しさん [2022/11/27(日) 23:12:33.38 ID:berpMXHg.net]
Rustにおいてコンパイルを通るとは、すなわちバグが無いと保障されること。
と宣伝してたからな。

643 名前:デフォルトの名無しさん [2022/11/27(日) 23:14:15.63 ID:berpMXHg.net]
Rustサムライという映画があったような。

644 名前:デフォルトの名無しさん mailto:sage [2022/11/27(日) 23:29:35.46 ID:NsWs/3+t.net]
rustの勉強に前に英語の勉強を

645 名前:デフォルトの名無しさん [2022/11/27(日) 23:44:50.88 ID:berpMXHg.net]
日本が世界に誇るRust言語。

646 名前:デフォルトの名無しさん [2022/11/28(月) 08:14:55.76 ID:u/1oLUrZ.net]
リンクトリストやグラフ構造が地獄という話題に戻ろう
GC無し言語のRuneはrelationという機能で解決してて素晴らしいのではないでしょうか?
有向グラフのコード例↓
https://github.com/google/rune/blob/main/doc/rune4python.md#the-directed-graph-example

647 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 09:39:33.33 ID:MVujw8Ga.net]
>>636
その言語が何を保証しているのか解説よろ

648 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 09:52:18.49 ID:sJQkfuAF.net]
>>633
ググったら何かいそうなのww

649 名前:デフォルトの名無しさん [2022/11/28(月) 11:16:45.67 ID:BYOiineU.net]
>>585
このジェネリック使った静的チェック付きのStateパターンは他の言語では見ないんだがRustと同じように実装できるんだろうか?

650 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 11:26:51.11 ID:VpBGmQkI.net]
>>636,639
保証がないなら無意味なのでは



651 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 11:48:49.74 ID:ysUCvAXy.net]
>>639
C++で言うところのタグディスパッチ

652 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 11:51:10.38 ID:cwhW39fK.net]
>>640
保証の有無は分からないんだけど、
仮になかったとしても、rustのunsafeと同じでプログラマの責任で自由にできる部分があるのは意味のあることでは

653 名前:デフォルトの名無しさん [2022/11/28(月) 12:37:21.67 ID:B8Z/qDA7.net]
>>641
タグディスパッチの場合はある状態がサポートしない操作もオーバーロードできるように書かないとダメじゃない?
それだと他の言語の一般的なStateパターンの実装方法と基本的には同じ

654 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 13:02:49.16 ID:wvJe/vpd.net]
>>643
一般的なStateパターンではなく、静的チェック付きのStateパターンだと何が保証されるのですか?

655 名前:デフォルトの名無しさん [2022/11/28(月) 14:37:02.92 ID:goiShTMa.net]
>>644
ある状態でサポートされてない操作を呼び出す(可能性のある)コードはコンパイル通らない
ジェネリックを使わない形の静的チェック付きStateパターン実装は他言語でもよく見るよ

656 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 15:00:23.08 ID:pom2iae5.net]
>>645 全体的にちょっと回りくどい表現で理解できません。

>>645は、Rustではコンパイルが通れば実行時エラーが起きない事が保証される、
という事を言っているのでしょうか?
(他の言語との比較ではなく)

657 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 15:00:27.21 ID:pom2iae5.net]
>>645 全体的にちょっと回りくどい表現で理解できません。

>>645は、Rustではコンパイルが通れば実行時エラーが起きない事が保証される、
という事を言っているのでしょうか?
(他の言語との比較ではなく)

658 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 15:01:45.50 ID:pom2iae5.net]
すみません。マウスのチャタリングかな。。

659 名前:デフォルトの名無しさん [2022/11/28(月) 15:23:59.23 ID:mX/IntZU.net]
>>646
Stateパターンに明るくないようならthe bookに2種類のStateパターンの実装が出てるので読んでみて
https://doc.rust-lang.org/book/ch17-03-oo-design-patterns.html

1つめの実装はある状態でサポートされない操作が呼び出されたら何もせずselfを返したり空文字列を返したりしてる
2つめの実装はある状態でサポートされない操作を呼び出すコードが有ればコンパイルエラー

>>585のやり方は2つめの実装をジェネリックとmarket typeを使ってPost<Draft>みたいな形にするもの

660 名前:はちみつ餃子 mailto:sage [2022/11/28(月) 15:38:39.29 ID:26iHAu1B.net]
Modern C++ Design で Policy と呼ばれているパターンに近くない?
基本的な言語機能が違うので単純に比較はできないかもしれないけど。



661 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 16:45:22.66 ID:gmgHbWWJ.net]
>>649 ありがとうございます。おかげ様で理解が深まった気がします。

>>645が言っていることから理解したこと
静的"型"チェックの出来る言語なら適切なStateパターン実装を用いれば、
各状態に対応した型に実装されていない操作をコンパイルエラーで検出できる。

>>645が言及を意図的に避けている単語
保証

662 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 17:30:33.44 ID:CGc28UZt.net]
ん〜、Rustで保証を持ち出さないんだったら、>>639=653?は何をマウントしようとしたのかすら不明
あと655は別人じゃね?

663 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 17:41:27.83 ID:/aP8eVMy.net]
話の流れとは全く関係無いが、
twitterでは、rustで検索するとゲームが多数を占めてしまうので問題だが、
rustlang lang:ja
で検索すると割りと上手く行く。

664 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 17:53:52.03 ID:x/Rrw6wy.net]
ググったら一発で出てきた

doc.rust-jp.rs/rust-nomicon-ja/
>また、様々な種類の安全性や保証についてもたくさん説明します。

665 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 18:00:25.08 ID:JOAT4gaO.net]
>rust-jpあたりに私怨ある人
こんなやついるのか?保証に敏感な人はrust-jpの何を拗らせたの?濡れ衣でしょ

666 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 18:15:54.07 ID:hRO2AtDN.net]
言及する価値無し

667 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 18:19:33.94 ID:9jvbe+te.net]
誰もYesかNoか答えない(含む自分)5chアンケート調査

Rustではコンパイルが通れば実行時エラーが起きない事が保証される

(ちなみに拗らせてないしrustjpに私怨ありません. >>625のデマでは)

668 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 18:33:51.31 ID:LDNjf6uN.net]
実行時エラーを心配するって、どういうレベルの人たちだよ

669 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 18:35:25.02 ID:kKtU7ET1.net]
「Rustではコンパイルが通れば実行時エラーが起きない事が保証される」
これ自体が大嘘だろう?I/Oのある呼び出しは必ずRuntimeパニックの可能性があるし、実行時エラーが起きない事が保証されるのは
一部の実行時エラー(主にメモリー関連、例:配列インデックス範囲外など)であり、unsafeでもチェックが働く部分を強調してるだけ

670 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 18:47:02.30 ID:cwhW39fK.net]
そんなに慌てて連投なさらなくても大丈夫ですよ
おちついてください



671 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 18:48:22.90 ID:/aP8eVMy.net]
RustがC++に勝るのは(原因特定の難しい)メモリー関連バグが防げるというだけで、
その他のバグは防げない。
しかも、メモリー関連バグですら、実行段階で始めて発覚するものがRustでも
有りえる。ようは、メモリー関連バグの原因特定がし易くなるというだけで、
メモリー関連バグを綺麗さっぱりなくせるという意味ですらない。
また、FORTRAN、BASIC、Perl、Ruby、PHP、Java、C# などはメモリー安全で
メモリー関連エラーは発生しないが、古来、バグはいくらでも入る。

672 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 19:09:17.89 ID:sJQkfuAF.net]
twitter で検索するのって若者かな。
欲しい情報にたどり着けるのだろうか。
https://togetter.com/li/1977794
これを思い出した

673 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 20:00:00.32 ID:nxIypHTQ.net]
The Book にコンパイルは通るけど実行時エラーが出る例あるじゃん、何の話をしてるの?

674 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 20:03:31.87 ID:Wp/I5FPo.net]
実行時エラーが起きないことが保証されると書かれている公式サイトのURLを下さい
文脈も合わせて読まなければ判断できないので
日本語で引用しているということは誤訳の可能性もあるし

675 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 20:04:25.28 ID:ptllJlnS.net]
>>661
>古来、バグはいくらでも入る。
Rustでもバグfixが追いつかない実例->lapce
code editorは数人(+ごく稀なcontributor)で対応するには余りにも複雑なプログラムだと思う。

676 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 20:07:06.18 ID:TT/P6KwG.net]
他の言語ってインターフェースを関数から返せるっけ?
Rustはトレイト返せるけど

677 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 20:09:20.88 ID:ptllJlnS.net]
https://github.com/lapce/lapce/issues

他スレで上がってたのを思い出して見てみたら放置されてた
https://github.com/lapce/lapce/issues/1668

678 名前:デフォルトの名無しさん mailto:sage [2022/11/28(月) 21:13:58.78 ID:2w53O7+w.net]
>>664
文脈あって範囲を限定すると今度は証明が~となるので、そうなると正直判断できない。
結局大雑把な文脈での話しか出来ない自分です。

679 名前:デフォルトの名無しさん [2022/11/28(月) 21:38:31.45 ID:LooEy8MN.net]
>>666
返せるでしょ
むしろRustはなんで直接trait返せないんだ?ってなるのが普通

680 名前:デフォルトの名無しさん [2022/11/29(火) 00:09:28.41 ID:zwTDTYOm.net]
これ一番速いのはいいんだけどなんでバイナリサイズGoの倍もあるんだ?そこが不服だわ
https://ecostack.dev/posts/wasm-tinygo-vs-rust-vs-assemblyscript/



681 名前:デフォルトの名無しさん mailto:sage [2022/11/29(火) 00:28:33.22 ID:fvnZTYNV.net]
>>670
GoじゃなくてTinyGoだから別コンパイラじゃないのか?
しらんけど

682 名前:デフォルトの名無しさん mailto:sage [2022/11/29(火) 00:29:24.71 ID:bjuqnrsq.net]
確かに。GC無いから転送サイズ小さくなる、と言う触れ込みは再考の必要があるのか。
https://i.imgur.com/nCVoHXW.png

683 名前:デフォルトの名無しさん [2022/11/29(火) 00:40:07.72 ID:zwTDTYOm.net]
なんかこうやって纏められるとAssemblyScriptがわりと高いレベルでバイナリサイズ・実行速度・メモリフットプリントのバランス取れてていい感じがするな
wasmターゲット専用言語だからセットアップ単純だし
Rustはwasmターゲットだと若干セットアップ手間だけど速度は文句無しだからバイナリサイズだけせめてGoよりは小さくなってくれ
てかGo(TinyGo)よりサイズが必要な道理はないよな?
まさかデバッグビルドか何かかしら?

684 名前:デフォルトの名無しさん mailto:sage [2022/11/29(火) 00:51:42.61 ID:GvyrOa7B.net]
randじゃね?
Math.randomで揃えたほうが意味のある比較が得られるかも

685 名前:デフォルトの名無しさん mailto:sage [2022/11/29(火) 01:20:35.39 ID:zkGFWomx.net]
これが最新情報かどうかわからないけど、wasm-bindgenに対応していないかも
https://blog.logrocket.com/comparing-random-number-generators-rust/
>Note: Unlike JavaScript, there is no Math.random method equivalent currently available in Rust.

randの方は、これで行けた
[dependencies]
wasm-bindgen = "0.2.63"
rand = {version = "0.7", features = ["wasm-bindgen"] }

デバッグビルドの心配はなさそう
https://i.imgur.com/Y1Cut3b.png

686 名前:デフォルトの名無しさん [2022/11/29(火) 07:42:30.08 ID:SJ6gC8Ff.net]
>>670
https://zenn.dev/dozo/articles/14b76b561f3b45

687 名前:デフォルトの名無しさん mailto:sage [2022/11/29(火) 10:50:30.64 ID:kK2YPnkZ.net]
>>676のリンクには
>WebAssemblyを使う上で、最早定番となっているwasm-pack, wasm-bindgenだが、これらを使うことでサイズが小さくなる。
と書いてあって、>>670の手法と同じ

今は
サイズ我慢で速度重視→Rust
トータルバランス重視→AssemblyScript

AssemblyScriptでループアンロール→最強の可能性

688 名前:デフォルトの名無しさん mailto:sage [2022/11/29(火) 18:52:25.76 ID:K9a8IO+l.net]
文脈を限定すると答えられる5ch意識調査

RustはGC無いから○○では○○が有利/不利。自由に○○を埋めてください

689 名前:デフォルトの名無しさん mailto:sage [2022/11/29(火) 18:55:24.50 ID:t+w4gnFQ.net]
次スレはワッチョイ付けとくか

690 名前:デフォルトの名無しさん mailto:sage [2022/11/29(火) 19:25:03.39 ID:KYdU3S5N.net]
>>679
次スレ待たなくていいからワッチョイスレ建ててよ



691 名前:デフォルトの名無しさん mailto:sage [2022/11/29(火) 19:54:15.57 ID:VRBW4+C+.net]
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/

あるやん

692 名前:デフォルトの名無しさん mailto:sage [2022/11/29(火) 20:07:43.93 ID:oIl8dOKJ.net]
>>681
表面的にはひどい荒らしスレに見えますが、ワッチョイなしスレに誘導したい思惑でしょうか

693 名前:デフォルトの名無しさん mailto:sage [2022/11/29(火) 20:14:44.32 ID:VRBW4+C+.net]
スレタイしかみてないから知らんがな (´・ω・`)

> ワッチョイなしスレに誘導したい思惑
ここがそうなんだけど、どういうこと???

694 名前:デフォルトの名無しさん mailto:sage [2022/11/29(火) 20:25:34.24 ID:XdsjIrxf.net]
次回からこう聞くように

限定された文脈なのに誰もYesかNoか答えない(含む自分)5chアンケート調査

RustはGC無いからwasmでは転送サイズ小さくなる可能性がほぼほば100%

695 名前:デフォルトの名無しさん mailto:sage [2022/11/29(火) 20:44:54.77 ID:CCXgN4qQ.net]
>>684
何と比べてるのか限定されていません。

RustはGC無いからwasmでは、GC付き言語のGoと比べて転送サイズ小さくなる可能性がほぼほば100%

これだと大嘘です。GCマウント禁止

696 名前:デフォルトの名無しさん mailto:sage [2022/11/29(火) 23:14:29.40 ID:JTTSm0Nf.net]
ワッチョイでスレが健全化された例ってあるん?

697 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 01:36:38.11 ID:CGVOYd9m.net]
新規ワッチョイスレを他言語比較マウント禁止のスレとして立ててくれませんか?

複オジがマウントするから荒れるわけなので、こちらは隔離スレ
こちらの隔離スレではたぶん複オジが嘘つきマウントし放題だけど、心ある人が都度、嘘認定をする流れで

698 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 08:15:37.71 ID:zxU0c19+.net]
>>686
自分は知らないな。原理主義者の言論弾圧に使われるのがオチ
センシティブな話題も客観的に議論できるようになった例は見たことない

699 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 08:41:56.63 ID:5hu//ubR.net]
スレは健全化しないけど、NG指定が簡単になるからchリーダー使用者の恩恵は大きい。

700 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 08:50:23.49 ID:JOQsrdYp.net]
やる気のある荒らしにとってはワッチョイスレの方が自作自演やりやすい



701 名前:デフォルトの名無しさん [2022/11/30(水) 08:52:45.01 ID:G7Z4SD5Z.net]
>>680,687
自分で立てなよ

702 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 09:59:30.85 ID:GLbLL33e.net]
翻訳論議が一段落して、次はワッチョイ論議
つまりこのスレは話題があんまり無い

703 名前:デフォルトの名無しさん [2022/11/30(水) 10:15:08.01 ID:oBo+tKG7.net]
リンクトリストやグラフ構造が地獄という話題に戻ろう

704 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 11:14:03.81 ID:i6HTre51.net]
>>689
論理的な主張をする人が消えるからデメリットはかなりある

>>690
ほんそれ。ワッチョイ入れると情報リテラシーが低い奴の比率が増えて荒らしにとっても
議論を誘導しやすく都合が良い
ワッチョイ導入したスレはネガティブダメ絶対で盲目信者の巣窟と化した所ばかりだわ

705 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 11:39:08.76 ID:zgBPYpzJ.net]
>>694
C++相談室 part162
https://mevius.5ch.net/test/read.cgi/tech/1667194175/

を見る限り、論理的一貫性をもった主張の出来る人ほど、コテハンやワッチョイを長期間維持しているように見えます。

ワッチョイスレを否定したり、建てられても過疎化させようとしている人の側に複オジおよび複オジ軍団?がいると思います。

706 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 11:45:59.09 ID:GLbLL33e.net]
そのスレ、先週の木曜から丸1週間
連想配列とハッシュについて、用語の使い方でもめててカオスなんだが

707 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 12:04:15.09 ID:/jkyAEdJ.net]
だから、>>686,688,690,694がその、複オジおよび複オジ軍団?、の工作だと思われ
C++スレにも複オジ軍団が居て、事実を捻じ曲げておちょくってる

ワッチョイはブラウザ次第で結構似たものになるので、他の板で実験してから紛らわしいワッチョイになるようにして工作している

もっと効果の高い、地域表示があるワッチョイスレ、どうやって立てるのか教えてくれ

708 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 12:13:40.18 ID:cmtce+MC.net]
複オジ軍団はここしばらくは他スレを荒らして、このスレではバレバレな潜伏しているのはなぜ?

709 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 12:15:14.45 ID:jPWRqkwi.net]
自作自演できないとめっちゃ困るヤツがいるみたいだなw

710 名前:デフォルトの名無しさん [2022/11/30(水) 12:23:21.21 ID:2gwAbMS9.net]
>>693
じゃ、まずRustで書いた地獄のようなコードを公開しようか



711 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 12:23:29.98 ID:OzkchGTR.net]
地域表示があるワッチョイスレ、これでいい

712 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 12:39:01.46 ID:pEwW8jKj.net]
このスレ他の荒らされスレも自衛のために地域表示があるワッチョイスレを導入するべき

713 名前:デフォルトの名無しさん [2022/11/30(水) 12:39:21.42 ID:IuI5QH4S.net]
test
hobby23.net/archives/wacchoi-ng/
ID+W
!extend:checked:vvvvv:1000:512
ID+IP
!extend:checked:vvvv:1000:512
ID+W+IP
!extend:checked:vvvvvv:1000:512

714 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 12:52:42.68 ID:AuqILHPE.net]
ワッチョイを入れるともっともらしい事を書きつつ論理性のない奴ばかりになるんだよな

715 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 12:58:59.97 ID:pEwW8jKj.net]
でも地域コロコロは相当な手間だろうから効果的

716 名前:デフォルトの名無しさん [2022/11/30(水) 13:15:44.12 ID:qQx/nUVl.net]
いやいやw
ボタン一押しで変えられるからw

717 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 13:22:01.95 ID:UkkEZSxh.net]
>>706 複オジ軍団おつ
本当にそこまでしてると犯罪集団の疑いがかかるよ
大人しく納得してよ

718 名前:デフォルトの名無しさん [2022/11/30(水) 13:31:07.04 ID:RA9ND8/X.net]
>>695
まともなスレなのかと思ってみたら予想以上に酷かった
NGが捗るのだけは間違いない

719 名前:デフォルトの名無しさん [2022/11/30(水) 13:33:05.03 ID:HgZFIyO3.net]
>>707
おいおいw
複オジ軍団に入れるなよ
リテラシーの低さを指摘してやっただけだぞ

つか複オジに軍団がいるわけないじゃんw

720 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 14:33:18.63 ID:bBS0BhSp.net]
そう思ってよく見ると、これ軍団?なのかは知らないけど

C++相談室 part162
https://mevius.5ch.net/test/read.cgi/tech/1667194175/392-393

アウアウウー Sa5b-*
ちょくちょく話の腰を折るのが楽しくて仕方ない、ポエオジに見えてきた



721 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 15:11:10.30 ID:WOTWHh4+.net]
その人競プロスレにもいる
そのワッチョイだとよそ者扱いなの気づいてないかも
その仲間もいる

722 名前:デフォルトの名無しさん [2022/11/30(水) 15:45:12.01 ID:pJupgOvS.net]
アウアウウーはNGにしてるわ
同じやつかもしれんがロクなやついないので

723 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 16:09:27.62 ID:luaLXMjy.net]
>>697
妄想乙。陰謀論とかすぐに信じちゃいそうだから気をつけような

724 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 16:26:36.69 ID:C5ItOzWN.net]
C++スレ、だいたい見分け付くから安心して

725 名前:デフォルトの名無しさん [2022/11/30(水) 16:45:35.81 ID:Wzirhnl9.net]
そこに某オジが混ざってるのは確か

726 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 19:27:06.50 ID:FAHQHXzj.net]
ワッチョイ導入を吠える奴に限ってワッチョイコロコロだよな

727 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 19:33:03.35 ID:VjUnhy87.net]
オイコラミネオの方が特徴を出している

728 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 19:47:27.00 ID:wYxb0V08.net]
競プロスレではオイコラミネオがマウントしてアウアウウーがたしなめてる?

729 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 20:19:35.44 ID:30W6u2RH.net]
オイコラミネオはかのMAUIと意気投合してる

WPF(.NET, WinUI) GUIプログラミング Part30
https://mevius.5ch.net/test/read.cgi/tech/1667010874/279
279: デフォルトの名無しさん sage 2022/11/26(土) 11:06:15.13 ID:1ldKsJnP

これの少し上(265以降)からx:Nameの話のやり取り。質問者は別人で知ったかしてるのがオイコラミネオ

ID:1ldKsJnP == ID:1ldKsJnPM (オイコラミネオ MMab-ykd8)
hissi.org/read.php/tech/20221126/MWxkS3NKblBN.html

730 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 20:25:16.86 ID:dptuEtJz.net]
オイコラミネオ語録
天才
漏れ
のであった
のであっる



731 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 20:50:59.01 ID:D0f5nOYN.net]
語録 意味論+のであった コンボ

次世代言語29 TypeScript Swift Go Kotlin Rust Nim
https://mevius.5ch.net/test/read.cgi/tech/1663409149/352
352: デフォルトの名無しさん sage 2022/09/22(木) 06:32:39.62 ID:KYC2ssXj
>>333
意味論(semantics)はコンピューターサイエンスでは常識かつ必須のものであり
今回のような証明においてももちろん不可欠のもの
そして>>309の論文を見てみたら当然のように今回の核心部分で意味論(semantics)が出てきている
皆が言及しているのも当然なのであった

732 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 20:56 ]
[ここ壊れてます]

733 名前::14.68 ID:xA9q89X1.net mailto: こういう単発ガイジの対策になるわけですよ []
[ここ壊れてます]

734 名前:デフォルトの名無しさん mailto:sage [2022/11/30(水) 20:58:56.08 ID:3owZWjDR.net]
Doc本家代弁者の思い込み? 本スレ ID:rSYd8nrB

>>482: デフォルトの名無しさん sage 2022/11/24(木) 15:33:59.04 ID:rSYd8nrB
一方rustコミュニティはコンパイラのdiagnosticの翻訳者を募集していたのであった
https://blog.rust-lang.org/inside-rust/2022/08/16/diagnostic-effort.html

>>474はこういうのもやらない方が良いと思ってる?

735 名前:デフォルトの名無しさん [2022/11/30(水) 23:53:41.68 ID:BfCpCYnc.net]
これは他の開発環境でもよくあることだけど、こんなの訳されたらググりづらくなるだけじゃねえのか

736 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 00:17:38.55 ID:8yYXZOAf.net]
rustcの場合はURLやエラーコード出るからメッセージが日本語でも特に支障はないのでは

737 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 08:02:15.14 ID:CTIQwGqT.net]
英語のメッセージでググっても中身のないアフィカス日本語サイトしか出てこないようになっているからどっちもどっち
日本語のメッセージがアフィカスサイトを上回るならメリットあるね

738 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 10:50:28.62 ID:aRdHv5SW.net]
昨日のヒントで掘ったら、某オジがなんでPerl偽装するほどハッシュを拗らせてるのか分かった

739 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 12:18:36.87 ID:C8o9eLrx.net]
すごく久しぶりにRust関連みたらめっちゃ荒れてんのな。
一体何で揉めてんの?

740 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 13:18:45.22 ID:hut8tsqa.net]
翻訳の話題になると単発Rustガイジが急に湧いてきたから
そこに関わって雑に扱われた人なんだろう
私情がむき出しになってる
怖い怖い



741 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 13:36:00.00 ID:fiJuDPd3.net]
そうかな?おれは某オジが公式のお手伝い的立ち振る舞いをする事が迷惑

742 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 13:40:04.93 ID:QSGflsTk.net]
↑単発Rustガイジ

743 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 13:48:38.39 ID:LRCAz4YI.net]
オイコラミネオさ~ん、別室で呼ばれてますよ~

744 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 14:10:19.16 ID:+8V7DDLQ.net]
オイコラミネオさ~ん、先生がお待ちですよ! #確率的探索中

745 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 14:15:29.05 ID:p39MirQK.net]
オイコラミネオさん、じゃあ始めますね~

746 名前:デフォルトの名無しさん [2022/12/01(木) 14:17:59.07 ID:qbMIrOAL.net]
言われてみれば低品質翻訳オジと某オジは言葉使いが似てるな

747 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 14:33:23.35 ID:o5v4IIF+.net]
おれは某オジがそういうフリをしている可能性を問題視してる

748 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 14:39:13.55 ID:jvRfhEdy.net]
私怨論に話をそらせたいのが某オジ >>625,729

749 名前:デフォルトの名無しさん [2022/12/01(木) 14:47:44.37 ID:FTdOeqRZ.net]
rust-jpに私怨てw
自意識過剰もいいところ

750 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 14:58:55.31 ID:KbSqTJy2.net]
#オイコラミネオさ~ん、知らない事は調べてきて答えてくださいね!
当分の間はコロコロ禁止ですよ!
お友達もあとから呼び出しがありますから伝えておいてくださいね!



751 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 15:18:16.92 ID:QSGflsTk.net]
ここまで単発Rustガイジ
もうおわりだよこのスレ

752 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 15:27:01.81 ID:3qQOITc+.net]
お友達さ~ん、ま~た数学拗らせて~
Rustの保証は数学的証明付きだとかホラふかないで~
恥ずかしいからやめてくださいね!

753 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:19:19.59 ID:jEoqaGTE.net]
別室での話だけど、
別人が誤ったから、同じ主張やその後の間違いを放り投げて幕引きとか、特徴出し過ぎ

754 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:29:41.61 ID:jAeBwf3w.net]
こんな所でコソコソしてて草

755 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:37:42.16 ID:xrmQW8I1.net]
>>743
#某オジはお願いだからこっち来ないで #MAUIとお幸せに!

756 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:38:32.69 ID:35O+q6ze.net]
なんでID変えたの?

757 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:46:32.24 ID:aw0kAUIM.net]
>>745
意味不明

758 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:49:44.04 ID:jAeBwf3w.net]
>>744
>>742みたいなアホを排除したらよくね?w

759 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:54:15.87 ID:xSaC71UL.net]
いや俺のプロファイルだと間違いなく関わってる人間だ

760 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 17:00:53.18 ID:SU5R7n94.net]
すごいな。万が一、仮に裏方かなんかで関わっていたとしても、もう表舞台は無理だよね

ちなみに別の別室も注目>>746



761 名前:デフォルトの名無しさん [2022/12/01(木) 17:09:30.19 ID:fD4PDcdr.net]
C++隔離部屋のくだらないレスバをRustスレに持ち込まないでくれる?

762 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 17:23:29.67 ID:uXbJjnno.net]
即解決じゃないでか。手元でやってませんがvalgrindでしょうね

コンパイルエラー→Rust (マウントじゃなく)
valgrind/sanitizer/etcで確認→C/C++

それぞれの流儀に従うまでです ← ここ重要

C言語なら俺に聞け 159
https://mevius.5ch.net/test/read.cgi/tech/1659623547/707
707: デフォルトの名無しさん(ワッチョイ ff63-RPwI) sage 2022/12/01(木) 16:47:51.25 ID:knNtAgEU0
y[200001];とd[200001]がスタック壊してしまいます涙

763 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 17:28:44.40 ID:uXbJjnno.net]
一つ言えるのは

C言語なら俺に聞け

即解決、機能した

764 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 17:38:11.07 ID:fp7Y5Vje.net]
今なら貼っていい?

RustとModern C++によって目が醒める
https://codezine.jp/article/detail/16769?p=5&anchor=4

765 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 18:17:06.08 ID:Wq6wsgb9.net]
別室の先生方は毎日ボクシングして切磋琢磨している、という説
くだらないレスバだけ、に見えるようでは青い、という説

766 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 18:40:23.81 ID:PeHv0CKI.net]
#某オジはこれを作って活躍してください

Rust言語なら俺に聞け

コテハン/ワッチョイ有の方が徳を稼げると思います
#MAUIもこの手法で少数?の支持を得始めたかもです

767 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 22:44:34.30 ID:cwSC/i2f.net]
本気で提案したつもりでしたが残念です。

私は書き込みせず見ただけですかが、
#某オジ = ID:mPKw+fm5 ですね。
hissi.org/read.php/tech/20221201/bVBLdytmbTU.html

768 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 23:06:28.23 ID:oYnak1Dn.net]
#某オジは自分に球があると自他共に認める状況が発生するとすかさず放り投げて、
空いた回線で他のスレを荒らしに行く

>>648-649の懸念が現実化してRustに泥を塗らなぬよう即刻やめろ

769 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 23:47:30.33 ID:VP+MjCQ6.net]
今更Modern C++に目覚めるぐらいならGoogleのCarbon Langに人生賭けた方が良くない?

770 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 23:54:13.57 ID:Vi6mnuHJ.net]
いろいろプロファイルすると、複オジ軍団説、完全否定できない。

Carbon Langの状況なんて無視して話を逸らす>>758 複オジ軍団ですか?



771 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 23:57:07.42 ID:xX1TOujC.net]
複オジ軍団に次世代言語にやたら興味がある人物がいるようだ

772 名前:デフォルトの名無しさん mailto:sage [2022/12/02(金) 00:12:34.82 ID:TMuqcbhv.net]
C++の本 //鈍器
Rustのほん // ペラペラで字が大きい
こんなイメージなので勉強する気Maxの時はビャーネ・ストラウストラップの本を買ってしまおうかと、気の迷いが起こる

773 名前:デフォルトの名無しさん mailto:sage [2022/12/02(金) 00:15:42.04 ID:U8ThSRxs.net]
>>758がyes/no答えない質問

Rustのメモリ安全性の何らかの保証に関して数学的証明がされている?
yesの場合はその、何らかの保証、を詳しく

俺らに恥かかせないでよね

774 名前:デフォルトの名無しさん mailto:sage [2022/12/02(金) 06:22:19.71 ID:1evFSF3k.net]
このスレはオジをNGワードにすると割とスッキリする。

775 名前:デフォルトの名無しさん [2022/12/02(金) 06:28:40.89 ID:dhVfz/AS.net]
複オジww

776 名前:デフォルトの名無しさん mailto:sage [2022/12/02(金) 16:07:31.52 ID:ef8lBYgh.net]
>>761
いまさら禿本とか

777 名前:デフォルトの名無しさん [2022/12/02(金) 16:15:41.71 ID:KasCtwYY.net]
本の厚さと内容の濃さは比例しない
良本なら反比例することもよくある

778 名前:デフォルトの名無しさん [2022/12/02(金) 18:41:11.95 ID:zxUfj+om.net]
C++は余計な機能が多すぎて、解説する本が分厚くなっている面もある。
シンプルイズベストという言葉もあるくらいなので、HSP最強説。

779 名前:デフォルトの名無しさん mailto:sage [2022/12/02(金) 19:55:07.44 ID:xiR4WMyB.net]
ハゲ本は結構良いよ
ただ難しい内容を説明してるわけでもないのに
説明が回りくどいのでそこが好みと合うか

780 名前:はちみつ餃子 mailto:sage [2022/12/02(金) 20:25:09.96 ID:mKFQqkua.net]
解説は平易に越したことはないけど本来もつ複雑さより平易には出来ない。
解説が回りくどいように見えるかもしれんが C++ が回りくどい分がそういう形で表れてるだけ。
回りくどくない C++ 本は何か省いてる。

Stroustrup の本は D&E しか読んだことないから他は知らんけど。



781 名前:デフォルトの名無しさん mailto:sage [2022/12/03(土) 00:26:57.58 ID:dPKr1JJo.net]
>>769
ところで、C++は他にどんな本で学びましたか?

782 名前:デフォルトの名無しさん mailto:sage [2022/12/03(土) 14:07:20.58 ID:6D7qwbVS.net]
C++の人がRustも使っているだけで、大半の人は両刀使いって事でOK?

783 名前:デフォルトの名無しさん mailto:sage [2022/12/03(土) 14:34:57.98 ID:jUK3mt1e.net]
今の段階でC/C++全く使えないでRust使える人は見たことがない

784 名前:デフォルトの名無しさん mailto:sage [2022/12/03(土) 14:49:09.11 ID:PqbNO9jz.net]
自分の周りには普通にいるけどな、Web系メインだった人とか
単にやったことないってだけで別に今からやればできるようになるとは思うけど

785 名前:デフォルトの名無しさん mailto:sage [2022/12/03(土) 14:50:45.29 ID:wt3jQGAX.net]
自分もC/C++は書いたことないよ

786 名前:はちみつ餃子 mailto:sage [2022/12/03(土) 15:13:46.08 ID:riW5om/o.net]
>>770
私は古い世代の人間だからそんなことを聞いてもこれからの役には立たないよ。
とりあえず入門したのは「注解 C++リファレンスマニュアル」だなぁ……。
あとは雑誌を見たりウェブ上のリファレンスとかニュースとかで細々としたことは知った感じ。

787 名前:デフォルトの名無しさん mailto:sage [2022/12/03(土) 15:24:14.86 ID:uzIr2bMT.net]
Windows の場合、Visual Studio に追加で入れるから最初はC# か何かは使ってないと拒絶しそう

788 名前:デフォルトの名無しさん mailto:sage [2022/12/03(土) 15:37:09.41 ID:nkG5MvF7.net]
C++も書けるが最近はPythonメインで使っていて今はRustに傾倒してる

789 名前:デフォルトの名無しさん mailto:sage [2022/12/03(土) 17:06:05.61 ID:ecXQ+fMx.net]
Rust の Vec::vec は、push() で末尾追加できますが、
このメソッドの signatureを見ると戻り値は存在しておらず、
メモリー確保に失敗すると panic するという理解で合ってますか。
仮にそうだとして、それを C++ の try catch 構文の様なもので補足することは
できませんか。別に構文はそれに限らずなんでもいいのですが、メモリー不足
が起きた時はpanic して強制的に必ずアプリが終了してしまってアプリ
からの制御は何も出来ない、ということですか。

790 名前:デフォルトの名無しさん mailto:sage [2022/12/03(土) 17:08:41.38 ID:ltklWITu.net]
モダンC++はハゲ本か独習C++くらいしかまともな入門書がない



791 名前:デフォルトの名無しさん mailto:sage [2022/12/03(土) 17:09:29.11 ID:yu/BUrHT.net]
>>777 Rustに傾倒中の勢いで力試しだと思って、春先からやられっ放しのCountWords最適化に挑戦してはくれないか?

792 名前:デフォルトの名無しさん mailto:sage [2022/12/03(土) 17:58:23.87 ID:8XRumJlQ.net]
これからcodezineでモダンC++の連載始まるぞ

793 名前:デフォルトの名無しさん [2022/12/03(土) 18:16:35.82 ID:SoE3tSBB.net]
>>778
try_reserve

794 名前:デフォルトの名無しさん mailto:sage [2022/12/03(土) 18:54:46.71 ID:AI9TLj2L.net]
最初から全部モダンな書き方だといいな。
本によっては昔のものと混ざっている。

795 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 14:50:02.38 ID:Mg8RdVSD.net]
自分がモダンc++で書いてても旧式と絶対に出会ってしまうのでそっちもできるようにしないといけない
これが困る

796 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 16:14:46.07 ID:RV2/jwt7.net]
モダンモダンって、意味不明。
自分の生誕年と比して新しいってだけで、どんだけ自己中心的なの。

797 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 16:22:30.31 ID:qWdYVkpM.net]
実は、Modern C++というものは厳密には存在しません。
プログラミング言語C++の、あるバージョン以降をそのように呼んでいます

798 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 16:57:30.52 ID:fmKWV/wp.net]
生誕年とか関係なくてC++11以降の新機能を優先的に使うことを一般的にモダンと呼ぶだけだぞ

799 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 17:20:06.36 ID:OHPAilb6.net]
C++11も10年以上前だし今モダンと言ったらもう少し新しいんじゃないの

800 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 18:17:34.92 ID:SUiviY+F.net]
CodezineのModern C++連載はC++14、C++17、C++20の3バージョンを主題してるなぁ。



801 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 18:18:58.95 ID:E8sA5vC6.net]
飛び越えられる程度の低い段差が盛段な気がしている

802 名前:デフォルトの名無しさん [2022/12/04(日) 18:28:19.68 ID:EQ4pAAP6.net]
Rustと関係ないC++の話は隔離相談室でやれ

803 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 21:28:17.17 ID:oPsAeS3X.net]
どんなにモダンな書き方してもそれがレガシーになっていくんだからそれなりの対応力がなけりゃプログラマなんて無理

804 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 22:42:17.79 ID:SnbSooMc.net]
そう、Rustはもう時代遅れ

805 名前:デフォルトの名無しさん [2022/12/04(日) 23:35:05.06 ID:pqDz82uP.net]
『モダンRust入門』

806 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 23:48:46.52 ID:mqdeTGzg.net]
レガシーRustってどんなやつだろう?
・try!マクロを使ってる


807 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 00:26:29.50 ID:pon/y3Oa.net]
clippyに直せって指摘されるやつ

808 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 00:27:02.53 ID:pon/y3Oa.net]
edition2018以前はレガシー

809 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 03:26:17.69 ID:IAPEqd2s.net]
>>174
そのpythonの添え字の-1で配列の一番最後を表す仕様は完全に失敗した
プログラミングのミスで添字がマイナスとなった時もエラーとならず最後から数えた場所を指して意図せぬ動きで混乱を招いている
別途アクセスメソッドを用意するのが正解

810 名前:デフォルトの名無しさん [2022/12/05(月) 21:58:50.38 ID:zZIMoY87.net]
>>798
同意



811 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 22:20:16.15 ID:85vlj8hv.net]
最初にnegative indexを採用したのはPascalだが-1が最後の要素を表さない。恐らくメジャーな言語で最初はRubyかLuaだわ。
Pythonは1.4から入りだして完全にサポートされたのが2.4なので主犯ではない
それを君は間違いだといいたいだろうが、カタナシのスクリプト言語で長々としたプログラムを書くのがそもそも間違っているYO!
それでアクセスメソッドという結論に安易に行き着くのはget(-1)と同じで正直やめてほしい....
だからと言ってRustのusizeインデックスは正当化できない、使いづらいだけ

812 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 22:21:07.81 ID:m5vf/Aut.net]
打ち間違い?がたまたま文法的にOKなんてことは、
どの言語でも、いくらでもシチュエーションとしてあり得ることだろ

813 名前:デフォルトの名無しさん [2022/12/05(月) 22:38:33.84 ID:NTxK7UYQ.net]
利便性とリスクのトレードオフだからね
いちいち長さから計算する時代じゃない

814 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 22:47:56.84 ID:jQ8cc2lX.net]
>>800
そんな細かいことってどうでもよくね?

815 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 22:54:27.15 ID:9YGPhFSH.net]
>>800
> 最初にnegative indexを採用したのはPascalだが
ALGOL だろ

816 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 23:11:47.28 ID:MKpQGtij.net]
Cの入門書を読んで一応ある程度理解したつもりというレベルですが、Rustの入門におすすめの本やサイトがあったら教えていただけませんか?

817 名前:デフォルトの名無しさん [2022/12/05(月) 23:44:22.33 ID:PMru5zTg.net]
>>805
オライリー本

818 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 23:51:52.39 ID:MKpQGtij.net]
>>806
Amazonの試し読みで2章Rustツアーを読みました
オライリー本が置いてあるような本屋が近くになく試し読みでも3章以降が読めないのですが、辞書的な感じでしょうか?
通読にも向いてますか?

819 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 23:54:41.51 ID:uIcr3Drw.net]
目次を見て判断しなさいよ

820 名前:デフォルトの名無しさん [2022/12/06(火) 01:04:16.95 ID:AYQzZ/1Z.net]
>>807
辞書的な本じゃないよ
The Bookと同じように通読するタイプのRust入門本



821 名前:デフォルトの名無しさん [2022/12/06(火) 03:26:07.35 ID:SqysrJ92.net]
>>800
.last()と.get(-1)は全然違うと思うんだが

822 名前:デフォルトの名無しさん [2022/12/06(火) 07:58:01.16 ID:zEklaQTD.net]
>>805 The Book
https://doc.rust-jp.rs/book-ja/index.html

823 名前:デフォルトの名無しさん [2022/12/06(火) 10:02:55.32 ID:EPp4mQNt.net]
>>811
それは低品質版の勝手日本語訳
本物のThe Bookはこっち
https://doc.rust-lang.org/book/

本気で学びたいなら日本語訳のThe Bookに手を出したらダメ

824 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 10:31:58.81 ID:vigVXzh5.net]
>>812
勝手日本語訳ってどういう意味?

825 名前:デフォルトの名無しさん [2022/12/06(火) 10:38:42.71 ID:6z0cppnT.net]
>>812 基本的には日本語版で問題ない
それどころか英語版をGoogle翻訳しながら読むよりは質良いから気になるとこがあったら原文読む感じでいい

826 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 10:57:55.33 ID:aMDIqhh+.net]
釣られんなよ (´・ω・`)

827 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 11:05:39.12 ID:aMwchw3Z.net]
こうして、日本におけるRustの学習曲線はさらに険しくなるのであった。

828 名前:デフォルトの名無しさん [2022/12/06(火) 11:20:31.41 ID:HA2LFIoo.net]
定数すら知らないやつが訳した誤訳をそのまま垂れ流してるのが問題ないってww
頭わいてるのかな
そんなんだから所有権を複製しちゃうんだろ

829 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 12:32:25.37 ID:rE8cfGd/.net]
出版社/著者の為にも、本を買ってあげて。

830 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 12:39:34.84 ID:swsmryOJ.net]
数値型やブール型などは所有権の移動はなく常に複製される



831 名前:デフォルトの名無しさん [2022/12/06(火) 12:46:01.49 ID:6z0cppnT.net]
>>817
https://doc.rust-jp.rs/book-ja/ch03-01-variables-and-mutability.html
> 最後の違いは、定数は定数式にしかセットできないことです。関数呼び出し結果や、実行時に評価される値にはセットできません。

ここの話だと思うが、読み間違いやすい文章だな
誤訳と言うほど間違ってはないけど要改善

832 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 12:58:10.61 ID:tS6tYBbH.net]
またその話やんの

833 名前:デフォルトの名無しさん [2022/12/06(火) 13:04:06.15 ID:6z0cppnT.net]
ほんそれ
アホ臭いから突っかかってこないでほしい

834 名前:デフォルトの名無しさん [2022/12/06(火) 13:16:01.68 ID:lM2TuwNH.net]
>>820
なるほど
あの日本語訳はこの日本語が誤訳だとすら思えない人向けってことなんだな
ガベージイン・ガベージアウトのいい例

835 名前:デフォルトの名無しさん [2022/12/06(火) 13:40:54.01 ID:Vu2BcSww.net]
>>823 お前が誤訳だと思うならそれでいいから黙ってろ

836 名前:デフォルトの名無しさん [2022/12/06(火) 13:41:28.90 ID:FStkMgHU.net]
>>819
複製されないよwww

837 名前:デフォルトの名無しさん [2022/12/06(火) 13:45:42.32 ID:vtEUfIF0.net]
>>820
>読み間違いやすい文章だな
明らかな誤訳を読む側に責任転嫁しちゃうのか

838 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 13:52:05.31 ID:tS6tYBbH.net]
機械翻訳あるいはどこの誰とも知らぬ人でしょ
そんなの相手にムキになってないで、言語の話しろよ

839 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 15:15:37.73 ID:RihiShBF.net]
もうそれ飽きたから誤訳言うなら他の場所の誤訳をあげてくれ
まだその方がみんなのためになるし

840 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 15:39:16.64 ID:vigVXzh5.net]
ここから日本語版へのリンク張られてるけど外してもらうように働き掛けた方が良いのかね?
https://doc.rust-lang.org/stable/book/appendix-06-translation.html



841 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 16:53:25.53 ID:rE8cfGd/.net]
>>829
止めて下さい。
日本語も見ます

842 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 17:08:44.79 ID:5YlTlO+b.net]
普通に「翻訳の改善に協力しては?」って言われるだけでは
5chならともかくリアルのGithubアカウントでそんな恥ずかしいPR出せんな…

843 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 18:40:54.66 ID:vigVXzh5.net]
https://blog.rust-lang.org/2022/12/05/survey-launch.html
今年もrust survey来たぞ
日本語訳もある

844 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 20:00:08.84 ID:sedVUjKM.net]
本当に日本人って何もせず文句だけ言う人が多すぎだな
改善してほしくて改善点も分かってるなら自分でやった方が圧倒的に早いのに

845 名前:デフォルトの名無しさん [2022/12/06(火) 21:25:02.08 ID:RDoWQe9F.net]
あの日本語訳の改善なんて誰も望んでない

846 名前:デフォルトの名無しさん [2022/12/06(火) 21:37:33.14 ID:FCw1RUR4.net]
問題ありまくりの日本語訳を参考にするのはやめましょうって話であって改善しようって話ではないわな

847 名前:デフォルトの名無しさん [2022/12/06(火) 22:49:17.43 ID:zEklaQTD.net]
>>829 無いよりマシ

848 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 23:00:32.77 ID:N+cyFIt6.net]
元の英語もあんまりよくないな

最後の違いは、定数は定数式に対してだけしかセットできない
実行に計算されるかもしれない値の結果にはセットできない

849 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 23:03:10.60 ID:h/ukiy7O.net]
英語文献をありがたがる、典型的な舶来コンプレックス

850 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 23:08:53.69 ID:gk9SZTYC.net]
誤訳ですよって説得して修正させることができないなら結局主観でしかないってことよ



851 名前:デフォルトの名無しさん [2022/12/06(火) 23:43:26.61 ID:wxmB/YEK.net]
>>837
それが誤訳だっての

852 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 23:51:16.30 ID:Ow+XJZhk.net]
主観を無くすには無人か少人数の方がよさそうなのに
人が多いほど主観が少ないって誰が言ったのか、それも人が多すぎて特定できない

853 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 00:00:30.38 ID:xLbd5eMx.net]
参考にするのやめた方が良いような情報ならやはり英語版からのリンクは外してもらった方が良いのでは
初学者惑わすだけでしょ

854 名前:デフォルトの名無しさん [2022/12/07(水) 00:02:06.86 ID:3JEhjr2d.net]
>>838
英語文献をありがたがってるんではなく
某翻訳がゴミすぎるという話だぞ

855 名前:デフォルトの名無しさん [2022/12/07(水) 00:09:51.51 ID:IJoOi7Sy.net]
文献や資料の質を見極める力もプログラマーにとってはかなり重要な能力
質の低い文献にひっかかったなら失敗から学べ

856 名前:デフォルトの名無しさん [2022/12/07(水) 00:21:26.68 ID:rpgrLTt2.net]
AndroidもRustで書かれてたのかよ!
しかもRustの部分は脆弱性の報告0件って恐ろしいほどの安全性だな……
これマジでRust一強の時代がくるかも……
Ubuntuにデフォルトで入るまで待とうとのん気に構えてたけど急いで勉強しないと……!〆(.. )カリカリッ!!
https://japan.zdnet.com/article/35196972/

857 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 00:35:34.36 ID:21cwGaas.net]
>>845
まじ?
というか20%がrustってえぐいな

858 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 00:41:52.20 ID:xT6Hu5AC.net]
C/C++ の書き方の何が危ないのか、Rustはどうやって回避しているのかは何を読めば分かるの?
Out of memory なんか防げるんだっけ?

859 名前:デフォルトの名無しさん [2022/12/07(水) 00:58:54.43 ID:fQ3/NsZR.net]
kLOCあたり1つ以上の脆弱性があったものが1500kLOCでゼロ
unsafeが量も気になるな

860 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 01:00:43.82 ID:+scmKVbE.net]
Google製のRustライブラリはどんなのがあんの?



861 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 04:00:04.20 ID:0xPH+d9p.net]
>>845
> システムプログラミングからCやC++を排除するつもりはないという。
これの理由を知りたいわ
まだRustでは書きにくい所があるんだろうか?

862 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 04:05:04.23 ID:+scmKVbE.net]
ってか、Googleはその分野で使うためにCarbon開発したんじゃなかったのか?

863 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 04:17:31.35 ID:21cwGaas.net]
CarbonもRust使えるならRust使えと言ってる

864 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 09:06:42.16 ID:Mw8qZqut.net]
google発のOSSって社員の個人プロジェクトをgoogle名義で公開してるだけの場合もあるからな

865 名前:はちみつ餃子 mailto:sage [2022/12/07(水) 09:19:24.95 ID:vqEtcxl0.net]
どれがいい感じに発展するか事前にわかるもんではないからな。 狙いとは違う方向で結実することもあるし。
色々やっておく (それが出来る環境を用意する) とどれかは上手くいくし、上手くいかずに消えるものも多いってだけのこと。

866 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 10:24:44.39 ID:G2nMx9FR.net]
そこまで誤訳だと言うならコントリビューションすれば良いのではないの?

867 名前:デフォルトの名無しさん [2022/12/07(水) 10:39:11.42 ID:KNXoSnHr.net]
>>845
結果だけみると凄まじい
システムプログラミング関係の置き換えは案外急速に進むかもしれんね

868 名前:デフォルトの名無しさん [2022/12/07(水) 11:16:25.80 ID:6Eaq6nhz.net]
>>855
誤訳だらけでキリがない
ゴミから小さなゴミを取り除いてもゴミのまま
だれがそんなことに時間使うのさ

869 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 12:26:52.65 ID:El0pJGUF.net]
>>857
2chで文句言って他の話題を出にくくする方が有意義だと思うやつもいるんだな。

870 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 12:31:58.03 ID:74PfFudB.net]
複おじ以前と以後で明らかに話題の質が落ちてるよね
おのれ複おじ



871 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 12:39:55.04 ID:m46mCwKQ.net]
>>855
難癖つけて嘲笑って愉しんている奴がそんな無駄なことするわけがない。
自分がマウントできればいいだけだから、そもそもRustを良くする気なんて全く無いだろ。

872 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 12:46:13.68 ID:g3+WCnxI.net]
>>850
Cなら分かるがRustが分からない人
のことを老人と思うのは憶測で、むしろ子供である可能性が高い
子供を排除や淘汰しても進歩など起きない
少子化が加速するだけ

873 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 12:53:44.84 ID:Mw8qZqut.net]
>>850
元記事に以下とあるから既存のコードをrustで書き換えることまではしないという意味だと思われる

As we noted in the original announcement, our goal is not to convert existing C/C++ to Rust, but rather to shift development of new code to memory safe languages over time.

874 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 12:54:18.57 ID:Mw8qZqut.net]
>>862
元記事のurl貼り忘れた

https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html

875 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 15:17:49.39 ID:Xzjw4n/l.net]
>>862-863
ありがとう、まあ普通はそうするよね
ただそうするとAndroid 13は20%が新規のコードなんだ...
それはそれで凄いな

876 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 15:24:21.27 ID:3HHCfxiv.net]
マジでrust本腰入れよ
ゾワってしたわ
C/C++書いてたけど取り残される

877 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 15:28:39.71 ID:h/t9+qo5.net]
>>846,864
違う
天然か煽りかわからなけどちゃんと読もうな

878 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 15:40:23.08 ID:3HHCfxiv.net]
せっかくモダンC++とoneTBB覚えて万能感感じてたのにさ
リセットかよ

879 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 15:51:23.23 ID:Mw8qZqut.net]
>>864
新規コードの20%ね
In Android 13, about 21% of all new native code (C/C++/Rust) is in Rust.

There are approximately 1.5 million total lines of Rust code in AOSP
ともあるからAOSPの全体のコード量分かればrustの割合も分かるはず

880 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 15:52:33.64 ID:Mw8qZqut.net]
>>868
新規コードの20%というのも不正確で新規のネイティブコードの20%
java等で書かれたものは除外したうちでの割合ね



881 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 15:58:02.82 ID:JdTFl5al.net]
There are approximately 1.5 million total lines of Rust code in AOSP
*Android Open Source Project (AOSP)

1.5mてどう考えても、例によってRustコンパイラやサードcrateのソースツリーも含まれている悪寒

882 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 16:58:18.23 ID:Mw8qZqut.net]
>>870
AOSPのソース

883 名前:ツリーではrustcはpre-built binaryがコミットされてるから行数カウントには含まれてないっぽい
外部crateは含まれてるかも知れないけど、実際にそれだけのコードが使われているという意味では正しいんじゃないの
[]
[ここ壊れてます]

884 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 17:03:21.31 ID:n0jQbyrj.net]
>>871
その発想がrustクオリティ

Java/C++勢はそんな嵩増ししてない

885 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 17:15:07.05 ID:g3+WCnxI.net]
実際に使われているC/C++
を捨てることの正当性ももう無いんだからいいじゃないか

886 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 17:35:07.63 ID:8PgDeggG.net]
>>870
>1.5mてどう考えても、
同感。この短期間に150万行ってどの範囲?これが普通の感想

>>871
>AOSPのソースツリーではrustcはpre-built binaryがコミットされてる
何処?
github mirrorの方で教えて https://github.com/aosp-mirror

>>873
新規nativeコードの21%という数字が水増し、かどうかに係るので整理するべきかと

887 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 17:40:15.78 ID:21cwGaas.net]
割合とか増えていくんだからどうでもいいだろ
それよりAndroidでrustが使えるところはrustを使うという判断がとっくにされてたのが衝撃

888 名前:デフォルトの名無しさん [2022/12/07(水) 17:42:58.56 ID:NHS9DFe3.net]
珍しく良い記事紹介だったのに
急に下らない議論になっちゃうのな

889 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 17:44:20.91 ID:Mw8qZqut.net]
>>874
GutHubでどこにあるのかは分からないがAndroid Code Searchでは以下が出てきたのでpre-built binary使ってるのかなと判断した

https://cs.android.com/android/platform/superproject/+/maste

890 名前:r:prebuilts/rust/linux-musl-x86/1.63.0/bin/rustc;l=1?q=rustc&sq=

C++もrustも外部ライブラリはexternal配下にまとめられているようなので、それぞれで集計の仕方を変えるなんて事をしてない限りは、同一条件での比較になるんじゃないかな

あと150万行ってのはAndroid13の話じゃなくて累積のコード量がって話しだよ
[]
[ここ壊れてます]



891 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 17:44:50.45 ID:8PgDeggG.net]
>>874 追記
なんかRust批判みたいな印象になっているけど、881が多少調べたっぽいので詳しく知りたいだけ

892 名前:デフォルトの名無しさん [2022/12/07(水) 17:47:35.12 ID:JLiaiVk0.net]
>>876
次世代隔離スレがなくなると暇してるオジサン達が溢れてくるのよ

893 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 17:55:32.50 ID:8PgDeggG.net]
>>877 ありがと
ただし、ここ見るだれでもrustコンパイラを構成するソースファイルが山ほどある
https://cs.android.com/android/platform/superproject/+/master:prebuilts/rust/linux-musl-x86/1.63.0/src/

さすがにgccの方はsoになってる
https://cs.android.com/android/platform/superproject/+/master:prebuilts/gcc/linux-x86/

>C++もrustも外部ライブラリはexternal配下にまとめられている
こうした統計ではソースとしておいてあるかどうかで結構差がある

894 名前:はちみつ餃子 mailto:sage [2022/12/07(水) 17:59:46.34 ID:vqEtcxl0.net]
割合で言えば大したことは無くてもある程度は積極的に使おうとする雰囲気は感じなくもないってところかな。

895 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:00:13.04 ID:8PgDeggG.net]
>>877
>あと150万行ってのはAndroid13の話じゃなくて累積のコード量がって話しだよ

累積のコード量で、Android向け書き起こしRustソースが150万行、という主張であれば水増しの疑いを持ってる

896 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:01:45.15 ID:8PgDeggG.net]
>>881
>ある程度は積極的に使おうとする雰囲気
それは同感

897 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:01:53.83 ID:Mw8qZqut.net]
>>880
コンパイラじゃなくて標準ライブラリのことね
確かにlibcとは扱いに差があるかもね

詳細な数値が気になるならソースダウンロードして測定してみたら良いのでは
https://source.android.com/docs/setup/download/downloading

898 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:04:39.07 ID:8PgDeggG.net]
>>884
そんな手間かけたくないから聞いたんだけど、皆そうなんだろうな

>累積のコード量で、Android向け書き起こしRustソースが150万行、という主張であれば水増しの疑いを持ってる
これで継続だな

899 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:06:43.25 ID:Mw8qZqut.net]
>>885
> Android向け書き起こしRustソースが150万行、という主張
原文ではそんな主張はしていないよ

900 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:11:19.10 ID:8PgDeggG.net]
>>886
そう。原文は意図的かどうかは分からないが、あやふやな表現なので範囲を問うてみた
ここだけ読んでそう捉えて誤解をした人がいたら、まず範囲を疑うのが普通、と思った



901 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:13:51.76 ID:8PgDeggG.net]
ちなみにPhoronixで読んだが、LinuxのRust対応は賞味2万行

902 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:20:26.12 ID:wjXnim/d.net]
>>857
じゃあ一から訳したら?
誰かがそうやったから存在するんだが…

>>860
情けないよね。マージされたらそれなりに嬉しいのに。

903 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:24:03.55 ID:8PgDeggG.net]
例えば、ここだけど、150万行はおろか、2万行すら程遠いかな
https://github.com/aosp-mirror/kernel_common/tree/android-mainline/rust

904 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:36:53.47 ID:M+Adnv0G.net]
もっと有意義な話しようぜ
fn<T>foo(x: &T); のTにSized制約付くの邪魔くせーとかさ

905 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:39:18.13 ID:CifLjB7G.net]
>>868
そうするとまたはじめの疑問が...
> まだRustでは書きにくい所があるんだろうか?

906 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:41:18.29 ID:Mw8qZqut.net]
>>891
x: TのときはSizedついて欲しいけど、&Tのときはついて欲しくないということ?
Box<T>やRc<T>やユーザー定義のスマートポインタの扱い考えるとめんどくさいから一律Sizedがデフォルトでよくない?

907 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:48:05.32 ID:Mw8qZqut.net]
>>892
今出てきている情報だけではなんとも言えないかと
Android開発者の内Rustを使える人の割合が少ないだけの可能性もある

908 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:51:46.12 ID:8PgDeggG.net]
>>892,894
その21%が水増しかどうかは重要なわけではなく

>ある程度は積極的に使おうとする雰囲気
これに意義がある

909 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:53:03.86 ID:21cwGaas.net]
そりゃC++とのInteropが絶対に必要だしRustはそこが弱い
そういう用途としてはCarbonがあるけどセキュアではない
(C++よりはマシだろうが)

910 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 18:58:45.38 ID:8PgDeggG.net]
>>896
は20%(水増し?)で浮き足立ったり、Carbonの話に拘ってるけど
当分の間はCarbonの話をすると鬼が笑うと思う



911 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 19:02:37.66 ID:glN0FB8M.net]
Androidの中のRustはGabeldorsche, keystore2, DoH, UWBくらいだっけ
もう3年くらいかかってるからそれなりの行数になってる気もするけどどうなんだろ
aospのrepo sync全部やるの時間かかるんだよな…

912 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 19:05:40.97 ID:8PgDeggG.net]
>>898
>aospのrepo sync全部やるの時間かかるんだよな…
そこを何とかお願いします
どの範囲を集計したら150万行に到達するのか皆気になってます

913 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 19:09:14.99 ID:/TInWduh.net]
repo sync 終わらんよな
今3時間経過

914 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 19:14:14.71 ID:8PgDeggG.net]
期待大

原文では
>There are approximately 1.5 million total lines of Rust code in AOSP across new functionality and components such as Keystore2, the new Ultra-wideband (UWB) stack, DNS-over-HTTP3, Android’s Virtualization framework (AVF), and various other components and their open source dependencies.
となってますので、

Keystore2
Ultra-wideband (UWB) stack
DNS-over-HTTP3
Android’s Virtualization framework (AVF)
and various other components and their open source dependencies.
これで150万行の大半を占めているかのような書き方です

まさかこれが大半を占めていたり
>open source dependencies
rustコンパイラのソースツリーが入っているとは言えませんよね

915 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 19:30:47.68 ID:/TInWduh.net]
期待すんな
gitとpython入ってるwsl環境とかあれば簡単にとってこれるぞ
https://source.android.com/docs/setup/download/downloading
ただ時間がかかるだけ
この程度出来ない奴がrustについて云々言うとか片腹痛い

916 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 19:35:42.75 ID:8PgDeggG.net]
>この程度出来ない奴がrustについて云々言うとか片腹痛い
そうだね(笑)

こっちでもやってみるかな

917 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 19:35:54.12 ID:glN0FB8M.net]
半年ほど前のやつがあったのでそれでtokeiかけてみた
とりあえずexternal内が180万行でprebuiltsが500万行くらい
なので1.5mの根拠はexternalの方かな
prebuiltsの方に上で挙がってたmuslとか入っている
external内はrustディレクトリ内の依存クレートが150万くらい
依存クレートでないので最大はcrosvmが30万行くらい

というわけでAndroidのために150万行書き下ろしたというのは言い過ぎ
ただ150万行のソースコード使ってるという原文の主張は正しそう(コンパイラのコードとかは入ってない)
まぁ依存クレートにも明らかにAndroid用っぽいのもあるし
これ以上の切り分けは難しいな

918 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 19:50:48.43 ID:CifLjB7G.net]
>>894
それなりに優秀な人たちだと思うんたけどそれでもハードル高いのかな...

>>895
水増しとかどうでもいいのでいちいち絡んで来ないでね

919 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 20:03:05.60 ID:glN0FB8M.net]
一応依存クレートも一通り見てみたけど大きいのはメジャーなやつだね
というわけでAndroidのために書かれたコードは全体で40万行以内ってとこかな

まぁtokioやらcrossbeamがちゃんと使われているのは水増しと批判するようなことではなく
むしろいいことなんじゃないか?

920 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 22:19:15.93 ID:Lb4jZ7zf.net]
それにしても無駄の多いコーディングだな。
そもそもAndroidで使われたというだけであって、Rustが広まったという訳ではない。



921 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 22:24:52.03 ID:Lb4jZ7zf.net]
かつてCが流行したのは、LatticeC、SmallC、TurboC、MS-C、WatcomC など
色んな企業がコンパイラ作りを競い合った結果だったかも知れん。
TurboCが流行ったが、それ以前からCは雑誌I/Oなどでも取り上げられて、
さまざまな人が話をし、良い言語であるという噂が立っていた。
当時を知っている俺が言わせて貰えば、なぜか、Rustはビビっとこない。
Cはビビっと来た。
C++は、初期の頃にびびっときたが、C++11では、こりゃもう駄目だ、
と思った。

922 名前:デフォルトの名無しさん [2022/12/07(水) 22:39:14.39 ID:UARY1o0b.net]
>>908 蓋を開けてみれば様々なバグ(特にメモリ関連)の元凶だったから、その感覚の逆が正解かな

923 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 22:42:23.65 ID:cTs8jKu4.net]
アセンブラとBASICしか無かった所に
Cが登場したから、そりゃ喜んで使うわ

924 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 22:59:32.88 ID:Odhm3loP.net]
>>908
今は何にビビっと来るの?

925 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 23:01:58.13 ID:Xa+0WmXy.net]
>>908
LSI C-86も入れといてね

926 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 23:23:48.68 ID:g3+WCnxI.net]
スタックかグローバル変数しか無い文化でCを流行らせてもヒープのバグは少ない

ヒープを使わないなら変数の寿命は固定長、という伏線が回収されたことに
まだ気付いてない人もいる

927 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 23:25:35.88 ID:21cwGaas.net]
>>908
ロートルは去れ

928 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 23:26:15.82 ID:Lb4jZ7zf.net]
>>911
そうだな、まだ決め手となるものは無いが、(個人的には好きではないが)JSに
人気が有るのはブラウザがそれしか使えなかったから「では無い」と思ってる。
Rubyと比較すればJSの方が優れているように感じる。
また、C#はJavaよりは改良されていると感じる。但し、これも好きではない。
Pythonも好きではない。人気が有る理由は恐らくAIのライブラリと使用例が
多いからではないかと思ってる。
ということで、今はびびっとくるものが無い。

929 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 23:31:51.79 ID:Xa+0WmXy.net]
結局RUSTに限った話じゃなかったかw

930 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 23:34:48.20 ID:Lb4jZ7zf.net]
Rustは大々的には流行らないんじゃないと思うぞ。
理由は色々有るが、
・流行ってる言語は、JS、Python、Java、PHP、C#、Ruby、VB など、初心者向けの
 簡易言語が多い。
・Rustは中途半端。伝統を無視。習慣を無視。直感的でない。
・そもそもRustは低レベル向け言語、上記に書いた簡易言語のターゲット層には
 被らない。
なお、Googleは色んな言語に手を出す企業。
使ってる言語も幅広く、(同列に入れるべきでないものも混ざるが)
C++、NaCL(*)、Java、Kotlin(*)、Go(*)、Dart(*)、Carbon(*)、Rust、Wasm、
などなど。[(*)は自社製言語や自社製仮想言語(?)]
自社製言語だけでも4つ、仮想言語が1つ。



931 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 23:36:08.15 ID:cTs8jKu4.net]
MS-DOS 向けで最初に入ってきたのは
optimizing C86 だったと思う

932 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 23:40:24.00 ID:Lb4jZ7zf.net]
そもそも低レベル言語でもココまでメモリ管理に気をとられる言語はなく、
直感的に書けた。
Rustはメモリ管理ばかりに気をとられる言語。論理に集中しにくい。
また、JavaやC#、C、C++では直感的に書けることがRustでは書けない。
なお、「それはおまえがバグのコードを書いているから」と反論されるが、
はっきり言って、そのコードでも全くバグは無いから。

933 名前:デフォルトの名無しさん [2022/12/07(水) 23:49:55.59 ID:51+7TkbX.net]
隔離スレがないからとにかく昔話をしたいお爺ちゃん達のたまり場になっちゃったね

934 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 23:56:19.06 ID:Lb4jZ7zf.net]
Cが流行ったのはリンクリストが作れたからだ。
Strousutup氏はリンクリストを全否定に近い形で否定しまくっているが、
彼は机上の空論であり、彼が自分で実験してvectorの方が速いとしたものも
実際に合わない机上の空論的なベンチマークテストだったろう。
そしてそれを信じてしまったRustの作者はRustではリンクリストを
まともには使えない状態にしてしまった。

935 名前:デフォルトの名無しさん mailto:sage [2022/12/07(水) 23:59:45.09 ID:sHYfIE3H.net]
なんだお前だったのか

936 名前:デフォルトの名無しさん mailto:sage [2022/12/08(木) 00:03:22.42 ID:kNVI3qAc.net]
スレ立てろよ
手持ちの回線だと全部無理なんだ

937 名前:デフォルトの名無しさん mailto:sage [2022/12/08(木) 00:08:02.18 ID:QroOE5Fs.net]
ID:Lb4jZ7zfのプライドだけ高い老害感すごいな 狙ってできるもんじゃない

938 名前:デフォルトの名無しさん mailto:sage [2022/12/08(木) 00:20:06.52 ID:pMPEGjtK.net]
一般人は馬鹿だから偉い学者さんが言った間違った言説を信じるしかない。
実験したことが現実的な状況と合ってなければ実験結果は無意味。
だから、他の経験者はリンクリストが速くてメモリー効率もいいことを知っている
のに机上の空論者であるところのStroustrup氏は、自分がやった机上の空論的な
実験結果を縦に徹底抗戦を仕掛けている。
しかし、実際と有って無いから反感を買っている。
それも、C++から人が離れていっている原因の一つ。
C++もRustもどちらも机上の空論になってる。

939 名前:デフォルトの名無しさん mailto:sage [2022/12/08(木) 00:22:10.33 ID:pMPEGjtK.net]
>>924
老害はStroustrup氏とRustの信者の方。
Rust信者には本の謳い文句に騙された哀れな宗教信者も多いが。

940 名前:デフォルトの名無しさん [2022/12/08(木) 00:29:07.90 ID:WCqcOtXz.net]
即NG㌧



941 名前:デフォルトの名無しさん mailto:sage [2022/12/08(木) 00:32:17.18 ID:pMPEGjtK.net]
LinkedListがキャッシュ効率が悪いというのも机上の空論。
なぜなら、机上の空論者は、LinkedListのノードのアドレスが「ランダム」で
あると間違った仮定するから。
実際には基本的に連続しており、多くの場合は連続して無いとしても
軽微な数バイトの隙間がところどころ空いているだけ。
大きく変化することもあるが、それは全体の数箇所だけ。
なぜなら、挿入箇所は、一箇所から始まってその周辺を押し広げてノードを挿入している
だけで、それが少数あるだけだから、アドレスが大きく変わる箇所はわずかで、
「バースト的」になっているから。
机上の空論者は、ノードアドレスをランダムだと考えるから、キャッシュ・ミスが常に
起きると考えてしまう。ところが、そんな状況はまず有りえない。

942 名前:デフォルトの名無しさん mailto:sage [2022/12/08(木) 00:35:48.02 ID:pMPEGjtK.net]
>>928
さらに、LinkedListのメモリー効率が悪いというのもウソで、むしろ、
std::vectorの方が悪いことが多い。
なぜなら、後者は、濃度ーを末尾追加していくと、スプリアス的に
今までの配列の入ったテーブルの1.5倍のサイズのテーブルをヒープ領域から
確保してしまう。
これが物凄く致命的で、std::vectorは、要素 T のサイズが大きい場合、
物凄くメモリー効率が悪くなる。
一方、std::list は、要素 T のサイズが大きい場合、std::vectorより遥かにメモリー効率が良い。

943 名前:デフォルトの名無しさん mailto:sage [2022/12/08(木) 00:39:53.26 ID:pMPEGjtK.net]
>>929
[補足]
std::vectorは、sizeがcapacityを越えそうになると、今までのcapacityの
1.5倍のテーブルを新たに確保するので、今までのテーブルと合わせると、
一時的に 1 + 1.5 = 2.5 倍のメモリー領域を確保してしまう。
std::list ならこんなことは起きない。
なおさらに悪いことに、std::vectorはことの時、全要素を move するので
キャッシュが大規模に汚染されてしまう。
キャッシュ汚染という点では、std::vectorは、先頭や途中への要素追加
の際もキャッシュが大規模に汚染されてしまう。

944 名前:デフォルトの名無しさん mailto:sage [2022/12/08(木) 00:45:56.87 ID:pMPEGjtK.net]
stroustrup氏の言説はデタラメが多くてストレスがたまる。
そして、自分が間違った説を後ろ盾するために、間違った仮定の元に
実験を行なっている。
コンピュータの実験の場合、正しい仮定のもとで行なうことが重要で、
実験して時節を裏付ける結果が出たとしても、仮定がまるっきり
間違っているのだからどうしようもない。
ベンチマークテストでも、もし、実際と合わないような内容をテストしても
意味が無い。そんな状況は滅多に起きないから。
コンピュータの測度は「加重平均値」で決まる。どういう「加重」かが、机上の空論者
には分からないからデタラメになる。
言語仕様の策定においても、実際にはそんなことをやってもほとんど意味が無いことを
優先的に簡単化しようとする一方で、もっとも重要なことがめんどくさくなるような
仕様を追加してしまったりする。
だから、C++は机上の空論といわれる。
ところが、同じことがRustにも言える。

945 名前:デフォルトの名無しさん mailto:sage [2022/12/08(木) 00:46:30.49 ID:rnWAZYk7.net]
gccのrustフロントエンドがマージされるそうだけど、これってどういう時に便利なの?
gccでビルドしたCとのcross-language LTOとかできるの?

946 名前:デフォルトの名無しさん mailto:sage [2022/12/08(木) 01:02:47.82 ID:D2mGrKMe.net]
>>904,906
ありがとうございます とても参考になります

こちらはパーティションを小分けにしていたせいで要領不足にあっていました
これ全体だと300GB以上あるのでしょうか?

仕方ないので
repo init -u https://android.googlesource.com/platform/manifest --depth=1 --partial-clone --clone-filter=blob:limit=10M -b android-13.0.0_r18
としたら100GB位に収まって何とか完走したところです

android-12.1.0_r26も取ってきて21%がcrosvm(当初はChromeOS向け)の移行を含んでるのかどうか見たかったのですが
話のネタが変わってしまったので週末かどこかでやり直すことにしました

947 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 01:41:09.99 ID:Sh2LVmg/.net]
LinkedList信者まだいるんだ....
リンクリストなんて既にETHやMITでも、コンピューターサイエンスで多くの人が間違いなく否定するものなのに。別にStrousutupだけじゃないぞ?ほぼ全否定で言ってるのは
キャパを越えそうな事を無理やりするのはほぼ設計の問題だし、途中への要素追加が起きるようなコードを書いてて問題ないと思ってるのはプログラマの能力の問題。
バースト的なんて言ってるけど、連続するメモリー領域へのアクセスと比べて明らかにリンクリストが不利になるのは自明だ、さらに逆に途中追加した場合のキャッシュミスを汚染なんて言ってるけど
それこそ現代の多段キャッシュアーキテクチャを甘く見すぎてる。そりゃ容量を超えるような操作を行えばメインメモリに取りに行くけど、言うまでもないがリンクリストの要素の先はメインメモリー散らばってる。
それがキャッシュされるとしてもCPUのキャッシュは1Byteとか8Byteをキャッシュするものじゃなく1キャッシュブロックで連続するメモリーをk単位でキャッシュする。
StrousutupのC++は明らかに欠陥言語だが、それとデーター構造の理解は別の問題。 コンピュータの速度は加重平均なんていう単純なもんではない
すべてがキャッシュに乗るなら一番早く動くが、メインメモリを頻繁にアクセスするなら100倍遅くなる。メインメモリにさえ載りきらないデータを扱いHDDならそこからさらに1000倍遅い。
だがキャッシュの容量しかデータを扱えないプログラムは役に立たたないし、Swapしまくりのプログラムは実用に耐えない。
まだLinkedListを擁護する人が多いのは、欧米のように日本のプログラマーは文系や高卒がやり、明らかにまともに計算機科学というものを受けていないからだ
Rustこそ欧州主体で行われている計算機科学にあまり即してない、FORTRANみたいな米国主導のLinkedListのような産物

948 名前:デフォルトの名無しさん [2022/12/09(金) 02:35:24.01 ID:wDDTmzGU.net]
なんだかRubyガイジみたいな論法だよな
Rubyでできることはすばらしいこと
Rubyでできないことは必要ないこと

いや必要あるか、使うかどうかは検討の上こっちが決めるんで😅

949 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 08:53:27.93 ID:eLXAv6sJ.net]
関数型のElixir は、先頭だけに追加できる片方向リストで、
データが変更されない・immutable だから、バグらない

x = a-b の時に、
先頭に、c を追加して、y = c-a-b となった時に、
a-bの部分が変更されないので、x, y 両方で再利用できる

950 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 09:23:54.41 ID:Bd/06DhF.net]
>>934
絶対ネタで書いてるだろw



951 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 13:50:41.90 ID:3DNXTGzR.net]
>>934
CPUにおいて、基本的に cache block と cache line は同じ意味だが、
https://stackoverflow.com/questions/14707803/line-size-of-l1-and-l2-caches
のように、Intel CPUにおけるcache lineの大きさは 64バイト。
先読み機能が有るので、少し先まで読むことがあるが、
1KBみたいに大きくは無い。

952 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 13:58:22.82 ID:3DNXTGzR.net]
>>934
コンピュータ科学ではむしろ、LinkedListがArrayListより速いことがあることを学ぶ。

953 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 14:00:08.53 ID:3DNXTGzR.net]
>>934
>言うまでもないがリンクリストの要素の先はメインメモリー散らばってる。
現実的な使用法では、バースト的になっていて、散らばってない。
散らばっていると思っている人が現実を知らない机上の空論家だと言っている。

954 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 14:03:46.44 ID:3DNXTGzR.net]
>>940
[補足]
バース的で無い場合においても、非常に近いアドレスになっていることが多い。
例えば、ノードを削除してから追加すると、最後に削除されたアドレスが再利用されるから、
データ列を加工する場合にはキャッシュがとても強く働く。
また、ソートにおいてもノードの繋ぎ方を変えるだけだから、コピーはおろか、
ムーブすら発生せず、要素Tのバイト数sizeof(T)が十分大きい場合は、
std::vectorより速い。

955 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 14:08:27.79 ID:3DNXTGzR.net]
>>934
>コンピュータの速度は加重平均なんていう単純なもんではない
加重平均である事と、単純である事は同じことでは無い。
単純ではないが、加重平均である。
実行時間 T = Σ_i w_i T_i
w_i = 処理 i に対する重みパラメータ
T_i = 処理 i に掛かる時間

w_i は、経験を積まないとわからなくて、机上の空論家はこれを誤って見積もる。
偉いとされる先生を筆頭とした「象牙の塔」の集団幻覚の様な現象が起きる。

956 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 14:13:39.03 ID:3DNXTGzR.net]
>>941
[さらに補足]
・ノードを削除してから追加する--->malloc や new が、直近に
 削除したノードのアドレスを再利用されるのでキャッシュが良く効く。
・削除したノードのメモリ・ブロックが全部使われた場合、
 malloc や new がHeapやOSから新しくアドレスを確保してくる -->
 OSは後続の連続アドレスを返してくるので、アドレスはほぼ連続
 するので、キャッシュが良く効く。

故に、実際的な使用においては、LinkedListはキャッシュがよく効く。
 
 

957 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 14:18:24.24 ID:3DNXTGzR.net]
たとえば、馬鹿な人は、通信経路においてのエラーは「ランダムに起きる」から、
「本当にランダム」のケースを脳内で勝手に想像して、
「CRC符合は一般には役に立たない」
と結論付けてしまうかも知れないが、それは机上の空論で、
実際のエラーはバースト的に起きるから、CRC符合は非常に強力に働く。
それと同様にLinkedListもキャッシュが良く効く。
なぜならノードのアドレスが「ランダム」ではないから。

958 名前:デフォルトの名無しさん [2022/12/09(金) 15:08:04.74 ID:gsPXBpPV.net]
どっちもヤバくて草w

959 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 16:41:02.60 ID:WiULU0Bz.net]
自己完結すれば最速で完結するが
机上で完結しないことを望むなら呪術的な対価を要求されるんだよ

960 名前:デフォルトの名無しさん [2022/12/09(金) 17:13:50.21 ID:TeKO8AU2.net]
>自己完結すれば最速で完結する
アタオカの巣窟になりつつあるな



961 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 18:30:00.75 ID:rq1aZYl+.net]
絶対にベンチマークの数値は出せないリンクリストおじさん
いつまでrustに粘着してんの

962 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 21:16:01.37 ID:o+3mnUPM.net]
馬鹿は想像力が無いから、理論から計算できない上に、仮定も間違っているから
間違った条件で実験して間違った実験結果を出して、それを信じてしまう。
Stroustrup氏もその一部。

963 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 21:33:34.50 ID:o+3mnUPM.net]
>>949
そんな馬鹿でも実際にプログラムしてる人は自分の間違いに気付くが、
彼と彼の取り巻き達はベンチマーク以外のプログラムはしないので
一生気付かない。そして自分達は実験したから正しいんだと主張し
まくって、それを信じた人類は謝った認識を持って文明の発達が遅れる。

964 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 22:18:43.15 ID:STy7gq1K.net]
真面目に言うならStroustrupの指摘したリンクリストは、愚直で安直な1要素で次を示すようなデータ構造はバカのすることで間違いない。
というかStroustrupはプログラマのために教え諭してるのに対して、自分が攻撃されたと思い込み、稀なケースで「LinkedListがArrayListより速いことがある」なんていい年してイキっててもしょうもないだろう?
「非常に近いアドレス」とか自分で参照効率が悪いことを理解してるのに、何がしたいのかサッパリわからん。ぴろゆきみたいに見えない仮想的にロンパーしたいの?
https://www.youtube.com/watch?v=YQs6IC-vgmo

ま、今ではUnrolled Linked listとか普通の配列やB-Treeなどと区別がつかない参照の局所性が大幅に向上しているものもあるから
そんなことで騒ぐのはもはやジジイの域だなあ、10年前の出来事じゃん・・・・

965 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 22:39:25.91 ID:rOm/uTcN.net]
ジジイと言うかその人は
1) 頭が悪くて
2) 経験もなくて
3) その自覚が無い
というかわいそうな存在だからあんま刺激しちゃダメ
こうなってくるとこの手のひとは
あとは粘着するだけのマシンと化すから要注意だぞみんな

966 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 00:05:08.23 ID:s9w4cjy9.net]
自己完結は悪と思ってるから他者に粘着するんでしょ

967 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 01:32:53.73 ID:ExYz252Q.net]
コンピュータサイエンスやプログラミング関連の学者は、アホばっかだからな。

968 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 01:33:28.16 ID:CrLmIOQg.net]
Rustではポインタの代わりに要素のインデックスで管理するのが基本であり安全
リストもツリーもグラフもこれで実装可能
これはポインタがない言語では当たり前のように使われていた方式
これまでが間違ってた
ポインタなどというものは数百万行とかあるプログラムで正しく使うのは無理
世界中のエンジニアがそのために苦労している
ポインタとNULLは完全に失敗

969 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 01:36:13.33 ID:CrLmIOQg.net]
ちなみにインデックス管理がゴミだったのはCみたいに配列の要素チェックがなく
生アドレスを直接触れる仕様だったせい
本来この仕様があり得ない
これならポインタの方がマシだし楽だからという理由でポインタが乱用されてきた

970 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 01:42:29.86 ID:ExYz252Q.net]
>>951
その動画のジジイはまさに馬鹿。
老害。



971 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 01:44:30.98 ID:ExYz252Q.net]
アメリカのコンピュータ学者は馬鹿。
自ら馬鹿な方法ばかり想定しているから遅いと思い込んでいる。
それを鵜呑みにしてる学生は大ばか者。

972 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 01:46:18.37 ID:ExYz252Q.net]
だからアメリカ人の作るソフトは遅い上にサイズも大きいんだな。
日本人の作るソフトはコードも小さいし、データも小さいし、速度も速い。
全然違う。
なぜなら、アメリカ人がイマジネーションが足りなくて馬鹿なのに自覚が無いから。
なのに、詐欺的手法によってアメリカ製ソフトを蔓延させた。

973 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 01:47:54.33 ID:48CeiLls.net]
ポインタてのは、CPUの汎用レジスタの
アドレッシングモードを考慮して
OSをコーディングしやすくする仕組みだから

974 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 01:51:53.77 ID:ExYz252Q.net]
>>957
おっと、こいつが、Stroustrup氏だったのか。
どうりでデタラメな事言ってると思った。まさに、彼が自書で言ってる通りの内容。
この人は計算量などを考えるイマジネーションが不足している。

975 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 02:00:02.88 ID:ExYz252Q.net]
仮に、彼の間違った仮定であるところの、リンクリストのノードのアドレスが
ランダムに近い状態だったとして(それ自体がウソの仮定なのだが)も、
キャッシュペナルティーは、一回当り20クロックほどだ。
だから、この場合、次のノードに移るのに20クロック掛かることになる。
しかし、それでも、ノード数がNの場合に、20*N クロックほどで済むから
そんなに致命的ではない。Nを100倍しても、100倍の時間がかかるだけで、
大した増加ではない。
一方、std::vectorの場合、挿入や削除一回当り、O(N)の時間が掛かるから、
N回それを繰り返すと、O(N^2)の時間が掛かる。
これは致命的で、Nを100倍すると、1万倍の時間になってしまう。
Stroustrup氏は、オーダーの考え方が経験的に身についてない。

976 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 02:06:32.68 ID:ExYz252Q.net]
>>962
[補足]
CPUの速度はこの30年間で、1コアあたりに限定しても300倍以上になっている。
良いアルゴリズムを使えば、扱うデータも300倍に増やすことが出来る。
ところが、std::vetcorを使った挿入や削除を行なっていた場合、300*300=9万倍
にクロック数が増

977 名前:ヲるから、CPUの速度がせっかく300倍になっても、300倍の
時間が掛かることになる。
一方、std::listを使った挿入や削除を行なっていた場合には、クロック数が
300倍で済むから、CPUが300倍になったことにより、時間は昔のままで済む。
つまり、std::listの場合、CPUの速度が300倍になった現在、
データを300倍に増やしても、挿入や削除が昔と同じ時間で済むのに対し、
std::vectorは、同じことをするとなんと昔の300倍の時間が掛かるということだ。

こういう基本をstroustrup氏は理解出来て無い。
探索の時間は関係無い。探索しなければいいのだから。
[]
[ここ壊れてます]

978 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 02:29:35.43 ID:ExYz252Q.net]
>>951
>稀なケースで「LinkedListがArrayListより速いことがある」なんていい年してイキっててもしょうもないだろう?
稀ではない。
今はCPUが速くなりすぎて実感がわかないだけ。
だから、遅いCPUでトレーニングした方が良いと言われている。

979 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 03:06:45.22 ID:EiHCMpy7.net]
プロファイルでは粘着というより、論破された時の憂さ晴らし自演が延々と続くパターン
ID:Lb4jZ7zf = ID:pMPEGjtK = ID:3DNXTGzR = ID:ExYz252Q +α
今回は ID:Mw8qZqut だな

980 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 08:26:05.03 ID:wI0qdr5j.net]
CPUが早くなったんだからRustで多少遅くなっても大丈夫



981 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 08:49:37.65 ID:pTzP7Jq7.net]
Goも大丈夫

982 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 08:52:02.51 ID:QB2FhiiS.net]
>>965
ID:Mw8qZqut だけどこの人と同一人物判定されるのは不名誉すぎるからやめてくれ

983 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 08:54:11.81 ID:5JJKT/6S.net]
>>968
そうかな?流れ的には水増し論に決着して放り投げてるよ

984 名前:962 mailto:sage [2022/12/10(土) 09:12:41.82 ID:pmPytGrf.net]
誤解は避けたいからいちおう書いとく

> ジジイと言うかその人は

これはもちろん連投してる哀れなID:ExYz252Qのことね
C++やハゲに文句言うとか身の程知らずもいいとこやわ

985 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 09:19:33.69 ID:5JJKT/6S.net]
>>970
その人C++スレの自称天才でRustに傾倒していてChatGPT並みに尤もらしい適当をこいている人

986 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 09:22:07.09 ID:5JJKT/6S.net]
その人自演が大好きなので ID:Mw8qZqut だとしてもおかしくない

987 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 09:25:57.47 ID:5JJKT/6S.net]
流れ的には水増しの話が再開するはずなので、ID:Mw8qZqut = >>968がどう反応するか楽しみ

988 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 09:30:48.75 ID:pmPytGrf.net]
>>971
C++スレも荒らされてるのか
自称天才の粘着力すげえな

989 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 11:09:35.00 ID:/zXB1Eur.net]
C++ vs Rust Part4建てとく?

990 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 12:35:14.53 ID:QB2FhiiS.net]
>>973
Androidのソースコード量については、
* コンパイラはカウントされていない
* 外部の依存関係はカウントされているぽい
ということで、事実関係についてはだいたい確定したのでは



991 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 13:03:40.38 ID:f/x7hc9i.net]
>>976
横からですが、その回答だと、適切かどうかに関して、はぐらかそうとしているだけでは?
論理的に考えてC++でboostを使ってhello_asioとか書いたら、
そのレポジトリの行数にboostのソースもカウントするのが適切かどうかと照らし合わせて考えて見ては?

992 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 13:23:37.96 ID:s9w4cjy9.net]
行数の正確さを保証しているのは行数をカウントするアルゴリズムの質だよ
だから、質を保証するために量を根拠にするのはもう違和感しかない

993 名前:デフォルトの名無しさん [2022/12/10(土) 14:01:34.35 ID:aynhf3Gg.net]
>>977
目的次第やろ

使ってるライブラリも含めてそのプログラムに含まれる脆弱性をカウントする際の分母として使いたいならboostのコードをカウントするのも一つの考え方

Googleが実際にどうカウントしたかは知らんけどRustとC++を異なる条件でカウントしてるんじゃなければここで何言っても無駄だよ

994 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 14:17:34.56 ID:CrLmIOQg.net]
糖質にかまうな

995 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 14:23:19.49 ID:++bfMBzJ.net]
盲目的に現状肯定する集団には見られたくないから言うけど
個人的には誤認する人が多発するから不適切だと思うよ

>目的次第
何の目的があって依存関係のソースもカンウトするのか、AndroidのRustチームの考えを知りたい

>>979
Androidがboost依存があって、boostソースがカウントされていない場合はどうなるの?
RustとC++を異なる条件でカウントしてる、に該当するよね

>>979がいう事が正しければ、新規ネイティブコード21%の下りでも依存関係ソースの増減も含めるのが同条件なんだよね?

996 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 14:29:10.10 ID:++bfMBzJ.net]
>>980
その発言で ID:CrLmIOQg の内容全部が地に落ちたよ

997 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 15:17:06.99 ID:hJa6mCIB.net]
>>981
仮に○○なら対等な条件の比較ではないという主張は真だと思うけど、
そもそもRustとC++が異なる条件で比較されてると考える根拠はなんかあるの?

998 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 16:30:04.48 ID:/zXB1Eur.net]
行数をカウントする目的:
利用状況の度合いをバカにも分かる数字で説明するため

依存関係を含めるのが適切か?:
数字を出すのが目的なのでどちらでもよい

999 名前:デフォルトの名無しさん [2022/12/10(土) 17:08:17.02 ID:+r0o6+3M.net]
>>981
>何の目的があって依存関係のソースもカンウトするのか、AndroidのRustチームの考えを知りたい

Rustチームとかじゃなくセキュリティ監査をするチームが計測してるんだぞ
本当に計測方法の詳細や理由が知りたいなら記事書いた本人にTwitterとかで聞けばいいよ
この辺のエンジニアは普通に答えてくれるぞ

1000 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 17:13:44.96 ID:bYLLjzjY.net]
>>970
>C++やハゲに文句言うとか身の程知らずもいいとこやわ
分かってはいたが、この板はレベル低いな。



1001 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 17:50:19.42 ID:8gOJz6B3.net]
次スレは平和になりますように

1002 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 17:51:40.13 ID:s9w4cjy9.net]
死者の数をカウントしてみろ、平和だぞ

1003 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 21:25:51.87 ID:AuQEELto.net]
Androidドメインに限定したコードの量を測るよりも、Androidに搭載されうるコードの量を測る方が適切だと思うから外部ライブラリ含んでいいんじゃね。

1004 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 22:05:26.23 ID:s9w4cjy9.net]
C,C++,Rustの三者は対等として、
C/C++とかいう概念はRustと対等か?

1005 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 64日 23時間 22分 13秒

1006 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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