Rust part16

■ このスレッドは過去ログ倉庫に格納されています
2022/06/27(月) 08:17:03.45ID:gDlfKP6u
公式
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/
2022/07/07(木) 14:09:00.32ID:1csywUpz
>>214
shared pointerはc++のが有名すぎるからなんとも言えないなぁ。

参照カウント以外でポインタを共有するのはリンクリスト方式とかあるよ。
2022/07/07(木) 15:30:16.82ID:jjCeBJbE
ARCで管理してる時点でRustはガベコレじゃないからすごい!って理論は破綻してるんじゃありませんかね?
2022/07/07(木) 15:41:53.87ID:6JbvD3+y
>>216
誰がそんなこと言ってんの?

静的に管理できるものは静的に管理するし、実行時にしかわからないものは実行時に管理するってだけのことだ。
参照カウンタの適用範囲を間違えてるプログラマがいるならそれはそいつが無能。
2022/07/07(木) 16:01:25.39ID:HUExG/fK
Rust公式の日本語意訳にはしっかりRustはガベコレじゃないから高速って書いてあるね
2022/07/07(木) 16:16:37.05ID:I5wN0SQd
>>216
Objective-C/SwiftのARCとRustのArcは同じ3文字略語だけど別のものだよ
それを理解した上で言ってるのなら別にいいんだけどさ
2022/07/07(木) 18:43:04.02ID:u5IGnUan
>>216
そもそもRust公式が「メモリリークはメモリ安全の範疇」と言っているしな。
2022/07/07(木) 18:52:31.81ID:pAImJ0Xg
>>220
それはRustの定義がおかしい
一般的にはメモリリークがあるとメモリ安全だとは言わない
2022/07/07(木) 18:55:30.53ID:V91F8QUY
流れぶった切りだけど単純にRustの人たちはGUIどうしてんの?
223デフォルトの名無しさん
垢版 |
2022/07/07(木) 19:11:09.29ID:Efq0h4+x
なんだ、じゃあ、バグはセーフティと定義したら、Rustは安全高めなのか。
2022/07/07(木) 19:29:21.10ID:webRw0a6
rust にクラスはないのですか?
2022/07/07(木) 19:39:16.69ID:6JbvD3+y
>>221
Rust が言語の仕組みによって防ごうと努力する範囲にメモリリークは含まないという定義だよ。
それを表すのに「Rust の仕様の中では」メモリ安全という用語を使っているのであって、
定義におかしいもクソもない。 定義なんだから。
2022/07/07(木) 19:46:35.34ID:6JbvD3+y
>>224
クラスと名付けられている概念はない。
あなたにとってクラスとは何のこと? 何が出来ればクラス?
2022/07/07(木) 19:48:37.87ID:UC7ZSmFv
型クラスの事を聞いてるんじゃない?
2022/07/07(木) 19:49:32.87ID:idvDnT2E
>>216
ARCで管理しているのはSwift
RustはC++と同じくRAIIなので高速
どうしても共有メモリを使いたい時のみshared_ptrやRc/Arcを用いる
2022/07/07(木) 20:00:40.75ID:pAImJ0Xg
>>225
そのRustの仕様の中でメモリ安全性を達成できていないんだから
Rustの仕様の中でメモリ安全性という用語を使うのは不適切
Rustの謳うメモリ安全性は世間一般のメモリ安全性とは異なる概念なんだからそれを表すには他の用語を使うのが適当かと
2022/07/07(木) 20:06:09.82ID:idvDnT2E
>>224
クラスはその根幹の継承がデメリットだらけと結論が出ているためGoやRustなどでは採用されていない
メンバー変数やメンバーメソッド等とは構造体で使えるため困ることはない
Rustでは構造体を含む任意の型に対して横断的に共通適用可能なトレイトがあり非常に強力で利便性がよい
2022/07/07(木) 20:09:54.71ID:6JbvD3+y
>>229
知らんがな。
大抵の専門用語は一般名詞に (その分野における) 明確な定義を与えることで成り立ってるのはごく普通のことだろ。
2022/07/07(木) 20:25:04.56ID:idvDnT2E
>>229
世間一般なんてものはなくそれぞれがそれぞれの定義域に依る
そしてそれが明確になっていればよい
例えばRustではメモリ競合は防止可能と明確化しつつ、より一般的な競合状態は対象外と明確化している
原理的に無理なものは無理なのだからそこは明確化してあればそれでよい
2022/07/07(木) 21:01:30.61ID:0wlfNyVX
>>228
aliasingの話してるところにRAIIが来るのもよくわからないがRAIIだと高速という理屈はさらにわけわかめ
2022/07/07(木) 21:12:46.12ID:PQWZgdhj
>>222
windows-rsでunsafe祭りになりながら書いたよ。オススメはしないが。
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
2022/07/07(木) 22:03:40.09ID:webRw0a6
>>230
継承をやめて委譲にすれば割とまともになると思います
https://mevius.5ch.net/test/read.cgi/tech/1434079972/51
https://mevius.5ch.net/test/read.cgi/tech/1434079972/84
2022/07/07(木) 22:05:44.36ID:idvDnT2E
>>233
C++とRustはヒープ利用に対してRAIIによるデストラクタ呼び出しによりリファレンスカウンタ無しでメモリ解放するので高速
さらに加えてRustでは所有権と借用のルール明確化により解放の安全性も静的に保証している
一方でSwiftはヒープ利用に対して常にリファレンスカウンタを用いるARCによりメモリ解放の管理をするため低速
2022/07/07(木) 22:11:56.95ID:hEh+9Mpq
>>236
その流れで継承不可のクラスベースのオブジェクト指向言語がどういうものになるか思考実験的に考えてみなよ
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/
2022/07/08(金) 07:13:21.57ID:vMUJBeEa
pijul使ってみたけど、改行コードがCRLFだと非対応で
バイナリファイル扱いになるという謎仕様でまいった
差分とか出せなくなる
ファイルタイプ判別を変えるオプションは無い

