Rust part30

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2025/05/28(水) 09:31:36.60ID:ciITeZ5D
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

公式ドキュメント
https://www.rust-lang.org/learn

Web上の実行環境
https://play.rust-lang.org

※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/

※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust

※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/

※次スレは原則>>980が立てること

前スレ
Rust part29
https://mevius.5ch.net/test/read.cgi/tech/1746200850/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
2025/06/06(金) 17:42:57.80ID:J0042m2U
>>582
それは大昔の方法
今はRustやGoのように非同期タスクをCPUスレッド個数分の上で最大限効率的に回す
2025/06/06(金) 17:43:30.86ID:C6RQeHrZ
C++ も Python も必要なものはある。
けど楽にやれるかっていうとそうでもないところがしんどい。
2025/06/06(金) 17:54:58.69ID:ju0XC4LS
>>586
C++でも出来るようになっているが。
2025/06/06(金) 18:00:07.40ID:ju0XC4LS
>>586
特殊な処理以外はシングルスレッドで十分だし、逆にシングルスレッドで高速で
無ければGUIのレスポンスは遅くなる。
2025/06/06(金) 18:17:12.71ID:J0042m2U
>>588
C++にはRustやGoのような非同期タスクM:Nスケジューラがない
その上の各種ライブラリもない
2025/06/06(金) 18:23:14.91ID:J0042m2U
>>589
CPUのマルチスレッド数を活かせないのは今どき論外だよ
Webのサーバもブラウザも
2025/06/06(金) 18:24:57.87ID:ju0XC4LS
>>590
もし本当に無いなら作ればいい。そんなに難しいわけじゃないはずだ。
2025/06/06(金) 18:29:44.35ID:ju0XC4LS
>>591
プログラムの下手さをコア数の多さで誤魔化している例が多そうだが。
2025/06/06(金) 18:38:16.48ID:VxoAIN/b
C++はモダンな非同期に出遅れた
使い勝手も悪いまま他の言語と比較にならん
2025/06/06(金) 18:40:29.68ID:ju0XC4LS
>>594
非同期こそがJavaScriptが嫌われる理由であるといわれているが。
2025/06/06(金) 18:42:10.43ID:VxoAIN/b
>>592
各階層を非同期でライブラリ作り上げて普及させないと誰も使ってくれない
2025/06/06(金) 18:44:07.97ID:VxoAIN/b
>>595
Rust含めて主要言語すべてモダンな非同期に対応して利便性とパフォを両立させている
2025/06/06(金) 18:45:34.80ID:ju0XC4LS
>>597
>利便性とパフォを両立させている
ダウト
2025/06/06(金) 18:50:46.27ID:7glNIZb/
一部のOSがシングルタスクだった時代に
throwとcatchの方がexitよりも便利そうだとか、そもそもunix系ならexitで問題ないと
言われたんだろうな
現在はLinuxの良さが多少分かりにくくなった
C++の意味も分かりにくい
2025/06/06(金) 18:51:47.14ID:jK2Njv63
>>598
AWSやCloudflareなどもRustの非同期プラットフォームtokioの上に構築しているよ
2025/06/06(金) 18:52:44.07ID:ju0XC4LS
>>600
ほら、また、データセンターだ。バックエンドだ。
2025/06/06(金) 18:52:58.14ID:NfW6LToZ
C++の並行プログラミングはfuture(async-await)よりもアクターモデルが主流だね
Rustでも最高のスループットを追求するならアクターが有利だけど、Web上がりには取っ付きにくいから安易にfutureが選ばれがち
2025/06/06(金) 18:53:26.81ID:jK2Njv63
>>599
C++は時代遅れで不要だけど
今もLinuxの上にRustで構築されてるよ
2025/06/06(金) 18:57:09.31ID:jK2Njv63
>>602
C++で高性能が作れるものなら作ったら?
各社の新システムはRust futureモデルを採用しているから
2025/06/06(金) 19:08:08.67ID:+jg06n/J
Actixはアクターモデルだよ。複おじが知ってるわけないか
2025/06/06(金) 19:15:06.63ID:kCiJWJGk
ActixはRustのfutureの上に作られている
この分野はFuture/Promiseモデルが勝利した
2025/06/06(金) 19:21:48.66ID:ju0XC4LS
みんなよく見とけ。Rustは、他でもなくこういうようなニーズにぴったりな言語だという事だよ。
2025/06/06(金) 20:23:58.53ID:2KEuAQPx
実際みんな何がC++を捨てるきっかけだったん?
俺はMSVCのモジュール対応がいつまでたっても微妙なこと
2025/06/06(金) 20:31:21.71ID:bR69FDxG
actixとaxumで迷ってる
現時点のパフォーマンスならactixだとは思うんだけど
axumが追い上げてるよね
2025/06/06(金) 20:39:58.07ID:C6RQeHrZ
>>608
捨ててない。
選択肢が増えた。
2025/06/06(金) 21:10:39.44ID:h83wGeBI
>>609
設計の中身見ればactix一択。よく作り込んである
2025/06/06(金) 21:24:25.01ID:7glNIZb/
#[no_mangle]
pub extern "C" fn call_from_c() {}
2025/06/06(金) 22:47:40.65ID:r+7IJaB+
無料で配り出してからVisualStudioの評判が下がったかもしれない。
無料で配ると価値が分かってない人が入ってきてしまうことで、
顧客の忠誠心が下がったりクレームが多くなったり、ブランド低下に繋がると言われている。
2025/06/06(金) 22:50:14.29ID:r+7IJaB+
商品は高い価格をつけていると、よく吟味してから購入されるので
納得して買ったユーザーが多いため、クレームも少ない。
逆に安くしてしまうと、ニーズに合ってないのに買う人が現れるため、
文句ばっかり言うようになってしまう。それがC++に対しての現状の
評判低下に繋がったのかも。
になっているのかも知れない。
2025/06/06(金) 23:24:56.88ID:r+7IJaB+
VisualStudioは、C++とC#を分けて買うことが出来ないことも C++の人気低下に繋がったのだろう。
C#を目的でVSをインストールした人は、C++を試しに使っても悪い印象しか持たないだろう。
そもそも顧客ターゲットが違うのだから。その結果、C++の悪い評判が広まってしまったのではないか。
2025/06/06(金) 23:28:33.90ID:bR69FDxG
>>611
もちろんそうなんだけど
axumの方が今後伸びそうな気がしてるんよ
githubのstarももうすぐ並ぶ
仕様からして採用しやすいと思う
仮に今後パフォーマンスで並んだら完全にシェア奪われると思う
2025/06/06(金) 23:31:26.54ID:rGFHsXat
同感
2025/06/06(金) 23:31:47.18ID:C6RQeHrZ
マイクロソフトにとって VisualStudio の評判は重要ではないと思う。
ソフトウェアの販売よりもサービスで稼ぐスタイルに移行していて、この方針の中では開発ツールの一部を無料にしてでも開発者コミュニティを活発にするのは利がある。

