Rust part21

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
垢版 |
2023/08/15(火) 22:24:39.45ID:xzxy4cgp
公式
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 part20
https://mevius.2ch.net/test/read.cgi/tech/1677771928/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.2ch.net/test/read.cgi/tech/1514107621/
2024/01/19(金) 16:40:26.29ID:Rx8gKVuk
the book自体の難しさがあるというか
2024/01/19(金) 17:22:29.33ID:5TL7zSTv
the bookを頭から読むやつなんているんだ
大してわかりやすくもないし
説明が冗長な感じだからChatGPT使った方が良いぞ
2024/01/19(金) 17:23:51.53ID:vjpbBz8R
初心者にとって知らんことが書いてあるんだからそんなにスラスラとは読めないのは当たり前だし、文章自体に問題があるようには感じないな。
改善すべき点がゼロなわけではないが、少なくとも C++ を分かっているくらいの人が最初に読むには十分すぎるほどに良書じゃないの。
2024/01/19(金) 17:34:10.12ID:vjpbBz8R
説明対象がもつ難易度より分かりやすい説明があったとしたらその説明は嘘であるか不足しているってことだ。
本来の難易度は後にならないと分からないから学習者本人には見分けられない。
2024/01/19(金) 17:55:40.81ID:88sLHWJm
ガリ勉完璧主義者ほど隅から隅まで理解しようとするけど
要領よくChatGPTを使いこなすチャラ男に天然GPTとしてカモられている
2024/01/19(金) 18:00:19.70ID:88sLHWJm
天然GPT本人はマウントして気持ち良くなりたいから他のみんなと勉強会じゃなくて家でガリ勉なんだ
2024/01/19(金) 18:05:32.43ID:5TL7zSTv
作りたいものを決めてそれを実現するための知識をChatGPTで調べるというやり方のほうがはるかに効率が良いよ
多少間違ったこと教えてきたり
古かったりするけどそれはもう気にしてたら仕方がないので
無視してどんどん手を動かすほうが良い
911デフォルトの名無しさん
垢版 |
2024/01/19(金) 18:15:21.92ID:1hwMDgMT
The Bookは簡潔にまとめるために説明をやや端折り気味
書いてる内容自体が難しいわけじゃないけど深い理解には至らないから腹落ち感を得にくい

あんまり期待しすぎず無料で読める基本チュートリアルとして捉えておくべき
2024/01/19(金) 18:26:39.26ID:OWRF5bQs
ところでこのスレには組み込み開発でRustを使ってる人はいるの?
913デフォルトの名無しさん
垢版 |
2024/01/19(金) 18:38:50.67ID:5qNxVIXw
組み込みは頭おじいちゃんが支配してるからRust使える人いないよ
2024/01/19(金) 18:49:19.87ID:AbS8PLZw
そう組み込みも重要な分野だから、これにRustが皆無な時点で大手では大々的に採用されていないって事、せいぜい窓際
「実際に仕事で使われているプログラミング言語」(2023)
https://qiita.com/mmake/items/b346cb32ccc3bcb5d03f
2024/01/19(金) 18:52:09.31ID:wGMq60ju
そうだ窓際追い出し目的でおじいちゃんにRustやらよう
2024/01/19(金) 18:53:27.57ID:wGMq60ju
そうだ窓際追い出し目的でおじいちゃんにRustやらせよう
本当にあるな
2024/01/19(金) 18:54:40.94ID:75Zji/CQ
今時の組み込みって何使ってるんだろ?
2024/01/19(金) 18:55:15.30ID:Nlxayr7x
>>903
Rustでもリファクタリング前提で書き始めるのがいいよ
早すぎる構造決め打ちや早すぎる最適化などはせずリファクタリングで対応
2024/01/19(金) 19:00:48.51ID:SK8TlxrV
>>899
んなアホな。
一般的というなら「石の上にも三年」とも「下手の横好き」とも言うから、嫌いだからと言って不向きとは言えない。
2024/01/19(金) 19:08:03.87ID:pqBZI8v7
格言おじいちゃん、窓際組み込み?
2024/01/19(金) 19:08:58.61ID:pqBZI8v7
格言は説得力とは真逆だと思うの
2024/01/19(金) 19:10:50.73ID:+7/a4sFt
自分がこうだから他人もこうあれ
って考えは時代にそぐわない老害感がある
2024/01/19(金) 19:11:44.46ID:pqBZI8v7
論理的でもなく屁理屈にも劣ります
2024/01/19(金) 19:12:08.48ID:SK8TlxrV
>>896
Rustは絶壁の学習曲線だから、段階的な学習は難しい。少なくともスタックフレームの動きを意識できないとキツイと思う。

