Rust part22

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2024/01/20(土) 23:21:40.08ID:wyzQTwgG
公式
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 part21
https://mevius.5ch.net/test/read.cgi/tech/1692105879/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.2ch.net/test/read.cgi/tech/1514107621/
2024/02/04(日) 19:55:05.28ID:JoIfCUOf
いつのまにか実装言語の話に流れてるけど
そういう議論はしてないからな
2024/02/04(日) 19:55:34.23ID:yS+PPAz5
ここはRustのスレです
開発プログラミング言語として劣っているPythonの話題は他所でしてください
2024/02/04(日) 19:56:07.95ID:JoIfCUOf
機械学習で得たモデルを組み込みデバイスで使いたいってことなんじゃない?
それもう機械学習を終えて、ただのアプリの設計と実装な気がするけど笑
2024/02/04(日) 19:59:28.23ID:JoIfCUOf
どれもダメ
pythonに勝てる理由にはなってない
実装言語の話をしたいならC/C++で良いし現状そうなってる事実は覆らない
速度だけ欲しいならrustはいらない
2024/02/04(日) 20:00:34.78ID:gRgK5+vi
>>200
それはそう
行列演算ライブラリがC/C++ばっかなのはたまたまだとも言える
2024/02/04(日) 20:02:02.46ID:gRgK5+vi
>>201
このスレはRustスレなんだから実装の話になるのは当たり前だろ
データサイエンスの話がしたいなら他所に行ってくれ
207デフォルトの名無しさん
垢版 |
2024/02/04(日) 20:03:49.73ID:woXOEkq4
MoonZoonってfront/backを一括で開発するBlazorみたいな感じか
https://github.com/MoonZoon/MoonZoon
https://zenn.dev/etoal83/articles/2de0fcde17cc01
2024/02/04(日) 20:06:59.78ID:uCVo+TKx
>>206
じゃあこういう視点から聞くが下回りがrustの機械学習ライブラリはありますか?
2024/02/04(日) 20:11:29.25ID:gRgK5+vi
>>204
Rustを組み込み業界が推してる理由はセキュリティ、メモリ安全の観点でRustがC/C++より優秀っていう理由
実際にカーネルはRustにマイグレーションされはじめてるでしょ
Rustがサーバー用途で使われだしてるのはtokio等のRustライブラリ、Webフレームワークが優秀なおかげでJavaのSpringBootのような有名どころに機能面でそこまで劣らず使えて、省メモリ高速に使えるから
2024/02/04(日) 20:16:35.93ID:woXOEkq4
>>209
そういやJVM使うから同じゲーム動かすにしてもAndroidはiPhoneよりメモリとかのハード要件上がるとか言われてたな
2024/02/04(日) 20:16:54.38ID:JoIfCUOf
>>209
少なくとも下回り使う分にはそのような要求は必要ないと思うが
rustであってもunsafeだらけになるよ
非同期ライブラリに関してはpythonもasyncioというtokioに勝るとも劣らないつよつよライブラリがある
よってその点でも不足はない
Webフレームワークに関しては言わずもがな
2024/02/04(日) 20:17:19.77ID:gRgK5+vi
>>208
だからなんでそんなにデータサイエンスの話をしたがるの?
ライブラリ?libtorchのrustラッパーでコード書いてコンパイルすりゃいいだけやんか頭悪すぎでは?
機械学習は演算処理して類似度を求める作業なんだからコンパイルなんて手間かけずにスクリプト言語でやったほうが手軽だろうが
長時間動作させたいサーバーや組み込みとはわけが違う
インタプリタ言語とコンパイル言語の使い分けもできないの?
213デフォルトの名無しさん
垢版 |
2024/02/04(日) 20:22:45.50ID:woXOEkq4
負けず嫌いが多いのか知らんが相手にするから居付くんやで
2024/02/04(日) 20:24:07.63ID:gRgK5+vi
>>211
システムコール書くんだからそらunsafeだらけになるわな
逆に言えばそのシステムコールまわりの部分さえ厳重に書けばいいじゃんか