C++ の世間の評価が低いとは思わない。
使われないものなら悪い評判すら出ないから、そういう評判があるのだとしたらユーザ数は間違いなく多い。
どんな評価であれ、なんだかんだで使ってるんだよ。
2025/06/06(金) 23:40:14.11ID:3JEvODeg
ここはRust専用スレだよ
2025/06/06(金) 23:43:40.46ID:2KEuAQPx
actixって、1回作者がタダ働きしないことに誹謗中傷や罵倒を繰り返す乞食連中にブチギレてクローズしちゃったよね
今は平気な体制なのかな?
2025/06/06(金) 23:53:57.13ID:QDWb4oK8
>>616
多少性能を犠牲にしても安心感をとる => axum
多少安心感を犠牲にしても性能をとる => actix-web

俺はaxumのほうがtokio傘下で大口スポンサー付きなので安心だと思ってる
パフォーマンスはsafe縛りなので並ぶことは無いんじゃないかな

actix-webは大口ユーザーが出てこないとまだ心配
脆弱性対応とかも数は少なくてもこれからも出てくるだろうし
2025/06/06(金) 23:57:17.71ID:E71NqYZh
axumは本流の安心感が大きいね
2025/06/07(土) 05:06:43.11ID:fIXrFGqI
C++のムーブとRustのムーブは根本的に異なる
C++では失敗しemplace_backなどが別途必要となった
2025/06/07(土) 07:57:16.81ID:D5LAHAi0
早くRustで仕事できる優秀な人で溢れて、単価安い世界になって欲しい。そうすれば楽ができるはず。
625デフォルトの名無しさん
垢版 |
2025/06/07(土) 09:22:57.46ID:CnK/EgX1
AI以下の人材は要らなくなるけどな
コーディングはAIの領域になっていくから
2025/06/07(土) 09:42:27.95ID:evsGciRN
n=1よりも邪悪なのはn=0
統計学者にはそれが分からんのです
2025/06/07(土) 11:15:27.05ID:BgBV5HNm
AIファーストでいうと、Rustは素材が少ないからただの補完でもパッとしないし
本当にAI時代になると膨大な学習資産があるCのほうが優れた言語として扱われそう
脆弱性は人間より優れているAIならそもそも踏まないし
2025/06/07(土) 11:32:51.12ID:4dOcWkyN
>>627
ディープラーニングは大量の学習元データを必要とするけれどある程度を越えると性能の伸びは急激に鈍化する。
つまり際限なく多くのデータを投入すれば良いというわけではないし、学習データとして使うには充分な分量はあるよ。
2025/06/07(土) 11:49:58.62ID:rtfJQBOq
プログラミング言語ってのは機械にも読めるようにした人間が読み書きするための言語
書く部分を代理してもらったところで人間が読まなきゃいけないことには変わりない

