結局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/
352デフォルトの名無しさん
垢版 |
2023/09/18(月) 22:42:01.51ID:pCHq1yrZ
>>348
それはアセンブラを直接たたくってこたかな?それって生のポインタをさわることになるからRustの目指す安全性とは結構離れてるよな。第一、データがレジスタのサイズにあわせてアライメントされてないとバグるけど、Rustではアライメントを揃えるのすらunsafe扱いだから。simdを組み込みにするのは果てしなく大変なのでは?全てunsafeにして生のポインタを引数にとるなら話は別だけど。それではもはやRustを使う意味がないし。
2023/09/18(月) 23:18:32.41ID:h2SSCK+Z
>>352
理解できてなさすぎ
Rustは標準ライブラリがunsafeまみれなように
いくらでもunsafeを使ってもいいんだよ
そのうえでsafeな部分を作り出せればそこはRustコンパイラによる保証がつく
だからRustだけがアドバンテージを持つ
354デフォルトの名無しさん
垢版 |
2023/09/18(月) 23:25:10.97ID:TStUf0QM
>>353
理解してると思うよ
煽られてるんだよw
355デフォルトの名無しさん
垢版 |
2023/09/19(火) 00:32:50.44ID:kTo53yXB
行列ライブラリはぶっちゃけRUSTの運営が直接本来実装するべきなんだよね。ものすごい数の安全テストが必要だから。Rustの標準ライブラリのRCはそうやって安全性を担保してるからな。ただRustの質を担保するならRCよりも遥かに安全テストが必要になるとは思う。
356デフォルトの名無しさん
垢版 |
2023/09/19(火) 00:45:08.44ID:CAb8pI9J
blasやlapackのラッパー書けば良いのでは?
357デフォルトの名無しさん
垢版 |
2023/09/19(火) 01:10:39.03ID:kTo53yXB
>>356
メモリリークどうすんの?
2023/09/19(火) 01:28:44.07ID:q6UjSMFh
もうRustの失敗を踏まえた新しい言語の登場を待とうぜ
2023/09/19(火) 01:34:55.82ID:CAb8pI9J
>>357
blasやlapackの中は干からびるくらいに枯れてるやろ
2023/09/19(火) 01:37:08.15ID:1nihRNEN
Rustの目指す安全性ってのと真逆の意味をもつunsafe宣言は
「ここは確率的にunsafeだけど確率を覆すのが人間の仕事」と言ってる
だから確率とか好きそうな人には難しい
361デフォルトの名無しさん
垢版 |
2023/09/19(火) 09:24:27.18ID:kTo53yXB
>>360
unsafeのところは人間が死ぬ気でテストして安全性を担保してねって意味合いが強いけどな。だからRCとかARCはとてつもなく厳重なテストを行ったらしい。
362デフォルトの名無しさん
垢版 |
2023/09/19(火) 10:08:39.97ID:kTo53yXB
>>359
誰もOSの最深部で使いまわしたけーすなんてないからどんなエラーがでるかは未知の領域だろ。
363デフォルトの名無しさん
垢版 |
2023/09/19(火) 10:58:17.73ID:CAb8pI9J
誰がOSの最深部で使いまわすの?
2023/09/19(火) 13:57:30.99ID:1nihRNEN
>>361
テストの戦力を集中できるから合理的なわけだが
当たりくじだけを買う集中ではなく逆にはずれそうな箇所に手間をかける
365デフォルトの名無しさん
垢版 |
2023/09/19(火) 15:02:10.87ID:CAb8pI9J
>>361
RCもARCも複雑じゃないだろーにw
2023/09/19(火) 15:25:44.62ID:mxtPnJ5/
Rustではそういう小さなパーツのみ人間が安全性を保証するunsafeを用い
プログラム全体はコンパイラが静的に安全性を保証する形となって開発効率が良い
2023/09/19(火) 18:13:09.65ID:q6UjSMFh
人間が安全性を保証するunsafe
2023/09/19(火) 18:33:40.87ID:OxK/I+KA
人間と契約しないと自然状態になるでしょ
2023/09/19(火) 18:36:21.76ID:mxtPnJ5/
C/C++はプログラム全体がunsafeだから
プログラム全体に対して人間が安全性を保証しなければならず開発効率がよくない
2023/09/19(火) 19:36:09.66ID:q6UjSMFh
じゃあC/C++にunsafe解決?
2023/09/19(火) 19:36:50.34ID:q6UjSMFh
訂正
unsafe導入で解決?
2023/09/19(火) 19:45:37.59ID:CAb8pI9J
コードチェッカとしてAIが搭載されるので
現実的な必要性がなくなると思うよ
2023/09/19(火) 19:59:47.06ID:q6UjSMFh
だよなあ
374デフォルトの名無しさん
垢版 |
2023/09/19(火) 20:47:18.93ID:B2l8DHRh
>>372
今のレベルで信用できる?
2023/09/19(火) 22:16:43.11ID:CAb8pI9J
>>374
ご指摘の通り今のレベルではコードチェッカとしては信用できない
2023/09/19(火) 22:18:12.20ID:CAb8pI9J
この1年の進捗を見ると最早時間の問題
2023/09/20(水) 00:20:23.25ID:0L/WUwAl
AIチェッカはヒントにはなっても証明にはならんやろ
2023/09/20(水) 03:36:44.11ID:u/n2gKYp
unsafe{ } を型の内で定義できるのがC++っぽいかなって最近思ってる
379デフォルトの名無しさん
垢版 |
2023/09/20(水) 06:28:48.05ID:DoKZY5B2
>>365
Rustの仕組みで生ポやアドレスに触るような関数やライブラリの安全性の担保は死ぬ程だるいということですよ。実際sind系のクレートが全然安定版にならないのはそれが原因だからね。RCやARCとは桁が違うレベルの安全テストを行わないといけないようだからね。
380デフォルトの名無しさん
垢版 |
2023/09/20(水) 06:39:41.43ID:DoKZY5B2
>>363
使い回されるだろう。stable diffusionとかlammaとかがヌルヌル動くようなPCスペックが標準になってきたらEXCELやパワポとか、DirectXに組み込まれるだろうな。
2023/09/20(水) 08:44:11.37ID:XQHGtFcj
>>380
カーネルモードという言葉を知ってる?
他の人はそういう話してるけど
2023/09/20(水) 10:05:41.68ID:7sNeNGpd
コードは公開するが教師データは墓まで持っていく手口はOSSに対抗する側の発想なので
GNU/Linuxと合体する確率は低い
2023/09/20(水) 10:54:44.14ID:MYGzx56E
>>380
OSの最深部って話をしてるのになんでアプリケーションの話をしてるの?
低レイヤとか高レイヤとかわからない人?
2023/09/20(水) 11:18:09.13ID:7sNeNGpd
三位一体みたいな
多神教を回避するしぐさ
385デフォルトの名無しさん
垢版 |
2023/09/20(水) 12:12:30.85ID:BrTk6Dwe
>>376
具体的にいつですか?
具体的とかそんなの無い感じですか?
386デフォルトの名無しさん
垢版 |
2023/09/20(水) 12:17:54.86ID:kr8MFeoz
>>382
OSS最大手のRedhatはそんな感じ
387デフォルトの名無しさん
垢版 |
2023/09/20(水) 12:20:50.67ID:kr8MFeoz
Rust製のFirefoxがCPU100%張り付きとかメモリ60GBとか普通にやってくれるやつなので
Rustも宣伝通りの安全性だとは思っていない
2023/09/20(水) 12:40:47.18ID:XQHGtFcj
>>387
FirefoxにはC++のコードの方が多いし
ピュアRustでもcpu100%やメモリ浪費アプリの
解消なんて謳ってないので意味不明
2023/09/20(水) 14:07:36.47ID:56axJTdd
>>387
Rustでも安全にセキュリティーホールやウィルスを書けるよ
2023/09/20(水) 14:27:23.23ID:7sNeNGpd
宣伝通りではない問題は普遍的な問題
沈黙は金
雄弁は宣伝通りではない
391デフォルトの名無しさん
垢版 |
2023/09/20(水) 15:11:01.56ID:kr8MFeoz
RustもFirefoxもMozillaの製品だし
どっちも眉唾程度に使ってる
392デフォルトの名無しさん
垢版 |
2023/09/20(水) 15:12:44.77ID:kr8MFeoz
Mozillaのサイトには豊かな生活とか健全なインターネッツとか
アベノミクスの宣伝とだいたい同じことが書いてある
2023/09/20(水) 15:28:18.60ID:GXpV/38T
Rustなら安全なマルウェアを書けます
2023/09/20(水) 15:28:22.64ID:GXpV/38T
Rustなら安全なマルウェアを書けます
2023/09/20(水) 17:29:29.37ID:kQmO4Bub
〇🧥
2023/09/20(水) 18:11:16.04ID:7sNeNGpd
>>392
内容を反省しても無駄
完璧な内容に改善しても雄弁は最善手になれない
2023/09/20(水) 18:17:10.71ID:URQnmAvS
>>391
それは昔の話
3年前にMicrosoft・Google・Amazonなど共同によるRust Foundationが設立されてRustはその資金で開発されている
398デフォルトの名無しさん
垢版 |
2023/09/20(水) 20:08:00.83ID:EN6uvlZM
>>397
と書くとその資金でサラリーを得る開発者を雇用しているようにも聞こえるが
Rust自体の開発をしている人って専業はほとんどいないのでは?
2023/09/20(水) 20:11:54.99ID:EN6uvlZM
念の為だがOSSを批判してるんじゃないよ
>>397の認識が違うんじゃないかなってことを言いたくて
資金入れようが入れまいが開発には大して影響ない体制ではないのかな?
400デフォルトの名無しさん
垢版 |
2023/09/20(水) 20:46:43.30ID:cBWJlZK2
各々の企業の内部にRustの開発をする人材がいる
2023/09/20(水) 20:48:43.02ID:URQnmAvS
>>398
専業と兼業がいる
Rust Foundationの昨年の年間レポートによるとfull-timeは7名
2023/09/20(水) 20:50:07.85ID:URQnmAvS
>>398
専業と兼業がいる
Rust Foundationの昨年の年間レポートによるとfull-timeは7名
403デフォルトの名無しさん
垢版 |
2023/09/20(水) 21:32:06.75ID:cBWJlZK2
各々の企業の内部にRustの開発をする人材がいる
404デフォルトの名無しさん
垢版 |
2023/09/20(水) 21:33:02.53ID:EN6uvlZM
Microsoft・Google・Amazonが資金を入れなかったら
その7名は雇用できないんだろうけど
7名なら兼業で賄えるだろうから大して影響ない体制とも言える
405デフォルトの名無しさん
垢版 |
2023/09/21(木) 19:05:02.88ID:b6LwIpvL
transpose関数でデータを並べかえるのって割りと時間が掛かるんだよな。simd化しても並べ替えの部分でかなり時間が取られるからあまり高速にならないし。マルチスレッド化すれば確実に一定の高速化はできるが。
406デフォルトの名無しさん
垢版 |
2023/09/22(金) 21:52:03.87ID:liKpO3RA
Rustはもうオワコンだろ
407デフォルトの名無しさん
垢版 |
2023/09/22(金) 22:12:19.06ID:liKpO3RA
Haskellも終わったし
Rustも終わるだろ
408デフォルトの名無しさん
垢版 |
2023/09/22(金) 22:16:08.30ID:Citjv5wM
どっちも元々始まらなかっただろ。かつては一世を風靡したが今は終わコンになったPerlやPHPとは違い、
不発のまま忘れ去られる。
409デフォルトの名無しさん
垢版 |
2023/09/22(金) 22:29:43.48ID:1MTUVsES
>>408
>かつては一世を風靡したが今は終わコンになったPerlやPHPとは違い、
あれ?!終わったの?
今は何に取って代わられた?
2023/09/22(金) 22:43:34.63ID:TmjYA1px
これ