それは置いといても、表示もドキュメントも超簡素で
もうすぐ1.0.0リリースを迎えるとは思えない状態

ほとんどの入門記事で使われている重要コマンドpijul statusが
最近のバージョンで削除されたのも謎すぎる
だいじょうぶなのかこれ
2022/07/08(金) 07:47:38.58ID:ifo4L8le
>>239
今の開発のトレンドが互換性維持で苦労して中途半端なものになるくらいなら好きな仕様にして最後全部トランスパイルすりゃいいじゃん!になってしまったな
世の天才が叡智を絞った結果がRust界隈含めて今まで散々馬鹿にしてたウェブ(JS)の後追いなの草生えるわ
ちなみに英語圏ではSQLはシークェルと発音するから覚えとけ
ラスタシアンの紳士諸君はえすきゅーえるとかクソダサい発音禁止な
2022/07/08(金) 08:02:14.74ID:i9Nd4OSx
PRQL 書き味が CloudWatch logs Insightと似てそうだけどあれもそんなにいいもんじゃないぞ。
2022/07/08(金) 08:04:43.63ID:pMnIhSXO
>>242
外人の禿げたおっさんはだいたいエスキューエル言うてるやろ
2022/07/08(金) 08:11:32.47ID:i9Nd4OSx
コントロールも無視もできない処理系や既存資産の上でまともな進化や開発体験を維持しようとしたらトランスパイルになるのは必然だったんだろうな。

それが必要になるクソさと、トランスパイルコストの損益分岐点が最初に現れたのがJSってだけだと思うよ。
2022/07/08(金) 08:44:10.67ID:efA8XUrt
>>240
メモリリークに関しては

まず、Rustは自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全
ただし、Rustにおいて循環参照は他の言語と大きく異なり、
・意図的に色々と明確に指示して作成しないと、循環参照は自然に発生しない
・強い参照と弱い参照を使い分けることが出来るため、強い参照のみによる循環参照を避けることが可能
・意図的に強い循環参照を作成した場合は、それはRustにとって自動的なメモリ解放の対象とならない

