公式
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 part24
https://mevius.5ch.net/test/read.cgi/tech/1716759686/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
Rust part25
■ このスレッドは過去ログ倉庫に格納されています
2024/07/31(水) 00:46:26.17ID:DBMWY2QT
480デフォルトの名無しさん
2024/08/28(水) 23:41:42.12ID:lG2WtYJn GoもKotlinもLLVMバックエンドじゃないだろ
481デフォルトの名無しさん
2024/08/28(水) 23:46:05.67ID:LoAS9bQy >>474
読んでみたが登場人物たちが無知すぎるな
特にZigでのasync/awaitの経緯を解説しているmlugg0はRustについて不慣れで全くわからないと答えてる
>>Zigに限らずLLVMとasync/awaitの相性がとてつもなく悪いらしい
それは間違いでLLVM coroutineを使おうとすると重くなる
Rustはそれを使わずにスタックレスなステートマシンとして実現しているため軽く良く出来ている
読んでみたが登場人物たちが無知すぎるな
特にZigでのasync/awaitの経緯を解説しているmlugg0はRustについて不慣れで全くわからないと答えてる
>>Zigに限らずLLVMとasync/awaitの相性がとてつもなく悪いらしい
それは間違いでLLVM coroutineを使おうとすると重くなる
Rustはそれを使わずにスタックレスなステートマシンとして実現しているため軽く良く出来ている
482デフォルトの名無しさん
2024/08/29(木) 01:22:47.24ID:YXIyrRhD >>481
Rustは最強ってことでいいけどここにいてもお前がザコなのは変わらないからもう引っ込んでなよ
Rustは最強ってことでいいけどここにいてもお前がザコなのは変わらないからもう引っ込んでなよ
483デフォルトの名無しさん
2024/08/29(木) 06:12:15.98ID:1jszJs3n >>480
バカなAIが跋扈してる
バカなAIが跋扈してる
484デフォルトの名無しさん
2024/08/29(木) 06:26:17.95ID:CICE1rWP Zigは技術的な敗北でasync/awaitを削除しただけでなく思想的にも嫌悪や不要論が跋扈していて終わってるな
485デフォルトの名無しさん
2024/08/29(木) 07:28:11.89ID:rHptJtk5 >>474
スレッドプール作れるし問題なし
スレッドプール作れるし問題なし
486デフォルトの名無しさん
2024/08/29(木) 07:34:05.99ID:jXxTByd8 async awaitが何なのか理解していない人たちがZigに集まっている
487デフォルトの名無しさん
2024/08/29(木) 07:53:29.77ID:0glh1AR4 Zigは未使用変数がエラーになるのがな…
せめてデバッグビルド中はワーニングになってほしいが
作者の思想的に無理そうなんだよな
せめてデバッグビルド中はワーニングになってほしいが
作者の思想的に無理そうなんだよな
488デフォルトの名無しさん
2024/08/29(木) 08:06:23.91ID:7zduIY7i489デフォルトの名無しさん
2024/08/29(木) 08:08:24.23ID:K+MkDn8y zigはビルドツールのccとしてcmakeより使いやすくて好き
490デフォルトの名無しさん
2024/08/29(木) 08:10:24.41ID:0glh1AR4 >>488
いや、Rustと同じく変数名に_つければ通るからあんま関係ないかな
これのせいで実装中やデバッグ中に関数呼び出し一つコメントアウトするたびに
あちこちに_をつけてまわらないといけないからかなりつらい
いや、Rustと同じく変数名に_つければ通るからあんま関係ないかな
これのせいで実装中やデバッグ中に関数呼び出し一つコメントアウトするたびに
あちこちに_をつけてまわらないといけないからかなりつらい
491デフォルトの名無しさん
2024/08/29(木) 08:32:58.82ID:plL6TRoE Zigは未完成のまま終わりそうだな
492デフォルトの名無しさん
2024/08/29(木) 08:51:25.64ID:W3gDNWMh >>489
pkg-config 呼び出す機能がないんじゃない?
pkg-config 呼び出す機能がないんじゃない?
493デフォルトの名無しさん
2024/08/29(木) 09:33:53.27ID:1jszJs3n494デフォルトの名無しさん
2024/08/29(木) 12:29:33.60ID:CydvL0rR シャドウイングがない言語は不便すぎるから有るのは正しい
495デフォルトの名無しさん
2024/08/29(木) 12:50:47.36ID:OEtxKPAo >>486
async awaitをやさしく解説してください
async awaitをやさしく解説してください
496デフォルトの名無しさん
2024/08/29(木) 13:07:04.37ID:YXIyrRhD せんでええよ
497デフォルトの名無しさん
2024/08/29(木) 13:32:35.20ID:MmpSTGjT https://rust-lang.github.io/unsafe-code-guidelines/introduction.html
こんなのあるんだ、まだ中身スッカスカだけど
こんなのあるんだ、まだ中身スッカスカだけど
498デフォルトの名無しさん
2024/08/29(木) 14:09:44.24ID:G41Drf1I async (∩゚д゚)アーアー
await 聴こえなーいΩ\ζ°)チーン
await 聴こえなーいΩ\ζ°)チーン
499デフォルトの名無しさん
2024/08/29(木) 14:12:39.25ID:W3gDNWMh asyncの一番難しいとこは発音だな
間違えてる日本人が多い
間違えてる日本人が多い
500デフォルトの名無しさん
2024/08/29(木) 14:49:29.45ID:a4VXQbqA501デフォルトの名無しさん
2024/08/29(木) 19:49:23.69ID:dbGPGAjw Rustの非同期が非常に軽く上手くいってる理由は簡素であることかな
futureの構築とfutureの実行が明確に分離されている
構築で返されるのは単なる構造体の値でありヒープ利用を前提としない
実行はポーリングしないと何も進まない簡素さ
asyncタスクはステートマシンによるコルーチンとして実装されている
つまり個別のスタックを必要とせずに動くためメモリリソースの点でも有利となってるね
futureの構築とfutureの実行が明確に分離されている
構築で返されるのは単なる構造体の値でありヒープ利用を前提としない
実行はポーリングしないと何も進まない簡素さ
asyncタスクはステートマシンによるコルーチンとして実装されている
つまり個別のスタックを必要とせずに動くためメモリリソースの点でも有利となってるね
502デフォルトの名無しさん
2024/08/29(木) 23:02:59.56ID:E4rublhw >>479
エリアとかって恥ずかしい奴と思ってた。
エリアとかって恥ずかしい奴と思ってた。
503デフォルトの名無しさん
2024/08/29(木) 23:05:24.99ID:E4rublhw >>489
cmakeのバージョン変化に嫌気して素のgnu makeに戻ったわ。
cmakeのバージョン変化に嫌気して素のgnu makeに戻ったわ。
504デフォルトの名無しさん
2024/08/29(木) 23:20:35.98ID:jTB6+YRF505デフォルトの名無しさん
2024/08/30(金) 01:16:51.32ID:1dn+3XQv https://en.wikipedia.org/wiki/Region-based_memory_management
region, zone, arena, areaと呼ばれると書いてあるし言うほど間違いじゃないんじゃね
むしろ”闘技場”に驚いたわ
region, zone, arena, areaと呼ばれると書いてあるし言うほど間違いじゃないんじゃね
むしろ”闘技場”に驚いたわ
506デフォルトの名無しさん
2024/08/30(金) 01:40:41.30ID:1MZVdBLH 両方あるんか
arenaは知ってたけどareaでも意味通じるから迷ってた
arenaは知ってたけどareaでも意味通じるから迷ってた
507デフォルトの名無しさん
2024/08/30(金) 02:21:05.28ID:71k4+v+4 areaだと一般用語の~エリアと曖昧になりやすいせいかarenaと呼ばれることが多いかな
特にRustではその手の各種クレートはxxx-arenaと名付けられているね
そのため「そこはアリーナ系を使おう」だけで話が通じると思う
特にRustではその手の各種クレートはxxx-arenaと名付けられているね
そのため「そこはアリーナ系を使おう」だけで話が通じると思う
508デフォルトの名無しさん
2024/08/30(金) 13:24:19.84ID:742oYIEC509デフォルトの名無しさん
2024/08/30(金) 14:03:33.10ID:00JO0I50 高階トレイト教会
510デフォルトの名無しさん
2024/08/30(金) 18:16:40.82ID:FuTFI1jb https://japan.zdnet.com/article/35223295/2/
> LinuxへのRust言語の導入の話になると、Torvalds氏は採用のペースが上がらないことに失望感を示した。
> 「更新が思ったほど速く進んでいないが、問題の一端は、昔からのカーネル開発者が『C』に慣れていて、Rustを知らないことにある。彼らは、ある面で大きく異なる新しい言語を学ばなければならないことを、あまり歓迎していない。そのため、Rustに関しては多少の反発がある」
> LinuxへのRust言語の導入の話になると、Torvalds氏は採用のペースが上がらないことに失望感を示した。
> 「更新が思ったほど速く進んでいないが、問題の一端は、昔からのカーネル開発者が『C』に慣れていて、Rustを知らないことにある。彼らは、ある面で大きく異なる新しい言語を学ばなければならないことを、あまり歓迎していない。そのため、Rustに関しては多少の反発がある」
511デフォルトの名無しさん
2024/08/30(金) 18:18:32.29ID:vU8F7vBm まあ既存のエンジニアにRust学ばせるんじゃなくRustやりたいってヤツが実績積んで参加すべきだわな
512デフォルトの名無しさん
2024/08/30(金) 18:22:28.02ID:JuI4pVFu 昔ながらのカーネル開発者は賢いからCで良いんだよな
新参のCまともに書けないバカがカーネルにいっちょ噛みするためにRust推してみたけど、本人はRustわかる程度の知能はあるがカーネル理解できる程の知能はないからカーネル周り書けず、他人にRust勉強しろと喚くことしか出来ない
新参のCまともに書けないバカがカーネルにいっちょ噛みするためにRust推してみたけど、本人はRustわかる程度の知能はあるがカーネル理解できる程の知能はないからカーネル周り書けず、他人にRust勉強しろと喚くことしか出来ない
513デフォルトの名無しさん
2024/08/30(金) 18:27:03.74ID:r5yUcnGF C++の苦痛を経験しないと有難みがわからないのがRustだからな。linuxカーネルがC++を採用していたらすんなり移行してたかも
514デフォルトの名無しさん
2024/08/30(金) 18:42:19.31ID:vU8F7vBm C++なんてバグの温床だから採用しないのは正解
515デフォルトの名無しさん
2024/08/30(金) 19:05:19.61ID:QrO3wi5D >昔ながらのカーネル開発者は賢いからCで良い
+1
+1
516デフォルトの名無しさん
2024/08/30(金) 19:08:04.69ID:QrO3wi5D >linuxカーネルがC++を採用していたらすんなり移行
これは絶対無い
むしろC**使われてるとRust化から遠ざかる
断言出来る
RustとC++の相性は最悪
これは絶対無い
むしろC**使われてるとRust化から遠ざかる
断言出来る
RustとC++の相性は最悪
517デフォルトの名無しさん
2024/08/30(金) 19:21:09.42ID:FuTFI1jb かつてC++をボロクソに叩いていたLinusが、何でRustを許したのかよくわからない
518デフォルトの名無しさん
2024/08/30(金) 19:35:01.93ID:00JO0I50 Rust for Linuxってout-of-treeカーネルモジュールをRustで書けるってだけでは?
それすらも思ったほど書く人がいなかったってことを言ってるんだろうか
それすらも思ったほど書く人がいなかったってことを言ってるんだろうか
519デフォルトの名無しさん
2024/08/30(金) 19:51:34.75ID:ePNDldoR いや書きたい人はたくさんいるし、実際書かれてるけどそれを本家に取り込む際にメンテナが拒否するって話
例えば
Rustドライバを書くための基盤となるユーティリティを追加したい → 実際のドライバで使われていないユーティリティは追加しない
ならドライバとユーティリティを一緒に追加したい → パッチが大きすぎるからレビューしない
みたいなのとか
この辺見ると実際にRustドライバの作者がカーネルメンテナの何に不満を持ってるかわかるよ
(この人はApple Silicon用のGPUドライバをRustで書いてる人)
https://vt.social/@lina/113045455229442533
例えば
Rustドライバを書くための基盤となるユーティリティを追加したい → 実際のドライバで使われていないユーティリティは追加しない
ならドライバとユーティリティを一緒に追加したい → パッチが大きすぎるからレビューしない
みたいなのとか
この辺見ると実際にRustドライバの作者がカーネルメンテナの何に不満を持ってるかわかるよ
(この人はApple Silicon用のGPUドライバをRustで書いてる人)
https://vt.social/@lina/113045455229442533
520デフォルトの名無しさん
2024/08/30(金) 20:29:51.47ID:J18stTwv >>510
糞言語ってことじゃねw
糞言語ってことじゃねw
521デフォルトの名無しさん
2024/08/30(金) 21:40:23.58ID:9WnxEAZW rustでファイルシステム扱うAPIを入れる活動に
メンテナから難癖つけられてうんざりしたので
下りるという人が出たらしいので
政治レイヤーで色々あるんだろうなあ
メンテナから難癖つけられてうんざりしたので
下りるという人が出たらしいので
政治レイヤーで色々あるんだろうなあ
522デフォルトの名無しさん
2024/08/30(金) 22:55:20.95ID:jcHw3qvA523デフォルトの名無しさん
2024/08/31(土) 03:26:17.69ID:bV8CK+h4 >>517
新しいものをなんでも否定していたら「老害」認定されるから、ここはちょっくら軟化しておこうかな、みたいな感じじゃね。
新しいものをなんでも否定していたら「老害」認定されるから、ここはちょっくら軟化しておこうかな、みたいな感じじゃね。
524デフォルトの名無しさん
2024/08/31(土) 04:29:19.80ID:TuWOabX/525デフォルトの名無しさん
2024/08/31(土) 06:58:45.77ID:sI0PgNnZ 信者が家主に対してやっている事はこれに近い
最近、水道企業団の職員や委託業者を装い、「水質や水道管の検査に来ました」などと言って高額な浄水器の購入や水道管の取替えなどをすすめられた、
水道管の調査と称して管が汚れているから水道水が危険と言って給水管清掃の契約をすすめられた。 などの事例もあります。
最近、水道企業団の職員や委託業者を装い、「水質や水道管の検査に来ました」などと言って高額な浄水器の購入や水道管の取替えなどをすすめられた、
水道管の調査と称して管が汚れているから水道水が危険と言って給水管清掃の契約をすすめられた。 などの事例もあります。
526デフォルトの名無しさん
2024/08/31(土) 08:04:20.66ID:/qocMB6l リーナス自身がRustで何か作って見せたら流れ変わるかもな
まあそんなことは無いんだろうけど
まあそんなことは無いんだろうけど
527デフォルトの名無しさん
2024/08/31(土) 08:34:49.06ID:RhJ/yuCQ Rust がどうこうというのを抜きにしてひとつのプロジェクトにいろんな言語が混在するのは面倒さが生じるというのはある。
Linux に乗ろうとするなら Linux の方針に従えというのは当然の判断だろう。
受け入れてしまったらメンテナンスしなきゃならんし、メンテナンスできないものを導入するのは問題だ。
あくまでも Rust の急進的導入をしたいというなら fork するくらいの気概を見せて欲しいところ。
Linux に乗ろうとするなら Linux の方針に従えというのは当然の判断だろう。
受け入れてしまったらメンテナンスしなきゃならんし、メンテナンスできないものを導入するのは問題だ。
あくまでも Rust の急進的導入をしたいというなら fork するくらいの気概を見せて欲しいところ。
528デフォルトの名無しさん
2024/08/31(土) 08:38:08.89ID:CwbqwO1Y >>527
既にRustのコードが入っている現実を無視して妄想が激しいな
既にRustのコードが入っている現実を無視して妄想が激しいな
529デフォルトの名無しさん
2024/08/31(土) 09:01:31.35ID:ppLeuuZs Rustのコード入れたくないまでならまだ分かるが
(Rustドライバ導入の前段階として)既存のサブシステムのバグを直したいと言ったら
今あるドライバではそのバグは踏んでないから直す必要なし、って言われたりしてるらしく
さすがに自分のCのコードのクオリティくらいちゃんと上げろよ、とは思う
(Rustドライバ導入の前段階として)既存のサブシステムのバグを直したいと言ったら
今あるドライバではそのバグは踏んでないから直す必要なし、って言われたりしてるらしく
さすがに自分のCのコードのクオリティくらいちゃんと上げろよ、とは思う
530デフォルトの名無しさん
2024/08/31(土) 09:13:30.90ID:TZjbwynp 考え方が違うんだよね
C/C++では現在のコードの使い方の範囲内では(ギリギリ)バグを回避できているので大丈夫と考える
そして後に機能追加や改修が入ったときにそのギリギリのところを踏んでしまって致命的バグが露呈する
このダメな考えな人がまだ多くいる
C/C++では現在のコードの使い方の範囲内では(ギリギリ)バグを回避できているので大丈夫と考える
そして後に機能追加や改修が入ったときにそのギリギリのところを踏んでしまって致命的バグが露呈する
このダメな考えな人がまだ多くいる
531デフォルトの名無しさん
2024/08/31(土) 09:22:22.01ID:oPSFGvVw RustほどC++と相性の悪い言語はないね。
C++との相性を考えるならNimの方が良い。
勘違いしないで欲しいんだがRustとCの相性はとても良い。
C++との相性を考えるならNimの方が良い。
勘違いしないで欲しいんだがRustとCの相性はとても良い。
532デフォルトの名無しさん
2024/08/31(土) 09:25:59.57ID:oPSFGvVw533デフォルトの名無しさん
2024/08/31(土) 09:27:58.78ID:oPSFGvVw534デフォルトの名無しさん
2024/08/31(土) 09:38:02.88ID:fX2PgVRG 各OSで脆弱性報告が無くならないのはなぜか?
思い込みの自信でプログラミングしていてバグを踏むからである
思い込みの自信でプログラミングしていてバグを踏むからである
535デフォルトの名無しさん
2024/08/31(土) 09:42:22.13ID:siamFKDm FFIがそもそもCのAPI以外が難しい
C#やGoでも他言語の呼び出しはCのAPIを通すのが一般的で、メソッドをもったクラスや構造体、抽象的なインタフェースなどを言語間で翻訳できるものはあまりない
(C++とPythonを連携させるpybind11や、RustとPythonを連携させるPyO3などはうまくやってる例)
そういう点でC++と相性の良いものってだいぶ限られると思う
C APIを通すならどの言語からでも呼べるけど、C++のAPIを翻訳するには言語あるいはライブラリによるサポートが必要
C#やGoでも他言語の呼び出しはCのAPIを通すのが一般的で、メソッドをもったクラスや構造体、抽象的なインタフェースなどを言語間で翻訳できるものはあまりない
(C++とPythonを連携させるpybind11や、RustとPythonを連携させるPyO3などはうまくやってる例)
そういう点でC++と相性の良いものってだいぶ限られると思う
C APIを通すならどの言語からでも呼べるけど、C++のAPIを翻訳するには言語あるいはライブラリによるサポートが必要
536デフォルトの名無しさん
2024/08/31(土) 09:57:33.39ID:siamFKDm 「RustとC++は相性が悪い」というよりも「C++と相性が良いのはNimなどに限られる」という感じじゃないかと思う
そういやC++の後継を目指してたCarbonってどうなってるんだろ
そういやC++の後継を目指してたCarbonってどうなってるんだろ
537デフォルトの名無しさん
2024/08/31(土) 10:01:46.87ID:gxBoDZic Nimのような弱小言語を使う人は今後も極少数に限られるから意味がないよな
538デフォルトの名無しさん
2024/08/31(土) 10:04:38.88ID:IaoAItNz C++のメモリ管理とNimのメモリ管理はは全く異なっている
相性がいいなんて話はまやかし
相性がいいなんて話はまやかし
539デフォルトの名無しさん
2024/08/31(土) 10:08:52.28ID:oPSFGvVw >RustとPythonを連携させるPyO3
これはC++要素無いだろ
これはC++要素無いだろ
540デフォルトの名無しさん
2024/08/31(土) 10:28:40.41ID:siamFKDm >>539
C++に限った話ではなく、クラスやメソッドといった概念を異なる言語間 (ここではRustとPython) でうまく翻訳できてる例として書いた
他だと、例えばC#とRustを連携させる csbindgen はFFIをしやすくはしてくれるけど、メソッド付きのクラスなどは作れずAPIはほぼCになるといった感じ
C++に限った話ではなく、クラスやメソッドといった概念を異なる言語間 (ここではRustとPython) でうまく翻訳できてる例として書いた
他だと、例えばC#とRustを連携させる csbindgen はFFIをしやすくはしてくれるけど、メソッド付きのクラスなどは作れずAPIはほぼCになるといった感じ
541デフォルトの名無しさん
2024/08/31(土) 10:40:19.97ID:lPS1m7oR >>530
まだ顕在化していないものに対してあれこれ考えるのは
難しいことができる「才能」とは違った「センス」が必要なんだよね
そして学校でも企業でも才能で判断することはやっているけど
センスに関しては無頓着というか、センスに気づくにもセンスが要るということで
そもそもそういうものがあることを分かっていない人が多い
まだ顕在化していないものに対してあれこれ考えるのは
難しいことができる「才能」とは違った「センス」が必要なんだよね
そして学校でも企業でも才能で判断することはやっているけど
センスに関しては無頓着というか、センスに気づくにもセンスが要るということで
そもそもそういうものがあることを分かっていない人が多い
542デフォルトの名無しさん
2024/08/31(土) 11:37:38.42ID:oPSFGvVw543デフォルトの名無しさん
2024/08/31(土) 12:39:33.76ID:e6lCluh3 カーネルメンテナーの中にはここにいるような
rust信者は死ねとか思ってる人いるんやろ
rust信者は死ねとか思ってる人いるんやろ
544デフォルトの名無しさん
2024/08/31(土) 12:42:56.23ID:oPSFGvVw RustがC++と相性が良いと思ってる(だけじゃなくてそう喚き散らしてる)Rust信者は死ねば良いよ
545デフォルトの名無しさん
2024/08/31(土) 13:15:38.97ID:siamFKDm >>542
中身のない否定じゃなくて役に立つこと書いて
PyO3も内部的にはPythonのC APIを通してFFIしてることは分かってる
それをライブラリ側で抽象化してRustのメソッド付きの型をPythonのオブジェクトに返還してるので、そこそこうまく翻訳できてると言って良いんじゃない?
中身のない否定じゃなくて役に立つこと書いて
PyO3も内部的にはPythonのC APIを通してFFIしてることは分かってる
それをライブラリ側で抽象化してRustのメソッド付きの型をPythonのオブジェクトに返還してるので、そこそこうまく翻訳できてると言って良いんじゃない?
546デフォルトの名無しさん
2024/08/31(土) 14:19:45.17ID:v65y/3af カーネルデベロッパはRustよりZigが好きだと思うよ
ZigこそCの置き換えを担う
RustはC++の置き換えとして役割を全うしてくれ
ZigこそCの置き換えを担う
RustはC++の置き換えとして役割を全うしてくれ
547デフォルトの名無しさん
2024/08/31(土) 14:34:53.19ID:69SUV3M5 企業や国防総省や各ソフトウェアプロジェクト等が解決したい、人間の手に依らない、様々な安全性の保証を、Zigは解決しないことが、企業スポンサーの量質や、政府による支持の差となっています。
548デフォルトの名無しさん
2024/08/31(土) 16:51:39.82ID:fbG74reB 言語一決定戦
549デフォルトの名無しさん
2024/08/31(土) 18:46:49.67ID:siamFKDm Rustのライブラリまわりの現況ってどう思ってる?
プロジェクトでライブラリを使うと、他の言語に比べて依存ライブラリが多くなりがち&1.0未満のライブラリが多いな気がしてるけど、みんな気にしないもの?
プロジェクトでライブラリを使うと、他の言語に比べて依存ライブラリが多くなりがち&1.0未満のライブラリが多いな気がしてるけど、みんな気にしないもの?
550デフォルトの名無しさん
2024/08/31(土) 19:46:25.63ID:E1cdB3xT >RustはC++の置き換えとして
まだこんなこと言ってる馬鹿がいるのか
まだこんなこと言ってる馬鹿がいるのか
551デフォルトの名無しさん
2024/08/31(土) 19:47:21.29ID:E1cdB3xT >>549
cratesは破綻してる
cratesは破綻してる
552デフォルトの名無しさん
2024/08/31(土) 20:11:59.68ID:Or5Sc8N3 >>549
考え方を180度変えるとわかりやすい
クレートは可能ならば小さければ小さいほど良い
並行してコンパイルできるメリットがあるだけでなく
重複コードもなるべく無くせるメリットもある
特にunsafeを含む基礎的な汎用な機能の場合に
大きなライブラリにその同じ機能を持つコードが各々に別々に入ると
unsafeの監視も各々で個別に無駄に重複して行う必要となってしまう
この点でも小さく分けたほうが望ましい
考え方を180度変えるとわかりやすい
クレートは可能ならば小さければ小さいほど良い
並行してコンパイルできるメリットがあるだけでなく
重複コードもなるべく無くせるメリットもある
特にunsafeを含む基礎的な汎用な機能の場合に
大きなライブラリにその同じ機能を持つコードが各々に別々に入ると
unsafeの監視も各々で個別に無駄に重複して行う必要となってしまう
この点でも小さく分けたほうが望ましい
553デフォルトの名無しさん
2024/08/31(土) 20:44:50.30ID:S/IPQmeQ メンテナンスコストは増えると思う
Outdatedになってないかチェックしたり、ライブラリ間の依存のせいでバージョン上げられなかったり
Outdatedになってないかチェックしたり、ライブラリ間の依存のせいでバージョン上げられなかったり
554デフォルトの名無しさん
2024/08/31(土) 20:53:33.20ID:LXO9pQJ0 え、ここそのレベルの方々だったんだ…
ドン引き
ドン引き
555デフォルトの名無しさん
2024/08/31(土) 21:35:41.49ID:aMsyxey6556デフォルトの名無しさん
2024/09/01(日) 10:01:28.26ID:ydrH9psJ 依存の数ならRustは多い方じゃない?
tokioあたりを入れるとそれだけで数十のライブラリに依存するし
Goは知らないけど、Pythonはそこまで多くならないと思う
JSも依存が多くなりがちで、依存パッケージに脆弱性やマルウェアが仕込まれることが時折問題になってるけど、Rust界隈だとその辺りの問題はどう認識されてるのかなと思った次第です
tokioあたりを入れるとそれだけで数十のライブラリに依存するし
Goは知らないけど、Pythonはそこまで多くならないと思う
JSも依存が多くなりがちで、依存パッケージに脆弱性やマルウェアが仕込まれることが時折問題になってるけど、Rust界隈だとその辺りの問題はどう認識されてるのかなと思った次第です
557デフォルトの名無しさん
2024/09/01(日) 10:17:26.39ID:zf7mJz3x breaking change と semver violation の話じゃないかなぁ < メンテナンスコスト
今はツールができて 少しはましとはいえ
メチャクチャ難しい
今はツールができて 少しはましとはいえ
メチャクチャ難しい
558デフォルトの名無しさん
2024/09/01(日) 10:30:23.05ID:kOiIMmbX 数個〜20個程度の依存と100〜200個の依存と同じわけないじゃん
それに鉄板ライブラリと考えられてたものでも2〜3年するとメンテ状況が怪しくなったり無駄な破壊的変更がされたりするのが結構あるから他の言語と比べるとはるかに手間がかかるよ
現段階ではRustの最大の弱点
弱点以上にメリットを見出せないなら本格的に使うのはお勧めしない
それに鉄板ライブラリと考えられてたものでも2〜3年するとメンテ状況が怪しくなったり無駄な破壊的変更がされたりするのが結構あるから他の言語と比べるとはるかに手間がかかるよ
現段階ではRustの最大の弱点
弱点以上にメリットを見出せないなら本格的に使うのはお勧めしない
559デフォルトの名無しさん
2024/09/01(日) 10:34:17.81ID:t3ZzK7/4 実体験として、PythonやDartでは依存関係地獄にハマって解決に苦労したことあるけど
Rustは今のところないな
Rustは今のところないな
560デフォルトの名無しさん
2024/09/01(日) 10:48:37.08ID:+SJIq2Go >>558
その説明だとnodejsなんか使い物にならないのでは
その説明だとnodejsなんか使い物にならないのでは
561デフォルトの名無しさん
2024/09/01(日) 10:50:08.09ID:F+GfMvv5 chronoなんかも未だに1.0未満だし2年ほどメンテナンス停止にしてたことがあるしな (今は再開してる)
時刻やタイムゾーンを扱いたい場面は多いだろうから、こういうのは安定化または標準ライブラリでサポートして欲しいとは思う
時刻やタイムゾーンを扱いたい場面は多いだろうから、こういうのは安定化または標準ライブラリでサポートして欲しいとは思う
562デフォルトの名無しさん
2024/09/01(日) 11:09:10.42ID:AB63LC10 別に致命的な脆弱性でもなければ無理に上げる必要もないしな
普段はdependabotに自動で上げさせといて、
破壊的変更があるやつは年1回くらいで追従する感じにしてるけど
特に手間と思ったこともないな
普段はdependabotに自動で上げさせといて、
破壊的変更があるやつは年1回くらいで追従する感じにしてるけど
特に手間と思ったこともないな
563デフォルトの名無しさん
2024/09/01(日) 11:20:43.92ID:JCWqhatm >>561
バージョン番号1.0未満かどうかという表面上のどうでもいい問題にこだわるのはおかしい
chronoのようなほとんどのプログラムで使われない機能を標準ライブラリに入れようという提案は感覚が変
あとRustで安定化とはstableかexperimentalかの区別でstableになることだよね
バージョン番号1.0未満かどうかという表面上のどうでもいい問題にこだわるのはおかしい
chronoのようなほとんどのプログラムで使われない機能を標準ライブラリに入れようという提案は感覚が変
あとRustで安定化とはstableかexperimentalかの区別でstableになることだよね
564デフォルトの名無しさん
2024/09/01(日) 11:30:01.13ID:mI2+lAFs 表面上って…
565デフォルトの名無しさん
2024/09/01(日) 11:33:21.84ID:F+GfMvv5 APIの破壊的変更を今後行う可能性があるかの表明にはなるだろ
1.0であれば、少なくともメジャーバージョンが変わらないうちは後方互換性を維持するという意思表示になる
仕組みで防いでるわけではないし、「共通認識としてそう受け取られる」という話には過ぎないけど
1.0であれば、少なくともメジャーバージョンが変わらないうちは後方互換性を維持するという意思表示になる
仕組みで防いでるわけではないし、「共通認識としてそう受け取られる」という話には過ぎないけど
566デフォルトの名無しさん
2024/09/01(日) 11:50:19.16ID:wKqEGZJE >chronoのようなほとんどのプログラムで使われない機能を
こんなこと書くやつは何書いても信用度ゼロ
”偽情報注意!”ってやつだな
こんなこと書くやつは何書いても信用度ゼロ
”偽情報注意!”ってやつだな
567デフォルトの名無しさん
2024/09/01(日) 12:08:43.54ID:cwes3csq chronoなんて日時を扱わない限り使うことないだろ
特定の分野だと必須だろうが
Rustが使われる分野は広いからね
特定の分野だと必須だろうが
Rustが使われる分野は広いからね
568デフォルトの名無しさん
2024/09/01(日) 12:21:28.53ID:Coh3zEx3 >>565
いや、ならんでしょ
結局破壊的変更があれば2.0になるわけで、実際5.0とか10.0みたいなのもあるし
まぁこの作者が1.0を宣言するんならもう十分安定してるんだろう、みたいなのはあるけどな
そういう背景情報なしなら1.0と0.1の違いは特にないと思うよ
いや、ならんでしょ
結局破壊的変更があれば2.0になるわけで、実際5.0とか10.0みたいなのもあるし
まぁこの作者が1.0を宣言するんならもう十分安定してるんだろう、みたいなのはあるけどな
そういう背景情報なしなら1.0と0.1の違いは特にないと思うよ
569デフォルトの名無しさん
2024/09/01(日) 12:26:37.18ID:ySw/MmvM バージョン0.x.yは cargo tree | grep v0 で確認できて
大量の基盤ライブラリが見つかるけどそれで困ったことはないな
>>565
そういう守るべきマナーとしては
0.x指定しておけば破壊的変更はないとされているので大丈夫
クレイトを作ってる側は破壊的変更があればx←x+1と上げるため
大量の基盤ライブラリが見つかるけどそれで困ったことはないな
>>565
そういう守るべきマナーとしては
0.x指定しておけば破壊的変更はないとされているので大丈夫
クレイトを作ってる側は破壊的変更があればx←x+1と上げるため
570デフォルトの名無しさん
2024/09/01(日) 12:51:19.19ID:wKqEGZJE >>567
chronoとtimeを合わせたダウンロード数見てみ
トップ10レベルだから
regexやserdeやrandやclapよりもずっと多い
君が書いた内容は
「regexなんて正規表現を扱わない限り使うことないだろ
特定の分野だと必須だろうが
Rustが使われる分野は広いからね」
とか
「serdeなんてシリアライズ/デシリアライズしない限り使うことないだろ
特定の分野だと必須だろうが
Rustが使われる分野は広いからね」
とかと同じレベル
どのくらい馬鹿なこと書いたかわかったかな?
chronoとtimeを合わせたダウンロード数見てみ
トップ10レベルだから
regexやserdeやrandやclapよりもずっと多い
君が書いた内容は
「regexなんて正規表現を扱わない限り使うことないだろ
特定の分野だと必須だろうが
Rustが使われる分野は広いからね」
とか
「serdeなんてシリアライズ/デシリアライズしない限り使うことないだろ
特定の分野だと必須だろうが
Rustが使われる分野は広いからね」
とかと同じレベル
どのくらい馬鹿なこと書いたかわかったかな?
571デフォルトの名無しさん
2024/09/01(日) 12:57:25.84ID:y1BosOiy Linusのリンク貼ってた人いたけどそこにも描いてある
バージョン番号に意味は無い
と
バージョン番号に意味は無い
と
572デフォルトの名無しさん
2024/09/01(日) 13:02:17.26ID:y1BosOiy573デフォルトの名無しさん
2024/09/01(日) 13:06:30.98ID:y1BosOiy574デフォルトの名無しさん
2024/09/01(日) 13:13:51.37ID:ydrH9psJ >>571
それは自分のプロジェクト (Linux) におけるバージョン番号の意味を述べてるもので、ソフトウェアライブラリ一般を指して言ったものではなくない?
それは自分のプロジェクト (Linux) におけるバージョン番号の意味を述べてるもので、ソフトウェアライブラリ一般を指して言ったものではなくない?
575デフォルトの名無しさん
2024/09/01(日) 13:26:50.54ID:t3ZzK7/4 v2.0が出た後も末永くv1.xブランチでメンテされ続けるなら意味あるけど
そんなの全く期待できないよね
そんなの全く期待できないよね
576デフォルトの名無しさん
2024/09/01(日) 13:29:19.13ID:ydrH9psJ 乱数生成ですら外部クレートが必要になるんだから、そういう言語なんだと割り切ってはいるけど
577デフォルトの名無しさん
2024/09/01(日) 13:34:18.52ID:NN/ZIFle >>573
インターフェイスの互換性はある程度は機械的検証が出来るかもしれないけど挙動の互換性まで検証するのは非現実的だろ。
バグで制約が緩かったのを修正した (ドキュメント通りに使っていれば問題ない) みたいなケースだと機械的には非互換に見えることもあるだろうし。
そこらへんは使う側でバージョンの固定をするしか仕方ない。
いや、もちろん仕組みを構築できるならそのほうがいいよ。 でも、出来ないだろ? って話でさ。
インターフェイスの互換性はある程度は機械的検証が出来るかもしれないけど挙動の互換性まで検証するのは非現実的だろ。
バグで制約が緩かったのを修正した (ドキュメント通りに使っていれば問題ない) みたいなケースだと機械的には非互換に見えることもあるだろうし。
そこらへんは使う側でバージョンの固定をするしか仕方ない。
いや、もちろん仕組みを構築できるならそのほうがいいよ。 でも、出来ないだろ? って話でさ。
578デフォルトの名無しさん
2024/09/01(日) 13:57:51.22ID:N2jhi4ch >>576
Rustの標準ライブラリにランダムあるよ
HashMapなどのデフォルトハッシュで使われてるのご存知でしょ
use std::hash::{BuildHasher, RandomState};
let random_seed = RandomState::new().hash_one(0_u64);
Rustの標準ライブラリにランダムあるよ
HashMapなどのデフォルトハッシュで使われてるのご存知でしょ
use std::hash::{BuildHasher, RandomState};
let random_seed = RandomState::new().hash_one(0_u64);
579デフォルトの名無しさん
2024/09/01(日) 14:22:12.72ID:MnUgJTxK >>576
playgorund とか paiza とかで use crate 出来ないのがあると面倒やね
playgorund とか paiza とかで use crate 出来ないのがあると面倒やね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【日本大使館】中国在留邦人は安全確保を [ぐれ★]
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★10 [ぐれ★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 東京株式市場 インバウンド関連株が下落 中国政府の渡航自粛要請で [バイト歴50年★]
- ニートしかいない時間ってマジでつまんないよな
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- 愛子、初の公式外国訪問でラオスに 日本の象徴一家を名乗るならジャップロリペド買春男どもの謝罪と賠償してこい [377482965]
- 千速は誰とのカップリングがエロいのか
- 高市コイン、155円突破wwwwwwwwww [246620176]
- おじゃる丸をまったり待機するスレ🏡
