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

レス数が950を超えています。1000を超えると書き込みができなくなります。
2023/06/06(火) 19:13:06.15ID:ZuKzBsFa
「C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」

っていう雑談スレ。

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

関連スレ(マ板): Google&MS「バグの70%はC/C++。Rustにする」
https://medaka.5ch.net/test/read.cgi/prog/1619943288/
2023/06/28(水) 19:41:41.00ID:0KmVxjiW
ほかに、社会主義国(左翼)インドのタタという企業や、
日本の郵便局にあたるアメリカの UPS (ある意味では公共事業体)
が顧客例に上がっている。
UPS(郵便)もインフラで税金のように収入がある。
元々国の機関で、配達のインフラは国の税金で作られた。
信頼感も国の組織だからある。日本の郵便局と同じ。
電力会社も民間企業の様に見せて、実際には国の機関。
電信柱の配電線や高圧鉄塔による送電線、火力発電所、変電所
原子力発電所も、もともと国家が作ったもの。
原子力発電所なんて、民間が勝手に出来るものではない。
そうやって、国民の税金で基礎が作られた団体が、RedHatに
勝手に金を流していることになる。
2023/06/28(水) 19:43:03.95ID:0KmVxjiW
>>856
RedHatには1万9000人も社員がいる。
当然優秀な人ばかりではない。
夜勤でアルバイトにでもやらせてるんだろ。
2023/06/28(水) 19:46:18.66ID:ix6et8V+
これはまた別種の狂信者ですなあ
某氏はこれを見て自身の振る舞いを見直すための糧とするように
2023/06/28(水) 19:46:39.84ID:0KmVxjiW
大国家の軍隊、国家最大の電力会社、国家の郵便局
みたいな、税金やそれに似た収入源で莫大な収益が
ある企業が勝手にオープンソースに賛同して、RedHat
に金を流している。
やはりカルトだ。
経済においてもカルトと言うものが存在すると言われている。
2023/06/28(水) 19:47:57.96ID:lea4EYpR
>>858
なら人手掻き集めて24/7サポートやれよ。
「誰でもできる」だったよな?
2023/06/28(水) 19:50:45.28ID:0KmVxjiW
>>861
誰でも出来るが、カルト宗教のグルにならなければ、
信者からは金が入ってこないから成り立たない
と言っているんだよ。
だから、グルであるRedHatには可能でも、普通の
経営者には不可能。
だから、RedHatだけが儲かる。つまり、宗教団体の
親玉的存在になっている。
2023/06/28(水) 19:55:44.85ID:0KmVxjiW
「Shriners redhat」で検索すると、フリーメーソン
とも関係ありそうな宗教のグルが赤い帽子を被る傾向が
あると出てきた。
2023/06/28(水) 19:59:27.74ID:0KmVxjiW
RedHatはコネチカット創業でShrinersはニューヨーク発祥
だとか。距離も近いし、イギリスに関係が深い場所だとか。
だから、英国陸軍が何かやっているのか。
最近、英国が酷い国である、という噂がたっている。
2023/06/28(水) 20:00:40.56ID:lea4EYpR
>>862
日本語わかってますか?
あなたは「誰でもできる」と言ったのですよ?
とっととカルトでも何でも集めて24/7サポートやれよ。
2023/06/28(水) 20:04:57.07ID:0KmVxjiW
Shriners は、全て「メーソン」なんだそうだ。
つまり、フリーメーソンと関係が深いようだ。
そうか、フリーメーソンが世界にオープンソースを
広げようとしているから、莫大な金が動いているのか。
なぜ儲かってるのか不明だったが、だとすれば納得が行く。
ウクライナ戦争もネオコンやディープステートと言われる
人達が仕向けていると聞いている。
ジョージ・ソロスや、バイデン大統領、
ロスチャイルド、ロックフェラーが関係していると言う
噂が立っている。
2023/06/28(水) 20:06:14.21ID:0KmVxjiW
>>865
技術や技能的には誰でも出来る。
カルトなので、心情的に出来ないだけ。
宗教者には誰でも出来るが、良心の呵責から
多くの人には真似できない。
罪悪感にさいなまれるから。
2023/06/28(水) 20:21:26.86ID:lea4EYpR
>>867
アホかな?
>815「顧客が欲しいのはドリルと言う製品ではなく、穴である。」
じゃないのかな?