したがって、Rustにおいて強い循環参照を意図的に作成した場合のみメモリリークが起こりうるが、わざと作成したのだから意図通り、という扱い
2022/07/08(金) 09:06:34.18ID:ujjjtz1g
ほんと無知って怖いね
2022/07/08(金) 09:12:01.24ID:1lqt9Ku2
「循環参照は自然に発生しない」なんていう解説狂信者おじさんがいる限り、プロジェクトには絶対Rustは採用しない......
2022/07/08(金) 09:29:57.41ID:L1lQIkzy
ほんとこの種の信者は迷惑だわ
普通は多人数で作業して、データー構造をRc<T>をWeak<T>にあらかじめしておくようなことはしないし、”わざと作成したのだから意図通り”とか
相手(これから学ぶ人や新人)を騙すために都合の良いことを吹き込んでいるようにしか見えない・・・
それなら自動メモリ管理ではないので、作り方/使い方により自然/意図しない使い方でリークも場合もあると明確に認めて、その分だけ
自動メモリ管理ではないないので速度が速いし、メモリー解放のタイミングもある程度コントロール出来ると誠実に話したほうが余程、印象が良いのに。
胡散臭い宗教の勧誘に見えるような態度だから叩かれる
2022/07/08(金) 09:30:47.62ID:Gv4jmnae
>>241
PijulもPRQLなど最近の新たな試みはRustで実装されることが多いが
それらはRust言語のためのものではなく汎用的なものであり
それらの問題点もRustとは直接関係がない
今後Rustで書かれた新たなものがどんどん増えていくだろうがそこは区別すべきところかな

一方でそれらをRust言語で使うためのクレートなどがあれば
Rustプログラミングにおいて使う特有の話なので
それらの話題自体を避けるべきではないね
2022/07/08(金) 09:41:28.80ID:v7XD1ZOP
循環参照は自然に発生しないって、コードを何も書かなければ発生しないって意味かな
2022/07/08(金) 09:42:55.25ID:QpPOct5C
>>248
新たなプロジェクトが次々とRustを採用している現実を直視しようぜ

>>249
循環参照はRust以外だと知らぬ間に発生してしまう自然なよくあるものだが
Rustでは複雑な操作で意図的に作り出さないと出現すらしない点を理解しようぜ
2022/07/08(金) 09:58:58.97ID:BqWLp+Ol
RAIIでメモリをケアするのは
GC方式にくらべて高速ってのはまぁそうなんだけど
それよりも
開放タイミングが決定的であることのほうが特徴
オブジェクトの生存期間によってメモリの使用期間もプログラマが管理できて嬉しい
2022/07/08(金) 12:01:11.06ID:bBPWEvXX
>>236
参照カウント方式と区別したいなら、「GC方式」みたいな曖昧な用語はやめて「トレーシングGC」を使おうぜ。
2022/07/08(金) 12:37:51.01ID:4Cg/jdLt
>まず、Rustは自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全
この時点で嘘だらけなんだから、それ以上読む必要無い

日本語ブログだとこういう複オジレベルの人が多数派なので
Rustを本気で学びたいやつは英語のリソースメインで学ぶことを強くすすめる
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の有無からして異なる
さらに多人数で作業するから強い循環参照を知らぬ間に作ってしまうとの言い訳も意味不明だ
2022/07/08(金) 12:42:18.47ID:u4+He/YT
>>255
Rustは所有者がいなくなると自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全で合っている
2022/07/08(金) 14:56:50.59ID:bBPWEvXX
>>257
メモリを解放しないCopying GCの方が高速なんだけどなぁ。

Rustもメモリ解放しない実装なのかね?RAIIならスタック領域しかメモリを確保しないとか。
2022/07/08(金) 16:11:26.76ID:VZayErSn
>>258
C++もRustも仕組みは同じ
RAIIによりスコープを外れた対象のスタック部分が解放される時にそのデストラクタによってヒープ部分が解放される
汎用的にはこれが最も高速かつ利便性>>253が高い

Copying GCは特殊な環境で特殊な使い方に限定する場合は速いこともありうるがデメリットも多く一般的には使われることが少ない
使用メモリが多くなるとかコピーで値を移動させるため非常に遅いなどのデメリットの他に
そこを指す全てのポインタ値をGCのたびに全て修整しなければならないという致命的な欠陥がある
C/C++/Rustなどでスタック上に置かれたポインタ値の全てを的確に書き換えるのは不可能なので使えない
2022/07/08(金) 16:24:07.17ID:atE4xqm8
短時間で終了するプログラムはfree呼ばずにexitした方が高速な場合がある
copy gcも条件付きだが高速な場合がある
常にRAIIによるメモリ解放が他の手段より高速というのは誤り

