結局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/
520デフォルトの名無しさん
垢版 |
2023/09/27(水) 22:00:11.51ID:jdjI/d35
rust analyzerがメモリ食うという話なのにRustは関係ないとか頭イカれてますねー
2023/09/27(水) 22:03:42.80ID:8IPpP98U
許してやってくれ
彼はこういうことを言われると言い訳探しに必死になっちまうんだ
2023/09/27(水) 22:18:21.54ID:8IPpP98U
>rust-anlyzerはrustcと同一バイナリ

違うけどw
523デフォルトの名無しさん
垢版 |
2023/09/27(水) 22:25:05.45ID:Q+GD/yeY
Java速いけどな
ダブル配列でトライ木書いたら
Javaのくせに生意気な速度叩き出してきて
ビックらこいたけど
2023/09/27(水) 23:53:08.28ID:6/tgxS2v
>>522
${CARGO_HOME}/binにあるこの14個はハードリンクされた同一実行ファイル
cargo cargo-clippy cargo-fmt cargo-miri clippy-driver rls rust-analyzer rust-gdb rust-gdbgui rust-lldb rustc rustdoc rustfmt rustup
同一のinode番号とハードリンクカウント(=14)が確認できる
2023/09/28(木) 00:39:51.47ID:C7nJMdxX
あーrustup使ってインストールしたときはその辺のコマンドの実体がrustupラッパーになるってだけの話か
間違っちゃいないけど……なあ
2023/09/28(木) 01:06:27.53ID:NMBimYwD
言語でどっちがいいだの悪いだの言っても仕方がない
c++の中級者程度が作ったアプリなら、どの言語でも上級者が作ったもののほうが
圧倒的パフォーマンスいいよな
2023/09/28(木) 09:18:29.25ID:n4su4RRB
リアルタイムなアプリは時間のずれを許さない
銀行にたとえるとお金持ち全員が今すぐ現金を出せと要求してくる
時間をずらしてくれたら必要な現金は少ない可能性はある
2023/09/28(木) 09:35:20.33ID:oLY3ym9Q
ガチのリアルタイムは、C++でもRustでもなく、FPGAだって聞いた
あるいはせいぜいGPUか(これは推測
529デフォルトの名無しさん
垢版 |
2023/09/28(木) 09:48:19.84ID:uRtj8fwF
ハードウェアロジックでさえリアルタイムって言うにははばかれるタイムラグがあるからなぁ
530デフォルトの名無しさん
垢版 |
2023/09/28(木) 10:21:03.43ID:JUGcA42l
>>527
全然リアルタイムじゃないじゃんw
そもそも銀行には事前通告無しの引き出し限度額が定められてるから要求自体が通らない
アホくさ
2023/09/28(木) 10:41:36.79ID:YoTEf6OY
>>528
何で言語とハードウェア並べてるの?
2023/09/28(木) 10:42:49.62ID:YoTEf6OY
>>529
リアルタイムとは実行完了時刻が保証されていることを言う
早い遅いは関係ない
533デフォルトの名無しさん
垢版 |
2023/09/28(木) 10:47:36.82ID:1ZubR6Lj
複オジも全く同じこと指摘されてたよね
やっぱり両オジは似たもの同士
2023/09/28(木) 10:59:29.27ID:oLY3ym9Q
>>531
>>528 が言葉足らずで、金融でリアルタイムといえば…って書きたかった
言語でいうなら、VHDLか 書いたことないけど

そういやaliで買った学習用FPGA積んでるの思い出した
やることいっぱい杉
2023/09/28(木) 11:04:13.80ID:n4su4RRB
起動が遅いソフトは終了と再起動をしたくないのはわかるが
ファイル編集が終わる前にコンパイルすれば問題解決っていうのが
最高にイカれてる
2023/09/28(木) 12:39:43.73ID:ILx4djuq
RustがWebで流行ることはない

なぜならもともとWebめCやC++といったコンパイラ型言語ではなくスクリプト言語が流行った最大の理由はコンパイルが遅すぎるから

だからRustは流行らない
爆速コンパイラをまず開発しろ
2023/09/28(木) 13:56:55.48ID:EpC6AiH8
実アプリ開発だと
静的型付け言語だとコンパイル時に検出できるエラーが
動的型付けスクリプト言語だと大量のテストケースで
検出する必要があって
実行時間が長くて微妙なんだな
538デフォルトの名無しさん
垢版 |
2023/09/28(木) 14:11:48.12ID:mH8VOxz/
>>537
んなわけないw
まともにテストケース書いたことないでしょ
2023/09/28(木) 14:29:32.00ID:EpC6AiH8
>>538
それなりの規模のRailsなんかの実サービスの仕事
やるとわかるよ
540デフォルトの名無しさん
垢版 |
2023/09/28(木) 14:41:48.76ID:8dd3Yj44
>>538
テストケースは開発者が書くもの。
お前がダメだと思ってる後輩や先輩が全く抜けなく書いてると言いきれる?
2023/09/28(木) 14:43:13.56ID:86vkzWFl
静的型でもdict相当と文字列使いまくる動的脳がいると無力
542デフォルトの名無しさん
垢版 |
2023/09/28(木) 15:32:23.79ID:nEoVEI3j
>>539
いやいやw
Railsアプリで型エラーを検知するためだけのテストを大量に書いてるようならテスト設計がおかしいとしか言えんよ
汎用ライブラリのテストじゃないんだから
2023/09/28(木) 15:41:23.59ID:EpC6AiH8
>>542
あなたはしょうもないヒューマンエラーでランタイムで
落ちても笑ってごめーんで済むような仕事しか
してないか天才なんでミスしませんのどちらかだね
2023/09/28(木) 17:25:25.70ID:n4su4RRB
ある関数に文字列ではなくオブジェクトを渡したらどうなるか
が問題になるのはオブジェクトがある言語だけ

ちなみに文字列には循環参照がない
循環参照とメモリリークがあるのはオブジェクトだけ
545デフォルトの名無しさん
垢版 |
2023/09/28(木) 18:05:48.06ID:uRtj8fwF
文字列と言うオブジェクトだけどな
546デフォルトの名無しさん
垢版 |
2023/09/28(木) 18:06:40.27ID:uRtj8fwF
循環参照する様なメソッドが無いだけだろ
2023/09/28(木) 20:34:01.42ID:A4PxvZVx
>>544
チューリング完全じゃないから、できないことが出てくるだろ。
2023/09/28(木) 21:42:17.68ID:n4su4RRB
>>547
まあチューリング完全だとしても、次は
キャズムを超えないから以下同文になるだけだな
549デフォルトの名無しさん
垢版 |
2023/09/28(木) 23:24:20.51ID:zYEWSBaK
>>543
いやいやいやwあんたがエアプなだけでしょ
深刻なバグが出れば億単位の損失が出るようなシステムも長くやってたけど型のテストなんて1%もないから
550デフォルトの名無しさん
垢版 |
2023/09/28(木) 23:43:03.09ID:8dd3Yj44
>>549
ん~、ここのスレタイ読める?
551デフォルトの名無しさん
垢版 |
2023/09/28(木) 23:53:09.61ID:CJQv0/Jo
試しにrubyとrailsのテストを調べてみたが型チェックしてるassertの割合はそれぞれ約1.7%と1.5%だった
言語やライブラリでもこの程度の数字
552デフォルトの名無しさん
垢版 |
2023/09/28(木) 23:55:19.43ID:CJQv0/Jo
>>550
スレタイ読む前にキミはテストケースのレビューしようね
553デフォルトの名無しさん
垢版 |
2023/09/28(木) 23:59:14.70ID:Pv0dY1cA
あ、同じやつなのか
2023/09/29(金) 04:01:47.14ID:HXtzEVI8
「ここのオブジェクトはこの型に限る」て感じの設計思想なんじゃね
でもせっかく動的型付けなのに型を限定するのはもったいない気がするけどな
2023/09/29(金) 04:51:39.28ID:4c3aNzNr
勝手に型チェックの話に限定してるあたり
何も理解してなさそう
2023/09/29(金) 08:53:21.37ID:Ji68PYvI
おまいら契約による設計はちゃんと理解してる?
型チェックの話をするなら必須だからな。
557デフォルトの名無しさん
垢版 |
2023/09/29(金) 09:10:01.09ID:F8aJXNq9
下のコードで実行すると finish が出る順が
最後に completed したものが出て来るまで先に finish してても出て来ません
実際に finish した順通りに表示させるにはどう治せば良い?

use std::thread;
use std::time::Duration;

fn test_thread() -> () {
let mut handles = Vec::new();
for i in 0..5 {
handles.push((i, thread::spawn(move || {
println!("create {}", i);
thread::sleep(Duration::from_millis(400 * (5 - (i - 2) * (i - 2))));
println!("{} completed", i);
})));
}
let mut completed = 0;
for (i, handle) in handles {
handle.join().unwrap();
println!("{} finish", i);
completed += 1;
}
if completed != 5 { panic!("not finish"); }
}
558デフォルトの名無しさん
垢版 |
2023/09/29(金) 09:12:34.59ID:2i5v5Rt9
なにこのゴミ
559デフォルトの名無しさん
垢版 |
2023/09/29(金) 09:12:45.62ID:F8aJXNq9
>>541
JSONは糞ですねわかります
560デフォルトの名無しさん
垢版 |
2023/09/29(金) 12:05:44.96ID:o+K4G7wE
>>557
mpsc使うといい
あとデバッグモードだとi - 2がアンダーフローでpanicになる
2023/09/29(金) 12:26:58.60ID:LP6xiQHs
>>413
そんなことないよ

>>428
ほんそれ

>>472
なるほど

>>473
webはどうみても底辺だ
562デフォルトの名無しさん
垢版 |
2023/09/29(金) 12:54:02.23ID:F8aJXNq9
>>560
thx!!
2023/09/29(金) 13:05:53.88ID:bMqPRMk5
>>488
おじん

>>493
win開発者は「意識他界系」が少ないのでは
564デフォルトの名無しさん
垢版 |
2023/09/29(金) 13:12:03.43ID:CnAqluFV
>>428
>>561
C/C++ *だけ* じゃ力不足なのはセキュリティ問題考えると明らか。
2023/09/29(金) 15:17:35.48ID:S2fwaJPh
>>564
組み込みと言っても幅広いが、Lチカの個数を増やしたりモーターに
変えたりしたものを上手く制御するような事が中心に
なる場合は、メモリ管理はRustを使うまでも無い事が多い。
如何に電圧やサーボモーターの信号をコントロールするか、
の話になるのであって、メモリー解放エラーはほとんど関係無い。
2023/09/29(金) 16:02:06.99ID:G0tTsQAT
まず、インターネットを使うまでもない組み込みに
インターネットをゴリ押しするのが先

セキュリティの話はその後かな
567デフォルトの名無しさん
垢版 |
2023/09/29(金) 16:31:31.34ID:CnAqluFV
>>565
そんな規模の組込みならアセンブラのがいいだろ。
2023/09/29(金) 16:45:54.63ID:90TEQvjm
さすがに書き間違いがこわいからCでいいだろ
そんな内容ならC++もRustもオーバスペック

こんなの出てたので ja-jpもできてたけど、品質やら未チェック自己責任
https://learn.microsoft.com/en-us/cpp/code-quality/build-reliable-secure-programs

unsafe{ } がまだなのみならず、歴史が長い分チェックポイントが大量にあるのも、
新風さわやか? なRustが好まれるところではあるんだろうな
2023/09/29(金) 16:51:59.30ID:S2fwaJPh
>>567
組み込みの場合、対象のCPUがころころ変わるからアセンブラは
まあ、無理。
ARM, Atmel, PIC, AKI-H4, NEC製CPU, などなど。
2023/09/29(金) 17:25:36.72ID:G0tTsQAT
いや、すべての場合において変数に型がないという最大の特徴を見逃すなよ
571デフォルトの名無しさん
垢版 |
2023/09/29(金) 17:29:29.13ID:hJ9le75T
>>569
CはまだしもC++はいらんだろ
2023/09/29(金) 18:16:57.78ID:G0tTsQAT
C++のnewやthrowがライブラリではないから
これは要るだろとか要らないだろとかの意思疎通が困難

Rustのnewはただの関数でResultはただの型だがそれが良い
2023/09/29(金) 18:37:24.93ID:Q1eE5Avm
>>570
ちゅうか、Cだと変数を1つ増やすだけで済むところが、
アセンブラだと、空きレジスタを見つけるか、なければ、
pushで退避してレジスタに入れてから演算して、などと
結構なことなり、既存のコードの修正も必要にな。
また、Cだと変数の宣言位置を、ローカル変数から
グローバル変数に移すだけで済むところが、
アセンブラだと、結構なコードの修正量になる。
2023/09/29(金) 18:42:50.17ID:40UaGOEe
安易にはアセンブラとか言ってるやつはしったか
575デフォルトの名無しさん
垢版 |
2023/09/29(金) 20:12:15.72ID:67cMmZk5
ESP32
576デフォルトの名無しさん
垢版 |
2023/09/29(金) 20:29:15.16ID:WwDlkQCh
>>574
アセンブラの知識はコーディングに使わないにしても必須だよ
知らんで組込みとかは有りえん
2023/09/29(金) 20:55:23.85ID:90TEQvjm
安易にって言った 別人だけど

インラインアセンブラがさいつよ 異論は認める
2023/09/29(金) 20:56:55.87ID:90TEQvjm
安易にって言った 別人だけど

インラインアセンブラがさいつよ
ないしはintrinsic 異論は認める
2023/09/29(金) 21:22:36.21ID:hc5qpvqS
淫乱アセンブラ!?
580デフォルトの名無しさん
垢版 |
2023/09/29(金) 23:00:42.44ID:Xx2tX7a7
>>561
と底辺が申しております
2023/09/30(土) 01:15:10.95ID:uQoNfJfL
つーか、プログラム書くなら低レベルの方がやっぱ楽しいよな
IO直接ブチ叩くのは何十年経っても面白い
目に見えるすべてのコードがだいたい支配下にあるのも気分いい
582デフォルトの名無しさん
垢版 |
2023/09/30(土) 01:57:53.34ID:oC3zwu9C
セキュリティの重要性 > コードの楽さ
となるような場面でのみRustは有利かもね。OSとかはできるだけRustにするべきだろうね。最もサイバー攻撃される部分でもあるわけだし。それ以外はRustを使う動機はあまりないか。
2023/09/30(土) 04:19:59.97ID:UNGkppBG
所有するとかいう用語はC/C++でも必要なのに最近までなかった
参照するしかないJavaとは違うアレを表現する単語がなかった
2023/09/30(土) 06:35:36.76ID:nzOMgApX
>>583
ownershipはauto_ptrの太古からすでにあったけど?

こうやって歴史を捏造する詐欺師がいるから、歴史問題は常に嘘つきを殴らないとヤバイ。
2023/09/30(土) 08:16:15.78ID:UHr8XoSS
うそつきはいかんが、人殴りたいだけだろ。。
586デフォルトの名無しさん
垢版 |
2023/09/30(土) 08:50:05.61ID:kIMaAVDY

嘘つきは人では無いよ?
587デフォルトの名無しさん
垢版 |
2023/09/30(土) 09:15:24.49ID:tMrJQnxM
>>574
Lチカやる程度のやつが何言ってんだ
588デフォルトの名無しさん
垢版 |
2023/09/30(土) 09:16:30.63ID:o6BAkEue
>>581
プログラムの楽しさって本来そういうもんだよな。
2023/09/30(土) 10:06:34.84ID:UNGkppBG
>>584
Copyを実装した型は値を所有できるかできないか
所有できない値は参照するしかないのか
という疑問が太古から存在していたとは言えないんじゃないか
2023/09/30(土) 10:58:48.49ID:UNGkppBG
値にはownerがある原則を!Copyに限定する必要がないので
複製可能な値を所有できる
2023/09/30(土) 11:44:30.24ID:ACqFZZKT
意味のないオジだよ
2023/09/30(土) 12:27:06.05ID:rxNaOE9c
組み込みmruby の本も出た。
C のポインターでバグらないから安全

福岡の人工衛星、イザナミ・イザナギでも使っている
593デフォルトの名無しさん
垢版 |
2023/09/30(土) 12:34:00.64ID:+WV6fTrG
unsafe {
てことは40歳くらい?
会社での立場がはっきりとしてくる年齢だね
うちはそのくらいの歳の無能が新人にすら白い目で見られてるわ
今年の新人には「あの人何してる人なんですか?何も仕事してないみたいなんですけど」って聞かれた
}
594デフォルトの名無しさん
垢版 |
2023/09/30(土) 13:26:17.59ID:yLJEMu5z
>>586

おまえのお気持ち知らんがな?
2023/09/30(土) 14:00:07.49ID:kNwK8zB6
命が大事な人達にとって攻撃とは本物の銃を撃つこと
比喩的に殴るのはあくまで話し合いであり表現の自由であり平和的である
596デフォルトの名無しさん
垢版 |
2023/09/30(土) 17:04:46.65ID:Fvb0I5Mb
Rust製の有名製品ってFirefoxしかない
597デフォルトの名無しさん
垢版 |
2023/09/30(土) 17:36:07.60ID:pKhNg6I4
>>596
ripgrep便利だよ
598デフォルトの名無しさん
垢版 |
2023/09/30(土) 18:00:22.25ID:uLt7YI4s
grepでええやん?
2023/09/30(土) 19:30:09.83ID:ixZRFqVm
インフラが次々と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」などがある。
600デフォルトの名無しさん
垢版 |
2023/09/30(土) 21:04:59.54ID:uLt7YI4s
>>599
シェアないだろうがw
601デフォルトの名無しさん
垢版 |
2023/09/30(土) 21:51:59.08ID:lIYH5p6r
>>599
もう耳にタコ。
鸚鵡とかインコはかわいいからまだ良いけどさあ
602デフォルトの名無しさん
垢版 |
2023/09/30(土) 22:18:30.44ID:M04pMWVj
タコ耳
https://www.youtube.com/watch?v=us9QbgewnOI
なんで見当違いの宗教闘争延々とやっているんだ
A「九九は便利だ」
B「九九では足し算引き算に役に立たない」
こんなアホな言い争い続けるのは暇すぎるどころか病院行った方がいい
2023/09/30(土) 23:08:37.19ID:DaqqyI6I
COBOLがなくならないように、C++も、俺が生きてるうちはなくならないだろう
Rustが実績を積んで、その成果がC++に流入するのが待ち遠しい

だから、どうでもいい
604デフォルトの名無しさん
垢版 |
2023/10/01(日) 01:48:39.89ID:wVAADDKC
AVX512を使った行列積の実装はCPU効率50パーセントが大きな壁だな。中々この壁を越えられないな。ただ流石に10月中には完成させたいな。
2023/10/01(日) 04:43:20.90ID:lOGxZ8en
ていうかfirefoxでさえ全然Rustが使われてないじゃん
2023/10/01(日) 08:56:10.79ID:rjZHaWtE
SNSでRustを検索してみたら、大部分がゲームの方のRust
だった。そして、言語の方のRustでも、いいね は 0 の事
が多かった。その中でなぜか有名インフルエンサの発言
だけはいいねが 100 以上付いていた。
もしかしたら、何らかの組織から金を貰っての
ステルスマーケティングだろうか。
インフルエンサーに金を与えて宣伝といわずに、
宣伝してもらうらしい。
607デフォルトの名無しさん
垢版 |
2023/10/01(日) 09:26:04.72ID:wVAADDKC
RustはOSやCloudの基盤構築に使うよう言語だろ。基本的にほとんどのプログラマは無縁なままになると思う。
ただ、GoogleやApple, MicrosoftとかAmazonの様にOSやCloudを持ってる会社のエリートにはRustは必要なスキルになるんじゃない?
608デフォルトの名無しさん
垢版 |
2023/10/01(日) 09:38:28.18ID:jNRKUn/r
近い将来 Rust は改名されると思う
Perl のように
2023/10/01(日) 09:45:42.20ID:rjZHaWtE
>>607
そうはならないと思うな。
ちゃんとした理由があるけど、敢えて書かないが。
2023/10/01(日) 09:57:36.36ID:vqJth/wO
>>603
お花畑指向のお爺さんのヒトリゴトw

だから、どうでもいいww
2023/10/01(日) 12:31:25.36ID:O6H6pei5
RustをやることでRustが必要なエリートエンジニアを気取れる
一般エンジニアがRustに手を出す理由はこれだろうね
612デフォルトの名無しさん
垢版 |
2023/10/01(日) 13:08:31.84ID:7icNt1rZ
単なる物好きだと思う
613デフォルトの名無しさん
垢版 |
2023/10/01(日) 13:42:51.09ID:nXEaR9ux
給料がいいから使ってる
614デフォルトの名無しさん
垢版 |
2023/10/01(日) 13:43:38.44ID:LITfXwu2
>>610
すぐ置き換わるという発想の方がよっぽど非現実的。
615デフォルトの名無しさん
垢版 |
2023/10/01(日) 13:44:52.19ID:LITfXwu2
>>611
そんなことで手を出す人はいない
2023/10/01(日) 13:53:33.31ID:714OmS2F
結局金貰ってRust推しの書き込みしてたんだなあ
なんかいろいろ納得
2023/10/01(日) 14:05:43.27ID:5C/Q5bxu
>>614
すぐ置き換わるなんてこと誰も言ってないのにな
お爺ちゃんの妄想癖こわっ!
618デフォルトの名無しさん
垢版 |
2023/10/01(日) 14:16:32.83ID:7icNt1rZ
Cが登場したのが1972年で翌1973年にはUNIXはCで書き直された
Rustには勢いがない
この先生きのこれるか分からない
2023/10/01(日) 14:23:43.91ID:Y7qk5s2j
>>618
未だにLinuxはC++を採用しないからC++はダメな言語という話になってしまう
一方でRustは一部採用が始まった
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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