Rustを使った開発も、小さく始める段階的開発とかきついんじゃない?ひたすらスクラップ&ビルド繰り返しそう。
2024/01/19(金) 20:04:18.16ID:U1u9K+K0
>>924
スタックフレームはコンピュータの基礎知識であってC言語でも必須でありそれをRustの問題にする人はいない
段階的開発がキツいという主張もそんなことはなく根拠もない
2024/01/19(金) 21:01:18.97ID:vjpbBz8R
全体を綺麗に構成することはしづらくても小さなモジュール単位でならそれなりに構成できるからそれを繰り返せばいい。
全体の構成を考えてから作るよりは汚いだろうけど、綺麗な全体の構成を考えるなんていう出来もしないことをやるよりはそういうボトムアップ方式のほうが少なくとも途中まではまあまあに出来る。

もちろんちゃんと全部をまともに構成できるだけの能力を身に付けられるならそれに越したことはないよ。
でも実際問題として初心者にはできないじゃんと思ったからボトムアップ方式のほうが(初心者の内は)よさそうと考えてる。
2024/01/19(金) 21:22:17.40ID:U1u9K+K0
他の言語と同じ
そこにRust固有の問題はないな
2024/01/19(金) 22:20:52.17ID:5TL7zSTv
>>924
意識するのはヒープじゃないか?
スタックフレームは解放されるんだから意識しないで良いんだぞ
2024/01/19(金) 22:39:11.81ID:vjpbBz8R
変数の寿命と連動するから意識するよ。
C/C++ の世界だと当たり前のことだから意識してる自覚すらないレベルで自然に考えてるけど。
2024/01/19(金) 22:39:43.86ID:eEzmAF9q
人格をもたない書物は効率が悪いという風潮は面白い
人格がなければ報酬とか私刑とかができないってことだろうか
2024/01/19(金) 22:43:52.06ID:Hr4uH45j
進行が早くなったのでいつもの
次スレはなしで既存のワッチョイスレにしよう
過疎るのは既定路線なので頃合いでしょ
2024/01/19(金) 23:05:04.70ID:Rx8gKVuk
「スタックフレームを意識する」というのはどの程度を指してるんだろう。
どれがスタックに積まれるかとどうスタックに積まれるかは違うわけで。
933デフォルトの名無しさん
垢版 |
2024/01/19(金) 23:24:13.49ID:LbAGY+B7
>>924
スタックフレームの動きってプログラミング初心者でも何の問題もなく理解できるやろ
学習曲線めちゃ緩やかじゃん
2024/01/19(金) 23:35:33.58ID:QqY+6sl7
オラから『Rustの練習帳』って新刊が出るんだね
タイトルがエモい
2024/01/19(金) 23:44:43.13ID:NtpPLEep
ワクワクすっぞ
2024/01/20(土) 00:29:37.21ID:zhjwtCng
オライリーをオラと略す人は初めて見た
2024/01/20(土) 00:46:25.56ID:B5JkVzvF
そう?
オラの村では普通だでね
938デフォルトの名無しさん
垢版 |
2024/01/20(土) 01:10:08.13ID:ppE6WkEJ
都会は進んでるなあー
2024/01/20(土) 01:16:50.20ID:zhjwtCng
ミスチルはわかるんだ
ミスター・チルドレンは長いから
サザンもサザンオールスターズは長いからわかる
マクドもマクドナルドは長いからギリわかる

オライリーをオラは無いだろ
たかが2文字略すなと思った