100%正しいという風に断言するから枝葉の議論になるし最初から論理的に厳密な文章書いた方が良いよ
2022/07/08(金) 16:35:35.79ID:VZayErSn
>>260
これは特殊な使い方限定の話を持ち出したら意味がない話
既に書いたようにCopying GCは汎用的には使いものにならない
一般的にはRAIIによる解放が最も高速かつ利便性が高い
そのためC++でもRustでもその方法がとられている
2022/07/08(金) 17:23:29.15ID:cRmlWf2z
copying GCはJavaで使われているのだが

解放しない、以外でスタックの解放(malloc的なものに対する)freeより速いものはあるの?
263デフォルトの名無しさん
垢版 |
2022/07/08(金) 18:32:33.29ID:r9xh0XFc
>>246
C++にもweak_ptr<>あるけど。
2022/07/08(金) 18:32:40.38ID:IcalP2aj
RAIIがGCより高速なら
RAIIの一例であるshared_ptrはGCの一例であるARCより高速ということになるが
どういう原理で高速になるの?
265デフォルトの名無しさん
垢版 |
2022/07/08(金) 18:42:02.74ID:r9xh0XFc
でも、Firefox良く落ちるじゃん。
266デフォルトの名無しさん
垢版 |
2022/07/08(金) 18:45:00.33ID:r9xh0XFc
でも、JavaはC++も20倍速いってサイト無くなったじゃん。
267デフォルトの名無しさん
垢版 |
2022/07/08(金) 18:50:36.37ID:r9xh0XFc
>>261
だって、RustはC++0xのパクリじゃん。
2022/07/08(金) 18:52:55.66ID:hlO59OkW
>>264
shared_ptrではRAIIによって解放しない
RAIIによってデクリメントするだけ

SwiftなどでのARCが遅い理由は参照型の全てにおいてshared_ptrを使用しているような状況であるためコストが高い
269デフォルトの名無しさん
垢版 |
2022/07/08(金) 18:54:07.09ID:r9xh0XFc
じゃあ、unique_ptr<>でいいじゃん。
2022/07/08(金) 19:10:19.78ID:hlO59OkW
>>269
unique_ptrとshared_ptrの役割の違い、動作の違いを理解できていない君が
間違えて用いてもC++ではコンパイルが通ってしまったりして実行時に問題を引き起こす
Rustは間違えて用いるとコンパイルエラーとなり通らないから安全側に救われる
2022/07/08(金) 20:02:01.67ID:A8oltmgp
>>268
参照型の全てにshared_ptrを利用したら何で遅くなるの?
2022/07/08(金) 21:48:50.65ID:i9Nd4OSx
>>257
即座に開放というのがOSに返却とか認識してたらアウトだぞ。
アロケーターなに使うかで実際の挙動は変わってくるからな。
普通しないがクソアロケーター使ったら、OSからみたらリーク同然になったりするし。
2022/07/08(金) 21:53:34.22ID:G/CdBPp1
所有者がいないとメモリ解放って間違ってるよね?

所有者がいてもブロックから出たら解放されるからコンパイルエラーが出てコンパイルされない
2022/07/08(金) 22:05:32.56ID:h7kEq7Ot
OSSでうっかり強循環参照作ってしまってた例が過去スレにあったようなと掘り返してみたところ、Part11にて発見

https://github.com/DataDog/glommio/commit/677fe1dfbaf911245fbc5c3eef75532d08d784bf
https://github.com/KWARC/rust-libxml/commit/bd4b120b90b2568ca6d5bfaa368a200573b87d09
2022/07/08(金) 22:23:05.26ID:RqLk9Xjf
>>272
そんなバカな認識するのはオマエだけだろw
2022/07/08(金) 22:38:42.99ID:J0vSCVey
>>273
所有者がいなくなるとメモリ解放であってるよ
スコープを抜けると所有者がいなくなりデストラクタが呼ばれて管理していたヒープ領域があれば解放される
2022/07/08(金) 22:51:41.26ID:j0PLF9Z7
所有権とは?の話に戻っちゃうな
複製おじさんネタで散々繰り返したやつ
2022/07/08(金) 23:06:47.48ID:QSUHt/6/
お前ら何回同じ話ループさせたら気が済むの?
2022/07/08(金) 23:08:26.12ID:h7kEq7Ot
なんか合ってるのか分からんけど最近思うこと

