Rust part21

■ このスレッドは過去ログ倉庫に格納されています
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/
2023/09/02(土) 11:48:36.47ID:l2r0UsPx
>>66
壮大な勘違いしてるな
トランスパイル時は実行時ではないぞ
2023/09/02(土) 11:50:40.77ID:l2r0UsPx
一口にトランスパイルといっても、元言語にあった属性をどこまで先言語に引き継ぐかは目的に応じた取捨選択がなされるものです
前例がないので>>62に対する答えは「未知数」としか言えないですね

あるいは言語自体に「トランスパイルのしやすさ」という属性があるとすれば、それは「言語自体がトランスパイルされることを前提として設計されているか」と同義でしょう
その側面から言えば答えは「いいえ」です
69デフォルトの名無しさん
垢版 |
2023/09/02(土) 12:05:15.52ID:f2x52juV
ライフタイムは妥当かどうかの静的なチェックに使われるもの
トランスパイル先に持ち込まれることはない
2023/09/02(土) 13:06:33.37ID:euHMK3ab
短絡思考 + 自己弁護 = 複オジ
2023/09/02(土) 13:21:18.64ID:gZ7bGKIm
トランスパイルというとTypeScript→JavaScriptみたいにシンタックスをほぼ保ったまま変換することを意図してる?
それともRustで書いたコードをトランスパイル先のランタイムなり処理系なりで動かせれば良い?
後者ならトランスパイル先言語でWASMランタイム用意すればRustで書いたコードは動かせるよね
72デフォルトの名無しさん
垢版 |
2023/09/02(土) 14:30:38.26ID:mCX3wjBN
NimはCにトランスパイルされる
2023/09/02(土) 14:59:18.30ID:dPTTZbJb
コンパイルする話じゃなくトランスパイルする話をしてるのにその区別すらできないオジ
2023/09/02(土) 15:01:52.18ID:Ng1Dtdjk
一般にトランスパイルは同程度に高級な言語の間で
(なるべく)変換後の言語として自然な形で変換するものを言う。

コードジェネレータ、または実行エンジンとして他言語を
経由するものは含んだり含まなかったりするけど
表面上は同じことをやってるので境界が曖昧なんだよ。
2023/09/02(土) 16:08:00.76ID:LNeShMZN
境界があいまいだからRustコードからWASMバイナリを生成することをトランスパイルと呼んでもおかしくないと?
2023/09/02(土) 16:25:56.23ID:Ng1Dtdjk
>>75
そう呼んで欲しくはないが呼んでるかもしれないという想定で
すり合わせるプロセスは必要かもしれない。
77デフォルトの名無しさん
垢版 |
2023/09/02(土) 16:37:50.73ID:aKZIxXWD
>>65 がトランスパイル先にまでOwnership/Borrow/Lifetimeあたりの機能あったほうが良さそうなこと匂わすトンチンカンなこと書いてるからだろ
2023/09/02(土) 17:46:31.63ID:3Onl8i9L
>>77
そんな頓珍漢な勘違いをするのはおまえだけだろw
2023/09/02(土) 18:52:34.01ID:l2r0UsPx
どうせ>>62も複おじなんだろうね

なぜRustからトランスパイルしようなどと思ったのか?
その動機が出ないならこの話は終わりです
80デフォルトの名無しさん
垢版 |
2023/09/02(土) 19:16:20.22ID:v3EBZAej
>>62です。ぼんやりとした質問ですみませんでした

例えばRustが読めない人向けにPython等に変換してPython読める人ならなんとか読めるものに変換できないかなという想定でした。
あとはLLVM以外の環境で動かしたいとか。それなら確かにWASMで良かったみたいですね。
Rustは型が厳格とかデフォでimmutableだったりムーブだったり制約が強いイメージでしたが前提からして間違ってたみたいですね