AIが賢くなっていけばいくほど人間が理解しやすい読みやすい言語へシフトしていく
アセンブリが学習資産として膨大にあるからといって人間用にアセンブリを生成させてその抽象度でコードを管理したりしない

もちろん人間用に生成するのはCやRustじゃなくても全然いいからRustも過渡期の言語
2025/06/07(土) 12:45:57.58ID:xi57kquP
>>627
Cの言語仕様ではAIがどんなに賢くても静的に安全性を保証できないよ
AIに吐かせるならRust
2025/06/07(土) 12:50:15.19ID:xi57kquP
>>629
現存する言語でデータ競合まで安全を保証して抽象的で可読性のいいRustが使われるね
2025/06/07(土) 13:01:57.88ID:bjSjMKW4
>>629
とはいうものの、プログラミング言語が自然言語で書かれるようなことにはならず
検証のために何らかの論理的整合性を保った記法で書かれる必要があるし
それを読んで理解できるセンスを持った人はある程度は限られるので
プログラミング言語の読みやすさという点では、あまり現状と変わることはないんじゃないかな
人間の方が進化すれば別だけど

ただ、Rustが保証するメモリ管理については、AIが後から適切な箇所に解放処理を挿入してくれるようになって、
GCを使っていないがGC言語のようにコードを書けるようになる、ということはあるかもしれない
2025/06/07(土) 13:11:57.59ID:xi57kquP
>>632
最後のその仕組みがRustだよ
AIですら静的に解決できる情報が必須でそれがRust
2025/06/07(土) 13:26:22.04ID:hQgu9D5P
それは明らかに誤り
現に極めて高い精度で適切なタイミングでリソースを解放するRustコードをAIは生成できているのだから、
AIが前提であればそのような情報は省略可能であることは自明
2025/06/07(土) 13:38:44.17ID:xi57kquP
>>634
それは静的に解決できるRustの言語仕様のおかげで様々な安全性が保証される
人間もAIも立場は同じ
2025/06/07(土) 13:52:46.13ID:hQgu9D5P
複おじに構うつもりはないのだけど、AIはRustの言語仕様を理解しているのだから、
例えばRustの仕様に基づいた暗黙的なメモリ解放が行われるコードをAIが生成した場合、それはAIが明示的に制御して解放しているのと変わらないとも考えられるよね
632の言うように、GC言語がフェイルセーフとしてGCは使いつつも殆どの場合において適切に確定的なタイミングでメモリ解放するようになったら、
Web系みたいに多少ファジーでもいい分野は完全に持っていかれるかもね
2025/06/07(土) 13:58:37.96ID:xi57kquP
>>636
架空の言語?既存の言語?
Rustの肝はその言語仕様にあるから既存の言語には無理だよ
2025/06/07(土) 15:58:12.17ID:D5LAHAi0
>>633
rustは、メモリ管理を人に強制してるじゃん。>>632の言いたいことは、違うと思うけれどな。
2025/06/07(土) 16:21:03.28ID:xi57kquP
>>638
その「適切な箇所に解放処理を挿入してくれる」はRustやC++の仕様で実現されてる
他の言語には無理
2025/06/07(土) 18:36:37.64ID:evsGciRN
言語仕様を既に理解している者にRustは何も強制しない
逆に言えば強制とは理性のない物体を操る技術とか、それを人間にも当てはめるしぐさのこと
2025/06/07(土) 18:53:43.86ID:nANhvbt8
究極の理想系は Python みたいな軽い言語で雑に書いて、それを AI が最大限効率的なコードに変換するようなものだろうな
ヒープ不要な変数はスタックに、他と共有しないデータは変数のスコープと共に破棄されるように、共有されるデータはArcに、循環参照してるものは寿命の短い方を判断して weakref に、というふうに

