22/06/27 08:17:03.45 gDlfKP6u.net
公式
URLリンク(www.rust-lang.org)
URLリンク(blog.rust-lang.org)
URLリンク(github.com)
Web上の実行環境
URLリンク(play.rust-lang.org)<)
※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
URLリンク(doc.rust-lang.org)
※Rustを学ぶ際に犯しがちな12の過ち
URLリンク(dystroy.org)
※Rustのasyncについて知りたければ「async-book」は必読
URLリンク(rust-lang.github.io)
※次スレは原則>>980が立てること
前スレ
Rust part15
スレリンク(tech板)
2:デフォルトの名無しさん
22/06/27 08:18:31.94 gDlfKP6u.net
Rust The Book (日本語版)
URLリンク(doc.rust-jp.rs)
Rust edition guide (日本語版)
URLリンク(doc.rust-jp.rs)
Rust by example (日本語版)
URLリンク(doc.rust-jp.rs)
Rust cookbook (日本語版)
URLリンク(uma0317.github.io)
Rust API guideline (日本語版)
URLリンク(sinkuu.github.io)
Rust nomicon book (日本語版)
URLリンク(doc.rust-jp.rs)
Rust async book (日本語版)
URLリンク(async-book-ja.netlify.app)
Rust WASM book (日本語版)
URLリンク(moshg.github.io)
Rust embeded book (日本語版)
URLリンク(tomoyuki-nakabayashi.github.io)
Rust enbeded discovery (日本語版)
URLリンク(tomoyuki-nakabayashi.github.io)
Rust Design Patterns (日本語版)
URLリンク(qiita.com)
URLリンク(qiita.com)
Rust API guideline (日本語版)
URLリンク(sinkuu.github.io)
3:デフォルトの名無しさん
22/06/27 08:20:20.52 gDlfKP6u.net
Rust CLI (Command Line Interface) apps Book
URLリンク(rust-cli.github.io)
Rust macro Book
URLリンク(danielkeep.github.io)
Rust Future Book
URLリンク(cfsamson.github.io)
Rust async-std Book
URLリンク(book.async.rs)
Rust tokio Book
URLリンク(tokio.rs)
Rust rustc Book
URLリンク(doc.rust-lang.org)
Rust rustdoc Book
URLリンク(doc.rust-lang.org)
Rust rustup Book
URLリンク(rust-lang.github.io)
Rust Cargo Book
URLリンク(doc.rust-lang.org)
Rust unstable Book
URLリンク(doc.rust-lang.org)
Rust Reference
URLリンク(doc.rust-lang.org)
Rust Standard Library
URLリンク(doc.rust-lang.org)
4:デフォルトの名無しさん
22/06/27 08:41:06.85 iHSX8+Sp.net
☆WebAssembly(WASM) URLリンク(webassembly.org) URLリンク(ja.m.wikipedia.org)
・Wasmer - The Universal WebAssembly Runtime URLリンク(wasmer.io)
-> WASI(WebAssembly System Interface)とEmscriptenに準拠したWASMを実行できるランタイム
・WAPM - WebAssembly Package Manager URLリンク(wapm.io)
-> WebAssembly製ツール/ライブラリのパッケージマネージャー
☆Rust
・wasm-pack - your favorite rust -> wasm workflow tool!
URLリンク(github.com)
-> WebAssemblyのrustcコンパイルサポート
・Yew - Rust / Wasm framework for building client web apps URLリンク(yew.rs)
-> WebAssembly によってマルチスレッドな Web アプリのフロントエンドを作ることができる、モダンな Rust のフレームワーク
☆最近のWebAssemblyのニュース
・Publickey - Enterprise IT × Cloud Computing × Web Technology / Blog より URLリンク(www.publickey1.jp)
・WebAssembly活用プロジェクト URLリンク(madewithwebassembly.com)
・WebAssemblyが気になるので調べてみた - Qiita URLリンク(qiita.com)
・WASMとRustはVue.js/React.jsを打倒するのか? - JSへの侵略の歴史 URLリンク(zenn.dev)
・Typescriptの次はRustかもしれない URLリンク(zenn.dev)
・WebAssemblyはJVMやeBPFのリバイバルではない WasmがWeb以外でもアツい理由 - ログミーTech URLリンク(logmi.jp)
・Rust GUI の決定版! Tauri を使ってクロスプラットフォームなデスクトップアプリを作ろう URLリンク(zenn.dev)
類似スレ
【wasm】ブラウザでC++。Emscriptenを語ろう スレリンク(tech板)
5:デフォルトの名無しさん
22/06/27 11:22:00.27 KIsxDRwt.net
前スレにあったrustupのnamingの話だけど
もともとはサブコマンドのないシェルスクリプトでrustをupdateするからrustup
元の意味からするとrustup updateは重複表現なんだけど
rustupを動詞として捉えずツール名の名詞として捉えればrustup updateは違和感ない
6:デフォルトの名無しさん
22/06/27 12:15:14.52 BV1DTZv2.net
rustupにサブコマンドがない時代なんてあったっけ?
rustupの前身のmultirustの頃からupdateサブコマンドはあったような
7:デフォルトの名無しさん
22/06/27 12:51:56.59 lmKSzJyY.net
updateのupじゃなくてsetupのupじゃないの?
意味的に
8:デフォルトの名無しさん
22/06/27 15:34:37.88 hKxUT5Kw.net
>>6
コード的には主にmultirust.sh -> multirust.rs -> rustup.rsなんだけど
名前はrustup.shから引き継がれてる
rustup.shはサブコマンドがなかった
rustup.rsは最初からサブコマンドがあったけどrustupと叩くと今のrustup update相当の処理(update_all_channels)をしてた
9:デフォルトの名無しさん
22/06/27 21:57:27.41 TFU41qtv.net
>>987
Stringを自己trimするtrim_in_place()を対称的に短く書くなら
fn trim_in_place(s: &mut String, mut f: impl FnMut(char) -> bool) {
if let Some(end) = s.rfind(|c| !f(c)) {
let end = s.ceil_char_boundary(end + 1);
s.truncate(end);
}
if let Some(start) = s.find(|c| !f(c)) {
s.drain(..start);
}
}
たとえわずかでも先にendを処理
fは char::is_whitespace など
ただし目的外使用なので長くなるけど置き換え
s.drain(..start);
↓
s.replace_range(..start, "");
こちらはunstableなので長くなるけど置き換え
let end = s.ceil_char_boundary(end + 1);
↓
let end = ((end + 1)..).filter(|&i| s.is_char_boundary(i)).next().unwrap();
ここでendはrfind()で発見済なのでend + 1でunwrap()可能
10:デフォルトの名無しさん
22/06/28 06:27:19.73 BuyF3SOs.net
drainとかsinkとかRustはわかりやすい絶妙なネーミングが多いな
11:デフォルトの名無しさん
22/06/28 10:43:40.67 dP6FappF.net
WebAssembly に一番適した言語と聞いて来ました
お世話になります
12:デフォルトの名無しさん
22/06/28 14:56:42.53 5u7YfLuV.net
>>11
地獄の入口へようこそ
13:デフォルトの名無しさん
22/06/28 16:01:32.46 /+DN4/Xk.net
WebAssemblyアプリ開発ではRustが一番人気、用途ではサーバレスが急上昇、ランタイムはWasmtime。The State of WebAssembly 2022 - Publickey
URLリンク(www.publickey1.jp)
14:デフォルトの名無しさん
22/06/28 16:03:15.75 ucMrCo9H.net
リーナスに認められて良かったな
15:デフォルトの名無しさん
22/06/28 16:10:40.89 hziWXk46.net
>>11
この門をくぐる者は一切の希望を捨てよ
16:デフォルトの名無しさん
22/06/28 16:21:33.94 9UGNj1/z.net
どの道だって希望なんてないよ。
比較的マシな道を探すだけ
17:デフォルトの名無しさん
22/06/28 18:52:34.41 EAIC//mO.net
>>14
やめとけ
Linuxの話題は
あわしろを召喚しちまうぞ
18:デフォルトの名無しさん
22/06/28 19:34:49.71 e581Ez58.net
>>17
志賀くんは志賀スレに帰ってください
19:デフォルトの名無しさん
22/06/28 20:32:29.27 +JjrPLHw.net
Rust is coming to Linux, says Torvalds
URLリンク(cloud7.news)
Linus Torvalds also announced some changes he plans to implement into Linux soon.
Most significantly, the open-source programming language, Rust might be included in the next release.
Torvalds stated that Rust will be introduced in a limited way.
Torvalds reminded the attempt to introduce the C++ programming language 25 years ago, which didn’t go as expected.
Compared to C, Rust is better at utilizing and protecting resources.
20:デフォルトの名無しさん
22/06/28 20:34:01.06 nuii8/Ul.net
>>19
当面は新規開発のドライバぐらいにしか使わないって話だっけ?
21:デフォルトの名無しさん
22/06/28 21:09:24 20pFpWMa.net
既に安定して動いているカーネル本体からスタートするのは非効率たから
新たに増えていくデバドラなどからRust導入
そしてRust>C>C++と評価されたことも大きい
22:デフォルトの名無しさん
22/06/28 21:14:03 nuii8/Ul.net
ドライバだとunsafe祭りになると思うけど、それでもRust活かせるのかな
23:デフォルトの名無しさん
22/06/28 21:23:20 20pFpWMa.net
Rustは標準ライブラリからしてunsafeだらけ
Rustのメリットはunsafe部分を局所的に閉じ込めることができること (他言語は全てがunsafe状態)
そして局所的に閉じ込めた部分の健全性を人間が確保すればプログラム全体の健全性がコンパイラにより保証されること
24:デフォルトの名無しさん
22/06/28 23:19:05.36 9UGNj1/z.net
C だとどこが「安全ではない」のかわからん。
unsafe がはっきりと切り離せる分だけ多少はマシ。
25:デフォルトの名無しさん
22/06/28 23:21:02.37 UTlbkk5U.net
>>18
おい荒らすな
26:デフォルトの名無しさん
22/06/28 23:53:24.19 EAIC//mO.net
>>19
やめとけ
Linuxの話題は
あわしろを召喚しちまうぞ
27:デフォルトの名無しさん
22/06/28 23:54:54.04 GLoxI7Da.net
Cたけでなくほとんとのプログラミング言語がデータ競合を見過ごす、あるいは、対応しても実行時にようやく気付いてエラー
Rustのようにコンパイル時エラーとしてくれるのはレア
28:デフォルトの名無しさん
22/06/28 23:59:16.02 ZKoUX8TI.net
>>18
あわしろは巣に帰れ。
29:デフォルトの名無しさん
22/06/29 04:43:12 wTdKgESK.net
結局allocを用意して、Resultを返すような別方言のRustを作っただけじゃん。こんなんでええのかよ、糞言語
30:デフォルトの名無しさん
22/06/29 08:04:17.65 qEG8UGib.net
>>29
Rust本体もそうなるんじゃないの?
31:デフォルトの名無しさん
22/06/29 09:29:30.30 MBU9aINq.net
>>29
何と戦ってるの?
32:デフォルトの名無しさん
22/06/29 09:48:50.80 0DT3duzl.net
mallocに失敗してパニックするかどうかは最終的にどうやって切り替える仕様になるわけ?
Cargo.tomlに書くとか?
33:デフォルトの名無しさん
22/06/29 10:00:12.87 RxSbHfnw.net
>>32
全体が一気に切り替わるようなのは多分想定されてない
Resultを返すAPIが追加される感じ
例えばtry_reserveなんかはnightlyでは実装済み
34:デフォルトの名無しさん
22/06/29 10:29:37.35 o1jl8+0D.net
話としては二段階あるんだよね
一つは昔からのcore::つまりいわゆるno std::環境
つまりヒープは標準ライブラリとして提供しない
BoxやVecやStringなどのヒープ利用以外はイテレータ含めて全て使える
ヒープは自分で管理するかそういうクレイトを使う
もう一つがstd::からのalloc::の分離
BoxやVecやStringは現在ここにある
Box::try_new()やVec::try_reserve()やString::try_reserve()を使ってアロケーション時のエラーを得ることも可能
この理解でよい?
35:デフォルトの名無しさん
22/06/29 12:52:13.13 FmyetX4I.net
>>33
try_reserveは1.57でstabilizeされてる
>>34
core::もalloc::もno_std用
一部コレクションのtry系メソッド以外はどういう形にするか明確な方針は決まってないんじゃないかな
Allocatorトレイトをstabilizeしていく方向は決まってるだろうけど
それを使った上位のAPIがどういう風になるかはわからない
36:デフォルトの名無しさん
22/06/29 13:45:27.71 o1jl8+0D.net
>>35
no_std用と言うのは言い過ぎかも
stdにてcoreやallocからuseしているため
37:デフォルトの名無しさん
22/06/29 14:16:46.78 XdEhzXWC.net
文脈考えなよ
38:デフォルトの名無しさん
22/06/29 17:53:19.15 2Zsw8Y9r.net
>>30 >>31
顔真っ赤www
39:デフォルトの名無しさん
22/06/29 18:28:59.03 wO7vqP7J.net
>>31みたいなレスしちゃった時点で負けなんだが本人が歳だけ食ってメンタル10代のこどおじだから面倒臭いんだよな
>>29
何と戦ってるの?
こんなのよくある問い詰められて二の句が告げなくて『なにが?』とか『なんのこと?』ってはぐらかしてる馬鹿なおっさんそのものなんだが本人気付いてないんだろうなw
40:デフォルトの名無しさん
22/06/29 19:04:20.88 XnJfgfHX.net
勝ち負け...?
41:デフォルトの名無しさん
22/06/29 19:27:35.51 IsSV4hIQ.net
いずれにせよ
ベアメタルなどの組み込みやOS開発向けがほとんどの用途
それ以外の影響なし普通の人々にとっては今まで通り
42:デフォルトの名無しさん
22/06/29 19:34:28.69 MBU9aINq.net
何か知らないが負けということでいいんじゃないかな
43:デフォルトの名無しさん
22/06/29 19:39:19.86 gsbD96Kr.net
やべえやつがひとりおります
44:デフォルトの名無しさん
22/06/29 19:53:31.44 5n1aZHdk.net
底辺社畜PG向け言語Rust
45:デフォルトの名無しさん
22/06/29 21:48:58.34 RzXMGtd7.net
質問失礼します。
初心者なので当たり前の事質問してたらすみません。
風化対策でTCを置くのは理解してTCを拠点内においてそのすぐ1マス開けて横にもう一個建築物を建てたのですが
そっちだけ風化してしまって崩れてました。これは何が原因なのでしょうか。
46:デフォルトの名無しさん
22/06/29 22:00:10.18 4HxK0x7A.net
>>45
URLリンク(itest.5ch.net)
こっちかな
47:デフォルトの名無しさん
22/06/29 22:04:21.14 1d6RU23A.net
Rustってそういうゲームだったんだな
微妙に興味わいた
48:デフォルトの名無しさん
22/06/29 22:10:07.93 RzXMGtd7.net
なるほど…どおりで皆が何いってるかがまったく理解できなかったわけですね。
自分が初心者だからだと思ってました。凄い恥ずかしいです。リンクまでありがとうございます!
49:デフォルトの名無しさん
22/06/30 00:54:31.20 uacoAllZ.net
マジボケなのかネタなのか判断に悩むなw
50:デフォルトの名無しさん
22/06/30 01:09:06.16 iRvhWgC6.net
redditでもゲームの方のrustの質問が来るのは珍しくない模様
51:デフォルトの名無しさん
22/06/30 08:24:56.17 cp0D79F2.net
Twitterで
ゲームのRustと紛らわしいからググラビリティがどうこう、いうツイートがかなりあるけど
それらのツイートがなければかなり検索楽になるから止めてほしい
52:デフォルトの名無しさん
22/06/30 08:29:33.75 M3oLoiTd.net
redditは確かあまりにゲームの書き込み多いからスクリプトでそれっぽいキーワード弾いてるんじゃなかったっけ?
今でもときどき書かれてはいるけど
53:デフォルトの名無しさん
22/06/30 23:08:04.50 AnwUVCfk.net
Rustは、JS上がりの人や、女性に人気が有る印象。
54:デフォルトの名無しさん
22/07/01 00:25:37.32 ESXQaW+s.net
>>53
Web系は時期にWebAssemblyが超使われるようになるだろう。
そうなるとWeb系の人はRustできないとWeb系の仕事ができないとなるから
嫌でも覚えるしかないだろうな。
そんな状況になるとRustはWebAssemblyのためのものって感じなるだろう
55:デフォルトの名無しさん
22/07/01 01:05:48.97 QsJqZKbw.net
ないないウェブはどんどん移り変わるツールチェインのトレンド追い続けるだけだからwasmやrustが大人気になってメインになることは100%ない
56:デフォルトの名無しさん
22/07/01 01:20:55.79 TBvdgDV9.net
かと言って組み込みも今動いているCコードをわざわざ書き換えることはないと思うからかなり先かな
57:デフォルトの名無しさん
22/07/01 02:59:59.38 ApKTYQSv.net
そのまま新しい言語が来てRustは忘れ去られるのであった(終)
58:デフォルトの名無しさん
22/07/01 03:03:39.63 2xG+zSps.net
そりゃMSですらRustに可能性を感じてWindowsのコアコンポーネントをRustで書き換えたりしてるけどだからと言ってC++がお役御免になるなんて考えちゃう奴はどうかしてるというかにわかの馬鹿かポジショントークのどちらかだよ
59:デフォルトの名無しさん
22/07/01 03:09:52.32 iXSnlIKp.net
まぁこの20~25年ずっとウェブはJS、デスクトップ・モバイルはJAVAだから何も変わってないんだよ現実はそんなものさ
60:デフォルトの名無しさん
22/07/01 03:32:40.77 pCpAVMfP.net
どこでも同じシンプルな結論が出ている
・既存のものを書き換えるのは無意味
・新たに作るものはRust 一択
61:デフォルトの名無しさん
22/07/01 10:02:10.38 fTPBYdla.net
USの状況見るとRustが広く使われるようになるのはもう疑う余地ないと思ってるけど
ここまで世の中の現実を知らない人がRustを推してるのを見ると悲しくなる
62:デフォルトの名無しさん
22/07/01 11:50:32.58 7FVP6Hci.net
C は使われる範囲が広すぎた。
JavaScript は使われる範囲が広すぎた。
必ずしもベストではない場面でも使われ過ぎた。
そういった「過剰に使われている状況」が改善されていくってだけだろう。
現状がベストならあえて変更する必要はない。
63:デフォルトの名無しさん
22/07/01 13:17:28.43 T/nKI+TL.net
5chに限らずネットだと言語だなんだドヤ顔で蘊蓄垂れてイキリ散らかしてる奴ばかりだがGoogleに腐るほど日本人、まともなアプリの開発できないとネタにされるくらいソフトウェア後進国のIT土人国家なのオチが綺麗過ぎて爆笑してしまう
このスレでも結局オチはエロゲっていうクソみたいなセンスのキチガイしかいないからなお前らがRust推すほどこりゃダメだって思うわ
64:デフォルトの名無しさん
22/07/01 13:34:36.46 6BKJVwkC.net
エロは全人類共通の性技(正義)
65:デフォルトの名無しさん
22/07/01 13:37:31.87 fF+Ny/hr.net
C/C++よりコンパクトに機能が高く書きやすいからRustを使っている
他の言語は遅くて論外
66:デフォルトの名無しさん
22/07/01 13:42:34.60 UdT3FWB5.net
JSをサーバーサイドに使うのはどうなんかね?
速さは性能やらCDNでごまかせるけど、RUSTやC++とかで出来るならそっちのほうが良さそうな気がする
まあPHP使ってる雑魚だから現状関係ないけど
67:デフォルトの名無しさん
22/07/01 14:03:44.85 8rqDa7Vf.net
用途や状況に合わせて言語は使い分ければいい
ひとくちにWebと言っても用途も状況も様々
68:デフォルトの名無しさん
22/07/01 14:14:38.28 EeNr3/+w.net
RustRust言うけどこのスレの人間たちもRustでは一日1000行もコード書いてないだろ
69:デフォルトの名無しさん
22/07/01 14:44:33.26 7FVP6Hci.net
>>66
ウェブの表層のほとんどは「ビジネスロジックの記述」をやりたい。
Rust や C++ は良くも悪くも機械に対する指示としての側面が大きい。
ビジネスと機械の間を埋めるのがエンジニアの役割ではあるんだが、
ビジネス寄りのエンジニアとガチ技術寄りのエンジニアで棲み分けが有る。
もちろん何だって速いに越したことは無いが、
ソフトウェアをガチガチにチューニングしたって限界があるからなぁ。
頑張ってソフトウェアをチューニングしてもせいぜい二倍とか三倍とか程度にしか伸びん。
ビジネスが拡大すれば再現なく高い性能が要る (可能性が有る) わけで、
必要なときに機械の数を倍にすれば倍の性能になるデザインのほうが重要なんだよ。
70:デフォルトの名無しさん
22/07/01 15:16:38.49 5qHSWxfW.net
俺は楽だからwebも含めて大抵はrustで書いてるな
71:デフォルトの名無しさん
22/07/01 15:59:50 6Fa4fCYf.net
こちらはまずはバックエンドとスクレーパー方面だけRust化した
フロントエンドはこれから
72:デフォルトの名無しさん
22/07/01 16:39:02.14 aPWs3jPS.net
お前らは日本人あるあるで手段と目的を履き違えてる奴ばかりなんだよ
御宅を並べるのは中国にすら20年遅れてしまったソフトウェア分野で結果出してからやれお前らみたいなの逆に迷惑
ウェブつながりのつい最近の話でNode-Sass(LibSass)が非推奨になりDart-Sassになった理由は色々言われているが要はC++でsassの実装は極めて難しくLibSassをメンテする・できるボランティアがいなくなったからなわけで
じゃあお前らご自慢のRustでLibSass書き直せよ?お前らなら余裕だろ?結果出してくれよ?
お前らみたいにネットのコメントだけでイキってる奴らって最高にダサい
73:デフォルトの名無しさん
22/07/01 17:47:49.60 7QFFYcwX.net
tauriってrustとjsは同時にデバッグできるのん?
74:デフォルトの名無しさん
22/07/01 18:22:07.89 coxy+5j4.net
ドキュメント読む限りでは
Rustは他のRustプログラムと同様にgdb/lldb
jsはWebViewのデバッガを利用することになるようだが
75:デフォルトの名無しさん
22/07/01 20:10:55.31 85aMWYB4.net
>>73
公式ドキュメントの方法じゃないけどVSCodeのrust-analyzer使えばlaunch.jsonやtasks.json書かなくても簡単にRustのデバッグできるよ
UIは実行後のウィンドウでCtrl+Shift+iでWebView Consoleが開くからconsole.logはこっちのコンソールで確認できる
ただUIのjsのブレークがうまくいかないからこっちは俺が教えてほしい
76:デフォルトの名無しさん
22/07/01 20:21:51.18 EeNr3/+w.net
出来ても結局自分でライブラリ類は書かなきゃ行けないんでしょ?
jsの大量のライブラリが使えるならいいんだけど
77:デフォルトの名無しさん
22/07/01 21:22:16.36 KDX5NQEk.net
>>72
なぜ失敗altJS言語なんかに頼ってるんだ?
当然Rust版sassもある
78:デフォルトの名無しさん
22/07/02 00:08:31.01 AmkG6Kqz.net
>>68
>Rustでは一日1000行もコード書いてないだろ
日本のITの主力のドカタ向けのRustの仕事はまだほとんどないだろうからな。
だから、いまRustしている奴の多くは個人の趣味でRustしている感じだろうし。
俺的にはRustを使った社内システムの開発とかやっているレベルで激すごいなって思う
Rustがメジャーになれば受注案件でRustも使うってなるんだろうが
79:デフォルトの名無しさん
22/07/02 02:58:41.46 e9/H958U.net
現実を直視できないアホばっか
Rustの案件なんてあるわけないだろ都内ですらC++のドライバ開発で人材集めるの相当苦労するのにRustでプロダクションクオリティで書けるPGがいたとして名抜きの奴隷なんてやるわけない
だからそんなプロジェクトはないし案件が発注されることもない
80:デフォルトの名無しさん
22/07/02 06:04:06.91 snCDtfbl.net
なるほどRustを叩いているのは受注土方だったんだな
こちらは自社開発だから便利で安全で高速なRustを普通に採用できている
81:デフォルトの名無しさん
22/07/02 07:01:32.45 rBgXmnU4.net
ローカルなツールを自分一人でシコシコ作ってるってパターンだろw
82:デフォルトの名無しさん
22/07/02 08:08:38.42 BtqLg7Vq.net
>>80
複オジ虚言癖は治そうぜ
83:デフォルトの名無しさん
22/07/02 08:15:05.98 BolvizBW.net
現実にRust利用がどんどん広がっていってる現状に嫉妬してるおまえらはRustアンチスレの方へ行けよ
84:デフォルトの名無しさん
22/07/02 09:33:07 At3W7bIA.net
> 現実にRust利用がどんどん広がっていってる
>>83の脳内現実w
85:デフォルトの名無しさん
22/07/02 09:49:00.17 HrEq3hU6.net
自社開発製品
・FizzBuzzイテレータ
・カウントアップイテレータ
・フィボナッチイテレータ
当社製品はすべてジェネリック対応
型の最大値を超えると自動的にイテレート終了
Rust製で安心安全高速!
5ちゃんねるユーザー大絶賛!!
「所有権複製論」の複オジ先生自ら開発!!!
86:デフォルトの名無しさん
22/07/02 11:22:31.41 1Wo0Z6fx.net
>>85
それは自社開発じゃなくて自宅開発
87:デフォルトの名無しさん
22/07/02 12:45:33.26 yGSrF2fX.net
このRustアンチ
いつも不利になると作り出した仮想敵叩きへと逃げ込むな
88:デフォルトの名無しさん
22/07/02 13:49:27 TX4Qhw1m.net
WebAssembly で圧倒的需要を勝ち取ったRust の勝利
89:デフォルトの名無しさん
22/07/02 15:30:51 SW5ywFpw.net
>>85
5ちゃんねるユーザーからゴミ扱い!!の間違いでは?
90:デフォルトの名無しさん
22/07/02 16:31:59.49 At3W7bIA.net
>>89
どう見ても皮肉だろ...
91:デフォルトの名無しさん
22/07/02 18:21:13.38 2aQtTORk.net
自演自画自賛してたから
大絶賛でも間違いではない
いや、間違いか
92:デフォルトの名無しさん
22/07/02 18:32:55.56 ZP/ubSg9.net
トヨタがRust経験者募集してるのにな
93:デフォルトの名無しさん
22/07/02 19:02:42.47 9mM8C95j.net
>>88
Wasmで、DOM直書きできるのは、今のところRustしかないことが
いまのWasmを書く際のRust人気になってるようだ。
しかし、今後、ライブラリの中にDOM操作を隠蔽できてしまえば、
ライブラリを使う限り自分でDOM操作はしなくて良くなるからDOM直書きは
不要になる。
94:デフォルトの名無しさん
22/07/02 19:15:03.41 XVh8wB4/.net
>>92
ソースよろしく
95:デフォルトの名無しさん
22/07/02 21:51:05.68 uYWMd8XN.net
>>93
君は日本語を直書きできるようにしたほうがいいんじゃないか?
96:デフォルトの名無しさん
22/07/03 00:47:23 dzYoxo9e.net
>>95
現段階でWasmを使おうとしている人の大部分は、
「WebプログラミングはHTMLとDOM操作で行うもの」
という固定観念があるので、それが直接的に出来るRustを使おうとしていると
言うことだ。
しかし、DOM操作を関数の中に閉じ込めてしまえば、DOM操作と言う概念を
一切合財忘れてしまって、Windowsプログラミングのような手法でWeb
プログラミングできるようになる。
97:デフォルトの名無しさん
22/07/03 00:47:34 dzYoxo9e.net
>>95
現段階でWasmを使おうとしている人の大部分は、
「WebプログラミングはHTMLとDOM操作で行うもの」
という固定観念があるので、それが直接的に出来るRustを使おうとしていると
言うことだ。
しかし、DOM操作を関数の中に閉じ込めてしまえば、DOM操作と言う概念を
一切合財忘れてしまって、Windowsプログラミングのような手法でWeb
プログラミングできるようになる。
98:デフォルトの名無しさん
22/07/03 00:49:19 dzYoxo9e.net
>>97
いったんそうなってしまうと、WebプログラミングにDOM操作が全く必要なく
なってしまうので、WasmにおけるRustのアドバンテージが消失してしまう
可能性が高い。
99:デフォルトの名無しさん
22/07/03 01:58:58 HrPxrbHk.net
rustでもDOM操作はJS経由してるし直接的にできるわけではないでしょ
wasmでrustが有利とされているのはランタイムが薄くてバイナリサイズが小さくできる点では
100:デフォルトの名無しさん
22/07/03 02:21:32.37 dzYoxo9e.net
>>99
そもそもJSの時点で速度に不満の有る人がどれだけいることか、という点がある。
C++なら既存の資産もあるし、nativeアプリと互換性を持たせることが出来る
メリットもあるが、Rustにはない。
101:デフォルトの名無しさん
22/07/03 02:21:34.94 dzYoxo9e.net
>>99
そもそもJSの時点で速度に不満の有る人がどれだけいることか、という点がある。
C++なら既存の資産もあるし、nativeアプリと互換性を持たせることが出来る
メリットもあるが、Rustにはない。
102:デフォルトの名無しさん
22/07/03 02:26:10.32 dzYoxo9e.net
twitterを見ていると、Rust派の人は、JSより高速になることをメリットと考えている
ようだが、JS自体がもともと結構速いので、多くの用途では実際にはほとんど
体感速度は高速にはならない。
なので、Wasmの意味が無い、用途が無い、という結論に至ってしまう。
これはそもそも、Wasmが作られた経緯を無視しているから。
WasmはC++をブラウザで使いたい、という事から始まったもの。
EmscriptenでC++をasm.js化していたものが、それをさらに効率よくするために
生み出された。
だから、もともとJSを高速化したいことが目的ではなく、C++を使うことが
目的だった。
Rustでは駄目なのだ。Rustでやろうとするから、そもそも論に陥る。
そもそも、そんなに高速にする意味があるのか、という。
103:デフォルトの名無しさん
22/07/03 02:29:04.40 dzYoxo9e.net
Rustはメンドクサイのだ。
だから、「そこまでして高速にする必要があるのか」という疑問に至る。
ところが、C++はRustほどはめんどくさくない。
普通に直感的に書いたものが、JSの5倍程度の速さを安定してたたき出す。
なので、C++で書くと楽なので意味があるが、Rustはめんどくさいので意味が無い、
104:> ということになり、Wasm不要論へと繋がっていく。 しかしそれは、Rustを使おうとしたことがそもそも間違いなのだ。
105:デフォルトの名無しさん
22/07/03 03:29:33.96 IpMp4A6f.net
てか明らかにvueもreactもいじったことない奴が騒いでるだけだろ。
まともに相手するだけ無駄だわ。
106:デフォルトの名無しさん
22/07/03 03:50:27.37 A6Umne1m.net
世界中のIT技術者から愛されているプログラミング言語はなにか。
プログラミング関連のQ&Aサイト「Stack Overflow」を運営する米Stack Exchangeがそのような調査結果を発表した。
各言語の「Loved」(愛している)と「Dreaded」(恐れている)の比率でLovedが最も高かったのは「Rust」(86.73%)で7年連続で1位になった。
回答数は7万1467件。
URLリンク(www.itmedia.co.jp)
107:デフォルトの名無しさん
22/07/03 03:54:07.92 A6Umne1m.net
URLリンク(www.atmarkit.co.jp)
「WebAssemblyアプリケーションの作成に使用している言語は何か」と質問したところ、Rustが最も多くの回答を集めた。
「WebAssemblyアプリケーションの作成に今後最も使用したい言語は何か」という質問でも、Rustを挙げた回答が最も多かった。
108:デフォルトの名無しさん
22/07/03 07:40:44.40 xnM4EaFU.net
そりゃそうなるわな
既存のメンテ以外ではC++で書くことはない
時間とともにRust一色となるだろう
109:デフォルトの名無しさん
22/07/03 08:33:17.69 tt1RzXNI.net
Rustは圧倒的にコーティングしやすい
様々な近代的なパラダイムを洗練して採り入れたことが大きい
メモリ解放も完全自動で気にしなくていいのにC並に高速というオマケ付き
110:デフォルトの名無しさん
22/07/03 09:36:25.32 yj7fRD7v.net
こういう頭悪いのいい加減やめろって
複オジさん
111:デフォルトの名無しさん
22/07/03 09:40:08.35 0zvrEFac.net
大きな代償はあるけどな
112:デフォルトの名無しさん
22/07/03 10:48:20.41 +dvng9gb.net
>>108
安全安心のおまけもついてくる
>>110
Rustに大きな代償はない
113:デフォルトの名無しさん
22/07/03 11:37:22.22 BkE0C3wS.net
煩雑。
参照でツリーが作れない。
リンクリストが本来の性能を引き出せない。
114:デフォルトの名無しさん
22/07/03 11:38:06.57 BkE0C3wS.net
これらのRustの問題点は、教授レベルでも理解出来てない人が多い。
115:デフォルトの名無しさん
22/07/03 11:48:29.39 xlXEUxdt.net
教授レベル?!
複オジ大先生 vs 数学100点大先生のやり取りはいつもいつも有意義有意義ww
116:デフォルトの名無しさん
22/07/03 12:04:57.77 0zvrEFac.net
今日日曜だけどつまらない書き込みしてんじゃないぞ
一日最低1000行書かないとレスしたらダメだぞ
117:デフォルトの名無しさん
22/07/03 12:06:35.28 0zvrEFac.net
ライフタイムがらみで一日なんどかキーボードかマウスを投げたくなる
自動で判定しろよ
118:デフォルトの名無しさん
22/07/03 12:53:49.06 E6Fi7aBt.net
>>116
そんな悩むようなことか?
そこまで酷いのは何か基本理解の欠如があるのではないか
簡単な具体例を出すことを勧める
119:デフォルトの名無しさん
22/07/03 13:33:15.09 /eA4inlP.net
オブジェクトの寿命に関するルールは実際には C++ とそれほど差が無い。
厳密に検証するということと、検証に必要なちょっとしたアノテーションが必要ってだけ。
120:デフォルトの名無しさん
22/07/03 14:26:00.76 HrPxrbHk.net
1000行書くという謎の目標にこだわってるからライフタイムの理解がおろそかになってるのでは
エラーが出るたびに原因をしっかり調べれば同じ過ちを何度も繰り返すことはなくなるでしょ
121:デフォルトの名無しさん
22/07/03 14:38:47.08 Tm7q4JxH.net
登大遊は凡人レベルのコードでいいなら1日1万行は余裕で書けるって豪語してて草生えたな
一時期は天才少年プログラマーと持て囃されてた彼も所詮日本の凡才駄プログラマーだったな
彼を見てるとわかるが日本人は手段にこだわって目的を達成できずに結果残せないないアホばかりなんよ
SNSやナレッジコミュニティやオフ会でドヤ顔で偉そうに蘊蓄たれてイキリ散らかしてるやつばかりなのって要するに日本の終わってるゼネコンビジネスIT業界で楽しみを見出せる要素がそこしかないからなんだってことよ
如何に日本のプログラマーがゴミで哀れな奴らかわかる
122:デフォルトの名無しさん
22/07/03 15:03:07.11 E6Fi7aBt.net
そもそもコードを書く時間よりもその
コードのリファクタリングなどの時間の方が多い
そしてリファクタリングでは行数は減る方向が多い
書く行数の多さを�
123:Cにするのは質ベースより量ベースの典型的なダメパターン
124:デフォルトの名無しさん
22/07/03 15:32:59.76 EctOodKi.net
普通にプログラミングするには問題ない程度にライフタイムを理解した上でも、
Rustには沢山の欠点が有り、ライフタイムをこれ以上理解しても、それは
解決しないと思ってる。
なぜなら言語そのものが持つ欠点だから。
125:デフォルトの名無しさん
22/07/03 16:05:52 /eA4inlP.net
それはそう。
足りない諸々は unsafe でやれ (プログラマが正しさを保証しろ) というデザインであって、全部を面倒見れるとは誰も思ってないよ。
126:デフォルトの名無しさん
22/07/03 16:42:05.24 HrPxrbHk.net
コード例ちょうだいよ
127:デフォルトの名無しさん
22/07/03 17:02:40.60 j5zH7gpx.net
大先生方wとまともに議論が成り立つわけないじゃんww
128:デフォルトの名無しさん
22/07/03 17:03:35.61 EctOodKi.net
>>123
しかし、Rustの方式では、ある種のアルゴリズムは、unsafe の中だけに
閉じ込めきれないことがあり、結局、アプリでそのアルゴリズムを本来の
効率では使えないことがある。
これも言ってることを理解するには経験と深いイマジネーションが必要なので
反論してくる人が居てもその反論が間違いで、Rustの欠点として本当に存在
している。
昔、C言語が登場した頃、アセンブラほどには速度を引き出せ無い事が有ったが、
大事な部分の関数をアセンブリコードで書けばそれで解決した。だから、
C言語がこんなに普及した。
ところが、Rustでは、それと同じ事が出来ない。
unsafeの中だけに閉じ込めきれず、「はみ出してくる」部分がsafeに扱えないので破綻してしまう。
129:デフォルトの名無しさん
22/07/03 18:00:07.94 K4HcDkkQ.net
具体性の欠片もないフワフワした話しかできないんなら黙ってりゃいいのにw
130:デフォルトの名無しさん
22/07/03 21:50:25.68 HrPxrbHk.net
linked listの人の完全論破されたら潜伏してほとぼりが冷めてから全く同じ主張を繰り返すムーブ何回目だよ
131:デフォルトの名無しさん
22/07/03 22:08:21.67 tiLDs1XL.net
>>126
具体的なことを何一つ言えない時点で話にすらならないが
一つ重要なアドバイスをしてあげよう
unsafeとは他の言語と同じ状態ということ
つまりunsafeについて批判すればするほどそれはRust以外の言語がいかにダメなのかを語っていることになる
ちなみにRustはunsafeの中でC言語と同じことができるしもちろんインラインアセンブラも書ける
つまりRustはC言語と同じ機能及び性能を有している側面がまず第一としてある
その上で外部を巻き込むことなくunsafeな部分を内部に完全に閉じ込めた各モジュール例えば標準ライブラリなどを次々と生み出すことにも成功している
そしてRustコンパイラが安全性を保証するプログラムを現実に書くことができることを実証してきた
だからこそIT大手各社が共同でRustを支持する状況にまでなったのだ
132:デフォルトの名無しさん
22/07/03 22:47:34.33 a+FSzkH8.net
なんか違う気がする
133:デフォルトの名無しさん
22/07/03 23:17:08.11 x9P0i8er.net
なんか違うというレベルじゃなく一番大事なところが間違ってるよ
134:デフォルトの名無しさん
22/07/03 23:41:56.43 ha/kcOac.net
このスレでよく見かけるパターン
Rustアンチな人は不利になると「なんか違う」「間違ってる」など呟くが具体的には何も言えない
135:デフォルトの名無しさん
22/07/03 23:48:10.53 uYnkpWRD.net
このスレじゃなくて5chすべてがそうなんだよ馬鹿www
こんな便所の落書きにすら劣るキチガイの巣窟で正論打っても意味ねーんだよ
こいつらはこいつら自身が一番嫌いなDQNやチンピラと同じ大いなる無駄なことして暇つぶしてるガイジどもなんだよwww
136:デフォルトの名無しさん
22/07/03 23:57:49 vZYSRByq.net
複オジは信者の自分以外はみんなアンチにみえちゃうみたいw
137:デフォルトの名無しさん
22/07/04 00:48:50.97 H2jYU4qp.net
cと同じに欠けるってのは明らかに嘘だろ。メモリモデルが違いすぎるっつーの。
138:デフォルトの名無しさん
22/07/04 01:01:44.47 zU5p2DDn.net
>>129
あなたは理解できてない。
139:デフォルトの名無しさん
22/07/04 01:54:43.58 3k8jHKP2.net
>>135
たとえば?
140:デフォルトの名無しさん
22/07/04 02:12:28.58 WMds9h9Q.net
rustには定義されたメモリモデルはないわけだが何を比較してCと違うと言っているの?
URLリンク(doc.rust-lang.org)
141:デフォルトの名無しさん
22/07/04 03:21:25.34 zU5p2DDn.net
>>135
「メモリモデル」という言い方は、PC-9801のような16BIT MS-DOS時代に
別の意味で使っていたから混乱を招くが、言いたいことは分かる。
142:デフォルトの名無しさん
22/07/04 04:54:10.56 086teQVY.net
言いたいことが分かるなら説明すればいいのに...
143:デフォルトの名無しさん
22/07/04 07:57:34.42 aE2+UZrf.net
>>139
結局のところ>>129で合っているわけか
144:デフォルトの名無しさん
22/07/04 09:03:48.35 tfDB1jS/.net
>>138
そんな真面目な用語じゃなくて
プログラマがメモリに対して持つメンタルモデルとかそのくらいの意味ではないかと思われる
145:デフォルトの名無しさん
22/07/04 09:23:30 YSvCn/0F.net
メンタルモデルw
146:デフォルトの名無しさん
22/07/04 09:24:13 WMds9h9Q.net
>>142
そのレベルの話だとしてもスタックやヒープの使い方はrustもcも同じだよね
何をもって違いすぎると言っているのかがわからん
147:デフォルトの名無しさん
22/07/04 11:11:40 1aJxC781.net
>>129
>unsafeとは他の言語と同じ状態ということ
unsafeでもRust特有のメリットもあればデメリットもある
特にC/C++とは担保されてるsafetyのレベルが根本的に違うので「unsafeなら他の言語と同じ」とか言ってる人はunsafeをまるで理解してないので騙されないように
148:デフォルトの名無しさん
22/07/04 11:57:37 DrP+xMl0.net
そこはあまり本質的じゃないな
Rustは機能的にも速度的にもC言語の代替となれる点が本質だろう
そのうえでRustは非常に大きなプラスαがあるからC/C++は不要となった
149:デフォルトの名無しさん
22/07/04 12:04:57 RBYxpWsA.net
Rustの側で書き換えないから
let a=99;
とかした奴をCに渡してC側で書き換えるのってアウトだよね?
150:デフォルトの名無しさん
22/07/04 12:06:52 qOfLavvD.net
>>146
何の本質??
151:デフォルトの名無しさん
22/07/04 12:45:51.46 rY6uXQUu.net
>>142
メンタルモデルなんて言葉ねーよ、ハゲ
152:デフォルトの名無しさん
22/07/04 12:48:07.99 RggUqH9I.net
Rustの登場でC/C++が要らなくなったのは当然
>>147
まずはRustの初歩を学習必須
Rustではlet mut a = 99; とmutを指定すればその変数が書き替え可能
呼び出し先で書き替えたいならば
まずRustの関数を呼び出す時は &mut a と可変参照を渡せば呼び出し先で書き替え可能
Cの関数を呼び出す時はそれを *mut とポインタにして渡せば呼び出し先で書き替え可能
153:デフォルトの名無しさん
22/07/04 12:51:14.14 iNsmlcex.net
>>146
全てunsafeにでもしない限り、効率を落とさずには代替になれない例が有ると言っている。
ポインタ値をアプリ全体でLinkedListのノードを識別するための id 値として
利用している場合だ。
index 番号では効率が劇的に下がるケースが多い。
154:デフォルトの名無しさん
22/07/04 13:07:11.60 EPYowFm9.net
>>151
その件に限らず全てのケースで以下が成立する
基本事項: RustではCと同じ速度&同じ安全度で常に全ての実装が可能
追加事項: RustではCと同じ速度&完全に安全なインタフェースで多くの実装が可能
したがってCが不要となったとの話はもちろん正しい
155:デフォルトの名無しさん
22/07/04 13:15:16.22 tfDB1jS/.net
&a as *const _ as *mut _
156:デフォルトの名無しさん
22/07/04 13:24:41.08 iNsmlcex.net
>>152
あなたの理解は浅い。
157:デフォルトの名無しさん
22/07/04 13:39:33.82 Lyc/Sj1E.net
>>153
それはmut宣言していない変数を(先のC関数もしくはRust unsafeで)書き換えてしまうことになるためあまりよろしくない
書き替えるならばmut変数のmut参照を直接*mutにした方が良いのでは
let mut a: 型名 = 初期値;
c_func( & mut a as *mut _ )
>>154
それは>>152で正しい
158:デフォルトの名無しさん
22/07/04 13:43:31 NdI05vlq.net
すべての言語にunsafeがあればいいよね
159:デフォルトの名無しさん
22/07/04 14:00:59 WMds9h9Q.net
>>151
ベンチマークください
160:デフォルトの名無しさん
22/07/04 14:07:26.39 V2xsx4Ai.net
>>147
FFI呼び出しに要求されるsafetyを満たしてないと言う意味ではアウトだけどそれがどうかした?
161:デフォルトの名無しさん
22/07/04 14:13:33.00 hjCO09br.net
まーた複オジ vs 100点オジの低レベルな言い争いになってるから
隔離スレ復活させたほうがいいな
162:デフォルトの名無しさん
22/07/04 15:40:19.20 iNsmlcex.net
>>155
頭の悪い人は黙ってろ。
163:デフォルトの名無しさん
22/07/04 16:04:58.57 ttcTbGc1.net
>>160
>>155に間違いは無いようだし
君はさっきから的外れなことばかり書いてるような
164:デフォルトの名無しさん
22/07/04 17:29:54.81 3k8jHKP2.net
>>151
それがどうしたというんだ?
何を言いたいのかわからん。
165:デフォルトの名無しさん
22/07/04 18:02:37.22 iNsmlcex.net
>>162
馬鹿には何を言っても理解できない。
166:デフォルトの名無しさん
22/07/04 18:07:12.10 3k8jHKP2.net
> 全てunsafeにでもしない限り
誰も問題にしてないところを勝手に取り上げるのはストローマン論法っていうんだぜ!
167:デフォルトの名無しさん
22/07/04 18:46:54.41 tF6z07pc.net
>>151
なにを問題にしてるのかよくわからんが必要なら全てunsafeにすればいいやん
それでもCとかと同じでそれ以外のケースではRustの方がより安全なんだし
168:デフォルトの名無しさん
22/07/04 19:49:32.85 FTPm+Svf.net
リーナスがこのスレを見ていたらLinuxに採用されることはなかっただろうね
169:デフォルトの名無しさん
22/07/04 19:55:55.02 7t9P5Iu7.net
みたらそっ閉じするだろw
170:デフォルトの名無しさん
22/07/04 19:58:11.73 VzaqPz19.net
>>143
センチメンタルな用語ですね!
171:デフォルトの名無しさん
22/07/04 20:06:09.66 WMds9h9Q.net
メンタルモデルってプログラマー界隈ではよく知られた言葉だと思ってたんだけど通じない人もいるのね
172:デフォルトの名無しさん
22/07/04 20:26:03.13 rP4GYYNg.net
プログラマー界隈で言ってる奴を見たことないしそもそも違い云々の時にそんなもん出されても困惑するだけ
173:デフォルトの名無しさん
22/07/04 20:26:54.96 55lLLVgr.net
>>169
普通は通じるからご心配なく
174:デフォルトの名無しさん
22/07/04 21:09:07.84 LgYZqAbq.net
>>169
自分の周りでも普通に通じるけど、よく考えるとどこで知った用語か謎かも…
なんか有名なプログラミング系の本とかに書いてあったっけ?
175:デフォルトの名無しさん
22/07/04 21:22:26 k0bSAJLz.net
適当な造語をさも常識のように語るのはやめようね
そもそもそんな言葉使わなければいい話
176:デフォルトの名無しさん
22/07/04 21:31:48.17 rrB3dRAB.net
>>172
プログラミングのコンテキストでよく使われるようになったのはUI/UXデザイン分野でよく使われてたからじゃないかな
ドン・ノーマンの「誰のためのデザイン?」とかかなり昔の本から使われてるよ
177:デフォルトの名無しさん
22/07/04 21:34:43.82 tfDB1jS/.net
そもそも拾う必要すら無かったレスを拾ったばっかりによく分からん論争に
なんかすんませんな
178:デフォルトの名無しさん
22/07/04 21:35:54.46 WMds9h9Q.net
>>172
元々は認知心理学の用語でユーザーインターフェイスとか分野から広まって広く知られるようになったんじゃないかと思う
初出は1943年とのこと
URLリンク(ja.m.wikipedia.org)
179:デフォルトの名無しさん
22/07/04 21:44:59.75 Xyf5Vl2i.net
複オジ大先生がそんな言葉ないとおっしゃってるんだぞ!
スーパー自宅開発者の複オジ大先生が間違ってるとでも言うのか!!
180:デフォルトの名無しさん
22/07/04 21:56:46.09 UzLOsPAb.net
もはやここが隔離スレ状態
181:デフォルトの名無しさん
22/07/05 02:12:03.31 WHTTcdQX.net
>>165
「全てunsafe」だぞ。
アプリ全体をunsafeということだ。
なら、C/C++で十分。
182:デフォルトの名無しさん
22/07/05 04:52:44.77 86ZbPeAT.net
だから
> ポインタ値をアプリ全体でLinkedListのノードを識別するための id 値として利用している場合だ。
の場合だけだろ
お前はそんな特殊なアプリしか作らないのかよw
そもそもノードの識別を全体にばらまいてるとか設計がタコなんじゃね?
183:デフォルトの名無しさん
22/07/05 05:08:33.40 WHTTcdQX.net
>>180
RubyやJava、オブジェクトの「識別番号」が取得できることがあるが、
それはポインタ値だ。通し番号ではない。
つまり、C言語では伝統的に、リンクトリストのノードを識別するために
ポインタ値が使われている。そしてそれこそがリンクリストの本来の使い方。
だれかが間違えて、通し番号で識別する習慣が生まれてしまったが、それは
集団幻覚みたいなもので、誤った使い方だ。
184:デフォルトの名無しさん
22/07/05 05:22:06.16 b2cot2gP.net
で、何が言いたいんだ?
Linked Listをアプリ全体にばらまいてるアホ設計を正当化しようとしてるのか?w
185:デフォルトの名無しさん
22/07/05 06:08:27.82 8LqsNmpu.net
>>177
気に入らないやつを片っ端から複おじ認定するのは荒らしなんだろうか
186:デフォルトの名無しさん
22/07/05 06:20:58.64 Nla2AFrI.net
>>183
その子はキチガイ
>>159でも気に入らない二人だけが書き込みしてるように見えてる
187:デフォルトの名無しさん
22/07/05 07:54:16.72 n+I8xvZo.net
>>181
GC言語では、ポインタと言ってもコストの高いポインタとなっていて、コストの高いガベージコレクションで回収する。
それに加えて、データ競合を防ぐには更に何らかの競合回避コストも加わってくる。
一方で、C/C++ではリンクされたノードリストからノードを外す時に、そのライブラリがノードを解放してしまうと、そこへのポインタを保持していた場合にダングリング発生。
それを回避するためにはshared_ptrなどのコストの高いポインタを使わざるを得ない。
ちなみにC++のshared_ptrはスレッドセーフだからマルチスレッド時でも大丈夫だが、逆に言えばシングルスレッド時には無駄なコストがかかっている。
Rustでは、そこはRcとArcの2種類が提供されており、シングルスレッド時にはコストの低いRc使用、マルチスレッド時にはRcだとコンパイルエラーとなってくれてArc使用と、最小限のコストで済む。
このようにノード解放の観点だけ見ても、考慮すべきことをRustコンパイラは適切に指摘してくれる。
188:デフォルトの名無しさん
22/07/05 10:29:00 1zzLwZyb.net
なんでずっとRustスレでRustのセールストークやってるんだ?
189:デフォルトの名無しさん
22/07/05 10:43:19 XxVp5yEy.net
RustスレでRustのネガキャンやってるやつよりマシだろ
190:デフォルトの名無しさん
22/07/05 11:28:42.85 UQspXvq+.net
>>182
C言語が速い秘密はLinkedListとそのノードをアプリ全体でポインタ値で識別している
ことにある。先頭を0として1,2,3と割り振った通し番号を使っていたと
したら、全然速度が出ない。
そしてその証拠が、JavaやRubyなどで「識別番号」が8桁の16進数で表示できる
ことだ。その識別番号とは生ポインタ値のことであり、それがそのオブジェクトを
唯一に特定できる最も効率的な方法である。
他の方法では効率が落ちる。
191:デフォルトの名無しさん
22/07/05 11:29:55.08 UQspXvq+.net
>>185
あなたは、理解が浅い。
RustのRcやArcには欠陥がある。
そんなもので済むならとっくにCやC++でも採用されている。
C/C++の歴史の長さを舐めてはいけない。
192:デフォルトの名無しさん
22/07/05 12:22:07.18 KaO4bask.net
>>188
同じ話を何度も繰り返すなよ、ボケ爺か?
そうであってもそのアプリがCと同じでそれ以外のアプリならRustの方が安全って書いてあるだろ
193:デフォルトの名無しさん
22/07/05 12:28:00.80 1zzLwZyb.net
>>187
他人に説明できるだけの合理的理由が無いことは自覚してるんだな……
194:デフォルトの名無しさん
22/07/05 12:32:52.81 84q7aSs+.net
えっ、なにか説明が欲しかったのか?
スレ読んでりゃわかると思うがw
195:デフォルトの名無しさん
22/07/05 13:04:52.14 n+I8xvZo.net
>>189
欠陥があると主張するならば、その理由を示さなければならない。
さらにC++でも採用されていることを知らないのは無知ではないか?
C++のshared_ptr = RustのArc = SwiftのARC が同じ機能であり、スレッドセーフなリファレンスカウンタ利用の共有ポインタ方式。
それらのスレッドセーフでないコストの安いバージョンがRustのRcである。
これらは、安全にポインタを共有しつつ即時解放を行なうために、必須の機能である。
196:デフォルトの名無しさん
22/07/05 13:13:39.59 Fs2kh1Em.net
>>188
ここでいう効率ってなんの効率?
197:デフォルトの名無しさん
22/07/05 13:19:57.09 MoDZ63yv.net
ラスタシアンは何故算数おじさんに触れずにいられないのか
198:デフォルトの名無しさん
22/07/05 16:10:20.98 UQspXvq+.net
>>193
いや、RustのRcなどは、C++とshared_ptrと同じじゃない。
全然違うと言っても過言ではない。
199:デフォルトの名無しさん
22/07/05 18:30:15.50 Fs2kh1Em.net
>>195
なぜか自分のレスには反応してくれないんだよね
>>196
具体的になにが違うの
200:デフォルトの名無しさん
22/07/05 23:09:51.67 n+I8xvZo.net
>>196
違いがあると主張するならば、この議論で意味のある違いがあることを示さなければならない。
さらに前述の、欠陥があると主張した件についても、その欠陥を示さなければならない。
201:デフォルトの名無しさん
22/07/05 23:19:42.19 I5LuZ1z+.net
>>197
>具体的になにが違うの
平日の昼ひまでこのスレにくるおじさん・じじいは
C++のshared_ptrと同じじゃないということを知ってさえいれば激十分なんだよ。
だから、具体的になにが違うかは(知らないから)答えられない。
C++とRustの深い知識あるようなすごい奴が平日の昼暇でここで遊んでいる
なんてことはないだろう。
202:デフォルトの名無しさん
22/07/06 11:32:12.50 jpnjV9Mh.net
Full Stack Rust App Template using Yew + Actix!
URLリンク(youtu.be)
203:デフォルトの名無しさん
22/07/06 11:45:22.14 UGbPogY6.net
UIフレームワークはスレチだよしんどけ
204:デフォルトの名無しさん
22/07/06 12:20:02.69 b0Oxubv9.net
ここRustプログラミングに関することならば何でも歓迎
各々の関心がないことの和集合を取ると全体集合になる
特定の人にとって関心がないからと言って排除してはいけない
205:デフォルトの名無しさん
22/07/06 14:24:50.14 oR52wNCu.net
違いが大きすぎるとどこが違うとかいうのを説明するのが難しくなる。
織田信長とオムライスの違いを説明できるか?
まあ shared_ptr と Rc の違いはさすがにそこまで大きくはないけども、
前提となる C++ と Rust の違いも小さくはないので比較する意味を感じないな。
shared_ptr は shared_ptr だし Rc は Rc としか言いようがないだろう。
206:デフォルトの名無しさん
22/07/06 16:11:44.19 rco22hfx.net
リファレンスカウント方式の複製可能なスマートポインタという点では類似のものと言って良いのでは
元々はc++とrustで実行効率に差があるという話だがその観点でどういう差があるのかね
そもそも実行効率が何のことを言っているのかがよくわからんから議論しても仕方ないか
207:デフォルトの名無しさん
22/07/06 18:50:47 cl7AdtI8.net
原理と詳細を区別できない人はちょっと……
208:デフォルトの名無しさん
22/07/06 23:39:03.25 DBl9eUwS.net
>>203
全く別物の比較なら、信長は人間、オムライスは食べ物、というようなザックリした説明で良くなるのでは?
209:デフォルトの名無しさん
22/07/06 23:45:15.32 DBl9eUwS.net
Arcとstd::shared_ptr<>が似てるという人に対して、「いや、std::shared_ptr<>とRcは全然違う」と反論するのがおかしいのでは?
210:デフォルトの名無しさん
22/07/07 00:18:57.43 6JbvD3+y.net
>>206
そうだよ。
それを適用するなら
shared_ptr は C++ のスマートポインタ、 Rc は Rust のスマートポインタということしか言えなくなる。
211:デフォルトの名無しさん
22/07/07 00:49:54.35 Sq6Pkb7P.net
>>208
俺らのレベルではその程度の知識で十分だろ
で、スマートポインタでもなんか違いあるの?と質問されても具体的に答えられなくても
全く問題ないからな。
一方、すごい人からすれはstd::shared_ptr<>とRcは全然違うとなるんだろうが
(すごい人敵にはそれらは例えばstd::shared_ptrは信長で人間、一方、Rcはオムライスで食べ物ぐらい違う!
でも、俺らは人間だって餌として食べることができるから同じだろ)
212:デフォルトの名無しさん
22/07/07 05:04:39.45 WPmCyDkS.net
>>196
>>193 は
> C++のshared_ptr = RustのArc = SwiftのARC が同じ機能であり、スレッドセーフなリファレンスカウンタ利用の共有ポインタ方式。
って書いてるんだから同じじゃないとか全然違うとかフワフワしたこと言ってないで
・機能
・スレッドセーフ
・リファレンスカウンタを利用
の各項目について違いを書きなよ
213:デフォルトの名無しさん
22/07/07 08:43:50 M+xvnEsX.net
共有ポインタって何?
214:デフォルトの名無しさん
22/07/07 10:54:08.79 LNwVrqhE.net
shared pointerじゃね?
215:デフォルトの名無しさん
22/07/07 11:14:16.23 xmv5m6Ag.net
結局参照カウント方式なのは一緒なんでしょ
216:デフォルトの名無しさん
22/07/07 12:48:02.98 kuHYrppG.net
>>212
だとするとshared pointer方式ってどんな方式??
リファレンスカウンタを利用しないshared pointer方式もあるってことだよね?
217:デフォルトの名無しさん
22/07/07 14:09:00.32 1csywUpz.net
>>214
shared pointerはc++のが有名すぎるからなんとも言えないなぁ。
参照カウント以外でポインタを共有するのはリンクリスト方式とかあるよ。
218:デフォルトの名無しさん
22/07/07 15:30:16.82 jjCeBJbE.net
ARCで管理してる時点でRustはガベコレじゃないからすごい!って理論は破綻してるんじゃありませんかね?
219:デフォルトの名無しさん
22/07/07 15:41:53.87 6JbvD3+y.net
>>216
誰がそんなこと言ってんの?
静的に管理できるものは静的に管理するし、実行時にしかわからないものは実行時に管理するってだけのことだ。
参照カウンタの適用範囲を間違えてるプログラマがいるならそれはそいつが無能。
220:デフォルトの名無しさん
22/07/07 16:01:25.39 HUExG/fK.net
Rust公式の日本語意訳にはしっかりRustはガベコレじゃないから高速って書いてあるね
221:デフォルトの名無しさん
22/07/07 16:16:37 I5wN0SQd.net
>>216
Objective-C/SwiftのARCとRustのArcは同じ3文字略語だけど別のものだよ
それを理解した上で言ってるのなら別にいいんだけどさ
222:デフォルトの名無しさん
22/07/07 18:43:04.02 u5IGnUan.net
>>216
そもそもRust公式が「メモリリークはメモリ安全の範疇」と言っているしな。
223:デフォルトの名無しさん
22/07/07 18:52:31.81 pAImJ0Xg.net
>>220
それはRustの定義がおかしい
一般的にはメモリリークがあるとメモリ安全だとは言わない
224:デフォルトの名無しさん
22/07/07 18:55:30.53 V91F8QUY.net
流れぶった切りだけど単純にRustの人たちはGUIどうしてんの?
225:デフォルトの名無しさん
22/07/07 19:11:09.29 Efq0h4+x.net
なんだ、じゃあ、バグはセーフティと定義したら、Rustは安全高めなのか。
226:デフォルトの名無しさん
22/07/07 19:29:21.10 webRw0a6.net
rust にクラスはないのですか?
227:デフォルトの名無しさん
22/07/07 19:39:16.69 6JbvD3+y.net
>>221
Rust が言語の仕組みによって防ごうと努力する範囲にメモリリークは含まないという定義だよ。
それを表すのに「Rust の仕様の中では」メモリ安全という用語を使っているのであって、
定義におかしいもクソもない。 定義なんだから。
228:デフォルトの名無しさん
22/07/07 19:46:35.34 6JbvD3+y.net
>>224
クラスと名付けられている概念はない。
あなたにとってクラスとは何のこと? 何が出来ればクラス?
229:デフォルトの名無しさん
22/07/07 19:48:37.87 UC7ZSmFv.net
型クラスの事を聞いてるんじゃない?
230:デフォルトの名無しさん
22/07/07 19:49:32.87 idvDnT2E.net
>>216
ARCで管理しているのはSwift
RustはC++と同じくRAIIなので高速
どうしても共有メモリを使いたい時のみshared_ptrやRc/Arcを用いる
231:デフォルトの名無しさん
22/07/07 20:00:40.75 pAImJ0Xg.net
>>225
そのRustの仕様の中でメモリ安全性を達成できていないんだから
Rustの仕様の中でメモリ安全性という用語を使うのは不適切
Rustの謳うメモリ安全性は世間一般のメモリ安全性とは異なる概念なんだからそれを表すには他の用語を使うのが適当かと
232:デフォルトの名無しさん
22/07/07 20:06:09.82 idvDnT2E.net
>>224
クラスはその根幹の継承がデメリットだらけと結論が出ているためGoやRustなどでは採用されていない
メンバー変数やメンバーメソッド等とは構造体で使えるため困ることはない
Rustでは構造体を含む任意の型に対して横断的に共通適用可能なトレイトがあり非常に強力で利便性がよい
233:デフォルトの名無しさん
22/07/07 20:09:54.71 6JbvD3+y.net
>>229
知らんがな。
大抵の専門用語は一般名詞に (その分野における) 明確な定義を与えることで成り立ってるのはごく普通のことだろ。
234:デフォルトの名無しさん
22/07/07 20:25:04.56 idvDnT2E.net
>>229
世間一般なんてものはなくそれぞれがそれぞれの定義域に依る
そしてそれが明確になっていればよい
例えばRustではメモリ競合は防止可能と明確化しつつ、より一般的な競合状態は対象外と明確化している
原理的に無理なものは無理なのだからそこは明確化してあればそれでよい
235:デフォルトの名無しさん
22/07/07 21:01:30.61 0wlfNyVX.net
>>228
aliasingの話してるところにRAIIが来るのもよくわからないがRAIIだと高速という理屈はさらにわけわかめ
236:フ名無しさん
22/07/07 21:12:46.12 PQWZgdhj.net
>>222
windows-rsでunsafe祭りになりながら書いたよ。オススメはしないが。
237:デフォルトの名無しさん
22/07/07 21:39:23.64 pHkHW2c/.net
SwiftのARCとRustのArcの区別がつかない人は論外なので発言を控えてほしい
ただでさえしょうもないのにしょうもなさが倍増するからね・・・
SwiftのARCはAutomatic Reference Counting
URLリンク(docs.swift.org)
RustのArcはAtomically Reference Counted
URLリンク(doc.rust-lang.org)
238:デフォルトの名無しさん
22/07/07 22:03:40.09 webRw0a6.net
>>230
継承をやめて委譲にすれば割とまともになると思います
スレリンク(tech板:51番)
スレリンク(tech板:84番)
239:デフォルトの名無しさん
22/07/07 22:05:44.36 idvDnT2E.net
>>233
C++とRustはヒープ利用に対してRAIIによるデストラクタ呼び出しによりリファレンスカウンタ無しでメモリ解放するので高速
さらに加えてRustでは所有権と借用のルール明確化により解放の安全性も静的に保証している
一方でSwiftはヒープ利用に対して常にリファレンスカウンタを用いるARCによりメモリ解放の管理をするため低速
240:デフォルトの名無しさん
22/07/07 22:11:56.95 hEh+9Mpq.net
>>236
その流れで継承不可のクラスベースのオブジェクト指向言語がどういうものになるか思考実験的に考えてみなよ
241:デフォルトの名無しさん
22/07/08 03:25:18.13 CKdXv9cu.net
それよりSQLが超苦手な俺はPRQLにめちゃくちゃ期待しているのだがラスタシアン達はSQLも達者なのかね?
242:デフォルトの名無しさん
22/07/08 03:34:35.68 tnmgUx+u.net
うーん。
このスレ↓では、Rustはメモリーリークしない、Cはリークすると議論してたからなあ。
スレリンク(tech板)
243:デフォルトの名無しさん
22/07/08 07:13:21.57 vMUJBeEa.net
pijul使ってみたけど、改行コードがCRLFだと非対応で
バイナリファイル扱いになるという謎仕様でまいった
差分とか出せなくなる
ファイルタイプ判別を変えるオプションは無い
それは置いといても、表示もドキュメントも超簡素で
もうすぐ1.0.0リリースを迎えるとは思えない状態
ほとんどの入門記事で使われている重要コマンドpijul statusが
最近のバージョンで削除されたのも謎すぎる
だいじょうぶなのかこれ
244:デフォルトの名無しさん
22/07/08 07:47:38 ifo4L8le.net
>>239
今の開発のトレンドが互換性維持で苦労して中途半端なものになるくらいなら好きな仕様にして最後全部トランスパイルすりゃいいじゃん!になってしまったな
世の天才が叡智を絞った結果がRust界隈含めて今まで散々馬鹿にしてたウェブ(JS)の後追いなの草生えるわ
ちなみに英語圏ではSQLはシークェルと発音するから覚えとけ
ラスタシアンの紳士諸君はえすきゅーえるとかクソダサい発音禁止な
245:デフォルトの名無しさん
22/07/08 08:02:14.74 i9Nd4OSx.net
PRQL 書き味が CloudWatch logs Insightと似てそうだけどあれもそんなにいいもんじゃないぞ。
246:デフォルトの名無しさん
22/07/08 08:04:43.63 pMnIhSXO.net
>>242
外人の禿げたおっさんはだいたいエスキューエル言うてるやろ
247:デフォルトの名無しさん
22/07/08 08:11:32.47 i9Nd4OSx.net
コントロールも無視もできない処理系や既存資産の上でまともな進化や開発体験を維持しようとしたらトランスパイルになるのは必然だったんだろうな。
それが必要になるクソさと、トランスパイルコストの損益分岐点が最初に現れたのがJSってだけだと思うよ。
248:デフォルトの名無しさん
22/07/08 08:44:10.67 efA8XUrt.net
>>240
メモリリークに関しては
まず、Rustは自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全
ただし、Rustにおいて循環参照は他の言語と大きく異なり、
・意図的に色々と明確に指示して作成しないと、循環参照は自然に発生しない
・強い参照と弱い参照を使い分けることが出来るため、強い参照のみによる循環参照を避けることが可能
・意図的に強い循環参照を作成した場合は、それはRustにとって自動的なメモリ解放の対象とならない
したがって、Rustにおいて強い循環参照を意図的に作成した場合のみメモリリークが起こりうるが、わざと作成したのだから意図通り、という扱い
249:デフォルトの名無しさん
22/07/08 09:06:34.18 ujjjtz1g.net
ほんと無知って怖いね
250:デフォルトの名無しさん
22/07/08 09:12:01.24 1lqt9Ku2.net
「循環参照は自然に発生しない」なんていう解説狂信者おじさんがいる限り、プロジェクトには絶対Rustは採用しない......
251:デフォルトの名無しさん
22/07/08 09:29:57.41 L1lQIkzy.net
ほんとこの種の信者は迷惑だわ
普通は多人数で作業して、データー構造をRc<T>をWeak<T>にあらかじめしておくようなことはしないし、”わざと作成したのだから意図通り”とか
相手(これから学ぶ人や新人)を騙すために都合の良いことを吹き込んでいるようにしか見えない・・・
それなら自動メモリ管理ではないので、作り方/使い方により自然/意図しない使い方でリークも場合もあると明確に認めて、その分だけ
自動メモリ管理ではないないので速度が速いし、メモリー解放のタイミングもある程度コントロール出来ると誠実に話したほうが余程、印象が良いのに。
胡散臭い宗教の勧誘に見えるような態度だから叩かれる
252:デフォルトの名無しさん
22/07/08 09:30:47.62 Gv4jmnae.net
>>241
PijulもPRQLなど最近の新たな試みはRustで実装されることが多いが
それらはRust言語のためのものではなく汎用的なものであり
それらの問題点もRustとは直接関係がない
今後Rustで書かれた新たなものがどんどん増えていくだろうがそこは区別すべきところかな
一方でそれらをRust言語で使うためのクレートなどがあれば
Rustプログラミングにおいて使う特有の話なので
それらの話題自体を避けるべきではないね
253:デフォルトの名無しさん
22/07/08 09:41:28 v7XD1ZOP.net
循環参照は自然に発生しないって、コードを何も書かなければ発生しないって意味かな
254:デフォルトの名無しさん
22/07/08 09:42:55 QpPOct5C.net
>>248
新たなプロジェクトが次々とRustを採用している現実を直視しようぜ
>>249
循環参照はRust以外だと知らぬ間に発生してしまう自然なよくあるものだが
Rustでは複雑な操作で意図的に作り出さないと出現すらしない点を理解しようぜ
255:デフォルトの名無しさん
22/07/08 09:58:58.97 BqWLp+Ol.net
RAIIでメモリをケアするのは
GC方式にくらべて高速ってのはまぁそうなんだけど
それよりも
開放タイミングが決定的であることのほうが特徴
オブジェクトの生存期間によってメモリの使用期間もプログラマが管理できて嬉しい
256:デフォルトの名無しさん
22/07/08 12:01:11.06 bBPWEvXX.net
>>236
参照カウント方式と区別したいなら、「GC方式」みたいな曖昧な用語はやめて「トレーシングGC」を使おうぜ。
257:デフォルトの名無しさん
22/07/08 12:37:51 4Cg/jdLt.net
>まず、Rustは自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全
この時点で嘘だらけなんだから、それ以上読む必要無い
日本語ブログだとこういう複オジレベルの人が多数派なので
Rustを本気で学びたいやつは英語のリソースメインで学ぶことを強くすすめる
258:デフォルトの名無しさん
22/07/08 12:39:17 u4+He/YT.net
>>249
アンチは実際にプログラミングしたことがないのかね
Rc<T>自体は書き換えできないのでRc<T>だけでは循環参照を作ることができない
Rc<T>とWeak<T>は互いに対称ではないため直接置き換える対象ではない
例えばnewもRc::new(T)とWeak::new()で引数Tの有無からして異なる
さらに多人数で作業するから強い循環参照を知らぬ間に作ってしまうとの言い訳も意味不明だ
259:デフォルトの名無しさん
22/07/08 12:42:18 u4+He/YT.net
>>255
Rustは所有者がいなくなると自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全で合っている
260:デフォルトの名無しさん
22/07/08 14:56:50.59 bBPWEvXX.net
>>257
メモリを解放しないCopying GCの方が高速なんだけどなぁ。
Rustもメモリ解放しない実装なのかね?RAIIならスタック領域しかメモリを確保しないとか。
261:デフォルトの名無しさん
22/07/08 16:11:26.76 VZayErSn.net
>>258
C++もRustも仕組みは同じ
RAIIによりスコープを外れた対象のスタック部分が解放される時にそのデストラクタによってヒープ部分が解放される
汎用的にはこれが最も高速かつ利便性>>253が高い
Copying GCは特殊な環境で特殊な使い方に限定する場合は速いこともありうるがデメリットも多く一般的には使われることが少ない
使用メモリが多くなるとかコピーで値を移動させるため非常に遅いなどのデメリットの他に
そこを指す全てのポインタ値をGCのたびに全て修整しなければならないという致命的な欠陥がある
C/C++/Rustなどでスタック上に置かれたポインタ値の全てを的確に書き換えるのは不可能なので使えない
262:デフォルトの名無しさん
22/07/08 16:24:07.17 atE4xqm8.net
短時間で終了するプログラムはfree呼ばずにexitした方が高速な場合がある
copy gcも条件付きだが高速な場合がある
常にRAIIによるメモリ解放が他の手段より高速というのは誤り
100%正しいという風に断言するから枝葉の議論になるし最初から論理的に厳密な文章書いた方が良いよ
263:デフォルトの名無しさん
22/07/08 16:35:35 VZayErSn.net
>>260
これは特殊な使い方限定の話を持ち出したら意味がない話
既に書いたようにCopying GCは汎用的には使いものにならない
一般的にはRAIIによる解放が最も高速かつ利便性が高い
そのためC++でもRustでもその方法がとられている
264:デフォルトの名無しさん
22/07/08 17:23:29.15 cRmlWf2z.net
copying GCはJavaで使われているのだが
解放しない、以外でスタックの解放(malloc的なものに対する)freeより速いものはあるの?
265:デフォルトの名無しさん
22/07/08 18:32:33.29 r9xh0XFc.net
>>246
C++にもweak_ptr<>あるけど。
266:デフォルトの名無しさん
22/07/08 18:32:40.38 IcalP2aj.net
RAIIがGCより高速なら
RAIIの一例であるshared_ptrはGCの一例であるARCより高速ということになるが
どういう原理で高速になるの?
267:デフォルトの名無しさん
22/07/08 18:42:02.74 r9xh0XFc.net
でも、Firefox良く落ちるじゃん。
268:デフォルトの名無しさん
22/07/08 18:45:00.33 r9xh0XFc.net
でも、JavaはC++も20倍速いってサイト無くなったじゃん。
269:デフォルトの名無しさん
22/07/08 18:50:36.37 r9xh0XFc.net
>>261
だって、RustはC++0xのパクリじゃん。
270:デフォルトの名無しさん
22/07/08 18:52:55.66 hlO59OkW.net
>>264
shared_ptrではRAIIによって解放しない
RAIIによってデクリメントするだけ
SwiftなどでのARCが遅い理由は参照型の全てにおいてshared_ptrを使用しているような状況であるためコストが高い
271:デフォルトの名無しさん
22/07/08 18:54:07.09 r9xh0XFc.net
じゃあ、unique_ptr<>でいいじゃん。
272:デフォルトの名無しさん
22/07/08 19:10:19.78 hlO59OkW.net
>>269
unique_ptrとshared_ptrの役割の違い、動作の違いを理解できていない君が
間違えて用いてもC++ではコンパイルが通ってしまったりして実行時に問題を引き起こす
Rustは間違えて用いるとコンパイルエラーとなり通らないから安全側に救われる
273:デフォルトの名無しさん
22/07/08 20:02:01.67 A8oltmgp.net
>>268
参照型の全てにshared_ptrを利用したら何で遅くなるの?
274:デフォルトの名無しさん
22/07/08 21:48:50.65 i9Nd4OSx.net
>>257
即座に開放というのがOSに返却とか認識してたらアウトだぞ。
アロケーターなに使うかで実際の挙動は変わってくるからな。
普通しないがクソアロケーター使ったら、OSからみたらリーク同然になったりするし。
275:デフォルトの名無しさん
22/07/08 21:53:34.22 G/CdBPp1.net
所有者がいないとメモリ解放って間違ってるよね?
所有者がいてもブロックから出たら解放されるからコンパイルエラーが出てコンパイルされない
276:デフォルトの名無しさん
22/07/08 22:05:32.56 h7kEq7Ot.net
OSSでうっかり強循環参照作ってしまってた例が過去スレにあったようなと掘り返してみたところ、Part11にて発見
URLリンク(github.com)
URLリンク(github.com)
277:デフォルトの名無しさん
22/07/08 22:23:05.26 RqLk9Xjf.net
>>272
そんなバカな認識するのはオマエだけだろw
278:デフォルトの名無しさん
22/07/08 22:38:42.99 J0vSCVey.net
>>273
所有者がいなくなるとメモリ解放であってるよ
スコープを抜けると所有者がいなくなりデストラクタが呼ばれて管理していたヒープ領域があれば解放される
279:デフォルトの名無しさん
22/07/08 22:51:41.26 j0PLF9Z7.net
所有権とは?の話に戻っちゃうな
複製おじさんネタで散々繰り返したやつ
280:デフォルトの名無しさん
22/07/08 23:06:47.48 QSUHt/6/.net
お前ら何回同じ話ループさせたら気が済むの?
281:デフォルトの名無しさん
22/07/08 23:08:26.12 h7kEq7Ot.net
なんか合ってるのか分からんけど最近思うこと
Rustの言語仕様内に明確に含まれているのはlifetimeだけで
所有権とか所有者ってのは実はただのメタファーでしかない?
282:デフォルトの名無しさん
22/07/08 23:12:47.70 r9xh0XFc.net
C++はコンテナのアロケータと積み荷のアロケータが別とかできるくらい柔軟ですよ。
283:デフォルトの名無しさん
22/07/09 00:08:13.16 Xo3+Ls6P.net
コンセプトをコンパイラにハードコーディングして変えられないようにしたのがRustってこと?
284:デフォルトの名無しさん
22/07/09 03:43:55.29 dAPednzC.net
>>256
こいつのような気持ち悪い反吐が出る輩がいるからRustがいまいちメジャーにならない。公式ドキュメント書き換えてこいゴミ
上の文章読んでどの辺が「アンチ」だ?ゴミのくせにイキって恥かいてんじゃねーわw
The Rust Programming Language 日本語版
循環参照は、メモリをリークすることもある
循環参照を回避する: Rc<T>をWeak<T>に変換する
URLリンク(doc.rust-jp.rs)
285:デフォルトの名無しさん
22/07/09 06:36:52.71 x6eGZQ2/.net
>>276
間違ってることを合ってると強弁するのいい加減辞めなよ
286:デフォルトの名無しさん
22/07/09 07:31:04 O4my42l1.net
認める事を全くせず、大したコードも書いてないのにRustやってる事だけが自尊心だから勝手にアンチだの決めつけて
いつも人を見下して偉そう。プロジェクトチームの雰囲気はそいつがいるだけで常に最悪、チームの重荷・会社の害悪。
口癖は「意味不明」
287:デフォルトの名無しさん
22/07/09 10:34:16.63 OnqDT6DB.net
>>282
実際にコードを自分で書いて理解したほうがいいよ。
その公式Bookに書かれている内容はもちろん正しいし、
その相手>>256の書き込み内容も正しくて、
両者に矛盾はないよ。
288:デフォルトの名無しさん
22/07/09 11:42:59.26 lwwTn4Ql.net
理解してないと書いてる人間が理解してないことは多いですよね
289:デフォルトの名無しさん
22/07/09 11:50:07 lwwTn4Ql.net
どちらにしてもRust使っても気楽にコーディングできるわけでもなく
メモリ構造考えなければいけないんですね
290:デフォルトの名無しさん
22/07/09 13:10:56.08 g+WH1rkE.net
結局、C++0xのパクリじゃないですか。
C++はそこからさらに10年以上進んでるのに。
291:デフォルトの名無しさん
22/07/09 13:14:26.15 lwwTn4Ql.net
それはないかな…
どっちも一長一短で視点がぼやけます
292:デフォルトの名無しさん
22/07/09 13:41:18.89 ByPaZ1uJ.net
>>279
説明用に作った概念ではあるけどRustの根幹に関わる重要な概念なので
「ただのメタファーでしかない」という言い方は微妙
自分の好き勝手に解釈した内容を公式見解かのように流布する輩を助長することになるから
293:デフォルトの名無しさん
22/07/09 14:19:07.01 g+WH1rkE.net
パクリ元のC++で所有権と呼ばれてるからでしょ。
294:デフォルトの名無しさん
22/07/09 14:21:22.91 g+WH1rkE.net
C++は高機能すぎて分けワカメなので、初心者用に出来ることを減らしますという、ジェネリクス界のPythonがRustでは?
295:デフォルトの名無しさん
22/07/09 14:57:08.15 gD3yh/Bo.net
>>283
見たけど正しいやん
間違ってる!とウソをつくけど間違ってる点を指摘できないいつもの人かね?
296:デフォルトの名無しさん
22/07/09 15:04:05.66 g+WH1rkE.net
誰も所有してないのに解放されないなら意味ないじゃん。
297:デフォルトの名無しさん
22/07/09 15:25:00.91 3oDyg2LH.net
>>294
ヒープ領域に対して誰も所有(利用)しなくなった時に
・自動解放しない(要手動解放) ← C C++(下記除く)
・即座に自動解放する ← Rust C++(unique_ptrなど使用時)
・GCする時になってから自動解放する ← ほとんどのGC言語
298:デフォルトの名無しさん
22/07/09 15:36:21.95 lXmK1DKz.net
Cで書くにしても、今時のCLIツールならヒープなんか解放せず放置しても実用上問題ないよね
299:デフォルトの名無しさん
22/07/09 16:18:04 y0LX8Rgp.net
そもそも間違ってるとは何と照らし合わせて間違ってるという主張なのか
「そうあるべきではない」というべき論なら前提を明確にしない限り知らんがなとしか言えん
300:デフォルトの名無しさん
22/07/09 16:36:33 g+WH1rkE.net
>>295
いや、C++はアロケート時にアロケータを選択するから。
デフォルトが準備されてるだけで。
当然、GCもあり得るから。
301:デフォルトの名無しさん
22/07/09 16:39:05 g+WH1rkE.net
だめだ、こいつに聞いても無駄だ。
誰かわかるやつ居ないのか。
302:デフォルトの名無しさん
22/07/09 16:52:06 3+oPDqor.net
この板で最も勢いのあるスレになりましたな
303:デフォルトの名無しさん
22/07/09 17:15:21.88 ziCGmT1x.net
>>284
アンチ君は皆に論破されると毎回
思い込みの仮想敵を作り人格攻撃を始めて逃避するようだが
そんな下らないことはアンチスレでやってほしい
304:デフォルトの名無しさん
22/07/09 17:29:07.29 g+WH1rkE.net
自分より詳しいやつは全部アンチか。
それじゃダメだろ。
305:デフォルトの名無しさん
22/07/09 17:45:35.96 bJtJfEbP.net
Rust信者スレ作ったらそっちに移動してくれますか?
306:デフォルトの名無しさん
22/07/09 17:54:41.59 g+WH1rkE.net
つまり、C++0xをパクって機能限定して簡単にしたのがRustだろ?
307:デフォルトの名無しさん
22/07/09 17:58:46.63 QKZ/1qEu.net
>>295
プログラミング言語の進化の中で、
そのメモリ自動解放における高速性と安全性の両立をRustが初めて実現したってことになるのかな
308:デフォルトの名無しさん
22/07/09 18:04:41.00 SVLGLpJF.net
Region-based Memory Management の構想は Cyclone から始まってる。
この段階では実用化したとは呼びにくいが、実現は出来ていた。
309:デフォルトの名無しさん
22/07/09 18:22:19.04 HoR4NOuF.net
>>304
C++以外からもいろいろパクってるからその言い方だと不正確に思う
310:デフォルトの名無しさん
22/07/09 18:46:05.22 hyXSHlQu.net
正確にはこうだな
プログラミング言語の進化の中で
メモリ自動解放における高速性と安全性の両立を実現した初めての実用的な言語がRust
311:デフォルトの名無しさん
22/07/09 18:55:55 FBd+xess.net
実用的の定義が無いので不正確です
312:デフォルトの名無しさん
22/07/09 18:58:45 g+WH1rkE.net
C++0xがなかなか標準化されないので、それなら自分で作ろうと立ち上がったと本人が言ってるじゃん。
313:デフォルトの名無しさん
22/07/09 19:05:24 hyXSHlQu.net
>>309
そこは常識の範囲内で実用的をどのように定義しても>>308を満たすのはRustだけだから問題ない
314:デフォルトの名無しさん
22/07/09 19:22:48.72 kZfneOfi.net
別にC/C++でもちゃんと作れば高速性と安全性は両立してるよ
ちゃんと作るのが難しいかどうかの話でしかないだろ
315:デフォルトの名無しさん
22/07/09 19:29:47.99 TbjkUF4v.net
>>312
C/C++では不可能
うっかり危険なコードを書いてもコンパイラが通してしまう
Rustはコンパイラが指摘して通さないため安全
316:デフォルトの名無しさん
22/07/09 19:30:20.48 6ug5/LDh.net
難しさを度外視してちゃんと作ればいいと言うならアセンブラでも同じわけで。
317:デフォルトの名無しさん
22/07/09 19:36:03.58 hyXSHlQu.net
>>312
残念ながらCとC++は安全性を満たしていない
現状Rustだけが安全性と高速性を両立させている
318:デフォルトの名無しさん
22/07/09 19:48:49.13 HoR4NOuF.net
>>315
rustだけが満たしている根拠教えて