C vs C++ vs Rust Part.2

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2021/12/15(水) 12:35:50.91ID:biBE4xC0
競え
※前スレ
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/
2021/12/31(金) 22:18:59.59ID:tc6fCfYn
>>313
C/C++にはRustでいうところの安全(⇔unsafe)はないから "C/C++で安全に書ける物" が何を意味するかわからない

そもそも >>309 の "C++で書けること" や "Rustで書けること" ってどう定義されるの?
2021/12/31(金) 22:24:28.60ID:tc6fCfYn
>>312
循環参照は安全に書けるよ
https://doc.rust-jp.rs/book-ja/ch15-06-reference-cycles.html
2022/01/01(土) 00:53:57.74ID:xczakg94
Rustのmatch式はScalaの後追いパクリw
2022/01/01(土) 01:00:44.48ID:193tzZ58
ML系のパクりだよ
https://doc.rust-lang.org/reference/influences.html
2022/01/01(土) 01:12:03.78ID:jvk1ETyF
プログラミング言語としての比較結果は明瞭

適用可能な範囲は同じかつ最速
いずれもGCがなく低レベル操作も可能
Rust = C++ = C

したがって勝負は他の点
コード記述が楽に簡潔に書けるか
Rust > C++ > C

安全なコードを書けるか保証できるか
Rust > C++ > C
2022/01/01(土) 01:22:01.85ID:193tzZ58
>>318
> いずれもGCがなく低レベル操作も可能
これはRustはnightly使うこと前提?
低レベルな機能についてはまだまだunstableなものが多いので少なくともstableなRustではC/C++でできること (処理系依存なものも含む) がすべてできるとは言えないのでは
https://doc.rust-lang.org/stable/unstable-book/

新たな(pre-)RFCも日々提案されてるし現状で十分とあぐらをかくべきではないと思う
320デフォルトの名無しさん
垢版 |
2022/01/01(土) 01:33:41.15ID:KzNGE8bI
ということは、RustはC++よりJavaと比較する言語なのでは?
2022/01/01(土) 01:41:42.07ID:193tzZ58
>>309
> C++で書けることは全てRustで書ける
を念頭に置いた話で "全て" は言い過ぎ、C++でないとできないこともあるだろうと言いたかった

CやC++の低レベル操作は Rust でも "だいたい" できて大抵のユースケースでは困らない
と言うのが正確だと思う

Java は GC あり VM 言語だから低レベル操作の観点でのRustとの類似度で言ったらCやC++の方が近い
322デフォルトの名無しさん
垢版 |
2022/01/01(土) 01:44:00.63ID:KzNGE8bI
メモリーの安全性を強調する言語と言えばJavaが筆頭に挙げられるのでは?
Javaは実行時最適化を行うのでC++より速いと主張されます。
この点もRustと酷似している。
323デフォルトの名無しさん
垢版 |
2022/01/01(土) 01:45:59.28ID:KzNGE8bI
JavaもRustもC++と比較した優位性を主張するのですが、JavaとRustならどちらが優れているのでしょう?
2022/01/01(土) 01:46:52.68ID:jvk1ETyF
>>319
勘違いしてないか?
それらのほとんどは既に別の手段でコードを書くことができるが更に利便性を高めようと検討されている機能だぞ
C++で言えば>>308提案のマッチングは現在できないがそれが無くとも別の手段でコードは書ける話

>>320
C++とRustは適用可能な範囲が同じ
Rustの記述性能が高いという違いしかない

>>322
Javaはガベージコレクションがあり適用可能な範囲が狭い
さらにヌルポインタ例外もありJavaはメモリ安全ではない
325デフォルトの名無しさん
垢版 |
2022/01/01(土) 01:50:45.71ID:KzNGE8bI
Javaは組み込みにも使われ、それどころかpico javaというJavaを効率よく実行できる組み込み用プロセッサのアーキテクチャ迄あるんですよ。
完全にRustと一致するじゃないですか。
実績を考えたらRustを完全に包含しています。
なぜJavaとの比較を嫌がるのですか?
326デフォルトの名無しさん
垢版 |
2022/01/01(土) 01:51:16.51ID:KzNGE8bI
もしかしてRustはJavaに負けているのですか?
2022/01/01(土) 02:00:04.72ID:LNkbwGBY
GCがあってデータ競合も起きないマルチパラダイム言語で、C,C++以上の爆速で動く処理系があるとするならそら優秀だろうと思うわ

