Google&MS「バグの70%はC/C++。Rustにする」 (812レス)
上下前次1-新
707: 2024/12/19(木)20:20 AAS
rustくらいすぐにできるやろ
でも世の中はなんちゃってエンジニアばかりで
当たり前なことが出来ないのばかりだからなぁ
708: 02/20(木)05:50 AAS
マイクロソフトさん
709: 03/22(土)10:59 AAS
>>702
最近はメモリ安全をC++にも導入しないと未来はないっていってるので高く評価してそう
JavaとかGoみたいなGC言語しかないころはスマートポインタ使えよばーか程度だったと思うし
710: 03/22(土)22:32 AAS
C++自体にどんな機能を追加してもRustと同レベルに安全にするのは不可能だと結論は出ていて
CarbonなどC++からちょっと変える言語を作るしかないけどどれも決定打に欠けていて
巨大で一枚岩のシステムを除けば部分的なシステム更新の再構築時にRust化していけばよい流れになってる
711(1): 03/23(日)03:47 AAS
そうなるとこんどは、RustにC++が合わせていくことになる
そうすると、自然にC++にも、Rustが実績を積んだ安全策が流入してくる
今回もそれでいい C++はそうやって、外圧で進化してきた
712: 03/23(日)06:38 AAS
久しぶりRust触ってるけどなんか面白いかもしれん
優秀すぎる言語はあまり可愛いとは思わないのだが
しばらくRust書いてみるか
713: 03/23(日)10:11 AAS
>>711
C++は言語仕様を変えない限り見捨てられる
例えば未定義動作を無くさないとな
714(1): 03/24(月)10:57 AAS
未定義は未定義なので、処理系が「その未定義、設定ONにしてくれたら全部潰します」ってしてくれてもいいのよ
いいはずなのよ
未定義になりかけたら落とす、確実に落とす、でもだいぶ違うとおもう
しばらくはDoSの嵐になるだろうけど、リスクの潜在が放置されるよりいい
715: 03/24(月)22:12 AAS
>>714
いいえ
プログラミング言語に未定義動作があってはいけません
そこがバクの元となりセキュリティ脆弱性にも繋がります
人間が未定義動作を踏まないよう自己責任で注意しながら進まなければいけないC/C++を排除していこうという動きになっている要因の一つでもあります
716: 03/24(月)22:12 AAS
「Google Chrome」のフォント処理がC/C++言語からRust言語に
「FreeType」からの移行でメモリ安全性を改善、脆弱性が出にくいライブラリに
外部リンク[html]:forest.watch.impress.co.jp
717: 03/24(月)22:34 AAS
出にくいってなあ
718(1): 03/24(月)22:37 AAS
メモリ管理手動にしたせいでRustかなり性能悪いと聞いた
719: 03/25(火)01:13 AAS
ん?メモリ管理が手動なのはC/C++だろ?
Rustはメモリ管理はコンパイラ任せ
720(1): 03/25(火)01:50 AAS
ガベージコレクション無しにしたけど状況に対応しきれなくて復活
JavaのStringみたいなメモリ共有の仕組みを非推奨にしたせいでコピー&デストラクタ走りまくり
721: 03/25(火)11:04 AAS
>>718
>>720
そんなガセ話を書いても誰も騙される人はいないぞ
RustはC/C++と同等の性能を出せるため
ネットインフラも次々とRust製へ置き換わっている
クラウドやCDNなどもRust製が増えている
具体的にAWSやCloudflareなどでもRust製へ置き換え
722: 03/25(火)12:19 AAS
C++と同程度の性能をうたってる言語のベンチマークでなんかRustだけ遅かった
723: 03/25(火)13:28 AAS
現実はこれ>>652
Rustで書いたら性能アップした
5chも使っているCloudflare
724: 03/25(火)15:28 AAS
>>652
これすごいけどさ
NGINX自体もC言語で書かれて高速軽量がウリだったのに、それよりも性能向上しつつCPUとメモリ消費を3分の1って何をしたんって思う
オープンソース化されたら世の中のNGINXを置き換えるかも
725: 03/25(火)15:37 AAS
新機能を追加したが機能を削減してないとは言ってない
726: 03/25(火)15:47 AAS
CDN世界シェアトップのCloudflareが現実にWebトラフィックをそのRust製で捌いているのだから実用性が十二分にある
727: 03/25(火)16:26 AAS
unsafe {}
728: 03/26(水)02:53 AAS
後発のRustがデキるのは当たり前
自分も、仕事で使えと言われたら使う
でも自分用にはC++がいいんだなあ
Rustの知見はよC++に来い
729: 03/26(水)10:34 AAS
C++は良いところが全くないからなあ
C++は未定義動作という地雷原を歩く
C++はムーブが手動だからムーブにコンストラクタに後始末など無駄な記述が多くなる
730: 03/26(水)10:40 AAS
まあ、C++が迷走し出した辺りから使わなくなったなぁw
731: 03/26(水)17:25 AAS
確かに
732: 03/26(水)22:14 AAS
何かしらの理由でC++にこだわり続けないといけないようなシステムは、おそらくコンパイラの更新も禁じられてるのでいくらメモリ安全をもたらす新機能がC++に増えても使えない
C++にこだわらないでいいようなプロジェクトは、何年後に形になるかわからないProfilesフレームワークの仕様決定を待つ暇があったらRustを使えばいい
733: 03/31(月)15:20 AAS
Git 2.49リリース — 各種の高速化とRustコードの導入、Git 3.0を見据えた重要なリリース
外部リンク:techfeed.io
4. Rust コードの導入
最近はさまざまなプロジェクトで安全性や高パフォーマンスを得るために Rust が採用されているが、Git もその流れに乗り、 Git 本体の一部コードが Rust で実装され始めた。
いきなり大部分が Rust になるわけではないが、今後の拡張や改善でセキュリティや安定性が向上する可能性がある。
普段使っている人にはあまり見えない変更だが、内部の品質向上の一環として要注目だ。
734: 03/31(月)20:04 AAS
unsafe{}
735(1): 03/31(月)20:08 AAS
オブジェクト指向は命にかかわるものに使えない
Rustもオブジェクト指向でないといいつつJUMP命令先が可変なので
命にかかわるシステムには使えない
医療機器や自動車がRustになる日などとても想像できない
736: 03/31(月)21:11 AAS
>>735
ほなCに命賭けるんすか?
737: 03/31(月)23:42 AAS
みんなそうしているはずだ
738(1): 03/31(月)23:49 AAS
コンパイルイメージがくそでかくて何仕込まれてるかバイナリ見てもわからないとか
怖くてマシンに載せることすらためらわれる
739: 04/01(火)12:21 AAS
Cに命を賭けてきた人々の死体の山の上で俺たちは生きている
740: 04/01(火)12:46 AAS
>>738
Rustはコンパイルによる生成コードのサイズを小さくできることがメリット
そのためサイズが小さいと有利なWebAssemblyなどでもRustを用いるのが主流
逆に実行速度優先のために単相化できるのもRustのメリットでこの場合は生成コードのサイズはもちろん大きくなる
741: 04/01(火)14:56 AAS
Delphiも実行速度は速かったけどバイナリサイズもでかかったから似たようなもんだ
742(1): 04/01(火)17:42 AAS
Cは早いし小さい
マネージド言語に比べたらめちゃくちゃ小さい
743: 04/01(火)18:49 AAS
マネージドコードと比べるな
744: 04/01(火)19:50 AAS
>>742
Rustも同じ
RustはCと同じことが全てできる
Rustはインラインアセンブラも対応している
745: 04/01(火)19:53 AAS
そこは張り合うとこじゃない
C++派だが、C++もへたくそがこねくったソースからは、スパゲッティみたいなバイナリが吐かれるからな
それはおなじ
746(1): 04/01(火)20:55 AAS
前から言われていることだが
所有権の確認などツールを使えばいいのではないか
747: 04/01(火)21:48 AAS
現実世界にそんなツールが無いことを除けば素晴らしいアイデアだね
748(2): 04/01(火)22:12 AAS
メモリ安全を確保するツールなど山のようにあるはずだ
749: 04/01(火)22:16 AAS
なんかなんとなくRustに置き換わっていっているが
Rustにして成果が出たというようなレポートを見ない
750: 04/01(火)22:26 AAS
>>748
そんなツールは無い
世界中で長年色々な試みが行われてきたが
C/C++の言語仕様が悪いと結論が出ている
そのためIT各社がRustへと舵を切った
751: 04/01(火)23:58 AAS
>>746
>>748
おすすめのツールおせーて
752(1): 04/02(水)00:03 AAS
ちょっとぐぐったらいっぱいでてくる
Valgrindが一番いっぱいでてきた
753: 04/02(水)00:11 AAS
>>752
> 最もよく利用されている標準のツールはMemcheckである。Memcheckはほぼすべての命令に特別な計測用のコードを挿入し、「正当性」(初期化が行われるまでは、割り当て済みでないメモリはすべて無効であるか、未定義である)があり、「アドレス可能」(メモリアドレスが割り当て済みで、解放されていないメモリブロックを指している)であるかという情報が、それぞれVビットおよびAビットに格納されているかを追跡する。
………
> こうした機能への代償として性能が低下する。Memcheckの元で動作するプログラムはValgrindなしで動作する場合と比べて5倍から20倍遅く、より多くのメモリを使用する(メモリ確保ごとにかなりのメモリを追加で消費する)。
うーん…
Rust使ったほうがよくない?😅
754: 04/02(水)00:15 AAS
そりゃあ実行時に検出するよりはコンパイル時に弾くほうがいいだろうな
755: 04/02(水)00:20 AAS
監視・検出処理を挿入してランタイムにメモリリークチェックします
vs
メモリリークのおそれがあるコードをコンパイルエラーで弾きます
ファイッ
756: 04/02(水)00:23 AAS
偉そうに理想論ぶちあげてるくせに、そういうツールの実務での利用経験すらねえのかよ
757: 04/02(水)00:55 AAS
静的解析機能もついてたはずだ
758: 04/02(水)11:27 AAS
あっちを立てればこっちが立たずみたいなことが結構あってあんまり意味ないのよねその手のツール…
759: 04/02(水)11:57 AAS
コンパイルが通ればメモリ安全性だけでなくデータ競合すらないことが保証されるRustへIT各社移行中
760(1): 04/02(水)13:48 AAS
データ競合のバグなんて生涯でまだあったことないんだが
761: 04/02(水)15:07 AAS
>>760
CPUマルチコアを生かすプログラミングしたことすらない初心者か?
762: 04/02(水)16:26 AAS
ないな
763: 04/02(水)18:40 AAS
いままでC言語でなにして遊んでたんだ
764: 04/02(水)19:03 AAS
スレッド関係ないときまで余計なこと考えんといかんじゃないか
765(1): 04/02(水)19:18 AAS
可読性ゼロのC++テンプレートメタ地獄よりはマシですわw
766(1): 04/03(木)17:20 AAS
ライブラリ作成は数学の得意そうな人とかに任せますわw > テンプレメタ地獄
Rustだったら安全と投資家も認めた
はよその知見C++に来い まったく同じにやればいいんだ
767(1): 04/03(木)17:44 AAS
>>766
C/C++の言語仕様があまりにも酷いためRustのような安全性を導入できないことが判明している
解決策としてはC/C++とは互換性がない制約と拡張を行なうしか手がない
特にC/C++の未定義動作は全て無くす必要があり根本的に別の言語となってしまう
そのため今後の進む道は『C/C++改造版』ではなくRustが選ばれた
768: 04/03(木)17:58 AAS
Rustもマクロあるんよね
769: 04/03(木)18:42 AAS
Rustのマクロは強力すぎる分、意識高い系に触らせると
C++のテンプレートメタパズルよりもっと酷いものがシステムに持ち込まれると思う
770: 04/03(木)19:05 AAS
マクロは関係ない
ジェネリック関数を記述する時に
Rustは関数そのままに型名をジェネリックパラメーターに置き換えるだけでよい
C/C++はテンプレートを使わないと書けない
771(1): 04/03(木)21:41 AAS
C/C++はすごいよ
コンピューターのかなり低いところまで好きなようにいじれてしまう
人間には過ぎたシロモノだったんだ
772: 04/03(木)22:10 AAS
>>771
このスレでそんなアホなこと言うか?
Cで出来ることは全てRustでも出来る
RustはCと同様にインラインアセンブラ機能まであるため万能
773: 04/04(金)12:20 AAS
いまやインラインアセンブラがあるだけでは優位とはいえんな
インラインアセンブラが、unsafe なしで書けてこそRust
774: 04/04(金)12:21 AAS
>>767
> C/C++の言語仕様があまりにも酷いためRustのような安全性を導入できないことが判明している
ソースplz
775: 04/05(土)11:39 AAS
>>765
上層のクラス含め何でもテンプレートで書く独りよがりいるけど止めて欲しいよな
あくまで型違いで共用するコードの冗長を減らす目的に限定
なおかつ他者は使い方だけ把握して、コード内を見ず使えるように実装すべきだな
776(1): 04/05(土)11:45 AAS
Rustはなあ、人を用意できんだろ?特に日本じゃ
c++だってstlテンプレラムダmoveとかは見ずに使えて
デザインパターンで設計できてc++17くらいまでさえOKな人はなかなか捕まらない
777(1): 04/05(土)11:47 AAS
>>776
俺を呼べ😎
778: 04/05(土)11:51 AAS
>>777
ここの人は当然リーダーをやるべきでしょう
それでrustかc++23か、とにかくやりたい言語で人を集めないと
779: 04/05(土)12:48 AAS
C++ジジイばっかり集まるぞ
780: 04/05(土)17:52 AAS
実際自称C++出来る人って、9割ぐらいは未だにC++11未満の知識しかないんじゃない?
ある程度いける口はRustに行っちゃってそうだし
781: 04/06(日)07:25 AAS
23になってなんか文法劇的に変わったのある?
782(1): 04/07(月)10:18 AAS
全然昔からあるが、ラムダぜんぜん使いこなせない
783: 04/07(月)12:22 AAS
ラムダ式は設計書に書くメソッド一覧にどう書けばいいのやら
784: 04/07(月)12:50 AAS
新規関数追加申請書にちゃんと印鑑を押して提出してから書かないとダメだぞ
785: 04/07(月)15:13 AAS
関数名が分からないw
786: 04/07(月)22:02 AAS
>>782
はじめつらかったけど、気がついたら当たり前みたいに使うようになった
787: 04/07(月)23:07 AAS
キャプチャとか
上下前次1-新書関写板覧索設栞歴
あと 25 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.018s