ま、どうでもいいんだがな
2024/01/20(土) 01:51:39.52ID:HZE0SdTu
スクリプト言語出身者が増えたせいだよ
スタックフレームやヒープなんてCSやってりゃ習うでしょ
コンパイラかコンピュータアーキテクチャでやる
スクリプト言語はスタックフレームの開放も全てGCがやることになるから
全く意識しないんだよな
2024/01/20(土) 01:55:10.81ID:ppE6WkEJ
スクリプト言語に限らず、C/C++を書かなければそこら辺に気を使う機会はないよ
2024/01/20(土) 07:57:38.44ID:lqSANakz
>>937
公式にオラの村ってのがあるよね
2024/01/20(土) 08:33:10.42ID:QXcnqV7m
GCありでパフォーマンスも関係ないなら、スコープだけ気にしていれば困らないしね。
2024/01/20(土) 08:49:07.11ID:G76ZEaWY
>>939
マクドじゃなくてマックね
2024/01/20(土) 09:18:20.17ID:viZi/CYZ
webサービスまわりは全部スクリプト言語かGCランタイム付き言語だもんなあ
2024/01/20(土) 11:01:53.93ID:ppE6WkEJ
最近は組み込みもC/C++を使う理由がないことが多い
947デフォルトの名無しさん
垢版 |
2024/01/20(土) 11:38:27.03ID:lE+lj03S
オラは「Rust for Rustaceans」の訳書出さないな
本格的にRustやるなら必読書なんだけどな
948デフォルトの名無しさん
垢版 |
2024/01/20(土) 11:42:02.65ID:o5qofGYG
スクリプト言語はともかく静的にコンパイルする言語ならGC言語でもスタック/ヒープは意識するけどね
2024/01/20(土) 12:07:36.77ID:KBzblFQB
>>945
CPU時間(ミリ秒)あたりで課金されるからこそのRustだよ
2024/01/20(土) 12:23:09.39ID:+uoYRouQ
オンプレミスでも同じ
Rustで書くかスクリプト言語で書くかでサーバーやメモリの必要量が何倍も変わる
電気代も節約できRustはエコにも貢献
2024/01/20(土) 12:30:18.74ID:KBzblFQB
そう、CO2排出量を考えたら、Rust以外で書くのは社会にとっての悪
2024/01/20(土) 12:33:36.69ID:wJQgtkwZ
昔は全体の性能に余裕があって I/O (ストレージと通信) が極端に足を引っ張る状況だったから言語処理系の動作速度は問題にならなかったけど今は全ての性能をギリギリまで絞り出す勝負に変わってる感じだね。
2024/01/20(土) 12:46:54.29ID:+pH1NoHl
Rust言語は
・タイプセーフ、メモリセーフによる高い安全性
・並列プログラミング処理設計
・ガベージコレクタのようなランタイム無しに動作
だから、これらを活かせる製品に採用したらいいんじゃないかな
いまどきそんなのは組み込みロボットとかカーネルやエンコーダデコーダくらいしかないような気がするけど
2024/01/20(土) 12:56:12.54ID:UT8XEnd7
>>953
その条件ならウェブに向いてるね
そして実際に使われてるね
2024/01/20(土) 13:15:54.83ID:KWXCbsaH
ウェブっていうかwasmじゃね?
rustじゃないけどffmpegのwasm実装は使ったことある
2024/01/20(土) 13:17:39.73ID:NDqmkpk/
>>954
Webって言っても大規模なユーザーがいるようなものじゃない?

大した事無いサービスで、スペック高い人が必要なRustはまだまだ辛い気がする。Javascript並みに誰でも使えますって世の中になったらRust一択でも良いのかもしれないけれど。
2024/01/20(土) 13:22:10.20ID:KBzblFQB
AWSもGCPもサーバーレス環境とかのランタイムや下周りがだいたいRustで書いてある
958デフォルトの名無しさん
垢版 |
2024/01/20(土) 13:22:24.95ID:lxegQoou
CO2排出量は難しいな
Rust書けない人間がCO2排出するだけのうんこ生産機になってしまうのもあんまエコじゃない気がする
2024/01/20(土) 13:24:24.78ID:tKcafxZR
actix-webはどうなん?自分はよく知らんのだが使ってる人いるんけ?
2024/01/20(土) 13:24:56.70ID:NDqmkpk/
>>958
そんなこと言ってると、Rustへのリスキリング時のco2排出量もRustのコストって言われちゃうぞ。
2024/01/20(土) 13:27:59.09ID:KBzblFQB
CO2排出量を考えて、コンパイル中は息を止めている
962デフォルトの名無しさん
垢版 |
2024/01/20(土) 13:34:01.02ID:vYJJrZqN
JavaがOracle事件で終わって脱SpringでRustのActixがついに普及するかなと思ったらC#のASP.NETにみんな行っちゃった
2024/01/20(土) 13:39:08.81ID:tKcafxZR
>>962
そうなんか…
2024/01/20(土) 13:57:32.93ID:ngmk9luX
Javaが脱Springなんて馬鹿げた事言い出してるのかと見間違えたが
脱Javaの話か

