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

レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん
垢版 |
2023/07/29(土) 15:05:46.55ID:2Hm/yplK
C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」

っていう雑談スレ。

前スレ 
https://itest.5ch.net/mevius/test/read.cgi/tech/1688129795

関連スレ(マ板): Google&MS「バグの70%はC/C++。Rustにする」
https://medaka.5ch.n...cgi/prog/1619943288/
805デフォルトの名無しさん
垢版 |
2023/08/24(木) 02:56:38.98ID:hEI/Eij5
分かると思うけどタイポ
-因果化関係
+因果関係
2023/08/24(木) 03:19:55.67ID:zGLBQFrp
>>804
クローズドだから競争が生じ、開発環境が高度に発展した。
2023/08/24(木) 03:23:10.48ID:zGLBQFrp
Win95が開発環境にとって終わりの始まりだった。
OSが32BIT化したことで、Unix系の無料OSSツールが
「主流のビジネスパソコン(PC-9801など)」の世界に
大量流入。
競争条件が破綻し、競争が不可能となり、衰退。
2023/08/24(木) 04:23:51.68ID:ejJL7Sq0
>>759
(室温超伝導)サンプルの提出をお願いします

>>793-796
スルーか一言で済ませて、余計な知恵を付けさすな
809デフォルトの名無しさん
垢版 |
2023/08/24(木) 04:45:44.07ID:UfAeCzV0
C/C++
/*
printf("hoge*/hoge\n");
*/
コンパイル通る

Rust
/*
println!("hoge*/hoge");
*/
コンパイル通らないωωω
2023/08/24(木) 04:47:55.84ID:UfAeCzV0
#[cfg(test)]
が原因か?
2023/08/24(木) 04:51:35.83ID:UfAeCzV0
>>799
>RustとC++の比較において、前者が「パソコンにおいて」
>OSSからスタートしてしまったことは、全ての問題の始まり。
一理ある

