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

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

っていう雑談スレ。

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

関連スレ(マ板): Google&Microsoft「セキュリティバグの70%はC/C++のメモリ管理ミス。Rustにする」
https://medaka.5ch.net/test/read.cgi/prog/1619943288/
2023/08/31(木) 12:33:26.11ID:dCL063sE
あるあるトピックス
・後発のRustが優れているといっても、C/C++から「推し変」するほどじゃないな
・現状のRustはまだまだ書きにくい、移行するにしてももっと進化してからでいいのでは
・現状のcrateシステムでけえ、大げさ
・いくら安全っつっても、ヘタクソがunsafeだらけに書いちゃったらおんなし
・てかC++にも unsafe{ } はよ

・C/C++ <=> Rust いまさら聞けない移行質問なども適当にどぞ

・レスバはじめんのは勝手だけど、面白いこと・へぇなこと書いたヤツが優勝
・マな話は、マのスレもご活用ください >>1
2023/08/31(木) 12:37:09.57ID:QKPa2t5y
GPTベースのソースチェッカーの登場でRustの必要性はほぼなくなる
2023/08/31(木) 12:38:30.42ID:xdGgbyvb
ネットインフラが次々と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/08/31(木) 12:46:13.82ID:9MCfOvkc
>>3
それ逆
GPTは論理的に必ず正しいことを示せるわけではない
しかしGPTは(多少間違えても)生成するのは得意
だからGPTにRustのコードの叩き台を生成させてGPTに再指示したり人間が仕上げる
そしてRustコンパイラが論理的に必ず正しく安全性を保証する
以上が互いの得意分野を組み合わせたベストな今後の向かう方向
2023/08/31(木) 12:54:47.09ID:5zYhiOSj
>>2
ここまでのスレと真逆のまとめはよくないね
Rustの方が言語機能が充実しているため圧倒的に書きやすいのは客観的な事実
2023/08/31(木) 13:08:56.12ID:3Z3eLBs1
=== 複製おじさん(通称複おじ)について ===
Rustスレを中心に活動し、2023年4月現在で1年以上ム板に住み着くRustacean。無自覚な荒らし。

Rustスレでは、基本的に他住民の意見を聞いて糧とすることなく、自らのコードが最善であると、ID変更自演を交えいつまでも主張し続ける。
同スレで「所有権が複製される」という違和感のある表現を、「違和感がある」とする他住民の意見をすべて否定してしつこく擁護し続けたことから、「複製おじさん」というあだ名が付けられた。
それ以外のム板スレでは、基本的に他住民の意見を聞いて糧とすることなく、Rustこそが最善であると、ID変更自演を交えいつまでも主張し続ける。
その基本戦術は、「GC言語は遅い」の一声でC/C++/Rust以外の言語を否定し、残ったC/C++は安全ではないので、Rustが最善であるとするもの。

しかしながら、Rust以外の言語に関しては、正当な批判を展開するのに十分な知識を持っているとは言いがたい。
本スレPart1では、C++の問題点を指摘しようとして多数の誤り・知識不足を露呈することとなった。特にしつこく食い下がったのが「動的ディスパッチ」に関する誤解である。
https://mevius.5ch.net/test/read.cgi/tech/1677286186/786-799(ID:Evbafc70とID:RiLc+pIfが複製おじさんであると考えられている)
要約すると、通常「条件分岐」と呼ばれるものを「動的ディスパッチ」と呼ぶのが正しいと主張し続けたのである。
常識的にはあり得ない誤解だが、提示されたC++のコードが自らの主張(C++にはパターンマッチが無い)に不都合であると感じたためか、C++のコードを正しく読み解くことができないにもかかわらず脊髄反射的に否定してしまい、その根拠として誤った論理をこじつけてしまったものと思われる。

