公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
Web上の実行環境
https://play.rust-lang.org
日本語の情報
https://rust-jp.rs/
※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/
※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※次スレは原則>>980が立てること
前スレ
Rust part15
https://mevius.5ch.net/test/read.cgi/tech/1652347700/
探検
Rust part16
■ このスレッドは過去ログ倉庫に格納されています
2022/06/27(月) 08:17:03.45ID:gDlfKP6u
166デフォルトの名無しさん
2022/07/04(月) 19:49:32.85ID:FTPm+Svf リーナスがこのスレを見ていたらLinuxに採用されることはなかっただろうね
167デフォルトの名無しさん
2022/07/04(月) 19:55:55.02ID:7t9P5Iu7 みたらそっ閉じするだろw
168デフォルトの名無しさん
2022/07/04(月) 19:58:11.73ID:VzaqPz19 >>143
センチメンタルな用語ですね!
センチメンタルな用語ですね!
169デフォルトの名無しさん
2022/07/04(月) 20:06:09.66ID:WMds9h9Q メンタルモデルってプログラマー界隈ではよく知られた言葉だと思ってたんだけど通じない人もいるのね
170デフォルトの名無しさん
2022/07/04(月) 20:26:03.13ID:rP4GYYNg プログラマー界隈で言ってる奴を見たことないしそもそも違い云々の時にそんなもん出されても困惑するだけ
171デフォルトの名無しさん
2022/07/04(月) 20:26:54.96ID:55lLLVgr >>169
普通は通じるからご心配なく
普通は通じるからご心配なく
172デフォルトの名無しさん
2022/07/04(月) 21:09:07.84ID:LgYZqAbq173デフォルトの名無しさん
2022/07/04(月) 21:22:26.69ID:k0bSAJLz 適当な造語をさも常識のように語るのはやめようね
そもそもそんな言葉使わなければいい話
そもそもそんな言葉使わなければいい話
174デフォルトの名無しさん
2022/07/04(月) 21:31:48.17ID:rrB3dRAB175デフォルトの名無しさん
2022/07/04(月) 21:34:43.82ID:tfDB1jS/ そもそも拾う必要すら無かったレスを拾ったばっかりによく分からん論争に
なんかすんませんな
なんかすんませんな
176デフォルトの名無しさん
2022/07/04(月) 21:35:54.46ID:WMds9h9Q >>172
元々は認知心理学の用語でユーザーインターフェイスとか分野から広まって広く知られるようになったんじゃないかと思う
初出は1943年とのこと
https://ja.m.wikipedia.org/wiki/%E3%83%A1%E3%83%B3%E3%82%BF%E3%83%AB%E3%83%A2%E3%83%87%E3%83%AB
元々は認知心理学の用語でユーザーインターフェイスとか分野から広まって広く知られるようになったんじゃないかと思う
初出は1943年とのこと
https://ja.m.wikipedia.org/wiki/%E3%83%A1%E3%83%B3%E3%82%BF%E3%83%AB%E3%83%A2%E3%83%87%E3%83%AB
177デフォルトの名無しさん
2022/07/04(月) 21:44:59.75ID:Xyf5Vl2i 複オジ大先生がそんな言葉ないとおっしゃってるんだぞ!
スーパー自宅開発者の複オジ大先生が間違ってるとでも言うのか!!
スーパー自宅開発者の複オジ大先生が間違ってるとでも言うのか!!
178デフォルトの名無しさん
2022/07/04(月) 21:56:46.09ID:UzLOsPAb もはやここが隔離スレ状態
179デフォルトの名無しさん
2022/07/05(火) 02:12:03.31ID:WHTTcdQX180デフォルトの名無しさん
2022/07/05(火) 04:52:44.77ID:86ZbPeAT だから
> ポインタ値をアプリ全体でLinkedListのノードを識別するための id 値として利用している場合だ。
の場合だけだろ
お前はそんな特殊なアプリしか作らないのかよw
そもそもノードの識別を全体にばらまいてるとか設計がタコなんじゃね?
> ポインタ値をアプリ全体でLinkedListのノードを識別するための id 値として利用している場合だ。
の場合だけだろ
お前はそんな特殊なアプリしか作らないのかよw
そもそもノードの識別を全体にばらまいてるとか設計がタコなんじゃね?
181デフォルトの名無しさん
2022/07/05(火) 05:08:33.40ID:WHTTcdQX >>180
RubyやJava、オブジェクトの「識別番号」が取得できることがあるが、
それはポインタ値だ。通し番号ではない。
つまり、C言語では伝統的に、リンクトリストのノードを識別するために
ポインタ値が使われている。そしてそれこそがリンクリストの本来の使い方。
だれかが間違えて、通し番号で識別する習慣が生まれてしまったが、それは
集団幻覚みたいなもので、誤った使い方だ。
RubyやJava、オブジェクトの「識別番号」が取得できることがあるが、
それはポインタ値だ。通し番号ではない。
つまり、C言語では伝統的に、リンクトリストのノードを識別するために
ポインタ値が使われている。そしてそれこそがリンクリストの本来の使い方。
だれかが間違えて、通し番号で識別する習慣が生まれてしまったが、それは
集団幻覚みたいなもので、誤った使い方だ。
182デフォルトの名無しさん
2022/07/05(火) 05:22:06.16ID:b2cot2gP で、何が言いたいんだ?
Linked Listをアプリ全体にばらまいてるアホ設計を正当化しようとしてるのか?w
Linked Listをアプリ全体にばらまいてるアホ設計を正当化しようとしてるのか?w
183デフォルトの名無しさん
2022/07/05(火) 06:08:27.82ID:8LqsNmpu >>177
気に入らないやつを片っ端から複おじ認定するのは荒らしなんだろうか
気に入らないやつを片っ端から複おじ認定するのは荒らしなんだろうか
184デフォルトの名無しさん
2022/07/05(火) 06:20:58.64ID:Nla2AFrI185デフォルトの名無しさん
2022/07/05(火) 07:54:16.72ID:n+I8xvZo >>181
GC言語では、ポインタと言ってもコストの高いポインタとなっていて、コストの高いガベージコレクションで回収する。
それに加えて、データ競合を防ぐには更に何らかの競合回避コストも加わってくる。
一方で、C/C++ではリンクされたノードリストからノードを外す時に、そのライブラリがノードを解放してしまうと、そこへのポインタを保持していた場合にダングリング発生。
それを回避するためにはshared_ptrなどのコストの高いポインタを使わざるを得ない。
ちなみにC++のshared_ptrはスレッドセーフだからマルチスレッド時でも大丈夫だが、逆に言えばシングルスレッド時には無駄なコストがかかっている。
Rustでは、そこはRcとArcの2種類が提供されており、シングルスレッド時にはコストの低いRc使用、マルチスレッド時にはRcだとコンパイルエラーとなってくれてArc使用と、最小限のコストで済む。
このようにノード解放の観点だけ見ても、考慮すべきことをRustコンパイラは適切に指摘してくれる。
GC言語では、ポインタと言ってもコストの高いポインタとなっていて、コストの高いガベージコレクションで回収する。
それに加えて、データ競合を防ぐには更に何らかの競合回避コストも加わってくる。
一方で、C/C++ではリンクされたノードリストからノードを外す時に、そのライブラリがノードを解放してしまうと、そこへのポインタを保持していた場合にダングリング発生。
それを回避するためにはshared_ptrなどのコストの高いポインタを使わざるを得ない。
ちなみにC++のshared_ptrはスレッドセーフだからマルチスレッド時でも大丈夫だが、逆に言えばシングルスレッド時には無駄なコストがかかっている。
Rustでは、そこはRcとArcの2種類が提供されており、シングルスレッド時にはコストの低いRc使用、マルチスレッド時にはRcだとコンパイルエラーとなってくれてArc使用と、最小限のコストで済む。
このようにノード解放の観点だけ見ても、考慮すべきことをRustコンパイラは適切に指摘してくれる。
186デフォルトの名無しさん
2022/07/05(火) 10:29:00.25ID:1zzLwZyb なんでずっとRustスレでRustのセールストークやってるんだ?
187デフォルトの名無しさん
2022/07/05(火) 10:43:19.79ID:XxVp5yEy RustスレでRustのネガキャンやってるやつよりマシだろ
188デフォルトの名無しさん
2022/07/05(火) 11:28:42.85ID:UQspXvq+ >>182
C言語が速い秘密はLinkedListとそのノードをアプリ全体でポインタ値で識別している
ことにある。先頭を0として1,2,3と割り振った通し番号を使っていたと
したら、全然速度が出ない。
そしてその証拠が、JavaやRubyなどで「識別番号」が8桁の16進数で表示できる
ことだ。その識別番号とは生ポインタ値のことであり、それがそのオブジェクトを
唯一に特定できる最も効率的な方法である。
他の方法では効率が落ちる。
C言語が速い秘密はLinkedListとそのノードをアプリ全体でポインタ値で識別している
ことにある。先頭を0として1,2,3と割り振った通し番号を使っていたと
したら、全然速度が出ない。
そしてその証拠が、JavaやRubyなどで「識別番号」が8桁の16進数で表示できる
ことだ。その識別番号とは生ポインタ値のことであり、それがそのオブジェクトを
唯一に特定できる最も効率的な方法である。
他の方法では効率が落ちる。
189デフォルトの名無しさん
2022/07/05(火) 11:29:55.08ID:UQspXvq+190デフォルトの名無しさん
2022/07/05(火) 12:22:07.18ID:KaO4bask191デフォルトの名無しさん
2022/07/05(火) 12:28:00.80ID:1zzLwZyb >>187
他人に説明できるだけの合理的理由が無いことは自覚してるんだな……
他人に説明できるだけの合理的理由が無いことは自覚してるんだな……
192デフォルトの名無しさん
2022/07/05(火) 12:32:52.81ID:84q7aSs+ えっ、なにか説明が欲しかったのか?
スレ読んでりゃわかると思うがw
スレ読んでりゃわかると思うがw
193デフォルトの名無しさん
2022/07/05(火) 13:04:52.14ID:n+I8xvZo >>189
欠陥があると主張するならば、その理由を示さなければならない。
さらにC++でも採用されていることを知らないのは無知ではないか?
C++のshared_ptr = RustのArc = SwiftのARC が同じ機能であり、スレッドセーフなリファレンスカウンタ利用の共有ポインタ方式。
それらのスレッドセーフでないコストの安いバージョンがRustのRcである。
これらは、安全にポインタを共有しつつ即時解放を行なうために、必須の機能である。
欠陥があると主張するならば、その理由を示さなければならない。
さらにC++でも採用されていることを知らないのは無知ではないか?
C++のshared_ptr = RustのArc = SwiftのARC が同じ機能であり、スレッドセーフなリファレンスカウンタ利用の共有ポインタ方式。
それらのスレッドセーフでないコストの安いバージョンがRustのRcである。
これらは、安全にポインタを共有しつつ即時解放を行なうために、必須の機能である。
194デフォルトの名無しさん
2022/07/05(火) 13:13:39.59ID:Fs2kh1Em >>188
ここでいう効率ってなんの効率?
ここでいう効率ってなんの効率?
195デフォルトの名無しさん
2022/07/05(火) 13:19:57.09ID:MoDZ63yv ラスタシアンは何故算数おじさんに触れずにいられないのか
196デフォルトの名無しさん
2022/07/05(火) 16:10:20.98ID:UQspXvq+197デフォルトの名無しさん
2022/07/05(火) 18:30:15.50ID:Fs2kh1Em198デフォルトの名無しさん
2022/07/05(火) 23:09:51.67ID:n+I8xvZo199デフォルトの名無しさん
2022/07/05(火) 23:19:42.19ID:I5LuZ1z+ >>197
>具体的になにが違うの
平日の昼ひまでこのスレにくるおじさん・じじいは
C++のshared_ptrと同じじゃないということを知ってさえいれば激十分なんだよ。
だから、具体的になにが違うかは(知らないから)答えられない。
C++とRustの深い知識あるようなすごい奴が平日の昼暇でここで遊んでいる
なんてことはないだろう。
>具体的になにが違うの
平日の昼ひまでこのスレにくるおじさん・じじいは
C++のshared_ptrと同じじゃないということを知ってさえいれば激十分なんだよ。
だから、具体的になにが違うかは(知らないから)答えられない。
C++とRustの深い知識あるようなすごい奴が平日の昼暇でここで遊んでいる
なんてことはないだろう。
200デフォルトの名無しさん
2022/07/06(水) 11:32:12.50ID:jpnjV9Mh Full Stack Rust App Template using Yew + Actix!
https://youtu.be/oCiGjrpGk4A
https://youtu.be/oCiGjrpGk4A
201デフォルトの名無しさん
2022/07/06(水) 11:45:22.14ID:UGbPogY6 UIフレームワークはスレチだよしんどけ
202デフォルトの名無しさん
2022/07/06(水) 12:20:02.69ID:b0Oxubv9 ここRustプログラミングに関することならば何でも歓迎
各々の関心がないことの和集合を取ると全体集合になる
特定の人にとって関心がないからと言って排除してはいけない
各々の関心がないことの和集合を取ると全体集合になる
特定の人にとって関心がないからと言って排除してはいけない
203デフォルトの名無しさん
2022/07/06(水) 14:24:50.14ID:oR52wNCu 違いが大きすぎるとどこが違うとかいうのを説明するのが難しくなる。
織田信長とオムライスの違いを説明できるか?
まあ shared_ptr と Rc の違いはさすがにそこまで大きくはないけども、
前提となる C++ と Rust の違いも小さくはないので比較する意味を感じないな。
shared_ptr は shared_ptr だし Rc は Rc としか言いようがないだろう。
織田信長とオムライスの違いを説明できるか?
まあ shared_ptr と Rc の違いはさすがにそこまで大きくはないけども、
前提となる C++ と Rust の違いも小さくはないので比較する意味を感じないな。
shared_ptr は shared_ptr だし Rc は Rc としか言いようがないだろう。
204デフォルトの名無しさん
2022/07/06(水) 16:11:44.19ID:rco22hfx リファレンスカウント方式の複製可能なスマートポインタという点では類似のものと言って良いのでは
元々はc++とrustで実行効率に差があるという話だがその観点でどういう差があるのかね
そもそも実行効率が何のことを言っているのかがよくわからんから議論しても仕方ないか
元々はc++とrustで実行効率に差があるという話だがその観点でどういう差があるのかね
そもそも実行効率が何のことを言っているのかがよくわからんから議論しても仕方ないか
205デフォルトの名無しさん
2022/07/06(水) 18:50:47.56ID:cl7AdtI8 原理と詳細を区別できない人はちょっと……
206デフォルトの名無しさん
2022/07/06(水) 23:39:03.25ID:DBl9eUwS >>203
全く別物の比較なら、信長は人間、オムライスは食べ物、というようなザックリした説明で良くなるのでは?
全く別物の比較なら、信長は人間、オムライスは食べ物、というようなザックリした説明で良くなるのでは?
207デフォルトの名無しさん
2022/07/06(水) 23:45:15.32ID:DBl9eUwS Arcとstd::shared_ptr<>が似てるという人に対して、「いや、std::shared_ptr<>とRcは全然違う」と反論するのがおかしいのでは?
208デフォルトの名無しさん
2022/07/07(木) 00:18:57.43ID:6JbvD3+y209デフォルトの名無しさん
2022/07/07(木) 00:49:54.35ID:Sq6Pkb7P >>208
俺らのレベルではその程度の知識で十分だろ
で、スマートポインタでもなんか違いあるの?と質問されても具体的に答えられなくても
全く問題ないからな。
一方、すごい人からすれはstd::shared_ptr<>とRcは全然違うとなるんだろうが
(すごい人敵にはそれらは例えばstd::shared_ptrは信長で人間、一方、Rcはオムライスで食べ物ぐらい違う!
でも、俺らは人間だって餌として食べることができるから同じだろ)
俺らのレベルではその程度の知識で十分だろ
で、スマートポインタでもなんか違いあるの?と質問されても具体的に答えられなくても
全く問題ないからな。
一方、すごい人からすれはstd::shared_ptr<>とRcは全然違うとなるんだろうが
(すごい人敵にはそれらは例えばstd::shared_ptrは信長で人間、一方、Rcはオムライスで食べ物ぐらい違う!
でも、俺らは人間だって餌として食べることができるから同じだろ)
210デフォルトの名無しさん
2022/07/07(木) 05:04:39.45ID:WPmCyDkS211デフォルトの名無しさん
2022/07/07(木) 08:43:50.09ID:M+xvnEsX 共有ポインタって何?
212デフォルトの名無しさん
2022/07/07(木) 10:54:08.79ID:LNwVrqhE shared pointerじゃね?
213デフォルトの名無しさん
2022/07/07(木) 11:14:16.23ID:xmv5m6Ag 結局参照カウント方式なのは一緒なんでしょ
214デフォルトの名無しさん
2022/07/07(木) 12:48:02.98ID:kuHYrppG215デフォルトの名無しさん
2022/07/07(木) 14:09:00.32ID:1csywUpz216デフォルトの名無しさん
2022/07/07(木) 15:30:16.82ID:jjCeBJbE ARCで管理してる時点でRustはガベコレじゃないからすごい!って理論は破綻してるんじゃありませんかね?
217デフォルトの名無しさん
2022/07/07(木) 15:41:53.87ID:6JbvD3+y >>216
誰がそんなこと言ってんの?
静的に管理できるものは静的に管理するし、実行時にしかわからないものは実行時に管理するってだけのことだ。
参照カウンタの適用範囲を間違えてるプログラマがいるならそれはそいつが無能。
誰がそんなこと言ってんの?
静的に管理できるものは静的に管理するし、実行時にしかわからないものは実行時に管理するってだけのことだ。
参照カウンタの適用範囲を間違えてるプログラマがいるならそれはそいつが無能。
218デフォルトの名無しさん
2022/07/07(木) 16:01:25.39ID:HUExG/fK Rust公式の日本語意訳にはしっかりRustはガベコレじゃないから高速って書いてあるね
219デフォルトの名無しさん
2022/07/07(木) 16:16:37.05ID:I5wN0SQd220デフォルトの名無しさん
2022/07/07(木) 18:43:04.02ID:u5IGnUan >>216
そもそもRust公式が「メモリリークはメモリ安全の範疇」と言っているしな。
そもそもRust公式が「メモリリークはメモリ安全の範疇」と言っているしな。
221デフォルトの名無しさん
2022/07/07(木) 18:52:31.81ID:pAImJ0Xg222デフォルトの名無しさん
2022/07/07(木) 18:55:30.53ID:V91F8QUY 流れぶった切りだけど単純にRustの人たちはGUIどうしてんの?
223デフォルトの名無しさん
2022/07/07(木) 19:11:09.29ID:Efq0h4+x なんだ、じゃあ、バグはセーフティと定義したら、Rustは安全高めなのか。
224デフォルトの名無しさん
2022/07/07(木) 19:29:21.10ID:webRw0a6 rust にクラスはないのですか?
225デフォルトの名無しさん
2022/07/07(木) 19:39:16.69ID:6JbvD3+y >>221
Rust が言語の仕組みによって防ごうと努力する範囲にメモリリークは含まないという定義だよ。
それを表すのに「Rust の仕様の中では」メモリ安全という用語を使っているのであって、
定義におかしいもクソもない。 定義なんだから。
Rust が言語の仕組みによって防ごうと努力する範囲にメモリリークは含まないという定義だよ。
それを表すのに「Rust の仕様の中では」メモリ安全という用語を使っているのであって、
定義におかしいもクソもない。 定義なんだから。
226デフォルトの名無しさん
2022/07/07(木) 19:46:35.34ID:6JbvD3+y227デフォルトの名無しさん
2022/07/07(木) 19:48:37.87ID:UC7ZSmFv 型クラスの事を聞いてるんじゃない?
228デフォルトの名無しさん
2022/07/07(木) 19:49:32.87ID:idvDnT2E229デフォルトの名無しさん
2022/07/07(木) 20:00:40.75ID:pAImJ0Xg >>225
そのRustの仕様の中でメモリ安全性を達成できていないんだから
Rustの仕様の中でメモリ安全性という用語を使うのは不適切
Rustの謳うメモリ安全性は世間一般のメモリ安全性とは異なる概念なんだからそれを表すには他の用語を使うのが適当かと
そのRustの仕様の中でメモリ安全性を達成できていないんだから
Rustの仕様の中でメモリ安全性という用語を使うのは不適切
Rustの謳うメモリ安全性は世間一般のメモリ安全性とは異なる概念なんだからそれを表すには他の用語を使うのが適当かと
230デフォルトの名無しさん
2022/07/07(木) 20:06:09.82ID:idvDnT2E >>224
クラスはその根幹の継承がデメリットだらけと結論が出ているためGoやRustなどでは採用されていない
メンバー変数やメンバーメソッド等とは構造体で使えるため困ることはない
Rustでは構造体を含む任意の型に対して横断的に共通適用可能なトレイトがあり非常に強力で利便性がよい
クラスはその根幹の継承がデメリットだらけと結論が出ているためGoやRustなどでは採用されていない
メンバー変数やメンバーメソッド等とは構造体で使えるため困ることはない
Rustでは構造体を含む任意の型に対して横断的に共通適用可能なトレイトがあり非常に強力で利便性がよい
231デフォルトの名無しさん
2022/07/07(木) 20:09:54.71ID:6JbvD3+y232デフォルトの名無しさん
2022/07/07(木) 20:25:04.56ID:idvDnT2E >>229
世間一般なんてものはなくそれぞれがそれぞれの定義域に依る
そしてそれが明確になっていればよい
例えばRustではメモリ競合は防止可能と明確化しつつ、より一般的な競合状態は対象外と明確化している
原理的に無理なものは無理なのだからそこは明確化してあればそれでよい
世間一般なんてものはなくそれぞれがそれぞれの定義域に依る
そしてそれが明確になっていればよい
例えばRustではメモリ競合は防止可能と明確化しつつ、より一般的な競合状態は対象外と明確化している
原理的に無理なものは無理なのだからそこは明確化してあればそれでよい
233デフォルトの名無しさん
2022/07/07(木) 21:01:30.61ID:0wlfNyVX >>228
aliasingの話してるところにRAIIが来るのもよくわからないがRAIIだと高速という理屈はさらにわけわかめ
aliasingの話してるところにRAIIが来るのもよくわからないがRAIIだと高速という理屈はさらにわけわかめ
234デフォルトの名無しさん
2022/07/07(木) 21:12:46.12ID:PQWZgdhj >>222
windows-rsでunsafe祭りになりながら書いたよ。オススメはしないが。
windows-rsでunsafe祭りになりながら書いたよ。オススメはしないが。
235デフォルトの名無しさん
2022/07/07(木) 21:39:23.64ID:pHkHW2c/ SwiftのARCとRustのArcの区別がつかない人は論外なので発言を控えてほしい
ただでさえしょうもないのにしょうもなさが倍増するからね・・・
SwiftのARCはAutomatic Reference Counting
https://docs.swift.org/swift-book/LanguageGuide/AutomaticReferenceCounting.html
RustのArcはAtomically Reference Counted
https://doc.rust-lang.org/std/sync/struct.Arc.html
ただでさえしょうもないのにしょうもなさが倍増するからね・・・
SwiftのARCはAutomatic Reference Counting
https://docs.swift.org/swift-book/LanguageGuide/AutomaticReferenceCounting.html
RustのArcはAtomically Reference Counted
https://doc.rust-lang.org/std/sync/struct.Arc.html
236デフォルトの名無しさん
2022/07/07(木) 22:03:40.09ID:webRw0a6237デフォルトの名無しさん
2022/07/07(木) 22:05:44.36ID:idvDnT2E >>233
C++とRustはヒープ利用に対してRAIIによるデストラクタ呼び出しによりリファレンスカウンタ無しでメモリ解放するので高速
さらに加えてRustでは所有権と借用のルール明確化により解放の安全性も静的に保証している
一方でSwiftはヒープ利用に対して常にリファレンスカウンタを用いるARCによりメモリ解放の管理をするため低速
C++とRustはヒープ利用に対してRAIIによるデストラクタ呼び出しによりリファレンスカウンタ無しでメモリ解放するので高速
さらに加えてRustでは所有権と借用のルール明確化により解放の安全性も静的に保証している
一方でSwiftはヒープ利用に対して常にリファレンスカウンタを用いるARCによりメモリ解放の管理をするため低速
238デフォルトの名無しさん
2022/07/07(木) 22:11:56.95ID:hEh+9Mpq >>236
その流れで継承不可のクラスベースのオブジェクト指向言語がどういうものになるか思考実験的に考えてみなよ
その流れで継承不可のクラスベースのオブジェクト指向言語がどういうものになるか思考実験的に考えてみなよ
239デフォルトの名無しさん
2022/07/08(金) 03:25:18.13ID:CKdXv9cu それよりSQLが超苦手な俺はPRQLにめちゃくちゃ期待しているのだがラスタシアン達はSQLも達者なのかね?
240デフォルトの名無しさん
2022/07/08(金) 03:34:35.68ID:tnmgUx+u うーん。
このスレ↓では、Rustはメモリーリークしない、Cはリークすると議論してたからなあ。
https://mevius.5ch.net/test/read.cgi/tech/1650185555/
このスレ↓では、Rustはメモリーリークしない、Cはリークすると議論してたからなあ。
https://mevius.5ch.net/test/read.cgi/tech/1650185555/
241デフォルトの名無しさん
2022/07/08(金) 07:13:21.57ID:vMUJBeEa pijul使ってみたけど、改行コードがCRLFだと非対応で
バイナリファイル扱いになるという謎仕様でまいった
差分とか出せなくなる
ファイルタイプ判別を変えるオプションは無い
それは置いといても、表示もドキュメントも超簡素で
もうすぐ1.0.0リリースを迎えるとは思えない状態
ほとんどの入門記事で使われている重要コマンドpijul statusが
最近のバージョンで削除されたのも謎すぎる
だいじょうぶなのかこれ
バイナリファイル扱いになるという謎仕様でまいった
差分とか出せなくなる
ファイルタイプ判別を変えるオプションは無い
それは置いといても、表示もドキュメントも超簡素で
もうすぐ1.0.0リリースを迎えるとは思えない状態
ほとんどの入門記事で使われている重要コマンドpijul statusが
最近のバージョンで削除されたのも謎すぎる
だいじょうぶなのかこれ
242デフォルトの名無しさん
2022/07/08(金) 07:47:38.58ID:ifo4L8le >>239
今の開発のトレンドが互換性維持で苦労して中途半端なものになるくらいなら好きな仕様にして最後全部トランスパイルすりゃいいじゃん!になってしまったな
世の天才が叡智を絞った結果がRust界隈含めて今まで散々馬鹿にしてたウェブ(JS)の後追いなの草生えるわ
ちなみに英語圏ではSQLはシークェルと発音するから覚えとけ
ラスタシアンの紳士諸君はえすきゅーえるとかクソダサい発音禁止な
今の開発のトレンドが互換性維持で苦労して中途半端なものになるくらいなら好きな仕様にして最後全部トランスパイルすりゃいいじゃん!になってしまったな
世の天才が叡智を絞った結果がRust界隈含めて今まで散々馬鹿にしてたウェブ(JS)の後追いなの草生えるわ
ちなみに英語圏ではSQLはシークェルと発音するから覚えとけ
ラスタシアンの紳士諸君はえすきゅーえるとかクソダサい発音禁止な
243デフォルトの名無しさん
2022/07/08(金) 08:02:14.74ID:i9Nd4OSx PRQL 書き味が CloudWatch logs Insightと似てそうだけどあれもそんなにいいもんじゃないぞ。
244デフォルトの名無しさん
2022/07/08(金) 08:04:43.63ID:pMnIhSXO >>242
外人の禿げたおっさんはだいたいエスキューエル言うてるやろ
外人の禿げたおっさんはだいたいエスキューエル言うてるやろ
245デフォルトの名無しさん
2022/07/08(金) 08:11:32.47ID:i9Nd4OSx コントロールも無視もできない処理系や既存資産の上でまともな進化や開発体験を維持しようとしたらトランスパイルになるのは必然だったんだろうな。
それが必要になるクソさと、トランスパイルコストの損益分岐点が最初に現れたのがJSってだけだと思うよ。
それが必要になるクソさと、トランスパイルコストの損益分岐点が最初に現れたのがJSってだけだと思うよ。
246デフォルトの名無しさん
2022/07/08(金) 08:44:10.67ID:efA8XUrt >>240
メモリリークに関しては
まず、Rustは自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全
ただし、Rustにおいて循環参照は他の言語と大きく異なり、
・意図的に色々と明確に指示して作成しないと、循環参照は自然に発生しない
・強い参照と弱い参照を使い分けることが出来るため、強い参照のみによる循環参照を避けることが可能
・意図的に強い循環参照を作成した場合は、それはRustにとって自動的なメモリ解放の対象とならない
したがって、Rustにおいて強い循環参照を意図的に作成した場合のみメモリリークが起こりうるが、わざと作成したのだから意図通り、という扱い
メモリリークに関しては
まず、Rustは自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全
ただし、Rustにおいて循環参照は他の言語と大きく異なり、
・意図的に色々と明確に指示して作成しないと、循環参照は自然に発生しない
・強い参照と弱い参照を使い分けることが出来るため、強い参照のみによる循環参照を避けることが可能
・意図的に強い循環参照を作成した場合は、それはRustにとって自動的なメモリ解放の対象とならない
したがって、Rustにおいて強い循環参照を意図的に作成した場合のみメモリリークが起こりうるが、わざと作成したのだから意図通り、という扱い
247デフォルトの名無しさん
2022/07/08(金) 09:06:34.18ID:ujjjtz1g ほんと無知って怖いね
248デフォルトの名無しさん
2022/07/08(金) 09:12:01.24ID:1lqt9Ku2 「循環参照は自然に発生しない」なんていう解説狂信者おじさんがいる限り、プロジェクトには絶対Rustは採用しない......
249デフォルトの名無しさん
2022/07/08(金) 09:29:57.41ID:L1lQIkzy ほんとこの種の信者は迷惑だわ
普通は多人数で作業して、データー構造をRc<T>をWeak<T>にあらかじめしておくようなことはしないし、”わざと作成したのだから意図通り”とか
相手(これから学ぶ人や新人)を騙すために都合の良いことを吹き込んでいるようにしか見えない・・・
それなら自動メモリ管理ではないので、作り方/使い方により自然/意図しない使い方でリークも場合もあると明確に認めて、その分だけ
自動メモリ管理ではないないので速度が速いし、メモリー解放のタイミングもある程度コントロール出来ると誠実に話したほうが余程、印象が良いのに。
胡散臭い宗教の勧誘に見えるような態度だから叩かれる
普通は多人数で作業して、データー構造をRc<T>をWeak<T>にあらかじめしておくようなことはしないし、”わざと作成したのだから意図通り”とか
相手(これから学ぶ人や新人)を騙すために都合の良いことを吹き込んでいるようにしか見えない・・・
それなら自動メモリ管理ではないので、作り方/使い方により自然/意図しない使い方でリークも場合もあると明確に認めて、その分だけ
自動メモリ管理ではないないので速度が速いし、メモリー解放のタイミングもある程度コントロール出来ると誠実に話したほうが余程、印象が良いのに。
胡散臭い宗教の勧誘に見えるような態度だから叩かれる
250デフォルトの名無しさん
2022/07/08(金) 09:30:47.62ID:Gv4jmnae >>241
PijulもPRQLなど最近の新たな試みはRustで実装されることが多いが
それらはRust言語のためのものではなく汎用的なものであり
それらの問題点もRustとは直接関係がない
今後Rustで書かれた新たなものがどんどん増えていくだろうがそこは区別すべきところかな
一方でそれらをRust言語で使うためのクレートなどがあれば
Rustプログラミングにおいて使う特有の話なので
それらの話題自体を避けるべきではないね
PijulもPRQLなど最近の新たな試みはRustで実装されることが多いが
それらはRust言語のためのものではなく汎用的なものであり
それらの問題点もRustとは直接関係がない
今後Rustで書かれた新たなものがどんどん増えていくだろうがそこは区別すべきところかな
一方でそれらをRust言語で使うためのクレートなどがあれば
Rustプログラミングにおいて使う特有の話なので
それらの話題自体を避けるべきではないね
251デフォルトの名無しさん
2022/07/08(金) 09:41:28.80ID:v7XD1ZOP 循環参照は自然に発生しないって、コードを何も書かなければ発生しないって意味かな
252デフォルトの名無しさん
2022/07/08(金) 09:42:55.25ID:QpPOct5C253デフォルトの名無しさん
2022/07/08(金) 09:58:58.97ID:BqWLp+Ol RAIIでメモリをケアするのは
GC方式にくらべて高速ってのはまぁそうなんだけど
それよりも
開放タイミングが決定的であることのほうが特徴
オブジェクトの生存期間によってメモリの使用期間もプログラマが管理できて嬉しい
GC方式にくらべて高速ってのはまぁそうなんだけど
それよりも
開放タイミングが決定的であることのほうが特徴
オブジェクトの生存期間によってメモリの使用期間もプログラマが管理できて嬉しい
254デフォルトの名無しさん
2022/07/08(金) 12:01:11.06ID:bBPWEvXX >>236
参照カウント方式と区別したいなら、「GC方式」みたいな曖昧な用語はやめて「トレーシングGC」を使おうぜ。
参照カウント方式と区別したいなら、「GC方式」みたいな曖昧な用語はやめて「トレーシングGC」を使おうぜ。
255デフォルトの名無しさん
2022/07/08(金) 12:37:51.01ID:4Cg/jdLt >まず、Rustは自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全
この時点で嘘だらけなんだから、それ以上読む必要無い
日本語ブログだとこういう複オジレベルの人が多数派なので
Rustを本気で学びたいやつは英語のリソースメインで学ぶことを強くすすめる
この時点で嘘だらけなんだから、それ以上読む必要無い
日本語ブログだとこういう複オジレベルの人が多数派なので
Rustを本気で学びたいやつは英語のリソースメインで学ぶことを強くすすめる
256デフォルトの名無しさん
2022/07/08(金) 12:39:17.46ID:u4+He/YT >>249
アンチは実際にプログラミングしたことがないのかね
Rc<T>自体は書き換えできないのでRc<T>だけでは循環参照を作ることができない
Rc<T>とWeak<T>は互いに対称ではないため直接置き換える対象ではない
例えばnewもRc::new(T)とWeak::new()で引数Tの有無からして異なる
さらに多人数で作業するから強い循環参照を知らぬ間に作ってしまうとの言い訳も意味不明だ
アンチは実際にプログラミングしたことがないのかね
Rc<T>自体は書き換えできないのでRc<T>だけでは循環参照を作ることができない
Rc<T>とWeak<T>は互いに対称ではないため直接置き換える対象ではない
例えばnewもRc::new(T)とWeak::new()で引数Tの有無からして異なる
さらに多人数で作業するから強い循環参照を知らぬ間に作ってしまうとの言い訳も意味不明だ
257デフォルトの名無しさん
2022/07/08(金) 12:42:18.47ID:u4+He/YT >>255
Rustは所有者がいなくなると自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全で合っている
Rustは所有者がいなくなると自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全で合っている
258デフォルトの名無しさん
2022/07/08(金) 14:56:50.59ID:bBPWEvXX259デフォルトの名無しさん
2022/07/08(金) 16:11:26.76ID:VZayErSn >>258
C++もRustも仕組みは同じ
RAIIによりスコープを外れた対象のスタック部分が解放される時にそのデストラクタによってヒープ部分が解放される
汎用的にはこれが最も高速かつ利便性>>253が高い
Copying GCは特殊な環境で特殊な使い方に限定する場合は速いこともありうるがデメリットも多く一般的には使われることが少ない
使用メモリが多くなるとかコピーで値を移動させるため非常に遅いなどのデメリットの他に
そこを指す全てのポインタ値をGCのたびに全て修整しなければならないという致命的な欠陥がある
C/C++/Rustなどでスタック上に置かれたポインタ値の全てを的確に書き換えるのは不可能なので使えない
C++もRustも仕組みは同じ
RAIIによりスコープを外れた対象のスタック部分が解放される時にそのデストラクタによってヒープ部分が解放される
汎用的にはこれが最も高速かつ利便性>>253が高い
Copying GCは特殊な環境で特殊な使い方に限定する場合は速いこともありうるがデメリットも多く一般的には使われることが少ない
使用メモリが多くなるとかコピーで値を移動させるため非常に遅いなどのデメリットの他に
そこを指す全てのポインタ値をGCのたびに全て修整しなければならないという致命的な欠陥がある
C/C++/Rustなどでスタック上に置かれたポインタ値の全てを的確に書き換えるのは不可能なので使えない
260デフォルトの名無しさん
2022/07/08(金) 16:24:07.17ID:atE4xqm8 短時間で終了するプログラムはfree呼ばずにexitした方が高速な場合がある
copy gcも条件付きだが高速な場合がある
常にRAIIによるメモリ解放が他の手段より高速というのは誤り
100%正しいという風に断言するから枝葉の議論になるし最初から論理的に厳密な文章書いた方が良いよ
copy gcも条件付きだが高速な場合がある
常にRAIIによるメモリ解放が他の手段より高速というのは誤り
100%正しいという風に断言するから枝葉の議論になるし最初から論理的に厳密な文章書いた方が良いよ
261デフォルトの名無しさん
2022/07/08(金) 16:35:35.79ID:VZayErSn >>260
これは特殊な使い方限定の話を持ち出したら意味がない話
既に書いたようにCopying GCは汎用的には使いものにならない
一般的にはRAIIによる解放が最も高速かつ利便性が高い
そのためC++でもRustでもその方法がとられている
これは特殊な使い方限定の話を持ち出したら意味がない話
既に書いたようにCopying GCは汎用的には使いものにならない
一般的にはRAIIによる解放が最も高速かつ利便性が高い
そのためC++でもRustでもその方法がとられている
262デフォルトの名無しさん
2022/07/08(金) 17:23:29.15ID:cRmlWf2z copying GCはJavaで使われているのだが
解放しない、以外でスタックの解放(malloc的なものに対する)freeより速いものはあるの?
解放しない、以外でスタックの解放(malloc的なものに対する)freeより速いものはあるの?
263デフォルトの名無しさん
2022/07/08(金) 18:32:33.29ID:r9xh0XFc >>246
C++にもweak_ptr<>あるけど。
C++にもweak_ptr<>あるけど。
264デフォルトの名無しさん
2022/07/08(金) 18:32:40.38ID:IcalP2aj RAIIがGCより高速なら
RAIIの一例であるshared_ptrはGCの一例であるARCより高速ということになるが
どういう原理で高速になるの?
RAIIの一例であるshared_ptrはGCの一例であるARCより高速ということになるが
どういう原理で高速になるの?
265デフォルトの名無しさん
2022/07/08(金) 18:42:02.74ID:r9xh0XFc でも、Firefox良く落ちるじゃん。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★7 [樽悶★]
- 【速報】公然わいせつの疑いで逮捕・送検・略式起訴のAぇ! group 草間リチャード敬太メンバー 脱退を発表 「心の病の療養」に専念 [Ailuropoda melanoleuca★]
- 中国国際航空が日本便を減便へ、春節休みも SNSでは投稿相次ぐ [七波羅探題★]
- 小野田紀美 経済安保相「悪いことをする外国人、日本にいない状況つくる」 [Hitzeschleier★]
- 【🐼🇨🇳】「高市総理VS中国」で日本からパンダはゼロに? 上野動物園「パンダ返還期限」まであと4カ月…★2 [BFU★]
- 台湾トップが寿司で日本支援!頼清徳総統「昼食はお寿司と味噌汁」日本産ホタテを食べる様子をSNSに投稿 [夜のけいちゃん★]
- 立憲民主党「他に高市に質問したらダメなことはなんですか?どこに地雷が埋まっているのかわかりません」⬅なんて答える? [158478931]
- 【高市悲報】中国→日本の貨物便、死ぬほど運賃が上昇してる模様。。今後大幅値上げラッシュ来るぞ [467637843]
- 恐ろしい😈のちゅちょちゅちょ・ちぇびるのお🏡
- 【悲報】立憲岡田「間違った答弁をした高市総理に問題がある」→愛国者ブチギレ炎上 [834922174]
- 【高市悲報】日本政府、またウソがバレる。中国「撮影してたのは日本メディア」 [834922174]
- 山上妹 「この人は母親じゃない、母親の形をした統一教会信者だ」 [507895468]
