結局C++とRustってどっちが良いの? 8traits

■ このスレッドは過去ログ倉庫に格納されています
2023/10/28(土) 13:45:00.38ID:fh9BWjjr
「C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」

っていう雑談スレ。

・C/C++ <=> Rust いまさら聞けない移行質問なども適当にどぞ
・レスバはじめんのは勝手だけど、面白いこと・へぇなこと書いたヤツが優勝
・マな話は、マのスレもご活用ください↓

前スレ: 結局C++とRustってどっちが良いの? 7traits
http://mevius.5ch.net/test/read.cgi/tech/1693451813/

関連スレ(マ板): Google&Microsoft「セキュリティバグの70%はC/C++のメモリ管理ミス。Rustにする」
https://medaka.5ch.net/test/read.cgi/prog/1619943288/
2023/10/28(土) 13:45:36.64ID:fh9BWjjr
あるあるトピックス
・後発のRustは優れている(この点で特に争いはない
・といっても、C/C++から「推し変」するほどじゃない(使わないとは言ってない
・ていうか、Cとの比較と、C++との比較は違うくね?
・いくら安全っつっても、ヘタクソがunsafeだらけに書いちゃったらおんなし
・てかC++にも unsafe{ } はよ

・web方面、特に基盤部分での人気すごいね
・ChatGPTとかが賢くなる(のに賭けてる)からどうでもいい
3デフォルトの名無しさん
垢版 |
2023/10/28(土) 13:50:00.20ID:1iiYkiVL
スレ立て乙
unsafe {
2023/10/28(土) 14:37:18.81ID:o0Izqpe5
次スレいらんわボケ
2023/10/28(土) 16:34:04.19ID:enMMtIYH
ネットインフラが次々とRust製になっていってる

>【CDN世界トップシェアCloudflare】
https://www.publickey1.jp/blog/22/cloudflarenginxrusthttppingoracdncpu31.html
>CDNプロバイダのCloudflareは、同社のグローバルなCDNの基盤として長らく利用してきたNGINXに代えて、
>同社自身がRust製のHTTPプロキシである「Pingora」を開発し利 用していることを明らかにしました。

>【クラウド世界トップシェアAWS】
https://japan.zdnet.com/article/35183866/
>Rustで構築されたAWSサービスの例としては、
>コンテナーアプリ用のサーバーレスプラットフォーム「Lamba」を支える「Firecracker」、
>「Amazon Simple Storage Service(S3)」、
>「Amazon Elastic Compute Cloud(EC2)」、
>コンテンツ配信ネットワーク「Amazon CloudFront」、
>LinuxベースのコンテナーOS「Bottlerocket」などがある。
2023/10/29(日) 07:04:58.86ID:/j90tPs+
プログラミング言語「Rust」は世界のセキュリティレベルを底上げする
https://wired.jp/article/rust-secure-programming-language-memory-safe/

Androidでは今、暗号鍵を管理する機能の多くがRustで書かれているとGoogleのクライダーマーカーは話す。
たとえば、暗号化したインターネット通信の機能である「DNS over HTTPS」、新バージョンの超広帯域無線(UWB)チップスタック、
そしてグーグルの独自のチップである「Tensor G2」で使用される新しい「Android 仮想化フレームワーク(AVF)」 などだ。

また、BluetoothやWi-Fiなどの通信接続に使われるスタックも、Androidの開発チームによってRustへの変換が積極的に進められている。
理由は、これらが業界の複雑な標準規格に基づいており、脆弱性を多く含む傾向にあるからだとGoogleのクライダーマーカーは付け加える。
つまり最も狙われやすい、あるいは最も重要なソフトウェアの部分からRustに書き換えて、
そこから徐々に広げることで段階的にセキュリティ上の恩恵を受けようという戦略なのだ。
2023/10/29(日) 09:34:40.05ID:7Lr6oJeR
>>1
・・・で、結局どっちが良いの?
8デフォルトの名無しさん
垢版 |
2023/10/29(日) 11:34:03.80ID:GrwAVmld
>>2
C++はデフォルトがunsafeだから、入れるならsafe{}じゃないのけ?
2023/10/29(日) 11:55:56.89ID:jrKbdvhX
デフォルトをsafeにするって話やろw
そうすると現行のライブラリはビルドできないので取り敢えず全部unsafeで囲う
バージョンを重ねてunsafeの部分を減らすって戦略でしょ?
2023/10/29(日) 12:10:31.41ID:rFgSsne0
>>8
それ意味ないのわかんない?
2023/10/29(日) 12:58:33.36ID:gLyKM6Q0
null safetyですら無理なんだからunsafeなんて夢のまた夢
12デフォルトの名無しさん
垢版 |
2023/10/29(日) 13:01:53.93ID:IsQ6p7Vf
positive list と nagative list の違いやろ
どっちも一長一短があるってだけで
どっちが一方的に優れているということではない
2023/10/29(日) 13:06:42.15ID:x+5RB5aB
前者が明らかに劣ってるのは自衛隊見れば明らかじゃん
2023/10/29(日) 14:22:40.43ID:IsQ6p7Vf
青山繁晴ファンですね判ります
15デフォルトの名無しさん
垢版 |
2023/10/29(日) 14:24:26.17ID:IsQ6p7Vf
ちなみに Rust の unsafe {} は positive list に相当すると思う
2023/10/29(日) 16:22:18.96ID:UpWU1GX+
時代は静的検出なので、冒頭に

#pragma safe

とかでも書くとかになるんじゃないかな
そのうしろに、縛りの識別子が入るのでもいい
2023/10/29(日) 16:22:22.63ID:B2pW3CpU
unsafe {}ってなに?
ポインタ扱えなくするやつ?
2023/10/29(日) 18:07:40.10ID:UpWU1GX+
} // あとでみなおす

とりあえず生ポはなしかな
ポインタはきちんと定義される
19デフォルトの名無しさん
垢版 |
2023/10/30(月) 01:11:12.37ID:SHIqNVOV
>>9
あー、そういうことね。
2023/10/30(月) 14:08:13.49ID:yf48i6Jz
前スレ
>>997
HashMapはとVecは異なる型なので直接代入できない
一般的に入力イテレータinput_iterからHashMapを作るには
HashMap::from_iter(input_iter)とすればよい
これは代入先の型がHashMapの時のinput_iter.collect()と同じ
collect()の正体はfrom_iter()を呼ぶだけ

ちなみにfrom_iter()はFromIteratorトレイトのメソッド
引数としてIteratorだけでなくIntoIteratorも取れるため
今回の入力ベクタinput_vecに対してinto_iter()せずとも
そのままHashMap::from_iter(input_vec)と書ける
一方でcollect()を使う場合これはIteratorのメソッドなので
明示的に変換してinput_vec.into_iter().collect()となる
21デフォルトの名無しさん
垢版 |
2023/10/31(火) 05:55:29.82ID:DJT4usEp
ゲーム業界はC++かC#
Rustが入る余地なし
22デフォルトの名無しさん
垢版 |
2023/10/31(火) 08:54:10.63ID:5Lja4y81
Rust がリファクタリングと相性が悪いんじゃないか
と思うことが時々というより割と頻繁にある
2023/10/31(火) 10:17:54.25ID:Fz0aDVxr
設計が悪いおじさん「設計が悪い」

…とはいうものの、書き味ってもんがあるよね言語って
2023/10/31(火) 20:53:25.14ID:1IgY5W3A
難しそうという直感でリファクタリングを中止できるのは損なのか得なのか
2023/10/31(火) 22:01:39.08ID:PwivvYFW
Rustはリファクタリングや更新メンテとの相性いいと思う
C/C++で他人もしくは過去の自分が書いたコードの肝の部分をうっかり踏み抜いてメモリデバッグコースとなるところを
Rustは未然に防いでくれてる
2023/10/31(火) 22:13:21.13ID:3AsVVcfX
リファクタリングでエンバグしにくいけど、そもそもリファクタリング自体しにくいよね
2023/10/31(火) 22:25:05.59ID:NeIS8/9C
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2687r0.pdf
C++はfeature gate方式でアノテーションした箇所のみ
static analyzerでチェックする方針で一応進み始めてるのね

なんというか過去の資産を生かすというのは大変なんだな
Rustと同レベルのsafetyが提供できるようになるかどうかまだわからないけどまあ頑張ってという感想
2023/11/01(水) 03:51:28.75ID:5z6NYMjm
悪い(かも知れない)設計を
良い(かも知れない)設計に
するのがリファクタリングのモチベだと思うので
元の設計が悪い(かも知れない)のは仕方ないが
良い(かも知れない)設計に変更するのを阻む力をRustはもってる
もちろんリファクタリングでエンバグしない利点は認めている
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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