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/12/28(木) 12:35:25.46ID:N5v1piyg
>>708
なるほどな、「『俺は』信頼できない」か
「信頼できる」と呼ぶに値する主観的絶対的基準があるんだな
それが何かは明文化できる?
2023/12/28(木) 12:35:38.49ID:ySYWG+kx
お前まともにRust使ったことないだろう
なんでこのスレにいるの?
2023/12/28(木) 12:39:55.64ID:9fQ265/7
仕様の安定度を知りたいなら1.0未満かどうかなんてゴミのような基準使わなくても他にいくらでもマシな方法があるだろうに
712デフォルトの名無しさん
垢版 |
2023/12/28(木) 12:43:17.71ID:PHYdezLP
>>709
「俺は」は「書いた」にかかっている
複数通りの解釈が可能な文書を書いたことを謹んでお詫び申し上げる
2023/12/28(木) 12:46:56.09ID:N5v1piyg
>>712
なら要旨は変わらないよ
絶対的信頼などない

せいぜいcargo-crevでも参考にするがいい
https://web.crev.dev/rust-reviews/
714デフォルトの名無しさん
垢版 |
2023/12/28(木) 12:49:05.73ID:PHYdezLP
>>713
絶対的な信頼が可能なものなど存在しないのが当たり前なので俺はこれまで話題にも上げなかったが、どうしてもその話をしたいようなので、そんなものはないという点については当たり前のこととして同意することをここに記す
2023/12/28(木) 12:50:06.29ID:3VbosFG3
ほんとにどうでもいい話だったな
2023/12/28(木) 12:52:12.25ID:DH0jKNBE
最近のMicrosoftやApple、Googleなんて安定しているとはいいがたく商用でも責任なんて取らないがみんな使っている
717デフォルトの名無しさん
垢版 |
2023/12/28(木) 14:56:05.00ID:PHYdezLP
ほんとうにどうでも良い話だったな
俺に噛みついてきた人間、逆裏対偶理解していない数IA未履修者と、わざわざ1.0未満で止めているものを勝手に信頼し始めるやべー奴しかいなかった
2023/12/28(木) 15:03:10.32ID:13cJB/jM
やっぱりワッチョイは必要だという結論しか出て来ない
ワッチョイ無しは荒らしに構うから伸びてるだけだわ……
2023/12/28(木) 15:54:11.64ID:uitX+xsl
>>718
必要な人はこちらへ住み分け

プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
2023/12/28(木) 17:10:51.72ID:QN4uwoNP
>>717
清々しいほどの負け犬の遠吠えだな
クスッと笑えたので㌧クスッと
721デフォルトの名無しさん
垢版 |
2023/12/28(木) 20:36:54.93ID:JQwnhIVp
>>679
あなたがたまたまそうだっただけ
はい、光の速さで論破
2023/12/29(金) 08:33:17.51ID:CCwb5Mxd
バージョン0.9は「信頼してはいけない」という解釈が可能
複数通りの解釈を発生させた戦犯は謝罪するべきという解釈も可能
2023/12/29(金) 08:38:26.10ID:sHM61QvB
0.1.234 みたいにパッチバージョン爆発させてる OSS は継続性という点でわりと信頼感がある。
2023/12/29(金) 09:12:11.91ID:a+GKJrq8
たしかに234.0.0と0.1.234なら1.0未満とはいえ後者のほうがいいな
2023/12/29(金) 09:59:51.90ID:CCwb5Mxd
セマンティックだから1通り以上の解釈がある
無意味かつ無リスクな数字にすれば0通り
2023/12/29(金) 10:19:20.55ID:DHnfEKbi
>バージョン0.9は「信頼してはいけない」という解釈が可能
じゃ0.10にすればいいんですねww
2023/12/29(金) 10:25:18.94ID:f2oltWq4
>>723
誰もがお行儀良くone by oneでincrementしてるとは限らないよ
2023/12/29(金) 10:30:28.27ID:CUdroGt9
ライブラリを選ぶときは過去にリリースしたバージョン数、期間、頻度、メンテナンス状況、リリースノートの内容、ドキュメントの内容、Dependencies、Dependentsあたりの基本的項目くらいはみんな確認するよね?