Javaは実際にはそんなに爆速じゃないだろうし、データ競合の対策がしやすい言語とも思えんけど
328デフォルトの名無しさん
垢版 |
2022/01/01(土) 02:05:29.52ID:KzNGE8bI
活気があったころは、C++と比較して20倍速いと主張するサイトもありましたよ。
まさに爆速です。
Rustと似ています。
329デフォルトの名無しさん
垢版 |
2022/01/01(土) 02:07:14.76ID:KzNGE8bI
安全性という観点では、RustはHaskellと似ているように思います。
熱心なHaskellユーザーはコンパイルが終わればバグが無いことを保証されると主張します。
Rustと全く同じです。
2022/01/01(土) 02:10:16.54ID:jvk1ETyF
Javaを含めるとこうなる

安全なコードを書けるか保証できるか
Rust > Java > C++ > C

Javaはヌルポインタによる参照でエラー例外が実行時に起き得る
Rustはそれさえも起きない
したがって速さだけでなくメモリ安全の点でも Rust > Java が確定済
Javaが勝てる点がない
そのためJavaを捨ててRustへ移行するプロジェクトもある
331デフォルトの名無しさん
垢版 |
2022/01/01(土) 02:11:02.91ID:KzNGE8bI
Haskellもまた、C++と比較して優位性が主張されることの多い言語のひとつです。
しかし、JavaやRustと比較されることは一切在りません。
Java、Rust、Haskellでは、どれが最も優れているのでしょう?
332デフォルトの名無しさん
垢版 |
2022/01/01(土) 02:13:26.08ID:KzNGE8bI
でもRustはJavaより遅いですよね?
Javaは実行時最適化によりC++より20倍速いことがbenchmarkで判明していますよ。
10年以上も前に。
333デフォルトの名無しさん
垢版 |
2022/01/01(土) 02:15:29.86ID:KzNGE8bI
C++を改良したD言語もあります。
DとRustならどちらが優れているのでしょう?
334デフォルトの名無しさん
垢版 |
2022/01/01(土) 02:16:49.60ID:KzNGE8bI
出自からして、D言語もまたC++と比較して優位性が述べられる言語のひとつです。
しかし、RustやHaskellと比較されることは在りませんね。
どちらが優れているのでしょう?
2022/01/01(土) 02:25:43.18ID:jvk1ETyF
まずは決定的な違いを勉強しなさい
GCのない言語 Rust C++ C
GCのある言語 Java D C# Go Haskell Python Ruby JavaScript ...
336デフォルトの名無しさん
垢版 |
2022/01/01(土) 02:31:24.00ID:KzNGE8bI
>>335
GCの有無で何が変わりますか?
JavaやRuby、Pythonは組み込みにも使われますし、宇宙にだって行きます。
Rustよりずっと広範囲に使われています。
Rustで作られた実用的なソフトウェアはFirefoxしかないじゃないですか。
しかも、そのFirefoxだって熱心な信者以外誰も使わない。
それと比較したら、これらの言語は実用的に使われています。
GCが在ろうとなかろうと。
2022/01/01(土) 02:32:19.06ID:193tzZ58
>>324
大体代替手段があるのはそうだと思います
例えばnaked functionやglobal_asmは別途asmなりCなりからオブジェクトファイル生成してリンクするという代替手段があります (これがありならC-FFIできる言語は皆同等になってしまいますが...)

もともと C++ でできることは "全て" できるというかなり強い主張をされてた人がいたのでそれは言い過ぎじゃないかと言いたかっただけです


