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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2023/02/25(土) 09:49:46.74ID:VRyB88xR
C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな?
2023/03/14(火) 02:06:25.73ID:nARWep6y
>>267
同意
std::shared_ptrもLoki::SmartPtrみたいに
テンプレートパラメータで切り替えできれば良いのにね
ただしstd::shared_ptrを規格に入れた時点で
既にboost::shared_ptrもLoki::SmartPtrもあったことを考えると
参照カウンタが競合する機会はほとんどないという見立てで
実装を単純化したのかなと予想する
誰か経緯を知らんかな?
2023/03/14(火) 02:13:23.45ID:nARWep6y
苦肉の策としては
#include <memory>
#define BOOST_SP_DISABLE_THREADS
#include <boost/shared_ptr.hpp>
template <typename T> using Arc = std::shared_ptr <T>;
template <typename T> using Rc = boost::shared_ptr <T>;
2023/03/14(火) 02:59:21.97ID:u9OB+g2b
shared_ptr単独では完全なスレッドセーフではない、という問題もある。
shared_ptrで排他制御される対象はreference counterの増減だけであり、指している値の読み書きはもちろん排他制御されない。
したがってshared_ptrはスレッドセーフだから安心だと誤解していると、危険なプログラムが出来上がるリスクがある。
C++ではプログラマーがこれらの誤解や見落としやミスを全くしないことを求められ、それに依存するためプログラムの安全品質は危うい。

