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

■ このスレッドは過去ログ倉庫に格納されています
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/
35デフォルトの名無しさん
垢版 |
2023/06/07(水) 22:28:58.76ID:uV3IaUBQ
>>32
Cのコーディングルールで動的確保禁止とかあるから、もしかしたらRustの方が自由度あるかもしれん
2023/06/07(水) 22:37:53.06ID:Dv5vszw/
まだ継続スレ立ててやってんのか
板違いの議論すること自体無能の証なんだが自覚ないのか
37デフォルトの名無しさん
垢版 |
2023/06/07(水) 23:14:48.80ID:HA8xOmF+
>>36
5chあまりやってなくてよく分からんけど、適切な板って何処なん?
2023/06/08(木) 01:08:08.31ID:1JiIioGs
>>32
途中まで全く同意だが
デスマが始まるとおざなりになおざりにされるのであった
2023/06/08(木) 01:09:39.17ID:1JiIioGs
>>37
>>1 のmedaka
2023/06/08(木) 01:21:03.42ID:wjp8dPeK
>>36
このスレが無いとRust本スレが無限に荒れるんだ
どうか生暖かい目で見てやってくれ、申し訳ない
2023/06/08(木) 02:32:40.66ID:EE2g7bKF
GoogleやMozillaには、本物のプログラマが必要とするソフトは作り得ない。
なぜなら自分達はルール違反のドーピングして生きていることに気付いて無いから。
2023/06/08(木) 05:12:29.49ID:/MX+BOQ7
>>39
あっちがいつまでも伸びないのはこれいかに
2023/06/08(木) 06:34:22.13ID:uOcvlML3
>>33
MSとかマネジメント層はそうだろうね。

>>34
Javaとかは普及している分安いかと。
普及して安くなると質の低下が問題になるけど、Rustは「とりあえず走りそうな低品質コードをエラーにする」ことで改善できるのがc++に無い利点。
2023/06/08(木) 07:49:35.74ID:/MX+BOQ7
RustがCの代替になることが決まったなら、その程度のチェックにかけるコストは許されたことになる
同じだけC++もチェックしてくれるようになるといいし、少なくとも、
未定義になりそうなところはぽんぽん落ちてくれると、今すぐ幸せになれそう
2023/06/08(木) 08:03:17.78ID:FEnKQZBW
c++は、標準でコーティング規約を作って欲しいところだけど、政治的に難しいだろうなぁ。
2023/06/08(木) 08:26:52.68ID:r/2L4woX
なくはないけど、みんな守らないよね
だから、新しい言語ができた