>>332
ご参考まで
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/java.html
他の言語との比較もありますよ
2022/01/01(土) 02:33:17.91ID:LNkbwGBY
Rustのポジションに取って変わりたいなら、RustみたいにLinuxのKernelコードに取り込まれていってくれるとわかりやすいんだけどね
なぜC++を含む他の言語はLinux Kernelに採用されないのか、って考えると差が明瞭になってきそうだ
339デフォルトの名無しさん
垢版 |
2022/01/01(土) 02:34:00.98ID:KzNGE8bI
Firefoxのバグの多さを考えても、Rustはバグを生産する言語のように思います。
340デフォルトの名無しさん
垢版 |
2022/01/01(土) 02:35:06.26ID:KzNGE8bI
>>338
ドライバにクラスは必要ないからでは?
2022/01/01(土) 02:39:59.20ID:jvk1ETyF
>>336
RubyやPythonは遅すぎ&メモリ食い過ぎで話にならない
例えばクックパッド社はRubyで書かれていたのをRustへ置き換えて経費節減に成功している
2022/01/01(土) 02:42:24.09ID:193tzZ58
そういえば Windows 10にRust使う話ってどうなったんだろうか

>>336
以下の記事にメモリ安全な既存の言語ではだめでCやC++やRustでないといけない理由
それらの中でもRustが良いとされる理由が書かれていますよ
https://msrc-blog.microsoft.com/2019/07/22/why-rust-for-safe-systems-programming/
2022/01/01(土) 02:57:17.29ID:193tzZ58
>>339
FirefoxについてC++コードをRustに書き換えたらセキュリティに関わる脆弱性数がどうなるか分析した記事がありました
https://hacks.mozilla.org/2019/02/rewriting-a-browser-component-in-rust/
結論としては完璧ではないけどRustの方がバグを減らせるということのようです

MS ResearchやGoogleのAndroidチームも類似の調査をやっていてRust採用は効果有りと判断しているみたいです
344デフォルトの名無しさん
垢版 |
2022/01/01(土) 04:08:48.59ID:KzNGE8bI
JavaやHaskellも多くの人がC++より優れていると分析しています。
速く容易で安全なのです。
全ての点でC++を上回っています。
では、それらの言語を比較した場合、どれが最も優れているのでしょう?
345デフォルトの名無しさん
垢版 |
2022/01/01(土) 04:11:14.25ID:KzNGE8bI
ほとんどすべての言語がC++より優れていると主張します。
という事は、C++はもっとも劣った言語のひとつなのです。
Rustはもっとも劣った言語より優れていると主張しますが、優れた言語、例えばJavaやHaskellと比較したら、かなり劣っているのでは?
2022/01/01(土) 07:34:43.36ID:JYrmLBPV
多くの人がRustとC++と比較している
比較するなら優れたもの同士を突き合わせるはずだ
なのにJavaやHaskellは影も形もないつまり論外ってことだ
全ての言語がC++に対して優位性を主張するのも
C++が最も現実的で優れた言語だと認めているからであって
わざわざ劣っているものと比較する必要なんてないからだ
2022/01/01(土) 09:08:27.19ID:193tzZ58
>>344
JavaやHaskellがC++より常に高速というのは明確に誤りです
https://benchmarksgame-team.pages.debian.net/benchmarksgame/index.html

ではC++がこれらの言語より優れているかというとそうではありません
言語にはそれぞれ得手不得手があります
唯一絶対の尺度で優劣を決めようとするのではなく、ある特定の用途に対してどの言語が適しているかという観点で議論した方が生産的かと思います
348デフォルトの名無しさん
垢版 |
2022/01/01(土) 09:44:43.30ID:a+oD+kQK
スレタイ読め。
2022/01/01(土) 10:50:55.11ID:E1HNnq3M
いつもの人の自作自演
2022/01/01(土) 19:02:54.41ID:n4zdCVCH
GitHub・Cookpad などは、遅いRuby on Rails から、Go・Rust などへ移行している

2021年10月には、GitHubのコピーのGitLab が上場し、時価総額は約1.9兆円!
こんな大きい時価総額でも、Railsを使い続ける宣言をしている