ちなみにこの後、同種の誤解を持って書き込むID:wHEiYRW7(これはID使用歴的に複製おじさんとは考えにくい)に対して、正しい理解に基づく指摘を行う単発IDが複数出現するが、この中にも複製おじさんが多数含まれていると考えられている。
このように自分の誤りを認識した場合、それを認める書き込みは決して行わず、別人の振りをして最初から正しく理解していた体を装うのも複製おじさんの特徴である。
8デフォルトの名無しさん
垢版 |
2023/08/31(木) 13:20:21.68ID:QKPa2t5y
>>5
GPTの性能向上のスピードを舐めてはいけない
更にはRustでは不可能なデッドロックすら検出できる
9デフォルトの名無しさん
垢版 |
2023/08/31(木) 13:21:39.72ID:QKPa2t5y
GPTが開発ツールに統合されることで
Rustのセールスポイントの価値はなくなる
2023/08/31(木) 13:22:06.11ID:A3Yq0OZn
動的ディスパッチはvtableを使った型による条件分岐で合ってるような
2023/08/31(木) 13:26:30.09ID:QKPa2t5y
>>10
用語の使い方以外で双方の認識に齟齬はない
どうも用語の使い方に方言があるようだ
2023/08/31(木) 13:27:09.24ID:9dXqAvn4
>>8
簡単で自明なデッドロックのよくある例が検出できただけであれは学習マッチングだよ
実用的じゃない
理論的にデッドロックの静的な検出は不可能なのは知っているよね?
13デフォルトの名無しさん
垢版 |
2023/08/31(木) 13:29:13.22ID:QKPa2t5y
>>12
>簡単で自明なデッドロックのよくある例が検出できただけであれは学習マッチングだよ
>実用的じゃない
そうなのかどうかは私も分からんので反例を1つ示して反駁してくれ

>理論的にデッドロックの静的な検出は不可能なのは知っているよね?
人間はできるよね? <- 反例
2023/08/31(木) 13:34:06.16ID:9dXqAvn4
>>13
人間にもデッドロックの静的な検出はできません
そのため実行時のデッドロック検出ツールが使われています
この分野はGPTにも無理です
15デフォルトの名無しさん
垢版 |
2023/08/31(木) 13:39:30.11ID:QKPa2t5y
>>14
>人間にもデッドロックの静的な検出はできません
お前はソース見てもデッドロックをデバッグできないんだなw
「静的な検出」に限定する必要はないのだよ
2023/08/31(木) 13:41:32.63ID:lAaLgVee
>>9
むしろGPT支援でRustが有利になった
GPT自体は安全性の保証をできなくて間違いも犯すけど
GPTへRustコンパイラを通すように指示すればRustコンパイラにより必ず安全性が保証される
2023/08/31(木) 13:48:22.11ID:QKPa2t5y
まだ読んでない人もついてこれるように
>>12が学習マッチングと言ってるのは前スレの>>289だよ
http://mevius.5ch.net/test/read.cgi/tech/1690610746/
確かに検証したソースはシンプルで
1. ソースの規模が大きくなるとこれは検出できなくなるのか?
2. もしできなくなるとしたらどのくらいの大きさが限界なのか?
3. あるとしてその限界は実用的なのか?
など謎が多く興味深い
2023/08/31(木) 13:49:39.59ID:lAaLgVee
>>15
デッドロックは簡単なものを除いて見つけるのが極めて難しくて
コードを解析してもデッドロックを見つけることは無理だと証明されてる分野
そのため検出デバッグコード入りでデッドロックが起きるまで実行させて検出しているのが現状
だからGPTも同じように長期間実行させないとデッドロックを見つけられない