Rustは学習コスト高いからJavaでやってた様な大人数プロジェクトには向かんだろう
2024/01/20(土) 14:59:14.28ID:ppE6WkEJ
みんな経済合理性でRustを選択するんだよな
2024/01/20(土) 15:49:27.64ID:w9m16ZcP
>>952
特に機械学習ではその方向が顕著
MLIRみたいにSIMDやGPUを使う前提でIRが設計されてる

Node.jsが切り開いた非同期IOの登場もでかい
これによってIOの比重が高いプログラムでもIO待ちがなくなり
さらにマルチコア、GPUを活かせる環境が整った

一方Rustはtokioなどの非同期IOを実現できるフレームワークが山のようにある
さらにSIMD命令を直接使える仕様も整備されてきている
(LLVMの最適化によって勝手に使われることも多いが)
マルチスレッドは言わずもがな
他の言語でこれらを全てサポートしている言語はない

現在の最先端の環境を活かせる言語は他に選択肢がない
2024/01/20(土) 16:00:45.48ID:tKcafxZR
RustのWebアプリケーションは未履修だけどぜひやりたいなあ
2024/01/20(土) 18:46:27.21ID:PTOG17pe
>>954
Webで使うにはTokioなどの重量級ランタイムが必要
ただ利用するだけなら難しくはないけどエコシステム含めそこまで安定しているものじゃないのでランタイム含め自力で修正できる力が必須
969デフォルトの名無しさん
垢版 |
2024/01/20(土) 18:55:33.87ID:I+Fu8n3P
>>964
90年代後半にコボラーがJavaでWebアプリを作れるようになるための学習コストに比べればRustの学習コストは断然低い
2024/01/20(土) 19:12:06.87ID:6DBgVQg4
>>969
その時期にいた純粋コボラーって定年間際のジジイじゃん。そりゃ学習コスト高いわ。
2024/01/20(土) 19:21:51.44ID:w9m16ZcP
httpclientもそれぞれのイベントループに対応したものをつかわないとダメだから割と面倒なんだよね
使い方もフレームワークによってかなりクセが違っていて面倒だし
ぶっちゃけWebはGoやpythonでいいんじゃねーかって思う
2024/01/20(土) 19:26:03.92ID:tKcafxZR
Goでいいは分かる
2024/01/20(土) 19:56:32.80ID:k6CjZuQW
Go のランタイムサポートは分厚めだがどうせ要るもの(やること)と考えればそんなに速度的に不利なわけではないよな。
2024/01/20(土) 20:11:15.24ID:u/fg5YR1
速度的にはGoで十分なんだけど型とか貧弱すぎるんだよな…
sumタイプとパターンマッチくらいは欲しい
2024/01/20(土) 20:17:19.49ID:tNrs3Odf
>>968
tokioは他言語と比べて大きくない
そして安定している

>>971
各言語に複数のイベントループライブラリがあってその通りだが
Rustはデファクトスタンダードがあるためそこで困ることはない
2024/01/20(土) 21:17:45.54ID:w9m16ZcP
>>975
いやデファクトがあるのは良いけど
例えばコマンド実行1つとっても
tokio::process::commandとか使わなきゃいけなくてなんだかなあと
非同期版じゃないのと区別しなきゃいけなくて嫌気が刺す
まあpythonもasync使えば同じことなのだけど
2024/01/20(土) 21:24:03.71ID:w9m16ZcP
まあ俺はRust信者だから使うのだけど普通の人はなかなか辛いんじゃないかなーと
その点Goは何も考えなくて良いしpythonもasync使わなけりゃ同期的に書けるし
2024/01/20(土) 21:48:04.29ID:USm4U3n4
>>976
PythonもasyncはそうだしJavaScript(Node)も同期execと非同期exec分かれているし
動作が異なるのだから別になるのは当たり前

もちろんRustでも同様で
そもそも関数の返り値が異なる
だから関数が分かれているのは正しい
したがって一番下位のライブラリが別であることに何ら問題はない