基本、Railsは中小ベンチャーが、高品質なサービスを作るツール。
2億レコード・取引先が2万社みたいな規模でも、問題ないと言ってた

他には、組み込みのmruby の本も出た。
Webで使えるmrubyシステムプログラミング入門、近藤宇智朗、2020/11

宇宙開発などの組み込み用、MicroPython, Lua, Squirrel の代替になる。
Ubuntu 18.04, C99 対応

人工衛星イザナギ・イザナミで、使っている
351デフォルトの名無しさん
垢版 |
2022/01/01(土) 21:35:42.72ID:1mMbmyWc
C++もJavaも実行時にnull pointerによる参照が起きる可能性があるためどちらも安全性に劣るよね
Rustではenum Option使用でnull pointerによる参照が絶対に起きないことをコンパイル時点で保証した上で
コンパイル後は最適化でOptionがNoneの時にnull pointerを使うという二段構えにより
Rustはコストをかけずに無駄なく安全性の保証を実現しているところに感動した
2022/01/01(土) 21:45:09.34ID:s+QWpk3m
null安全ぐらいはモダン言語なら当たり前の機能なので、もはやメリットとは感じないわ
例えばTypeScript、Swift、Kotlin、Haskellとか
2022/01/01(土) 21:56:26.71ID:jvk1ETyF
C++とJavaが前近代的でダメな言語なだけだよな
354デフォルトの名無しさん
垢版 |
2022/01/01(土) 21:59:01.05ID:KzNGE8bI
Javaは速度を追求した言語だから。
355デフォルトの名無しさん
垢版 |
2022/01/01(土) 22:39:11.50ID:KzNGE8bI
Haskellは安全性と並列化を追求した言語です。
356デフォルトの名無しさん
垢版 |
2022/01/01(土) 22:58:31.22ID:1mMbmyWc
RustはHaskellの長所である型クラスをトレイトとトレイト境界で採り入れていたり
HaskellのMaybeモナドやEitherモナドを採り入れてRustの型の核としているところにも感動した
2022/01/01(土) 23:02:32.16ID:15i3uJ8f
システムプログラミングでCに代替となれるほどRustがイケてるのは、
null安全やメモリ安全はモダンな言語だから当然として、データ競合が起きないことも保証しつつ、実行速度もCに劣らなくて、
それでいてRustと多少のアセンブラだけ使えば、OSや組み込みソフトウェアも普通に記述できるほどフットプリントの小さい低レベルな言語だから
358デフォルトの名無しさん
垢版 |
2022/01/01(土) 23:08:54.95ID:KzNGE8bI
システムプログラミングにはJavaのほうが向いています。
単純に速いからです。
Javaは宇宙でさえ使われる安全で実績のある言語です。
しかも速い。
実行時最適化を行わない言語では無理な速さです。
359デフォルトの名無しさん
垢版 |
2022/01/01(土) 23:23:23.09ID:KzNGE8bI
結局RustはHaskellの真似をするだけの偽物言語にすぎません。
Haskellの並列性、安全保証を移植するには、結局Haskellになるしかないのです。
RustはいずれHaskellになるでしょう。
その時もまだRustと呼び続けるのでしょうか。
2022/01/01(土) 23:45:51.79ID:L78WNXLf
>>358
ねー、>>347 無視しないでよー
2022/01/02(日) 01:31:01.49ID:uZMhOgW6
rustのnull安全?はクリティカルコンテキストでも保証されるんか?
362デフォルトの名無しさん
垢版 |
2022/01/02(日) 02:22:18.22ID:TQn3/Mee
もちろんです。
2022/01/02(日) 08:42:35.10ID:/2Hc/nxf
現状でRustの欠陥は指摘なしなのか
まあ優れた言語だから主流になるとも限らんけど
ここはRust礼賛が多くて参考にならんな
2022/01/02(日) 08:43:38.07ID:i5Las0bb
>>360
キチの相手するならメールかなんかでやってくれ
2022/01/02(日) 12:04:39.89ID:7Z2MEM4u
キチの相手するスレやぞ
366デフォルトの名無しさん
垢版 |
2022/01/02(日) 14:18:19.00ID:TQn3/Mee
良いという人だって使ったことないんだから、欠点なんか出てこないよ。
2022/01/02(日) 14:52:25.82ID:gJq1EeIU
>>361
クリティカルセクションのこと?
2022/01/02(日) 19:27:00.77ID:ryp06yJk
int型(32ビット)でyy/MM/dd/HH/mmの形で日時を実装しているプログラムは、2022年1月1日0時0分(2201010001)に32ビットの最大値(2147483647)を越えてしまい、エラーが発生する。そういう実装をしているMicrosoft Exchangeでは既に問題が発生中。
みんな仕事始めになって気づいて大騒ぎに
2022/01/02(日) 19:33:55.23ID:3fzUeLHI
DosDateTime爆死確認w
2022/01/02(日) 20:28:27.33ID:yz2mFgPr
>>367
ハードウェア割り込みの割り込みコンテキストのつもりで書いた
社内独自用語なんだと思う
そこは気にせんでくれ
2022/01/02(日) 21:12:20.77ID:l2HAFLEV
>>361
Rustのポインタ(参照)および実体にはnull/nil/undefined等が一切ない
そのためnull問題が起きることはなく所謂null安全が保証されている