Webフレームワークでインタプリタ言語を使うのは、上で言われてた典型的な富豪的プログラミングだよね>>163
サーバーに重課金できるならPythonでどうぞ実装やってください
ふつうの神経を持ってたら少なくともJavaとかC#とかGoとかをサーバーに使うと思う
2024/02/04(日) 20:24:27.23ID:JoIfCUOf
>>212
いやそもそもの議論の出発点が「機械学習においてはpythonがrustより優れている」というところだからでしょ
2024/02/04(日) 20:28:31.70ID:gRgK5+vi
>>215
機械学習はプログラミングじゃないとは言わないがデータサイエンスの分野だよ(2回目)
だから「機械学習においてPythonがRustより優れてる」がそもそもおかしい
Rustはデータサイエンスをやる言語ではない
2024/02/04(日) 20:28:47.77ID:tlFdYVQb
>>208
【機械学習 by Rust】
・autumnai/leaf — Open Machine Intelligence framework.. Abandoned project. The most updated fork is spearow/juice.
・burn - A Flexible and Comprehensive Deep Learning Framework in Rust.
・coreylowman/dfdx — CUDA accelearted machine learning framework that leverages many of Rust's unique features. Crates.io
・huggingface/candle - a minimalist ML framework with a focus on easiness of use and on performance (including GPU support)
・huggingface/tokenizers - Hugging Face's tokenizers for modern NLP pipelines written in Rust (original implementation) with bindings for Python. Build Status
・LaurentMazare/tch-rs — Rust language bindings for PyTorch.
・maciejkula/rustlearn — Machine learning crate for Rust. Circle CI
・rust-ml/linfa — Machine learning framework.
・smartcorelib/smartcore — Machine Learning Library In Rust Build Status
・tensorflow/rust — Rust language bindings for TensorFlow.
2024/02/04(日) 20:31:39.88ID:JoIfCUOf
>>217
いや一覧を出せって意味じゃないぞw
python以上に使われてる例を出せって意味だよ
2024/02/04(日) 20:32:36.67ID:JoIfCUOf
>>216
そういう逃げはいいから
データサイエンスも普通にプログラミングです
2024/02/04(日) 20:33:09.36ID:gRgK5+vi
>>219
違います、数学です
2024/02/04(日) 20:34:08.77ID:woXOEkq4
データサイエンスやるならPythonよりJuliaの方がいいな
2024/02/04(日) 20:34:15.03ID:JoIfCUOf
結局論破できないんか
じゃあ絡んでくるなよ
機械学習においてはpythonに負けていますでいいだろ
そしてそれはrustがダメということにはならん
何と戦ってるのか
2024/02/04(日) 20:36:35.51ID:gRgK5+vi
>>222
機械学習の論文読んだことある?プログラミングなんてどうでもいいことは「~のPCスペックでPytorchを用いて実装しました」くらいしか書かれないぞ
2024/02/04(日) 20:36:58.01ID:tlFdYVQb
>>222
Rustは機械学習のライブラリもRustで書かれているものも多いです
PythonはC/C++依存だから同じ土俵にすら立てないと思います
2024/02/04(日) 20:37:34.97ID:JoIfCUOf
>>223
いやそれは今関係ないでしょ
2024/02/04(日) 20:39:06.92ID:gRgK5+vi
>>225
機械学習は理論が大事ということを語る上で関係大アリなんだが…
2024/02/04(日) 20:41:07.00ID:wL3YnJ62
元々学生の勉強用としてPythonが利用されてて、
その学生が勉強の一環で機械学習したことで機械学習用のライブラリが増えた
その過去の資産(遺産?)の上に乗っかって今のAIブームがあるだけ

