Rust part23

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2024/02/23(金) 17:37:52.13ID:CheDQupm
公式
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 part22
https://mevius.5ch.net/test/read.cgi/tech/1705760500/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.2ch.net/test/read.cgi/tech/1514107621/
2024/02/23(金) 18:14:46.11ID:7HXLfctb
Rust The Book (日本語版)
https://doc.rust-jp.rs/book-ja/
Rust edition guide (日本語版)
https://doc.rust-jp.rs/edition-guide/
Rust by example (日本語版)
https://doc.rust-jp.rs/rust-by-example-ja/
Rust cookbook (日本語版)
https://uma0317.github.io/rust-cookbook-ja/
Rust API guideline (日本語版)
https://sinkuu.github.io/api-guidelines/
Rust nomicon book (日本語版)
https://doc.rust-jp.rs/rust-nomicon-ja/
Rust async book (日本語版)
https://async-book-ja.netlify.app/
Rust WASM book (日本語版)
https://moshg.github.io/rustwasm-book-ja/
Rust embeded book (日本語版)
https://tomoyuki-nakabayashi.github.io/book/
Rust enbeded discovery (日本語版)
https://tomoyuki-nakabayashi.github.io/discovery/
Rust Design Patterns (日本語版)
https://qiita.com/Yappii_111/items/4ccc3a8461cdd4035651
https://qiita.com/Yappii_111/items/654717e6a6a980722189
Rust API guideline (日本語版)
https://sinkuu.github.io/api-guidelines/
2024/02/23(金) 18:15:20.65ID:7HXLfctb
Rust Reference Book
https://doc.rust-lang.org/reference/
Rust Standard Library
https://doc.rust-lang.org/std/
Rust rustc Book
https://doc.rust-lang.org/rustc/
Rust rustdoc Book
https://doc.rust-lang.org/rustdoc/
Rust rustup Book
https://rust-lang.github.io/rustup/
Rust Cargo Book
https://doc.rust-lang.org/cargo/
Rust unstable Book
https://doc.rust-lang.org/nightly/unstable-book/
Rust macro Book
https://danielkeep.github.io/tlborm/book/
Rust CLI (Command Line Interface) apps Book
https://rust-cli.github.io/book/
Rust Future Book
https://cfsamson.github.io/books-futures-explained/
Rust async-std Book
https://book.async.rs/
Rust tokio Book
https://tokio.rs/tokio/tutorial
Rust serde Book
https://serde.rs/
2024/02/24(土) 14:37:44.58ID:TvelBLvi
前スレ終盤がRust特有の型🔵ナニー症候群の典型(この用語は出典参照)
https://mevius.5ch.net/test/read.cgi/tech/1705760500/977-

Netflixは2年かけて気が付いたけど凡人程のめり込む沼
出典
https://www.youtube.com/watch?v=6gwF8mG3UUY

Haskellの時と同様、概念だけ触れたら他の言語に活かすのが良い
長居していると症候群認定される危険性があるから
2024/02/24(土) 14:48:37.96ID:cR8FpHrN
>>4
それ何の情報もなく見ても無駄
具体的な説得力ある話がない
TypeScriptが嫌いでGoが好きらしい
6デフォルトの名無しさん
垢版 |
2024/02/24(土) 16:14:50.39ID:yK1YDROT
Rustから前スレ終盤の型オナニーをなくしたような言語があれば使いたいけど、ないから仕方なくRustを使っている
7デフォルトの名無しさん
垢版 |
2024/02/24(土) 16:23:38.76ID:GLkrdyDg
静的型チェックレベルを高めつつジェネリクス等による汎化を活用しようとすれば大なり小なり型オナニーは避けられない
RustやTypeScriptだけでなくC++のtemplateやPythonの型ヒントでも同じこと

単独のTraitだけの話で型オナニーとか言ってるやつはオナニーレベルが低過ぎ
静的型チェックへの適性がないのでRustも辞めた方がいい
2024/02/24(土) 16:34:30.38ID:vVxC7GCC
型オナニーより所有権やライフタイム管理の方が面倒だけどな
それが型と絡むからさらにややこしくなる
2024/02/24(土) 17:03:48.32ID:4NvD6VS8
動的型付け言語しか慣れてない初心者が静的型付け言語に慣れるまで時間がかかるのは当たり前
GC前提言語しか慣れてない初心者がそうでない言語に慣れるまで時間がかかるのは当たり前
プログラミングに向いてる人ならどちらもすぐに慣れる
そんなことで文句を言っているようではプログラミングに向いていない
10デフォルトの名無しさん
垢版 |
2024/02/24(土) 17:13:41.82ID:V+W4sktV
Rustの型オナニーは「本当は1つにまとめても良いんだけど歴史的経緯で2種類あります」みたいなのが稀にあって気持ち良くない
2024/02/24(土) 17:33:53.05ID:rpcvr5yl
>>10
妄想楽しいですか?
2024/02/24(土) 18:25:50.38ID:+fQ0JdTj
>>8 それRust特有だよね 時間がどんどん溶ける
13デフォルトの名無しさん
垢版 |
2024/02/24(土) 18:33:24.91ID:Sbx59RJL
asはそろそろFrom/TryFromに統一してほしいんだけど
14デフォルトの名無しさん
垢版 |
2024/02/24(土) 20:45:24.03ID:Mj/QkYpd
型オナニーって全部習得するまでにいったいどれだけ時間かかるんだ
15デフォルトの名無しさん
垢版 |
2024/02/24(土) 20:47:39.26ID:fAQkBdOO
型オナニー四十八手
2024/02/24(土) 22:10:17.16ID:SuzjS9X3
>>13
機能が異なるので統一されない
asはcastなので変換From/TryFromとは異なる
例えばi32からu8の場合は変換できない値があるため
impl From<i32> for u8は実装がなく
impl TryFrom<i32> for u8の実装があり
u8::try_from(-3_i32)は変換できずErrとなる
一方でasはcastなので-3_i32 as u8は8bitに切り捨てられ252となる
2024/02/24(土) 22:13:12.85ID:SuzjS9X3
打ち間違い
252でなく253ね
18デフォルトの名無しさん
垢版 |
2024/02/24(土) 22:51:22.10ID:Sbx59RJL
>>16
それだけならstdにimpl From<i32> for Wrapping<u8>でも入ってくれれば事足りると思うが……

