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

■ このスレッドは過去ログ倉庫に格納されています
2023/10/28(土) 13:45:00.38ID:fh9BWjjr
「C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」

っていう雑談スレ。

・C/C++ <=> Rust いまさら聞けない移行質問なども適当にどぞ
・レスバはじめんのは勝手だけど、面白いこと・へぇなこと書いたヤツが優勝
・マな話は、マのスレもご活用ください↓

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

関連スレ(マ板): Google&Microsoft「セキュリティバグの70%はC/C++のメモリ管理ミス。Rustにする」
https://medaka.5ch.net/test/read.cgi/prog/1619943288/
128デフォルトの名無しさん
垢版 |
2023/11/05(日) 17:32:34.60ID:vp0BWznn
>>127
その浮動小数点型ってどんなもの?
インターフェースじゃないんだよね?
129デフォルトの名無しさん
垢版 |
2023/11/05(日) 19:27:50.24ID:aeGT2yJ/
>>116
自分に都合の良い言語のみ列挙する
まさにザコ
自分の考えが無い
2023/11/05(日) 19:50:12.60ID:o9vKIGF+
>>129
同じくらいたくさん反例を挙げようよ
2023/11/06(月) 04:14:47.70ID:m6bVjB7O
>>130
そんなことよりこのクソスレ立てたのもお前?
https://mevius.5ch.net/test/read.cgi/tech/1693054853/
2023/11/06(月) 08:09:26.10ID:Cot/SbpY
募集してんのか、大胆だな!
133デフォルトの名無しさん
垢版 |
2023/11/06(月) 10:12:15.79ID:48qtdwXc
Rustとの相性で言えば
Rust+Pythonはかなり良い
Rust+Cが最強
Rust+C++は最悪

Nimとの相性で言えば
Nim+Pythonはとても良い
Nim+Cが最強
Nim+C++も最強

Nimの勝ち
2023/11/06(月) 10:16:59.00ID:UjpY0LiG
>>129
自分はなにも例を挙げられないの?
それでよく人を批判する気になれたね
135デフォルトの名無しさん
垢版 |
2023/11/06(月) 14:46:38.23ID:DT4BUOTR
テンプレートパターンやるにしても今は継承よりもクロージャで渡す方がわかりやすいって話やね。
まあどっちにしろ低レイヤー言語だとオブジェクトの解放タイミングとか気にしてめんどくさくはなるが。
2023/11/06(月) 14:50:37.11ID:mJLQiI1M
Nimちゃんに行くわ
RUSTとかクソゲーみたい
2023/11/06(月) 15:23:25.15ID:X0T3Y72w
C++/Rustと比べて何もかも劣るNimは選択肢に上がることがない
138デフォルトの名無しさん
垢版 |
2023/11/06(月) 18:05:43.27ID:BlmWAswu
>>134
そもそも流行りの話自体何の根拠にもなってないんでこの話自体無意味
無意味な話は時間の無駄
2023/11/06(月) 18:18:33.08ID:mZ9CqDyY
C++は仕様などがugly
Rustはbeauty
2023/11/06(月) 18:45:27.89ID:Yw0Fs1sT
>>138
お前もかなりのザコだぞ
2023/11/06(月) 19:58:38.94ID:2NClhQZD
>>137
文法はNimの圧勝。
2023/11/06(月) 21:52:22.89ID:xwaCKIbt
Nimの唯一のメリットがPythonに似た文法と言われているが
このスレの住人はそれをメリットと感じない
143デフォルトの名無しさん
垢版 |
2023/11/06(月) 22:00:03.84ID:juqSJt+O
何でお前が住人を代表してるの?w
2023/11/06(月) 22:14:50.32ID:BFZIHaDs
複オジ代表チーっすw
2023/11/06(月) 23:09:22.63ID:m6bVjB7O
まあ複おじ隔離スレなんだから代表は複おじでいいんじゃない?
2023/11/06(月) 23:55:02.14ID:X0T3Y72w
>>141
インデントではなく波括弧でブロックを表すのが好まれている多数派
2023/11/07(火) 07:52:40.08ID:Z7KocuHY
>>146
c世代はそうだけど、pythonユーザーの方が多い現在はインデントブロックの方が主流。じゃなきゃYAMLとか流行らん。
LISPも丸括弧使ってるけどインデントブロック風の整形しているし、波括弧ブロックが多数派とは思えん。
2023/11/07(火) 09:16:54.55ID:YntbMeAj
詭弁 - Wikipedia
https://ja.wikipedia.org/wiki/%E8%A9%AD%E5%BC%81
2023/11/07(火) 09:19:09.61ID:YNljO5VY
>>147
どさくさに紛れてYAMLを流行り扱いすんなやww
150デフォルトの名無しさん
垢版 |
2023/11/07(火) 09:23:10.10ID:pJrSerDn
Pythonみたいなインデントずれたら明後日の動きする様な言語は欠損言語だろ
2023/11/07(火) 09:32:16.68ID:IkuZHVo7
「Linux」メンテナーの燃え尽き症候群問題--業務内容の変化と支援の必要性
https://japan.zdnet.com/article/35210969/