現在はまだ無理だからGCレスが必要な場面にRustを使うけど、 &T や Arc<Mutex<T>> みたいな型はメモリ管理のためでしかないし、AIが自動的にうまく変換してくれるならその方が進化だと思う
2025/06/07(土) 19:02:14.18ID:xi57kquP
>>641
Rust以外の既存の言語の仕様でそれは不可能
2025/06/07(土) 19:07:24.49ID:WTKqP7i+
>>641
循環参照が必要なケースはだいたいアリーナでいいんじゃないかな
アリーナのスコープはだいたい人間の意図をそのまま反映するのでAI向きだと思う
2025/06/07(土) 19:07:29.04ID:evsGciRN
誰でもいいからPythonをRustに変換してもらうのが雑なやり方
AIを指名するのはちょっと細かいことにこだわり過ぎている
2025/06/07(土) 19:10:35.54ID:xi57kquP
>>641
AIであろうと論理的に無理なことはできない
AIも人間と同様で魔法を使えない
646デフォルトの名無しさん
垢版 |
2025/06/07(土) 20:18:46.50ID:nANhvbt8
単純な構文解析では無理だけど、AIがコードの意味や呼び出し関係なども含めて解析できるようになれば可能性あるんじゃない?
2-3年後にとは思わないけど、5年や10年後ならそういう未来もあって良いように思う
最近のAIの発展は凄まじいし

Rustは良くも悪くも低レベルの事情が見えすぎるんだよな
Option, Result や enum のような型はビジネスロジックの表現に役立つし、他の言語でも欲しい人はいるだろうけど、SendやSyncなんかはちょっと違う
これらはC++経験者にとって嬉しいだけで、多くの人からすれば、そういうものは意識せずに済む方がずっと便利なはず
2025/06/07(土) 20:22:33.18ID:nANhvbt8
意識することは必要かもしれないけど、そのための面倒くささを減らせるなら、その方がいい的な話
2025/06/07(土) 20:27:29.58ID:8xDjgwkI
>>646
>これらはC++経験者にとって嬉しいだけで
勝手に妄想すんな。
2025/06/07(土) 20:32:13.92ID:xi57kquP
>>646
そんな方法ロジックが存在するなら現在AI関係なく実現できる
AIと言えども無理
650デフォルトの名無しさん
垢版 |
2025/06/07(土) 21:03:48.33ID:nANhvbt8
実際面倒でしょ
GCのある言語ではとっくに解決済みの問題だし、パフォーマンスのためという理由さえ無ければ、そんな面倒は無い方がいい
人間が書くコードはビジネスロジックに注力して、最適化などの面倒な部分はAIが頑張る、みたいな未来を夢見ても良くない?