asって手軽なだけで変換元と変換先の型ごとに意味が複数あるのが複雑で嫌いなんじゃ
C++のC形式キャストみたいな印象
19デフォルトの名無しさん
垢版 |
2024/02/24(土) 22:53:55.08ID:Sbx59RJL
え、てかそもそも演算オーバーフローはpanicするのにキャストはpanicしないのか
だるっ
そういうとこやぞ
2024/02/24(土) 23:26:44.50ID:1jp0hNdJ
生演算子はオーバーフローせずラッピングされる
panicはデバッグ時のみ
明示的にラッピングしたいときはwrapping_add
オーバーフローを処理したいときはchecked_addやoverflowing_addまたはsaturating_add
21デフォルトの名無しさん
垢版 |
2024/02/25(日) 01:04:03.14ID:/M3V/hwr
型オナニーって複雑な型パズルを解いて悦に入ることを言ってるのかと思いきや
標準ライブラリの基本的な使い方を覚えることなのかよ
オナニー要素ゼロじゃん
そんなマインドではRustに限らず言語習得は無理だぞ
22デフォルトの名無しさん
垢版 |
2024/02/25(日) 01:05:34.01ID:PHCSkV3G
そんなマインドでもGo言語なら習得出来るんだよなあ
2024/02/25(日) 01:14:51.15ID:Y4TucXFt
バカはGoへ行くしかないよ
Rustなどは一般的なプログラミング能力がある人向け
24デフォルトの名無しさん
垢版 |
2024/02/25(日) 01:52:59.15ID:5QMstwYR
>>22
それはたまたま動いてるようなもんだぞ。
2024/02/25(日) 09:14:13.54ID:F2CUOiYD
Rustの開発って時間掛かりそうなイメージある
とりあえず作ってみて後でリファクタリングって作り方ができない感じ?
26デフォルトの名無しさん
垢版 |
2024/02/25(日) 09:49:58.55ID:JC//7tos
termuxよりscreen派なんだよなぁ。ライセンスはgplよりbsdのが好きなんだけど。
2024/02/25(日) 10:13:55.36ID:CWUdGBuB
>>21
リアルの会話でこうやってRustのマイナス面を他と同じと言う奴は
内心信用してない
>>23
言い方があれだけどこっちの方が信用できる
2024/02/25(日) 10:16:51.38ID:m/LZ7YZH
>>25
リファクタリングってのは外部から見た時の挙動を変えないのが原則なので
少なくとも型やライフタイムについては辻褄が合っていることを保証できる仕組みは
リファクタリングでも便利なんだぞ。

内部的な処理でもあまり柔軟には変えづらいということはあるけど
変えづらいところは (外部に対する保証に関わってくるので) 変えてはならない箇所だってことがわかる。
29デフォルトの名無しさん
垢版 |
2024/02/25(日) 10:21:38.07ID:UdSUU0Ni
>>9
✕プログラミングに向いていない
○rustに向いていない
皆さん、これがrust信者です
2024/02/25(日) 11:59:50.84ID:sgD3xFEl
>>6
せめてtraitに外延性があって集合的操作ができればいいんだけど、さすがにビルドに時間掛かりそうだしな。

ただでさえビルド時間が重たいから、設計の「早すぎる最適化」は仕方ないのかね。
2024/02/25(日) 12:12:53.79ID:swktBlsa
>>26
screenってまだメンテされてんの?
2024/02/25(日) 12:43:55.95ID:JQupN8F5
>>28
例えばpythonとかだと型とかプログラム構造気にせずにパパッと書いて
ある程度動くスクラッチでレビューして内容詰めて
スクラッチから流用できそうなら作り込んでリファクタリングみたいにできるけど
Rustだとそういう風にできなさそう
33デフォルトの名無しさん
垢版 |
2024/02/25(日) 12:48:37.70ID:AFiN8NTf
>>23
こういうのに限ってgoでもろくなもの書けない
2024/02/25(日) 12:50:53.73ID:lnNUwEQk
>>32
Pythonだとそのリファクタリング前後で挙動が変わってしまわないように気を遣うのがしんどいな
そういうとりあえず試しに作るケースだとユニットテストなんかも当然ない状況なんで
Rustに限らず静的型ならその辺をだいたいコンパイルエラーで拾えるのが楽
2024/02/25(日) 13:03:20.25ID:WCq5qF7l
>>27
「僕は基本Traitがよくわからない => それはRustのマイナス面」
この発想が幼稚さがわからないのかな?
他の言語と比べたときのRustのマイナス面はたくさんあるがそういう話のレベルじゃないだろ
2024/02/25(日) 13:05:42.89ID:Y4TucXFt
>>32
動的型付け言語しか使ったことがない初心者が
静的型付け言語の圧倒的なメリットを理解できないのはよくあるあるある
脱初心者の壁を乗り越えよう
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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