Rustの非同期ライブラリをPHPから利用可能にする「php-tokio」が登場
2023/09/22(金) 23:01:35.76ID:fCKJ4NGF
遺憾なことにphpはwordpressやらLaravelやらで今も使われてる
phpは脆弱性の宝庫
2023/09/23(土) 00:26:11.41ID:xXdfbnB0
https://fabcross.jp/news/2023/dmln530000187b7p-img/dmln530000187b8e.jpg
413デフォルトの名無しさん
垢版 |
2023/09/23(土) 02:07:34.62ID:Rs7x83k3
Cで開発してるとわかるけど、Cの大規模なプロジェクトは確実にメモリリークだらけになってるな。関数が内部で勝手にメモリを、確保してreturnしてるやつとか他人の作った関数だったらメモリの解放忘れること多いんじゃね?この手の部分はRUSTは神って思うことすらある。
ただ、RustはCに比べて一部の最適化オプションの性能がかなり落ちるな。多分、配列とかの境界チェックをアセンブリレベルで行ってるんだろうな。
2023/09/23(土) 02:17:44.92ID:xXdfbnB0
配列はインデックスでアクセスすると他の多くの言語と同様にインデックス範囲内チェックをアクセス毎にする
しかしC言語でのポインタアクセスと同様にRustでもポインタ(参照)でシーケンシャルアクセスすればポインタ終了条件の比較のみとなりC言語と同じ速さになる
415デフォルトの名無しさん
垢版 |
2023/09/23(土) 02:30:07.34ID:y8HKVxaR
>>411
PHP5系の配列の扱いはトラウマものだったわ。
2023/09/23(土) 06:56:20.93ID:BqGHL3ND
Rustを踏み台にして、もっとスタックフレーム指向の言語が出てきて欲しいわな。
スタックis god, 再帰構造is god.
2023/09/23(土) 09:29:05.32ID:v8CrTG6J
>>412
罰ゲームじゃん
418デフォルトの名無しさん
垢版 |
2023/09/23(土) 10:46:34.75ID:ChB9aNsl
rust自体に非はない。
「全部rustになる」みたいなことを真面目な顔して言ってた人がいた、ただそれだけの話。
419デフォルトの名無しさん
垢版 |
2023/09/23(土) 11:35:16.36ID:Rs7x83k3
>>416
再帰的なプログラムってCPUの構造的に効率化は厳しいのでは?
420デフォルトの名無しさん
垢版 |
2023/09/23(土) 11:42:04.22ID:y8HKVxaR
>>417
組込み系はZigあたりがバランス良さそうだが、issueのオープンがクローズの2倍で増えてるみたいだからまだまだまだだわ。
2023/09/23(土) 11:52:17.95ID:Pudal5bC
>>418
たとえば弱者の人権自体を否定するメリットは少ない

