1 名前:デフォルトの名無しさん [2023/02/25(土) 09:49:46.74 ID:VRyB88xR.net] C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな?
2 名前:デフォルトの名無しさん [2023/02/25(土) 11:00:27.52 ID:9NhnUjd2.net] いうほどでもない
3 名前:デフォルトの名無しさん mailto:sage [2023/02/25(土) 13:27:35.74 ID:P9AUzv0x.net] うだうだ言ってないで仕事で必要なのをやればいいんだよ 趣味なら好きなのやればいい
4 名前:デフォルトの名無しさん [2023/02/25(土) 13:38:44.05 ID:QyjTyTMe.net] >>3 そうなんだけど、今後の流れが気になったので
5 名前:デフォルトの名無しさん mailto:sage [2023/02/25(土) 17:13:51.27 ID:lt8vujMQ.net] もう10年ぐらい前ぐらいからここはじめネット、SNSで 何か急にある言語をプッシュして他を異様にディスるムーブメントある場合 それは情報商材売りたい勢のゴリ押しってのが判明してる そんなものに右往左往してたら話にならんよ
6 名前:547 mailto:sage [2023/02/25(土) 18:15:55.88 ID:VqXFnbZE.net] >>5 どの言語がプッシュされたんですか?
7 名前:デフォルトの名無しさん [2023/02/25(土) 20:03:19.10 ID:bUASXHz9.net] c -> c++ のが自然に学べるってのはあるけど、c++の余計な仕様を覚えるのもどうかなってのはある。 rustからいきなり入る奴が本当に理解できるのか正直わからん。
8 名前:デフォルトの名無しさん mailto:sage [2023/02/26(日) 08:44:07.54 ID:NKFFZ0EI.net] rusty nail
9 名前:デフォルトの名無しさん [2023/02/26(日) 10:30:55.37 ID:W2bio7pu.net] 結論から言うと 少しずつRust縛り(必須)となっていく C/C++だと気付かないうっかりミスが紛れ込んでセキュリティにも影響してきた確固たる暗い実績が様々なソフトウェアにある Rustはコンパイル時点でエラーや警告として示し防止する この差を非常に大きくそしてそれを満たすのは現状Rustしか現実的な選択肢がなく代替候補もない Rustを書ける人員を揃えることができたところから既に移行は少しずつ始まっており着実に進んでいる 市場的にも公的にもRust製とC/C++製どちらがセキュリティ含めて信頼できるか明確なためいずれは必須指定要件となるだろう
10 名前:デフォルトの名無しさん [2023/02/26(日) 11:58:18.24 ID:R0VbvaR9.net] >>9 詳しい説明ありがとうございます。 少しずつRustも勉強していこうと思いました。
11 名前:デフォルトの名無しさん [2023/02/26(日) 13:02:29.94 ID:E7NCL2qF.net] >>6 Rust,Python,UnrealEngine
12 名前:デフォルトの名無しさん mailto:sage [2023/02/26(日) 14:38:46.87 ID:0HNO0Bah.net] しゃぶれよ
13 名前:デフォルトの名無しさん mailto:sage [2023/02/26(日) 16:48:37.69 ID:M2zxuPcR.net] とりあえずC/C++は小さなワンチップマイコンからスパコン富岳、そしてハードウェアの高位合成まで使える共通言語になってるから、使えれば利用できる範囲が広いかな? オブジェクト指向が求められてCからC++が出てきたように、C/C++の構文スタイルをとりながらメモリ安全を実装したものが出てくるかもね。 学習コストとしても文法的に新規性が少ない方が好まれるだろうし。
14 名前:デフォルトの名無しさん mailto:sage [2023/02/26(日) 17:26:20.61 ID:32xuZUXu.net] >>13 C/C++系言語の可能性を試みる時間は既に終わった ここ10年間でC/C++拡張やその系統では無理だと結論が出たためGAFAMなどIT大手がこぞってRustへ舵をきった
15 名前:デフォルトの名無しさん mailto:sage [2023/02/26(日) 20:14:35.53 ID:DFLJCTJ6.net] Rust案件なんかないやろw 時期尚早
16 名前:デフォルトの名無しさん mailto:sage [2023/02/26(日) 21:44:33.99 ID:GQhuf+Lw.net] アーリーアダプタ(?)的な人って、新しいものが出てきたときに良い面ばかりを 見てしまう癖が有るらしい。それでしばらくして別のものが出てくると絶賛し、 前のものを批判に変える。
17 名前:デフォルトの名無しさん mailto:sage [2023/02/26(日) 22:00:08.16 ID:32xuZUXu.net] 大昔のRustはそうだったが実績を積み重ねて今はIT大手どこもが採用する言語となった 世界中のインフラが次々とRust製へ変わりつつある 例えばAWSなどのクラウドもそう
18 名前:デフォルトの名無しさん mailto:sage [2023/02/26(日) 22:11:58.45 ID:GQhuf+Lw.net] 企業の中の一部で使われてきたというだけであって、言語そのものを良く見てみると そこまですばらしい言語ではないと思えるぞ。
19 名前:デフォルトの名無しさん [2023/02/27(月) 01:07:20.97 ID:uT3J6RSV.net] >>17 嘘つけ
20 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 01:48:26.87 ID:O9/5cYsg.net] >>19 https://japan.zdnet.com/article/35183866/ Amazon Web Services(AWS)は、同社のエンジニアたちがプログラミング言語「Rust」を 使っている大きな理由として、エネルギー効率の高さを挙げる。 AWSは早くからRustを採用し、Rust Foundationの創設にも携わった。 現在もRustの普及に熱心に取り組んでいる。 AWSのソフトウェアエンジニアで、Rustの普及に取り組む Shane Miller氏と主任エンジニアのCarl Lerche氏の投稿によれば、 Rustはメモリー安全性を高め、セキュリティ関連の不具合を減らす役に立つだけでなく、 PythonやJavaよりもはるかに「エネルギー効率に優れている」という。 Amazonは、2025年までにデータセンターの100%を再生エネルギーでまかなうという目標を掲げ、 データセンターの環境負荷の軽減に取り組んでいる。 Rustの採用はその一翼を担うという。 Rustで構築されたAWSサービスの例としては、 コンテナーアプリ用のサーバーレスプラットフォーム「Lamba」を支える「Firecracker」、 「Amazon Simple Storage Service(S3)」「Amazon Elastic Compute Cloud(EC2)」、 コンテンツ配信ネットワーク「Amazon CloudFront」、 LinuxベースのコンテナーOS「Bottlerocket」がある。 「CやRustが他の言語よりもエネルギー効率に優れていることに驚きはない。 衝撃的なのは、その違いの大きさだ。CとRustを広範に採用すれば、 控えめに見積もってもコンピュートに使用されるエネルギーの量を50%削減できる可能性がある」と Miller氏は述べ、その根拠として、C、GoogleのGo、Lua、Python、Ruby、Fortranなどをはじめとする 複数の言語のエネルギー効率を相対的に示した研究結果を紹介している。
21 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 13:40:42.65 ID:csXgFZ4x.net] rusty nail
22 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 16:14:37.34 ID:dFRgN5US.net] >>20 それでどれくらいがRustで書かれているのかな?
23 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 16:27:08.91 ID:NzhKA4cT.net] >>20 >CやRustが他の言語よりもエネルギー効率に優れていることに驚きはない。 実に疑わしい。 Cは高級アセンブラ。 基本的に効率がよいプログラムがエネルギー効率も良いはずで、だとしたら、 高級アセンブラより効率がよい言語が存在しないといけないことになるが、 あらゆる言語が高級アセンブラを越えることは不可能であるはずなので、 矛盾しているように思える。
24 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 16:30:03.92 ID:NzhKA4cT.net] >>23 [補足] 手書きアセンブラだと超えることが出来る場合が有る。 C言語レベルで最も良いアルゴリズムで書いた場合、最終的にはコンパイラの バックエンドの最適化次第ということになる。 そしてバックエンドは Rustもclang(C)も同じLLVMのものを使っているので、 Rustがclang(C)が到達できないように効率がよくなる可能性は数学的に 有りえないはず。 Rustでできるなら、Cでも出来るはずだからだ。
25 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 17:32:52.43 ID:NzhKA4cT.net] >>24 [補足2] C言語は、ノイマン型コンピュータでできる限りどんなアルゴリズムでも 使えて、使えるアルゴリズムに制限が無い。 だから、発見されている中での世界最良のアルゴリズムを使うことができる。 そしてその場合に、世界最速になれない可能性があるとしたら、 バックエンドの最適化層の最適化の能力が人間の手作業の最適化に劣る ような場合だけである。 それに対してRustがCを速度で上回るというのは数学的に矛盾している。 むしろ、Rustのsafeモードでは、使えるアルゴリズムに強い制限が掛かっている。
26 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 17:55:34.32 ID:jgoAw3Ga.net] >>24 もちろんRustとCと全く同様の低レベル記述もできるしCと同様にインラインアセンブラが書けてRust変数との連携もできるしそれらを安全に閉じ込めることができる 一方でRustはプログラム全体の安全性を大域的にコンパイラが保証することが出来るため仮に局所的にunsafeな部分かあっても人間はそこだけに注力できる点でCとは異なり決定的で革新的な変化をもたらした そしてRustとCが他のプログラミング言語と決定的に異なるのはガベージコレクション(GC)無しで動きプログラミング言語の中で最も高速であり電力消費面でもCPUメモリリソース面でも最も有利な言語である
27 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 18:16:27.45 ID:NzhKA4cT.net] >>26 >安全に閉じ込めることができる Rustでは、これは不可能なケースが有ることが分かってる。
28 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 18:17:38.69 ID:NzhKA4cT.net] Rustでそういうことができるのは、一部のアルゴリズムだけで、閉じ込めきれない アルゴリズムが存在することがいくつも知られている。
29 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 18:31:59.25 ID:BUZw0Bcx.net] >>27 >>28 プログラム全体に非安全が散らばっているアルゴリズムを考えることは可能だがバカな行為 非安全な部分を局所的に閉じ込めて安全なインターフェイスを公開するライブラリを作るのが正しい道 そうすればRustはプログラム全体の安全性を規模に関わりなく保証することができるためGAFAMなど大手ITを筆頭にその方法へと次々に切り替え始めた
30 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 18:36:09.13 ID:NzhKA4cT.net] >>29 ですから、そのように閉じ込めることが絶対に出来ないアルゴリズムが存在しているのです。
31 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 18:36:32.74 ID:NzhKA4cT.net] これは数学の問題です。
32 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 22:09:41.53 ID:LP8T7WNZ.net] Rustの安全性って言語を乗り換える際に払うコストほど 大きなメリットはないのでね Rustは使う人も少ないし仕事も全くない CのUNIXやC++のMFCのようなものがないと Rustをやろうという人は増えないだろう
33 名前:デフォルトの名無しさん [2023/02/27(月) 22:13:22.96 ID:3K/qRK7o.net] 結局どっちも使えるくらいのやつじゃないとどっちにしろまともな仕事にはならん。 どっちかだけと言ってるやつは仕事になってないやつだろ。
34 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 22:37:20.68 ID:KG8RKFb2.net] 両方使いこなせるようになると一目瞭然で Rustは洗練されていてモダンな便利な機能も含めて開発効率も良い もちろん安全性の保証なども付いてくるため比較するとRustが大差で有利 唯一の問題はまだRustを使える人が少ないこと しかし着実にRustも使える人が増えていってるため 人数を揃えられたところからRustを使うところがどんどん増えている この流れは逆になりようがない
35 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 23:35:53.90 ID:LP8T7WNZ.net] Rustの仕事なんてないんだが?
36 名前:デフォルトの名無しさん mailto:sage [2023/02/27(月) 23:38:16.05 ID:LP8T7WNZ.net] 最近だとpythonユーザがAIの流行で増えたように Rustも牽引する何かがないと増えることはないよ
37 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 00:08:33.64 ID:pH6hfy6B.net] Cじゃないとダメだと長年C++を拒絶していたLinuxもRustの導入を始めた Google ChromeやMicrosoft Edgeで使っているChromiumもC++での多発するセキュリティ問題に耐えかねてRust採用を発表した クラウドTOPのAmazonも>>20 の記事にあるようにインフラをRust製にしている Meta(旧Facebook)もRust製の基幹システムに変えたとの記事が出ている この世界的な動きは日本でも少しずつ進み始めている
38 名前:デフォルトの名無しさん [2023/02/28(火) 11:57:56.87 ID:xNmaYcy8.net] >>18 >>33 ほんそれ C/C++ 使えるがどうしても Rust 嫌いって人は Nim を使うと幸せになれる
39 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 14:09:00.41 ID:e51yPnPZ.net] >>37 >Cじゃないとダメだと長年C++を拒絶していたLinuxもRustの導入を始めた $ wget 'https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.2.1.tar.xz' $ tar xJf linux-6.2.1.tar.xz $ find linux-6.2.1 -name *.c | wc -l 32329 $ find linux-6.2.1 -name *.rs | wc -l 37 37ファイルもある! 最後の | wc -l を取るとRustが何に用いられているか分かるよ! いずれにしても>>37 が列挙しているように 現状ではRustにキラープロダクトは無いので 増えることはないと断言できる
40 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 15:53:29.33 ID:5HrxdEqK.net] >>36 >>38 Rust嫌いは無知が多いな NimもPythonもGCのあるプログラミング言語であり代替になれない 超遅いPythonは論外としても NimはNull安全すらなくC/C++と同様に安全性を保証できない言語
41 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 16:39:39.54 ID:eD9OZA2Z.net] rusty mail
42 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 17:12:23.08 ID:e51yPnPZ.net] >>40 無知はお前さんじゃないかな? 都合の良い記事ばっかり検索して貼っとらんで >>39 のようにソースを見なさい
43 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 18:20:57.50 ID:Owe2yvkD.net] Linux Kernel 6.1はRustyというコード名前だしRust宣言だね https://codezine.jp/article/detail/17038 > Linus Torvalds氏は、Linux OSのカーネルの最新バージョンである「バージョン6.1」を公開したと2022年12月11日に明らかにした。 > バージョン6.1は、カーネルの記述にRust言語を一部使用した最初のバージョンとなる。 > 従来、LinuxカーネルはC言語とアセンブリ言語で記述していたことから、Rustの採用は大きな変化と言える。
44 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 18:25:06.29 ID:ilYsCf2n.net] >>43 プログラマならソースコードをみなよw
45 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 21:39:14.49 ID:y7e/yQA5.net] >>43 C++は中途半端でクソなことがLinux界でも結論出たのは大きいな 人間チェックで安全を保証するCか コンパイラによるチェックで安全を保証するRustか、どちらかしかないな
46 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 21:43:01.23 ID:e51yPnPZ.net] LinuxカーネルにC++が使われたことはない
47 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 21:46:42.30 ID:e51yPnPZ.net] ところRustってllvmだと思うけどRustでドライバ書きたい場合は カーネルはclangでビルドするのかな? gccとバイナリ互換じゃなかったような気がするんだけども? というかカーネルってclangでビルドできるようになったのかな?
48 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 21:47:06.07 ID:y7e/yQA5.net] >>46 そのことだよ C++は中途半端でクソだから使う意義がないので採用しないとLinux界からも却下されていた ところがRustは意義があるとして採用された
49 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 21:48:12.02 ID:e51yPnPZ.net] >>48 全く違う
50 名前:デフォルトの名無しさん mailto:sage [2023/02/28(火) 21:54:59.06 ID:e51yPnPZ.net] 37 / (37 + 32329) = 0.0011431749366619293 00.11% だからな... プログラムの隆盛を見るとCにおけるUNIX C++におけるMFC PythonにおけるAIのようなキラープロダクトが出て コードを書ける人が増えないと メモリ安全ごときでRustが流行ることはあり得ない
51 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 02:20:06.43 ID:Mc7FdiYo.net] >>18 Rustを本格的に始めたら言語仕様が秀逸だと分かった これまでの言語の既成の固定観念に引きずられてるうちは分からなかったことが見えてきた
52 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 03:16:12.01 ID:1Oup3Ez2.net] 仕事でCを使ってきた Pythonは苦労せず使えるようになった でもrustは無理くさい 書き方が違いすぎるのと脳が老化して覚えられないw
53 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 04:54:30.39 ID:HcVT2tre.net] >>52 モダンな言語なんでもいいけど 何らか抽象的なプログラミングをサポートしている言語でそういう保守性の高い書き方したことがない場合 どの言語でもまずは抽象的なプログラミングに慣れて習得しないままだと 仮に長年プログラミングやってきたとしても初心者止まりのままになっちゃうのでどこかへ進むとよいかも CやってきたのならばRustはあとその部分を習得するだけだね
54 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 08:01:08.42 ID:82Husj9h.net] >>52 C/C++のリプレースで使われることで騒ぐしかないんじゃ、できること自体はCと変わらないってことだしね。 小規模なプログラムだと一番のウリのメモリ安全も利益感じられないし。 制御関係とかでC++のClassや継承とかは部品の組み合わせと対応させられて便利だったけど、Rustでは継承はバッサリ切り捨てちゃったみたいだしなあ。 そういえば、脳科学者が言うには脳は老化しない、何歳になっても海馬は大きくなるらしいよ。 自分はChatGPTで掛け合い漫才しながらチュートリアル眺めてるけど、以前三日坊主だった時の壁は越えられた気がする。
55 名前:デフォルトの名無しさん [2023/03/01(水) 10:16:16.06 ID:BrtIIoCo.net] >>51 C#のほうが言語仕様秀逸だよ
56 名前:デフォルトの名無しさん [2023/03/01(水) 10:16:52.64 ID:BrtIIoCo.net] 正直クラス無いと頭こんがらがってダメだわ
57 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 10:20:08.76 ID:68s28u+f.net] >>45 なんで二択なんだよ Nimがあるじゃないか
58 名前:デフォルトの名無しさん [2023/03/01(水) 10:23:04.35 ID:BrtIIoCo.net] Rustってドライバとかにも使えるの? 組み込みで使われてる?
59 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 10:24:39.92 ID:68s28u+f.net] >>52 脳の老化じゃなくて過学習が始まった年頃なんじゃね
60 名前:デフォルトの名無しさん [2023/03/01(水) 10:35:28.60 ID:jxeZ0t7/.net] GoogleのCarbonが完成したら覇権とりそう あとはZigとかはどうなんだ
61 名前:デフォルトの名無しさん [2023/03/01(水) 10:39:50.76 ID:NalgN/NX.net] Rustは継承じゃなくて合成みたいだけど、そもそも継承ってそんなに危険だったっけ?
62 名前:デフォルトの名無しさん [2023/03/01(水) 10:41:08.58 ID:jxeZ0t7/.net] >>57 上でも言われてたけどNimでGC無効メモリ手動管理でやったらどれくらい使い物になるんだってのは気になる まあふつうNimならもうメモリ管理せずにORCでやるだろうけど
63 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 17:09:50.12 ID:FMM19mI8.net] >>55 >>57 C#もNimもGCが基本の言語 このスレに持ち出すのは場違い >>60 Carbonは公式ページに「Rustを使える状況ならばRustを使った方が良い」と明記されてる位置付けの言語 CarbonはC++記述遺産のメンテ用が目的 Zigは手動でメモリ解放する言語 Rustは自動でメモリ解放する言語 そしてRustではメモリ安全性がコンパイル通れば保証される信頼性が大きな差
64 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 17:19:17.03 ID:FMM19mI8.net] >>58 もちろんRustはC言語と同じく低レベル記述も可能 必要ならばインラインアセンブリもサポートしておりRustの変数を使ってその場でasm挿入記述もできる 組み込みもRustのメインターゲットの一つ https://www.rust-lang.org/ja/what/embedded
65 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 23:46:27.72 ID:YuYxAjXZ.net] >>63 >C#もNimもGCが基本の言語 >このスレに持ち出すのは場違い ここはどういう場なんでしょうか?www
66 名前:デフォルトの名無しさん mailto:sage [2023/03/01(水) 23:58:04.67 ID:Faf+SNlo.net] >>65 スレタイ見ればわかるようにガベージコレクション使う遅い言語は対象外だと思うよ
67 名前:デフォルトの名無しさん [2023/03/02(木) 00:15:37.04 ID:4/ee2SHc.net] >>66 >スレタイ見ればわかるように 飛躍し過ぎていて「結局C++とRustってどっちが良いの?」で GC使う言語がスレの対象外になるのがサッパリわからん
68 名前:デフォルトの名無しさん [2023/03/02(木) 02:30:04.05 ID:bqXvu2FA.net] より良いものを否定し 伝統ばかりに固執する人らに 過去の栄華はあっても 未来など無い
69 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 05:01:47.34 ID:s9foVenT.net] >>67 プログラミング言語は大きく2つに分かれていて GCのある遅くてメモリ消費も多い言語と GCのない速くてメモリ消費も少ない言語に分かれる そこには決定的な違いがある 次にスレタイというのはいちいち説明しなくても 例えば「Vue vs React vs Angular vs Svelte Part.11」というスレはそれら比較対象からJavaScriptフロントフレームワークのスレだと分かる そしてここはスレタイが非GC言語の既存代表例C++と非GC言語の新興代表例Rustの比較的となっているから 基本的にその両者が対象でおまけとしても同じ非GC言語のCやZigなどが対象ギリギリかなと思う
70 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 05:13:35.95 ID:MiifFeAk.net] いい加減にほんに何言ってんだこのバカ
71 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 05:44:38.60 ID:6fagNnHa.net] Cと名前が似てるだけで狭い範囲でしか役に立たないC#の話をされてもそりゃ困るわな 最低限ガベージコレクション無しと低レベル記述可を備えた最高速クラス言語じゃないと比較の土俵にも上がらんわ
72 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 06:35:13.17 ID:M8IdVdds.net] 一言で言えば、リアルタイム性を要求されるアプリケーションでも使える言語ってことだね。
73 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 07:12:21.96 ID:ZOdXc5Gl.net] >>67 猫と犬とどっち飼ったらいいかな? の質問に「金魚が良いよ」と回答しても意味ないだろ
74 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 07:14:53.01 ID:D5BhE+0S.net] 書こうと思えばどの分野でも書くことができるプログラミング言語だね 例えばC#やPythonではまともなOSを作ることができない GoogleがRustで書かれたセキュアなOS「KataOS」を発表 https://japan.zdnet.com/article/35194751/
75 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 11:41:51.38 ID:v0ZnzcWP.net] >>72 高い性能や高い応答性くらいの意味でリアルタイム性という用語を使ってるのかもしれないけど意味違うからね
76 名前:デフォルトの名無しさん [2023/03/02(木) 12:13:29.31 ID:4/ee2SHc.net] >>69 ,74 そういうのは飛躍と言う お前が>>1 でそのつもりでこのスレを立てたのならスレタイは不適切
77 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 12:17:03.65 ID:4/ee2SHc.net] >>72 「リアルタイム性」も知らんようだし お前はRustについてGCのあるなしくらいしか語れないのかな? ちなみにこの板読んでる人でGCを分からん人はほぼいないと思う
78 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 12:57:49.07 ID:D5BhE+0S.net] そういうアホ相手にしか反論できない時点で辛そう 最近は新たなものが出てくるとRust製 Webpackの後継となる新バンドルツール「Turbopack」が登場。Rust製のネイティブアプリケーションでWebpackの700倍高速に! https://www.publickey1.jp/blog/22/webpackturbopackrustwebpack700nextjs_conf_2022.html
79 名前:デフォルトの名無しさん [2023/03/02(木) 13:19:48.65 ID:2W3DfR3d.net] >>1 です。色々と混乱させてしまってすみません。 C++で今まで作られてきたものがどれだけRustに変わっていくのか気になってスレ立てしました。 メモリ安全性という観点だとRustになりますが、C++にはRustより優れている点があって、今後もまだ残り続けるのかどうかです。
80 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 13:47:49.79 ID:9x7ptNRV.net] VB6やCOBOLみたいに進化を止めたゴミにならない限りはC++も残り続けるでしょう 今のところC++がそういったゴミになる兆候は無いと思います Rustが優れているかどうかは一切関係がありませんね
81 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 13:48:50.41 ID:BxgVYWtl.net] C++は残り続けるけど徐々にメインストリームはRustかそれと同等のメモリ安全性を備えた言語に移っていく 既存のコードベースが大きいから急激には変化しない 残る理由はCOBOLが残っているのと同じで優れてるという理由からではない
82 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 14:11:06.82 ID:4/ee2SHc.net] 試しにChatGPT先生にRustにキラーアプリがあるか聞いたらSolanaやRayonだって >SolanaやRayonがUNIXやMFCのようにプログラミング言語を新たに習得しようと >する人を爆発的に増やすことは、現時点では考えにくいと言えます。 >UNIXやMFCが広く普及した理由の一つは、それらが当時の主流であったプラッ >トフォームやアプリケーションの開発に必要不可欠であったためです。一方、 >SolanaやRayonは、それぞれ特定の分野において高いパフォーマンスを発揮す >るためのライブラリやプラットフォームであり、必ずしも全ての開発プロジェ >クトに必要不可欠なものではありません。 >また、Rust自体がまだ比較的新しい言語であるため、多くのプログラマがRust >を習得する必要性を感じているわけではありません。ただし、Rustの安全性や >パフォーマンスが注目されるにつれ、より多くのプログラマがRustに興味を持 >ち、学習する可能性はあります。 >つまり、SolanaやRayonがプログラミング言語を新たに習得しようとする人を >爆発的に増やすことに貢献するかどうかは、それらが必要不可欠なライブラリ >やプラットフォームとして広く普及するかどうかにかかっていると言えます。
83 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 14:16:45.49 ID:4/ee2SHc.net] 例えばRustで書かれたOSをAndroidやiOSの後継にするとか 携帯に匹敵する新たな情報端末が出現して それがRustで制御されているとか
84 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 14:23:37.36 ID:N97puPhx.net] 質問がバカだと回答もバカになるいい例 ググり力と同じくジピり力が求められる
85 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 14:36:25.48 ID:4/ee2SHc.net] 「ジピり力」かぁw 大事だね SolanaやRayonが返ってきた質問は以下 >あるプログラミング言語が流行るにはC言語におけるUNIXやC++のMFC、最近だ >とpythonがAIによって流行ったようにキラープロダクトが重要だと思います。 >キラープロダクトがあれば、その言語を習得したプログラマが一気に増えます。 >Rustにそのようなキラープロダクトはありますか? Rustの爆発的普及にはキラープロダクトが不可欠
86 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 14:38:15.81 ID:D5BhE+0S.net] >>79 C++は今も違法増改築を続けて無数に部屋(仕様)が作られていくような言語 そして新たな増改築が決まっても、完成(実装)されなかったり、新たな部屋の存在が知られていなかったり、ほとんどの部屋は極一部の人しか使われていない 結果的に良い機能があっても使われないのは無駄に大きく重複もある複雑な言語仕様のせい 例えばC++20で導入されたstd::rangesはRustでいうとIteratorなどの基本的なデータ取り扱い機能で超重要だが今後も広まらないのだろう 歴史的な事情でC++の全容は複雑怪奇となっていて理念の一貫性もなくどうしようもない状態 Rustは洗練された言語仕様となっていてC++と比べれべるとシンプルで分かりやすい 全体の理念も統一されており特に安全性に関する保証が与える信頼性はこのセキュリティ重視の時代に完全にマッチしている 今後Rust人口が増えてくると企業案件でC/C++が使われてきたものはRust指定(必須)となっていくだろう
87 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 14:45:55.72 ID:4/ee2SHc.net] >>86 普及して長いことたてばRustもご多分に漏れずいずれ複雑怪奇になるってw 若いと分からんかもしれんが C++は複雑怪奇に見えるかもしれんが規格変更には慎重の方だと思うよ ところでRustって規格あるの? 仕様しかない?
88 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 15:24:09.80 ID:4/ee2SHc.net] 実装が1つしかないから規格はないかな
89 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 15:30:29.97 ID:o+lCraYI.net] C++もスマートポインタでメモリ安全を取り込んできているけどね。なんでも飲み込む奴だからなあ。
90 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 15:41:34.24 ID:4/ee2SHc.net] 例えばstd::shared_ptr相当のものは 90年代中盤から後半にかけて使われ始めたと思うけど (boost::shared_ptrはいつからだっけ?) std::shared_ptrが規格に入ったのはC++11 規格の拡張は無節操というより慎重というかクソ遅いよ
91 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 15:59:19.04 ID:dC3Ayx4m.net] >>86 Javaが出た時に聴いたことあるような文句だな 割とマジでフラッシュバック
92 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 16:08:40.39 ID:eS6QMQkY.net] >>79 それは分類が非常に簡単 既に作られており穴も発見されないものをわざわざRustに移植する意味はない 穴が多く悩まされてるものはChromiumのようにRust併用やRustへ切り替えが進んでいる 新たに作ったり大きく作り直す場合はRust一択
93 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 16:24:01.58 ID:eS6QMQkY.net] >>89 C++はスマートポインタがあっても言語システムとして安全を保証する枠組みがない まともなIT企業からRustへ移動し始めている根本的な理由がそこ
94 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 16:40:50.78 ID:4/ee2SHc.net] >>93 Rustプログラマを支障なく確保できなければ企業は 試験的採用こそすれど本格採用はしない Rustプログラマが多い -> Rust生態圏が良くなる -> Rustプログラマが増える -> (最初に戻る) ※Rust生態圏が良くなるとはライブラリやtipsが増えRustの仕事が増えること この好循環を作らないことにはRustが流行りだすことはないだろう そのためのキラーコンテンツ >>37 で上げてるようなソフトはしょぼすぎて該当しない >>83 くらいの状況になれば変わる
95 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 16:53:27.06 ID:eS6QMQkY.net] Rust自体がプログラミング言語史上でも革新的なキラーコンテンツ まともなIT企業からRustを導入していっている理由がそこにある 非GC言語でメモリ安全性を言語システムが保証する初で唯一のプログラミング言語がRust
96 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 17:10:59.88 ID:oc1UgWLG.net] ダメダコリャ
97 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 18:47:07.82 ID:9x7ptNRV.net] なんだかんだで置き換えられずにユーザ空間ソフトの基礎ライブラリになってるC言語の奴らすげーよな
98 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 19:04:35.27 ID:o+lCraYI.net] とりあえずC/C++は今ところほぼ全てのCPUで環境が整備されているし、 メーカーさんのサンプルにしても、過去の資産も(FreeRTOSだのもArduinoなんかも)膨大。 それらが全て使われなくなったり、他の言語でで書き換えられるということが仮に にあるとしても相当先の話になるだろう。 と考えると、C/C++はほぼ基礎教養かな? あとは実務で要求されたものを身につけるっていう感じなんだろうな。 パラパラ眺めた範囲ではRustもC++知っていればさほど難しくなさそうだけど 個人で趣味レベルでやってますといっても、実務経験ないとキャリアとしてのアピール度は低いしな
99 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 19:14:16.94 ID:OHJUJNoL.net] >>98 Cの基礎は必要だがC++は要らん 特殊な組み込み環境などでない通常利用ならば対応していてRustが使える
100 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 19:20:18.08 ID:OAWE1K4h.net] でもお前組み込みエアプじゃん
101 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 19:22:55.17 ID:OAWE1K4h.net] ルビキチも自分の実績とは関係なく人工衛星がどうのと褒めそやす奴だった これもいずれはあのような壊れたレコードに成り果てるのだろう
102 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 19:42:00.55 ID:+4hIkzuc.net] Firefoxだけかと思っていたらChromeもRustなのかよ Google Chrome、プログラミング言語「Rust」の採用を発表 https://news.mynavi.jp/techplus/article/20230113-2561774/
103 名前:デフォルトの名無しさん mailto:sage [2023/03/02(木) 23:06:33.64 ID:4/ee2SHc.net] >>102 それでRustプログラマが増えることはないな >>83 くらいの状況にならんと
104 名前:デフォルトの名無しさん [2023/03/03(金) 06:56:09.99 ID:3EPD3050.net] >>99 その「特殊な組み込み環境」とやらでもC/C++は使えるからね。 C++はフルには要らんかもだけど、 クラスと継承は組み込みとかでも便利に使われてたりするね。 できることが大差ないとすると、仕事でRustを使えと言われない限り、個人レベルで積極的に使う理由に乏しいかなぁ。 個人でメンテできる程度だとメモリ安全ってそれほど重要ポイントではないし。 PythonにとってのAIみたいに、こういうアプリケーションなら、C/C++より遥かに楽で簡単に実現できるというものが必要なのではないかな。 今の段階じゃ、メモリ安全にするために制約やチェックを厳しくしたC/C++ってだけって感じだもの。
105 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 07:13:09.62 ID:5+VE8dsn.net] Rustは後発なアドバンテージで 洗練されたモダンな言語仕様のため非常に書きやすい これが一番大きなメリット おまけとしてメモリ安全性の自動保証とデータ競合なしの保証 これらにおかげでC/C++で書いてた時に無駄に必要だった実行時デバッグが激減して消えた Rustは開発効率が大きく向上する
106 名前:デフォルトの名無しさん [2023/03/03(金) 09:31:41.76 ID:oC7cFOXy.net] >>95 Dが出た時に聴いたことあるような文句だな 割とマジでフラッシュバック
107 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 13:09:51.97 ID:t7eEMnCD.net] >>106 どこが似てんだよ何も区別付かないアフォ
108 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 13:21:04.67 ID:mNTxopBi.net] おちんちんランドへおいでよ!
109 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 13:21:58.74 ID:PdMH/ctM.net] altJSブームが落ち着いたせいで下火になっちゃったけど やっぱりHaxeは復活すべきだよな
110 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 13:26:08.63 ID:HbtHbRsb.net] >>107 凄い似てるよ Javaが出たときにも聞いたぞ 「C/C++を置換する!」は人間の性なんだろうw 長くやってると何度も見るし結果もだいたい分かる
111 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 16:49:35.55 ID:lJwnZSPr.net] >>110 しかも、Javaの普及速度は物凄く速かったが、Rustは伸びてない。
112 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 19:36:46.54 ID:NsCHD7Iu.net] >>91 >>110 プログラミング言語の一般的な基礎知識を持たない人がRustのアンチをやっているのかしら JavaがCやC++に置き換わらなかった理由の一つはJavaがガベージコレクション必須の言語だからですよ CやC++の置き換えとなるためにはGCを必要としないプログラミング言語でないとダメなんですよ GCを必要としない言語も数少ないながら今までいくつか出て来たのになぜCやC++を置き換えられなかったか分かりますか? CやC++で問題となってきたのはメモリ操作の安全性とデータ競合の安全性です それらを完璧に対応して言語自体が安全性を保証する言語が今までなかったからですよ Rustが初めて対応して初めて真にCやC++を置き換えられるようになりました だからIT大手各社がライバル関係を超えて共同してRustを支援そして採用しているのですよ
113 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 20:45:25.65 ID:56kfvkVg.net] >>112 >>77 お前はそればっかりだなw そんなものはこの板の住人が知らん訳ないやろw GCくらいしか語る知識がないんだろうな
114 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 21:06:34.40 ID:NsCHD7Iu.net] >>113 その>>77 を見てみましたがリアルタイム性の話ですか それは直接はプログラミング言語とは関係ない話ですが少し関係がありますね 言語に関わらず作成したシステム側の話でOSからゲームのようなアプリまで必要とされる時間的制約があることをリアルタイム性と言います もちろんガベージコレクションはリアルタイム性の障害となりますのでそれを軽減する手法を取ったりリアルタイム性を必要としないタイミングでGCを実行します しかしそれでも現実的なOSや基幹システムでGC言語の利用は厳しいでしょう そのためOSなどの記述にはCやC++やRustが使われます メモリ安全性などの保証をプログラマーではなく言語システムに任せることができるRustがベストとなります
115 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 21:20:32.28 ID:qLiBhaKu.net] エアプするにしてもせめてthe embedded bookくらいざっくり読んでからにすればいいのに
116 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 21:26:29.88 ID:HbtHbRsb.net] >>114 リアルタイム性の話ではなく GCの話しかしないことを言っている GCくらいしか語る知識がないと俺は推測している
117 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 21:48:53.60 ID:IWtB3OsL.net] C++とRustの比較スレだからGCない言語が前提だもんな Javaとか持ち出す>>110 や>>111 はアホすぎ
118 名前:デフォルトの名無しさん [2023/03/03(金) 21:51:10.69 ID:HbtHbRsb.net] >>118 >>76
119 名前:デフォルトの名無しさん [2023/03/03(金) 21:51:28.18 ID:HbtHbRsb.net] >>117 >>76
120 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 22:54:44.50 ID:3xVHehJY.net] ここが新しい隔離スレちゃんですか
121 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 23:40:18.48 ID:DSH9vzOS.net] ここは純粋にC++とRustの比較スレ しかし無関係なGC言語を持ち出してくるバカがいてそれを邪魔をしているようだ
122 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 23:41:20.65 ID:kiJ4JQPs.net] 実務経験の乏しい人が言語機能だけで頭でっかちなアピールしてるのを見ると狙ってアンチ活動してるのかと勘繰りたくなるよね まぁ隔離ファイト続けてくれ
123 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 23:57:24.37 ID:gZNQib4P.net] それらの言語を実際に書いて使っていればガッべージコレクションのある言語がC言語系を置き換えできないことくらい分かるはずだもんなー
124 名前:デフォルトの名無しさん mailto:sage [2023/03/04(土) 02:04:08.56 ID:OUzFL/z0.net] WinAPI/ATL/MFCの系譜をWinFormsが現れて.NETが置き換えていった歴史は無かったことにされたらしい
125 名前:デフォルトの名無しさん mailto:sage [2023/03/04(土) 05:09:33.55 ID:zMMeSguG.net] CやC++に置き換わる言語の話でWinAPIやWinFormsを持ち出してくるとは頭おかしいな
126 名前:デフォルトの名無しさん mailto:sage [2023/03/04(土) 10:37:16.20 ID:4/pts6A0.net] C#もGCないネイティブでビルドするオプションがあったら天下取れたかもな VB6はGC無かったのになぜこうなった
127 名前:デフォルトの名無しさん mailto:sage [2023/03/04(土) 10:41:49.65 ID:CDmz22lO.net] >>125 君はてをにはがおかしい 寝ぼけた頭で脊髄反射で書き込むのはやめたほうがいいな
128 名前:デフォルトの名無しさん mailto:sage [2023/03/04(土) 10:54:13.03 ID:RFNVa0Qi.net] >>114 chatGPTの回答に似てるなωωω
129 名前:デフォルトの名無しさん [2023/03/04(土) 10:59:11.20 ID:RFNVa0Qi.net] >>127 何処が可笑しいか指摘してくれ おれには判らん
130 名前:デフォルトの名無しさん mailto:sage [2023/03/04(土) 11:05:58.63 ID:54Un32Sk.net] >>129 「CやC++に置き換わる言語の話」なんて誰もしていない 「CやC++に取って代わる」あるいは「CやC++を置き換える」と言いたいのだろう あるいは本気で「CやC++に置き換わる言語の話」をしているのなら今度こそ本当に頭がおかしいな
131 名前:デフォルトの名無しさん [2023/03/04(土) 11:14:10.28 ID:RFNVa0Qi.net] それがてにをはどどう関係あるの?
132 名前:デフォルトの名無しさん mailto:sage [2023/03/04(土) 11:23:10.42 ID:33wAkDSd.net] >>126 VB6はトレースGCではないけど参照カウンタGC方式のGC言語 VB6オブジェクトは裏で参照カウンタが自動的に使われていてそれにより使われなくなったメモリを回収している ちなみにC++のshared_ptrなども参照カウンタ方式だが裏で勝手に使われることはなく必須でもなくプログラマー裁量なのでC++はGC言語ではない
133 名前:デフォルトの名無しさん [2023/03/04(土) 11:59:27.29 ID:Ss9j+0Cw.net] Rustに期待している人のフラストレーションを解消したいなら フルスクラッチでOSを書くくらいしか方法はないだろうね OSの普及は更に至難の技だけども
134 名前:デフォルトの名無しさん mailto:sage [2023/03/04(土) 12:08:40.51 ID:2fdiw2OM.net] (実務経験ゼロ + 論理的思考力の欠落 + 自己愛性パーソナリティ障害) * Rustへの執着 = 通称複製おじさん
135 名前:デフォルトの名無しさん mailto:sage [2023/03/04(土) 12:51:29.76 ID:SdQ3Tgr2.net] | | 彡⌒ミ \ (´・ω・`)またGCの話してる (| |):::: (γ /::::::: し \::: \
136 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 00:54:23.16 ID:OH6jTTZv.net] うるせー馬鹿
137 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 00:59:18.56 ID:eidG4gk+.net] >>133 フルスクラッチの新たなOSを普及させるのは難しいだろうが >>74 に記事があるようにGoogleがRustのみで新OSを作ってるな あとAndroidもLinuxもWindowsもRustの一部採用を始めて この流れはOSに限らず全てのシステムでRust化が進んでいくのだろう GoogleとMicrosoftがRust言語でOS開発 https://xtech.nikkei.com/atcl/nxt/column/18/00692/042700054/
138 名前:デフォルトの名無しさん [2023/03/05(日) 09:30:23.81 ID:B0+xSixt.net] >>137 次第に現行プロジェクトを置換して増えていくなんて展開はありえないっての AndroidやWindowsをRust製のOSで置換するくらいしかストーリとしてはない Linuxに入っているRustコードは>>39 で書いた通り
139 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 10:00:51.19 ID:N4QaJnep.net] 私はRustで年収1億稼ぎましたみたいな話はないのかよ マイナープロジェクトでちょっと使われたら勝利なのかよ
140 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 11:14:29.69 ID:/Qd0pRlS.net] Winnyの作者みたいに逮捕されるかと思ったら怖くて無理
141 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 11:34:54.12 ID:ukOUhlGm.net] 話し飛躍しすぎでしょ
142 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 11:49:22.14 ID:nmaj3sub.net] Rustで検証してうまくいったらそのままCにコンバートすれば余計なチェックコードが削れてる速く動く とかね。
143 名前:デフォルトの名無しさん [2023/03/05(日) 14:28:35.02 ID:FAqgXVt3.net] てかGCって別に悪いもんじゃねぇしな
144 名前:デフォルトの名無しさん [2023/03/05(日) 14:30:11.56 ID:FAqgXVt3.net] >>133 それよりもグラフィックソフト作ったほうが広まると思うけどね Blender参考に3Dモデリングソフトつくってよ
145 名前:デフォルトの名無しさん [2023/03/05(日) 14:54:49.80 ID:B0+xSixt.net] >>144 それでは心が満たされないんだよ GCの話しかしない人とか
146 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 15:15:15.70 ID:WdTi9AcG.net] >>143 GCの有無はその言語がカバーできる範囲の差となり優劣関係が明白 GCのない言語は全てをカバーできる
147 名前:デフォルトの名無しさん [2023/03/05(日) 15:45:42.10 ID:09jM8Cxo.net] >>146 UEとかのゲームエンジンは当たり前だがついてる うまく付き合ってくほうが大事
148 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 15:50:56.78 ID:7nv7saAE.net] 本当にGCの話しかしないんだね GC以外のことを語る知識がない GCはこの板見てる人はほぼ誰でも知っているだろう
149 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 15:58:09.36 ID:Y+o3TKYe.net] 色んな言語のライブラリがC++(や最近はRust)で書かれているのを考えると C++とRustが王者決定戦になるのは当たり前じゃね?
150 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 16:07:43.53 ID:RiJu3w7U.net] 入力にゴミデータを与えるとゴミしか出力されないことの好例
151 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 18:26:02.22 ID:xsWqtK1g.net] いつのまにかPythonやJavaScriptのライブラリがRustで作れるようになってるのな
152 名前:デフォルトの名無しさん [2023/03/06(月) 00:49:06.50 ID:pFRSokg0.net] そりゃラップするだけなんだから作れるだろ アホか
153 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 09:19:45.87 ID:93HR+LQR.net] そして我が道をいくLISP
154 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 09:45:52.37 ID:4Z2NP+rF.net] LISPといえばGCの元祖だな
155 名前:デフォルトの名無しさん [2023/03/06(月) 13:40:13.02 ID:diWxUEyJ.net] | | 彡⌒ミ \ (´・ω・`)またGCの話してる (| |):::: (γ /::::::: し \::: \
156 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 15:05:53.11 ID:diWxUEyJ.net] memo https://zenn.dev/dumblepy/articles/3db2134ff88763
157 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 17:14:45.53 ID:93HR+LQR.net] ふと思ったんだけど、Rustのmutableな構造体の中にimmutableなフィールドって持てるんだっけ?
158 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 20:00:50.97 ID:BPh5rEIJ.net] >>157 そういえば、C++のcv属性は、論理和方式で、constは足し算の様に0から1に 変わるが、mut 属性はそうはならないだろうから、どうなるんだろうな。 constは意味的に考えてもcastしない限りは、、constなものはいくらやっても 書き込めるようにはならない、というのは安全性から当然なんだけど、 mutだとそうはいかない。
159 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 20:09:02.49 ID:BPh5rEIJ.net] >>158 mutとconstは逆さまの働きみたいだから、どっちで行くかは言語設計者の自由と 思われがちだけど、constな構造体のメンバは勝手に全てconst扱いになるという 単純な論理に出来るけど、mut方式の場合は、constキーワードも別に必要になりそう。
160 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 21:18:31.55 ID:HKTArltY.net] >>157 他の言語と同じでsetter相当をなくしてgetterだけにすればいい 専用のラッパーを作る方法もあるができて当然の機能なので誰もやらないだろうね
161 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 21:44:09.47 ID:l1NoBYC6.net] >>159 C++でconstを誤用しているのとは異なり Rustではconstを正しく定数の意味で使っているので注意 つまりconstは定数でありコンパイル時に静的に定まる もちろんconstとは別の概念としてmutableとimmutableがあり、これらは可変性の有無を表す さらにそれらと別の概念として所有権があり、所有権を持っていればimmutableであろうと関係なくmutableな変数へ移すことで可変性を得られる 一方で所有権を持たないimmutableな参照からは可変性を得られない
162 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 21:51:25.41 ID:1935XsNt.net] >>161 >C++でconstを誤用しているのとは異なり 誤用なの?
163 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 22:01:32.22 ID:l1NoBYC6.net] >>162 そうだよ 実行するたびにあるいは関数を呼ぶたびに値が変わりうる変数(=静的に値が定まらず変わりうること)に対して、 変数がimmutableであることを間違えてconstと付けてしまった そのためC++では定数(=静的に値が定まること)の場合は苦肉の策でconstexprと変な名前を付けることになった
164 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 22:21:12.53 ID:1935XsNt.net] >>163 C++では単に値が`constant'って意味で使っただけではないのかな? それを誤用とは言わんと思う ところで何でconstexprではないconst変数は 静的に定まらないことになってるの?
165 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 22:37:19.16 ID:l1NoBYC6.net] >>164 もちろんC++は整数などに限ればconstで静的な定数となるが それ以外C++のconstは定数ではなく静的にコンパイル時に定まらない そのため真のconstを表すためにconstexprというキーワードを新たに用意する本末転倒な状況となった
166 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 22:52:19.69 ID:1935XsNt.net] 以下の2つは矛盾してないかい? >>163 >実行するたびにあるいは関数を呼ぶたびに値が変わりうる変数(=静的に値が定まらず変わりうること)に対して、 >変数がimmutableであることを間違えてconstと付けてしまった >>164 >もちろんC++は整数などに限ればconstで静的な定数となるが 2つ目はなるんだっけ?
167 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 22:53:11.95 ID:1935XsNt.net] >>165 >そのため真のconstを表すためにconstexprというキーワードを新たに用意する本末転倒な状況となった 「本末転倒」とは違うと思うよ
168 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:09:16.19 ID:h8dbx3na.net] >>166 C++で何らかのクラスのインスタンスを作ってconstに入れることを考えてみるとわかりやすいよ もちろんこのconstのインスタンスはコンストラクタの引き数の値によって変わるから静的な定数じゃないよね つまり単なるimmutableな変数に過ぎないわけだけどC++はそれに対してconstと間違えて名付けちゃった だから本当の定数に対してconstexprと名付けることになった有名な話だよ
169 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:20:34.22 ID:1935XsNt.net] >>168 >つまり単なるimmutableな変数に過ぎないわけだけどC++はそれに対してconstと間違えて名付けちゃった C++のconstは単なる`constant'の意味で 静的な定数という意味でないというだけなのでは? 本当に「間違えて」名付けたのかな? 俺にはC++のconstにあなたが「間違えて」静的な定数という意味を 期待しているだけに見えるのだが?
170 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:31:32.57 ID:l1NoBYC6.net] >>169 環境によって実行毎に、または、関数の引き数によって関数が呼ばれるごとに、>>168 の示してる例だと値が変わりうる その変わりうるものに対して、C++がconstと付けたのは失敗としか言いようがないのではないか そしてC++は本当にconstantなものに対して、後からconstexprと付けざるをえなかったことが、C++の失敗を誰の目にも明らかにしている
171 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:33:40.69 ID:1935XsNt.net] >>170 >環境によって実行毎に、または、関数の引き数によって関数が呼ばれるごとに、>>168 の示してる例だと値が変わりうる これはどいう状況か分かりにくい? ソースで書いてみて
172 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:42:46.60 ID:l1NoBYC6.net] >>171 関数に渡ってきた毎回変わりうる引き数を使ってそれを渡してインスタンス作成してconstに突っ込む場合でもよい あるいは環境変数やargv使ってインスタンス作成でもよい いずれも毎回インスタンスの値が変わりうるため定数ではないがC++ではconstと付けてしまった そして本当の定数にconstexprと付けた
173 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:47:46.47 ID:1935XsNt.net] >>172 曖昧さを避けたいのでソースで書いて 反論する
174 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:52:15.11 ID:p7JhiTtQ.net] ただし*const Tのconstだけはコンパイル時定数の意ではなく、C++と同じで書き換えを行えないという意味です 一貫性がありませんね
175 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:56:33.22 ID:h8dbx3na.net] >>169 数字でも物理でも定数は静的に定まるものだよ でもC++はconstをimmutableの意味で間違えて名付けてしまいました そして定数を表すためにconstを使えなくなりconstexprと名付けたという誰でも知ってる有名な話だよ
176 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 00:01:46.05 ID:gZ1LpnCS.net] >>175 >でもC++はconstをimmutableの意味で間違えて名付けてしまいました とあなたが思っているだけではないかな? C++のconstにあなたなが「間違えて」静的に定まるものを期待しているだけでは?
177 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 00:09:47.95 ID:6eBCzRN0.net] 言われてみれば数字や物理で定数は静的に定まる値だな どうせC++で静的に定まる値を示すキーワードも必要となるんだから素直にそれをconstにしておくべきだったか 設計ミスだな
178 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 00:57:00.01 ID:UNnBBHt0.net] >>175 >>177 の頭が設計ミス
179 名前:デフォルトの名無しさん [2023/03/07(火) 01:08:45.38 ID:gZ1LpnCS.net] >>177 >言われてみれば www
180 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 01:27:52.75 ID:phr7A4jU.net] immutableとconstantの違いを区別できていない人がimmutableに対してconstと命名してしまったのかな そのためconstantに対してconstと命名できなくなってconstexprと命名したと
181 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 01:31:47.04 ID:CjRtBzJ1.net] 同じ言葉や字句でも言語ごとにその概念が指すものは異なる 相対主義的に考えなさい 相手の価値観を理解しなければ説得力は生まれません
182 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 02:21:18.68 ID:oSHTm7sl.net] ・y = ax (a=10である) aをimmutableと呼ぶかconstantと呼ぶか ・y=f(a) (a=10である) f(a)をconstantと呼ぶかconstant expressionと呼ぶか まあ考え方次第だよな
183 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 02:29:20.82 ID:phr7A4jU.net] >>182 上はxが実行時に値がわかる変数なんでしょ? それならconstantには成りえないんじゃない?
184 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 08:05:58.19 ID:oSHTm7sl.net] >>183 かかるaについてなんと呼ぶかって話だから別にxについて気にする必要は無いよ
185 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 08:10:06.41 ID:X5urLXgj.net] >>182 理解できていなさ過ぎだろw
186 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 08:16:15.53 ID:X5urLXgj.net] >>182 あと例を出すにしても 整数は特殊でconstexprでなくconstでも静的定数になる例外だから例として最も不適切
187 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 09:21:06.13 ID:hj+ftEk+.net] 自演してRustゴリ推し他言語叩きをしてるのは 複製おじさんと呼ばれてるRustスレでは有名な荒らし しかもそいつが「RustJP公式 」の中の人で間違いなさそうって話だから手に負えない
188 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 10:27:35.30 ID:QCj9HjAv.net] >>187 「RustJP自称公式 」なのでなんの問題もない
189 名前:デフォルトの名無しさん [2023/03/07(火) 11:40:31.33 ID:gZ1LpnCS.net] >>180 それはお前用語なんじゃね?
190 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 11:55:27.75 ID:CdvGJ9oA.net] y = ax y も a も x も変数としか言いようがない
191 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 12:47:12.28 ID:CHI/c7S+.net] aを10としたときにコンパイル時 最適化してしまうかaという入れ物残しとくか更にはf(a)も計算して結果だけ使うか
192 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 21:59:54.08 ID:6AJw5hNk.net] 整数はconstやconstexprの有無に関係なくコンパイル時に最適化されるから整数を持ち出して来ても意味がない C++ならクラスのインスタンスを生成する場合などを考えるとわかりやすい コンパイル時点でそのインスタンスを定数化できる時にconstexprを使い静的に定数となる そうでなく実行時にならないと値が定まらない変数となる時はconstexprを使えない その変数がimmutableつまり生成以降は値を変更できない時はconstを使う
193 名前:182 mailto:sage [2023/03/07(火) 22:28:59.56 ID:oSHTm7sl.net] constというものの表現を語るうえで言語依存しない形で書いただけなので 少数でも文字列でも適当に読み替えてね
194 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 00:26:55.95 ID:Ax/TB2dR.net] >>192 C++の命名ミスだな 定数にconstと命名すべきであり immutableな変数にconstと命名すべきでなかった
195 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 00:36:06.87 ID:o1WhyvRq.net] 壊れたテープレコーダは生まれてくるべきでなかった
196 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 00:46:11.75 ID:+ZMcnEdg.net] 事後諸葛亮
197 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 01:01:29.10 ID:qkb67oYH.net] 同じ事しか書けない命名君はGC連呼厨なのか
198 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 01:22:37.49 ID:9h+oJZcX.net] 結果的に後からみればC++の命名ミスなんだろうが歴史的経緯で仕方ないだろ 昔はimmutableとconstantの概念の区別が曖昧だった
199 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 01:53:12.26 ID:CbNEQcSB.net] どうしても`immutable'を使いたければマクロ定義すれば? #define immutable const
200 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 02:01:56.79 ID:3vDDzLqz.net] Rustはconstをimmutableとcompile-time constantの両方の意味で使うので一貫性が無い >>174
201 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 07:29:50.16 ID:OMAPV4fU.net] >>200 Rustでconstは常に静的な定数を表す *constはconstとは全く別のものであり予約語を最小限にするための使い回し組み合わせ 両者は種別も異なるため混乱することもない constは定数の定義なのでこの位置に来る let foo: i32 = 12345; const FOO: i32 = 12345; *constは生ポインタの型を示すのでこの位置に来る const BAR: &i32 = &FOO; const BAZ: *const i32 = &FOO; このように両者は全く別物で出現位置も異なり共存もでき混乱することもない この生ポインタはunsafe Rustでしか使わないため通常は出て来ない そのために新たな予約語を消費するのは馬鹿げているため既存の組み合わせという合理的な選択をした
202 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 07:30:57.28 ID:/qygPgTx.net] constはCからの流れだしな。 元々Cがシステムプログラミング向けだったことを思えば、「リードオンリーセクションに置け」っていうくらいのつもりだったんだろ。 定数は#defineで指定しろって感じかな。
203 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 08:49:19.07 ID:w2ee/I/N.net] >>201 > この生ポインタはunsafe Rustでしか使わないため通常は出て来ない safeの範囲で普通に使うけど 参照の同一性比較とか書いたことないの?
204 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 09:00:01.62 ID:OMAPV4fU.net] >>203 参照の比較は生ポインタ直接比較ではなくstd::ptr::eqを使うのが行儀良いマナー 参照を渡せば*constに自動でcoerceされるためコードに*constを記述する必要はない
205 名前:デフォルトの名無しさん mailto:sage [2023/03/09(木) 14:43:18.74 ID:lc0skjdv.net] 本題に戻ろう
206 名前:デフォルトの名無しさん [2023/03/09(木) 19:02:01.89 ID:33ubz+zP.net] Rustは優秀なんだろうけど、言語仕様が難解なのと、「〜の分野ならRust」と言えるものがないから広がりにくいんだろうね
207 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 11:27:51.97 ID:E47xdjIQ.net] それにRustは左翼的な弱者救済的な雰囲気が漂う。 VBも同じ理由で使ってるだけで駄目プログラマとみなされていったから、 同じようにRustを使ってるだけで駄目プログラマ決定されてしまう気がする。
208 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 11:29:57.74 ID:E47xdjIQ.net] Excelもそうだ。Excelを使ってるだけで弱者扱いされてしまうようになっている。 VBもそうなったから、中味はそう変わってないのに名前を変えてC#にされた。 しかし、だんだんと、C#もVBと同じように馬鹿プログラマ専用言語とみなされる ようになってきてる。 Rustもきっとそうなるだろう。
209 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 14:27:01.34 ID:lvldJuuV.net] Rustも悪くないけど日本語のドキュメントが酷すぎるかなあ。 たとえば第七章のパッケージとグレートの話とかでも ------- 最初に学ぶモジュールシステムの要素は、パッケージとクレートです。 クレートはバイナリかライブラリのどちらかです。 クレートルート (crate root) とは、Rustコンパイラの開始点となり、クレートのルートモジュールを作るソースファイルのことです -------- 英文の方は版が新しいこともあってか The first parts of the module system we’ll cover are packages and crates. A crate is the smallest amount of code that the Rust compiler considers at a time. Even if you run rustc rather than cargo and pass a single source code file (as we did all the way back in the “Writing and Running a Rust Program” section of Chapter 1), the compiler considers that file to be a crate. と、いう具合で以下だいぶ丁寧に解説してる。 パッケージにはa library crateとあるから一つだけなの?とChatGPTに尋ねたら複数入ることもあると断言されたけど。
210 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 14:31:08.67 ID:+PZMhSrI.net] 面倒ならとりあえずDeepLに掛ければ良いのにね > モジュールシステムで最初に取り上げるのは、パッケージとクレートです。 > > クレートは、Rustコンパイラが一度に考慮する最小のコード量です。cargoで > はなくrustcを実行し、1つのソースコードファイルを渡したとしても(第1章 > の「Rustプログラムの作成と実行」でやったように)、コンパイラはそのファ > イルをクレートと見なします。
211 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 16:27:23.47 ID:BtFFfdHV.net] >>209 ひどすぎるのには同意するが それはボランティアによる非公式な翻訳で 識者による監修や査読がされてないから 質が低いのは当然といえば当然 一部専門用語を除くと機械翻訳のほうが それよりはマシな訳になることが多いので 多少英語が苦手でも公式を見たほうが断然効率がいいよ
212 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 16:39:48.49 ID:47WJOH0Y.net] >>209 7章の最初のページ見ればそれぞれどういう関係なのか一目瞭然 単数形複数形の違いを丁寧に訳してなければ重要な意味が日本語訳では消えてるかもね ・Packages: A Cargo feature that lets you build, test, and share crates ・Crates: A tree of modules that produces a library or executable ・Modules and use: Let you control the organization, scope, and privacy of paths ・Paths: A way of naming an item, such as a struct, function, or module
213 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 17:28:34.44 ID:/GMTezZ0.net] >>209 そのページは原文の2年半以上前の状態止まってる 日々改善されてるOSSで数年単位の遅れがあると全く役に立たないから 現状はRustの日本語ドキュメントは無いものと思っておいたほうがいい
214 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 18:00:56.32 ID:bkYlWMhE.net] >>213 原文のいつの状態を反映した訳なのか全然管理できてないらしいからね アップデートは望み薄
215 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 19:45:03.63 ID:+PZMhSrI.net] 規格がないので二流感が拭えない かと言ってC++が登場したときのように 今はプログラミング言語の実装が いくつも出てくる状況でもないのかな?
216 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 22:12:18.37 ID:GtLfWJGz.net] >>215 C++での混乱と失敗を繰り返さないことが重要
217 名前:デフォルトの名無しさん [2023/03/11(土) 22:59:17.84 ID:+PZMhSrI.net] 実装は複数あった方がメリットが大きいよ
218 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:05:20.16 ID:2/rFH0pr.net] >>214 マジかよw たかだか100個程度のファイルが管理できないってどんだけよ
219 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:19:14.88 ID:ChsfUoNW.net] 実装が複数あることはメリットもあるがデメリットも多くユーザを混乱させてきた 一方で言語仕様とその実現方法が確定して枯れた時は複数実装のメリットが上回る Rustについては更なる理想の言語に向けて公開todoリストも多くまだ発展段階なので複数実装は向いていない もちろん従来的な使い方ならば現状のRustで既に十分に利用できる
220 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:24:45.49 ID:uRw385pv.net] >>218 ユーザーフォーラムのしかもたった二人の回答を「公式コミュニティの見解」にしてしまうオツムの人達だからさ一般常識があると思ったら大間違い
221 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:30:52.30 ID:+PZMhSrI.net] >>219 3行目は全否定しておく CやC++に複数の実装があった第一の要因は開発ツールが売れたという背景がある Rustに限らず開発ツールは最早ビジネスとしては成り立たなくなってしまった
222 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:34:33.13 ID:2T5UBlcf.net] >>220 あれ痛いよね でもピン留めして晒し上げるのはさすがにどうかと思うわ
223 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:39:25.95 ID:ChsfUoNW.net] Rustは公式が提供するcargoやrust-analyzerで開発環境は十分だもんな もちろんrust-analyzerはLSPなのでVScodeなどの既存の統合開発環境で使える
224 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:51:17.37 ID:3ENT9RfU.net] >>220 Rustユーザーの大半は英語のドキュメントを直接見てるからな 同じRustユーザーというだけであのリテラシーレベルと同類扱いされるのは誠に遺憾
225 名前:デフォルトの名無しさん mailto:sage [2023/03/12(日) 06:07:53.91 ID:b0Zzr0Fl.net] >>212 一目瞭然ってことはないよ。 わかってるやつにはわかるっていうレベル。 特にmodule and use以下で戸惑うと思うよ。 Rustはプログラミング言語としてはCとかで神経使っていたところで楽させてくれる感じだけど、新人を呼び込むにはドキュメントがまずいかなあ。
226 名前:デフォルトの名無しさん mailto:sage [2023/03/12(日) 09:19:37.91 ID:XJpeOWKz.net] 前にもこれどこかで同じレスしたことあるけど Javascriptってドキュメントすっごい充実してるよな 2000年以前はHTMLとJavascript一緒になった解説本の最後の方に申し訳程度に乗ってたくらいで あとは某とほほサイト見るくらいしかなかったけど 最近ちらっとみたらすごいのな https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/find これは適当にクリックした特に選んでない一例だけど ちょっと過剰なくらい説明と例が乗っててスゴイと思ったわ Rustにここまでを要求したほうがいいとも思わんけど いつかみんなが使う言語になったときはそうなってるのかもしれん
227 名前:デフォルトの名無しさん [2023/03/13(月) 09:18:51.45 ID:65XUJIc/.net] udemyからrust勉強すれば良いと思う
228 名前:デフォルトの名無しさん [2023/03/13(月) 11:30:57.14 ID:QpsvkUdl.net] C++は既に意味不明な域に来ていて、誰も新規に習得しようとはしないだろう
229 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 12:04:07.60 ID:wwEuDEVq.net] >>226 ほんと。自分もノーマークだったけどすごいね。 Rustも「英文ドキュメント読め」みたいに突っぱねいようにしなくちゃね。 Rustのサイトで各国語にトランスレートされたもののリンク先の更新日付を眺めてると、中国語版に負けてる感じだね。
230 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 12:11:38.79 ID:CJ8zcgHs.net] 中国なんてどうでもいい
231 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 12:13:17.03 ID:bP2+YJD9.net] MDNもMDNで英語読まないとやってられない記事はちょいちょいあるけどね CSSのpositionとか
232 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 14:43:06.35 ID:wwEuDEVq.net] 少なくとも手解き用として、TheBookの日本語版ではねえ。 で、メモリ安全ってことだけをひたすらリピートするだけでは、新しい人は来ないでくださいと言ってるようなもん。 まあ、その方がチンケな優越感に浸れて良いのかもしれないけど。
233 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 15:10:59.37 ID:cwbZasxH.net] >>231 Wasmのところも日本語版は古い情報のままなので肝心なAPIが足りていなくて英語版を見ないと致命的 リンク先が訳せてなくて英語版を指しているのは次善策としてまだマシ 英語版 https://developer.mozilla.org/en-US/docs/WebAssembly#api_reference 日本語版 https://developer.mozilla.org/ja/docs/WebAssembly#api_%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9
234 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 15:27:59.03 ID:kyo182dJ.net] メモリ安全ってのは個人が始める動機としては弱い スマートポインタで充分なんだし チームで書くときにメモリ管理が怪しい奴が混ざり得るときに Rustで書くことを強制されるってシチュエーションはありえるかもね
235 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 15:42:51.26 ID:sbzZb6rB.net] >>234 両方書いてると差は歴然 Rustは可読性もよいし開発効率もよく 特に実行時デバッグが激減するのも大きい やむをえない場合を除いてC++を使い続けるメリットはない
236 名前:デフォルトの名無しさん [2023/03/13(月) 15:54:03.52 ID:kyo182dJ.net] >>235 >Rustは可読性もよいし開発効率もよく そんなのは人によるとしか言えない 所有権に割と馴染みがあるC++プログラマはともかく 他の言語からだと文法の解離に抵抗はあるだろうね これからプログラミングを始めようという人は 特にRustだからという抵抗はないだろう 実績が増えればRustからって人が増えるかもね
237 名前:デフォルトの名無しさん [2023/03/13(月) 16:03:04.23 ID:UI2Ct8M3.net] C++はコンパイラ買う時にデバッグツールもあって、そこでメモリリーク含む大体の解析が出来ることが多いから、今の所メモリ安全で困ったことはないな。 それよりもRustはまだ新しいから、何かしら思わぬ脆弱性が潜んでいることも考えて、まだ弄りながら様子見って感じ
238 名前:デフォルトの名無しさん [2023/03/13(月) 18:05:23.37 ID:QpsvkUdl.net] C++の有料コンパイラってそんなすげえのか?
239 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 18:37:31.12 ID:cwbZasxH.net] >>236 初心者や素人はC++でもRustでもなくBASICやPythonをやっていればいい C++もRustも書きこなせる人なら自明なようにRustがはるかに効率いい
240 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 19:04:23.67 ID:sbzZb6rB.net] >>237 デバッグツールを持ち出さなくてもRustはコンパイル時点でほとんど解決する点で圧倒的に優れている Rustはメモリ安全性だけでなくデータ競合がないことがコンパイル時点で保証される ポインタ以外の汎用的なヌル安全とエラー処理忘れ防止もRustは標準ライブラリ全体でOptionとResult利用により保証される C++と比べて開発効率が段違いに良くなる
241 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 19:17:45.07 ID:9XZC5W3h.net] C/C++のメモリリークと隣合わせなスリルがいいんだよ Rustなんて補助輪付きの言語はプロのプログラマッには温すぎる コーディングに自信がない奴や素人向けだな、Rustは
242 名前:デフォルトの名無しさん [2023/03/13(月) 19:49:16.47 ID:zhi7FkgJ.net] >>241 C/C++はプログラマとして成長させてくれるよね
243 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 19:51:01.09 ID:cwbZasxH.net] >>241 C++はデバッグ時間のムダ
244 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:02:48.32 ID:lNJwESa5.net] 別にスマートポインタでええがな
245 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:04:22.18 ID:lNJwESa5.net] Rustは規格が出てからだな
246 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:07:14.22 ID:4NzLTP/2.net] マ板でやれバカども
247 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:22:48.71 ID:4VuAJC20.net] >>239 変わった言語なので まず初めに学んだほうが先入観がなく覚えられるよ そのためにも日本語のドキュメントは 整備したほうが良い
248 名前:デフォルトの名無しさん [2023/03/13(月) 20:39:22.66 ID:RfKK3GLn.net] トラ枝 5月号 Rust 特集
249 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:45:38.95 ID:sbzZb6rB.net] >>243 その通りでC++は無駄なデバッグ時間が必要となるけど テストで発見できなかった分はデバッグもされず実行時のセキュリティ含めたバグとして残ってしまう Rustならばコンパイル時点ですべて排除できる >>244 勉強不足すぎだ C++のスマポで解決できることはRustで解決できることのほんの一部にすぎない
250 名前:デフォルトの名無しさん [2023/03/13(月) 21:04:50.75 ID:kyo182dJ.net] >>249 >勉強不足すぎだ >C++のスマポで解決できることはRustで解決できることのほんの一部にすぎない 他は?
251 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 21:41:54.90 ID:Lx/25M/K.net] >>250 そんなことも知らずにこのスレで書き込み続けているのかよ 他の人たちの書き込みを読んでないのかよ
252 名前:デフォルトの名無しさん [2023/03/13(月) 21:46:41.78 ID:kyo182dJ.net] >>251 他は? GCしか書けない人なのかな?
253 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 22:00:51.65 ID:sbzZb6rB.net] >>250 既にたくさん書いて伝えた 理解できなかったのか?
254 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 22:16:19.15 ID:P8sbSRo2.net] 絵に描いたような負け犬のセリフw
255 名前:デフォルトの名無しさん [2023/03/13(月) 22:35:49.32 ID:kyo182dJ.net] >>253 本当にGCしか知らないんだな >>249 >勉強不足すぎだ 熨斗をつけてそのままお返ししよう
256 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 22:38:39.16 ID:Lx/25M/K.net] >>252 C++もRustもGC無いぞ
257 名前:デフォルトの名無しさん [2023/03/13(月) 22:43:20.72 ID:kyo182dJ.net] >>256 んなことぁ誰でも分かってる
258 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 23:26:56.50 ID:sbzZb6rB.net] >>255 GC言語も使うしC/C++/Rustも使う 速さと省メモリの点でGC言語は不利だから使い分ける
259 名前:デフォルトの名無しさん [2023/03/13(月) 23:40:00.84 ID:kyo182dJ.net] >>249 >勉強不足すぎだ >C++のスマポで解決できることはRustで解決できることのほんの一部にすぎない だから他は?
260 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 23:52:11.42 ID:9+eE28f9.net] >>244 C++スマートポインタは unique_ptrは使わずともRustでは標準で全て自動解放されるよ shared_ptrはRustではスレッド内で使えるRcとスレッド間で使えるArcに分かれていて効率的だよ
261 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 00:08:40.65 ID:nARWep6y.net] >>260 別にunique_ptrやshared_ptrでええがな 難しくないよ >shared_ptrはRustではスレッド内で使えるRcとスレッド間で使えるArcに分かれていて効率的だよ 効率的をも少し詳しく!
262 名前:デフォルトの名無しさん [2023/03/14(火) 00:17:28.43 ID:g2aa4i95.net] C/C++でスレッドセーフな並列処理を作ろうと思ったら一苦労だけど、Rustだとそうでもないんかな。
263 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 00:51:48.86 ID:mRkuEIyQ.net] >>261 shared_ptrは常に排他制御されコストが高い 共有を増減すると排他制御のコストがかかる さらに単なる受け渡しも要注意でmoveしないとそのコストが無意味に余分にかかってしまう 一方でRustは排他制御するArcとしないRcの2つが用意されていてそれらの問題なく使い分けられる >>262 Rustはコンパイルが通った時点でデータ競合がないことを保証されるのでかなり楽
264 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 00:58:40.53 ID:Ff/IlIXh.net] うわっw 排他制御の意味も知らないのかよこいつw
265 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 01:09:54.31 ID:gRogmLJe.net] shared_ptrは排他制御してリファレンスカウンタの増減を行うからスレッドセーフ その代わり重い
266 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 01:26:54.27 ID:nARWep6y.net] >>263 なるほどね std::shared_ptrには参照カウンタの排他制御をオフにする機能はなかったかな? boost::shared_ptrだと美しくないけどBOOST_SP_DISABLE_THREADSマクロで切り替えられる 最近使ってないがLoki::SmartPtrは確かテンプレートパラメータで切り替えできたかな?
267 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 01:58:37.91 ID:gRogmLJe.net] Rustでは共存可能 スレッド内のみの共有はRc スレッド間での共有はArc 切り替えでなく最初から二種類が用意されるべき
268 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 02:06:25.73 ID:nARWep6y.net] >>267 同意 std::shared_ptrもLoki::SmartPtrみたいに テンプレートパラメータで切り替えできれば良いのにね ただしstd::shared_ptrを規格に入れた時点で 既にboost::shared_ptrもLoki::SmartPtrもあったことを考えると 参照カウンタが競合する機会はほとんどないという見立てで 実装を単純化したのかなと予想する 誰か経緯を知らんかな?
269 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 02:13:23.45 ID:nARWep6y.net] 苦肉の策としては #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>;
270 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 02:59:21.97 ID:u9OB+g2b.net] shared_ptr単独では完全なスレッドセーフではない、という問題もある。 shared_ptrで排他制御される対象はreference counterの増減だけであり、指している値の読み書きはもちろん排他制御されない。 したがってshared_ptrはスレッドセーフだから安心だと誤解していると、危険なプログラムが出来上がるリスクがある。 C++ではプログラマーがこれらの誤解や見落としやミスを全くしないことを求められ、それに依存するためプログラムの安全品質は危うい。 Rustではその点も安全で、Arc<T>はTへの書き込みが出来ないため、排他制御の問題は起きない。 書き込みしたいならば、Arc<Mutex<T>>やArc<RwLock<T>>など必要となる排他制御の種類に合わせて選び、組み合わせて利用する。 それら組み合わせにより、Tへの書き込みができるようになるが、必ずロックで排他制御されるため問題は起きない。 たとえプログラマーが見落としやミスや使い間違えをしても、Rustコンパイラがエラーを出し、該当箇所を教えてくれるため、常に安全性が保証される。
271 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 03:15:26.07 ID:nARWep6y.net] >>270 Mutex <T>を書けば良いのではないかな?
272 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 03:19:38.24 ID:nARWep6y.net] >>270 >shared_ptrで排他制御される対象はreference counterの増減だけであり、指している値の読み書きはもちろん排他制御されない。 >したがってshared_ptrはスレッドセーフだから安心だと誤解していると、危険なプログラムが出来上がるリスクがある。 想定してるレベルが低すぎる マルチスレッドで書くやつにそんなやつはいない 議論が無理やり過ぎ
273 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 03:33:56.57 ID:u9OB+g2b.net] >>272 その件に限らずすべてにおいて、勘違い、見落とし、ミスなどは発生する。 複雑化したときにmutex忘れも、shared_ptr忘れも、間違えてunique_ptr使いも、その他のミスも、何でも実際に起きている。 Rustではそれらが起きてもコンパイラが通さないことで、常に安全性が保証され、無駄なデバッグを避けられる。 C++では無駄なデバッグを招くか、もしくは、そのままリリースしてセキュリティの穴が生じてしまう。 現実にC++が多数の問題を引き起こしてきた。
274 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 12:05:32.83 ID:CPf3ZEOa.net] 暇を持て余すニートの日記
275 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 12:21:44.83 ID:nARWep6y.net] >>273 「Rustはコンパイルが通っていればマルチスレッドで 競合問題が起きないことが保証される」 これで正しい? 正しいとすれば マルチスレッドを習得したときの苦労を考えると有用なので 新しくプログラミングを始める人には勧めたい動機になる 俺自身は困ってないので使おうとはあんまり思わんけどね
276 名前:デフォルトの名無しさん [2023/03/14(火) 12:39:04.29 ID:RkFbHwTA.net] Rustが流行るとすればどの分野になるんだろうか? 一番は安全装置とかに使われる小規模な組み込みソフトかな。 CPUとか開発環境とかがまだ整ってないだろうから、ゆっくりだと思うけど
277 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 12:50:59.56 ID:nARWep6y.net] 普及するのにはキラープロダクトが必要 UNIX(C)やMFC(C++)や.NET(C#)のように 大手がプロダクトに採用してトップダウンで流行らせるしか 普及の道はないと思う ゆっくり普及なんてのはないと思う
278 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 19:34:32.70 ID:/poSvH9Z.net] Visual Studio Rust .Netがでるまで待とう
279 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 19:40:00.62 ID://qYwEcn.net] あらためてJavaって良い言語だなって思うわ ここ十数年だと人類一番の功績じゃね 良い点: シンプルさ。C#で言う値型を入れようかどうか迷ったときもあったんだろうけど(想像)、 プリミティブと参照型変数の二個だけでやってくという線引がセンスある。 悲しい点: 立てまし。個人的にはジェネリクスもいらんかった。 C++のテンプレートを潔く排除して出てきたのすごいすっきり感あった。 でもあとでジェネリクスは押し負けて?付いてきちゃったけど。 あと貧相な貧相なラムダ式。クロージャを期待したけど結局はanonymous classのといっしょ。 異論は無いと思う
280 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 22:31:24.61 ID:CPQICLea.net] >>275 Rustはマルチスレッド時でもマルチタスク時(=グリーンスレッドをRustではタスクと呼ぶ)でも データ競合を起こさないことが静的に保証されている 唯一のプログラミング言語
281 名前:デフォルトの名無しさん [2023/03/14(火) 23:07:45.86 ID:5gRl/D4e.net] んなわけねえだろ
282 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 23:17:29.22 ID:CPQICLea.net] >>281 Rust以外の言語があるならば教えて
283 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 23:54:49.43 ID:AgG33ThB.net] Ownershipの元ネタのCycloneはやってねーのけ?
284 名前:デフォルトの名無しさん [2023/03/15(水) 02:10:25.53 ID:itMePwRG.net] Rust、コンパイル遅いっていうけどどれ程なの?C++と比べて遅い?
285 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 02:53:43.28 ID:aLgn/lBf.net] コンパイル後の実行デバッグ時間が激減したのでトータルで要する時間は減少した
286 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 03:26:18.55 ID:DXTHIxnh.net] 現状はバカがイキる為だけに持ち上げられるRust 万一普及したとしてバカが使いこなせるはずもなく
287 名前:デフォルトの名無しさん [2023/03/15(水) 07:08:24.89 ID:SNoM8taV.net] 今まで C++ で制御して成功率 99.99% だった ロケットをわざわざ Rust で描き替えて墜落しても Rust は悪くない悪いのは GC のせいだと言い張るのが Rust 信者
288 名前:デフォルトの名無しさん [2023/03/15(水) 09:03:13.60 ID:n0l+w21l.net] >>277 Android(Java) iOS(Objective-C++)
289 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 09:51:38.96 ID:d2iGalsS.net] ロケットでGCは無いわ
290 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 10:13:26.89 ID:aLgn/lBf.net] >>287 C++もRustもGCないよ
291 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 10:52:34.36 ID:d/hulDPr.net] プログラミング言語「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で書く範囲を広げることで段階的にセキュリティ上の恩恵を受けようという戦略である。
292 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 10:57:42.49 ID:QVyWv/mn.net] >>280 デッドロックは静的検出はできないでしょ?
293 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 12:50:04.82 ID:FGvum1vT.net] やっぱりC++だよね
294 名前:デフォルトの名無しさん [2023/03/15(水) 15:17:28.42 ID:6d2zOTAf.net] 段階的に置き換えることができるだけのお金と能力のあるエンジニアを確保できるアメリカの大企業ならいいんだろうけどね 両方無い日本企業には無理無理カタツムリ
295 名前:デフォルトの名無しさん [2023/03/15(水) 19:11:32.56 ID:Raq+Bs5u.net] 能力ない人の発想だね
296 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 19:46:51.43 ID:rzl5B1H1.net] まず初めにの人はRustは選ばんと思う Rustがターゲットとしているところで プログラミングをやるなら 現状でCの習得は避けて通れない となると学習コストの問題で 文法がほぼ包含関係にあるC++を選ぶことになる OSの基盤からRustにしないと一向に増えないよ
297 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 19:49:13.81 ID:N9nUYl96.net] >>3 で終わってんだよこのスレ うだうだ続けたい奴はコード書く能力もないからここで自己顕示欲発揮しちゃうんだろw
298 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 19:50:50.82 ID:zbLR3nEh.net] 能力ある人からRustへ移行していってる >>294 ほとんどのシステムは複数のプログラムから構成されているため それら各機能をグレードアップで更新するときにRustへ書き換えることで進んでいる もちろん新規システムは最初からRustで書くことが多くなっている
299 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 19:55:49.97 ID:rzl5B1H1.net] Rustユーザが増えるストーリーは トップダウンで基盤を整備するしか有り得ない Cと文法が乖離してるのはメリットもあるだろうけど 普及にはデメリットとして働いている
300 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 20:02:03.89 ID:zbLR3nEh.net] セキュリティ観点から新規システムはC/C++禁止でRust必須が要件になっていってる この動きはそれが出来るところから着実に進んでいるので止めようがない
301 名前:デフォルトの名無しさん [2023/03/15(水) 20:52:20.68 ID:QVyWv/mn.net] >>300 >新規システムはC/C++禁止でRust必須が要件 どこで?
302 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 21:00:17.63 ID:QVyWv/mn.net] デファクトスタンダードの強さは MSを見ていればまぁ自明だわな
303 名前:デフォルトの名無しさん [2023/03/15(水) 21:15:24.65 ID:itMePwRG.net] 結局コンパイルってどのくらい遅いの?
304 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 21:55:22.51 ID:46PmQs8i.net] 今日の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に変換することができました。
305 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 21:58:57.19 ID:46PmQs8i.net] >>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
306 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 22:07:43.40 ID:QVyWv/mn.net] Rust普及はMSの動向が鍵だよ 自然に増えるもんじゃない
307 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 22:20:44.44 ID:46PmQs8i.net] Microsoftは自社製品のRust化を進めると同時に普及も進めてるね 日本語ドキュメントも充実してる Rustを使用したWindowsでの開発 https://learn.microsoft.com/ja-jp/windows/dev-environment/rust/overview
308 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 00:10:36.78 ID:srO8KDRm.net] PriorityはF#の次だな https://learn.microsoft.com/ja-jp/windows/dev-environment/
309 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 00:12:05.34 ID:srO8KDRm.net] 「C++とCの概要」の位置に来ないと普及には程遠い
310 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 00:25:01.88 ID:AJSi61e9.net] RustがC++と同じ土俵へ採用されてしまった時点で 何もかも優れているRustの勝利 疑われる「C++」の安全性、今後の動きはどうなる https://japan.zdnet.com/article/35199018/
311 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 06:24:59.05 ID:R4dgmdEC.net] 次の10年はRustが取った、となると、APIがRustになる ならば、RustなAPIにC++がきちんと接続できるようになってもおかしくない そうすると、Rustが実績を積んだ「正しい縛り」を、C++でも使えるようになってくるんではないだろうか もうそういう試みある?
312 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 08:50:45.88 ID:zwODLYWH.net] 何言ってんだこのバカ
313 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 09:08:29.35 ID:wZlU7tIR.net] >>311 既にRustとC++の相互呼び出しは実現されているが Rustから見てC/C++部分は当然unsafe扱い 最終的にC/C++部分が無くなる形で完成することになる
314 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 09:15:14.89 ID:3C3pOHVn.net] OSもアプリケーションも、pure Rustになるんだろ、理想論としては だとしたら、境界面であるAPIには、縛りにかかる属性情報が露出するはず C++がそれに対応できないなら、今後C++ではアプリケーションを書けないことになってしまう
315 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 09:54:57.99 ID:hwbAfXXm.net] 慣れて使いこなせるようになると、 Rustの方が書きやすいとほとんどの人が言うほど差があるのだから、 C++がいずれ消えるのは間違いない。
316 名前:デフォルトの名無しさん [2023/03/16(木) 10:39:34.81 ID:N2/NSeFa.net] >>298 >能力ある人からRustへ移行していってる まるでKENYAの作文だな
317 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 10:43:46.43 ID:fxj0X8UB.net] Rustからインラインアセンブラでレジスタいじって安全性が担保されつつC++と遜色ないならもういらんわな
318 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 10:45:31.49 ID:X3XJCWQc.net] ここでぐちゃぐちゃ言っても何も変わらないからさっさとC/C++で書かれた森羅万象の移植やってこいよ
319 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 10:57:52.25 ID:n4rBBOEi.net] >>317 もちろんRustの変数を使う形でインラインアセンブリをRustでは記述できるが 当然ながらRustコンパイラによる保証範囲外となるunsafe部分になる Rustはunsafe部分のみ人間が安全性を担保すれば全体についてはRustコンパイラが保証する形で役割分担できる その点でプログラム全体が常にunsafe状態となってしまうC/C++とは根本的に異なる
320 名前:デフォルトの名無しさん [2023/03/16(木) 10:59:13.64 ID:mkPG1w5O.net] >>303 ここの最後の方に載ってるよ https://quick-lint-js.com/blog/cpp-vs-rust-build-times/ OSによっても違うみたいだけど、C++の方がちょっと早いくらいだね
321 名前:デフォルトの名無しさん [2023/03/16(木) 11:04:29.29 ID:srO8KDRm.net] まぁRustでスクラッチから書かれたOSでWindowsやiOSやAndroidを取っ替えるか スマホみたいな何らかの新しいハードウェアが誕生して それがRust製で書かれたOSで制御されている状況にならんと普及はせんよ
322 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 11:11:37.43 ID:r79frV++.net] >>321 頭の弱い子ですね JavaやPerlやJavaScriptやRubyやPHPやPythonなどで書かれたOSは普及していませんが それらの言語は普及しました
323 名前:デフォルトの名無しさん [2023/03/16(木) 11:19:37.68 ID:srO8KDRm.net] >>322 JavaやPerlやJavaScriptやRubyやPHPやPython使ってるところで普及はするかもね じゃこれで良い? ニッチと言って分かるかな?
324 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 11:22:05.57 ID:3C3pOHVn.net] マイコンでRustを使う試みは結構普及してるみたいだね
325 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 12:18:46.17 ID:xA7F3jfw.net] Rustは電気ドリルや3Dプリンタのような道具なんだから、本当に良いと思えば 自分が使って生産効率を上げたり良い作品を作って披露すれば良いだけなのに、 信者達が無理やり広めようとしているのが嫌だ。 困るのは、C++を使ってる人を馬鹿にすること。
326 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 12:23:14.36 ID:0EJvJf6l.net] Rust製の高速なwebpack互換バンドラ「Rspack」登場。現時点で5倍から10倍の性能向上 https://www.publickey1.jp/blog/23/rustwebpackrspack510.html
327 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 12:23:28.58 ID:xA7F3jfw.net] C++をディスってC#を上げまくっていた人達が、Rustに鞍替えした模様。 彼らは5chやtwitterで徹底的にRustを褒めまくっている。 どうしてそんなことをするのか。思想家や哲学者なのか。 マルクスもそういう感じで結果、大勢の人々を苦しめた。
328 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 12:31:35.94 ID:srO8KDRm.net] Rustはポテンシャルはあるけど現状で普及するパスが見えていないですから Rustを愛する者にとってはそこがフラストレーションなのでしょう 普及するパスが見えたら解消すると思うよ
329 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 12:37:22.05 ID:3C3pOHVn.net] C++が怠っていた部分を成し遂げたんだから、Rustは誇っていい エンジニアが本職なら、C++でもRustでも、なんでも読み書きできないといけないだろう まあ、じきにC++も追いつくだろ 問題はC
330 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 13:52:30.33 ID:xA7F3jfw.net] 本当に優秀なプログラマなら、C++でもRustでもどっちでも簡単に使えるので、 必要あらば、どっちでも使うだろうが、C++でもメモリーエラーなんて滅多に 起こさないし、起きても原因究明して直せるから、敢えてRustに行く動機もない。 別にRustが使えないからC++を使ってるわけじゃないのに、Rust使う人の方が 憂愁みたいに言われるのはおかしい。
331 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 13:53:26.57 ID:xA7F3jfw.net] >>330 書き間違えた。 憂愁 ---> 優秀
332 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 13:55:47.65 ID:xA7F3jfw.net] >>329 「Rustは誇っていい」という意味が分かりにくい。Rustを作った人はちょっと 誇っていいかも知れないが、Rustの解説本を書いている人や、Rustを道具として 使っている人が誇っていいわけではない。
333 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 13:57:50.83 ID:3C3pOHVn.net] ああ、うん Rust(言語と言語チーム)は誇っていい その一派につらなる「信者」が誇るのは…まあ人の常かなって
334 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 14:00:22.48 ID:xA7F3jfw.net] >>333 >その一派につらなる「信者」が誇るのは…まあ人の常かなって 信者が誇って良い分けないと思うが。
335 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 14:06:46.30 ID:3C3pOHVn.net] Rust派先鋒衆がいうのは、Rustに移れば、大多数の脆弱性は自然につぶれるのに、 C++に固執するのがもうクズ。っていう発想 それもわかるんだけどね なんでも書けてこそのC++ 縛りを記述できないなんて、欠陥でしかない だから、C++の進化には期待してる 遅々たるものになるかもしれないけど
336 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 14:20:33.51 ID:xA7F3jfw.net] >>335 >Rustに移れば、大多数の脆弱性は自然につぶれるのに、 >C++に固執するのがもうクズ。っていう発想 それもわかるんだけどね 本当に優秀ならば、C++でも脆弱性がが入らない。 mozillaやgoogleの社員がタコなだけ。
337 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 14:30:08.42 ID:srO8KDRm.net] >>314 C++からRustライブラリを呼ぶ場合もRustからC++ライブラリを呼ぶ場合も 文法違いすぎて大変そうだけどどうしてるんかな? Cのライブラリを呼ぶのはどのプログラミング言語からでも余裕だけども JavaとC++もかなり歪だよね?
338 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 14:31:40.01 ID:hABarloL.net] >>336 のような勘違いしてる自信過剰なダメな人たちが今までセキュリティの穴を多数あちこちで生じさせてきた 人間は必ずミスをするという当たり前のことも受け入れられない人はキチガイのみ
339 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 14:33:21.04 ID:3C3pOHVn.net] >>336 一人で作るもんでもないからねえ、大人数だと、体調の悪いヤツとかも混じるだろ コンパイラに任せたいってのはわからんでもない 俺も、(たとえば)gccとヘッダライブラリに任せて、自分は気楽にごりごり書きたいw
340 名前:デフォルトの名無しさん [2023/03/16(木) 14:34:51.94 ID:srO8KDRm.net] >>338 自信過剰も何もC++書ける人だとなぜに スマートポインタで失敗するのか理解不能だよ 原因は生ポインタ使ってるからなんだろうけど それなら生ポインタをプロジェクトで禁止にするだけで充分 あとマルチスレッドにおけるデッドロックはRustで検出できるのかい?
341 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 14:37:50.95 ID:srO8KDRm.net] ボローチェッカだっけ? CとC++で実装できんのかな?
342 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 14:39:57.56 ID:3C3pOHVn.net] ていうか、Rustがもたらそうとしてるのは、プログラミングパラダイムだから、 C++でおんなじように書ければいいんだよ ハズしてたらコンパイルエラーになってくれてだな Rustは実績を積んだ C++は早くその成果を取り込むべき ラムダといいコルーチンといい、C++が他に学んだ前例はいくらでもある >>341 まじそれ
343 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 15:04:51.89 ID:bO6zkRLm.net] >>338 それはプログラマーのレベルが少なくとも俺よりは低いから。
344 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 15:07:17.05 ID:3C3pOHVn.net] >>343 お前みたいな優秀なヤツが、【わざと】脆弱性を仕込んだコードをコミットしたりするんだよw 他人は信用できねえ 俺クラスになったら、自分自身が一番信用できねえww
345 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 15:14:34.72 ID:N2/NSeFa.net] use 描くだけでコンパイル中にダウンロード始まって 何分も待たされたらそりゃ遅いわ!!!ぷんぷんって 怒るアホも出て来るだろうね
346 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 15:18:25.89 ID:N2/NSeFa.net] >>334 Rust(人気)は俺が育てた!(AA略)
347 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 15:36:54.04 ID:07ACJDqQ.net] >>341 現状では無理 C++33くらいで可能になるかもね
348 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 15:38:33.76 ID:07ACJDqQ.net] >>340 >あとマルチスレッドにおけるデッドロックはRustで検出できるのかい? コンパイルエラーになるかという意味ならならない その辺はGoとかと一緒でイディオムで対処
349 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 15:42:21.06 ID:I4Z9PBKv.net] >>348 メモリ安全だけだとあんまり有り難くないな もしミスってもデバッガで直ぐ分かる訳だし
350 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 15:51:10.02 ID:TBYrYTSU.net] >>349 メモリ安全だけでなく C++とは異なりRustはデータ競合を完全に防げる C++とは異なりRustは広義のヌル安全であることも大きい
351 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 16:02:01.69 ID:PpEtLqb1.net] >>350 それでも言語が汚いから使いたくない。
352 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 16:24:46.13 ID:TBYrYTSU.net] 様々なプログラミング言語と比較してもRustは美しい側に入るとともに 言語機能が強力で可読性が高い とくにパターンマッチング これはC++でも導入しようとしているが進んでいないだけでなく C++で出ている提案では強力でなく可読性もよくないようにみえる Rustはパターンマッチングが非常に強力で可読性の向上の最大要因となっている
353 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 16:52:12.01 ID:3grScBM3.net] >>351 Rustかどうかは別として10年後くらいには 今Rustが実現してるやり方が標準的なものになるのは間違いないから 考え方やメリットデメリット、限界をある程度学んでおいた方がいいかもよ Rust自体はいいところもあれば悪いところも沢山あるので実際に使うかどうかは状況次第
354 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 17:04:30.58 ID:YeYGULup.net] 結局Rustがもひとつ流行らないのって ①エコシステム ②ライブラリ なんじゃやいの? ①は流行ってきたら充実するものでニワトリと卵だけど、②はどうなん? ②が中々充実しないのは何かRustのライブラリ書いてやろうと言う人が出てこない理由あるんかな?
355 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 17:12:09.28 ID:3C3pOHVn.net] 採用宣言が大手から出たんだし、そのへんは急ピッチで進むっしょ >>353 10年後には、いまRustが提示しているものを踏まえた、さらにスマートなものが出ているかもしれない でも、それを理解するには、ここから10年間、Rustの成果を学び、踏まえるのがいい だから俺はいま学ぶぜ 願わくば、10年後にも、しぶとい感じでC++が現役であってほしいな
356 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 17:15:50.99 ID:QTF1+6wX.net] C++は次々と新たな機能を増やし続けてきたが増築工事だから色んな点で限界が多い 例えば話が出ている広い意味のnull安全はC++がoptionalの導入をとっくに行っているが ・なかなか普及しない ・既存ライブラリの仕様とのチグハグ ・パターンマッチング機能の導入がまだなので使い勝手が悪い などの問題が山積みであまり使われていない C++の他の機能導入でも似たような状況が多い Rustが美しく書きやすく読みやすいのはそれらの多くが最初から解決されているからだと感じる C++をさっさと棄てるのが現実解であると理解できた
357 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 17:23:01.97 ID:3C3pOHVn.net] C++はなんでも書けるかわりに、いまや考えなしに勝手に組み合わせると めちゃくちゃになるんだよね Rustには引き算の美学の成果が入ってる C++も、先頭で縛りを宣言できるようにして、美しく書けるようになるべきだ 絶対に
358 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 17:47:47.57 ID:VzH+f4s6.net] ソースコードのコンパイル・ビルドの時点ですべての問題点をエラーで全部弾いてくれたら理想的だね 大抵はテストツールまで書かないと使えない
359 名前:デフォルトの名無しさん [2023/03/16(木) 19:59:01.19 ID:srO8KDRm.net] >>350 コンストラクタでlockしてデストラクタでunlockするproxyクラス作って その一時オブジェクト経由で触れば良いだけなので何を今更という感じ メモリ安全は別にデバッガですぐ特定できるし マルチスレッドではRustの利点がない デッドロックが検出できたらまぁ嬉しいが?
360 名前:デフォルトの名無しさん [2023/03/16(木) 20:03:11.00 ID:u3ZLVO1D.net] クラス笑
361 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 20:03:55.24 ID:srO8KDRm.net] >>354 多くの人に使ってもらおうと思ったらCで書いて 各言語のラッパーを提供するってのが多い RustにこのCの代わりができれば良いんだけども? もしRustユーザしかリンクできないライブラリだったら Rustはそもそもユーザー数が少ないし Rustで書く動機が減る
362 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 20:07:00.05 ID:srO8KDRm.net] >>357 多人数でやるプロジェクトにはC++は自由過ぎて その点は書き方にある程度拘束される意義はあると思う
363 名前:デフォルトの名無しさん [2023/03/16(木) 23:56:33.56 ID:ufHOK4fg.net] >>320 ありがと 意外と変わらないんだ
364 名前:デフォルトの名無しさん [2023/03/17(金) 00:02:12.50 ID:aeVIJ/KU.net] Rustでゲームエンジンやグラフィックソフト作れたら認めてやるよ
365 名前:デフォルトの名無しさん [2023/03/17(金) 00:04:03.80 ID:aeVIJ/KU.net] DTMに使いそうなDAWソフトとかでもいいぞ 書き方はGitHubにいろんなOSSの見本があるから簡単でしょ?
366 名前:デフォルトの名無しさん [2023/03/17(金) 00:04:27.28 ID:aeVIJ/KU.net] Rust使いこなせるくらいなら余裕のはず
367 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 00:14:30.94 ID:o5CBT2m0.net] SDLのRustバインディングはあるけども Rustで本体を書いて他の言語のバインディングって出来るの? 他の言語との乖離でRustならではの部分が封じられて あんまり嬉しくないような気もするのだが? それともRustでライブラリ書いたらターゲットはRustだけになるのかな?
368 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 00:14:49.50 ID:6s2Kuhdf.net] >>356 >Rustが美しく書きやすく読みやすいのはそれらの多くが最初から解決されているからだと感じる 俺とは感覚が違う。Rustを美しく感じない。
369 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 00:21:48.75 ID:6s2Kuhdf.net] これは理解できるし、はっきりそう書けばよい: ・Rustの本を書きました。Rustは良い言語なので本を買ってください。 ・Rust用のライブラリを書きました。Rustは良い言語なのでライブラリを買ってください。 これは理解できないし、問題: ・C++は害悪なのでRustをみんなが使って世の中を良くしよう。 ・自分がC++を使いこなせないのに、使いこなせる人が許せないから、使いこなせるRustを普及させたい。
370 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 00:39:18.46 ID:2hBAQcCo.net] RustはC++なんかよりずっと簡単! <- これならわかる
371 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 00:51:57.03 ID:6s2Kuhdf.net] >>370 それも意見が分かれそうだ。
372 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 00:54:59.09 ID:UJajhYy7.net] >>367 出力をcdylibにすれば一般的なCソースのライブラリと同じ形式(soとかdll)で出力されるはず 当然FFI絡みの制約は出てくるしextern指定とかも必要だけど境界部分だけ気を付ければ内部は自由にRustできる wgpuはRustで書かれたグラフィックライブラリだけどその機能をC/C++から呼ぶためのwrapperでwgpu-nativeがあって さらにそのC用のwrapper経由で別言語(Pythonとか)のwrapperが作られてたりする 依存関係がややこしいけど wgpu (Rust製、Rust用Lib出力) ← wgpu-native (Rust製、C用Lib出力) ← wgpu-py (C+Python製、Python用ライブラリ) みたいな構造
373 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 01:04:51.03 ID:o5CBT2m0.net] >>372 なるほどー
374 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 05:58:07.48 ID:HbMAHHRq.net] >>359 Rustならマルチスレッドでもマルチタスク(=グリーンスレッド)でも書きやすく さらにデータ競合を完全に防げるRustしか現状の言語では選択肢ないと思うよ 各言語で書き比べてみれば一目瞭然 そのため並行並列を使うプログラムはC++→RustだけでなくJava→Rustの移行も進んでる
375 名前:デフォルトの名無しさん [2023/03/17(金) 10:42:47.45 ID:o5CBT2m0.net] >>374 >>そのため並行並列を使うプログラムはC++→RustだけでなくJava→Rustの移行も進んでる 全く進んでいないのだが?w 俺の周りではC++やJavaでマルチスレッドで書く奴の方が多い というかそもそもRustを使っている奴は一人もいないw 妄想なのか詐欺師なのか... Linuxでも さもRustの導入が進んでるように言うが実際は>>39 だし...
376 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 10:55:37.94 ID:FKqwIQQI.net] マルチスレッドはまあ普通だけどマルチタスクはめちゃくちゃ書きにくいぞ 単純なWeb Serverくらいならいいがちょっと凝った処理を書こうとするとくっそ面倒くさい tokio依存なのもダメなところ
377 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 11:06:44.98 ID:tBmmskox.net] そここそ、OSがRust化するっていうんだから、きれいなAPIが出てきてほしいね 結局、効率を求めたらC API に肉薄することになるし
378 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 11:15:24.56 ID:TZnQdWAf.net] Linuxの現状はRustでドライバが書けるようになったってだけだよ 誤解なきよう
379 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 11:17:48.64 ID:RPqYd1dp.net] >>376 マルチタスク(並行)で綺麗に書ける言語はRustとGoだけだな GoはPromise(Future)使わないあのスタイルに寄せられるのとGC言語であるため Rustが汎用では筆頭言語になる
380 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 11:33:47.61 ID:Igk62yzo.net] >>376 だよな Rustの非同期が簡単だと勘違いしてるやつはチュートリアルレベルしかやったことないやつだと思うわ
381 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 11:43:37.53 ID:RPqYd1dp.net] >>380 自分でpollしたりするのも含めて色んなレベルで書いているが簡単だぞ Rustで並行並列が難しいと言うならばとこが難しいのかを具体的に述べよ そしてそのケースでRustの代わりに使える別言語があるならば述べよ
382 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 11:51:53.17 ID:UWSndCzi.net] Goと比較したら性能面でも劣ることが多くて同程度の性能を実現したければ手動であれこれやらないといけないからな
383 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 12:19:57.65 ID:CZQwnfV3.net] >>381 そうやって自分が分かってない事を無料で聞き出してしまおうとする。ずる賢い。
384 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 12:31:22.55 ID:RPqYd1dp.net] >>382 Goが速い遅いと言ってたのは昔の話 今はGoもRust tokioも改善してほぼ同じwork stealing方式になり似たりよったりの速度 C++をあきらめてRustに対抗できるGoを持ち出すしかないほど追い込まれてるのかね >>383 Rustで並行並列が他の言語より難しいことはない 難しいと主張するならば何が難しいのかを述べたまえ もし本当に具体的に困ったことがあるならばアドバイスできる
385 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 12:38:18.49 ID:YQ2F/Sw2.net] 追い込まれてるってなんだろうね 楽しそうだね
386 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 12:39:30.67 ID:o5CBT2m0.net] この人は妄想癖がある
387 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 12:56:40.90 ID:LTrpjv8n.net] >>384 >Rustで並行並列が他の言語より難しいことはない >難しいと主張するならば何が難しいのかを述べたまえ >もし本当に具体的に困ったことがあるならばアドバイスできる 問題意識があること、気付くこと、それが大事。 あなたにはそれがない。
388 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 13:03:24.97 ID:Gi38nai6.net] >>383 わかり味 こいついつも教えて君だよなぁ 総論しか書けないところみると マニュアルだけ読み込んだペーパープログラマーがそれを隠すためのネタを欲してるようにしか見えない
389 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 13:03:47.55 ID:T8dNhcTz.net] Goはgoroutine間のデータ競合の発見を実行時のランタイムでやるしかなく Goはあまりお勧めできないなあ メモリ共有せずチャネルを使う範囲ならGoでもいいけど Rustでもチャネルはもちろん使えるし 共有メモリで安全にデータ競合を起こさず使えるからRustがいいよ
390 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 14:28:10.79 ID:ZRpBqjDt.net] ほんと嘘ばっかりだな
391 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 15:04:18.42 ID:RPqYd1dp.net] >>389 Goに限らずデータ競合を実行時にしか検出できない言語ではデータ競合が時々しか起きない場合のデバッグが難しい Rustを使うべき理由はデータ競合を静的に検出できる点にある
392 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 15:55:42.60 ID:LTrpjv8n.net] >>391 それはマルチスレッドプログラミングのアルゴリズムをRustは強く制限しているから。 だから、その制限から外れるようなアルゴリズムは使えないので柔軟性は欠く。
393 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 16:03:41.59 ID:tBmmskox.net] そこが、新規書き起こしのRustのメリットでもあるわけよな
394 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 16:05:57.04 ID:LTrpjv8n.net] >>393 そして、独自のアルゴリズムは使えないので、アルゴリズムの研究には向かない。
395 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 16:11:31.46 ID:TZnQdWAf.net] 第n次LinkedListおじさんvsGCおじさん戦争
396 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 16:16:19.10 ID:tBmmskox.net] 頑張ったら書けるんじゃねーの、それもsafeで そのへんはC++もおなじ 自分も、ニッチすぎる薄いラッパなら頑張って書くし
397 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 16:20:04.75 ID:KZujdKGk.net] >>392 Rustで記述できないマルチスレッドプログラミングのアルゴリズムなんてものは存在しない Rustは柔軟性が非常に高い
398 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 16:32:10.93 ID:LTrpjv8n.net] >>397 嘘を書かないで。
399 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 16:41:56.97 ID:T8dNhcTz.net] Rustで書けないのがあると主張している人が例を出せばいいんじゃね Rustにそんな制限はないからすべて書けるよたぶん
400 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 16:52:07.05 ID:4tGjgBNl.net] 結局何年か後にはlinux kernelを全部rustで書くつもりなんかな
401 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 17:00:34.34 ID:tBmmskox.net] 書けなくはないだろ、書きやすいかどうかだ 実際どうなん C++は、なんでも書けるが、油断すると複雑すぎる代物ができあがる そんで、「でも例外がくるとー」「でも異常値がくるとー」って
402 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 17:01:41.44 ID:LTrpjv8n.net] >>399 マルチスレッドのアルゴリズムは非常に多く存在していて、ある意味では無限に 考えられる。Rustは数個しかサポートしていないから、無理。
403 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 17:26:21.78 ID:T8dNhcTz.net] >>402 Rustで書けない例があると主張したいなら例を出せばいいんじゃね Rustに何か制限があるわけじゃないからおそらくなんでも書けるよ
404 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 17:31:51.55 ID:LTrpjv8n.net] >>403 unsafeになる。
405 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 17:42:50.37 ID:T8dNhcTz.net] >>404 マジ?信じられん もし本当ならそのunsafeを使わざるを得なかった例を具体的に出せばいいんじゃね
406 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 17:43:39.56 ID:tBmmskox.net] unsafeをゼロにするよりも、極小なunsafeブロックを組み込んで華麗にキメてほしいね これはC++も同様
407 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 17:52:35.17 ID:2s/kFNH6.net] >>400 そういう枯れた古いものをわざわざ書き直すことに熱意を燃やせる人間は少ない 新世代のデータベースやcrypt/blockchainのように金になる新しい成長分野ではc/c++よりもrustがよく使われてる 技術の自然な世代交代は既存システムの置き換えから始まるものではない
408 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 18:01:30.86 ID:LTrpjv8n.net] >>405 次のことが成り立っていれば教えてもらわなくても自然に分かる: ・マルチスレッドの事を理解している。 ・Rustのことを理解している。 ・算数的直観力に優れる。
409 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 18:03:48.04 ID:u99ocdLb.net] 複製おじさん vs 100点おじさん Fight!
410 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 18:24:08.50 ID:NC4w42Nt.net] >>401 そのへんの問題もRustだと安全安心なのがいいよなー 特に例外機構を無くしたのは大成功 あとResult放置してると警告もしてくれるしな >>404 そのunsafe使わないと書けなかったコードを出してみ 寄ってたかって添削してやろう
411 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 18:36:02.65 ID:LTrpjv8n.net] >>410 俺は天才だから、お前みたいな凡人に無料でヒントをくれてやらない。
412 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 19:13:16.48 ID:tBmmskox.net] Rustって、削ぎ落したものは復活させません、って宣言とかしてるん?
413 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 19:55:25.86 ID:9o1NNcpX.net] >>408 Rustをあんまり知らんけど言語間に根本的な差はなくね?
414 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 20:02:50.35 ID:kImSYq8C.net] >>408 はいつものキチガイ RustもC++もコードを書けたことがない 相手にするだけ無駄
415 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 20:19:10.88 ID:TZnQdWAf.net] >>414 今さらなに言ってるんだ? ここにはキチガイしかいないぞ? 俺もお前もな
416 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 20:29:34.70 ID:Zxg/DnHC.net] >>413 ん?だから何?
417 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 21:29:42.97 ID:o5CBT2m0.net] >>416 アルゴリズムを書ける書けないの差はでない
418 名前:デフォルトの名無しさん [2023/03/17(金) 23:44:57.66 ID:Lcw0Ean/.net] Rustほとんど知らん俺でも総合的にRustのほうがC++よりはいいだろと思う C++より後発言語で、で、ライバルになるC++に劣っているようじゃダメだからな で、お前らは、すごいRustで具体的に何を作っているんだ?
419 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 00:11:15.51 ID:6kQD14Ek.net] ChatGPT先生に聞いてみた >>404 の言う通り template <typename T> class LockFreeStack { public: void push(const T& value) { Node* new_node = new Node(value); new_node->next = head.load(std::memory_order_relaxed); while (!head.compare_exchange_weak(new_node->next, new_node, std::memory_order_release, std::memory_order_relaxed)); } std::shared_ptr<T> pop() { Node* old_head = head.load(std::memory_order_relaxed); while (old_head && !head.compare_exchange_weak(old_head, old_head->next, std::memory_order_acquire, std::memory_order_relaxed)); return old_head ? std::make_shared<T>(old_head->value) : nullptr; } private: struct Node { T value; Node* next; Node(const T& value) : value(value), next(nullptr) {} }; std::atomic<Node*> head{nullptr}; };
420 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 00:31:48.86 ID:jelBOeFa.net] 先生にからかわれとるぞw
421 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 00:53:02.93 ID:rMRLIFsD.net] >>419 はこれと同じのをRustで書いたらunsafeになる(だろ?) って言いたいんだろ 偉大なるChatGPT先生が言うんだから間違いないだろな
422 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 00:58:57.68 ID:6kQD14Ek.net] >>421 いやChatGPTは信用しない方が良い 俺はRustは良く分からんがChatGPT曰く >Rustには、このようなロックフリーなデータ構造を提供する >クレート(ライブラリ)が存在します。その一つがcrossbeamです。 >このクレートは、スレッドセーフで効率的なデータ構造を提供しており、 >crossbeam内でUnsafeな操作が行われているにもかかわらず、 >APIを通じて安全に使用できます。 だそうな crossbeamってRustで書かれとらんのかな?
423 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 01:14:24.86 ID:pMxUNH+f.net] >>422 本当は、ライブラリの中だけをunsafeにして、アプリ側はsafeに出来るケースも有れば、 アプリ側も unsafe を消せないケースもありえる。
424 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 01:17:39.13 ID:6kQD14Ek.net] unsafeってキーワード使えばチェックをオフにできるのね
425 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 01:29:02.55 ID:6kQD14Ek.net] >>420 Rustで書いてみよう!
426 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 04:35:18.48 ID:+IGrKU6n.net] ArcとAtomicでほぼそのまま書けるけど pointer dereferenceのためにunsafeは必須
427 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 10:03:55.24 ID:fNuha5Rk.net] 言語マウントごっこにしか使われてないrust
428 名前:デフォルトの名無しさん [2023/03/18(土) 10:25:46.77 ID:fSPMk7mF.net] no chance
429 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 11:41:47.24 ID:ux4diyjf.net] 平日の昼にID真っ赤なのは仕事か 板違いのスレで必死に毎日お疲れさん
430 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 14:02:46.54 ID:d2/CRNVk.net] ちょうどオライリーから「Rust Atomics and Locks」という本が出てるよ 基本的な内容を説明してる本なのでC++でatomicsやmemory orderingに慣れ親しんでる人がわざわざ買うほどのものではないかもしれないけど かなりわかりやすくまとまってるのでRustでこの辺りの機能を使ったコードを良く書く人は読んで置いて損はないと思う
431 名前:デフォルトの名無しさん [2023/03/18(土) 16:09:57.63 ID:fSPMk7mF.net] ほう https://bokuweb.github.io/undefined/articles/20230205.html
432 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 18:42:10.12 ID:kFUsfJhu.net] Lock-Freeなデータ構造を自分で作りたい人はこれを見るといい Porting Java's ConcurrentHashMap to Rust (part 1) https://www.youtube.com/watch?v=yQFWmGaFBjk
433 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 12:22:41.89 ID:LfQxDddq.net] > cargo new hoge > cargo run → 3MB main.rs に use clap::Parser; 追加すると > cargo run → 100MB 超えるんだが どうすれば容量減らせるん?
434 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 12:44:51.20 ID:TIfaDrwo.net] とりあえず--releaseつける
435 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 13:32:03.94 ID:fPDrKYk/.net] しらんけど https://igaguri.はてなぶろぐ.com/entry/2020/06/07/133847 https://crates.io/crates/cargo-clean-recursive
436 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 13:35:18.59 ID:fPDrKYk/.net] とりあえずは cargo clean で良いはず 最初から余計なのは造りたくないって言う話ならほんまにしらん
437 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 14:03:33.37 ID:4KWNgnTF.net] >>436 ありがとうございました
438 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 08:59:55.73 ID:8VwEKWf+.net] やっぱC++にもボローチェッカ欲しい なんならCにも欲しい attributeとか併用したら、やってできないことはないんじゃねーの
439 名前:デフォルトの名無しさん mailto:sage [2023/03/21(火) 17:20:17.93 ID:icU0z8mb.net] rg3d はなぜ https://github.com/rg3dengine/rg3d から https://github.com/FyroxEngine/Fyrox に改名したのですか?
440 名前:デフォルトの名無しさん mailto:sage [2023/03/21(火) 17:50:34.39 ID:5MGYYNx+.net] rustの読み物公式が面白いのしっかり出してるから それ読むだけでも大分良い 後発言語らしくイイトコどりしまくってる null無くした代わりになんでもかんでもラップしてるから若干だるいけど すげー面白い
441 名前:デフォルトの名無しさん [2023/03/21(火) 19:41:09.03 ID:4irMO5jk.net] Unity超えるゲームエンジン作ってから言え
442 名前:デフォルトの名無しさん [2023/03/21(火) 19:42:14.14 ID:4irMO5jk.net] Blenderとかでもいいよ
443 名前:デフォルトの名無しさん mailto:sage [2023/03/21(火) 21:54:25.24 ID:gItZ+a0F.net] cpp2rsみたいのがじきできるから、そしたら一発 ただ、それだと、safeではあるけど、Rustのシンプルさは(メリットとして)失うな
444 名前:デフォルトの名無しさん [2023/03/22(水) 07:30:44.03 ID:7nCtmzjD.net] >>443 ほんとにできる?
445 名前:デフォルトの名無しさん [2023/03/22(水) 09:09:27.85 ID:II3LrhVD.net] 文法がRustなだけで Rustのコードとして使い物にならん ゲテモノが出て来るわ 今のGPTも酷い
446 名前:デフォルトの名無しさん mailto:sage [2023/03/22(水) 09:47:28.48 ID:RLKJ2atP.net] ああ、あと全自動とは言わない あっちこっちで、あれなおせーこれなおせーって言われるかと
447 名前:デフォルトの名無しさん [2023/03/22(水) 10:40:01.19 ID:Motackg9.net] たしかに、C++でメモリ安全性を静的チェックするツールを作るのはなかなか難しいもんかね?
448 名前:デフォルトの名無しさん mailto:sage [2023/03/22(水) 12:19:59.74 ID:jZlOcGNt.net] gccだとvargrindとかあるけどね
449 名前:デフォルトの名無しさん mailto:sage [2023/03/22(水) 14:27:48.09 ID:RqRpj7Ax.net] valgrindはgcc関係なくないか? rustでもメモリリークの確認に使う 有用なツールだけど静的チェックと呼べるのかは疑問
450 名前:デフォルトの名無しさん mailto:sage [2023/03/22(水) 21:31:28.83 ID:vDLoPLCP.net] valgrindは実行時チェックだから出現レアケースだと時間内に検出できない
451 名前:デフォルトの名無しさん mailto:sage [2023/03/22(水) 21:43:05.82 ID:jZlOcGNt.net] AddressSanitizerでもValgrindでもmtraceでも好きなの選べ https://kivantium.hateblo.jp/entry/2018/07/14/233027
452 名前:デフォルトの名無しさん mailto:sage [2023/03/22(水) 21:46:10.74 ID:vDLoPLCP.net] 全て実行時チェックだな
453 名前:デフォルトの名無しさん mailto:sage [2023/03/22(水) 21:54:30.07 ID:jZlOcGNt.net] 静的ツールだとこんなのもあるね https://cppcheck.sourceforge.io/ スマートポインタ使えばそもそもいらんがね