バージョン番号だけで評価しようとする意味がわからない
2023/12/29(金) 10:36:02.78ID:0cvltfsQ
>>728
「だけで」と言ってるやつはいないよ。
その上でバージョンナンバー自体に対してはこういう基準で見るというのが現在のトピック。
730デフォルトの名無しさん
垢版 |
2023/12/29(金) 11:52:32.00ID:fWvRNSV1
急に「だけで」みたいな条件を脳内補完し始める人間、数IA未履修者っぽい気配がする
2023/12/29(金) 11:57:48.80ID:gPoT6KCM
>>728
むしろ採用クレート比較の際にバージョン番号で判断したことはない
それらの項目に加えてダウンロード数とその変化も見る
2023/12/29(金) 12:12:05.81ID:PikwmNJc
番号見てあれこれ想像してないで受け入れテスト書けよ
2023/12/29(金) 12:18:04.06ID:pF6WWzLY
>>732
ほんとそれ
あちこちに直接組み込んだら
別ライブラリ使いたいの度に全部書き直しやんけ

自前のちょっとしたラッパー書いて
同プロジェクトから呼ぶときはラッパー通せば良くね?

一度バージョン上げてみてテスト通らないので、時間出来るまで見送りですねーってやれば終わり
734デフォルトの名無しさん
垢版 |
2023/12/29(金) 12:42:41.12ID:1/HEfF20
ちょっとH2とH2に依存しているライブラリの使っている機能全てのラッパー書いてラッパーのメンテナンスしてくれる人いるー?

できれば別ライブラリ使いたくなった時も対応してくれるいいなー
2023/12/29(金) 12:45:01.14ID:gPoT6KCM
>>733
破壊的変更があるバージョンへと上げる必要はない
セキュリティ問題への対応のためバージョンアップが必要、かつ、破壊的変更バージョンしかない、という状況は極めて稀
稀な状況のみ追随すればよい
2023/12/29(金) 13:03:50.04ID:ymW7FjRY
>>735
セマンティクバージョンの話なんだからそれは当たり前やろ
マイナーやパッチの場合の判断や
2023/12/29(金) 13:50:41.57ID:CCwb5Mxd
標準ライブラリのたぐいを自作ライブラリでラップするのは
自己肯定感というか個人主義の成功体験がないと難しいんじゃないか
2023/12/29(金) 14:08:03.03ID:5mnDPveJ
ぽまいらGRUBも使ってなかったの?
あれなんかあんな便利なのにずーっと0.9だったでしょ
あんなに人類に役立つソフトなかなかないで
2023/12/29(金) 14:12:05.35ID:gPoT6KCM
ラップすることは本質ではなくただ単にラップするのは本末転倒
抽象化のために自分側の関数をそれぞれ作ってその中に外部ライブラリを閉じ込めるのが一般的
結果的にラップの一形態となっているにすぎない
740デフォルトの名無しさん
垢版 |
2023/12/29(金) 14:12:37.90ID:Y5pppiMt
GRUBの仕様が変わったら面倒って状態になったことないので流石に別の話では
2023/12/29(金) 16:21:20.54ID:GcW4fAIp
>>731
だよな
それが常識的な考え

バージョン番号から勝手な推測をしたところで
他から得られる情報ですべて上書きされるだけだからライブラリ選択においては全く意味がない
2023/12/29(金) 16:40:37.66ID:fjXA5V8+
>>729
>「だけで」と言ってるやつはいないよ。
「だけで」と言ってるやつはいないけど「だけで」判断してるマヌケはいるよね?
まぁほぼ君だけなんだけどさ↓