Rustの言語仕様内に明確に含まれているのはlifetimeだけで
所有権とか所有者ってのは実はただのメタファーでしかない?
280デフォルトの名無しさん
垢版 |
2022/07/08(金) 23:12:47.70ID:r9xh0XFc
C++はコンテナのアロケータと積み荷のアロケータが別とかできるくらい柔軟ですよ。
281デフォルトの名無しさん
垢版 |
2022/07/09(土) 00:08:13.16ID:Xo3+Ls6P
コンセプトをコンパイラにハードコーディングして変えられないようにしたのがRustってこと?
2022/07/09(土) 03:43:55.29ID:dAPednzC
>>256
こいつのような気持ち悪い反吐が出る輩がいるからRustがいまいちメジャーにならない。公式ドキュメント書き換えてこいゴミ
上の文章読んでどの辺が「アンチ」だ?ゴミのくせにイキって恥かいてんじゃねーわw

The Rust Programming Language 日本語版
循環参照は、メモリをリークすることもある
循環参照を回避する: Rc<T>をWeak<T>に変換する
https://doc.rust-jp.rs/book-ja/ch15-06-reference-cycles.html
2022/07/09(土) 06:36:52.71ID:x6eGZQ2/
>>276
間違ってることを合ってると強弁するのいい加減辞めなよ
2022/07/09(土) 07:31:04.73ID:O4my42l1
認める事を全くせず、大したコードも書いてないのにRustやってる事だけが自尊心だから勝手にアンチだの決めつけて
いつも人を見下して偉そう。プロジェクトチームの雰囲気はそいつがいるだけで常に最悪、チームの重荷・会社の害悪。
口癖は「意味不明」
2022/07/09(土) 10:34:16.63ID:OnqDT6DB
>>282
実際にコードを自分で書いて理解したほうがいいよ。
その公式Bookに書かれている内容はもちろん正しいし、
その相手>>256の書き込み内容も正しくて、
両者に矛盾はないよ。
2022/07/09(土) 11:42:59.26ID:lwwTn4Ql
理解してないと書いてる人間が理解してないことは多いですよね
2022/07/09(土) 11:50:07.31ID:lwwTn4Ql
どちらにしてもRust使っても気楽にコーディングできるわけでもなく
メモリ構造考えなければいけないんですね
288デフォルトの名無しさん
垢版 |
2022/07/09(土) 13:10:56.08ID:g+WH1rkE
結局、C++0xのパクリじゃないですか。
C++はそこからさらに10年以上進んでるのに。
2022/07/09(土) 13:14:26.15ID:lwwTn4Ql
それはないかな…
どっちも一長一短で視点がぼやけます
2022/07/09(土) 13:41:18.89ID:ByPaZ1uJ
>>279
説明用に作った概念ではあるけどRustの根幹に関わる重要な概念なので
「ただのメタファーでしかない」という言い方は微妙
自分の好き勝手に解釈した内容を公式見解かのように流布する輩を助長することになるから
291デフォルトの名無しさん
垢版 |
2022/07/09(土) 14:19:07.01ID:g+WH1rkE
パクリ元のC++で所有権と呼ばれてるからでしょ。
292デフォルトの名無しさん
垢版 |
2022/07/09(土) 14:21:22.91ID:g+WH1rkE
C++は高機能すぎて分けワカメなので、初心者用に出来ることを減らしますという、ジェネリクス界のPythonがRustでは?
2022/07/09(土) 14:57:08.15ID:gD3yh/Bo
>>283
見たけど正しいやん
間違ってる!とウソをつくけど間違ってる点を指摘できないいつもの人かね?
294デフォルトの名無しさん
垢版 |
2022/07/09(土) 15:04:05.66ID:g+WH1rkE
誰も所有してないのに解放されないなら意味ないじゃん。
2022/07/09(土) 15:25:00.91ID:3oDyg2LH
>>294
ヒープ領域に対して誰も所有(利用)しなくなった時に
・自動解放しない(要手動解放) ← C C++(下記除く)
・即座に自動解放する ← Rust C++(unique_ptrなど使用時)
・GCする時になってから自動解放する ← ほとんどのGC言語
2022/07/09(土) 15:36:21.95ID:lXmK1DKz
Cで書くにしても、今時のCLIツールならヒープなんか解放せず放置しても実用上問題ないよね
2022/07/09(土) 16:18:04.20ID:y0LX8Rgp
そもそも間違ってるとは何と照らし合わせて間違ってるという主張なのか
「そうあるべきではない」というべき論なら前提を明確にしない限り知らんがなとしか言えん
298デフォルトの名無しさん
垢版 |
2022/07/09(土) 16:36:33.54ID:g+WH1rkE
>>295
いや、C++はアロケート時にアロケータを選択するから。
デフォルトが準備されてるだけで。
当然、GCもあり得るから。
299デフォルトの名無しさん
垢版 |
2022/07/09(土) 16:39:05.20ID:g+WH1rkE
だめだ、こいつに聞いても無駄だ。
誰かわかるやつ居ないのか。
300デフォルトの名無しさん
垢版 |
2022/07/09(土) 16:52:06.76ID:3+oPDqor
この板で最も勢いのあるスレになりましたな
2022/07/09(土) 17:15:21.88ID:ziCGmT1x
>>284
アンチ君は皆に論破されると毎回
思い込みの仮想敵を作り人格攻撃を始めて逃避するようだが
そんな下らないことはアンチスレでやってほしい
302デフォルトの名無しさん
垢版 |
2022/07/09(土) 17:29:07.29ID:g+WH1rkE
自分より詳しいやつは全部アンチか。
それじゃダメだろ。
2022/07/09(土) 17:45:35.96ID:bJtJfEbP
Rust信者スレ作ったらそっちに移動してくれますか?
304デフォルトの名無しさん
垢版 |
2022/07/09(土) 17:54:41.59ID:g+WH1rkE
つまり、C++0xをパクって機能限定して簡単にしたのがRustだろ?
2022/07/09(土) 17:58:46.63ID:QKZ/1qEu
>>295
プログラミング言語の進化の中で、
そのメモリ自動解放における高速性と安全性の両立をRustが初めて実現したってことになるのかな
2022/07/09(土) 18:04:41.00ID:SVLGLpJF
Region-based Memory Management の構想は Cyclone から始まってる。
この段階では実用化したとは呼びにくいが、実現は出来ていた。
2022/07/09(土) 18:22:19.04ID:HoR4NOuF
>>304
C++以外からもいろいろパクってるからその言い方だと不正確に思う
2022/07/09(土) 18:46:05.22ID:hyXSHlQu
正確にはこうだな