皆さま事細かにありがとうございました
81デフォルトの名無しさん
垢版 |
2023/09/02(土) 19:32:06.11ID:aKZIxXWD
だから言っただろうがよ
2023/09/02(土) 19:33:02.08ID:EvLWL1zC
これは違うな
疑って失礼しました
2023/09/02(土) 19:34:44.69ID:GzMi3EqG
>>67
お前が勘違いしてんだろガイジ
実行時に所有権やライフタイムは出てこないからこそトランスパイル先の言語にもこれらの機能が言語機能として備える必要がないわけでこのスレでお前だけが1人だけ勘違いしている
頭悪そう
2023/09/02(土) 19:51:23.24ID:Wl+8+V5g
おじ、キレた!!
2023/09/02(土) 20:07:34.22ID:x+ZOYO9b
複数ID全員おじとか糖質患者やろ
お前のたった1人だけの発言の方がすべておじに似つかわしいんやけど自覚できない?
86デフォルトの名無しさん
垢版 |
2023/09/02(土) 20:45:16.67ID:f2x52juV
おじ使いはいつも病気
2023/09/02(土) 23:40:40.30ID:lMQqG2Zb
的外れなレス(>>63-64)からの
恥ずかしい壮大な勘違い(>>66)
そしてなぜかドヤる(>>81)

控えめに言って頭オカシイ
さすが複オジ
2023/09/02(土) 23:56:54.98ID:v0MnUUsV
オジオジ言ってる人は書き込みに中身がなくて全方位叩きだからスレ荒しが目的なのかな
反応せず無視するのがいいんだろうけど反応しちゃった失礼
2023/09/03(日) 00:03:56.01ID:cm8T2pY+
どうでもいいし面倒だしもうここ潰してワッチョイありスレに一本化してほしいんだけど
2023/09/03(日) 00:09:50.96ID:HRiHoELW
「自演認定は頭おかしい」論法
「おじ連呼厨」の強調

いつものやつですね
自演認定糖質論法は久しぶりに聞いた気がする
2023/09/03(日) 00:16:07.67ID:HRiHoELW
ID:bvTG+KAn
ID:g76m2OPt
ID:f2x52juV
ID:GzMi3EqG
ID:x+ZOYO9b
ID:v0MnUUsV
2023/09/03(日) 00:20:28.54ID:cZTMAPOv
議論でバトルが盛り上がるのは歓迎
オジおじ連投がいる時は議論がなく荒れるだけでつまらん
2023/09/03(日) 00:35:38.11ID:HRiHoELW
歓迎するわけねーだろアホか
2023/09/03(日) 00:38:35.94ID:cCJ59BhE
まともな議論が成り立たない原因は複オジだからね
まともな議論ができそうなのはどう見ても>>65>>68のほう
>>91にまとめられてるレスを書いてるようなやつが議論は歓迎とか笑わせるな
2023/09/03(日) 00:45:48.36ID:HRiHoELW
既視感の正体

https://mevius.5ch.net/test/read.cgi/tech/1673926892/745
https://mevius.5ch.net/test/read.cgi/tech/1652347700/468
2023/09/03(日) 00:53:25.84ID:roP/qgKi
>>61
亀レスだが特に理由がないならrusqliteで
今のところはこれがデファクト
2023/09/03(日) 01:20:25.77ID:YZAPuv0W
気に食わない意見があるけど反論できないで次々とおじさん認定して叩くだけのゲスがいるな

libsqlite3の上に構築したRusqliteでもいいが
Rustで構築したSQLxがSQLiteもサポートするようになり出来が良いので急上昇で逆転する見込み
2023/09/03(日) 01:41:47.18ID:mceEf04V
sqlxのsqliteドライバもlibsqlite3の上に構築されてるぞ
SQLiteはCのAPIしか提供してないんだから他のものを使う理由がない
2023/09/03(日) 07:28:12.23ID:x92ht6sx
また知ったかぶりして恥かいてるww
2023/09/03(日) 08:37:05.08ID:WZFIWsZX
sqlx以外はasync/await使えない?
2023/09/03(日) 13:35:31.95ID:mxOeoCcq
自分でspawn_blockingすればいい
2023/09/03(日) 13:45:08.16ID:yQjRA1Qa
安定感や性能に差があるのでsqlite限定ならFirefoxでも使ってるrusqliteがベター
2023/09/03(日) 13:48:17.25ID:jFAGdbdC
■購入目的(達成されました)
・Rustで動くプログラムの写経
・映像表現的な出力結果はモチベーションを維持できる気がした
・RustについてはWeb上に素晴らしいテキストがたくさんあるので簡単な実践的なプログラムを読みたい

■自分のレベル
私は数カ月前にRustを勉強し始めました。
これまで高校でc、Javaの基礎、大学でc++基礎、ObjectiveC、社会人になってPythonやc#と触れてきました。たくさん触れてきていますが結局自分が作りたい少し大きい物をプログラミングで何かを作りきるということをしてきませんでした。いつもチュートリアルで終わりです。永遠に世界に挨拶でもしてろと言われそうなタイプです。