「世界中の初級〜中級プログラマがみんなRustを書ける時代」よりは、「初級〜中級プログラマが書いたコードがRust並みに高パフォーマンスに動く」の方が有り得そうに思う
大手ITとか新進気鋭のスタートアップならともかく、世の中のレベルってそんなに高くないと思うので
2025/06/07(土) 21:18:42.39ID:xi57kquP
>>650
既存の言語の仕様では不可能
もし手段があるならAI関係なく今すぐ実現させる
652デフォルトの名無しさん
垢版 |
2025/06/07(土) 21:34:29.01ID:nANhvbt8
言語の限界というより、現状のコンパイラが行なっている構文解析という手法の限界じゃないの?
他の言語で書かれたプログラムを (人間が時間をかければ) Rustに移植できる、と言えるなら、それは将来AIにもできる可能性のある仕事だと思う
「理屈上どうやってもC/C++/Rustでは実現できないロジック」とかがあるなら無理だけど、そういうのはおそらく滅多に無いだろうし
2025/06/07(土) 21:50:46.86ID:4dOcWkyN
現代の方式での AI の能力というのは言語モデルに縛られる。
プログラミング言語間で移植するには仕様をより抽象的な言語 (人間がやるなら自然言語?) で抽出してから再実装という工程を経ることになる。
仕様抽出のときにどの挙動が仕様でどこが仕様ではない (再現しなくてもかまわない) のかはプログラムの字面だけからはわからず、ドメイン知識が要るだろう。
2025/06/07(土) 22:08:05.95ID:WTKqP7i+
そんな複雑なビジネスドメインでRust採用しちゃうようなタイプのエンジニアとAI、
どっちがドメイン知識があるか、客からヒアリングしたドメイン知識に真面目に向き合えるかな
俺はAIだと思うね
2025/06/07(土) 22:13:16.92ID:V3GF7XBg
RDBだとSQLを渡せば構文解析という手法を通してるけどオプティマイザが最適と思われる実行プランを作ってくれる
今までは用途の限られたDSLでしかこういうことはできなかったがAIを使うことで汎用プログラミングの広い用途で同じようなことが近い将来にできるようになる可能性が高い