Rustではその点も安全で、Arc<T>はTへの書き込みが出来ないため、排他制御の問題は起きない。
書き込みしたいならば、Arc<Mutex<T>>やArc<RwLock<T>>など必要となる排他制御の種類に合わせて選び、組み合わせて利用する。
それら組み合わせにより、Tへの書き込みができるようになるが、必ずロックで排他制御されるため問題は起きない。
たとえプログラマーが見落としやミスや使い間違えをしても、Rustコンパイラがエラーを出し、該当箇所を教えてくれるため、常に安全性が保証される。
2023/03/14(火) 03:15:26.07ID:nARWep6y
>>270
Mutex <T>を書けば良いのではないかな?
2023/03/14(火) 03:19:38.24ID:nARWep6y
>>270
>shared_ptrで排他制御される対象はreference counterの増減だけであり、指している値の読み書きはもちろん排他制御されない。
>したがってshared_ptrはスレッドセーフだから安心だと誤解していると、危険なプログラムが出来上がるリスクがある。
想定してるレベルが低すぎる
マルチスレッドで書くやつにそんなやつはいない
議論が無理やり過ぎ
2023/03/14(火) 03:33:56.57ID:u9OB+g2b
>>272
その件に限らずすべてにおいて、勘違い、見落とし、ミスなどは発生する。
複雑化したときにmutex忘れも、shared_ptr忘れも、間違えてunique_ptr使いも、その他のミスも、何でも実際に起きている。
Rustではそれらが起きてもコンパイラが通さないことで、常に安全性が保証され、無駄なデバッグを避けられる。
C++では無駄なデバッグを招くか、もしくは、そのままリリースしてセキュリティの穴が生じてしまう。
現実にC++が多数の問題を引き起こしてきた。
2023/03/14(火) 12:05:32.83ID:CPf3ZEOa
暇を持て余すニートの日記
2023/03/14(火) 12:21:44.83ID:nARWep6y
>>273
「Rustはコンパイルが通っていればマルチスレッドで
競合問題が起きないことが保証される」
これで正しい? 正しいとすれば
マルチスレッドを習得したときの苦労を考えると有用なので
新しくプログラミングを始める人には勧めたい動機になる
俺自身は困ってないので使おうとはあんまり思わんけどね
276デフォルトの名無しさん
垢版 |
2023/03/14(火) 12:39:04.29ID:RkFbHwTA
Rustが流行るとすればどの分野になるんだろうか?
一番は安全装置とかに使われる小規模な組み込みソフトかな。
CPUとか開発環境とかがまだ整ってないだろうから、ゆっくりだと思うけど
2023/03/14(火) 12:50:59.56ID:nARWep6y
普及するのにはキラープロダクトが必要
UNIX(C)やMFC(C++)や.NET(C#)のように
大手がプロダクトに採用してトップダウンで流行らせるしか
普及の道はないと思う
ゆっくり普及なんてのはないと思う
2023/03/14(火) 19:34:32.70ID:/poSvH9Z
Visual Studio Rust .Netがでるまで待とう
2023/03/14(火) 19:40:00.62ID://qYwEcn
あらためてJavaって良い言語だなって思うわ
ここ十数年だと人類一番の功績じゃね

良い点:
シンプルさ。C#で言う値型を入れようかどうか迷ったときもあったんだろうけど(想像)、
プリミティブと参照型変数の二個だけでやってくという線引がセンスある。

悲しい点:
立てまし。個人的にはジェネリクスもいらんかった。
C++のテンプレートを潔く排除して出てきたのすごいすっきり感あった。
でもあとでジェネリクスは押し負けて?付いてきちゃったけど。
あと貧相な貧相なラムダ式。クロージャを期待したけど結局はanonymous classのといっしょ。

異論は無いと思う
2023/03/14(火) 22:31:24.61ID:CPQICLea
>>275
Rustはマルチスレッド時でもマルチタスク時(=グリーンスレッドをRustではタスクと呼ぶ)でも
データ競合を起こさないことが静的に保証されている
唯一のプログラミング言語
281デフォルトの名無しさん
垢版 |
2023/03/14(火) 23:07:45.86ID:5gRl/D4e
んなわけねえだろ
2023/03/14(火) 23:17:29.22ID:CPQICLea
>>281
Rust以外の言語があるならば教えて
2023/03/14(火) 23:54:49.43ID:AgG33ThB
Ownershipの元ネタのCycloneはやってねーのけ?
284デフォルトの名無しさん
垢版 |
2023/03/15(水) 02:10:25.53ID:itMePwRG
Rust、コンパイル遅いっていうけどどれ程なの?C++と比べて遅い?
2023/03/15(水) 02:53:43.28ID:aLgn/lBf
コンパイル後の実行デバッグ時間が激減したのでトータルで要する時間は減少した
2023/03/15(水) 03:26:18.55ID:DXTHIxnh
現状はバカがイキる為だけに持ち上げられるRust
万一普及したとしてバカが使いこなせるはずもなく
287デフォルトの名無しさん
垢版 |
2023/03/15(水) 07:08:24.89ID:SNoM8taV
今まで C++ で制御して成功率 99.99% だった
ロケットをわざわざ Rust で描き替えて墜落しても
Rust は悪くない悪いのは GC のせいだと言い張るのが
Rust 信者
288デフォルトの名無しさん
垢版 |
2023/03/15(水) 09:03:13.60ID:n0l+w21l
>>277
Android(Java)
iOS(Objective-C++)
2023/03/15(水) 09:51:38.96ID:d2iGalsS
ロケットでGCは無いわ
2023/03/15(水) 10:13:26.89ID:aLgn/lBf
>>287
C++もRustもGCないよ
2023/03/15(水) 10:52:34.36ID:d/hulDPr
プログラミング言語「Rust」は世界のセキュリティレベルを底上げする
https://wired.jp/article/rust-secure-programming-language-memory-safe/

Androidでは今、暗号鍵を管理する機能の多くがRustで書かれているとGoogleのクライダーマーカーは話す。
たとえば、暗号化したインターネット通信の機能である「DNS over HTTPS」、新バージョンの超広帯域無線(UWB)チップスタック、
そしてグーグルの独自のチップである「Tensor G2」で使用される新しい「Android 仮想化フレームワーク(AVF)」 などもRustで書かれている。

また、BluetoothやWi-Fiなどの通信接続に使われるスタックも、Androidの開発チームによってRustへの変換が積極的に進められている。
理由は、これらが業界の複雑な標準規格に基づいており、脆弱性を多く含む傾向にあるからだとGoogleのクライダーマーカーは付け加える。
つまり最も狙われやすい、あるいは最も重要なソフトウェアの部分からRustに書き換えて、
そこから徐々にRustで書く範囲を広げることで段階的にセキュリティ上の恩恵を受けようという戦略である。
2023/03/15(水) 10:57:42.49ID:QVyWv/mn
>>280
デッドロックは静的検出はできないでしょ?
2023/03/15(水) 12:50:04.82ID:FGvum1vT
やっぱりC++だよね
294デフォルトの名無しさん
垢版 |
2023/03/15(水) 15:17:28.42ID:6d2zOTAf
段階的に置き換えることができるだけのお金と能力のあるエンジニアを確保できるアメリカの大企業ならいいんだろうけどね
両方無い日本企業には無理無理カタツムリ
295デフォルトの名無しさん
垢版 |
2023/03/15(水) 19:11:32.56ID:Raq+Bs5u
能力ない人の発想だね
2023/03/15(水) 19:46:51.43ID:rzl5B1H1
まず初めにの人はRustは選ばんと思う
Rustがターゲットとしているところで
プログラミングをやるなら
現状でCの習得は避けて通れない
となると学習コストの問題で
文法がほぼ包含関係にあるC++を選ぶことになる
OSの基盤からRustにしないと一向に増えないよ
2023/03/15(水) 19:49:13.81ID:N9nUYl96
>>3で終わってんだよこのスレ
うだうだ続けたい奴はコード書く能力もないからここで自己顕示欲発揮しちゃうんだろw
2023/03/15(水) 19:50:50.82ID:zbLR3nEh
能力ある人からRustへ移行していってる

>>294
ほとんどのシステムは複数のプログラムから構成されているため
それら各機能をグレードアップで更新するときにRustへ書き換えることで進んでいる
もちろん新規システムは最初からRustで書くことが多くなっている
2023/03/15(水) 19:55:49.97ID:rzl5B1H1
Rustユーザが増えるストーリーは
トップダウンで基盤を整備するしか有り得ない
Cと文法が乖離してるのはメリットもあるだろうけど
普及にはデメリットとして働いている
2023/03/15(水) 20:02:03.89ID:zbLR3nEh
セキュリティ観点から新規システムはC/C++禁止でRust必須が要件になっていってる
この動きはそれが出来るところから着実に進んでいるので止めようがない
301デフォルトの名無しさん
垢版 |
2023/03/15(水) 20:52:20.68ID:QVyWv/mn
>>300
>新規システムはC/C++禁止でRust必須が要件
どこで?
2023/03/15(水) 21:00:17.63ID:QVyWv/mn
デファクトスタンダードの強さは
MSを見ていればまぁ自明だわな
303デフォルトの名無しさん
垢版 |
2023/03/15(水) 21:15:24.65ID:itMePwRG
結局コンパイルってどのくらい遅いの?
2023/03/15(水) 21:55:22.51ID:46PmQs8i
今日のMicrosoftの発表が面白い
発表デモでなぜかPythonからRustへ

https://www.msn.com/en-us/news/technology/microsoft-s-new-bing-ai-chatbot-arrives-in-the-stable-version-of-its-edge-web-browser/
2023/03/15
本日マイクロソフトは、Edgeウェブブラウザの安定バージョンのサイドバーに、新しいBing AIチャットボットが含まれるようになったことを発表しました。
デモンストレーションで、AIにStack Overflowのヒントを調べながらコードのスニペットを書くように依頼しました。
AIはPythonコードをRustに変換することができました。
2023/03/15(水) 21:58:57.19ID:46PmQs8i
>>304
正しいURLはこれ
https://www.msn.com/en-us/news/technology/microsoft-s-new-bing-ai-chatbot-arrives-in-the-stable-version-of-its-edge-web-browser/ar-AA18CPK2
2023/03/15(水) 22:07:43.40ID:QVyWv/mn
Rust普及はMSの動向が鍵だよ
自然に増えるもんじゃない
2023/03/15(水) 22:20:44.44ID:46PmQs8i
Microsoftは自社製品のRust化を進めると同時に普及も進めてるね
日本語ドキュメントも充実してる

Rustを使用したWindowsでの開発
https://learn.microsoft.com/ja-jp/windows/dev-environment/rust/overview
2023/03/16(木) 00:10:36.78ID:srO8KDRm
PriorityはF#の次だな
https://learn.microsoft.com/ja-jp/windows/dev-environment/
2023/03/16(木) 00:12:05.34ID:srO8KDRm
「C++とCの概要」の位置に来ないと普及には程遠い
2023/03/16(木) 00:25:01.88ID:AJSi61e9
RustがC++と同じ土俵へ採用されてしまった時点で
何もかも優れているRustの勝利

疑われる「C++」の安全性、今後の動きはどうなる
https://japan.zdnet.com/article/35199018/
2023/03/16(木) 06:24:59.05ID:R4dgmdEC
次の10年はRustが取った、となると、APIがRustになる
ならば、RustなAPIにC++がきちんと接続できるようになってもおかしくない
そうすると、Rustが実績を積んだ「正しい縛り」を、C++でも使えるようになってくるんではないだろうか

もうそういう試みある?
2023/03/16(木) 08:50:45.88ID:zwODLYWH
何言ってんだこのバカ
2023/03/16(木) 09:08:29.35ID:wZlU7tIR
>>311
既にRustとC++の相互呼び出しは実現されているが
Rustから見てC/C++部分は当然unsafe扱い
最終的にC/C++部分が無くなる形で完成することになる
2023/03/16(木) 09:15:14.89ID:3C3pOHVn
OSもアプリケーションも、pure Rustになるんだろ、理想論としては
だとしたら、境界面であるAPIには、縛りにかかる属性情報が露出するはず
C++がそれに対応できないなら、今後C++ではアプリケーションを書けないことになってしまう
2023/03/16(木) 09:54:57.99ID:hwbAfXXm
慣れて使いこなせるようになると、
Rustの方が書きやすいとほとんどの人が言うほど差があるのだから、
C++がいずれ消えるのは間違いない。
316デフォルトの名無しさん
垢版 |
2023/03/16(木) 10:39:34.81ID:N2/NSeFa
>>298
>能力ある人からRustへ移行していってる
まるでKENYAの作文だな
2023/03/16(木) 10:43:46.43ID:fxj0X8UB
Rustからインラインアセンブラでレジスタいじって安全性が担保されつつC++と遜色ないならもういらんわな
2023/03/16(木) 10:45:31.49ID:X3XJCWQc
ここでぐちゃぐちゃ言っても何も変わらないからさっさとC/C++で書かれた森羅万象の移植やってこいよ
2023/03/16(木) 10:57:52.25ID:n4rBBOEi
>>317
もちろんRustの変数を使う形でインラインアセンブリをRustでは記述できるが
当然ながらRustコンパイラによる保証範囲外となるunsafe部分になる
Rustはunsafe部分のみ人間が安全性を担保すれば全体についてはRustコンパイラが保証する形で役割分担できる
その点でプログラム全体が常にunsafe状態となってしまうC/C++とは根本的に異なる
320デフォルトの名無しさん
垢版 |
2023/03/16(木) 10:59:13.64ID:mkPG1w5O
>>303
ここの最後の方に載ってるよ
https://quick-lint-js.com/blog/cpp-vs-rust-build-times/
OSによっても違うみたいだけど、C++の方がちょっと早いくらいだね
321デフォルトの名無しさん
垢版 |
2023/03/16(木) 11:04:29.29ID:srO8KDRm
まぁRustでスクラッチから書かれたOSでWindowsやiOSやAndroidを取っ替えるか
スマホみたいな何らかの新しいハードウェアが誕生して
それがRust製で書かれたOSで制御されている状況にならんと普及はせんよ
2023/03/16(木) 11:11:37.43ID:r79frV++
>>321
頭の弱い子ですね
JavaやPerlやJavaScriptやRubyやPHPやPythonなどで書かれたOSは普及していませんが
それらの言語は普及しました
323デフォルトの名無しさん
垢版 |
2023/03/16(木) 11:19:37.68ID:srO8KDRm
>>322
JavaやPerlやJavaScriptやRubyやPHPやPython使ってるところで普及はするかもね
じゃこれで良い? ニッチと言って分かるかな?
2023/03/16(木) 11:22:05.57ID:3C3pOHVn
マイコンでRustを使う試みは結構普及してるみたいだね
2023/03/16(木) 12:18:46.17ID:xA7F3jfw
Rustは電気ドリルや3Dプリンタのような道具なんだから、本当に良いと思えば
自分が使って生産効率を上げたり良い作品を作って披露すれば良いだけなのに、
信者達が無理やり広めようとしているのが嫌だ。
困るのは、C++を使ってる人を馬鹿にすること。
2023/03/16(木) 12:23:14.36ID:0EJvJf6l
Rust製の高速なwebpack互換バンドラ「Rspack」登場。現時点で5倍から10倍の性能向上 https://www.publickey1.jp/blog/23/rustwebpackrspack510.html
2023/03/16(木) 12:23:28.58ID:xA7F3jfw
C++をディスってC#を上げまくっていた人達が、Rustに鞍替えした模様。
彼らは5chやtwitterで徹底的にRustを褒めまくっている。
どうしてそんなことをするのか。思想家や哲学者なのか。
マルクスもそういう感じで結果、大勢の人々を苦しめた。
2023/03/16(木) 12:31:35.94ID:srO8KDRm
Rustはポテンシャルはあるけど現状で普及するパスが見えていないですから
Rustを愛する者にとってはそこがフラストレーションなのでしょう
普及するパスが見えたら解消すると思うよ
2023/03/16(木) 12:37:22.05ID:3C3pOHVn
C++が怠っていた部分を成し遂げたんだから、Rustは誇っていい
エンジニアが本職なら、C++でもRustでも、なんでも読み書きできないといけないだろう
まあ、じきにC++も追いつくだろ 問題はC
2023/03/16(木) 13:52:30.33ID:xA7F3jfw
本当に優秀なプログラマなら、C++でもRustでもどっちでも簡単に使えるので、
必要あらば、どっちでも使うだろうが、C++でもメモリーエラーなんて滅多に
起こさないし、起きても原因究明して直せるから、敢えてRustに行く動機もない。
別にRustが使えないからC++を使ってるわけじゃないのに、Rust使う人の方が
憂愁みたいに言われるのはおかしい。
2023/03/16(木) 13:53:26.57ID:xA7F3jfw
>>330
書き間違えた。
憂愁 ---> 優秀
2023/03/16(木) 13:55:47.65ID:xA7F3jfw
>>329
「Rustは誇っていい」という意味が分かりにくい。Rustを作った人はちょっと
誇っていいかも知れないが、Rustの解説本を書いている人や、Rustを道具として
使っている人が誇っていいわけではない。
2023/03/16(木) 13:57:50.83ID:3C3pOHVn
ああ、うん
Rust(言語と言語チーム)は誇っていい
その一派につらなる「信者」が誇るのは…まあ人の常かなって
2023/03/16(木) 14:00:22.48ID:xA7F3jfw
>>333
>その一派につらなる「信者」が誇るのは…まあ人の常かなって
信者が誇って良い分けないと思うが。
2023/03/16(木) 14:06:46.30ID:3C3pOHVn
Rust派先鋒衆がいうのは、Rustに移れば、大多数の脆弱性は自然につぶれるのに、
C++に固執するのがもうクズ。っていう発想 それもわかるんだけどね

なんでも書けてこそのC++ 縛りを記述できないなんて、欠陥でしかない
だから、C++の進化には期待してる 遅々たるものになるかもしれないけど
2023/03/16(木) 14:20:33.51ID:xA7F3jfw
>>335
>Rustに移れば、大多数の脆弱性は自然につぶれるのに、
>C++に固執するのがもうクズ。っていう発想 それもわかるんだけどね
本当に優秀ならば、C++でも脆弱性がが入らない。
mozillaやgoogleの社員がタコなだけ。
2023/03/16(木) 14:30:08.42ID:srO8KDRm
>>314
C++からRustライブラリを呼ぶ場合もRustからC++ライブラリを呼ぶ場合も
文法違いすぎて大変そうだけどどうしてるんかな?
Cのライブラリを呼ぶのはどのプログラミング言語からでも余裕だけども
JavaとC++もかなり歪だよね?
2023/03/16(木) 14:31:40.01ID:hABarloL
>>336のような勘違いしてる自信過剰なダメな人たちが今までセキュリティの穴を多数あちこちで生じさせてきた
人間は必ずミスをするという当たり前のことも受け入れられない人はキチガイのみ
2023/03/16(木) 14:33:21.04ID:3C3pOHVn
>>336
一人で作るもんでもないからねえ、大人数だと、体調の悪いヤツとかも混じるだろ
コンパイラに任せたいってのはわからんでもない
俺も、(たとえば)gccとヘッダライブラリに任せて、自分は気楽にごりごり書きたいw
340デフォルトの名無しさん
垢版 |
2023/03/16(木) 14:34:51.94ID:srO8KDRm
>>338
自信過剰も何もC++書ける人だとなぜに
スマートポインタで失敗するのか理解不能だよ
原因は生ポインタ使ってるからなんだろうけど
それなら生ポインタをプロジェクトで禁止にするだけで充分

あとマルチスレッドにおけるデッドロックはRustで検出できるのかい?
2023/03/16(木) 14:37:50.95ID:srO8KDRm
ボローチェッカだっけ? CとC++で実装できんのかな?
2023/03/16(木) 14:39:57.56ID:3C3pOHVn
ていうか、Rustがもたらそうとしてるのは、プログラミングパラダイムだから、
C++でおんなじように書ければいいんだよ ハズしてたらコンパイルエラーになってくれてだな

Rustは実績を積んだ C++は早くその成果を取り込むべき
ラムダといいコルーチンといい、C++が他に学んだ前例はいくらでもある

>>341
まじそれ
2023/03/16(木) 15:04:51.89ID:bO6zkRLm
>>338
それはプログラマーのレベルが少なくとも俺よりは低いから。
2023/03/16(木) 15:07:17.05ID:3C3pOHVn
>>343
お前みたいな優秀なヤツが、【わざと】脆弱性を仕込んだコードをコミットしたりするんだよw
他人は信用できねえ
俺クラスになったら、自分自身が一番信用できねえww
2023/03/16(木) 15:14:34.72ID:N2/NSeFa
use 描くだけでコンパイル中にダウンロード始まって
何分も待たされたらそりゃ遅いわ!!!ぷんぷんって
怒るアホも出て来るだろうね
2023/03/16(木) 15:18:25.89ID:N2/NSeFa
>>334
Rust(人気)は俺が育てた!(AA略)
2023/03/16(木) 15:36:54.04ID:07ACJDqQ
>>341
現状では無理
C++33くらいで可能になるかもね
2023/03/16(木) 15:38:33.76ID:07ACJDqQ
>>340
>あとマルチスレッドにおけるデッドロックはRustで検出できるのかい?
コンパイルエラーになるかという意味ならならない
その辺はGoとかと一緒でイディオムで対処
2023/03/16(木) 15:42:21.06ID:I4Z9PBKv
>>348
メモリ安全だけだとあんまり有り難くないな
もしミスってもデバッガで直ぐ分かる訳だし
2023/03/16(木) 15:51:10.02ID:TBYrYTSU
>>349
メモリ安全だけでなく
C++とは異なりRustはデータ競合を完全に防げる
C++とは異なりRustは広義のヌル安全であることも大きい
2023/03/16(木) 16:02:01.69ID:PpEtLqb1
>>350
それでも言語が汚いから使いたくない。
2023/03/16(木) 16:24:46.13ID:TBYrYTSU
様々なプログラミング言語と比較してもRustは美しい側に入るとともに
言語機能が強力で可読性が高い

とくにパターンマッチング
これはC++でも導入しようとしているが進んでいないだけでなく
C++で出ている提案では強力でなく可読性もよくないようにみえる
Rustはパターンマッチングが非常に強力で可読性の向上の最大要因となっている
2023/03/16(木) 16:52:12.01ID:3grScBM3
>>351
Rustかどうかは別として10年後くらいには
今Rustが実現してるやり方が標準的なものになるのは間違いないから
考え方やメリットデメリット、限界をある程度学んでおいた方がいいかもよ

Rust自体はいいところもあれば悪いところも沢山あるので実際に使うかどうかは状況次第
2023/03/16(木) 17:04:30.58ID:YeYGULup
結局Rustがもひとつ流行らないのって
①エコシステム
②ライブラリ
なんじゃやいの?
①は流行ってきたら充実するものでニワトリと卵だけど、②はどうなん?
②が中々充実しないのは何かRustのライブラリ書いてやろうと言う人が出てこない理由あるんかな?
2023/03/16(木) 17:12:09.28ID:3C3pOHVn
採用宣言が大手から出たんだし、そのへんは急ピッチで進むっしょ

>>353
10年後には、いまRustが提示しているものを踏まえた、さらにスマートなものが出ているかもしれない
でも、それを理解するには、ここから10年間、Rustの成果を学び、踏まえるのがいい だから俺はいま学ぶぜ
願わくば、10年後にも、しぶとい感じでC++が現役であってほしいな
2023/03/16(木) 17:15:50.99ID:QTF1+6wX
C++は次々と新たな機能を増やし続けてきたが増築工事だから色んな点で限界が多い
例えば話が出ている広い意味のnull安全はC++がoptionalの導入をとっくに行っているが
・なかなか普及しない
・既存ライブラリの仕様とのチグハグ
・パターンマッチング機能の導入がまだなので使い勝手が悪い
などの問題が山積みであまり使われていない
C++の他の機能導入でも似たような状況が多い
Rustが美しく書きやすく読みやすいのはそれらの多くが最初から解決されているからだと感じる
C++をさっさと棄てるのが現実解であると理解できた
2023/03/16(木) 17:23:01.97ID:3C3pOHVn
C++はなんでも書けるかわりに、いまや考えなしに勝手に組み合わせると めちゃくちゃになるんだよね
Rustには引き算の美学の成果が入ってる
C++も、先頭で縛りを宣言できるようにして、美しく書けるようになるべきだ 絶対に
2023/03/16(木) 17:47:47.57ID:VzH+f4s6
ソースコードのコンパイル・ビルドの時点ですべての問題点をエラーで全部弾いてくれたら理想的だね
大抵はテストツールまで書かないと使えない
359デフォルトの名無しさん
垢版 |
2023/03/16(木) 19:59:01.19ID:srO8KDRm
>>350
コンストラクタでlockしてデストラクタでunlockするproxyクラス作って
その一時オブジェクト経由で触れば良いだけなので何を今更という感じ
メモリ安全は別にデバッガですぐ特定できるし
マルチスレッドではRustの利点がない
デッドロックが検出できたらまぁ嬉しいが?
360デフォルトの名無しさん
垢版 |
2023/03/16(木) 20:03:11.00ID:u3ZLVO1D
クラス笑
2023/03/16(木) 20:03:55.24ID:srO8KDRm
>>354
多くの人に使ってもらおうと思ったらCで書いて
各言語のラッパーを提供するってのが多い
RustにこのCの代わりができれば良いんだけども?
もしRustユーザしかリンクできないライブラリだったら
Rustはそもそもユーザー数が少ないし
Rustで書く動機が減る
2023/03/16(木) 20:07:00.05ID:srO8KDRm
>>357
多人数でやるプロジェクトにはC++は自由過ぎて
その点は書き方にある程度拘束される意義はあると思う
363デフォルトの名無しさん
垢版 |
2023/03/16(木) 23:56:33.56ID:ufHOK4fg
>>320
ありがと
意外と変わらないんだ
364デフォルトの名無しさん
垢版 |
2023/03/17(金) 00:02:12.50ID:aeVIJ/KU
Rustでゲームエンジンやグラフィックソフト作れたら認めてやるよ
365デフォルトの名無しさん
垢版 |
2023/03/17(金) 00:04:03.80ID:aeVIJ/KU
DTMに使いそうなDAWソフトとかでもいいぞ
書き方はGitHubにいろんなOSSの見本があるから簡単でしょ?
366デフォルトの名無しさん
垢版 |
2023/03/17(金) 00:04:27.28ID:aeVIJ/KU
Rust使いこなせるくらいなら余裕のはず
2023/03/17(金) 00:14:30.94ID:o5CBT2m0
SDLのRustバインディングはあるけども
Rustで本体を書いて他の言語のバインディングって出来るの?
他の言語との乖離でRustならではの部分が封じられて
あんまり嬉しくないような気もするのだが?
それともRustでライブラリ書いたらターゲットはRustだけになるのかな?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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