ここ数年で映像制作から転職してインフラエンジニア関係に勤めています。
ネットワークやサーバ周りの知識に加えて一つ言語を修めたいと思いRustをはじめました。
2023/09/03(日) 23:37:22.86ID:IkMULQX5
>>101
spawn_blockingは別OSスレッドを立ててそこで実行するだけだから根本的な解決にならない
2023/09/04(月) 01:10:37.74ID:Ev35rGw5
>>104
別OSスレッドを立ててそこで実行する以外の解決方法はないよ
2023/09/04(月) 02:53:02.64ID:IXHvJiGY
君たちは何を問題と定義しているのか
2023/09/04(月) 06:58:20.37ID:HktKZ7k9
昔と違って今はFutureを返すcrateを選べるのだからそこで困ることはないな
糖衣のasync関数を含めてFutureさえ返してくれればいい
自分側はawaitもしくはspawnしてもいいしFutureUnorderedなどで早い者勝ち処理など自由な方針を取れるのだから
2023/09/04(月) 09:56:10.80ID:NSmwDj9w
>>107
そこで困るとは?
2023/09/04(月) 10:17:13.25ID:/ASAZOX6
困ってない人は一生気付かない
これが理想郷
2023/09/04(月) 13:01:49.77ID:9feyj9k/
いつものストローマンオジ
2023/09/04(月) 18:54:13.07ID:UIsGravq
困ったことが無い香具師には何で困るかわからんマジ
2023/09/04(月) 20:11:06.59ID:pWElWRNz
Futureもawaitして同期のみで困っていない人もいる
Futureすら使わず別スレッドにしちゃって困っていない人もいる
ただしベターな方法を知らないために困っていないだけかも知れない
理解した上で選んでいるなら問題ない
2023/09/04(月) 20:41:40.87ID:0aDTsPbB
>>112
同期APIを非同期で使う話だということを理解してね
何に困ってるのか知らんけど
2023/09/04(月) 20:57:24.92ID:IXHvJiGY
よく分からんが誰も困っていないらしいのでヨシ!
2023/09/04(月) 21:18:46.15ID:xwtgk4fq
>>114
俺は誰れが何に困っているのか分からん。 で、>>107は知っているみたいだが
>>100
>sqlx以外はasync/await使えない?
だから、うん、使えない/いや、xxxも使えるのような回答で良いはずなのに
ITドカタ板に多い障碍者は妄想必死して、変なことを言い出すからな。
2023/09/04(月) 21:28:55.91ID:bE42d19a
>>113
最後の手段spawn_blocking()の話?
あれはスレッドを消費しちゃうから例えばクライアント接続が多数来てそれぞれが使うと詰むよ
全部を非同期APIに統一するのがよいね
2023/09/04(月) 21:58:02.43ID:dk25eEP4
そういう状況なら非同期とか言う前にsqliteやめよう複くん!
118デフォルトの名無しさん
垢版 |
2023/09/04(月) 22:16:10.47ID:Ts5EvUDj
SQL関係ない一般的な話がされてると思ってたらSQLにこだわる人もいてよくわからんな
SQLにしてもサーバーに繋ぎにいくなら同期はありえんな
2023/09/04(月) 22:29:51.49ID:fWqFM9pZ
>>116
スレッド消費せずにSQLiteへの接続を同時にさばくことが出来ないからね
複オジおすすめのsqlxも当然接続ごとに別OSスレッド立ち上げてるからクライアント接続が多数来たら同じように詰むんだよ
2023/09/04(月) 22:47:23.47ID:rfWjSjrk
自分が何を知らないか
知ってる人もいれば
知らない人もいる
前者は詐欺師で
後者は複オジである
彼はみんなを騙しているのではなくて
彼はなんでも知っているつもりなのである
2023/09/04(月) 23:11:41.51ID:ueRfdgpS
RustのSQLデファクトスタンダードのsqlxに対して「複オジおすすめのsqlx」と書いてることから、
複オジ使いはRustを使っていない疑惑が再び出てきた。
2023/09/04(月) 23:53:13.41ID:IXHvJiGY
>>118の相似形