>かつてC言語はUnixではOSSであったろうが、パソコンでは
>原則的にクローズドであったからこそ発展を遂げた。
君の世界戦は異世界のものなのか?
2023/08/24(木) 04:54:05.61ID:UfAeCzV0
分かると思うけどタイポ
世界戦
世界線
2023/08/24(木) 04:57:32.27ID:zGLBQFrp
>>811
俺が言っているパソコンとは、PC-9801のことだ。
他のパソコンは知らんが、PC/AT機でもDOSでは、
OSSなコンパイラはほとんど動かなかったのでは。
2023/08/24(木) 04:59:32.52ID:UfAeCzV0
知らないならさっさと寝て下さい
2023/08/24(木) 05:13:21.27ID:zGLBQFrp
>>814
お前の方が知らんだろ。
OSSのせいで何もかも衰退してる。
2023/08/24(木) 05:26:52.49ID:7AUlTMfz
OSSは貧者(俺含む)の味方。これはガチ
2023/08/24(木) 07:39:52.41ID:UfAeCzV0
みんなの予想通り
プリゴジン氏が暗殺された
ぜんぶOSSのせいだ
2023/08/24(木) 08:51:41.95ID:TNcuPvYX
>>802
当時っていつだよ。
gnu cは1980年台からあるだろ。
2023/08/24(木) 08:53:47.64ID:TNcuPvYX
>>813
ハナクソみたいな日本市場で世界を騙るとか、どこの異世界ですかね?
820デフォルトの名無しさん
垢版 |
2023/08/24(木) 12:14:49.40ID:fsW9ztQn
>>819
5chでイキって気持ち良くなるとか、どこの暇人ですかね?
2023/08/24(木) 13:03:33.51ID:hEI/Eij5
>>802
確かにコンパイラは淘汰され減ったが
トータルのコンパイラの利用者つまり開発者は
OSSがない場合に比べて増加したんだと思うよ
誰でも直ぐに無料で開発を進められるようになり
開発者の裾野が広がったのは
ソフトウェアの進化速度を考える上で重要だったと思う
822デフォルトの名無しさん
垢版 |
2023/08/24(木) 15:07:09.15ID:HFuNmebf
>>821
淘汰されたのはOSSのせいじゃなくてVisual C++のせい。
2023/08/24(木) 15:13:16.73ID:YZsWFF7D
>>818
DOSのPC-9801ではまともに使えなかった。
2023/08/24(木) 15:51:29.49ID:YZsWFF7D
競技プログラミングみたいな何の能力を測定しているのか、
また、参加者も限られるようなものの成績が良かった
ことと、言語に対する評価眼を持っていることは別である。
評価とは、審査する側が誰であるかによって異なってしまう。
国際組織でも、アメリカの金で成り立っている組織は、
アメリカの意見になってしまうことは良く知られている
のと同様、プログラムでも学問の世界でも同様だと考えられる。
825デフォルトの名無しさん
垢版 |
2023/08/24(木) 15:56:25.89ID:hEI/Eij5
>>824
それで?
2023/08/24(木) 15:56:54.62ID:YZsWFF7D
「若いから年上の人より正しい判断が出来る」とは限らない。
しかも、その若者の能力が高いかどうかを判定しているのが
京大総長というような高齢の権威者の場合はなおさら。
何を持って人の能力を判断しているのか問題、という問題
が起きる。
2023/08/24(木) 16:00:05.43ID:YZsWFF7D
京大総長が、「この人はプログラミング能力がすばらしい」などと
判断したとしよう。
しかし、それは「京大総長基準」に過ぎない。
「プログラミング能力が素晴らしい」とは、一体何を
もって決めるのか。
仮に素晴らしかったとしても、プログラミング言語の
良し悪しをその人一人が判断してよいということでもない。
2023/08/24(木) 16:12:01.07ID:M4GRlfeF
それで?
829デフォルトの名無しさん
垢版 |
2023/08/24(木) 18:17:38.62ID:QG+ZRfMP
test
2023/08/24(木) 18:50:59.70ID:RER6Zrq6
パソコンが高価だった時代はゲーム機が貧者の味方
その時代のゲームは今でも売買されているが開発者の利益にはならない
むしろ過去の商用ソフトは衰退させた方が最新のゲームを売りやすい
831デフォルトの名無しさん
垢版 |
2023/08/24(木) 18:52:23.22ID:CY1BVKcv
#[derive'Copy, Clone)]
たとえば古い passwd ファイルの形式とかで使われていた
root:x:0:0:root:/root:/bin/bash
user01:x:500:500::/home/user01:/bin/bash
のような「:」区切りのテキストファイルのデータベースを扱いたいとき
C標準のライブラリは何ですか?
Rust用のcrateで言うと何ですか?
2023/08/24(木) 19:15:40.09ID:zclBScKH
なんでそんなこと聞くの?
2023/08/24(木) 22:11:36.44ID:3ljd7W/g
自作自演の準備じゃね
2023/08/25(金) 00:12:20.33ID:1ayFYibv
>>831
区切るだけならstr.split(':')かstr.splitn(7, ':')
構造体に入れるなら一般的にserde crate
そのケースならcsv crateでコロンにデリミタ指定でもいけるはず
2023/08/25(金) 00:21:37.84ID:jCG33I6S
Cなら自分はstrtokが好きかなあ もちろんいろいろとunsafe
2023/08/25(金) 03:14:57.13ID:VpCvI12o
Ruby で、CSV モジュールを使って書いた