一方で中位ライブラリ作成側の視点に立つと
同期か非同期かだけの違いでasync/awitを除いて全く同じ構造の関数を作ることになる
そのため『?async』キーワードによるジェネリック化がRustでは進められている
期待しているのはこの話でよいのか?
2024/01/20(土) 23:05:04.71ID:w9m16ZcP
>>978
いや見た目は似ててもpythonとはだいぶ違うよ
まずpythonでのasync defは単なるコルーチンオブジェクトなので非同期とか関係ない
これにより恐ろしい柔軟性を持ってる
さらにWebにおいてはASGIという非同期Webフレームワークが満たすべき仕様をまず決めた
その仕様を満たしさえすればどのような実装でも非同期の機能を満たせるような仕様となっている
そこにはもうイベントループなどの概念は消え去っている
さらに同期版と同居できる仕様となっている
なのでdjangoなどは同期版と非同期版の切り替えが可能となっている
このように明らかにユーザーフレンドリーな姿勢を貫いている
2024/01/20(土) 23:17:14.31ID:wyzQTwgG
>>979
Rustのasyncもコルーチンだぞ
まずは理解してから出直して来い
2024/01/20(土) 23:26:48.19ID:HZE0SdTu
>>980
コルーチンではないでしょ
2024/01/20(土) 23:49:39.00ID:nUH4CzWh
Rustのasyncはstackless croutineでstate machineとなっている
個別stackのresouceもswitchingも不要なため軽くて有利
2024/01/20(土) 23:50:29.43ID:u/fg5YR1
Rustのasyncは(スタックレス)コルーチンである
Rustのasyncは(スタックフル)コルーチンではない
どっちも正しいとは思うけど
984デフォルトの名無しさん
垢版 |
2024/01/21(日) 10:13:23.50ID:VnWGTEfZ
>>977
Rustが活きるのってやっぱり軍事系じゃないかな
兵器の制御とかGCなんてもってのほかだし速度も必要
メモリリークも起こせない
2024/01/21(日) 11:18:24.63ID:JCOE1HZY
DAD御用達?
2024/01/21(日) 11:24:54.33ID:8LqvrPkW
物理攻撃にソフトウェアを活用するってある意味「お花畑」だよな
987デフォルトの名無しさん
垢版 |
2024/01/21(日) 11:29:12.59ID:7K9itJgV
パパ活か?DoDだろ
DoD御用達はAdaだぞ
988デフォルトの名無しさん
垢版 |
2024/01/21(日) 11:46:34.67ID:VnWGTEfZ
やっぱりAdaしかないか
プリプロセッサ使うのもNGだからマクロがダメなんかな
2024/01/21(日) 11:59:39.08ID:dFB+Bg2+
とはいえF-35はC++だったんだし、そのうちRust採用されてもおかしくはないけどな
2024/01/21(日) 12:09:12.81ID:4CYZ0hXB
The Book読んでコード打ち込んだりしたが理解できた気がしない
次はどうすればいいの
2024/01/21(日) 13:24:30.49ID:8LqvrPkW
仕様の次は実装とか
いま極端なところにいる奴は次はもう一方の極端に行けばいいし
ちょうどいい位置にいる奴は一生そこに居続ければいいのでは?
992デフォルトの名無しさん
垢版 |
2024/01/21(日) 14:20:11.30ID:sCtD39A+
>>990
理解できてないと感じるのがunsafeやasyncやマクロ辺りならそこは一旦放置して小さいCLIツールをいくつか書いて実践経験を一度積むほうがいいかもしれない

逆にownership/reference/lifetime/generic/traitといったコアなところが理解できてないと感じるならオライリー本など別の入門書をすすめる
993デフォルトの名無しさん
垢版 |
2024/01/21(日) 15:14:08.20ID:eSjvKxMy
>>989
Rustは使われない
ISOプロセスは産業界の評価が高い
994デフォルトの名無しさん
垢版 |
2024/01/21(日) 15:15:15.91ID:eSjvKxMy
F-15は50年以上空を飛んでいることを思い出してほしい
Rustは50年後存在しない
2024/01/21(日) 15:44:39.63ID:cX88PWDV
>>993
Rustのスポンサー欄を見ればわかるけど将来Rustが使われるのは確定されたことだぞ
アンチさんどんまい
2024/01/21(日) 15:46:08.09ID:4rk7TZPC
統計学的に会社や国家、生物種の存続見込みを解析した例を見たことが有るな。
これまでの歴史が長いものはこれからも長く続く可能性が高い。
2024/01/21(日) 15:50:57.32ID:eziZnnQK
>>996
Javaみたいにホストがアホなことするとすぐ廃れるけどな
2024/01/21(日) 16:55:47.23ID:4CYZ0hXB
>>992
ありがと
2024/01/21(日) 19:43:22.00ID:/dcZ0aWP
次スレ
Rust part22
https://mevius.5ch.net/test/read.cgi/tech/1705760500/
2024/01/21(日) 20:22:28.74ID:mpR7a4j6
>>994
C++みたいに、色々な実装がでてくれは、50年後にも生きてるんじゃない?
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 158日 21時間 57分 50秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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