弱者のふりをする者の権利を嫌いということにして
もし自分が追い詰められれば本当の弱者なので人権は嫌いではない
これはメリットが大きい
422安倍
垢版 |
2023/09/23(土) 13:42:04.39ID:gp4eUDaS
元web屋で、最近マイコン開発始めて、作ったハードウェア売ろうかなと思ってたんだが、c++とRUSTどっち勉強するのおすすめ?
やっぱ資産がある分まだc++?
Rustはまだ浸透してない感がある
423デフォルトの名無しさん
垢版 |
2023/09/23(土) 13:52:19.19ID:OkZoNJ+t
>>422
トヨタとかはRustで開発してるって聞くが。
専門家ではないがC++よりもCの方が良いのでは?Linuxは確かC++拒否ってるって聞くし。
2023/09/23(土) 14:18:31.42ID:GXNw9iN/
トヨタは実用化していない
テスト段階
2023/09/23(土) 18:32:44.11ID:Pudal5bC
実用と道楽の対立が何の役に立つのかといえば
財政が破綻している者はunsafeだと言う人もいる、ただそれだけ
2023/09/23(土) 18:50:15.02ID:v8CrTG6J
>>420
zigは期待しちゃうよなあ
2023/09/23(土) 19:29:03.98ID:VjSgTnXF
>>405
スレチだが、転置行列を作る程度であれば、
x86 の SIMD だと、vector index の VSIB
を使えば効率よく出来るはず。
2023/09/23(土) 19:31:40.24ID:VjSgTnXF
>>422
組み込みは、メモリー管理を自分で簡単に
理解して簡単に間違いなく出来るくらいの
実力があることが前提なのでCかC++で十分。
Rustは基本的にミスが多くて簡単にはそれが
出来ない人向け。
429デフォルトの名無しさん
垢版 |
2023/09/23(土) 19:54:57.98ID:TImSDd3u
>>428
じゃあJavaでいいじゃん
2023/09/23(土) 19:57:51.17ID:VjSgTnXF
>>429
遅い。
2023/09/23(土) 20:07:34.86ID:jRqUT3tQ
組み込み屋ならアセンブラくらいできるやろ
Rust使いたくならんかもな
2023/09/23(土) 20:27:17.12ID:DY/MMEIG
Cの方が早いかもしれないが、実用上その差なんて気にならないし問題になったことはない
ベンチマークの数値みてニヤニヤしてる人たちだけが遅いと言ってる
無視してOK
2023/09/23(土) 20:52:33.43ID:VjSgTnXF
I/Oポートの制御などや指定されたアドレスのメモリ
への書き込みは、JavaよりCの方が分かり易いから
Javaを使うほうがメンドクサイ。
2023/09/23(土) 20:52:36.38ID:VjSgTnXF
I/Oポートの制御などや指定されたアドレスのメモリ
への書き込みは、JavaよりCの方が分かり易いから
Javaを使うほうがメンドクサイ。
435デフォルトの名無しさん
垢版 |
2023/09/23(土) 20:54:23.03ID:Rs7x83k3
>>427
手元にはx86_64系のCPUしかない。
436デフォルトの名無しさん
垢版 |
2023/09/23(土) 20:54:28.59ID:Rs7x83k3
>>427
手元にはx86_64系のCPUしかない。
437デフォルトの名無しさん
垢版 |
2023/09/23(土) 20:54:34.08ID:Rs7x83k3
>>427
手元にはx86_64系のCPUしかない。
2023/09/23(土) 21:53:37.42ID:XoR/Q384
まともなOSがない環境ってコンパイラよりインタプリタが実用的なのでは?
OSがなければコンパイラもないでしょ
ブラウザにたとえるととjsのインタプリタは確実にある
wasmのコンパイラは一体どこにあるのか微妙な感じ
2023/09/23(土) 23:07:51.11ID:GXNw9iN/
How many files(0-15)?
NEC N-88 BASIC Version 2.1
Copyright (C) 1981 by Microsoft
56543 Bytes free
Ok
440デフォルトの名無しさん
垢版 |
2023/09/23(土) 23:34:49.38ID:y8HKVxaR
>>438
GCCは別にフリースタンディング環境だってサポートしてるぞ。
それともお前の言うインタプリタはGCCより広範囲に組込み環境サポートしてんの?
2023/09/24(日) 00:54:28.68ID:orHWRxYE
ある言語がオワコンかどうかいつも言い争ってるのは
gccがサポートしなくなりサポートの範囲が狭くなる場合があるのが大前提じゃないの
2023/09/24(日) 06:40:39.47ID:+vPT53Kw
>>419
CPUでの効率化が難しいというのはCPU処理との類似性が高いということでもあって、表記がそのまま処理になるということでもある。なので、効率化できないのなら効率化できるように表記を拡張すればいい。
再帰プログラムの効率で良く問題になるのは末尾再帰だけど、これも関数内でしか関数を呼び出すことのできない関数表記の限界であって、表記を拡張すれば解決できる。例えば関数を抜けてから関数を呼び出すように拡張したreturnを用意するとか。
443デフォルトの名無しさん
垢版 |
2023/09/24(日) 16:55:38.83ID:zcFEBpuP
>>442
キャッシュの仕組み的に再帰的なアルゴリズムだと次に使うメモリのプリフェッチがムズくね?それが簡単だらすべての行列積のアルゴリズムがStrassenとかもっと効率の良いアルゴリズムで書かれてるはずだと思うんだけど。
再帰的なアルゴリズムでキャッシュ効率を上げるのはかなり難しいというのが自分の認識だけど。
2023/09/25(月) 00:44:21.45ID:s334eTLZ
その人はまともなことを組み合わせて間違ったことを言う人だから無視していいよ
多分認知症なんだと思うよ