Redhatの顧客は技術や技能が欲しいんじゃなくてサポートにより維持される状態が欲しいんだろ。
「誰でもできる」じゃなかったんかよ。
とっととRedhat並のサポートやれよ。
2023/06/28(水) 20:23:16.19ID:0KmVxjiW
>>868
優れたOSならサポート要らず。
サポートが要るのはOSがタコだから。
2023/06/28(水) 20:27:47.59ID:lea4EYpR
>>869
それは「サポートなんて簡単」と言っているのかな?
ならとっとと24/7サポートやれよ。
2023/06/28(水) 20:31:33.50ID:ePd0oqZH
RedHatは普通に民間企業のサーバーで使われまくってるだろ
お前が苦しいのは中国のせいじゃなくて病気のせいだから病院行けって
2023/06/28(水) 20:42:52.43ID:icNs4yra
ま資本主義はみんなが信仰してるから成立している
ってところは当たってなくもない
2023/06/28(水) 20:54:31.29ID:lea4EYpR
税金の支払いはいくつかの例外を除いて通貨で行わなければならない、という現実があるから、まるまる幻想というわけじゃないけどな。
2023/06/28(水) 21:09:35.99ID:k2AplyAA
侵略はするけど借金だけはクソ真面目に返済する人生って言うほど現実的かなあ
875デフォルトの名無しさん
垢版 |
2023/06/28(水) 21:52:15.09ID:fPUKQpx3
RustとRedHatって何か関係あったっけ?
現状だとRustはWeb向けのライブラリが豊富で、こっち関係の人がちょっとずつ増えてきてる感じかな。
876デフォルトの名無しさん
垢版 |
2023/06/28(水) 21:53:48.69ID:fPUKQpx3
Rustには数値計算と、機械学習系のRust純正の優秀なライブラリが欲しいところですね。
2023/06/28(水) 22:16:55.99ID:y2n2uu8k
なんかRustの変数の扱いって結局C++のスマートポインタと一緒なんじゃないの?
要するに今までは
「使いたい人だけスマートポインタなるもの用意しますので使って下さい、めんどくさい人は使わなくていいです」
だったのを
「安全性、性能の面でスマートポインタ使って下さい、全変数扱い統一」
にしただけじゃないの?
つまり“全変数原則スマポのように所有権、ライフタイムを持たせたC++”がRustではないの?
2023/06/28(水) 22:20:40.19ID:V4K/UYVM
変数についてはその通り
2023/06/28(水) 22:28:54.15ID:ZkV1DUYZ
>>877>>878
自演
2023/06/28(水) 22:29:27.34ID:0DoHaNjN
>>877
全然違う
Rustの基本くらいは理解しようぜ
881デフォルトの名無しさん
垢版 |
2023/06/28(水) 22:35:35.18ID:V4K/UYVM
>>879
自演じゃねーよ
2023/06/28(水) 22:38:47.23ID:ZkV1DUYZ
>>881
うん、どう見てもアレの人が出てきたからお前は違うな
すまん
2023/06/28(水) 23:04:17.25ID:CwhYIy1e
rustを使ってみた感想としては安全性が高いのはいいんだけど、ちょっとしたコードでもタイプ量が多くなるところがマイナス
結局c言語ぐらい気軽にかける文法が望ましいがc言語ではメモリリークを出さない開発が至難の業である
よってrustは文法をc言語に寄せるべきだ
俺はメモリ安全なc言語を使いたいんだ
2023/06/28(水) 23:39:12.71ID:yWt9fj7b
pythonだと高速のライブラリは有用だけれど
rustだと遅いとか文句言われそう
885デフォルトの名無しさん
垢版 |
2023/06/29(木) 00:18:55.84ID:KWlnjQqd
rayonと組み合わせて使うならtokioよりもasync-stdの方が良さそうだな。このように組み合わせると非同期かつ行動に並列化の最適化の恩恵を受けれる。
886デフォルトの名無しさん
垢版 |
2023/06/29(木) 00:19:39.93ID:KWlnjQqd
>>885
行動じゃなくて高度ね。
2023/06/29(木) 01:18:16.64ID:G4iUS2a2
>>880
違うん?
RustでもC++のスマートポインタでも“所有権”とか“ライフタイム”とか言う概念出てくるし、「ポインタの中ではデータの所有権を持つものが設定される」「所有権を持つポインタがスコープを離れ全て無効になったときデータは自動的に(プログラマがメモリ解放の手続きを行わなくとも)自動適に消去される」とあって少なくとも細かい違いはあっても「プログラマがメモリの解放をしなくても自動的にコンパイラが解放のコードを挿入する」と言う根幹の部分は同じじゃないの?
どっか違うの?
2023/06/29(木) 07:41:38.95ID:+YpLQq9u
仮に、質問は有料で独断は無料だとしても、お金を払いそうな人はいっぱいいる
有償サポートは儲かる
2023/06/29(木) 08:48:31.42ID:QpjtYgcG
rustだけで全てやりたい
2023/06/29(木) 08:50:06.09ID:E/0OCxk0
できるっちゃできるだろ
布教うっせえC++でたくさんだ、って言ってる人がいるだけで
891デフォルトの名無しさん
垢版 |
2023/06/29(木) 09:02:46.71ID:8oHTvHG4
>>887
とりあえず公式チュートリアルThe Bookの4章まで読みましょう
そうすれば自ずと答えは出てくる
https://doc.rust-lang.org/book/
892デフォルトの名無しさん
垢版 |
2023/06/29(木) 09:25:42.33ID:df8BmqTV
>>872
大規模な共同幻想だよな
893デフォルトの名無しさん
垢版 |
2023/06/29(木) 09:29:54.32ID:df8BmqTV
>>857
これは良い視点
もっと拡散追及して良い話
894デフォルトの名無しさん
垢版 |
2023/06/29(木) 09:32:10.55ID:df8BmqTV
>>864
>最近、英国が酷い国である、という噂がたっている。

