結局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/
2023/06/21(水) 23:08:25.74ID:ZJTVCC4y
コンパイル先で使えるレジスタが0本か100本かわからないので全てメモリ上に確保して進められる
参照を渡すならばレジスタが余っていようとレジスタへの最適化はできない
しかし参照渡しを値渡しに最適化してしまいレジスタを使う可能性もありうる
いずれにせよレジスタの存在は忘れてプログラミングすることになる
2023/06/21(水) 23:27:01.13ID:NExILAZp
要するに物理的事情で強要されるのは許せるが数学的に強要されるのは許せないと
2023/06/22(木) 00:08:59.97ID:rxgTyL0O
>>525,530
大丈夫か?

>>554
大丈夫か?

ポエムか?

>>553
残酷な現実
2023/06/22(木) 00:20:09.63ID:lCfUltlm
>>557
>>>554
>大丈夫か?
皮肉じゃね?
2023/06/22(木) 00:34:12.55ID:3JQlcWdL
>>555
LLVM IRは逆にメモリの存在は忘れて(仮想の)レジスタのことだけ考えるモデルなんだがなあ

どこにも文書化されていない「俺様の考え方」に話を合わせろってスタイルやめてほしいわね
2023/06/22(木) 00:35:21.97ID:Sopf/1Je
企業はRust使いを望んでないのか
俺は硬い書き味への期待で個人で使うつもりで学んでる
身に付けるまでに多少の苦労があっても恩恵がデカすぎると思ってるから
つーのもts書いてるとjsとかP系言語で新規に何か書く気になれねえんだよな。tsの型なんて言ってしまえば柔軟性優先のユルユルでしかないのに、もうそれがないところには戻りたくない
またwasmをホイホイ使えるようになれば、有象無象のWEB系人材の中では多少マシな立ち回りができるんじゃないかと期待してるから
つまり個人の戦略としては、企業の求める人材像に伸るか反るかとは別であっても良いんじゃないの
2023/06/22(木) 01:00:34.66ID:tBxE2vDE
もっと有害な物がいくらでもある
企業が求めてないけど無害な物をいちいち問題視するのは安全第一ではない視点
2023/06/22(木) 05:55:26.99ID:Ais208bK
>>560
求人しても応募者がいないんじゃしょうがないだろ。
土方Rusteseが増えてからだよ。
2023/06/22(木) 06:28:24.38ID:jA6oBQqU
上の方で出てたけど、webから来た人とRustは相性はいいみたいね
ニーズも合う 確実にマルチスレッドだし、セキュリティに関しては最前線だし
2023/06/22(木) 06:30:48.10ID:sqPUKGaH
>>553
Rustじゃ何も作れないんだからしゃーない
2023/06/22(木) 07:29:12.62ID:GA9cMKb9
>>559
LLVM IRのレジスタはCPUのレジスタとは全く別物
LLVM IRのレジスタは書き換えができない一方で無限の個数を持ててCPUのレジスタとは真逆の性質を持つ
あくまでも中間言語であって各プログラミング言語とも各CPUアーキテクチャとも独立している

一方C++やRustなどのプログラミング言語の変数においてレジスタは直接無関係で仮定されない
(staticでない)ローカル変数はスタック上にそのメモリ領域を確保したものとして動作するとみなしてよい
そのためレジスタを持たないWebAssemblyでも動作することができる
レジスタを持つ環境ではそのコード生成時の最適化でレジスタ利用ももちろん可能
各プログラミング言語とレジスタは直接関係ない
2023/06/22(木) 09:53:39.17ID:kNfUaD9C
futures::select を macro で使いたいんだが
use futures::{pin_mut, selct, future::FutureExt};
だと select! が無いと言われ
use futures::{pin_mut, future::{FutureExt, selct}};
だと select() は function だと言われる
select! どこいったし
567デフォルトの名無しさん
垢版 |
2023/06/22(木) 09:55:38.17ID:kNfUaD9C
>>431
富豪がタイタニック冒険で沈没して酸素不足
酸素に金払わないとこうなる例
568デフォルトの名無しさん
垢版 |
2023/06/22(木) 10:01:29.99ID:kNfUaD9C
>>473
実際C++/Cのメモリ管理をわきまえてりゃメモリバグに遭遇する確率は低い
逆にRustにしたからと言ってメモリバグ0になる訳じゃない
メリット<コストなら移行しないだけ
2023/06/22(木) 10:04:09.32ID:kNfUaD9C
>>475
>だからRust信者は、良いソフトを作ったことが無い人が多いはずだ。
前半が正しいだけに結論が残念だな