言語的な優位なんてものはPythonになくて
ただライブラリが充実してるだけの話
2024/02/04(日) 20:46:55.32ID:7/eIVGRy
機械学習なら†darknet†だよね
2024/02/04(日) 20:48:06.01ID:tlFdYVQb
Rustで機械学習はRustだけで完結できるアドバンテージもありあります
新たに出て来て必要となる実装ライブラリもRustだけ習得すれば作れます
2024/02/04(日) 20:56:21.39ID:gRgK5+vi
うーん、機械学習する上で必須となる行列演算ライブラリの実装の話こそRustでやるかやらないかで盛り上がるところなのに、なぜ頑なに機械学習自体を取り上げて話をしてきたのか
理解不能だ
2024/02/04(日) 21:15:10.60ID:woXOEkq4
そういやJuliaだと行列演算言語単位でサポートしてたな
2024/02/04(日) 21:22:05.81ID:wL3YnJ62
そもそもの話になるけども
なんでPythonが教育目的で使われたのかって話になる
Pythonはキレイに書くことを強制されるってのもあるけど
電池内蔵とか言われるぐらい標準ライブラリが充実していた
だから学習に利用されやすかった
行列計算も然り

結局ライブラリが充実してたって話に帰結するよ
尤もライブラリの大半はCで書かれてるがね
2024/02/04(日) 21:24:14.42ID:wL3YnJ62
ちなみにnumpyの開発者も大学生だったんじゃないかな
とにかく欧米の学生はPythonで勉強してたから
Pythonのライブラリは大学生が作ったものが多いよ
2024/02/04(日) 21:33:51.15ID:7hkEeikC
その昔は perl もライブラリが豊富といわれていたんだがな
perl, ruby, python の中ではオフサイドルールがある分だけ
python の方がプログラムがごちゃごちゃになりにくい
もっとも今となっては自動フォーマッターがあるので
どれで書いてもあまり変わらないが
2024/02/04(日) 21:44:00.36ID:MUvkIiW8
>>233
>>234
ここはRustスレ
Rustがらみの話以外は別スレでしろ
236デフォルトの名無しさん
垢版 |
2024/02/04(日) 22:16:24.24ID:3vZBpwTn
Rustはプログラム言語の王なのでRustスレではどの言語の話をしても良い
2024/02/04(日) 22:24:24.75ID:gRgK5+vi
他の言語を知ることでRustの良し悪しが分かる、他の言語を学ぶことは巡り回ってRustの勉強になるって寸法よ
もちろんRustの文法やフレームワークの話題や議論があればそちらを優先すべきね
2024/02/04(日) 23:02:06.01ID:FrLSpZU4
Rustが『いま』流行ってなくても、Rustの協賛企業らが『無理やり』流行らすから5-10年後には日本でもサーバーサイドにRustを使う企業が増えている
20年後にはLinuxカーネルのRust化がほぼ完了してるだろうよ
2024/02/04(日) 23:16:12.06ID:woXOEkq4
結局相手にするヤツがいるから居付くわけで
2024/02/04(日) 23:21:49.89ID:MUvkIiW8
>>238
Rustは「安全かつエコ」という流れが生じつつあるから日本でもそうなる
エコとは他の言語より消費電力を減らしCo2排出量も減ること
2024/02/04(日) 23:24:52.22ID:X8VPJ+Rl
rustとpythonではなく、tomlとpythonを比較すればいい
スクリプトを追放するたんびにマークアップ言語が増える歴史が繰り返される
2024/02/04(日) 23:32:42.46ID:srfzNHU5
>>239
相手にしなかったら自演して自分に安価つけ始めるけどな
2024/02/04(日) 23:55:39.05ID:gRgK5+vi
>>241
tomlはマークアップ言語じゃなくてデータ記述言語
スクリプトうんぬんは知らんが、シリアライズ効率のより良いデータ記述言語を求めるのはいい事だよ
自分のところはjson+gzipで落ち着いてるけど、goでよく使われるprotobufにいずれ移行できればなって考えてる
244デフォルトの名無しさん
垢版 |
2024/02/05(月) 00:06:05.32ID:xY09uWcV
>>230
数値演算ライブラリはC言語で十分な気がする。理由を言語化するのは難しいけど
2024/02/05(月) 00:06:28.07ID:8h9X84j9
オッやっとるな
2024/02/05(月) 00:06:30.26ID:8h9X84j9
オッやっとるな
247デフォルトの名無しさん
垢版 |
2024/02/05(月) 00:11:45.07ID:qpTlAoHG
一番向いてるのはミドルウェアとか少数のガチ勢が作ったらいいような部分なんだよな。
だから普及はしない。
2024/02/05(月) 00:14:26.70ID:Uc3vGql0
>>244
並列処理まわりの仕様をよく検討した上でRustかCかC++のどれを選択するべきとは思うな
249デフォルトの名無しさん
垢版 |
2024/02/05(月) 00:18:35.26ID:qpTlAoHG
アルゴリズム周りなんて共有のオンパレードなのにrustが向いてると思ってるのはちょっと素人感がすごいね。
2024/02/05(月) 00:25:50.11ID:Uc3vGql0
日本語おかしくなった
並列処理まわりの仕様をよく検討した上でRust、C、C++のうちどれを使うか選ぶべき
個人的には並列処理の安全性の面でRustを使うべきだと思う
2024/02/05(月) 00:31:12.78ID:Uc3vGql0
まあ実情は演算処理にCUDAを使うだろうからC++で全部設計したほうが都合がいいのかな
難しい
2024/02/05(月) 00:39:33.82ID:xSwz3MFP
並列処理?tokioの出番だな
2024/02/05(月) 00:52:01.28ID:i8NFM5TB
機械学習はPython?Rust?いやいや争わずに両方使えばいいじゃん。