「メジャーバージョンが0のライブラリなんて怖くてよう使わん」
「0.9で止めるみたいな、特に新機能付けるわけでもないけどfixする気もありません。好きな時に変えたいですみたいなのはサポートとは程遠い」
「1.0を超えてないのは問題外」
「1.0に上げていないライブラリを安定してて信頼できるものとして使うユーザーがいたら「ちょっと待って」って思うだろ」
「1.0になってないものを勝手に信頼するな」
「わざわざ1.0未満で止めているものを勝手に信頼し始めるやべー奴しかいなかった」
2023/12/29(金) 18:22:07.42ID:v1Foeynd
確かにどう見てもバージョンナンバーだけで判断してるな
744デフォルトの名無しさん
垢版 |
2023/12/29(金) 19:11:58.37ID:fWvRNSV1
俺が書いた内容がID透視によって別の人の書き込み扱いになっていて笑っちゃった
ごめんよ>>729

それはそうと、>>742>>743も裏と対偶の区別がついていない中卒の主張かな?
「バージョン1未満」と「信頼出来る」でベン図を書いてみて、俺の主著の領域と「バージョンだけで判断」の領域に色をつけてみて欲しい
745デフォルトの名無しさん
垢版 |
2023/12/29(金) 19:28:31.50ID:fWvRNSV1
ああ、それとも「仕様が安定していて信頼出来る」と「あるプロダクトの依存として採用する」の方が良いかな
2023/12/29(金) 19:32:39.94ID:0cvltfsQ
関連しそうなクレートを全て精査するのは無理なんだから分かりやすい基準で足切りラインを設定するのは普通の処置なんじゃないの。
それがバージョンナンバーでも作者でもダウンロード数でもいいけど、バージョンナンバーでマシそうなのを選出してから細かい絞り混みをするのはそんなに不自然なこととは思わないけどな。
クレートを使う側の選出では偽陰性が増えてでも疑陽性が少ないほうが絞り混みやすいわけだし。
2023/12/29(金) 20:54:47.18ID:CCwb5Mxd
ベン図も三角関数も
何の役に立つのかを分かりやすく示さなければ足切られる側なんだよな
2023/12/29(金) 21:21:00.48ID:qZkdUj+g
>>746
そこでバージョンナンバーを考慮することはない
例えば比較の片方が1.xでもう片方が0.3.xだとして何の判断材料にもならない
749デフォルトの名無しさん
垢版 |
2023/12/29(金) 21:52:37.44ID:fWvRNSV1
バージョンナンバーを考慮することはないって意見、同意はしないけど逆裏対偶みたいな基本的な誤りはないのでまあ分野によってはそうかもって感じ
俺も年単位でサポートする気がない書き捨てに近いプログラム書くときはそうだし
2023/12/29(金) 23:21:04.71ID:QVcmgKmp
バージョンおじさん見苦しい
2023/12/30(土) 00:00:54.19ID:xE8SJEDn
所有権の複製のときといっしょの流れになってない?w
しょーもないところで食い下がってゴールポスト動かして居座るやつ
752デフォルトの名無しさん
垢版 |
2023/12/30(土) 00:42:52.50ID:slhZof7h
対偶と裏の違いがわかってないから変なゴールポストを幻視してしまうのでは?
2023/12/30(土) 01:02:25.15ID:CdBdHENn
『「バージョン1未満」は「信頼出来ない」と判断しているが「バージョンだけで判断」していない』