プログラミング言語の進化の中で
メモリ自動解放における高速性と安全性の両立を実現した初めての実用的な言語がRust
2022/07/09(土) 18:55:55.38ID:FBd+xess
実用的の定義が無いので不正確です
310デフォルトの名無しさん
垢版 |
2022/07/09(土) 18:58:45.49ID:g+WH1rkE
C++0xがなかなか標準化されないので、それなら自分で作ろうと立ち上がったと本人が言ってるじゃん。
2022/07/09(土) 19:05:24.90ID:hyXSHlQu
>>309
そこは常識の範囲内で実用的をどのように定義しても>>308を満たすのはRustだけだから問題ない
2022/07/09(土) 19:22:48.72ID:kZfneOfi
別にC/C++でもちゃんと作れば高速性と安全性は両立してるよ
ちゃんと作るのが難しいかどうかの話でしかないだろ
2022/07/09(土) 19:29:47.99ID:TbjkUF4v
>>312
C/C++では不可能
うっかり危険なコードを書いてもコンパイラが通してしまう
Rustはコンパイラが指摘して通さないため安全
2022/07/09(土) 19:30:20.48ID:6ug5/LDh
難しさを度外視してちゃんと作ればいいと言うならアセンブラでも同じわけで。
2022/07/09(土) 19:36:03.58ID:hyXSHlQu
>>312
残念ながらCとC++は安全性を満たしていない
現状Rustだけが安全性と高速性を両立させている
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況