Corbet氏は「Rust」言語がLinux開発で採用されたことについて歓迎しているものの、これによってメンテナーにさらなる負担がかかるようにもなるとした。同氏は、「カーネルメンテナーを務める以上、Rust言語で記述されたコードのマージ依頼も受け取ることになるため、同言語に対する極めて深い知識が必要となる(中略)既に多忙を極め、自らの仕事量に圧倒されているメンテナーに対して、この新言語の学習を求めるのは酷というものだ。このため、この点は今後、問題となりそうだ」と述べた。
2023/11/07(火) 09:58:24.32ID:KQXk8Lyc
>>147
インデントに整形以上の意味を持たせた言語の方が好まれてるかどうかの話をしてるのに
他の言語でもインデントで整形してることを根拠にしても意味ないだろ
2023/11/07(火) 10:27:17.78ID:sAtxR3nB
インデントより会話の論点を揃えないとな
2023/11/07(火) 10:45:48.18ID:S2z7fl4T
whitespace significantな言語はプログラミングの素人にとっては多少読みやすいというメリットはある
しかしそれ以外はデメリットだらけなので素人を釣りたい場合を除いて採用するメリットがない
155デフォルトの名無しさん
垢版 |
2023/11/07(火) 10:53:19.67ID:sYaGJjSb
リモートワーク制度が削減・廃止されたら「転職や別案件を探す」が4割--
「Offers」登録者調査

ITエンジニア/デザイナーの副業・転職サービス「Offers」を提供するoverflowは、
同社が運営する「Offersデジタル人材総研」にて「リモートワーク実態調査2023」
を公表した。
これによると、リモートワークになり、5人に1人が引っ越したと回答した。そのうち、
現職でリモートワーク制度が削減・廃止された場合、「転職や別案件を探す」という
回答が44.0%にものぼった。一方「会社と交渉する」という回答は40.0%、
「引っ越さず受け入れる」が12.0%となった。
さらにリモートワークを希望している理由として「通勤時間が無駄だと感じている」が
87.7%でトップとなった。このほか「個人の時間ができる」(62.3%)、「副業を続け
やすいから」(39.6%)、「子育てができる」(35.8%)と続いた。
2023/11/07(火) 16:44:22.56ID:K3Q4DPSx
> Pythonみたいなインデントずれたら明後日の動きする様な言語は欠損言語だろ
ほんとこれ
> インデントより会話の論点を揃えないとな
ほんとこれ
157デフォルトの名無しさん
垢版 |
2023/11/07(火) 16:48:16.87ID:r4VgdGvO
>>150
ずれたら思ってない動作になる場合があるのは確かだが
ずれることがめったに起こらない
2023/11/07(火) 17:52:17.78ID:yNm6SVJF
正直食わず嫌いなんだが、あのインデント式、慣れない悪寒しかしない
yaml書かされるけど、おっかなびっくりだわ
2023/11/07(火) 18:32:13.35ID:WwhMyV/o
ifとかforがネストしてるときに論理構成変えたときに
ぐちゃぐちゃになったりしないの?
2023/11/07(火) 19:03:13.54ID:nOWHHYht
コピペした時困るのはあるけど
そんなネスト深いところにコピペする時点でコードが終わってるのだろう
161デフォルトの名無しさん
垢版 |
2023/11/07(火) 19:24:21.76ID:RqjiUzBc
あっちのファイルはスペースで、こっちのファイルはタブでそれぞれインデントしてるとかw
更に同じファイル内でスペースとタブが混在したインデントしてるとかw
2023/11/07(火) 21:26:08.28ID:cNgR9CBR
シープラの文法が醜いってとこまで合意できてるってことでいいかな
2023/11/07(火) 22:35:55.75ID:irgQLNGX
>>162
ダメなのはNim
2023/11/07(火) 23:28:55.99ID:hgNhDI9g
長いだけあって、いくらでも悪く書ける
2023/11/07(火) 23:29:26.17ID:zgo9bT4J
>>151
>メンテナーに報酬を支払おうというところはほとんど「ない」のだ
メンテナーほぼ金貰ってないのかw
壮絶な時間の無駄だな
linuxなんて潰れちまえ
2023/11/07(火) 23:40:27.67ID:laLhHNQt
>>162
インデント構文はその醜さを完全に理解した親切な人が書くとわりとマシに読めるって話なら同意できる
2023/11/08(水) 07:17:12.54ID:W3To02R9
>>163
Nimの文法が駄目ならRustは産業廃棄物だな。
2023/11/08(水) 09:28:37.50ID:G1poaB6X
>>167
最初からそう言ってますよね
2023/11/08(水) 10:02:49.03ID:RamzJ36x
>>165
Linuxなんて無料だから普及したってだけだし
無名の大学生が作った有料カーネルなんか誰が使うかよ
2023/11/08(水) 10:07:20.75ID:QixgdFmt
Rustが最も美しいけどC++に比べたらPythonの方がまし
2023/11/08(水) 10:21:07.20ID:rqy+WU7a
cppは汚らしい
2023/11/08(水) 10:34:17.23ID:K2ksJD7C
あれがいいんだぞ