複製オジさんもビックリしてそう
754デフォルトの名無しさん
垢版 |
2023/12/30(土) 01:56:09.99ID:slhZof7h
>>753
はい中卒
>>751
居座るというか、俺へのレスがあるからお返事書いてあげているだけなんだよな
どっちかというと召喚されている
2023/12/30(土) 04:10:17.11ID:+VY2mXpj
>>754
具体的にどのクレートをバージョンナンバーにより採用した採用しなかったのかを書きなさい
756デフォルトの名無しさん
垢版 |
2023/12/30(土) 04:20:00.71ID:slhZof7h
>>755
人にものを聞く態度か? それが?
「しなさい」とか言う奴に対してまともな返事を書く気はない
757デフォルトの名無しさん
垢版 |
2023/12/30(土) 04:25:37.61ID:slhZof7h
いやそれはそれと俺が選ばなかったライブラリの話、真面目に答えると結構ちゃんと選ばないと分野がバレるな
2023/12/30(土) 04:26:52.37ID:+VY2mXpj
>>756
一度も具体的な話を書けないエアプログラマーはこのスレから去れ
759デフォルトの名無しさん
垢版 |
2023/12/30(土) 04:56:11.37ID:slhZof7h
>>758
自分もそうだろ
ブーメラン得意か
760デフォルトの名無しさん
垢版 |
2023/12/30(土) 05:03:26.73ID:slhZof7h
不毛な話に返信している自覚はあるので、俺に言及する奴が消えたら俺も書かなくはなるんだよな
ID:+VY2mXpjが具体的な話をしてくれたらそっちに話題が移るんじゃないだろうか
2023/12/30(土) 05:10:37.63ID:+VY2mXpj
>>759
バージョンナンバーで選んだことはないためそんな具体例は当然ない
バージョンナンバーで選んでいるおまえが具体例を出せ
762デフォルトの名無しさん
垢版 |
2023/12/30(土) 05:19:08.00ID:slhZof7h
>>761
「出してください」な
763デフォルトの名無しさん
垢版 |
2023/12/30(土) 05:21:27.73ID:slhZof7h
まあちゃんと「出してください」って言われても俺の分野がバレない奴があったか悩ましいが
764デフォルトの名無しさん
垢版 |
2023/12/30(土) 05:28:06.55ID:slhZof7h
こういうのは具体的を出すということ自体が結構難しいんだよな
>>761が使っているライブラリでバージョンが1未満のものを上げるとかしてくれたら話が早い
2023/12/30(土) 06:29:39.39ID:GnED1sKw
Rust勉強中。アノテーション注釈が出てきたところで流行らない理由をなんとなく察する
ヌルポとメモリーリークを防げるから個人開発で使う分にはいいけど。会社で広める気にはならない
学習コスト高いわ
2023/12/30(土) 10:07:43.55ID:bcJEqtzR
async traitが安定化されてる!!!
https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html
2023/12/30(土) 10:32:04.21ID:QGv3PFfa
>>765
アノテーション注釈ってなんやねん
無駄にラーニング学習コスト費用高い資料読んでね?
768デフォルトの名無しさん
垢版 |
2023/12/30(土) 11:16:50.31ID:kCUZZSzY
>>765
ライフタイム注釈ってタイプしたつもりで全然ちがう文字を打ち込んでた
the bookを読んでるだけだよ。疲れてたんだ…
2023/12/30(土) 11:33:27.15ID:d4YZn3CY
the book はきついよね
2023/12/30(土) 11:41:42.24ID:scaDM36O
staticを自粛する言語はみんな高コスト
チェリーピッキングみたいに最高値の近辺だけが高いという指摘はうさんくさい
2023/12/30(土) 12:22:34.64ID:WjlNag1n
>>768
非公式翻訳版を読んでるだろ
あれで学習したやつは例外なく使えないのが出来上がるからやめとけよ
772デフォルトの名無しさん
垢版 |
2023/12/30(土) 18:18:48.80ID:Ycw4kjfb
>>759
自分が具体的なことを書いていないという指摘は否定しないw
2023/12/31(日) 05:11:31.11ID:15iRFp/+
>>765
ライフタイム注釈はたいてい一意に定まりその時は省略できるから面倒にならないよ
省略できず明示的にライフタイム注釈を指定しないといけない場合は
例えば複数の参照を受け取り参照を返す関数などでそれら参照間の関係を指定する
2023/12/31(日) 10:19:28.53ID:kd8WxVq5
>>765
>ヌルポとメモリーリークを防げるから
メモリリークは防げない
ヌルポとメモリリークが防げればいいだけならNull Safetyを備えたGC言語で十分
775デフォルトの名無しさん
垢版 |
2023/12/31(日) 10:35:21.39ID:NOiZF6ke
なまじライフタイムを省略できるせいでライフタイム未修得でも書けてしまう言語なので、いざライフタイム省略出来ない時が来た時に脳がバグる
2023/12/31(日) 11:15:14.55ID:sbs7ggSq
ライフタイムの記述は省略できることはあっても常にライフタイムを意識しながら書かなきゃいけない
それに省略できない場面にも日々遭遇するから「省略できるから面倒にならない」みたいな初心者釣りはやめた方がいい