デッドロックはロックの順序さえ決めて守れば発生しないので
ほとんどのプログラムはそうすることでデッドロックを回避してる
19デフォルトの名無しさん
垢版 |
2023/08/31(木) 13:51:16.54ID:QKPa2t5y
>>18
反例出しなよ
1個だよ
20デフォルトの名無しさん
垢版 |
2023/08/31(木) 14:19:56.37ID:qE8kvwKZ
今度はデッドロックで埋まるのか
2023/08/31(木) 14:36:00.57ID:8akA3y2j
デッドロック検出の現実的な需要がないので無意味だな
各ロックの依存関係が階層構造となるよう制限して設計すればデッドロックは絶対に発生しない
実用的なプログラムにおいてその制限はなんら支障をもたらさない
つまりその制限を課すだけでデッドロック問題は発生することなく終わる
22デフォルトの名無しさん
垢版 |
2023/08/31(木) 14:46:26.78ID:QKPa2t5y
反例をあきらめたか
デッドロックの検出に限らず
GPTによるデバッガ(にも限らないが)の開発環境への統合は
今日のプログラミング言語に求められる要件を大きく変えるだろうね
Rustはこの先生きのこれるのだろうか?
2023/08/31(木) 14:56:20.19ID:cJGO4qoC
GPTのおかげでRustだけが有利になってしまった
ミスもするが命令すれば何度でもやり直すGPT
必ず安全なコードのみを通すRustコンパイラ
この二つを組み合わせると必ず安全なコードを生成できる
2023/08/31(木) 15:15:28.97ID:qE8kvwKZ
そういう異世界が有っても良いとは思うが
こっちの世界はそうじゃないしならなくても良いわ
2023/08/31(木) 15:19:12.60ID:W3nqyCpe
>989
C++でもRustでも所有権を持つものがいなくなった時に自動的に解放される仕組み
所有権は移動(ムーブ)できるがC言語から所有権は当然やって来ない
だからCで確保したメモリがC++やRustで自動的に解放される危険はない
2023/08/31(木) 15:36:45.71ID:vuMs0nOC
ひさしぶりにこのスレ見にきて
>>1 に完璧な結論が書いてあって吹いた
2023/08/31(木) 16:26:48.65ID:B9PGZ7xZ
>>1
「Aに固執するのは老害、柔軟な若者はBを好む」などという
説はよくあるが、後者は、別の新製品が出てくれば、そっちに
移るので定着しないと言われている。なので、ターゲット層
としては気をつける必要があるとされる。
2023/08/31(木) 16:36:45.32ID:QVzwGMKd
>>7
>しかしながら、Rust以外の言語に関しては、正当な批判を展開するのに十分な知識を持っているとは言いがたい。

Rustについても十分な知識なんて持っておらず
自信満々に間違ったこと書くから注意してね
29デフォルトの名無しさん
垢版 |
2023/08/31(木) 18:13:47.28ID:Fp7risRc
>>23
結局カットオフがあるんでアップデート後の内容に対応できてないように見えるけど。
30デフォルトの名無しさん
垢版 |
2023/08/31(木) 18:18:04.17ID:Fp7risRc
>>5
仕上げられる人間はそんなまどろこしいことしないよ
それにaiが劣化した途端詰みですね
2023/08/31(木) 18:40:59.47ID:3Z3eLBs1
GPTにはコード生成だの検証だのくだらんことやらせてないで証明を生成させていけッ
ttps://leandojo.org/
32デフォルトの名無しさん
垢版 |
2023/09/01(金) 11:21:35.62ID:8Q6o7DlX
>>27
一理あるな
Nim やめて Codon とか
Rust やめて Mojo とか
言い始めてるし
https://twitter.com/Comamoca_/status/1669992610738634752
https://twitter.com/5chan_nel (5ch newer account)
2023/09/01(金) 11:30:00.17ID:8Q6o7DlX
こんなツボ外し記事もある
https://kinsta.com/jp/blog/rust-vs-python/
34デフォルトの名無しさん
垢版 |
2023/09/01(金) 11:39:10.28ID:8Q6o7DlX
こっちの方がはるかにマシ
https://qiita.com/kenmaro/items/676139f04adb183037a9
2023/09/01(金) 12:19:56.36ID:kkk5kcra
QiitaとNimスレで話題に上がっていたダブル再帰フィボナッチなんだけど
ちょといじったらNimでRustの700倍速出た、もちろんチートなしで
2023/09/01(金) 12:35:29.32ID:m6HesT0Y
700倍も差が出れば簡単に原因わかるよね?
2023/09/01(金) 12:59:23.02ID:kkk5kcra
知らんけどgccとの相性が良いと言う話になっている、俺はwandbox回しただけだから
2023/09/01(金) 13:02:56.23ID:kkk5kcra
wandboxさらそうかと思って保存したけど
知恵付けさせたくないから自分でやれる人だけやれば良いよ
2023/09/01(金) 13:14:13.41ID:04JNpieX
チップベンダが提供するライブラリを使うのがだいたい さいつよ
…といいつつ、一度は・多少は、自分でやってみるのは基礎力が付く
ライブラリをおかしな風に呼ぶ・まわすことが減ると思う

そういや、OneAPIの近々の更新で、iccの同梱提供やめるっていってるから、
プロプラのコンパイラもひとつ押さえとくか…って思ってる人は、オフラインインストーラ取りに行っておくといいぞ
icc系やめて、dpcpp系に収束するとかだったと思う

ガセだったらごめそ 「登録を飛ばしてDL」ってのちゃんとあるからゆるしてちょ
2023/09/01(金) 13:48:11.87ID:ICS2J+hp
>>35
両方のコードウpキボン
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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