これは最近じゃなくて昔からだな
もちろん酷い國は英國だけじゃないし英國が一番酷い國だとは思わない
2023/06/29(木) 09:32:52.11ID:K/NE5Ydr
>>891
読んだ上で言ってる
ないです
896デフォルトの名無しさん
垢版 |
2023/06/29(木) 09:35:54.22ID:df8BmqTV
>>875
web向けならRustじゃなくても良いのになω
897デフォルトの名無しさん
垢版 |
2023/06/29(木) 09:38:52.71ID:df8BmqTV
>>877>>887
Rustの前にC/C++を勉強するべき
898デフォルトの名無しさん
垢版 |
2023/06/29(木) 09:40:03.94ID:df8BmqTV
>>888
だから感染警告サポート詐欺が流行るんだよな
899デフォルトの名無しさん
垢版 |
2023/06/29(木) 09:41:51.11ID:df8BmqTV
>>883
>c言語ではメモリリークを出さない開発が至難の業である

doubt
シレっと嘘を描くな
900デフォルトの名無しさん
垢版 |
2023/06/29(木) 09:43:54.38ID:wlk15V3I
>>895
そうすると変数が何かも分かってない残念な子ってことになるからもう一度読んだ方がいいんじゃね

あとスマートポインタも復習した方がいいかもね
2023/06/29(木) 09:54:35.89ID:+YpLQq9u
スマポはライブラリ
代わりがいくらでもあるライブラリは
唯一無二の言語に隷属するというのがオーソドックスな見方
逆に、同一の概念が複数の言語に現れるという見方は共感されにくい
902デフォルトの名無しさん
垢版 |
2023/06/29(木) 09:58:22.77ID:df8BmqTV
↑901
また変なこと言い始めた
バカの上塗り
2023/06/29(木) 10:00:02.58ID:bws8h/9h
>>887で正しいやろ
細部は違うとしてもRustに導入された変数の振る舞いは
C++のスマートポインタから拝借されたかどうかは知らんが
共有している
904デフォルトの名無しさん
垢版 |
2023/06/29(木) 10:06:10.18ID:4kXFSc8E
このRust CookBookってサイトはRustについて色々まとめられてて日本語も分かりやすいな。
https://uma0317.github.io/rust-cookbook-ja/about.html
905デフォルトの名無しさん
垢版 |
2023/06/29(木) 10:11:51.81ID:4kXFSc8E
>>904
まあ、このサイトはRustの文法云々の説明が丁寧に書いてあるというよりはRustの色々な付加的な機能の使い方が丁寧に書いてあるサイトなので、今話題のスマポとは関係ないけどな。
2023/06/29(木) 12:55:26.21ID:R9FyhrNj
C爺さんはなぜRustに嫉妬してしまうのか
2023/06/29(木) 13:02:33.44ID:K/NE5Ydr
実はRust vs C++ ではなくてスマポ以上使える人 vs スマポまでは使えない人の構図なんだよな
2023/06/29(木) 13:54:58.03ID:8Rym6q2q
元の変数が使えなくなるという部分は影響を受けたとは思うけど
概念としては別
2023/06/29(木) 14:16:12.67ID:KPc+Jj1F
>>908
Rust初めて見たときはstd::auto_ptrがよぎったな
2023/06/29(木) 14:22:14.53ID:E/0OCxk0
その手合いの批判を目にして考えたんだ
俺いままで、スマポを適切に使えるか自信なくて、スマポなんかなくても間違わないように設計してたなって
ちなプロじゃない(業務で書いてない)ので、こんなもんで済んでたってのはある