暗黙的に意識しなきゃいけないC++に比べればある意味面倒ではないという程度
2023/12/31(日) 11:24:54.37ID:rKdc/qeD
マクロやFFIのようなやや高度な機能を除いた基本機能の中ではライフタイムが一番難しくて一番面倒
性能と引き換えに受け入れなければいけない面倒臭さ
778デフォルトの名無しさん
垢版 |
2023/12/31(日) 12:07:26.58ID:8Uv46fmp
ライフタイム意識しなくても良いと騙されて書き始めた人間のがライフタイムに恐れを抱いて迂回しながら書いた至る所でcloneして値渡するコード
2023/12/31(日) 13:31:13.38ID:K3mMRoqD
まあ C++ と比較するとおおよそ良くなってると思うが C++ で不都合なく寿命管理できる能力があるなら Rust でライフタイムを明記するのを面倒と感じることはあるだろうな。
人類は駄目なので実際には頻繁に問題を起こすという現実があるんだけどさ。 わかってても間違うのが人類。
2023/12/31(日) 13:50:46.98ID:PS1jMjj+
お金を賭ければ失敗することもあるけど賭けなければどうということはない
どっちも現実なんだけどリスク回避=現実逃避だと思ってるのが人類あるある
781デフォルトの名無しさん
垢版 |
2023/12/31(日) 14:00:16.32ID:8Uv46fmp
C++で不都合なく寿命管理出来る能力があったらライフタイム管理なんて数文字タイプが増えるだけになのでは
2023/12/31(日) 14:02:49.07ID:JAX3toXP
>>779
Rustで性能&安全性優位になるのは積極的にスタックに積んで参照使いまくった場合だろうけど、c++だとスマートポインタとアロケータで最適化しとけという話になるからなぁ。

どんくらい性能差あるのかわからん。
2023/12/31(日) 14:05:38.66ID:K3mMRoqD
>>781
出来ると思ってるが実際には出来てないって話さ
2023/12/31(日) 16:01:28.24ID:r3ulhjhy
もうRustじゃ無理なんだよ
2023/12/31(日) 17:31:22.31ID:15iRFp/+
>>784
Rustが有利という話の流れの中で唐突にRustが何か無理なことある?
2023/12/31(日) 18:02:32.92ID:K3mMRoqD
プログラミング出来ない人は本当に出来ない。
C++ を使えているくらいの人なら Rust を (良いと思うかどうかは別として) 真面目に学べば使いこなせるだろうけど、初心者が最初に学び始めるには全く向いてないなぁと思うくらいのハードルの高さはあると思う。
2023/12/31(日) 18:29:47.72ID:15iRFp/+
プログラミング出来ない人にRustはハードルが高いという主張か
2023/12/31(日) 19:12:47.61ID:SnRIdEnt
ゴミには何触らせてもゴミ
2023/12/31(日) 20:25:01.01ID:d6XbubcX
>>786
単に最近のスクリプト言語が簡単過ぎるだけだと思うけどね
ブイブイ言わせてる()モダンなスクリプト言語使いが
俺たちRustも書けるっしょwみたいなノリで挑戦して
書けなくて諦めるというのを何度も見てきた
本来プログラミングってのはこの程度は難しいものよ
2023/12/31(日) 20:41:56.95ID:Asz1BteV
Rustを書けず断念するような低レベルの人ならば
他の言語でもまともなプログラムは書けないと思うけどな
2023/12/31(日) 22:03:37.75ID:682wQwxe
バージョンおじさんの次はスクリプトコンプおじさんか
2023/12/31(日) 22:07:53.39ID:fB+p+szm
ライフタイムは関数に渡すときborrowするだけなら何も難しいことはないんだが型に参照を含めていろんな操作をしたり持ち回ったりし始めると複雑度が急上昇する
2023/12/31(日) 22:22:03.06ID:Asz1BteV
そこは同じ
型に含まれてる参照のライフタイムがその型にも付くだけ
2024/01/01(月) 00:50:09.76ID:X6Py91w/
あけましておめでとうございます
ライフタイム面倒なので捨ててstaticにしたいそんな貴方へ魔法の関数プレゼント!