UNIXプログラミング質問すれ Part10
https://mevius.5ch.net/test/read.cgi/tech/1303113996/936-937
2023/08/25(金) 05:21:04.13ID:+GAmI8K8
>>681
わかりみ
838デフォルトの名無しさん
垢版 |
2023/08/25(金) 07:20:56.16ID:vekBwhc6
BDS-C とか α-C の人は少数派かな
2023/08/25(金) 07:34:56.19ID:jCG33I6S
THINK Cとか、CodeWarriorとかあったけどねえ 内製にはgccで十分だわって
2023/08/25(金) 10:05:27.96ID:QjCfYj97
マクロはズル
非売品はチート
ネイティブコンパイラは商品という雰囲気
2023/08/25(金) 21:47:21.62ID:dgCh3EK3
スレタイだけ見て検証結果だけ見に来ました
どこですか?
2023/08/25(金) 22:49:31.05ID:TKWUIPKw
検証結果ならC++とRustの平行線が交差してるところに書いてあるよ
2023/08/26(土) 09:36:49.47ID:6yPOQcjp
何番のレスですか?
2023/08/26(土) 10:17:55.69ID:YvKfERa1
MS「BASICとCってどっちが儲かるの」
科学「推測するな。速度を計測しろ」
アンチOSS「ソースを見れない方が勝つ」
2023/08/26(土) 10:47:48.15ID:oTZjsNGJ
>>844
アホ科学者「推測するな。速度を計測しろ」
知的科学者「思考実験しろ」
2023/08/26(土) 12:11:26.64ID:n9Zpgb21
科学的wの含意がわからないバカは単なるバカより悪性度が高い
2023/08/26(土) 12:50:41.78ID:EQIr/PqP
参照で充分なのに所有権の移転を要求する関数があると
いちいちcloneしてから渡さないといけないから非効率
もちろん一回呼ぶだけならclone不要だが
ループ中とかで何度も呼ぶ用途には使えない
なんでそんな関数の設計になってるんだろう?
別にメリットでもあるんか?
2023/08/26(土) 13:34:35.63ID:Zw1oRqbC
日本の科学界は理論軽視。実験ばかりしてる。
849デフォルトの名無しさん
垢版 |
2023/08/26(土) 13:51:37.78ID:BkdXpONX
日本のプログラマは設計軽視
実装ばかりしている
2023/08/26(土) 13:53:57.47ID:1I5XjMeW
まだ検証結果とかないんですね
結果だけは知りたいので、そのうちまた来ます
2023/08/26(土) 13:54:42.84ID:X9B+4TBT
無駄な事を如何に合理的に行うか
2023/08/26(土) 17:14:09.12ID:BANL9PLy
>>847
例えばどの関数?
2023/08/26(土) 18:20:57.77ID:SuFMWKx7
>>852
誰かばれるからネットでは言えないだろうて。
854デフォルトの名無しさん
垢版 |
2023/08/26(土) 18:28:43.52ID:PUW/Ds/i
逆じゃね
日本人は実装軽視
設計でガチガチに固めすぎる
2023/08/26(土) 18:35:38.61ID:d2gT63Zp
>>853
具体例出せないんだと
本人の認識に問題あるのか
関数の作りに問題があるのかわからない
2023/08/26(土) 18:39:02.26ID:rFnbk731
わからなくていいんじゃない?
2023/08/26(土) 19:54:07.81ID:W0ZiOB7w
わかってないのに何かわかったつもりになって書き込まれているクソスレ
2023/08/26(土) 21:07:05.08ID:0tgAAb31
上には上がある わかったつもりでも、さらに賢い奴から見ればクソ
自分なりに勉強して持論もまとめてるが、わかったなんて思わないもんだ
2023/08/26(土) 21:55:32.22ID:H12RzSKf
さすが老害スレww
2023/08/26(土) 22:24:06.83ID:lapxHx5e
賭け事とか軽率な行動をしなければいいよ
頭の中が謙虚だろうが傲慢だろうが行動に直結しなければいい
いくら謙虚になっても忠誠心か何かで極端な行動をするパターンはある
2023/08/26(土) 22:46:59.85ID:rQ60jT/J
さすが老害スレw
2023/08/27(日) 02:06:49.72ID:q6Sk83rz
判ると解るの違いも分からないとか単なるバカだろ
2023/08/27(日) 02:08:05.98ID:fTLdLIfO
あーそれめっちゃわーかーるー!
864デフォルトの名無しさん
垢版 |
2023/08/27(日) 02:39:08.79ID:v+5WY+8u
Firefoxは何かと問題が多い
2023/08/27(日) 10:34:56.61ID:m1noAQBG
構造体に演算子オーバーロードしたいときって,所有権持ってかれないように構造体の参照に対して演算子オーバーロードでいいの?
期待通りに動くんだけど
&a + &b
みたいな書き方になってまどろっこしい
2023/08/27(日) 10:46:11.22ID:FBPgStJh
(*a).演算()やa->演算()を間違えてa.演算()と書いたらエラーになるのがC++で
エラーにならないのがRustじゃないの
2023/08/27(日) 10:50:29.34ID:fHPM9HO/
>>855
前者だったことが判明
2023/08/27(日) 11:12:20.72ID:KN9Q47l4
勝利宣言おじさん!
2023/08/27(日) 12:47:03.16ID:nwdT7crg
>>867
ネットで身元がばれるような情報が書けない事をいいことに
勝利宣言してしまう人。
2023/08/27(日) 13:02:52.22ID:gIdFwVfH
くやしそうww
2023/08/27(日) 13:15:32.07ID:nwdT7crg
どうせ普及し無い事が分かってるし、なんとでも言え。
2023/08/27(日) 13:30:23.89ID:FBPgStJh
スマホや自動車の部品のように
買わされたけど存在意義は知らない物が普及することはよくある
2023/08/27(日) 13:50:59.05ID:HtzqCBy6
おじさん思考トレース