nullになる可能性がある場合は汎用のオプション型であるenum Option<T>型を用いる
このOption<T>はenumとしてSome(T)とNoneの二値を取り型Tは任意な型
つまり所謂NullはenumのNoneで表現され型Tとは異なるためnull問題が起きようがない

これで効率やコストはどうなるのか?
null(RustではNone)が使われない時は型Tのまま扱うので従来と同じ
null(RustではNone)が使われうる時は型Option<T>として扱う
型Option<T>から型Tを使うにはNoneでない確認が必要だがこれこそ必須な確認コスト
ポインタ(参照)の場合は値がnullすなわち0になることがないためコンパイル後はNoneが0で表現される最適化となる
つまり結果的にはC/C++と同じになるのだがRustは上述のようにコンパイル時点でnull安全を保証できる点で異なる
372デフォルトの名無しさん
垢版 |
2022/01/02(日) 22:09:32.73ID:TQn3/Mee
Javaのほうが安全。
373デフォルトの名無しさん
垢版 |
2022/01/02(日) 22:11:45.12ID:TQn3/Mee
ぬるぽ例外が発生するから安全じゃないとか言う書き込みがあった。
これはウソ。
ないほうが良いならCはヌルポを検出できないから安全って事になる。
Javaは検出して例外を発生させるから安全なのです。
キチガイに騙されるな。
2022/01/02(日) 22:18:47.48ID:i8dUNFkB
>ないほうが良いならCはヌルポを検出できないから安全って事になる。