Rustがスマポを当たり前にしちまった 俺も使えるようになるんだろうな
2023/06/29(木) 14:44:03.11ID:bws8h/9h
>>910
>スマポを適切に使えるか自信なくて
どんな奴やwww
標準ライブラリの中で最も簡単な部類やろ
2023/06/29(木) 15:05:21.03ID:+lhSLNnL
>>877
そこはC++とRustで大きく異なる
とりあえず所有権とスマートポインタ(スマポ)の根本的な違い

C++: 所有権はヒープ領域に対してのみ存在する
Rust: 所有権はヒープ/スタック領域かの区別なく存在する

C++: スマポが指す領域はヒープ領域のみ
Rust: スマポが指す領域は一般的にヒープ/スタック領域の区別がない、ただしヒープ領域のみを指すスマポ(ex. Box)もある

C++: スマポはヒープ領域とその所有権を管理するために使われる
Rust: スマポは汎用的で任意の領域を指しRAIIに基づき動作する様々なものがスマポ

これらの差異によるRustの様々な効果は多く書ききれないが
C++は機能が非常に弱いとともに複雑となっている
Rustはコストの軽いスタック領域のシンプルで安全な活用が進んでいる等
2023/06/29(木) 15:19:00.73ID:bws8h/9h
>>912
それは枝葉末節な話
プログラミング言語にこれまでになかった所有権なるものが発明され導入された
その発想はどこから来たのか? という大きな話では>>877は正しい
>>877の最後の行は言い過ぎだけども
2023/06/29(木) 15:25:24.94ID:+lhSLNnL
>>913
C++とRustでは>>912に書いたように本質的に異なる
この本質的な差異を理解できないとRustを会得できない
なぜC++は不十分なのかも理解できない
915デフォルトの名無しさん
垢版 |
2023/06/29(木) 15:34:01.40ID:ZfPI/MnN
>>913
めちゃくちゃ話変わっとるやんw
本人以外でここまでのエクストリーム擁護するやつおらんわな

しかも所有権はスマポ以前からある概念だからそのエクストリーム擁護も当然の如く間違いなんだが
2023/06/29(木) 15:40:53.58ID:K/NE5Ydr
もちろんRustはスタックにデータを保持するような変数に対しても、すなわち全変数について所有権、ライフタイムを定義してその求めるところのルールに従わなければならないと言うのはC++との違いではある
しかしそれはこの話の本質ではないやろ
そんな話してないやん?
2023/06/29(木) 15:45:55.45ID:KPc+Jj1F
>>914
スタックに置くかヒープに置くかは明らかに末論やろ?
そんなものを意識する極々などこで書いてるの?
2023/06/29(木) 15:46:32.29ID:KPc+Jj1F
>>917
訂正
極々なとこで書いてるの?
2023/06/29(木) 15:47:13.92ID:KPc+Jj1F
>>915
所有権の起源について詳しく!
2023/06/29(木) 15:48:25.62ID:E/0OCxk0
所有権か、それを越える何かが、はやくC++に来ないとダメだ
何と言われようがかまわん、話はそれからだ
2023/06/29(木) 15:52:41.94ID:8Rym6q2q
>>913
どこからきたか?という点に関してはその通りだな
元々はメモリの解放漏れとダングリングポインタを防ぐための概念だが
2023/06/29(木) 15:56:10.95ID:+lhSLNnL
>>916
そこはC++で上手くいかなかった一因でもあるから本質的な差
さらに>>912に書いたようにスマポの概念も大きく異なる