おじさんはね
Rustに部分的にでも欠陥があるかのような物言いは許せないんだよ
コードが出れば今すぐにでもそいつのせいにしてマウントして打ち消しようと思うんだけどね
証拠がないならそいつのせいってことで断定してマウントとっちゃうのが手っ取り早いから、もうそういうことにしちゃうよ
2023/08/27(日) 13:53:29.74ID:HtzqCBy6
こうして今日もRustの名誉は保たれた
875デフォルトの名無しさん
垢版 |
2023/08/27(日) 14:19:51.40ID:FzVOeawK
FirefoxはRustで書かれてる
2023/08/27(日) 14:42:04.03ID:ZMNQeswV
めちゃくちゃくやしかったんだなwwwww
クッソおもろい
877デフォルトの名無しさん
垢版 |
2023/08/27(日) 14:45:24.00ID:wLUi1wnU
FirefoxってRustでも書かれているってだけで
C/C++の方がまだ多いうだよ
2023/08/27(日) 14:53:34.38ID:FBPgStJh
確率的にはコンパイラのバグよりもアプリかライブラリのバグが多いから
コンパイラに欠陥があった的な物言いは分が悪い
これをやりたいためにライブラリを外部に丸投げする方式が普及している
879デフォルトの名無しさん
垢版 |
2023/08/27(日) 15:00:51.57ID:FzVOeawK
使用率100%は電池が減る
2023/08/27(日) 16:29:11.02ID:CnmnxBvX
>>865
普通はCopyにする
Copyにできないなら明示的にcloneする
どちらにも採用できない状況なら
参照に対してのみオーバーロードを書く

+や-の演算子はdot演算子と違ってauto-referencingが効かないから
&a + &bみたいな書き方になるのは現状では避けようがない
将来的にauto-refが効くように改修されることがもしあれば
a + bのような書き方もできるようになるかもしれない
2023/08/27(日) 17:02:53.80ID:dtO6uWju
>&a + &b
>みたいな書き方になってまどろっこしい

Copy実装したくない大型なら参照を使うから&a + &bの書き方がありがたい
小型ならCopy実装してa + bと書ける
2023/08/27(日) 17:07:29.78ID:FBPgStJh
大きいサイズの値を2回以上コピーするのを1回にするような最適化は
コピーコンストラクタに副作用がない保証があればできる気がする