発生したことを検出できないことと発生しないことを意図的に混同している
375デフォルトの名無しさん
垢版 |
2022/01/02(日) 23:11:16.20ID:TQn3/Mee
Firefoxの惨状を見れば全然安全でないことがわかるのに。
なぜ安全と言い張るのか。
2022/01/02(日) 23:20:08.47ID:Uu3cvt4h
CもC++もJavaも実行時にヌルポ発生するからいずれもダメ
Rustは実行時にヌルポ発生しないことが保証されているから安全
377デフォルトの名無しさん
垢版 |
2022/01/02(日) 23:22:44.87ID:TQn3/Mee
RustアンチがRustを称賛してるのではないか。
2022/01/03(月) 05:19:23.74ID:Tjf/rOJw
その可能性高いかも
2022/01/03(月) 06:00:15.35ID:V/HN/Yqp
学会が自らキチガイを演出する手口に栗卒
2022/01/03(月) 16:10:29.79ID:mJ9yMonw
RustはC++と同じ匂いがする
2022/01/03(月) 17:15:54.33ID:20WoIOil
このようにRustをやってる奴は性格が捻じ曲がってる
2022/01/03(月) 17:22:00.01ID:4XbgYwR9
rustってc++より難解だよな
こんな言語が流行るとは思わない
2022/01/03(月) 17:25:50.42ID:ZyFGqp6z
他の言語と比べればめちゃくちゃ難解だし、Rustコミュニティでもどうすれば簡単になるのかいろいろ議論されている
2022/01/03(月) 17:32:24.16ID:20WoIOil
ワイじゃないけど必死に褒めてるのにアンチだとか、ウジ沸いてる
2022/01/03(月) 17:37:11.03ID:5oO4lVIX
Rustファンも、こんなスレに書き込みしないで初心者向け解説でも書けばいいのにな。
386デフォルトの名無しさん
垢版 |
2022/01/03(月) 17:41:11.19ID:nW60oOQF
https://seiya.me/this-website-is-now-powered-by-kerla
このOS Rustで書かれている割にはメモリリークで落ちたりするらしんだけどなんで?
2022/01/03(月) 17:50:43.83ID:gvPAh7hb
必須じゃないけど他の言語も知らないRust初心者が異常に増えてきているからトンチンカンな推しをするだけで
コミュニティの増加は良いことだが、初心者が書いた意味不明なコードを直すのはあんたら
Null安全系の推しをしてるのはド素人
2022/01/03(月) 18:13:06.37ID:V/HN/Yqp
メモリ安全が守れればすべてが安全と謳ってる連中は原発は止めれば安心安全とほざいてた奴等と瓜二つ
2022/01/03(月) 20:13:37.59ID:r29FUtSQ
>>386
そもそもRustはメモリリークが起きないことは保証してくれない
参照カウントが循環参照にならないようにしたり、不要になった参照が残り続けたりしないようにするのはプログラマの責任
なのでプラグラム側になんらかのバグがあったのではないかと

メモリ管理周りを標準ライブラリやOSに全部任せられる普通のアプリケーションとは違って
全部自分でやらなきゃいけない自作OSだからバグなく作るのは難しいというのはあるかと思う
2022/01/03(月) 21:09:45.15ID:Tjf/rOJw
COBOLならメモリーリーク起こらないよ
391デフォルトの名無しさん
垢版 |
2022/01/03(月) 21:31:36.31ID:Qq3YHLjM
>>389
結局C++と同じで習熟甘いやつが作れば問題起きまくりなの?
2022/01/03(月) 21:51:41.06ID:WCyHxUxt
>>387
Rustを含めていまどきの言語がnull安全なのは常識
むしろC++やJavaが古すぎて様々な点で時代遅れにすぎない
もちろんRustはもっとその先へダングリングポインタ排除とGC排除を両立した点にある
2022/01/03(月) 22:09:21.15ID:DUDgVZbY
このように攻撃性と倒錯を丸出しを両立してしまうと初心者っぽさが出てとても引っ掛かりやすい
どこで覚えたのかNull安全からダングリングポインタという関連性がない事を言い出す。
ゴミくずが降り積もっていく・・・
2022/01/03(月) 22:13:14.24ID:WCyHxUxt
>>391
一般的にメモリ関係諸問題のうちメモリリークのみはGC利用でしか解消と判明している
しかし一方でRustではメモリリークを起こすのも意図的にしか起こせない
Rustには所有権の概念があるため特別に複数の所有権を認める特別な参照を
自分で明示的に使用した上でさらに循環参照を生じさせた時のみメモリリークが生じうる
もちろんそのような場面でも通常は弱参照を併用するためメモリリークは起きない
2022/01/03(月) 22:14:15.40ID:/9oDM4ll
>>386
自分で独自OSのランタイムやGCを作って
その上で稼働させるアプリがリークを起こすかどうかは
アプリだけじゃなく作ったランタイムやGCのロジックに依存するよね
2022/01/03(月) 22:17:11.19ID:nLr3i6Wg
nullで落としてるようなバカがnull安全な言語使っても同じく死亡するコード作るだけにしか思えんがな。
あれで救えるコードなんてほとんどないと思うが。
2022/01/03(月) 22:35:34.97ID:pC8I0HuA
もっとその先へ!草
上のOS記事の作者はリークというかフラグメンテーションの発生だと推測してるが絶対読んでないね。
「意図的にしか起こせない」はい嘘
2022/01/03(月) 22:36:13.58ID:CMKqgYgE
nullで落としてるようなバカって例えばGoogleのChromeチームとかかな?
まぁ全人類バカなのでしょうがないね
2022/01/03(月) 22:54:33.28ID:fEzSC6xc
ポインタ(参照)になぜかnull値を許してしまう欠陥言語でのみnull問題が起きる
そうでない普通の言語にとってnull安全は当たり前でありそれを意識することすらない
欠陥言語の存在に対してのみnull安全なる言葉の存在意義がある
2022/01/03(月) 22:56:23.92ID:pwAwOJBp
>>395
そりゃランタイムやライブラリがバグってたらしゃーないわ