再帰の最適化の話分かってない
445デフォルトの名無しさん
垢版 |
2023/09/25(月) 09:21:53.54ID:y+0IyOvz
まあ組み込みや数値計算ガリガリやってるところからしたら、
そのライブラリを使う上の方のレイヤーでは役に立つんかもね?くらいのものだろ。
446デフォルトの名無しさん
垢版 |
2023/09/25(月) 09:47:48.97ID:jZAmQlvo
>>445
行列ライブラリなんてアセンブリだらけだし、そういうことなら分からなくもないが。でも、だとしたら行列ライブラリを開発してる側からすると安易に「効率化」って言葉を使ってほしくはないな。
2023/09/25(月) 23:11:26.74ID:Vv/hi/o0
Rustは、SNS見てると、一部の有名インフルエンサー的な
人が普及させようと頑張っていて、彼を信じる沢山の
フォロワーが信じてるのでイイネを押しているみたいだ。
しかし、自分の意見を持っているかどうかは不明。
2023/09/26(火) 00:32:07.98ID:cfnZRd3f
自分の意見なんて
うどんを食べるかラーメンを食べるか選ぶ程度の単純作業でしかない
けど、どっちが選ばれるか全然予測できなくて
人間はもっと機械のように予測可能であるべきだとか思ってるマッドサイエンティストもいる
2023/09/26(火) 00:44:59.50ID:FZU+71fp
そもそも論としてコンピュータサイエンス系の発言ばかりを
しているアカウントのフォロワーは独特の価値観を持つ人だ。
それはコンピュータ雑誌を買う層ともまた違う。
なぜなら雑誌ほど勉強に成るような発言をしているわけではないからだ。
独特のおっかけみたいなことなんだろうか。
2023/09/26(火) 00:49:24.91ID:FZU+71fp
プログラミングがもともと得意な人はそんな人をフォローするとは
考えにくくて、プログラミングにあこがれているが力及ばず
のような人がフォローしてるのではなかろうか。
451デフォルトの名無しさん
垢版 |
2023/09/26(火) 00:54:42.76ID:kZquhzHO
どんなひとのこと書いてるのかしらんが
art(技術)とscienceは区別されるからね
2023/09/26(火) 01:00:50.16ID:FZU+71fp
コンピュータサイエンスの科学者にあこがれる人の気が知れない。
そこまで凄いことして無いと思うし。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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