https://mevius.5ch.net/test/read.cgi/tech/1644596656/919
919: デフォルトの名無しさん sage 2022/05/09(月) 18:50:22.63 ID:rGYbsi5m
>>915
>>918
FizzBuzzは単なる話の出発点の例の一つに過ぎなくて既に皆はもっと一般的な話をしているようにみえる
皆もFizzBuzz限定の話なんかに興味はなくて一般的な話に興味があるからではないかな
2023/09/04(月) 23:54:19.18ID:8cZoZvfB
またオジが妄想に取り憑かれてるねww
2023/09/04(月) 23:56:14.30ID:IXHvJiGY
質問者のユースケースが非同期ライブラリを必要としているのか?
そうした前提を確認せずに、非同期対応の一点でライブラリの適・不適を評価しようとすること自体が筋違いなのです
2023/09/05(火) 00:09:09.34ID:XN2NC5/h
質問者>>100
>sqlx以外はasync/await使えない?
だから、非同期が前提ではないかい
2023/09/05(火) 00:23:36.51ID:XDjugVOt
>>125
そっちじゃなくて>>61のこと

https://github.com/launchbadge/sqlx/blob/main/sqlx-sqlite/src/connection/worker.rs#L82
なるほどワーカースレッド立てて通信してるだけで別に非同期ファイルI/Oを最大限活用するとかじゃないんだね
確かにこれなら>>119の言う通りブロッキング待ちするものをspawn_blockingしても大した差はなさそうだ
127デフォルトの名無しさん
垢版 |
2023/09/05(火) 04:37:15.62ID:Zsmh0CoR
>>117
これこれ
2023/09/05(火) 05:16:32.99ID:Rvonn+YZ
>>101
各spawn_blocking()毎に専用のネイティブスレッドをブロックする形で用いるため
spawn_blockingが同時に大量に発生しないよう留意しなければならない
そのため同期ライブラリの利用方法には何らかの制限がついてしまう
非同期ライブラリを利用すればそのような制限はない
2023/09/05(火) 12:58:37.11ID:V9mIkqYx
sqlx crateでMySQLを使っているがクライアント接続が多数来ても捌けてる
すべて非同期なのでブロックされることも別スレッドで実行されることもない
130デフォルトの名無しさん
垢版 |
2023/09/05(火) 14:15:52.81ID:SlAKktdo
node.js推しだった人か
2023/09/05(火) 14:17:29.93ID:6qNvCW8J
redis-rsよりも良いの?
2023/09/05(火) 14:29:07.14ID:bhQzjDZU
>>129
そりゃMySQL自体が非同期APIを提供してるからね
同期APIしか提供してないSQLiteとは全く事情が違うんだよ
2023/09/05(火) 19:14:25.74ID:dmqj3xko
かつてデファクトスタンダードだったdiesel crateがsqlx crateにその座を奪われた原因もdieselが非同期APIに対応できなかったせい
134デフォルトの名無しさん
垢版 |
2023/09/05(火) 21:03:20.66ID:x/2k1tVz
それもあると思うがたしかディーゼルってActiveRecordの開発者が設計してるんだよね
2023/09/06(水) 08:23:13.48ID:KSPgDJdv
sqlxのほうがシンプルで使いやすくわかりやすい
136デフォルトの名無しさん
垢版 |
2023/09/06(水) 10:25:26.54ID:UTcPybKQ
>>134
ということはライセンスで敬遠されたのか?
ここにもOSS問題が
2023/09/06(水) 12:30:09.29ID:12hS6FX4
>>136
いいかげんコテハン付けろよ。
2023/09/06(水) 18:07:43.20ID:bKG9yIlg
>>136
Apache2.0とMITのデュアルライセンスに何の問題が?
2023/09/07(木) 13:34:15.26ID:bUyh+PaU
GUI作りたいけどよくわからん
今のデファクトはなんや
2023/09/07(木) 14:34:25.76ID:BcSMP50e
デファクト決定戦レスバしかしてねーなこのスレ
2023/09/07(木) 15:38:29.71ID:kMvLzM04
デファクトと言える目安は Recent Downloadsで同カテゴリ2位以下と3倍以上差がついてるかどうか
2023/09/07(木) 21:32:40.12ID:pU5U2pan
GUIはデファクト無いと思う。要件で選ぶしかないわ。
2023/09/07(木) 21:35:22.15ID:I+OYue/W
RustならTUIが標準でしょ
2023/09/07(木) 23:41:05.43ID:7NPDh5XT
マウスでポチポチしたいんじゃ
2023/09/08(金) 00:00:03.39ID:hm00xw28
Rust製のGUIフレームワークあれば良いんだろうが
現状はQtやらgtkのような他所製のエンジン(GUIツールキット)を利用するためのクレートを使うって感じだろ?
自分が分かる・使ったことがあるGUIツールキットをRustを介して使えになるんじゃないのか。
2023/09/08(金) 00:06:21.68ID:DPQbgsiL
GUI に関しては OS (ディストリビューション) が提供するもの (をラップしたもの) を
避けるわけにいかないから「Rust 製」にこだわれないんだよね。
2023/09/08(金) 00:13:42.42ID:TT5R0qcn
OSのコンポーネント使うことにこだわらないならeguiでよいのでは
2023/09/08(金) 00:23:14.31ID:DPQbgsiL
egui は名前がエグい
2023/09/08(金) 00:25:14.57ID:3wUsERty
GUIは各言語に関係なく様々なレイヤーや様々なカバー範囲などあってRust以外の言語でも多数の選択肢があり要件により変わる
Rustのクレートでも同様であり極端なものだと例えばx11-dlクレートも該当すればtauriクレートも該当して自分はどちらも別用途でそれぞれ使用している
2023/09/08(金) 00:29:58.49ID:E3X/Jdig
X11ならマルチプラットフォームでもRust製で作れるな
151デフォルトの名無しさん
垢版 |
2023/09/08(金) 01:30:03.20ID:EHbxHCsV
フリーランスエンジニアになってからの年収推移を公開【現在年収1000万】