>>396
いや、コンパイルエラーになるからそこでちゃんと直せばいい
まあバカがコンパイルエラーを回避することが目的になって余計ひどいことになる未来もあるけどw
2022/01/03(月) 23:21:21.46ID:T+WwhkSI
null安全はマジで当たり前すぎてメリットでもなんでもないから
nullの話なんてしたくないわ
2022/01/03(月) 23:22:53.63ID:T+WwhkSI
そもそもnullのある言語でもnull参照で死ぬなんてのは
よっぽどのクソコードでテストもしてないときだけだろ
2022/01/03(月) 23:26:20.57ID:r29FUtSQ
関数の定義からnullableが否かが分かるのがOption<T> のうれしいところと思う
加えて引数や戻り値の所有権が分かるのもRustのうれしいポイントかと
2022/01/03(月) 23:28:42.03ID:r29FUtSQ
fool proofの話をすると Option<T> でも闇雲に unwrap はできるので考えなしのプログラムだとクラッシュする点は変わらない
SEGVじゃなくpanicになるとか、落ちる可能性のある箇所が明示される点でnullよりはマシだが
2022/01/03(月) 23:34:21.19ID:T+WwhkSI
ほんま、そういうことやな
null安全で助かるケースなんてそもそもわずかしかないんだ
unwrapだとかゼロ除算だとかいろんなロジックミスで結局は落ちる

borrow checkerのおかげでデータ競合が起きない、とからへんが重要なメリットと思う
2022/01/03(月) 23:35:17.83ID:QWHqEk/O
いやいやww
2022/01/04(火) 00:27:33.52ID:bkmFGqSu
>>402
> よっぽどのクソコードでテストもしてないときだけだろ
そう言うのがボロボロ転がってますけどw
2022/01/04(火) 00:32:09.36ID:SqHXhMR8
こちらはNull安全協会です、今なら3,000円お支払い頂くとより安全になり免許証入れまでついてます。
本協会ではNullは許しませんが、DBなどの道路にNullが転がっています。
また外部値など入力が無いことを示すのはResult::Errや特異値:-1やNaNなどで表すものではありませんので
クソ設計はやめてください、Option::NoneでNullを示し、ほかの言語と同じく必ずmatchで検査してください。
unwrapもダメです。Null安全協会では皆様に頂いたご声援でド素人が語れてゴリラのマウントのように
ウッホウッホホと潤っています。またNull安全語り部Rusterの攻撃性は以上ですので近づかないでください
2022/01/04(火) 10:11:55.33ID:GnZE9ial
C++の利点は何だろ?
2022/01/04(火) 10:32:59.80ID:qi/CVito
>>409
自由であること
2022/01/04(火) 10:52:02.62ID:eYWJvdmr
Rustはコーディング刑務所
2022/01/04(火) 11:03:52.07ID:g6u5uJtl
Null安全性はまともなUXを提供したい場合に生産性を改善する道具
なくても落ちることはほとんどないみたいな視点でしか捉えてないなら価値を理解してない
2022/01/04(火) 12:02:58.31ID:ri86vl0z
誰のUXやねん
誰の生産性やねん
■ このスレッドは過去ログ倉庫に格納されています