だからRust信者は、C/C++に挫折した人が多いはずだ。
なら同意
2023/06/22(木) 11:04:46.33ID:kNfUaD9C
>>566 自己解決しましたほんとうにありがとうございました
2023/06/22(木) 12:19:03.55ID:6tUlm0fw
まぁ覚えても仕事で使う人はほとんどいないだろうから覚えてもおそらく1円の特にもならない人がほとんどやろ
そう言う人が覚えるメリットはないし覚えなくてもいいやろな
オレは大学でソフトウェア工学やってたから興味あるので勉強するけどそうでもなけりゃやる意味ないかもな
2023/06/22(木) 13:08:06.44ID:uVGpMx3S
>>571
やって来た言語の一覧と感想書いてみて
2023/06/22(木) 13:48:40.36ID:dV8803l+
>>572
言うほどないけど
BASIC : 最初の一歩には最適かな?
C : 感動したな
Perl : さらっとなんかやりたい時は便利だった
Objective-C : NeXTでやった、大学時代、最先端やってる感だったけど、GUI周りがサクサクできるのは楽しかったかな
Eiffel : これも大学時代、Object指向大流行の時代、まぁ学術的な意味しかない感じ
Lisp : 計算論の勉強のときに必須だった、ともかく大学時代の勉強で後で実務に役に立ったものはない、しかし勉強して無意味だったとはもちろん思わないんだけどね
C++ : 就職してから、仕事で覚えた、イヤもなんもなし、できなきゃ飯が食えん、まぁ文句なしの業界標準
JAVA : コレも仕事、職場であったけど自分であんま組んだ事ない、できたコード見て綺麗やなとは思った
Javascript : コレは組んだ事もほとんどないくせに教えさせられた、必然的に憶えたけど
Haskell : 趣味、関数型流行の先駆け、久々のLisp系、ちょっと感動、流行ってほしかったけどいつの間にか消えてしまって残念
Rust : 現在趣味で勉強中、コレも消えちゃうのかな
2023/06/22(木) 15:55:25.89ID:wLpLG8yK
>>573
なんと高見の見物、消えても構わない趣味限定のHaskell&Rust
現実逃避ポエマーによる反実仮想風説の流布を咎めてください
2023/06/22(木) 17:21:07.81ID:8oSiMZ4Q
アセンブラとか含まないんだ…。(自分ならお約束的にZ80とか混ぜてる
2023/06/22(木) 18:53:40.95ID:IoVQvpRh
>>575
その後のアセンブラ経験は?
2023/06/22(木) 18:58:27.21ID:ahoR9I3I
>>573
50歳くらい?
2023/06/22(木) 18:59:55.17ID:IoVQvpRh
組み込みの人でないなら、少なくとも32bitCPU以降じゃないとお約束は通じない(最悪、老害扱いされる)
2023/06/22(木) 19:00:47.80ID:IoVQvpRh
>>573はそこを踏まえてるのかも
2023/06/22(木) 20:21:53.12ID:pmtV0Gzv
こんなしょーもないことでマウントする>>575は複オジなのだろう
しかも、このスレで頻繁に出る低レイアバトルが8bitマイコン前提だったとはねw
2023/06/22(木) 21:16:02.50ID:tBxE2vDE
透視能力と予知能力ってどっちが良く当たると思う?
時と場所の範囲を広くできる方が当たるよね
582デフォルトの名無しさん
垢版 |
2023/06/22(木) 21:36:30.88ID:j2nkiOZ7
JavaをJAVAって書く人にはコードを触らせるなってばっちゃが言ってた
2023/06/22(木) 21:40:04.58ID:NoXiGGWR
組み込みおじさんだからな
話がすげー古いんよ
Z80とか誰がやってんのよw
2023/06/22(木) 21:42:09.97ID:NoXiGGWR
>>578
32bitもとっくにオワコンだぞ
2023/06/22(木) 22:16:24.80ID:QxznT6cy
>>583
実際組み込みは息が長いよ
ちょっとQiita見るだけでも70才位までいる

>>584
32bit経験者ってだけで老害扱いはないだろうけど、CPU自体はオワコン
2023/06/22(木) 22:24:46.01ID:4TKNAH3Z
32ビットRISC-Vチップ1個120円(海外のセット販売だともっと安い)が、
Rustでプログラミングできるそうだけど。
2023/06/23(金) 08:26:48.97ID:W2HR8Cls
秋月でも1個40円ですけど
これでやるの?

https://akizukidenshi.com/catalog/g/gI-18062/
2023/06/23(金) 08:52:09.08ID:caqXKb/X
それの書き込みツールがRustらしい 波はそこまできてる
https://github.com/ch32-rs/wlink

Rust to C みたいなトランスパイラでいいのかもね
LLVMなら基本的にはできるんだろうから、なんとかなるだろ
手で書くから問題なんであって、中間表現としてのCに罪はない
clangエアプなのでしらんけど
2023/06/23(金) 08:54:25.59ID:caqXKb/X
あ、ちょっとちがった
書き込みツール、Rust版ができてる、がより正確
2023/06/23(金) 11:07:43.42ID:iW3SPowC
やっとRustの使い道ができたな
2023/06/23(金) 12:16:36.79ID:A31w3P6P
5chにもRedditやSOのupvote/downvote欲しいよなあ
このスレの存在やRustスレの衰退ぶりを見てて思った
2023/06/23(金) 15:25:09.05ID:LPMfBj5g
真面目に人の話を聞いてから否定したり、その人の所為にするよりは
人の話を聞かないという手もある
593デフォルトの名無しさん
垢版 |
2023/06/23(金) 15:57:43.27ID:CBQbNpRi
>>591
まあ、5chの運営は政治思想的な理由で大規模な書き込み規制を行うゴミ組織ですから、あまり期待しない方が良いのでは?
594デフォルトの名無しさん
垢版 |
2023/06/23(金) 16:00:24.39ID:CBQbNpRi
打倒Numpyを目指してRustでNdarrayベースでクレートの開発目指してんだけど、NdarrayやNumpyに追加して欲しい機能とかある?
2023/06/23(金) 16:21:21.77ID:lCxAQSJF
Rustにpyo3あるから便利よね
2023/06/23(金) 16:59:57.92ID:a5yJLPsE
>>594 良いね、まず過去現在の類似の試み、その状況を調べた限り挙げて見ては?
2023/06/23(金) 17:01:47.15ID:vySTEmrO
>>594
requires_grad=trueで勾配計算機能を追加
GPU転送機能
2023/06/23(金) 17:17:00.14ID:a5yJLPsE
>>594
自分の試みが何が優位なのか、そのPOC、goalとnon-goal
機能拡充の前にPOCだけでも

ただ闇雲にやってみた、だと就職活動で逆効果
2023/06/23(金) 17:59:27.60ID:vySTEmrO
ルーパチし忘れてるぞ
2023/06/23(金) 18:04:33.34ID:yL4QamKB
商用アプリではほぼ使われない。
理由は思想。
2023/06/23(金) 18:26:18.78ID:yx0nUQ6l
認証受けずモグリで運営していたのは問題だが
爆発じゃなくて爆縮400気圧
潜水艦の操縦がゲームコントローラとかワクワク感たまらねぇ
Rustで造ってれば安全だったはず
2023/06/23(金) 18:29:00.54ID:yx0nUQ6l
>>594
BLAS
Complex Linear Algebra
2023/06/23(金) 18:35:21.00ID:yL4QamKB
Rubyは、パッケージシステムやインストーラーを強要しなかったから
普及したが、node.jsは強要したので普及が遅いかも。
Rustもcargoを強要するのでダメ。
2023/06/23(金) 18:46:22.56ID:TFVs7aSp
>>601
水深4000フィートまで耐えられるよう建造して
水深4000メートル潜ろうとして途中で水圧に耐えられなかった
長さの単位が統一されていないUSAだから起きた
メートル法に統一しているべきだった
この件はプログラミング言語は関係なさそうだ

しかし似たような事例で文字エンコーディングの不統一のためのバグが昔あった
Rustなら言語レベルでstrとStringがUTF8に統一され正当性チェックもあるため
入力の間違いやプログラムの間違いで取り違えたまま実行されることはなさそうだが
2023/06/23(金) 18:46:27.54ID:yL4QamKB
Rustは全体的に、実際の使い方を無視した作り。
2023/06/23(金) 18:52:53.90ID:TFVs7aSp
>>603
cargoを使いたくないなら使わなくても使える
$ rustc foo.rs
これで実行可能バイナリfooが作られる
$ ./foo
あとはrustc --helpなどを見てくれ
2023/06/23(金) 18:56:09.97ID:yL4QamKB
>>606
恐らくそれだとcrateが使えないので、cargoを強要される。
C/C++ではありえない設計思想。
2023/06/23(金) 18:57:27.27ID:yL4QamKB
そして、crateを使うことで、オープンソース思想に染まった一員
のようになってしまい。オープンソースが指示されているかのような
嘘の証拠を作ってしまう。
2023/06/23(金) 19:30:18.50ID:caqXKb/X
オープンソース思想っていうか、オープンソース世代だね

プロプラもオープンソースも貪欲に利用できる大胆さがほしいね
2023/06/23(金) 19:31:29.42ID:yL4QamKB
また、cargoを使うことで、exeサイズの増大が起きるだろう。
2023/06/23(金) 19:53:35.15ID:TFVs7aSp
>>607
できるよ
まずクレートbarをコンパイル
$ rustc --crate-type=rlib bar.rs
ライブラリファイルができた
$ ls -l libbar.rlib
ライブラリのある場所を指定してコンパイル
$ rustc -L . foo.rs
できあがったので実行
$ ./foo
2023/06/23(金) 19:55:15.02ID:yL4QamKB
しかし、現実的に出来ないんだろうて。
そんなに簡単なら、cargoなんて不要なんだから。
2023/06/23(金) 21:20:51.32ID:LDs+BN7c
SOのサーベイの所得プロットなんだけどZigの所を見る限り、普通に受け止める「言語別所得」と違う
https://survey.stackoverflow.co/2023/#section-salary-salary-and-experience-by-language
https://www.itmedia.co.jp/news/articles/2306/23/news109.html
https://image.itmedia.co.jp/news/articles/2306/23/l_dy_fig_04.png

まずZigの平均経験が10年以上が有り得ない(Zigは2016~)
あと、ホバーすると出てくる数字だと
$103,000 * 259 = $ 26.7m = 38億円 となって、
現段階では純Zig案件でこんな額は注がれてるイメージが出来ない
(せいぜいZig Software Foundationトータルで$1m寄付が有るか無いか程度)

言語別というより、言語扱う人別(複数延べ)データとして見ないと可笑しなことになる

Zigの場合は、250人位が仕事は他言語、完全趣味+OSSでZig、の方が近いのでは
2023/06/23(金) 21:27:03.23ID:LPMfBj5g
cmakeやcargoが必要なのは、gccとllvmの仕様が統一される保証がないから?
2023/06/23(金) 22:27:58.10ID:LDs+BN7c
それと愛され言語の呼び名が変わったけど
https://survey.stackoverflow.co/2023/#technology-admired-and-desired
Go
desired-admired
20.59%-62.45%
所得プロットでの"人数" 6650

これも下と比較すると全く整合性がない
https://go.dev/blog/survey2023-q1-results
satisfied = 92%
n=5280

調査による差が激し過ぎでは
616デフォルトの名無しさん
垢版 |
2023/06/23(金) 23:53:15.64ID:IZaiassJ
>>602
何かBlasはndarrayクレートのオプションをfeatures = ["blas"]で、Cargo.tomlに設定すると使えるらしいですよ。
617584
垢版 |
2023/06/23(金) 23:59:58.87ID:4d9/FWfe
>>587
いや、俺が見かけた話は CH32V003 でなく CH32V203。
2023/06/24(土) 00:00:59.86ID:ObyKbwEW
間違えた。俺は584でなく586だった。
2023/06/24(土) 00:29:26.68ID:1dD5h2Tm
かつて日本人が1000人いたら、300人くらいはNECのマシンを
買ったことがあった。
RedHatはかつてのNEC以上に大儲けしていることになっているが、
fact checkが必要で、1000人いても、一人も世話になってない
気がするぞ。
つまり、オープンソースはfakeだらけなんじゃないの。
だれが、Linuxのサポートなんて必要としているものか。
2023/06/24(土) 00:50:52.07ID:1dD5h2Tm
そもそも、そんなに大人数の会社のサポートが本当に儲かっている
なら、誰でも真似できるはず。RedHatに優秀な人材なんて
入社するわけ無いんだから、その辺のマクドナルドのアルバイト
みたいなのにコールセンターで「サポート」させればいいだけ。
でもRedHatに続く企業が現れないと言うことは、RedHat
は、左翼によって捏造された企業である疑いが濃厚。
いつも左翼はそうやって嘘を付いて人々を操る。
2023/06/24(土) 00:54:46.96ID:1dD5h2Tm
RedHatなんて、多分に嘘だろうけど1万9,000人も社員がいて
年間4000億円もの収益があるとされている。
サポートで収益がそんなにあるわけない。
誰がそんな有象無象の社員の電話サポートなんて必要とするものか。
じゃあ聞くが、Windowsのサポートなんて何回電話したこと有る?
無料でさえ電話しない。
金取るのにそんな電話するわけ無い。
つまり、捏造。
オープンソースは、カルト宗教で信者達が捏造しているに決まってる。
2023/06/24(土) 01:00:58.75ID:1dD5h2Tm
1万9,000人もコンサルタント(?)がいて、そんな人のアドバイスで
ことが改善するわけ無いことは、誰の目にも明らか。
カルト宗教の力が無ければ、とっくに衰退しているはず。
そもそも技術力が無いから、サポートが必要なOSにしか育て
られないわけで、サポートを必要とするのは技術力が無い
ことの証明になっている。
そんなことは、誰でもわかることで、パッパラパーでなければ、
そんなテレホンサポートになんて金払って電話するわけ無い。
カルト信者の集団捏造に決まってる。
githubは、中国の国営企業がスポンサーの大多数を占めていて、
共産主義のプロパバンダ組織になっている。
そして、5chのLinux板とプログラマ板は、中国の五毛党による
工作活動が盛んで、オープンソースと社会主義を礼賛ばかりしている。
2023/06/24(土) 01:10:03.43ID:hWkUa9G8
あのーCppとRustのどっちが良いのかと関係ない話すんのやめてもらえますか?
2023/06/24(土) 01:13:08.69ID:1dD5h2Tm
SDGsで考えれば、そんなカルト宗教集団の作ったものを使うことは、
カルト宗教に利することになってしまうからダメだ。
2023/06/24(土) 01:15:57.63ID:hfFEmYqp
>>619-622
まーた始まった
書き込みを見ていると長いこと生きている筈なのに
なーんでそんなに世間知らずなの?
2023/06/24(土) 01:17:50.98ID:1dD5h2Tm
また五毛党のオープンソース支持が始まったぞ。
2023/06/24(土) 01:21:09.80ID:1dD5h2Tm
若いと、世界が制御下におかれていることが分かって無い。
学校では世界がまるで実力社会であるかのように教えるからな。
現実は嘘つきや捏造であふれかえっている。
2023/06/24(土) 01:28:41.72ID:1dD5h2Tm
そもそも、平均寿命が日本より8.15歳も短い国がまともなわけが無い。
人権だ自由だなんて言っても、実際には助ける振りしてるだけで
人を助けないし。
最近じゃ彼らの思う「自由」の限界が来て超監視社会になっている。
アメリカではネットすら監視装置として使うことが当たり前になっているし。
当然日本の個人も監視されている。
これは妄想ではない。スノーデン氏などのハッカーにも指摘されているし。
アメリカのGDPが高いのも、はっきり言って寿命が短いからだろう。
2023/06/24(土) 01:32:20.34ID:1dD5h2Tm
アメリかは911事件によって、初めて恐怖を味わった。
それにより初めて自由を制限することこそ重要である事を悟った。
彼らは極端なので、超監視社会に移行した。
彼らはやっと、自由を制限しないと、自分の自由も守られない
ことを知った。
世界の国の何週も後を行っている国家。
嘘つき大国で、あらゆることが嘘。
Rust人気も嘘。github人気も嘘。オープンソース人気も嘘。
RedHatが大儲けしていると言うのも嘘。カルト信者の
集団協力により、数値が捏造されているだけ。
630デフォルトの名無しさん
垢版 |
2023/06/24(土) 01:43:01.82ID:hfFEmYqp
>>621
決算捏造したら犯罪だよ
そんなことも知らんのか?
2023/06/24(土) 01:48:07.36ID:1dD5h2Tm
>>630
・カルト信者による集団行動。
・ネットサポートなんて実際にやったかどうかの証拠が残らず
 事実かどうか確認できない。
632デフォルトの名無しさん
垢版 |
2023/06/24(土) 01:51:03.98ID:hfFEmYqp
>>631
>>621
>RedHatなんて、多分に嘘だろうけど1万9,000人も社員がいて
>年間4000億円もの収益があるとされている。
この数字はどこから出した? 決算として公表されたものじゃないのか?
2023/06/24(土) 02:19:05.92ID:3hzbY+kw
アメリカのハッカー文化は中国の工作だった!?
2023/06/24(土) 03:10:24.26ID:jT+bc5KP
Linuxって寄付がおおきいんじゃなかっけ?
大企業でもその上でアプリを作って儲けようようという算段があるから
インターフェースだけしっかり作ってくれれば自社製品で使うのはそんなに
大変じゃない

日本との文化の違いだな
635デフォルトの名無しさん
垢版 |
2023/06/24(土) 05:49:32.16ID:S/KOiw3o
Rustのndarrayはonesとzerosを高次元のの形状に関して実行速度を計測するとなぜかonesの時がzerosよりも6桁くらい実効時間が遅かった。これ、絶対バグあるな。
636デフォルトの名無しさん
垢版 |
2023/06/24(土) 06:02:34.14ID:aH3683O8
かすだよ
637デフォルトの名無しさん
垢版 |
2023/06/24(土) 06:06:16.85ID:aH3683O8
>>613
HTML/CSS がプログラミング言語部門の二位ってなんの冗談ランキングだ?
2023/06/24(土) 09:17:43.46ID:gTqPfmEf
数学100点マンが100点をとったのは何十年も前でマイクロソフトの一部の環境しか知らずオープンソースが大嫌いなのか
2023/06/24(土) 10:03:50.07ID:XV/ZbH2M
非標準ライブラリを弄らないと何も作れないC
unsafeを使わないとライブラリを作れないRust

STLやboostだけでも成立する競プロ
出題範囲内だけで成立する何十年前の数学
2023/06/24(土) 11:04:11.18ID:1s9t2nQ4
>>639
そろそろunsafeの意味を覚えろよ
unsafe = 人間がコードの安全性を保証しなければいけない部分
C/C++はプログラム全体がunsafeであることが様々な問題を引き起こしてきた
そこでunsafeな部分をできる限り小さく限定することで問題を根本的解決することになった
2023/06/24(土) 11:11:37.55ID:afjv60iV
C/C++は、普通、やっちゃだめなところは避けて使う
当たり前のことを守れないコーダーが現場に大量導入されて今に至る

Rustは、普通、unsafeを最小化して使う
…おなじことになるだろ?
2023/06/24(土) 11:32:51.54ID:1s9t2nQ4
>>641
Rustはほとんどのケースで一般プログラマーがunsafeを使う必要がない
もしunsafeを使っていたら厳重にチェックされ必要ないのにunsafeを使うプログラマーは排除される
どうしてもunsafeを避けられない構造が発見されると一般化されるとともにモジュール内に閉じ込められ多数の監視の元に管理される
Rustの標準ライブラリもそうしてできあがった
2023/06/24(土) 11:33:07.59ID:hWkUa9G8
デフォルト全危険 人間が責任を持たねばならないのが全域

デフォルト全安全 明示したところだけは人間が責任を持てば良い

同じと見るか違うと見るかは自分次第
ただしチームメンバーのことを信用できるか? チームメンバーが自分を信用していると確信できるか?
ここを考えるとハゲ具合は一目瞭然やろ

他言語バインディング関連は…知らんので全部Rustで置き換えろ
2023/06/24(土) 12:30:06.63ID:YdMK17ri
struct Hoge {
Foo* foo;
};

この構造体が所有するfooはこの構造体が所有しているのか?
所有している場合、他に外部で参照しているオブジェクトはないのか?
それは弱参照としての扱いかそれとも所有者として振る舞っているのか?
fooは共有されるのか?
fooの生存期間は?
fooの初期化方法は?
デストラクタなどで勝手に破棄して良いのか?
(他に参照がある場合、ダングリングポインタ発生)
このオブジェクトは変更されるのか?されないのか?
このオブジェクトがコピーされる時の動作は?
クローンすべきなのかムーブすべきなのか
ポインタのコピーで良いのか?

C/C++の問題点はこれに尽きる
何もわからないのだ
C++だともう少し明確になるが問題は変わらない
上記を全てクリアにするために文法や仕組みを考えたらrustになったと言う話
645デフォルトの名無しさん
垢版 |
2023/06/24(土) 12:53:31.49ID:OQHAeLQi
>>639
>unsafeを使わないとライブラリを作れないRust

ほんそれ
はいはい御安全に
646デフォルトの名無しさん
垢版 |
2023/06/24(土) 12:55:13.50ID:OQHAeLQi
>>640
>そこでunsafeな部分をできる限り小さく限定することで問題を根本的解決することになった

違うね
unsafeが散在して同じ事
647デフォルトの名無しさん
垢版 |
2023/06/24(土) 12:59:38.18ID:OQHAeLQi
>>643
>デフォルト全危険 人間が責任を持たねばならないのが全域
>デフォルト全安全 明示したところだけは人間が責任を持てば良い

ネガティブリストの方が扱いやすいが漏れが発生しやすい
大規模になるとポジティブリストより面倒臭いぞ?
2023/06/24(土) 13:03:08.56ID:OQHAeLQi
>>644
おまいはドキュメントも参照せずにAPI利用する糞プログラマ
2023/06/24(土) 13:41:17.82ID:Ne+ocOnc
C++ってまともなドキュメントなんてあったっけ
2023/06/24(土) 13:41:50.49ID:afjv60iV
> 必要ないのにunsafeを使うプログラマーは排除される

これができるかどうかだな

ま、unsafe使ったコード全部排除したらいいだけなんだが
2023/06/24(土) 13:55:59.31ID:mvYogJe7
>>648
その観点でドキュメントAPIに全面依存の遅れた考えの人がまだいることに驚いた
ドキュメントは書き忘れたり書き間違えたり更新でコードと乖離したりするうえに
ドキュメントを読まない人や読み間違える人や更新された時に追随を忘れるなどミスは多岐に渡る
人間に大きく依存していることが敗因なので可能な限り自動チェック化が進められてきた
2023/06/24(土) 14:13:04.49ID:hfFEmYqp
>>650
> 必要ないのにunsafeを使うプログラマーは排除される
生ポインタやnewを直接使うプログラマーを排除すれば良い
653デフォルトの名無しさん
垢版 |
2023/06/24(土) 14:15:01.22ID:hfFEmYqp
>>649
その「まともなドキュメント」の用途にもよるが
C++には規格書がある(Rustにはまだない)
2023/06/24(土) 15:23:36.60ID:mvYogJe7
各企業がコンパイラを乱立し始めると統一のために規格書が必要となる
Rustは大手ITが手を組んでRust Foundationが支える単一コンパイラだから規格書は不要だろう
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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