【実体験】仕事ができない新卒エンジニアでも月収70万フリーランスになれる理由

フリーランスエンジニアは年収900万円までは余裕!現役フリーランスエンジニアが徹底解説

フリーエンジニアの平均年収!未経験が年収1000万円を超える方法とは?

月額150万円以上も可能?ITフリーランスで高単価を獲得できる理由

在宅で年収1000万稼ぐフリーランスエンジニアの稼ぎ方【再現できる】

フリーランスのエンジニアやるなら45歳までに貯金5000万円作れないと死ぬ説
2023/09/08(金) 06:05:02.97ID:1e7fFDSb
>>144
今どきのTUIはマウスでポチポチできるようになってるぞ
2023/09/08(金) 07:42:03.69ID:L1913KOe
管理画面はウェブベースにしておけ
2023/09/08(金) 08:41:49.30ID:07e9DMWQ
どういうこと(´・ω・`)?
2023/09/08(金) 09:16:05.39ID:3pBwkm6o
田売りなのかなって気もするけど覚えること多そうだな…
2023/09/08(金) 12:46:27.44ID:Qwh1dPVP
Streamlit の Rust 版ってあるのかな
2023/09/08(金) 14:11:22.78ID:E3X/Jdig
>>152
マジかよ
21世紀ってすげーな
2023/09/08(金) 17:46:35.04ID:DPQbgsiL
ターミナルがマウスイベント送信できるようになってるやつならね。(まあモダンなのはだいたい出来ると思うが)
159デフォルトの名無しさん
垢版 |
2023/09/08(金) 18:56:17.34ID:LCrxvNjx
Tauriでいいじゃん
2023/09/08(金) 19:04:26.66ID:TT5R0qcn
sixel使ってターミナルGUIアプリケーションとかできないのかね
161デフォルトの名無しさん
垢版 |
2023/09/09(土) 00:48:43.38ID:uwI0AfpW
tauri執拗にすすめるやつなんなの?病気?
2023/09/09(土) 01:42:23.33ID:UR7WoOUT
スレに2回しか出てないのに執拗とは
2023/09/09(土) 01:55:37.10ID:nFkP/7o8
荒れるから、田売りの話は禁止にしよう
2023/09/09(土) 02:24:44.28ID:i5s7UXai
「Electronよりなんか良いっぽい」以外の利点が知られていないTauriさん
2023/09/09(土) 08:43:17.99ID:jpDXx+st
yarnだのcargoだのどいつもこいつもなんでオレオレパッケージマネージャ使いたがるの😭
2023/09/09(土) 09:07:53.17ID:cXOKMQb6
VSCodeなど(当時はTauriはなく)Electronで書かれたソフトが多いようにElectronとTauriは共通してメリットが多い
さらにWebアプリ化もしくはその逆も比較的容易
ただしどちらもHTML/CSS/(JavaScrpt)のWeb知識が必要なのでこれを持たない者だけが批判しがち
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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