Rustを使って機械学習アルゴリズムを実装しPythonから呼び出す: k-meansクラスタリング
https://zenn.dev/skwbc/articles/rust_python_kmeans
2024/02/05(月) 00:57:54.10ID:Ml8drJRq
機械学習だの演算処理だの、いつまでそんなつまらない話をしてるの?
rustはゴミってことで結論が出てるんだけど
2024/02/05(月) 01:03:32.12ID:l3kMSpNc
荒らしに構うキチガイを追い出したいね
ID:gRgK5+vi → ID:Uc3vGql0 (違ったらごめんね)
2024/02/05(月) 01:04:43.04ID:4uXpM/Ax
>>253
わざわざ生でunsafeなコードを書かなくてもPyO3とか使えば楽にできるよ
2024/02/05(月) 03:14:48.13ID:6VJ4TLXv
>>243
Protocol Buffers古いし、MessagePack(古い)やCBORのほうがいいんじゃない? 使ったことないけど。
258デフォルトの名無しさん
垢版 |
2024/02/05(月) 03:40:05.05ID:d3c/QlU3
Protocol buffersは仕様変更に強いしフォーマットを別ファイルに定義出来るという特徴があるから、msgpackやcbor とは使うべきケースが違いそう
2024/02/05(月) 06:01:25.37ID:ip7v+BR3
>>247
もちろん少人数ガチ勢による開発もRustが向いてるのはおっしゃる通りだけど
大人数による開発もRust向いてるでしょう
特にC++で次から次に穴の発生が尽きない各大規模プロジェクトたちは作り直しや新規ならRust一択だね
2024/02/05(月) 06:45:17.21ID:bXI/bbyn
>>247
Rustはサーバーサイドで最もよく使われているっていう調査結果がすでに出ているが>>117,119
2024/02/05(月) 06:55:14.99ID:qjaRN2nq
>>253
どうでもいいがこの記事では非同期処理ライブラリにtokioじゃなくてrayonを使ってるんだな
気になってぐぐったら「rayonのスレッド プールは、CPU を集中的に使用する作業、つまり大規模なデータ セットの大規模な並列処理向けに設計されています。」らしい
https://www.reddit.com/r/rust/comments/xec77k/rayon_or_tokio_for_heavy_filesystem_io_workloads/
2024/02/05(月) 07:04:12.02ID:ip7v+BR3
>>261
rayonは非同期を使わない並列に特化した時に速い
tokioは非同期で並行&並列で万能
2024/02/05(月) 08:21:40.19ID:kahA1Glb
>>227
なら言語的に優れていてPythonライブラリを使えるNim最強だな。
2024/02/05(月) 08:36:20.41ID:ip7v+BR3
Rust⇔PythonはPyO3で相互に呼び出せるのでRustだけあれば十分
2024/02/05(月) 09:57:56.35ID:3fgxGQeI
他の言語スレに乗り込んできて居座るとかやってる事ルビガイジとなんら変わらんっていう
2024/02/05(月) 12:16:47.03ID:Uc3vGql0
>>263
Nimは速いしCへのトランスパイルも賛否あれど個人的には好き
267デフォルトの名無しさん
垢版 |
2024/02/05(月) 12:56:18.45ID:WdhGREbJ
>>211
お前や俺らがそのunsafe部分を書く。
で職場の他の今動きゃいいってコード書いてる奴らにはunsafe部分は利用させても書かせない。
そういう分け方できるのはメリットじゃないかね。
268デフォルトの名無しさん
垢版 |
2024/02/05(月) 13:02:02.94ID:WdhGREbJ
>>266
同意
269デフォルトの名無しさん
垢版 |
2024/02/05(月) 22:28:07.58ID:UHwE0rib
>>259
もう5年くらいこんなこと言ってる人いるけど一向に普及してないよね。
2024/02/05(月) 22:40:04.70ID:5g9amV19
>>269
カーネルのRustへのマイグレーションの成果が各所で出てるの知らない?
2024/02/05(月) 22:49:23.20ID:dxOzlQzX
>>269
AWS SDKにRustが正式登場して、色んなところがRustを触りだしてるぞ
2024/02/05(月) 23:29:16.62ID:bm3rzOD2
AWSやCloudflareが大規模に使ってるからインターネットのトラフィックの結構な分量をRustが捌いてるはず
この5年でこういう人目には触れないけど基礎的な部分にずいぶん普及したよ
2024/02/06(火) 00:09:13.25ID:gR/xoQQt
Rust のユーザ規模はもはや小さくはないが仮に小さかったとしても、それが無用のものということを意味するわけではない。
Cobol や Fortran だって一般には化石のような印象を持たれつつも近年にも規格改定などの発展はあるし、それが求められる程度の利用シーンはある。
Lisp がインフラの中に潜んでいたりするし、Caml で書かれたプログラムがあなたがたのパソコンにインストールされていたりするのもそれなりに高い確率でありうる。
普及するっていうのはそれを不必要なところにまで押し付けたいわけじゃないだろう。
2024/02/06(火) 00:25:40.67ID:oam+zbbU
物を作ってから普及するまでの時間で評価されれば
まだ作ってない物を売るようになったり、評価を信じなくなったりする
2024/02/06(火) 00:35:44.14ID:QhlaBKsr
>>271
あれすげー使いにくいよ
そもそもがAWSのAPI自体が非同期の作りですぐに返ってくるものばかりだから
ライブラリ側は同期的で良いのにtokio使っちゃってるし
2024/02/06(火) 00:39:31.81ID:OWeq/GHS
>>272
現在のネットのインフラであるクラウドとCDNがRust製になっていってるから
Rustがネットインフラを支えるようになって来たと言っても過言ではないんだね
2024/02/06(火) 01:36:56.00ID:bbDh9Fvv
>>275
割と何言ってるかよくわからないので
どのあたりが使いにくいのか詳しく
2024/02/06(火) 08:02:11.78ID:TiTcC6K4
>>275
javascriptでただの同期functionだったものが非同期のasync awaitに変わった経緯がある
同期functionだとブラウザから呼び出した時に待ち状態がフリーズみたいになって不便だった
2024/02/06(火) 08:41:24.69ID:Lhg6cl8R
>>275
それはキミの非同期処理に関する知識が欠如してるだけ
280デフォルトの名無しさん
垢版 |
2024/02/06(火) 10:42:58.91ID:rmP9tpon
まあわざわざライブラリ側で非同期にしなくても、必要ならユーザーが勝手に非同期にすればいいってのはあるかもな
2024/02/06(火) 11:02:01.98ID:viYUZILO
お前らはawait禁止縛りでもしてるの?
2024/02/06(火) 11:12:37.31ID:tyBWuvJT
tokioの非同期って
async fn、spawn、async、await
を最低限使えればなんも不自由なくね?
同期じゃないといけない理由あんの?
2024/02/06(火) 11:17:49.52ID:gR/xoQQt
同期的に使うだけの場合でも tokio をリンクするってのが気分よくないというのはわかる。
2024/02/06(火) 11:19:55.73ID:g9hJ5hPW
>>282
同期じゃないといけない理由?非同期の使い方がわからないからじゃないか?
ちなみにRustがダメだとアンチが言うのはアンチがRustコードのコンパイルを成功できないから
2024/02/06(火) 11:23:28.54ID:YZW9kbIH
AWS SDKを同期的に使いたいってそれAWS CLIじゃだめなん?w
286デフォルトの名無しさん
垢版 |
2024/02/06(火) 11:25:05.20ID:BOUvQi0K
>>280
そこの今まで独自にそれぞれが用意してた部分を async await 等のAPIとして整理されたことに意義があるんと思う。
287デフォルトの名無しさん
垢版 |
2024/02/06(火) 11:26:18.87ID:J68o5uRN
AWS CLIはcargo installで入ってこないから……
2024/02/06(火) 11:28:28.70ID:DRX9b4l9
そもそもRustを使う意味がないよね
AWS SDK for Pythonがあるんだから
289デフォルトの名無しさん
垢版 |
2024/02/06(火) 11:28:33.03ID:J68o5uRN
>>286
async awaitへの統合に意義があるのはわかるけど、tokioにまで限定されるのはダルイという気持ちがある
2024/02/06(火) 11:33:54.88ID:GPQIFWbx
>>289
そこはしょうがないでしょ
tokioはAWSが積極的に支援してるライブラリだからね
https://tokio.rs/
https://i.imgur.com/NSjb82s.png
291デフォルトの名無しさん
垢版 |
2024/02/06(火) 11:35:59.00ID:J68o5uRN
>>290
説教的に支援って資金的な支援じゃなくてAWSがtokioの営業することだったのか……
2024/02/06(火) 11:38:49.18ID:GPQIFWbx
あ、AWSがtokioを運営してんのか
単なるスポンサーだと思ってた
293デフォルトの名無しさん
垢版 |
2024/02/06(火) 11:40:13.71ID:J68o5uRN
マジか
2024/02/06(火) 11:42:17.61ID:4dmbx6OY
説教的な支援は5chの担当
2024/02/06(火) 11:42:20.07ID:4dmbx6OY
説教的な支援は5chの担当
2024/02/06(火) 11:53:48.52ID:9gL8Mjmo
Rustで非同期やるライブラリって昔からたくさんあるけど最近はtokioしか使ってないや
すごく重い処理があるプロジェクトはtokioとrayonで使い分けてるけどそれでも両方のライブラリをプロジェクトで共存させてる
297デフォルトの名無しさん
垢版 |
2024/02/06(火) 12:09:35.30ID:eJTRS9Cw
非同期と言いつつ出来てない奴って8割いるよね
2024/02/06(火) 13:54:11.58ID:oam+zbbU
非同期のそのデメリットを消す方法は
まだ作ってないことにしよう
2024/02/06(火) 14:05:46.01ID:QhlaBKsr
>>277
まずAWSのAPIってのは基本的にすぐ返ってるの
この辺はわかる?
例えばインスタンスを作るAPIってのはインスタンスを作り終わるまでブロックするんじゃなくてインスタンス生成命令を出してすぐに返ってくるわけ
実際にインスタンスが生成完了したかはインスタンスの状態取得APIを使って確認するわけ
だから常に同期的に呼び出しで問題ないの
pythonのboto3ってライブラリが1番使いやすい
300デフォルトの名無しさん
垢版 |
2024/02/06(火) 14:08:10.63ID:9MgF8+tA
Boto3、あんま補完されなくて馬鹿にはキツい
2024/02/06(火) 14:39:52.97ID:HfVCyUAp
>>299
AWSが鯖落ちしてたらどーすんの?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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