fn to_static_str(input: &str) -> &'static str {
  input.to_owned().leak()
}
2024/01/01(月) 19:58:44.82ID:SMFNndU8
the book で勉強中だけど覚えること多いなあ
構文を覚えるだけで70時間はかかりそう
デザインパターンの勉強は必要なさそうだけど
実践投入するには読経も20時間分ぐらい必要だろうな
2024/01/01(月) 22:17:40.22ID:nmIunYxl
90時間でも約11日稼働ならオンボーディングで
極端に辛いというほどじゃなくね
2024/01/01(月) 22:29:17.37ID:pmJAVvpO
>>795
Rustの構文は諸言語のバリエーション範囲内でほとんど同じ
強力なパターンマッチングとその構文が新規なくらいですぐ習得できる
798デフォルトの名無しさん
垢版 |
2024/01/02(火) 00:14:27.39ID:SHn+5kOU
Rustの勉強が大変なら勉強なんかせんでええ
Copilotに書かせてコンパイル通ればOKや!
2024/01/02(火) 08:32:02.80ID:xTyEZXhx
copilot は予測変換の賢いやつって感じ。
個々の場面では思ったよりも賢くて使い物になるが全体を構成するのに人の思考がいらないほど、全部丸投げ出来るほどではない。
出来る人が楽をするツールであって、できない人が使ってもまともなものは作れない。
800デフォルトの名無しさん
垢版 |
2024/01/02(火) 22:18:53.42ID:3cCPTdjI
>>792
どっちかというとそういうもち回しによる複雑な操作するなってのがrustの思想だろ
2024/01/03(水) 00:45:56.91ID:cT5UAedN
他の言語の習慣を捨てないとなかなか実践できないと思う
しばらく使ってるとRust特有のプラクティスが見えてくるけど
802デフォルトの名無しさん
垢版 |
2024/01/03(水) 00:58:25.14ID:WEsHc8Hy
全体を構成する部分が問題になってRustにノータイムで移行できない人間が書くスクリプト言語で書かれたプログラム、読みたくなさすぎる
2024/01/03(水) 18:10:43.49ID:AJuUFyM+
VSCodeとrust-analyzerでrustを書いている人にちょっとお聞きしたいんだけど、
rustのコード補完で、必ずabc順になっちゃうんだけど
直前に使用したメソッドを優先的に上位に表示させることってできないの?
VSCodeのエディタの設定でrecently usedを設定してもabc順でしか表示さない
InteliJIdeaでは学習した結果、使用頻度の高いものを上位に表示してくれてたのに・・
804デフォルトの名無しさん
垢版 |
2024/01/03(水) 23:00:13.67ID:parSgmbo
質問の仕方が間違っているぞ
そういう時は「補完もまともに出来ないクソ言語」って言えば信者が頑張って探してくれる
2024/01/04(木) 17:30:55.33ID:mYBU2Jpa
InteliJでは出来てたって書いてあるの読めない人なのかな?
こういう人がテストケースとか書いてると思うと怖くてたまらんね
2024/01/04(木) 17:56:16.02ID:dLQyUrS8
>>804は頭の弱いRustアンチの人だから無視しとけ
2024/01/04(木) 18:21:30.81ID:mYBU2Jpa
ごめんよ
rustが難しくて理解できない可愛そうな人だったか
808デフォルトの名無しさん
垢版 |
2024/01/04(木) 19:32:15.16ID:lFo5UMLf
誰も問題解決出来てなくて草
マジで糞言語なのか?
VSCodeでもPythonなら出来るぞこれ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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