でも、template<>のごちゃっとしてるのは苦手
2023/11/08(水) 10:49:02.95ID:MFNjLgBF
NimはPython由来の文法が多い中でprocヘッダーの区切りをわざわざ=記号にしたのは何でなの?
2023/11/08(水) 11:13:52.74ID:U7ghqgyy
痘痕もエクボっていうしずっと使ってると美しく見えるのかもしれん
始祖のハゲ散らかしもイケオジに見えるのかもしれん
175デフォルトの名無しさん
垢版 |
2023/11/08(水) 11:26:24.47ID:088wzVve
>>173
macro
2023/11/08(水) 12:07:42.23ID:fBbSHd4U
>>175
関係ないやろ
2023/11/08(水) 13:10:09.47ID:l0v/WxBk
>>169
BSD
2023/11/08(水) 14:09:53.13ID:qh/Yreq5
Nimは継承あるじゃん
だれか突っ込めよ
複オジ嘘つき放題じゃねーか
2023/11/08(水) 14:45:54.44ID:7EPaeHp0
Nim使ってる時点でセンスがないからな
2023/11/08(水) 15:29:55.01ID:9/Sq9IWJ
Nimはクラスがないため当然クラス継承もない
2023/11/08(水) 15:41:40.86ID:hsKTrqcL
このスレの半分は複オジのウソで出来ています。
用法・用量を守って正しくご使用下さい。
2023/11/08(水) 15:50:23.42ID:J3/ZiO6G
複おじってニートでしょ?
なんか我々と対等に喋れること自体がとんでもない体験なんだし
もっと感謝して欲しいね
183デフォルトの名無しさん
垢版 |
2023/11/08(水) 17:01:15.09ID:wMkAKLer
C++er的にC23ってどうなの?
2023/11/08(水) 17:32:19.27ID:K2ksJD7C
#embed はあると安心 ないとやっぱり一手間かかる
clangではできてたっぽいけど(VC派
2023/11/08(水) 17:35:31.79ID:orrrVPZ2
>>180
www
2023/11/08(水) 18:12:04.23ID:J3/ZiO6G
>>180
クラス継承だけが継承ではないのだけどね
2023/11/08(水) 19:11:51.53ID:BxyJgb4P
有害とされているのはクラスの継承
それ以外の継承はあってもいい
188デフォルトの名無しさん
垢版 |
2023/11/08(水) 19:13:26.39ID:mR96+8QE
>>182
とニートが申しております
2023/11/08(水) 20:13:44.98ID:ow8V8oTj
有害なのは多重継承では?
単一継承はいいでしょ
2023/11/08(水) 20:15:54.45ID:dNhK+uJb
綺麗に書けるならという条件がつく
本来、綺麗に階層化するのが目的だったのが、どうしてもごちゃついてしまう
基本にして難 それが継承

って感じでいい?
2023/11/08(水) 20:28:47.14ID:dEbgw7JQ
>>189
大抵は駄目。
継承は「インターフェイスの共有」という外部との契約と、「実装の共有」という内部との契約をごっちゃにしているから、すぐに設計がごちゃごちゃになる。

内部と外部は明確に分離したほうが手間がかかるが問題になりにくい。
2023/11/08(水) 20:35:51.69ID:57OVemIO
クラス継承では複数の機能を継承したくなった時に多重継承が起きてしまう
多重継承を避けるには使うすべての機能を巨大なツリー関係に押し込める本末転倒な事態になる
2023/11/08(水) 20:37:37.21ID:5gc/7Ny5
>継承は「インターフェイスの共有」という外部との契約と、「実装の共有」という内部との契約をごっちゃにしている
Nimの継承にも同じことが当てはまるけど
Nimにはクラスはないから有害じゃないという主張でいいのかな?
2023/11/08(水) 20:53:57.66ID:7EPaeHp0
>>189
そのレベル浅い知識ならおそらく「SOLID原則」を知らないでしょ
勉強しな?
メンテや機能追加を繰り返してるとどうしても内部構造が腐敗していくものよ
2023/11/08(水) 21:01:44.80ID:dEbgw7JQ
>>193
理想は継承なしの共通インターフェイス。継承自体いらん。

原理的には同じメソッドを持つのならどんなインスタンスでも同じインターフェイスで扱えるから、継承を使って扱えるインターフェイスを制限するのは「早すぎる最適化」としかいえん。
196デフォルトの名無しさん
垢版 |
2023/11/08(水) 21:07:15.90ID:5ONqWRVX
多重継承って本当に悪か?
多重継承を使う前に周りに悪って教え込まれたので
これまで本格的に使ったことはないのだが
みんなは酷い目にあったことあるかい?
敢えて「多重継承=悪」思考停止論を提起したい
2023/11/08(水) 21:20:08.15ID:orrrVPZ2
有用なものを何も生み出せない
目的と手段を履き違えた無能たちの知識バトルロワイヤル
198デフォルトの名無しさん
垢版 |
2023/11/08(水) 21:23:09.85ID:wwLvTPFi
現在動作してる過去のシステムを捨てるわけにいかない状況で、新しい共通システムを書くには継承がいいと思うけど
どうなんでしょう?素人考えなんですけど。
2023/11/08(水) 21:23:13.22ID:WEquhdeD
オブジェクト指向のメリットってホントにメリットなんだろうか?
200デフォルトの名無しさん
垢版 |
2023/11/08(水) 21:35:45.96ID:JLAEJM24
>>199
モジュール分割の方法を広げるっていうメリットはある。
カーネルドライバー部分はオブジェクト指向した方がいいって、否定派のlinusも認めてる。
2023/11/08(水) 21:56:55.44ID:cf3mLuef
オブジェクト指向 ⊃ クラスの使用 ⊃ クラス継承の使用

オブジェクト指向自体は問題ない
クラスの使用も継承を用いなければ問題ないが
クラスと他との違いはクラス継承にあるように本質がその継承機能にあるため
クラス自体を無くしたプログラミング言語が最近は多数派となった
202デフォルトの名無しさん
垢版 |
2023/11/08(水) 22:24:24.52ID:5ONqWRVX
>>201
全部マイナー言語じゃん
支持されてないんだよ
2023/11/08(水) 22:32:30.66ID:5gc/7Ny5
>>195
全く答えになってない
Nimの継承は君が主張している有害な継承に該当するのか否か?
2023/11/08(水) 22:52:12.05ID:W3To02R9
>>203
「継承自体いらん」と書いているだろ。

shared_ptr<function<T>>のTがインターフェイスになったのがあれば継承自体いらん。
2023/11/08(水) 23:04:09.93ID:08jT+y3p
>継承は「インターフェイスの共有」という外部との契約と、「実装の共有」という内部との契約をごっちゃにしている
もう一つ付け加えると↑これはデフォルト実装のあるTraitやインターフェースにも同じことが当てはまる
でもインターフェースのデフォルト実装を有害と言う人は少ない
なぜだろうね?
206デフォルトの名無しさん
垢版 |
2023/11/08(水) 23:45:38.02ID:wMkAKLer
特殊事情持ち出して一般論を語るな。
例外的なのが無いとでも思ってるのか
2023/11/08(水) 23:46:51.04ID:dNhK+uJb
最初はきれいなんだよ、最初は
2023/11/08(水) 23:59:18.59ID:57OVemIO
>>205
Rustのtraitはデータ(メンバー)とは切り離された設計になっているから
デフォルト実装自身がデータ(メンバー)にアクセスできない点で違うんじゃないか
209デフォルトの名無しさん
垢版 |
2023/11/09(木) 11:54:56.82ID:Fo7n9qIp
>>196
iostream観たら判るし
210デフォルトの名無しさん
垢版 |
2023/11/09(木) 12:57:22.06ID:vs5NVBb2
>>194
SOLIDは名前しか知らないがライブラリのクラスを拡張するときは継承あると便利だけどな
コンポジションだとゲッターかプロパティでライブラリクラスのオブジェクト取得しないといけないし面倒じゃない?
2023/11/09(木) 15:49:49.48ID:Nh0igmG8
>>210
その継承やらインターフェースの設計をうまくやるためのパターンがSOLIDだよ
これを知らずに継承使ってるやつは大抵ゴミコードを量産してる
2023/11/09(木) 16:57:59.50ID:vs5NVBb2
>>211
ゴミコードは沢山書いてきたが継承使う時はほどほどにしてるからな
あまりゴミ化はしたことないな
SOLIDは概念が難しかったがこれって継承の複雑さが出ちゃってるね
継承はもっとシンプルに使わないと
2023/11/09(木) 17:02:28.18ID:Nh0igmG8
>>212
継承がなければSOLIDなんてほぼ考えなくて良いからね
「インターフェース分離の原則」あたりさえ気にしていれば問題ないし
モダンな言語ならインターフェースは言語のコアとして搭載されてる
継承を無くすることでSOLID原則みたいな面倒なことを考えなくても良いし
コードもシンプルになるしメリットしかない
だから最近の言語では継承がない
これがモダンな言語では継承が存在しない理由
2023/11/09(木) 17:17:08.18ID:wF5VsxRz
>継承がなければSOLIDなんてほぼ考えなくて良いからね
おいおいw
揃いも揃って何なんだここは
2023/11/09(木) 17:41:32.22ID:Nh0igmG8
>>214

ほぼ継承に関する問題を解決するための原則だぞこれは
2023/11/09(木) 17:53:14.45ID:apZquDee
Lだけだろ
2023/11/09(木) 18:02:47.11ID:Nh0igmG8
S 継承がなければ単一にしかなりようがない
O 継承がなければ勝手に追加も削除も容易
L 継承がなければ置換もクソもない
I 継承がなければインターフェースなんていくらでも分離できる
D 言わずもがな

継承があるからこの原則は生きる
つまり継承の悪い部分を避けるための
オブジェクト指向の原則

その知識は何のためにあるのか?
きちんと自分の頭で考えよう
それが知恵というものだ
2023/11/09(木) 18:06:49.12ID:Nh0igmG8
オブジェクト指向の全ての悪は継承にあり
DIなんかもこの悪を退治するための刃だ
継承こそがソフトウェアをゴミ化し
変更をしにくくする悪魔👿なのだ
この事実を誰も指摘してないことは驚愕に値する
オブジェクト指向はオワコンとかいう人に限って何が悪なのか明示的に指摘できていない
2023/11/09(木) 18:07:38.95ID:Nh0igmG8
俺ははっきりと言う
継承こそが全ての間違いの始まりだと
2023/11/09(木) 18:09:54.14ID:Nh0igmG8
はるか昔「オブ脳」という概念があった
全てをオブジェクト指向で考えようというものだ
まずベースクラスを考えて〜
いやちょい待ち
その発想がまず間違っている
なんでベースクラスを最初から考えられると思った?
そんなことは神でもできない
そのようなオブ脳🧠こそゴミエンジニアへの入り口
幸いモダンな言語は継承を排除した
英断だと思う
2023/11/09(木) 18:13:43.54ID:Nh0igmG8
モダンな言語に置いては
インターフェース(トレイトとか制約とかプロトコルとか言語によって名前は違うが本質は同じ)
ありきで考える
言語のコアもインターフェース前提で設計されている
誰もベースクラスガーとか考えない
まずインターフェース考えよ、となる
そしてそのインターフェースを満たすための構造を考える
こうすることでデータがシンプルになり
頭を悩ますことが減る
これは業務ロジックでも同じ
インターフェースから考えよ
2023/11/09(木) 18:24:54.65ID:46vHv3J3
solidが面倒ってのもよくわからんな
2023/11/09(木) 18:28:01.90ID:GxZAPNre
このスレの半分は複オジのウソで出来ています。
用法・用量を守って正しくご使用下さい。
2023/11/09(木) 18:41:12.35ID:hICX9By2
「それは、継承から始まった。」っていう世代の資産がまだまだあるからね

自分用には、継承を、きれいに書けるようになりたい
C++から逃げるな
2023/11/09(木) 19:19:30.86ID:Jqv+rt1P
継承を綺麗に書けないバカの断末魔ww
2023/11/09(木) 19:22:43.00ID:Nh0igmG8
断末魔で結構
継承カッケーと思ってるエンジニアにどどいてくれ
2023/11/09(木) 19:23:51.89ID:Nh0igmG8
ソフトウェア業界における設計失敗2選
1.ヌルポ
2.継承
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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