なので、そのルールがC++に来れば、さすがにみんな少しは準拠するのでは
2023/06/08(木) 09:42:04.09ID:LAPv/8sa
C,C++は混沌の世界
面倒なとこは未定義で決めずに逃げる
もはやまともな秩序は望めない
48デフォルトの名無しさん
垢版 |
2023/06/08(木) 10:08:50.80ID:9fxI4UBb
上司からとりあえず
MISRA C++ 2008準拠してねって言われてるけど、
2008って古すぎだよね
2023/06/08(木) 10:11:25.57ID:rxjbLVG0
>>42
あっちの人らは Rust の本質を理解出来ないだろうし
コンパイルも通せない連中ばっかじゃね
2023/06/08(木) 10:13:33.88ID:rxjbLVG0
C/C++ はレガシーな部分を削ぎ落さないと駄目だろうね
でもそうなったらもう C/C++ のメリットが無くなって
Rust でええやんってなる
2023/06/08(木) 12:19:36.16ID:KcHjgLNk
コーダー向けのsmart c++とかを用意すればいいのにな。
コーダーにテンプレート定義とか不要だろ。newとdeleteも触らせないほうがいい。
2023/06/08(木) 12:24:43.52ID:bdHPbwkz
>>51
STLも無しですか?
2023/06/08(木) 12:47:09.82ID:KcHjgLNk
>>52
使うだけ。定義は無し。
2023/06/08(木) 14:31:34.80ID:5t64h36a
572 デフォルトの名無しさん sage 2023/06/07(水) 16:20:31.76 ID:QsxM8200
書きやすいか否かという話より、rustは意外にタイピング量は多い思想は考え直してほしい。
std::fmtなどの「::」だとか引数名・変数の後の型の「:」だとか、むろんmutも、戻り値の「->」もなぜ引数の「:」と戻り値の「->」を同じにしなかったのか?思想面が分かる人に教えてほしい。
ほかにもなぜマクロ呼び出しに「!」をいちいち付けるのかとか、関数はfnやpubで省略しているのに?アトリビュートも#[xxx]と異様に見える。なぜ@xxxでは駄目だったのか?
まあセミコロンはC/C++からの移行を重視したのだろうけど。言語をディスってる訳じゃなく完全論破されることを願う
2023/06/08(木) 17:04:52.71ID:Y0G7GrO2
>>54
これ長々書いてる割に大したこと言ってないな
2023/06/08(木) 17:13:51.10ID:r/2L4woX
雑スレだし、愚痴はいいんだけど、簡潔なほうがいいな(自戒
2023/06/08(木) 18:12:52.99ID:Swq8DJXI
うby推しの人っぽいな
KENYAかω
2023/06/09(金) 01:12:19.16ID:80cr/Lm5
誤 バグの70%はC/C++
正 バグの70%は馬鹿プログラマ
59デフォルトの名無しさん
垢版 |
2023/06/09(金) 03:10:58.34ID:dOx/OLad
>>58
Dunning-Kruger Effectですねw
2023/06/09(金) 08:06:17.80ID:JKBRIuMu
そして馬鹿プログラマが簡単に未定義踏めるのがC/C++
2023/06/09(金) 08:14:53.62ID:Csbr7E2A
だからRustみたいな指導員付き教習車が欲しいんだろ。マネジメント層は。
2023/06/09(金) 09:25:47.29ID:RpJgGXpg
ひどい言語だな
2023/06/09(金) 09:34:00.69ID:qbPStiKo
未定義動作がある欠陥言語C++よりまし
2023/06/09(金) 09:41:55.91ID:13/Pz9Dk
安全装置付きの工作機械みたいなもんだろ
教習車って。PASCALかなんかか(← 教育用言語として)w

未定義ってのは処理系依存でもあるので、コンパイラが落としてくれてもいいんだぞ
今後はそうなっていく…ことを願う
2023/06/09(金) 09:44:21.42ID:4Hg4SG5/
つーか、ベテランでも未定義動作は踏む事ある
気がつく仕組みすらないのが終わってる
安全装置外したスピード狂向け言語だな
2023/06/09(金) 10:26:36.13ID:2Q2SV8d7
そのバイナリがちゃんと止まるかどうかの判定プログラムを書けば全てまるっと解決だろjk
2023/06/09(金) 15:40:05.51ID:bto0OMX2
補助輪付き三輪車がRust
D++はブレーキ無しの競輪用自転車
2023/06/09(金) 15:48:56.58ID:bto0OMX2
>>59
チョットデキル←Dunning-Kruger Effect
完全に理解した!←Dunning-Kruger Effect

どっちにも使う
2023/06/09(金) 16:20:09.93ID:HQpaaWlJ
Rustaceanは赤ちゃんだった!?
2023/06/09(金) 17:56:16.91ID:RpJgGXpg
IT土方にはちょうどいい言語なのかも
71デフォルトの名無しさん
垢版 |
2023/06/09(金) 19:38:41.55ID:hULA5lAo
KENTAもRustに注目してる
72デフォルトの名無しさん
垢版 |
2023/06/09(金) 19:42:15.13ID:hULA5lAo
Ruby×Rustというイベントを考えてる
2023/06/09(金) 20:05:40.64ID:9O24uU1k
RustはC/C++書ける人でないと書けないと思う
C/C++のゴミな部分を散々食らった人でないとその概念がなぜ存在してるか理解できない
急がば回れよ
2023/06/09(金) 23:25:35.37ID:bto0OMX2
C/C++のゴミな部分を散々食らった人は
回避方法も身に付いてるから
結局Rustいらねってなる
2023/06/09(金) 23:27:13.77ID:bto0OMX2
RustはC/C++に手を出して挫折した人を拾う救いの言語
2023/06/10(土) 00:05:53.99ID:JneWu8Rj
普通は逆だな
2023/06/10(土) 00:39:19.77ID:LyG5WCLa
>>74
ある程度身についてるけどコンパイラがおしえてくれるわけじゃないからね
78デフォルトの名無しさん
垢版 |
2023/06/10(土) 01:04:58.77ID:IXpMBwN+
RustのライバルはJavaだ
2023/06/10(土) 01:16:52.85ID:7Y/RdB99
Rustの新しい点は コンパイル言語でありながらperlのようなライブラリーの配布方法をとっている点だ
これは C ++ではありえなかった事態だ
2023/06/10(土) 01:28:35.92ID:AfTL7rva
C++と何が違うの?
2023/06/10(土) 01:32:06.43ID:xELAfQPf
YouTube で有名な雑食系エンジニア・KENTA は、
初心者のキャリアパスは、Ruby on Rails → Go だけと言ってる

米国年収でも、Rails, AWS Solution Architect が13万ドル

Ruby, Elixir : 9.3 万ドル
Go : 8.9
Rust : 8.7

多くの言語 : 6.5〜7

PHP : 5
Dart : 4.4

Rubyは、Go/Rust/Elixir の3大言語を超えた。
一方、Rust/Elixirは普及のキャズムを超えなかった
82デフォルトの名無しさん
垢版 |
2023/06/10(土) 01:59:40.75ID:AfTL7rva
誰や?w
2023/06/10(土) 02:06:17.20ID:LyG5WCLa
>>81
rails使いがGoつかえる訳ない
C使いが
ましてやRustなど
2023/06/10(土) 08:33:11.69ID:zUCBB0zf
>>74
人間はミスをする生き物というのを理解していれば、そういうアホな発言は出てこない
2023/06/10(土) 08:43:31.99ID:YOe6zItI
ミスはたいていリリース前に発覚するが
デバッガと格闘してミスの場所を突き止めていくC++より
コンパイラがミスの場所を教えてくれるRustの開発効率が優れてる
C++はミス発覚がリリース後になる場合もある
2023/06/10(土) 09:13:59.06ID:vaWXep+1
cargo も crates.io もデカすぎなんだよ
ローカルにボコボコゴミ溜めやがって
2023/06/10(土) 09:16:15.18ID:vaWXep+1
>>85
C/C++もRustもアルゴリズムのバグを教えてくれる訳ではない
C/C++で危険回避方法が身に付いている人はコンパイル前に既に気付くから問題無い
2023/06/10(土) 09:22:19.09ID:RnVsqjAe
生ポの取扱って極めるなら難しいけど、C++erはそのへんが難しいって弁えるから、ちゃんと避ける
でも、プロジェクトって一人じゃないからね
言語のほうで、ちゃんとチェックしてくれるのは結構なこと

避けてたから気づいてなかったのが正直なとこだが、コンパイラのほうのチェック機構もだいぶ進化してる
2023/06/10(土) 09:22:24.69ID:gJM3u8Zc
>>85
>ミスはたいていリリース前に発覚するが

だがリリースできないよりできたほうがいいんだわw
バグはあとから改修すればなんとかなる場合が99%
リリース遅延よりよっぽどまし 出すことが肝心
その意味でrustは生産性は高くない
てかさ. 商用のRustコンパイラどんだけあるのさw
特に組込で商用のrustコンパイラ挙げてくれ
IARあたりがコード品質の高いrustコンパイラ出してからでもまったく遅くない
2023/06/10(土) 09:23:43.81ID:gJM3u8Zc
>>88
>でも、プロジェクトって一人じゃないからね

それをいうならRust熟練のプログラマどんだけ居るのさww
2023/06/10(土) 09:27:25.53ID:J/pWmtug
>>85
開発効率の高さとリリース時の穴の少なさでRustが圧倒的に有利だな
2023/06/10(土) 09:31:21.58ID:gJM3u8Zc
>>91
コンパイラがないのにか?ww
2023/06/10(土) 09:31:27.19ID:RnVsqjAe
大手が採用するっていったんだから、>>89-90 のあたりは、目途がついたんだろ

効率の高さってのはなんなんだ
2023/06/10(土) 09:33:28.40ID:gJM3u8Zc
>>93
コード生産効率
単位時間に何行書けるかって話だ
あとになってバッファオーバーランエラーなんか判明しても構わないから
2023/06/10(土) 09:40:31.77ID:gJM3u8Zc
>>93
大手?
MSがrust使うっていうのも一部だけだろ
だったら最低VSでRustサポートしてから言ってくれ

大体チップメーカがまともなrustコンパイラをリリースした話は聞いてない
チップメーカーはC/C++コンパイラはチップと同様要視してるがrustはまだまだ眼中にない
Intelがrustコンパイラ出したら考えるわww
96デフォルトの名無しさん
垢版 |
2023/06/10(土) 09:45:42.46ID:AfTL7rva
>>93
誇大広告
2023/06/10(土) 09:49:29.33ID:gJM3u8Zc
所有権あたり, rustの機能をC++がパクってるんだろ?
だったらrust風にC++で書くように機能制限して書かせてほぼ事足りるんじゃねーの?
Lintかコンパイル時ウオーニングで

PC上で実験的にコード書いてるならいざしらず
商用のコンパイラでrustコンパイラが存在しないのに何言っても絵に書いた餅
2023/06/10(土) 10:10:09.37ID:vaWXep+1
>>89
一理ある
2023/06/10(土) 10:16:36.13ID:hDLItfYy
Rustは商用で使うもんじゃないんだろ
100デフォルトの名無しさん
垢版 |
2023/06/10(土) 10:17:11.38ID:b5kXqP8M
このスレ見るとC++erの知能の低さにビックリするな
5ch特有の事象ならいいんだが
2023/06/10(土) 10:26:39.71ID:LvG5tJme
知能というか知識と経験が無いだけでしょう
慣れるとC++もRustもコードを書く速さはほとんど変わらない
ただし以下の差が致命的に大きい
メモリ管理やデータ競合でミスがあった時にコンパイル時にわかるRust
実行するまでわからないか実行してもレアケースは気付けないC++
2023/06/10(土) 10:34:05.91ID:gJM3u8Zc
>>100
>>101
お前らがまともな商売したことないだけだろw
レアケースなら気づかなくていいんだよww
ホスピタルグレードやらNASAやらならいざしらずだ
現実をしらないww
2023/06/10(土) 10:36:28.03ID:gJM3u8Zc
>>99

すくなくともチップメーカ謹製のrustが出なきゃ話にならんしな
cudaあたりにしてもさww
2023/06/10(土) 10:50:29.46ID:AGhlDByt
unsafeだらけのRustに何が判るω
2023/06/10(土) 10:55:54.11ID:gJM3u8Zc
それそれ
抜け穴用意しといて
というか用意せざるを得ないわけで
ありがたがってる時点でおめでたすぎるやろ

一般製品において, めったに出ないエラー or fault は
ユーザーをテスタにすればいいってこともわかってないんだよなおこちゃまは ♥
2023/06/10(土) 11:10:22.43ID:0vT5Fuhs
>>104
これが本当なら、PMの責任

C++から来たなら、unsafeの限局化は頼まれなくたってやるもんだと思うが
2023/06/10(土) 11:12:31.11ID:gJM3u8Zc
cでも商用コンパイラとgccあたりじゃコード品質最悪なんよな
せいぜい規格遵守しただけの教育用途
元ルネサスの香取裕二の解説見てよーわかったわ
そこらへんgccだとソースコード見てくれって話なんだろうが,
どれだけコンパイラのソースコート見て理解してるユーザが居るのか?っていうね
商用に使える品質にはるかに及ばないコード品質なのに
レアケースのバグに有利とかもうわけわかってねぇんだろなコイツ
2023/06/10(土) 11:14:04.07ID:gJM3u8Zc
>>106
その前にrust使った商用コード書いてないだろが
お前とこrust使った製品リリースしてるのかよww
2023/06/10(土) 11:23:12.59ID:0vT5Fuhs
>>108
たぶん誤解されてるな 俺は「C++で十分」派
Rustの成果をC++が貪欲に取り込めばいいと思ってる

MSはブートローダとなんだったかのテキスト処理あたりからRust化してみるらしいぞ
がっつりテストを持ってれば、そういうことにも挑戦できるんだろう
2023/06/10(土) 11:26:02.89ID:AfTL7rva
>>107
詳しく!
2023/06/10(土) 12:08:27.34ID:JneWu8Rj
c++はコンパイルエラーで間違ってる場所を正確に指してこないからなあ
pythonもそうだったけど今かなり正確になって来た
2023/06/10(土) 12:33:50.07ID:AfTL7rva
>>111
それはコンパイラによるのでは?
g++ + emacsでエラー箇所に正確にカーソル飛ぶよ
2023/06/10(土) 12:40:54.80ID:JneWu8Rj
g++はひどいよ
clangはマシ
2023/06/10(土) 12:59:32.61ID:AfTL7rva
>>113
clagの方が良いのかは使ってないか分からんが
g++ + emacsでエラー箇所に正確にカーソル飛ぶよ
俺の場合はemacsが読んでいるので快適なんだが
人間のおまいさんは冗長で読めてない?
2023/06/10(土) 13:24:02.11ID:fr43IUo4
>>107
>cでも商用コンパイラとgccあたりじゃコード品質最悪なんよな
どういう意味?
「商用コンパイラは別としてgccあたりじゃコード品質最悪なんよな」
のこと?
2023/06/10(土) 13:27:34.50ID:AfTL7rva
gccはLinuxカーネルのビルドに使われているのだが...
ということは史上恐らく最も普及しているOSであろう
Androidカーネルも
2023/06/10(土) 13:49:10.78ID:JneWu8Rj
>>115
自分は
商用コンパイラとGCCともに仕様満たしてるだけでろくでもないもんだと取った
そもそも文章がおかしいので何度も読み返した
2023/06/10(土) 14:01:14.28ID:JneWu8Rj
gccは最初のCバージョンが継ぎ足し継ぎ足しで30年ぐらい使われて
C++バージョンになってから10年経ってるはず

その間の仕様変遷を見るとウンコになってても不思議じゃない
2023/06/10(土) 14:17:35.17ID:fr43IUo4
>>118
Initial release: March 22, 1987; 36 years ago
2023/06/10(土) 14:20:47.41ID:LyG5WCLa
gccとくらべうる商用コンパイラってインテルのことを指すのだろうけど
数値計算の分野以外では使われてないし
数値計算もpythonで良くなったので既存のゴミコード使ってるような会社以外は必要ない
2023/06/10(土) 14:24:39.89ID:fr43IUo4
しかし、各種 物理シミュレータや、気象シミュレータで、Python なんて使い
たくなぞ。
2023/06/10(土) 14:25:10.78ID:fr43IUo4
Python 使うメリットが無いから。
2023/06/10(土) 14:31:14.05ID:AfTL7rva
アカデミアでのパイソンの普及は
まずグラフのライブラリの充実が貢献したのかな?
最近ではAI関連のライブラリやサンプルコードの充実が
効いてそうだけど
Rustも頑張ってくれ
2023/06/10(土) 14:34:53.62ID:LyG5WCLa
既存資産を使いまわせないから使わないだけで
速度的にはもはやpythonで良い
GPU使いたい場合もライブラリでカバーできるし
ちな富岳も富士通が頑張ってカリカリにチューニングされたpython使えるようにした
2023/06/10(土) 14:38:15.83ID:AfTL7rva
パイソンってコンパイラあったと思うけど流行ってないの?
流行ってないなら何で?
2023/06/10(土) 14:39:27.76ID:LyG5WCLa
ちな俺の会社ではモジュールはrust使って書いてるのだがそれを使うユーザーの人たちはみんなpython
だからpyo3というrustをpython拡張モジュールにするライブラリを使っておる
これで開発者はrust、ユーザーはpythonという夢のような仕組みが簡単に実現できるようになった
C++の利点のinteropすらrustの前ではオワコンとなった
2023/06/10(土) 14:41:54.63ID:JneWu8Rj
pythonはスクリプトに毛が生えたレベルの用途に便利
ライブラリはC++で作ってもいいからパーツをくみ上げる最後のコーディングはpythonレベルでいいんだろう
学習時間も短いんで優秀
万人のためのプログラム言語

だからここで書かれるような批判とはかみ合わない
2023/06/10(土) 14:43:04.43ID:AfTL7rva
pyo3とやらはC/C++に比べてどう優れてるの?
2023/06/10(土) 14:45:09.31ID:JneWu8Rj
本屋の言語の棚の半分ぐらいがpythonとかおかしいんだけどなあ
2023/06/10(土) 14:48:20.22ID:AfTL7rva
>>129
本を必要とする層は他のプログラム経験がない層だと思う
パイソンに総取りされているってことだね
2023/06/10(土) 14:53:14.67ID:NKtucd88
>>128
pythonモジュールからrustのモジュールを簡単にインポートできる
感覚としてはpybindに似てるかな
pybindがあるからC++使ってたのだけどもう必要ない
2023/06/10(土) 15:37:41.65ID:fr43IUo4
C++は、20年後でも割とそのままコンパイルできて動作する可能性が高いが、
Rustは難しいだろうな。特に crate (library) とかが。
2023/06/10(土) 15:40:16.20ID:fr43IUo4
pythonもバージョン違いによる動作が不安定。
ツールを使いたいだけなのに、背後でPythonやJava、Lua、node.js などが
勝手に動き出し、途中でエラーになって終わるこっとが多い。
そして、新しすぎる Python でも駄目。適切なバージョンが有る。
また、それをインストールすることで、また別のアプリや開発環境が
動作しなくなる。
rustcも似たような感じがする。cargoもLLVMも。
2023/06/10(土) 15:42:53.72ID:fr43IUo4
そして、Docker使えなどと、こちらに負担を強要してくる。
その Dockerも仕組みを理解するのが人悶着有るだろう。
また、node.js 自体が変なバージョン管理システムを持っており、それが
また大変。ディレクトリ構造が変になって、後から元に戻すのに一苦労する。
それに比べると、商用コンパイラはとてもシンプルで、環境を元に戻すのは
比較的楽。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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