そしてRustのCopyの振る舞いはユーザが勝手に定義できない
2023/08/27(日) 18:00:17.55ID:U2l728xv
>>867
具体例出せないと後者の可能性高いだろ。
標準ライブラリやOSSならそういう問題は他の誰かからも指摘入って修正されるだろうし。
2023/08/27(日) 18:26:07.84ID:5kryRYaj
>>880
ありがとう
auto-refないから&a+&bって書き方になるのね
理解したわ
2023/08/27(日) 18:47:19.96ID:9Fw72WPV
>>883
具体例はfn add(self, rhs: Rhs) -> Outputだったということでしょ
2023/08/27(日) 19:50:49.96ID:zk2DK/9o
>>885
なるほどね
やはり勘違いしていたわけだ
&selfと書いていないから参照はダメだと思い込んでしまったのだろう
実際にはもちろんself自体が参照型でもOK
2023/08/27(日) 19:55:22.28ID:zk2DK/9o
一般的にもトレイトのメソッドfoo(self, ...)についてself自体が&T型の場合もある
&T型はCopy実装されているため消費されても構わない
ようはポインタだから
2023/08/27(日) 20:33:53.99ID:E6sVfEz/
え、その二つの話つながってたの?
2023/08/27(日) 21:23:31.52ID:Cz9QaAKK
比較演算子とかはauto-ref/derefできたほうがいいと思うが算術演算子はexplicitな今のスタイルの方がいいと思う
今でも&a + &bの中身がa.clone() + b.clone()になってるやつとかやめて欲しい
2023/08/27(日) 21:33:56.56ID:OVTDvFv9
>>885でSelfもRhsもOutputも自由なのでT次第でT + T、T + &T、&T + &Tなどそれぞれ最適な実装ができる
例えばT + &T -> Tは敢えて消費してそのメモリを居抜して返す効率パターン
例えば計算途中の中間生成Tは消費されてもよいわけで再び結果の中間生成Tに転用できる
2023/08/27(日) 21:35:11.73ID:Aks4ymi6
>>889
俺もそう思う
コピーして演算なら a+bで良いと思うけど
デカいオブジェクトで参照で演算なら&a+&bのほうがわかりやすいから良いと思う
2023/08/27(日) 21:44:01.12ID:OVTDvFv9
数値計算以外にも応用できて
Rhsは &T でなくてもよいため
例えば { string.push_str(other_str); string } と書くところを
string + other_str と簡潔に書ける
以下の居抜き実装があるため

impl Add<&str> for String {
 type Output = String;

 #[inline]
 fn add(mut self, other: &str) -> String {
  self.push_str(other);
  self
 }
}
2023/08/27(日) 21:45:30.32ID:Aks4ymi6
>>888
俺もなんで&a+&bの&を書くのがまどろっこしいが
>>847
>参照で充分なのに所有権の移転を要求する関数があると
>いちいちcloneしてから渡さないといけないから非効率
に結び付くのか理解できないが,でも、rust野郎は激頭いいから同じ質問を形を変えた質問と
見抜いたんだろう
2023/08/28(月) 03:04:54.55ID:kRbDFKro
質問してる人と答えてる人が同じ人だったら怖いなあ
895デフォルトの名無しさん
垢版 |
2023/08/28(月) 03:16:32.18ID:gISZWwhM
自演の多いスレ
2023/08/28(月) 09:03:13.17ID:ponuOfxz
ほんそれ
>>873-874
2023/08/28(月) 10:16:26.38ID:uyUKevyw
くやしすぎて負け惜しみを書かずにはいられない老害爺ww
2023/08/28(月) 12:32:28.64ID:PXcIjE1o
Rustの名誉を守るため、日々欠かさずパトロール。
そうしてRustの名誉は保たれているのだ。
2023/08/28(月) 12:58:11.57ID:v69lGQmU
質問してたのは行列演算の人でしょ
900デフォルトの名無しさん
垢版 |
2023/08/28(月) 13:33:08.88ID:EHUcz/c8
>>847>>865両方とも?
2023/08/28(月) 14:14:10.40ID:fWSSPYAk
impl<'a> Add for &'a Foo
impl<'a> Add<&'a Foo> for Foo
これで、変数名に&はつかないけど括弧に&がつく感じにできるね
a + b + c == &(a + b) + c == a + &(b + c)
2023/08/28(月) 15:01:10.40ID:Lf88OaGD
それだけじゃ無理
2023/08/28(月) 15:28:15.79ID:YEWHN9+F
Rustで学ぶなんとかとかいう本いっぱい出ているし、結構個人でやる気のあるやつは覚えるんじゃね?
Rust人口増えている印象。
2023/08/28(月) 16:02:44.46ID:Ga4nU38J
この出版不況にそれは凄いじゃん!
レス数が900を超えています。1000を超えると表示できなくなるよ。