>>917
ここはスレタイからC++とRustの比較スレ
両者の本質的な違いに言及できずに同じ扱いをしている書き込みは存在意義すらない
2023/06/29(木) 16:29:32.18ID:K/NE5Ydr
違う、そんな話してないでしょと言ってんの?
わからん?
そんな話ではなく、Rustの変数の扱いがむずかしい難しい、学習コストが異様に高いと言ってるけど、そんな事言い出したら実質同じなC++のスマポだって使えないでしょと言ってる
Rustはその学習コストの高い概念を“全変数”に課しているためものすごく簡単なプログラムでもその難しい概念の理解を強要されるから難しさが際立つけど、C++でもC++11以降はポインタについてはスマポ推奨で、事実上ポインタ使わないプログラムなんて書けないんだから学習コストの高さはC++もRustも同じようなもんじゃないのと言ってる
ともかくオレが上げてる“テーゼ”すら読み取れてない
2023/06/29(木) 16:29:33.37ID:E/0OCxk0
本質的な違いなどないのではないか! という議論はあってもいいぞ 雑スレだし

まあ俺にはわからん
2023/06/29(木) 16:33:43.86ID:z5vuUvDJ
俺は馬鹿だから難しい話はわかんねけけどよ、流れ自体は良いんじゃねえのか? それが仲間ってもんだろ!!
2023/06/29(木) 16:43:52.89ID:QK7CBl/S
>>923
ちょっと違いますね
元々の議論は「C++にも所有権があるしスマートポインタを使えばよいのでRustは不要」
と間違った主張する人たちがいるところから始まっていると思います
したがって正解は>>912でしょう
2023/06/29(木) 16:53:27.69ID:sKu42tr6
バレバレ
2023/06/29(木) 17:11:19.08ID:IaxigvqZ
twitterで、Rustというキーワードだけ書くと、ゲームと区別が付かなくて流れて
誰も話題にしてくれないから、Wasmというキーワードを混ぜてる
のかな、と最近思ってしまう。
本音は、いい迷惑。Rustのことなんて話題にしたく無いのに
Wasmで検索すると高い頻度でRustの話が出てきてしまうから。
嫌な感じ。
2023/06/29(木) 17:18:21.94ID:bws8h/9h
ヒープに取るかスタックに取るかで速度以外に違いなんてあったっけ?
2023/06/29(木) 17:39:59.25ID:E/0OCxk0
ヒープが断片化するとキャッシュミスになりやすいのでは、とかいうね
実機で測ってみないとなんともだけど
2023/06/29(木) 18:08:03.98ID:bws8h/9h
>>912は末論だよね?
2023/06/29(木) 18:10:27.78ID:QRcouA6R
メモリアロケータのコードを読んだり自分で書くとわかるが
ヒープ領域の確保と解放はやることが多く非常に遅い
さらにヒープ領域の利用はキャッシュミスの観点から遅くなりがち
可能な限りスタック領域を活用するRustは理に適っている
2023/06/29(木) 18:14:30.27ID:8Rym6q2q
所有権を明示的にコンパイラがチェックするかしないかは天と地の差がある
2023/06/29(木) 18:16:54.35ID:8Rym6q2q
何でもかんでもヒープにおいちゃうスマポは時代遅れ
Cでとりあえず全部のオブジェクトをmallocするようなもの
2023/06/29(木) 18:27:08.10ID:QRcouA6R
>>934
そこは正確に「C++のスマポ」と書いた方がいい
Rustのスマポは意味が異なりヒープを必ずしも扱うとは限らないため
936デフォルトの名無しさん
垢版 |
2023/06/29(木) 18:36:23.22ID:bws8h/9h
>>877に始まる議論でメモリアロケーション云々は枝葉末節な議論でしょう
なぜなら文法の話をしているので
文脈を読めないのかな?
2023/06/29(木) 18:41:20.23ID:8Rym6q2q
rustのスマポというドキュメントに書いてない造語はやめよう
2023/06/29(木) 18:42:18.74ID:8Rym6q2q
「バールのようなもの」みたいな不完全な言い回しはド文系が使いがちな言葉遊びだよ
2023/06/29(木) 18:50:38.54ID:wnB+yAyw
C++はゴミ
2023/06/29(木) 18:54:54.39ID:YdXg30BO
Unreal EngineでRustは使えない
2023/06/29(木) 19:01:34.27ID:E/0OCxk0
Rustとか以前にVerseきてくんないとどうにも
Pythonすら(実行中に)つかえん
2023/06/29(木) 19:04:50.68ID:E/0OCxk0
…あーいや、Pythonは組み込む試みがなくはないらしいな 部分的に前言撤回
2023/06/29(木) 19:21:09.57ID:amdLCyiV
Rustはもう終わり
次の言語に期待しよう
2023/06/29(木) 19:34:51.15ID:QRcouA6R
>>937
Rustのスマポはthe Bookで丸ごと一章を割いてしっかり説明がある
具体的な要件としてはDerefとDropのトレイト実装
Derefはdereference『*』オペレータで使える記述面としてのスマポ要件
DropはRAIIにより後始末できる機能面としてのスマポ要件
ヒープ領域を管理するためのC++のスマポとは異なり
Rustのスマポはもっと広義で多様なものが含まれている
2023/06/29(木) 19:36:23.39ID:LxVzw2zZ
>>944
だからそれはスマポではないよ
2023/06/29(木) 19:39:40.83ID:x/2FXeiZ
>>928
Closure言語よりはマシなネーミングだと思う
2023/06/29(木) 19:39:53.25ID:QRcouA6R
>>945
Rust Bookを読みなさい
スマポの要件からスマポの具体例にスマポの自作の仕方まで説明されているから
2023/06/29(木) 19:52:12.24ID:LxVzw2zZ
>>947
そんなのは言語によって変わるでしょうよ
あとRAIIはスマポでもなんでもない
2023/06/29(木) 19:58:47.38ID:K3006uC3
RAIIを最初から知ってる奴は冷静なんだけど
知らなかった連中はなんでもスマートポインタに見えたり
さらにはそれらがGCであるとまで強弁するやつまでおる
あくまで単なるRAIIなんだけどなあ
2023/06/29(木) 20:05:47.28ID:sKu42tr6
>>944
T: DropはT自身に対するスマポですか?
2023/06/29(木) 20:14:49.21ID:LxVzw2zZ
>>950
きみはまず言語仕様とライブラリの仕様とランタイムの仕様をきちんと理解した方が良いよ
ある言語での概念を他の言語に持ち込んで理解するのは
ナンセンスと言わざる終えない
2023/06/29(木) 20:18:30.69ID:QRcouA6R
>>948
明記しているように>>945は「Rustのスマポ」についての話
そしてRAIIをスマポとは書いていない
(RAIIにより生じる機能の)Drop実装はRustのスマポの要件の一つ

>>950
いいえ
Rustのスマポの要件がDerefとDropを実装していることとRust Bookに明記されていること以上の話はない
2023/06/29(木) 20:23:09.60ID:QRcouA6R
レス番号をミスったので以下へ訂正

明記しているように>>944は「Rustのスマポ」についての話
2023/06/29(木) 20:28:00.83ID:Sn4NF66F
突っ込みが甘かった
疲れてるな
2023/06/29(木) 21:26:38.09ID:O21YwZkW
>>931
>>912の所有権&スマポのC++とRustでの違いがこのスレの根幹のひとつだよ
その違いをわかってない人がたびたび間違えたり勘違いして荒れてる
956デフォルトの名無しさん
垢版 |
2023/06/29(木) 21:40:41.14ID:yRLq+mF2
バカ同士だからほんとよく続くよね
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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