X



結局C++とRustってどっちが良いの? 9traits
0001sage (アウアウウー Sacf-wVFe)
垢版 |
2023/12/08(金) 09:57:43.49ID:k3Bpg+TDa
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
「C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」

っていう雑談スレ。

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

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

関連スレ(マ板): Google&Microsoft「セキュリティバグの70%はC/C++のメモリ管理ミス。Rustにする」
https://medaka.5ch.net/test/read.cgi/prog/1619943288/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0002デフォルトの名無しさん (アウアウウー Sa21-wVFe)
垢版 |
2023/12/08(金) 09:59:08.50ID:k3Bpg+TDa
あるあるトピックス
・後発のRustは優れている(この点で特に争いはない
・といっても、C/C++から「推し変」するほどじゃない(使わないとは言ってない
・ていうか、Cとの比較と、C++との比較は違うくね?
・いくら安全っつっても、ヘタクソがunsafeだらけに書いちゃったらおんなし
・てかC++にも unsafe{ } はよ

・web方面、特に基盤部分での人気すごいね
・ChatGPTとかが賢くなる(のに賭けてる)からどうでもいい
0003デフォルトの名無しさん (ワッチョイ 8a71-yDrh)
垢版 |
2023/12/08(金) 10:07:15.12ID:0BufPgxy0
=== 複製おじさん(通称複おじ)について ===
Rustスレを中心に活動し、2023年4月現在で1年以上ム板に住み着くRustacean。無自覚な荒らし。

Rustスレでは、基本的に他住民の意見を聞いて糧とすることなく、自らのコードが最善であると、ID変更自演を交えいつまでも主張し続ける。
同スレで「所有権が複製される」という違和感のある表現を、「違和感がある」とする他住民の意見をすべて否定してしつこく擁護し続けたことから、「複製おじさん」というあだ名が付けられた。
それ以外のム板スレでは、基本的に他住民の意見を聞いて糧とすることなく、Rustこそが最善であると、ID変更自演を交えいつまでも主張し続ける。
その基本戦術は、「GC言語は遅い」の一声でC/C++/Rust以外の言語を否定し、残ったC/C++は安全ではないので、Rustが最善であるとするもの。

しかしながら、Rust以外の言語に関しては、正当な批判を展開するのに十分な知識を持っているとは言いがたい。
本スレPart1では、C++の問題点を指摘しようとして多数の誤り・知識不足を露呈することとなった。特にしつこく食い下がったのが「動的ディスパッチ」に関する誤解である。
https://mevius.5ch.net/test/read.cgi/tech/1677286186/786-799(ID:Evbafc70とID:RiLc+pIfが複製おじさんであると考えられている)
要約すると、通常「条件分岐」と呼ばれるものを「動的ディスパッチ」と呼ぶのが正しいと主張し続けたのである。
常識的にはあり得ない誤解だが、提示されたC++のコードが自らの主張(C++にはパターンマッチが無い)に不都合であると感じたためか、C++のコードを正しく読み解くことができないにもかかわらず脊髄反射的に否定してしまい、その根拠として誤った論理をこじつけてしまったものと思われる。

ちなみにこの後、同種の誤解を持って書き込むID:wHEiYRW7(これはID使用歴的に複製おじさんとは考えにくい)に対して、正しい理解に基づく指摘を行う単発IDが複数出現するが、この中にも複製おじさんが多数含まれていると考えられている。
このように自分の誤りを認識した場合、それを認める書き込みは決して行わず、別人の振りをして最初から正しく理解していた体を装うのも複製おじさんの特徴である。
0005デフォルトの名無しさん (ワッチョイ 9140-JrwL)
垢版 |
2023/12/08(金) 10:51:57.01ID:faKtyhh20
C++は全体がunsafeなのに…
0007デフォルトの名無しさん (ワッチョイ 1101-E7BN)
垢版 |
2023/12/08(金) 22:44:25.16ID:TW9tt8lZ0
>>3
複おじと言えば一文一文すべてがデタラメなこの名レスを忘れたら駄目だぞ

>ムーブでビットパターンのコピーは発生しない
>ビットパターンのコピーが発生するのは引数の値渡し等であってムーブとは関係ない
>さらに引数の値渡しでのでビットパターンのコピーとCopyのコピーも全く異なる
>Copyのコピーはディープであって高コスト
https://mevius.5ch.net/test/read.cgi/tech/1652347700/52
0010デフォルトの名無しさん (スプッッ Sd3f-kwem)
垢版 |
2023/12/09(土) 11:48:56.09ID:Vg1kZ/yWd
>>2
>・てかC++にも unsafe{ } はよ

まだこんなこと言ってる奴がいることに草
0012デフォルトの名無しさん (ワッチョイ 9f9e-tASO)
垢版 |
2023/12/09(土) 14:02:41.95ID:mK/Jf29s0
ChatGPTにCopy Traitを実装するべき場合について聞いたら、「所有権の複製」って項目が現れてワロタ
0013デフォルトの名無しさん (ワッチョイ 3701-fx95)
垢版 |
2023/12/09(土) 14:02:48.64ID:DdaPeXU00
「Copyのコピーはディープであって高コスト」以外は初心者によくある勘違いだし
勘違いから間違った内容を書いてしまうことは誰にでもあることだからまだいいのだが
繰り返し間違いを指摘されても謎の上から目線で無理筋の強弁を重ねることから荒らし認定されている
0016デフォルトの名無しさん (ワッチョイ 1701-FJ+M)
垢版 |
2023/12/09(土) 16:31:20.03ID:QPKR9yBr0
Copyのクローンは単純なmemcpyだと思っていいよ
構造体の中に別の構造体(Copy可)が埋め込まれたような型だとディープコピーに見えるけど
再帰的なコピーは必要なくて単にバイト列全体を丸写ししてる
(逆に言えばそれができない型はCopyをつけられない)
0020デフォルトの名無しさん (ワッチョイ 1701-FJ+M)
垢版 |
2023/12/09(土) 17:53:24.05ID:QPKR9yBr0
ヒープ使う型は基本的にCopyにできない(Cloneは実装可能)
構造体に1つでもCopyにできない型が含まれてたらその構造体もCopyにできない
Copyはmemcpyしても問題ない型のマーカーだと思ってもらえばいいかな
メモリをアロケートしてデータをコピーする処理はCloneの方で実装する
0024デフォルトの名無しさん (オイコラミネオ MM2b-FJ+M)
垢版 |
2023/12/10(日) 11:13:59.29ID:o2TNvwaPM
C++は、全部 unsafe と言っても、
デバッグの済んだライブラリを正しく用いて
いれば、その部分は安全。なので、関数引数の
部分だけをよくチェックすると良い。
C++の関数呼び出しは、ポインタに
関しては、型チェックが強いので
間違った呼び出し型をしていれば
コンパイルエラーになることが多い。
0027デフォルトの名無しさん (アウアウウー Sadb-g9yR)
垢版 |
2023/12/10(日) 13:08:08.29ID:1MxEINjfa
>>26
Rustも同じだろ
「間違えないように書けば正しい動作する」も間違い
「間違えないように書けばコンパイルが通る」に過ぎない
正しい動作をするかどうかは間違えないように書くかどうかとは別の問題
0029デフォルトの名無しさん (ワッチョイ 9fb9-tASO)
垢版 |
2023/12/10(日) 13:31:39.26ID:K28WR4Ds0
普段の業務も間違えだらけな奴がC++使うとか地獄か?
0033デフォルトの名無しさん (ワッチョイ 77a0-tASO)
垢版 |
2023/12/10(日) 20:06:40.33ID:e9tCAWoh0
C++もさることながら、C++とセットで付いてくるCMakeが嫌すぎる
Cargoは良いよマジで
0035デフォルトの名無しさん (スプープ Sd3f-tASO)
垢版 |
2023/12/10(日) 20:44:56.55ID:gL5uQXcVd
autotoolsはcmakeよりさらに嫌かな……
0038デフォルトの名無しさん (ワッチョイ 9f7c-kwem)
垢版 |
2023/12/10(日) 23:50:55.55ID:cB1c/r1d0
>>37
わかる
0039デフォルトの名無しさん (ワッチョイ 9f7c-kwem)
垢版 |
2023/12/11(月) 00:03:12.40ID:pB7lBER+0
>>37
ruby必要だけど、rakeコマンドいいんじゃないかなと最近気になってる。
0040デフォルトの名無しさん (ワッチョイ 9f97-L8ZV)
垢版 |
2023/12/11(月) 00:46:28.36ID:h5OL4vtk0
結局新しくて便利なものに徐々に流れる運命かなと思う
0041デフォルトの名無しさん (ワッチョイ d701-Qbcu)
垢版 |
2023/12/11(月) 00:49:37.85ID:dil4ai7q0
>>37,38
automake良いよ
makeの自由度があって依存関係の追跡もautoでやってくれる
0042デフォルトの名無しさん (ワッチョイ 7f5f-tASO)
垢版 |
2023/12/11(月) 05:20:36.20ID:osWbHCfH0
どれもこれもCargoのはるか下でどんぐりの背比べみたいな利便性の主張合戦をしてるイメージ
0046デフォルトの名無しさん (ワッチョイ d701-Qbcu)
垢版 |
2023/12/11(月) 10:28:11.52ID:dil4ai7q0
>>45
ティッピングポイントに達することはないと踏んでいるので
どうでも良いというのが正直なところ
0049デフォルトの名無しさん (ワッチョイ 9f42-L8ZV)
垢版 |
2023/12/11(月) 11:50:34.59ID:VTbbz4kY0
パッケージを再利用可能な方法で定義するという面では共通しているかもしれんが
それも重要なのはautotools自体より
configureなりMakefileなりがGNUの規約に従っているってことのほうなんじゃねえかな……
0052デフォルトの名無しさん (ワッチョイ d79d-tASO)
垢版 |
2023/12/11(月) 13:13:20.60ID:NqqqgQFY0
とっちらかりすぎで草
0054デフォルトの名無しさん (ワッチョイ 9fac-L8ZV)
垢版 |
2023/12/11(月) 13:20:04.94ID:WQVh8S/p0
一般的なことしかしない素人にわかりやすく教えてくれ教えてくれないか
CMakeどういうところがクソ?
0058デフォルトの名無しさん (ワッチョイ 1fc5-cinP)
垢版 |
2023/12/11(月) 13:46:17.96ID:PK2gC+MI0
cmakeだったらbazel使った方がまだマシだろ
0060デフォルトの名無しさん (ワッチョイ bf76-ghGO)
垢版 |
2023/12/11(月) 14:09:12.32ID:dU0p99Eo0
>>54
単体のプロジェクトならあまり困らない
しかし他のcmakeプロジェクトの取り込みとかやりだすとなかなか思い通りにいかない
言語コアが貧弱で変数すら関数が提供するというとんでもない設計
滅んで欲しい
0061デフォルトの名無しさん (スプッッ Sd3f-kwem)
垢版 |
2023/12/11(月) 14:36:59.01ID:c8C6AAotd
rake使ってる人いないの?
0063デフォルトの名無しさん (スフッ Sdbf-dxyn)
垢版 |
2023/12/11(月) 15:12:40.43ID:F74yPaG8d
>>45
教えてくださいと書いたところで議論したいわけではないなら答えは来ないだろw
0064デフォルトの名無しさん (ワッチョイ 9fac-L8ZV)
垢版 |
2023/12/11(月) 15:58:32.56ID:WQVh8S/p0
>>60
ありがとう、なんとなく理解ができた。
0066デフォルトの名無しさん (スップ Sdbf-tASO)
垢版 |
2023/12/11(月) 18:17:29.82ID:RbkbdLaQd
ビルドツール選ぶだけで議論が発生する言語嫌すぎる
0068デフォルトの名無しさん (スップ Sdbf-tASO)
垢版 |
2023/12/11(月) 18:27:31.95ID:RbkbdLaQd
JavaScriptはそもそも使っている人も含めて番人が認めるクソなので
0070デフォルトの名無しさん (ワッチョイ 9fac-L8ZV)
垢版 |
2023/12/11(月) 19:11:37.60ID:WQVh8S/p0
>>65
CMakeのインタプリタの作りが貧弱でなんでもCmake独自関数を通さないと書けないような仕様?
多種のプロジェクトを一括管理しようとすると、Cmakeでの書き方の定石みたいなのがとても面倒臭い
てな感じに理解した、どう?
0071デフォルトの名無しさん (ワッチョイ 17f0-+EJW)
垢版 |
2023/12/11(月) 19:24:08.37ID:3kN52km60
>>70
何でインタプリタが出てくるのか
本質は各プラットフォームのビルド環境を作って呼び出すだけのツール
LinuxだとMakefileを生成してmakeを実行するだけ
全然分かってないやん
0073デフォルトの名無しさん (ワッチョイ 9fac-L8ZV)
垢版 |
2023/12/11(月) 19:39:19.33ID:WQVh8S/p0
>>71
いやいや、もういいです。私の質問の流れからあなたのその回答だと的外してるし。
いわゆる揚げ足取りの人でしょ?
私はすでに転んでるから、揚げ足は取れませんよ。
ではあとは自分で調べますので。悪しからず。
0080デフォルトの名無しさん (ワッチョイ 17f0-+EJW)
垢版 |
2023/12/12(火) 00:10:31.85ID:cXX6UHZv0
この流れから行ってどちらが頭がおかしいか?は一目瞭然だと思うのだが
cmakeを一切触ったことがないにも関わらず
大体理解したとか嘘を自演しそれを指摘したらもういいと逃げ
さらに追い討ちをしたら揚げ足取りと言われる
異常行動してるのは俺かお前か
0081デフォルトの名無しさん (ワッチョイ 9fac-L8ZV)
垢版 |
2023/12/12(火) 00:27:02.66ID:22SyfmwO0
「一般的なことしかしない」とは書いたけど
一切触ったことないなんて書いてないし。

「なんとなく理解ができた」とは書いたけど
大体理解したなんて書いてない。

自己目線だけで考える癖を直したほうがいいのでは?
思わぬ間違いのもとだぞ。
0084デフォルトの名無しさん (ワッチョイ 9fac-L8ZV)
垢版 |
2023/12/12(火) 00:49:38.90ID:22SyfmwO0
ややこしい奴やな、まず頭冷やしてワッチョイを理解してこいや
0087デフォルトの名無しさん (ワッチョイ 1f9e-C3j7)
垢版 |
2023/12/12(火) 01:52:00.30ID:C12JHku00
Ruby でRubyで使う、C 拡張ライブラリを作る場合、
gemspec ファイルで、extconf.rb を指定して、rake install する

mkmfがMakefile を作成する

# extconf.rb
require 'mkmf'

create_makefile(〜)
0088デフォルトの名無しさん (ワッチョイ ffb9-tASO)
垢版 |
2023/12/12(火) 03:58:55.00ID:U9D7pFHS0
C++のビルドがRubyに依存するの、ダルすぎる
0089デフォルトの名無しさん (ワッチョイ ffb9-tASO)
垢版 |
2023/12/12(火) 04:00:42.15ID:U9D7pFHS0
あーでもRuby拡張をビルドするとき限定ならいいか
0090デフォルトの名無しさん (ワッチョイ 9f7c-kwem)
垢版 |
2023/12/12(火) 21:55:43.78ID:+XOoVak/0
>>62
いうて、今時はmakeコマンドも別途入れないといけないOSばかりだけどな
0094デフォルトの名無しさん (スップ Sdbf-tASO)
垢版 |
2023/12/13(水) 20:36:08.49ID:1orrDn1Pd
ninjaに妻子でも殺されたのかよ
0102デフォルトの名無しさん (ワッチョイ b74b-gvj7)
垢版 |
2023/12/20(水) 09:28:49.07ID:/uXb+00h0
UPLIFT プレミアム・サービスのお知らせ

https://uplift.5ch.net/

UPLIFT 主な特典
・連続投稿の規制を緩和します。
・スレッド作成時の規制を緩和します。
・5ch.netのスレッド表示画面に表示される広告を除去します。
・5ch.net専用ブラウザで5ch.netの過去ログを閲覧できるようになります。
・海外からのアクセス・ホスト経由からでも書き込みができるようになります。
・書き込みが規制されているプロバイダーからでも書き込みができるようになります。
・5ch.netを安定して利用できるように運営を支援できます。

5ちゃんねるを存続させるためには、皆様のご協力が必要です。

最後まで御精読いただきありがとうございました。
0103デフォルトの名無しさん (ワッチョイ ffac-hEBs)
垢版 |
2023/12/23(土) 01:33:05.14ID:7Wmzzd4u0
ワッチョイ付いたらこの静けさ・・・ちょい笑う。
あの雄弁・熱弁どこへやら
0104デフォルトの名無しさん (ワッチョイ 7f9d-FloO)
垢版 |
2023/12/27(水) 09:39:48.07ID:5O7EyiI60
あちこち渡り歩いた挙げ句結局予想通りになったか

889: デフォルトの名無しさん sage 2023/12/05(火) 14:23:46.88 ID:4UYj/sQ8
ワッチョイ立てたってところで結局また次世代言語スレと同じ流れになってRustスレに帰ってくるんだろ
0107デフォルトの名無しさん (ワッチョイ b198-NoMX)
垢版 |
2024/01/04(木) 14:42:38.73ID:TjW08FZT0
Rustが再評価される:エコシステムの現状と落とし穴
https://www.infoq.com/jp/articles/rust-ecosystem-review-2023/

Rustチームの調査によると、サーバーサイド(バックエンド)のプロジェクトがRustの主要な技術領域であることが明らかになった。クラウドコンピューターのインフラとアプリケーションもRustを適用する大きな分野であり、分散アプリケーションもRustコミュニティの間で人気のある選択肢である。

Linuxはもっともターゲットとされているプラットフォームである(77%、Windowsは約41%、macOSは36%)。WebAssemblyは22%で、組み込みシステムは11%しかターゲットにしていない。モバイルアプリケーションでのRustの利用は、ほとんど無視できるほど少ない。

Rustチームの調査参加者の38%は、Rustは他のプログラミング言語よりもプログラミングがかなり複雑であることに同意している。62%が、習得にかなりの労力を要すると回答している。彼らはまた、Rustがさらに複雑になっていくことを心配している。これは、調査参加者の間でRustの将来に対する懸念として2番目に多かった。

80%以上のRust開発者はプロファイリングツールをまったく使っていない。その理由の1つは、現在利用可能なツールが非常に使いにくく、その結果を解釈するのが難しいからかもしれない。プロファイリングに焦点を当てた教材もほとんどない。開発者は、Rustのパフォーマンスを実際にチェックすることなく、盲目的に信じて満足しているようだ。このような姿勢は、業界でRustの採用が進むにつれて、重大な問題になる可能性がある。プロファイリングツール自体も学習教材も、改善のための真剣な取り組みが必要だ。

RustはC/C++キラーであるという当初の認識は、現在では適切ではないことが示唆された。既存のコードベースにおいて、C/C++のコードが大規模に置き換わっているという証拠はないし、将来そうなるとも予想されていない。なぜか?それは、CとC++の両方が機能し続けているからだ。C++は進化しており、長年の問題が解決されつつある。すべてをRustで書き直す必要はない。さらに、それを行うだけの労働力もない。
0112デフォルトの名無しさん (ワッチョイ b954-0rOl)
垢版 |
2024/03/18(月) 22:25:05.67ID:JU7bg8Ve0
「ソフトウェアはメモリ安全でなければならない」との声明を発表、米ホワイトハウス:「C」「C++」よりも「Rust」などの言語を推奨
https://atmarkit.itmedia.co.jp/ait/articles/2403/18/news045.html

報告書ではメモリ安全性について「メモリ安全性が保たれていないと、意図しない方法でメモリへのアクセス、書き込み、割り当て、または割り当て解除が行われる可能性がある」とし、メモリの安全性を保つ特性を欠くプログラミング言語として「C」「C++」を挙げた。

また同時に「メモリの安全性の脆弱性を軽減する最も効果的な方法は、サイバースペースの構成要素の一つであるプログラミング言語を保護することだ。メモリ安全なプログラミング言語を使用すると、ほとんどのメモリ安全性エラーを排除できる」とし、「Rust」などのメモリ安全性の高いプログラミング言語の使用を推奨した。
0114デフォルトの名無しさん (ワッチョイ 92ac-663q)
垢版 |
2024/03/24(日) 18:33:15.48ID:DH6gj0bx0
増改築繰り返した古城に住むより、新築のSECOMの家ってこった。
0120デフォルトの名無しさん (アウアウウー Sa83-TxeL)
垢版 |
2024/04/21(日) 15:56:53.99ID:aDRU4soda
Rust は C++ に比べて namespace 忘れる心配が減るが
use hoge::*; をやりがち
pub use fuga::*; もやって楽しくなる
0123デフォルトの名無しさん (ワッチョイ 467f-gkTK)
垢版 |
2024/04/23(火) 03:49:15.78ID:nQXEdxOh0
ボイス・トォ・スカル/マイクロ波聴覚効果
これらに関するモノが表に出ないのは下記が原因

スラップ訴訟
>>ある程度の発言力や社会的影響力のある、社会的に優位といえる立場の者が、特に発言力や影響力を持たない相対的弱者を相手取り訴訟を起こすこと。
巨大IT企業から「法的措置をちらつかせる停止通告書」を受け取った場合の対処方法とは?
https://gigazine.net/news/20240201-deal-cease-and-desist-big-tech/
>>「Cease and desist(停止通告書)」とは、著作権侵害やその他の違法行為を犯していると思われる相手に対し、その行為を停止せずに続ける場合は法的措置を取ると警告する通知のことです。
>>巨大テクノロジー企業は個人の開発者や研究者に対して停止通告書を送り、自分たちにとって不都合なサービスの開発や研究を止めさせようとすることがあります。

伝二派や音波や磁場などに関する論文を一般人がつなぎ合わせて世界中に周知っ徹底すれば主の手の研究所が研究可能になる
一般の人が使用できるように企業が製品化してくれる
現在裏で使用しているので本物か偽物かが不明なので確実に本物という品を使用できる
一般の者はすり替えられても機器が本物かが不明でしょう
消費者省に訴えれる

一定以上の一般人がそういったものがあると認識すれば器機使用者もだれを見ればよいか不明になる
本物の器機使用者のランニングコストが重荷になってくる

霊感商法
電磁波過敏症や低周波騒音被害はプラセボ効果とレセプト効果に置き換えれる
0125デフォルトの名無しさん (アウアウウー Sa83-TxeL)
垢版 |
2024/04/25(木) 15:02:27.15ID:VKvfdxmpa
Cargo の fetch がマジうざい
一日一回必ず遅くなるωωω
0126デフォルトの名無しさん (アウアウウー Sa83-TxeL)
垢版 |
2024/04/25(木) 15:07:45.03ID:VKvfdxmpa
>>118
河野タローみたいな言い分だな
レスを投稿する


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