その時にRustのような低レベルな言語を使う必要があるのはRDBでたとえるとDBエンジンを作っている人達だけ
一般的なプログラマー(プログラマーとは呼ばれなくなるかもしれないが)は入力としてSQLを書いて生成された実行プランを確認できればそれで問題なくなる
実行プランの内部表現がどうなってるかや各ステップでのメモリ管理方法だったり並行モデルや同期方法は要求に対して最適と思われるものを選んでくれればそれでいい
2025/06/07(土) 22:28:32.11ID:noiqQ3+R
>>655
できないことを皮算用せずに
その新言語をさっさと作ればよくね?
2025/06/07(土) 22:31:19.97ID:5EbSwuA7
>>654
顧客からのヒアリングは担当AIになると言われてるね
あとはAIがRustコード吐いて人類がチェック
2025/06/07(土) 22:36:04.29ID:evsGciRN
マークアンドスイープも仮想関数も低レベルだった
どっちも要らない可能性に気がついた奴は低レベルの縛りが少ない
そんなこと考えたこともない奴が偉そうにしても意味がない
2025/06/07(土) 22:46:23.09ID:x0Lmj2vj
>>652
元言語のT型のオブジェクトをArc<Mutex<T>>型にすれば変換できるけど意味ないでしょ
2025/06/07(土) 23:36:16.04ID:JFrNmexI
人類がAIに支配されないための歯止めが最終プログラムコードを人類の監視管轄下に置くこととと言われている
AIにRustコードを吐かせるとしてもそのチェックは人類が責任を持たねばならない
そのプログラミング言語は実行パフォーマンスと安全性と抽象的な可読性からRust以外に選択肢はない
2025/06/07(土) 23:51:31.84ID:WTKqP7i+
AIエージェントがバズってる時点でチェックもクソもない
あっちはAIがやれることは呼び出せるツールの範囲に限られるから問題ないという理屈だが、
そういうガードのかけ方をするならそもそも実行バイナリ自体を制約されたサンドボックス環境下で実行し、
限定的なAPIセットのみ実行を許可するようなアーキテクチャになるから、Rust云々というレイヤの話ではない
2025/06/08(日) 00:08:40.08ID:T2dNb6GD
>>661
そんな制限の仕方ができるのは特殊なものだけ
コードは人間がレビューして責任を持つしかない
2025/06/08(日) 00:53:09.39ID:ZN3JGvHo
マルウェアをテストする時のような扱いをしないと怖いようなAI製ソフトウェアを本番業務に投入するとか論外だしな
とはいえ、AIが生成した文字通り膨大なソースに人間が有意義なチェックをできるかっていうとそれも机上の空論だろうし
現実的にはブラックボックステストだけ人間がやって、コードはロクに見ず本番投入なんだろう
2025/06/08(日) 00:59:52.80ID:FT4pj4FW
>>663
それだと極めて特殊な入力が来た時だけ特別な実行をAIに仕込まれて人類が詰むパターン
665デフォルトの名無しさん
垢版 |
2025/06/08(日) 09:07:30.09ID:xGbxg89a
脆弱性をAIに仕込まれる時代がそろそろ現実味を帯びてきたな
2025/06/08(日) 09:32:59.28ID:PLM9xjLn
突き詰めるとRustはいらない言語ってことになっちゃうな
2025/06/08(日) 09:58:01.31ID:LY0YSAF3
何もいらなーいー
668デフォルトの名無しさん
垢版 |
2025/06/08(日) 11:19:05.81ID:SVsPPZLo
C++とGCとAIの話しかしていない
誰もRustに興味無いんだろうな
2025/06/08(日) 11:21:32.51ID:l86SYNjx
>>668
そもそも以前から続く傾向として、Rustの自慢話と、C++を貶す話が多いな。
2025/06/08(日) 13:04:11.80ID:wHU1y2Cy
レスの半分以上は複オジだからな
残りの半分の半分くらいは数学100点オジ
2025/06/08(日) 14:35:33.97ID:Dz6RrxG4
>>666
AIに吐かせるコードは速くて省メモリで安全で抽象的に可読性のよいRustしかないでしょ
2025/06/08(日) 15:20:07.80ID:+Shzj2Ty
Pythonは使われているけど、作ったプログラム自体が商品にはならないみたいだよね。
Rustも同じ道を行ったりなんかして。
2025/06/08(日) 15:24:49.87ID:+Shzj2Ty
Linuxも似ているんだけど、なぜか分かるかな?
それはオープンソースだからだよ。
2025/06/08(日) 16:16:30.27ID:d1+aCZ76
>>668
Rustに興味ある層は誰かさんがみんな追い出したからね
残ったのは表面的ないいねとよくないねの噛み合わない応酬だけ
2025/06/08(日) 16:29:29.68ID:+Shzj2Ty
Rustは、プライドの高い趣味プログラマと、AWSのような超大手
独占企業だけが使う言語になるのではないか。
2025/06/08(日) 16:41:23.46ID:EeOpsjtM
Rust書けない敗者アンチが居座っていつも負けてる
2025/06/08(日) 17:01:39.88ID:RG5MF58/
【次号予告】2025年6月18日発売『Software Design 2025年7月号』
Rust大特集
https://pbs.twimg.com/media/Gsf6x9rbAAAWxo7.jpg
2025/06/08(日) 17:02:33.93ID:+Shzj2Ty
cargoを使ってるだけでも企業秘密が漏れる。
2025/06/08(日) 17:08:20.00ID:/WNe1XQ9
>>677
入門記事っぽいな
でも買うよw
680デフォルトの名無しさん
垢版 |
2025/06/08(日) 17:08:59.52ID:xGbxg89a
>>677
ええやん
2025/06/08(日) 17:13:54.67ID:RauPWj2e
>>677
この記事面白そう。ますます使う人増えるだろうな
2025/06/08(日) 17:15:21.24ID:PLM9xjLn
>>671
でもRustってすげ遅いじゃん
2025/06/08(日) 17:18:00.36ID:+Shzj2Ty
cargoは、開発過程を盗み見るために仕掛けられた仕組みだ。
2025/06/08(日) 18:02:26.47ID:2c7Ydjne
4大機能w
2025/06/08(日) 18:45:25.24ID:RzO7Dv3B
4大機能の中では構造体が最弱か
構造体はラムダ式あたりに置き換えてマクロを袋とじに入れればちょうどいい
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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