公式
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 part26
https://mevius.5ch.net/test/read.cgi/tech/1726838318/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
探検
Rust part27
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
2024/12/02(月) 22:32:50.31ID:D+1pIyvG886デフォルトの名無しさん
2025/03/22(土) 22:17:50.69ID:GMYQzWfO なんで許されてるのか分からない人物を思い浮かべてください
もしかして、お金の話をしてるからじゃないか?
もしかして、お金の話をしてるからじゃないか?
887デフォルトの名無しさん
2025/03/22(土) 22:49:39.83ID:g5MG8noC Goのほうが良い
888デフォルトの名無しさん
2025/03/22(土) 22:49:40.67ID:g5MG8noC Goのほうが良い
889デフォルトの名無しさん
2025/03/22(土) 23:13:07.51ID:2RmOfPx/ なんかpythonの話ししてる時に呼んでもないのに出てくるRubyの人みたい
890デフォルトの名無しさん
2025/03/22(土) 23:30:44.29ID:P6hXjgwK Goは適用範囲が狭すぎてね
そしてその分野もRustが代わりになれるから
そしてその分野もRustが代わりになれるから
891デフォルトの名無しさん
2025/03/22(土) 23:39:54.79ID:SJ3E9yt4 シングルバイナリで配布するなら、今でもGoの方が有利だろ
892デフォルトの名無しさん
2025/03/22(土) 23:51:36.52ID:FupbzmQ3893デフォルトの名無しさん
2025/03/22(土) 23:59:13.86ID:P6hXjgwK スタック領域を最も活用できるRustが一番有利だろうね
もちろんヒープ領域は返さない手がある
もちろんヒープ領域は返さない手がある
894デフォルトの名無しさん
2025/03/23(日) 00:19:54.96ID:Ft35v0Bz プログラマが充分に賢いと仮定できるときとそうでないときがある。
895デフォルトの名無しさん
2025/03/23(日) 02:37:14.92ID:FBKpXUl6 esbuildとswcを比べるといい
swcは少なくともesbuildの3〜5倍の開発工数がかかってる
にもかかわらず性能でも人気でも後発のesbuildに実質負けている
swcは少なくともesbuildの3〜5倍の開発工数がかかってる
にもかかわらず性能でも人気でも後発のesbuildに実質負けている
896デフォルトの名無しさん
2025/03/23(日) 04:01:40.19ID:fJAmg8F4 >>889
あれなんだろうな
あれなんだろうな
897デフォルトの名無しさん
2025/03/23(日) 08:06:03.43ID:E0tNSJV1 >>889
KENYA が Eust 使ってる姿が想像できないなω
KENYA が Eust 使ってる姿が想像できないなω
898デフォルトの名無しさん
2025/03/23(日) 11:30:47.99ID:7BeeA992899デフォルトの名無しさん
2025/03/23(日) 11:46:34.65ID:ucJr9566900デフォルトの名無しさん
2025/03/23(日) 12:05:46.10ID:dLW1UlJo それを言い始めたら、現実のプロジェクトであまり使われないのを無視して「Haskellは生産的」と主張し続けてる人と同じじゃないの
901デフォルトの名無しさん
2025/03/23(日) 12:16:32.87ID:hhiHggcP 何の制約もない理想的な世界ではRustが一番みたいな主張をするのは宗教だからね
現実を説いても無駄だよ
現実を説いても無駄だよ
902デフォルトの名無しさん
2025/03/23(日) 12:29:31.57ID:ucJr9566 ハスケルがどこで使われてるかは知らないが
Rustはネットインフラなど各所で使われてるからな
Rustはネットインフラなど各所で使われてるからな
903デフォルトの名無しさん
2025/03/23(日) 13:45:50.39ID:ILZgSc5B PrismaなんてRustからTypescriptに乗り換えてるからなぁ
904デフォルトの名無しさん
2025/03/23(日) 14:04:29.94ID:kax3x6iq まあ現実というか現時点でHaskellは実在しているので
自分は現実を説いていると思ってる人はじつは将来のHaskellについて説いているんだろう
自分は現実を説いていると思ってる人はじつは将来のHaskellについて説いているんだろう
905デフォルトの名無しさん
2025/03/23(日) 14:14:35.83ID:i3JV7Cin >>903
PrismはJavaScript/TypeScriptでのSQLのORMだよ
コアをRustで書いていたけどTypeScriptとの間でのデータのシリアル変換がオーバーヘッドなのでやめた
RustでなくC/C++でもGoでも何でも同じ話
PrismはJavaScript/TypeScriptでのSQLのORMだよ
コアをRustで書いていたけどTypeScriptとの間でのデータのシリアル変換がオーバーヘッドなのでやめた
RustでなくC/C++でもGoでも何でも同じ話
906デフォルトの名無しさん
2025/03/23(日) 14:19:18.42ID:Ft35v0Bz Haskell や ML 系は金融系で人気があるみたいな話だね。
そういう人は数理最適化とかの専門家で、アカデミック寄りの出自だったりするから言語もそういう系統になる。
そういう人は数理最適化とかの専門家で、アカデミック寄りの出自だったりするから言語もそういう系統になる。
907デフォルトの名無しさん
2025/03/23(日) 14:23:11.51ID:MPpv/Zn0 >>899
そうそう優秀な作者だからこそヘルスバーグやエヴァン・ウォレスはRustでも作ってみて自分の目で比較した上で敢えてGoを選んでるんだよな
そうそう優秀な作者だからこそヘルスバーグやエヴァン・ウォレスはRustでも作ってみて自分の目で比較した上で敢えてGoを選んでるんだよな
908デフォルトの名無しさん
2025/03/23(日) 14:29:01.82ID:i3JV7Cin 逆にオーバーヘッドよりも効果が上回るものも多い
そういうものはJS/TSのライブラリがRustやC/C++で書かれている
これはPythonのライブラリでも同じ
Goでそれらのライブラリを書かれることはない
そういうものはJS/TSのライブラリがRustやC/C++で書かれている
これはPythonのライブラリでも同じ
Goでそれらのライブラリを書かれることはない
909デフォルトの名無しさん
2025/03/23(日) 14:41:46.62ID:aJUotRkD >>907
頭悪そうな君には理解できなかったのかね
TypeScriptの型チェック&コンパイラの件は
①C#などのクラス依存言語はクラスベースで書かざるを得ないため元のTypeScriptコードとの相違が大きくなり今後もコードを合わせ保守していかなければならない特殊事情のため選べなかった
②RustやC++などはGC依存言語でないため元のTypeScriptコードとの相違が大きくなり今後もコードを合わせ保守していかなければならない特殊事情のため選べなかった
理解できない人は自分の言語にスレに戻りなさい
あるいはRustアンチスレへ行きなさい
ここはRustのためのスレです
頭悪そうな君には理解できなかったのかね
TypeScriptの型チェック&コンパイラの件は
①C#などのクラス依存言語はクラスベースで書かざるを得ないため元のTypeScriptコードとの相違が大きくなり今後もコードを合わせ保守していかなければならない特殊事情のため選べなかった
②RustやC++などはGC依存言語でないため元のTypeScriptコードとの相違が大きくなり今後もコードを合わせ保守していかなければならない特殊事情のため選べなかった
理解できない人は自分の言語にスレに戻りなさい
あるいはRustアンチスレへ行きなさい
ここはRustのためのスレです
910デフォルトの名無しさん
2025/03/23(日) 14:45:12.04ID:NxWV5kSB 工数が3倍以上かかっても数%の性能向上でペイできる分野ならいいんだけどね
大手クラウドベンダーのインフラ開発がまさにそれ
ペイできるどころかお釣りがじゃんじゃん来る
逆にそういう分野に該当しないtscgoとesbuildでは
費用対効果を考えてRustは選ばれなかったということ
大手クラウドベンダーのインフラ開発がまさにそれ
ペイできるどころかお釣りがじゃんじゃん来る
逆にそういう分野に該当しないtscgoとesbuildでは
費用対効果を考えてRustは選ばれなかったということ
911デフォルトの名無しさん
2025/03/23(日) 14:47:02.77ID:RxW/LXmg typescriptのコンパイラやツールをgoにとられたのはかなり痛いね
仮にもpythonやjsと並ぶ覇権言語の実装に選ばれなかった
これは重みがある事象になる
仮にもpythonやjsと並ぶ覇権言語の実装に選ばれなかった
これは重みがある事象になる
912デフォルトの名無しさん
2025/03/23(日) 14:48:42.88ID:kKBddGNP PrismaのTS移行はパフォーマンスが主因ではないぞ
TSとRust双方のスキルが必要でコミュニティのコントリビュートが得られないからとはっきり書かれてる
https://www.prisma.io/blog/from-rust-to-typescript-a-new-chapter-for-prisma-orm
TSとRust双方のスキルが必要でコミュニティのコントリビュートが得られないからとはっきり書かれてる
https://www.prisma.io/blog/from-rust-to-typescript-a-new-chapter-for-prisma-orm
913デフォルトの名無しさん
2025/03/23(日) 14:51:45.32ID:aJUotRkD914デフォルトの名無しさん
2025/03/23(日) 14:54:10.83ID:aJUotRkD915デフォルトの名無しさん
2025/03/23(日) 14:54:48.47ID:AhwOgDDy Rustを選んだらクビになるだろ
趣味ならRustで十分だよ
趣味ならRustで十分だよ
916デフォルトの名無しさん
2025/03/23(日) 15:04:08.69ID:dLW1UlJo >>908
Pythonについては「Goが選ばれない」というよりも、そもそもC/C++/Rustしか選択肢がない
他の言語でPythonのライブラリ(拡張モジュール) を作る場合、Pythonが提供しているC APIを呼ぶ必要がある (※)
だからCと連携しづらい言語は使えないし、Python側とは別のランタイム (Python側とは別に動くガベージコレクタ) を持つ言語も向いてない
まだC/C++製のものが多いけど、最近はRust製のものも出てきてて、この分野はRustがかなり有望だと思う
JS/TSは自分は詳しくないので知らない
(※)
C++/Rustの場合、実際にはPython C APIをラップするライブラリを使って開発するから、開発者が直接これを呼ぶわけではない
RustだとPyO3というクレートが有名
自分は実際にこれ使ってるけど、なかなか良い感じ
Pythonについては「Goが選ばれない」というよりも、そもそもC/C++/Rustしか選択肢がない
他の言語でPythonのライブラリ(拡張モジュール) を作る場合、Pythonが提供しているC APIを呼ぶ必要がある (※)
だからCと連携しづらい言語は使えないし、Python側とは別のランタイム (Python側とは別に動くガベージコレクタ) を持つ言語も向いてない
まだC/C++製のものが多いけど、最近はRust製のものも出てきてて、この分野はRustがかなり有望だと思う
JS/TSは自分は詳しくないので知らない
(※)
C++/Rustの場合、実際にはPython C APIをラップするライブラリを使って開発するから、開発者が直接これを呼ぶわけではない
RustだとPyO3というクレートが有名
自分は実際にこれ使ってるけど、なかなか良い感じ
917デフォルトの名無しさん
2025/03/23(日) 15:16:21.64ID:gOdPz2Go なぜかRustスレでRustを叩くために
他の言語の仕様の問題とか
他の言語のコミュニティの問題とか
そんなRustと関係ない事情の件ばかりを持ち出すのは感心しないね
そういう他言語の問題がなければRustが好ましいという左証になってるとも言えるけど
他の言語の仕様の問題とか
他の言語のコミュニティの問題とか
そんなRustと関係ない事情の件ばかりを持ち出すのは感心しないね
そういう他言語の問題がなければRustが好ましいという左証になってるとも言えるけど
918デフォルトの名無しさん
2025/03/23(日) 15:21:41.23ID:2OqM692P >>909
esbuildには@もAも当てはまらない
グリーンフィールドかブラウンフィールドかに関わらず
類似処理をしているesbuildとtscgoが同じ結論に達した事実を見れば
tscの特殊事情が主たる理由ではないことは明らか
esbuildには@もAも当てはまらない
グリーンフィールドかブラウンフィールドかに関わらず
類似処理をしているesbuildとtscgoが同じ結論に達した事実を見れば
tscの特殊事情が主たる理由ではないことは明らか
919デフォルトの名無しさん
2025/03/23(日) 15:34:46.69ID:gOdPz2Go 敗北して閑散としているGoのスレッドでやればいいんじゃないかな
Rustへの逆恨みは感心しないね
Rustへの逆恨みは感心しないね
920デフォルトの名無しさん
2025/03/23(日) 15:39:28.23ID:SFcoHXsN Goが単にコンパイラに使われただけなのになにを騒ぐことがあるのか
Rustの優位性はなにも変わってない
Rustの優位性はなにも変わってない
921デフォルトの名無しさん
2025/03/23(日) 15:46:59.12ID:5hw8+0Sa Arena<T>やRc<RefCell<T>>を駆使しつつ自分でライフライム管理もやらなきゃ同等の性能は出ないんだから数倍コストがかかるのは当たり前
しかもコストかけたところで大して速くなる用途ではないからな
しかもコストかけたところで大して速くなる用途ではないからな
922デフォルトの名無しさん
2025/03/23(日) 16:42:13.02ID:nyXcLsMC >>921
arena allocation使うのはC++でも同じだよな
RcはC++にないからArc相当のshared_ptrになってしまうが
いずれも大した問題ではなく何を問題視してるのだろう
Rustなら必要なところで用いなければエラーにになるから必ず安全
arena allocation使うのはC++でも同じだよな
RcはC++にないからArc相当のshared_ptrになってしまうが
いずれも大した問題ではなく何を問題視してるのだろう
Rustなら必要なところで用いなければエラーにになるから必ず安全
923デフォルトの名無しさん
2025/03/23(日) 16:58:09.93ID:/v/6A0mi あんまりRustを馬鹿にすると人類滅亡だぞ
924デフォルトの名無しさん
2025/03/23(日) 16:58:54.84ID:Js5gC5BL なんかRustの評価と自尊心が結びついてるやつが居るな
925デフォルトの名無しさん
2025/03/23(日) 17:14:32.48ID:kax3x6iq C++時代には、RAIIやtemplateの知識を不問とする "better C" があった
"better C" からRustに移行するのは容易ではない
"better C" からRustに移行するのは容易ではない
926デフォルトの名無しさん
2025/03/23(日) 18:32:51.17ID:BVPP8nhy SES業界ってなんですの?
やばそうなんですの?
やばそうなんですの?
927デフォルトの名無しさん
2025/03/23(日) 18:36:40.02ID:BVPP8nhy Chromeとfirefoxを比べるといい
firefoxは少なくともChromeの3〜5倍のRustコードが使われてる
にもかかわらず性能でも人気でも後発のChromeに実質負けている
firefoxは少なくともChromeの3〜5倍のRustコードが使われてる
にもかかわらず性能でも人気でも後発のChromeに実質負けている
928デフォルトの名無しさん
2025/03/23(日) 19:15:20.36ID:nyXcLsMC Firefoxは根幹がC++のまま進まないからな
ChromeのRustコード量が増えていき逆転するのは間違いない
ChromeのRustコード量が増えていき逆転するのは間違いない
929デフォルトの名無しさん
2025/03/23(日) 20:13:06.33ID:3HZSVJR9 ブラウザ見てもわかるけど金を掛けられる余力がある企業や団体が開発資金を出さないと置き換えは進まない
Rustプログラマは特に集めるのは大変
掃いて捨てるぐらいいたらコストは下がるので開発も進む
Rustプログラマは特に集めるのは大変
掃いて捨てるぐらいいたらコストは下がるので開発も進む
930デフォルトの名無しさん
2025/03/23(日) 20:15:58.85ID:MwG5166E >>922
GC言語と比べて高コストという話なのにC++出してきても意味ないじゃん
GC言語と比べて高コストという話なのにC++出してきても意味ないじゃん
931デフォルトの名無しさん
2025/03/23(日) 20:26:09.56ID:uAz+aBh3 遅くてメモリ喰いのGC言語はC/C++/Rustに絶対勝てない
そんなにGC言語が好きならGC言語のスレに引きこもっていなさい
Rustを脅威に感じているからこそわざわざここへ来て暴れてるのだろうけど醜い姿
そんなにGC言語が好きならGC言語のスレに引きこもっていなさい
Rustを脅威に感じているからこそわざわざここへ来て暴れてるのだろうけど醜い姿
932デフォルトの名無しさん
2025/03/23(日) 20:31:47.48ID:zNJHBv3d 環境要因だけど、単価と工数でGC言語が勝ってるってさ
933デフォルトの名無しさん
2025/03/23(日) 20:35:34.98ID:uAz+aBh3934デフォルトの名無しさん
2025/03/23(日) 21:25:09.29ID:dLW1UlJo 実際そう
Goはジュニアクラスのエンジニアとシニアクラスのエンジニアとで書き方が変わらないのが特徴で、Googleのような大きな組織での開発効率のために産まれた言語
良し悪しとかでなく、そもそもの言語の目的の違い
パフォーマンスが重要な仕事にはRustが向くけど
、それなりの速度があれば十分という分野ならRustを使う意味はあんまり無い
IOが中心になる分野なら、Rustは多少は速くても「劇的な違い」にはならないと思う
非同期処理を書くのが難しくないとか、社内に知見があるとかの方が重要という場面も多い
もちろんRustが向く分野も多いので、そちらではRustを使えばよい
言語は目的や求められる要求に応じて選ぶという、ごく普通の話
Goはジュニアクラスのエンジニアとシニアクラスのエンジニアとで書き方が変わらないのが特徴で、Googleのような大きな組織での開発効率のために産まれた言語
良し悪しとかでなく、そもそもの言語の目的の違い
パフォーマンスが重要な仕事にはRustが向くけど
、それなりの速度があれば十分という分野ならRustを使う意味はあんまり無い
IOが中心になる分野なら、Rustは多少は速くても「劇的な違い」にはならないと思う
非同期処理を書くのが難しくないとか、社内に知見があるとかの方が重要という場面も多い
もちろんRustが向く分野も多いので、そちらではRustを使えばよい
言語は目的や求められる要求に応じて選ぶという、ごく普通の話
935デフォルトの名無しさん
2025/03/23(日) 21:33:57.65ID:3HZSVJR9 速度だけが重要ならjavaなんてなんて生まれていないしここまで大きな産業にもなってない
みんなc++を使えばよかった
実際はそうならなかった
みんなc++を使えばよかった
実際はそうならなかった
936デフォルトの名無しさん
2025/03/23(日) 21:39:18.46ID:kIF/RZ8r >>931
なんの勝ち負けの話してんだよww
なんの勝ち負けの話してんだよww
937デフォルトの名無しさん
2025/03/23(日) 21:49:34.80ID:QyKgsP1k C++は平屋のCに何階も増築してきたから基盤はCのままで古い言語だからね
C++11でようやくunique_ptrとshared_ptrのスタートライン
一方でRustは現在の他のモダン言語と同等かそれ以上で何もかも快適
そして開発効率も抜群に良い
静的に最もバグを回避できる優れたプログラミング言語となっている
(もちろん原理的に回避不可能なアプリのロジックバグは除く)
C++11でようやくunique_ptrとshared_ptrのスタートライン
一方でRustは現在の他のモダン言語と同等かそれ以上で何もかも快適
そして開発効率も抜群に良い
静的に最もバグを回避できる優れたプログラミング言語となっている
(もちろん原理的に回避不可能なアプリのロジックバグは除く)
938デフォルトの名無しさん
2025/03/23(日) 21:52:06.36ID:n3c9z4n8 Rustの過剰な持ち上げは普通のRust開発者にとっても迷惑だからな
そういう輩のせいで「Rustは信者が煩い」みたいな意見を見るし、それに辟易する
向き不向きや求められる要求、組織の知見などを考慮して技術選定するという、開発者なら持つべき感覚を否定し続けてるのが理解できない
特定の言語だけを持ち上げる信者はGoやC#やTSにもいるし、そういうのは同様にうざったい
そういう輩のせいで「Rustは信者が煩い」みたいな意見を見るし、それに辟易する
向き不向きや求められる要求、組織の知見などを考慮して技術選定するという、開発者なら持つべき感覚を否定し続けてるのが理解できない
特定の言語だけを持ち上げる信者はGoやC#やTSにもいるし、そういうのは同様にうざったい
939デフォルトの名無しさん
2025/03/23(日) 21:55:17.62ID:zNJHBv3d 2000年頃、サーバーの仕事なら、新人にはCのメモリ管理が無理だからってJavaでキャリアスタートしたよ。
その頃のオンプレはメモリ数GBだけどJavaが何とか動かせたんだ
そこからGC言語優位が続いたけど、サーバーレスやらで効率重視時代が戻ってきたんだね
その頃のオンプレはメモリ数GBだけどJavaが何とか動かせたんだ
そこからGC言語優位が続いたけど、サーバーレスやらで効率重視時代が戻ってきたんだね
940デフォルトの名無しさん
2025/03/23(日) 21:59:15.01ID:QyKgsP1k941デフォルトの名無しさん
2025/03/23(日) 22:07:56.77ID:QyKgsP1k >>939
効率重視とともにエコ面が重視されてるね
そのまま電気消費量そしてランニングコスト
もちろんCPU&メモリリソース使用量を減らせばサーバーなど台数が減らせる面もエコと料金につながる
慣れたらどのプログラミング言語も大して変わらないのだからそれなら全てを少なくできるRustが向いてる
効率重視とともにエコ面が重視されてるね
そのまま電気消費量そしてランニングコスト
もちろんCPU&メモリリソース使用量を減らせばサーバーなど台数が減らせる面もエコと料金につながる
慣れたらどのプログラミング言語も大して変わらないのだからそれなら全てを少なくできるRustが向いてる
942デフォルトの名無しさん
2025/03/23(日) 22:12:37.78ID:arw2Fenr Rustは独自性が無い
C+の知見を移植してるだけ
C+の知見を移植してるだけ
943デフォルトの名無しさん
2025/03/23(日) 22:20:47.30ID:SlUznAQO いつもの某オジサン(嘘つき/実務経験無し)がesbuildで完全論破されて発狂してるだけ
Rustスレの平常運転だから気にしない気にしない
Rustスレの平常運転だから気にしない気にしない
944デフォルトの名無しさん
2025/03/23(日) 22:23:33.24ID:MXOUkEf2 >>942
C++では出来ていないこと(や、C++に後から入ってC++で普及していないこと)が、Rustには大量にあることが特徴。
むしろ他のモダン言語をやっていれば理解しやすいことも多い。
ただし、Rustが色んな言語の良い最先端な部分を採り入れてるため、少しだけ学習曲線が急な面はある。
それでもすぐ学習して理解できるから、それら機能の効果と利便性のため皆が満たされている。
C++では出来ていないこと(や、C++に後から入ってC++で普及していないこと)が、Rustには大量にあることが特徴。
むしろ他のモダン言語をやっていれば理解しやすいことも多い。
ただし、Rustが色んな言語の良い最先端な部分を採り入れてるため、少しだけ学習曲線が急な面はある。
それでもすぐ学習して理解できるから、それら機能の効果と利便性のため皆が満たされている。
945デフォルトの名無しさん
2025/03/23(日) 22:28:21.95ID:arw2Fenr >>944
無いよ
無いよ
946デフォルトの名無しさん
2025/03/23(日) 22:30:17.46ID:MXOUkEf2 >>945
無いとは何のこと?
無いとは何のこと?
947デフォルトの名無しさん
2025/03/23(日) 22:36:44.14ID:kax3x6iq 学習曲線のグラフに原点がないんだろうなあ
0とは一体何がどう0なのだ
0とは一体何がどう0なのだ
948デフォルトの名無しさん
2025/03/23(日) 22:40:46.98ID:dLW1UlJo スマートポインタやRAIIはC++由来だし、代数的データ型やパターンマッチは他の言語にもあるけど、所有権やライフタイムはRust独自
これはかなり強力な仕組みで、安全性という点ではとても成功してると思う
(同時に難しさの要因でもある)
書いておいて何だけど、言語の独自性はそこまで重要でもないと思う
TypeScriptなんかがそうだけど、仕組み自体は既にあるものでもバランスが良ければ十分に価値がある
これはかなり強力な仕組みで、安全性という点ではとても成功してると思う
(同時に難しさの要因でもある)
書いておいて何だけど、言語の独自性はそこまで重要でもないと思う
TypeScriptなんかがそうだけど、仕組み自体は既にあるものでもバランスが良ければ十分に価値がある
949デフォルトの名無しさん
2025/03/23(日) 22:45:57.15ID:QyKgsP1k C/C++が一番ダメな点は大量の様々な未定義動作
950デフォルトの名無しさん
2025/03/24(月) 00:19:28.90ID:ELaBM+IJ CのenumとRustのenumで全く似ても似つかないのとか何とかしてほしいわ
C出身のノリで使うと実装量多くてビックリするわ。たかが整数型定数とかいうのと全く違うもんなあ
ほかにも学習で大変なところ数多あるけど、コンパイルエラーを全部潰したらあとはアプリケーションロジックだけの問題になるのはRustならではで快便感ある。Cはコンパイル通ってからが鬼門だからな
C出身のノリで使うと実装量多くてビックリするわ。たかが整数型定数とかいうのと全く違うもんなあ
ほかにも学習で大変なところ数多あるけど、コンパイルエラーを全部潰したらあとはアプリケーションロジックだけの問題になるのはRustならではで快便感ある。Cはコンパイル通ってからが鬼門だからな
951デフォルトの名無しさん
2025/03/24(月) 00:51:58.09ID:9O8f24u0 なんでenumって名前にしたんだろうな
adtとかdataとかtypeとかにしたら良かったのにと思わなくもない
adtとかdataとかtypeとかにしたら良かったのにと思わなくもない
952デフォルトの名無しさん
2025/03/24(月) 01:05:28.53ID:ELaBM+IJ >>951
実際の使われ方からするとOption型、Choice型だよね。それだとネーミング的に予約語と競合してダメだけどマシな名前は考える余地あったよなあ
基本的に「よその言語から似た単語借りてくる」風習はどの言語にもフレームワークにもあるし慣れるしかないけどね
実際の使われ方からするとOption型、Choice型だよね。それだとネーミング的に予約語と競合してダメだけどマシな名前は考える余地あったよなあ
基本的に「よその言語から似た単語借りてくる」風習はどの言語にもフレームワークにもあるし慣れるしかないけどね
953デフォルトの名無しさん
2025/03/24(月) 02:41:57.49ID:u90IfC4I plain enumとADT enumがあるだけでenumはenum
ADT enumをenumの名前で使えるのはRustに限った話ではない
ADT enumをenumの名前で使えるのはRustに限った話ではない
954デフォルトの名無しさん
2025/03/24(月) 03:34:48.42ID:rrmbjdIs HaskellもRustと同じくらい使われてると言われていたが
つまりすべての製品に使われてるようなことを言っていた
つまりすべての製品に使われてるようなことを言っていた
955デフォルトの名無しさん
2025/03/24(月) 03:36:56.31ID:rrmbjdIs 結局、駄目なものはどれだけ宣伝しても流行らないのでは?
956デフォルトの名無しさん
2025/03/24(月) 07:38:50.09ID:Tm5RncoX そんなに言われてなかったよ。
それは誤解か、誤解した人が大げさに吹聴してるな
それは誤解か、誤解した人が大げさに吹聴してるな
957デフォルトの名無しさん
2025/03/24(月) 08:13:34.82ID:a0wY9RFf >>950
たぶんプログラミング言語一般的な型付けシステムに慣れてないんだと思う
enumはその名の通り列挙型だよ
それを整数型定数と誤認してるのが不思議
定数はその名の通りconstで当然何の型の定数なのかi64とかf64とかOptionなど型名を指定する必要があるよ
enumは列挙型だから名付けてenum Fooなどの別の型になる
内部的には整数で識別されるからその整数値を指定することもできるけどその整数の取れる値の範囲は列挙した分に限られるから別の型
制限はあるけど明示的にcastすれば整数型(i32とかusizeとか)へ変換できるよ
>>952
enumは列挙型だからSome(T)とNoneの2つを列挙できるenum Option<T>型も作れるだけの話だよ
ここでTは任意の型を指定できてジェネリック
もちろんトレイト境界を指定することもできて例えばCowの定義はこうなってるよ
enum Cow<'a, B>
where
B: 'a + ToOwned + ?Sized,
{
Borrowed(&'a B),
Owned(<B as ToOwned>::Owned),
}
たぶんプログラミング言語一般的な型付けシステムに慣れてないんだと思う
enumはその名の通り列挙型だよ
それを整数型定数と誤認してるのが不思議
定数はその名の通りconstで当然何の型の定数なのかi64とかf64とかOptionなど型名を指定する必要があるよ
enumは列挙型だから名付けてenum Fooなどの別の型になる
内部的には整数で識別されるからその整数値を指定することもできるけどその整数の取れる値の範囲は列挙した分に限られるから別の型
制限はあるけど明示的にcastすれば整数型(i32とかusizeとか)へ変換できるよ
>>952
enumは列挙型だからSome(T)とNoneの2つを列挙できるenum Option<T>型も作れるだけの話だよ
ここでTは任意の型を指定できてジェネリック
もちろんトレイト境界を指定することもできて例えばCowの定義はこうなってるよ
enum Cow<'a, B>
where
B: 'a + ToOwned + ?Sized,
{
Borrowed(&'a B),
Owned(<B as ToOwned>::Owned),
}
958デフォルトの名無しさん
2025/03/24(月) 08:14:23.64ID:CX9jwcEn Haskellを宣伝してた人がRustを宣伝してる
959デフォルトの名無しさん
2025/03/24(月) 08:15:54.54ID:CX9jwcEn >>957
Trait制約では?
Trait制約では?
960デフォルトの名無しさん
2025/03/24(月) 08:16:12.40ID:YUJc8XWR 言語なんて一長一短あるんだから万能な言語なんてないんだよね
たまにそのへんのことがわからない人が宗教戦争始めんだよ
たまにそのへんのことがわからない人が宗教戦争始めんだよ
961デフォルトの名無しさん
2025/03/24(月) 08:24:31.95ID:+3Ali/jO >>958
これだろうね
これだろうね
962デフォルトの名無しさん
2025/03/24(月) 08:28:31.69ID:a0wY9RFf963デフォルトの名無しさん
2025/03/24(月) 08:33:32.13ID:a0wY9RFf964デフォルトの名無しさん
2025/03/24(月) 08:38:14.85ID:+3Ali/jO965デフォルトの名無しさん
2025/03/24(月) 08:56:28.14ID:a0wY9RFf >>964
GCは関係ないよ
プログラミングしたことあるならわかってるはずだけど
まず強い静的型付け言語でないと実行時デバッグは山積み
Rustの場合はデータ競合まで型付けチェックで弾いてくれるからさらに助かるよ
あと一番ありがたいのはsingle writer XOR multiple readers ルール
このおかげで色々な罠にはまらなくて済むよ
それによって書き換え競合を意識するようになるからデータ書き換えのスパゲッティ構造も防げたり
GCは関係ないよ
プログラミングしたことあるならわかってるはずだけど
まず強い静的型付け言語でないと実行時デバッグは山積み
Rustの場合はデータ競合まで型付けチェックで弾いてくれるからさらに助かるよ
あと一番ありがたいのはsingle writer XOR multiple readers ルール
このおかげで色々な罠にはまらなくて済むよ
それによって書き換え競合を意識するようになるからデータ書き換えのスパゲッティ構造も防げたり
966デフォルトの名無しさん
2025/03/24(月) 10:05:01.91ID:NJwebgj2967デフォルトの名無しさん
2025/03/24(月) 10:15:12.89ID:8nOZWVbe ポエムで草
968デフォルトの名無しさん
2025/03/24(月) 11:58:19.75ID:Q7rhWE6T969デフォルトの名無しさん
2025/03/24(月) 12:23:21.76ID:cPeZblFF >>966
何を言ってるの…?
何を言ってるの…?
970デフォルトの名無しさん
2025/03/24(月) 12:26:57.19ID:a0wY9RFf971デフォルトの名無しさん
2025/03/24(月) 12:35:54.16ID:tWxitKr9 Arena<T>とかRc<RefCell<T>>ってCの生ポに比べてどれくらいパフォーマンス落ちるの?
972デフォルトの名無しさん
2025/03/24(月) 12:42:11.30ID:tWxitKr9973デフォルトの名無しさん
2025/03/24(月) 13:26:19.03ID:CX9jwcEn Trait制約とTrait境界
どちらが正しいの?
どちらが正しいの?
974デフォルトの名無しさん
2025/03/24(月) 14:05:50.97ID:g+HztaOv >>973
公式といえるものが存在しないので明瞭な結論はないが境界のほうがスタンダードという風潮はある。
真っ先に日本語訳を出したボランティアグループがそうしているから。
技術用語は原則として直訳するものなのでもしも JIS が Rust の規格を成立させたとしてもたぶん境界と訳すと思う。
制約派は有名な会社 (オライリー) が出している書籍で制約という語をあてていることを根拠としていて、ボランティアグループよりプロの翻訳家のほうが信頼できると主張している。
公式といえるものが存在しないので明瞭な結論はないが境界のほうがスタンダードという風潮はある。
真っ先に日本語訳を出したボランティアグループがそうしているから。
技術用語は原則として直訳するものなのでもしも JIS が Rust の規格を成立させたとしてもたぶん境界と訳すと思う。
制約派は有名な会社 (オライリー) が出している書籍で制約という語をあてていることを根拠としていて、ボランティアグループよりプロの翻訳家のほうが信頼できると主張している。
975デフォルトの名無しさん
2025/03/24(月) 14:07:50.39ID:GUfk5wC7 ボウンズでいいよ
976デフォルトの名無しさん
2025/03/24(月) 14:32:08.72ID:jgU8FjIN >>973
訳さずトレイトバウンドと呼ぶのが好ましいけど日本語化したければトレイト制約
トレイト境界は勘違いと理解不足から発生した間違った訳語なので避けたほうが良い
どの辺が間違っているかはこのスレを読み返してくれ
訳さずトレイトバウンドと呼ぶのが好ましいけど日本語化したければトレイト制約
トレイト境界は勘違いと理解不足から発生した間違った訳語なので避けたほうが良い
どの辺が間違っているかはこのスレを読み返してくれ
977デフォルトの名無しさん
2025/03/24(月) 14:34:35.04ID:8nOZWVbe 屋根の色は青が正しい!
978デフォルトの名無しさん
2025/03/24(月) 15:34:03.20ID:MH5MWyKr979デフォルトの名無しさん
2025/03/24(月) 17:17:17.01ID:a0wY9RFf >>971
生ポと比較する意味がないよ
確実に自動解放するための枠組み
例えばRcは複数の所有者が生じる時に使われて、どれが先に消えても最後に残った側が自動解放するんだよ
Cで同じことを実現しようとしたら同じく参照カウンタが必要
C++でも参照カウンタを用いてshared_ptrが作られてるよ
>>972
初期化を仮定しないMaybeUninitがRustにはあるから大丈夫
ライブラリ等ではこれを使って不要な初期化を避けているよ
0でのmemset呼び出しが消滅
973
trait boundsはトレイト境界だよ
英語でも敢えてconstraint (制約)を使っていない意義を尊重
トレイト境界により型のとれうる範囲が狭まって型の制限いわゆる型制約が生じるよ
生ポと比較する意味がないよ
確実に自動解放するための枠組み
例えばRcは複数の所有者が生じる時に使われて、どれが先に消えても最後に残った側が自動解放するんだよ
Cで同じことを実現しようとしたら同じく参照カウンタが必要
C++でも参照カウンタを用いてshared_ptrが作られてるよ
>>972
初期化を仮定しないMaybeUninitがRustにはあるから大丈夫
ライブラリ等ではこれを使って不要な初期化を避けているよ
0でのmemset呼び出しが消滅
973
trait boundsはトレイト境界だよ
英語でも敢えてconstraint (制約)を使っていない意義を尊重
トレイト境界により型のとれうる範囲が狭まって型の制限いわゆる型制約が生じるよ
980デフォルトの名無しさん
2025/03/24(月) 17:28:07.52ID:NJwebgj2 ああこれって王様を尊重すると言いながら
戦争していいかどうかは王様に相談してないパターンか
戦争していいかどうかは王様に相談してないパターンか
981デフォルトの名無しさん
2025/03/24(月) 18:08:22.30ID:XCWZ1fyV 「制約」は渡す側の視点でしか見てないからな
受け取る側にとってはトレイトの「保証」でもある
ジェネリクス型を受け取る関数を自分で書かないレベルに合わせるなら
「制約」で意訳しても構わないと思う
受け取る側にとってはトレイトの「保証」でもある
ジェネリクス型を受け取る関数を自分で書かないレベルに合わせるなら
「制約」で意訳しても構わないと思う
982デフォルトの名無しさん
2025/03/24(月) 18:38:13.55ID:g+HztaOv >>981
そのレベルの人が上達してきたときに用語を切り替えるなんてわけにもいかんし、
「この制約のことを Rust 用語ではトレイト境界といいます」とでも一言あればそれで済む話じゃね?
入門者向けの便宜的な説明が後々まで尾を引いて混乱することはあるから喩えとか意訳とかは慎重にしたほうが良いと思う。
そのレベルの人が上達してきたときに用語を切り替えるなんてわけにもいかんし、
「この制約のことを Rust 用語ではトレイト境界といいます」とでも一言あればそれで済む話じゃね?
入門者向けの便宜的な説明が後々まで尾を引いて混乱することはあるから喩えとか意訳とかは慎重にしたほうが良いと思う。
983デフォルトの名無しさん
2025/03/24(月) 18:44:54.15ID:zTw2TQbc >>981
レベルの話じゃないんだよね
両方の視点をもつのはいいんだけど型シグニチャは使う方との契約だから
作る側じゃなく使う側の視点によせるのが自然
作る側の視点で見る回数よりも
使う側の視点で見る回数のほうが圧倒的に多いということもある
仮に受け取る側の視点から見たとしても
トレイトの「保証」だから「トレイト境界」とはならないよね
not satisfiedとかとコロケーションが確立されてるのも
rustcの開発陣もみんな制約として見てるからなんだよ
レベルの話じゃないんだよね
両方の視点をもつのはいいんだけど型シグニチャは使う方との契約だから
作る側じゃなく使う側の視点によせるのが自然
作る側の視点で見る回数よりも
使う側の視点で見る回数のほうが圧倒的に多いということもある
仮に受け取る側の視点から見たとしても
トレイトの「保証」だから「トレイト境界」とはならないよね
not satisfiedとかとコロケーションが確立されてるのも
rustcの開発陣もみんな制約として見てるからなんだよ
984デフォルトの名無しさん
2025/03/24(月) 18:49:17.73ID:zTw2TQbc プレート境界とか軍事境界とか〜境界の日本語での使われ方を考えてみたら?
プレートとプレートの境目だからプレート境界
西側の軍事と東側の軍事の境目だから軍事境界
トレイトとトレイトの境目ならトレイト境界は日本語として用意に成立する
でも実際はそうじゃないから
プレートとプレートの境目だからプレート境界
西側の軍事と東側の軍事の境目だから軍事境界
トレイトとトレイトの境目ならトレイト境界は日本語として用意に成立する
でも実際はそうじゃないから
985デフォルトの名無しさん
2025/03/24(月) 18:54:56.12ID:a0wY9RFf 『制約』という完全に意味を間違えている言葉でなければ
『境界』より相応しい範囲を表す何らかの言葉でもいいと思うよ
混乱しないようにトレイト境界のままでもOK
『境界』より相応しい範囲を表す何らかの言葉でもいいと思うよ
混乱しないようにトレイト境界のままでもOK
986デフォルトの名無しさん
2025/03/24(月) 18:59:58.08ID:a0wY9RFf boundsの意味もtrait boundsの用法も範囲の限界を意味しているわけだから
範囲の限界はすなわち境界だよね
範囲の限界を表すもっと良い言葉があるかどうか
範囲の限界はすなわち境界だよね
範囲の限界を表すもっと良い言葉があるかどうか
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 高市早苗「……なんて言ってみたw」中国「なんだ、言ってみただけかw」👈これで全部元通りになるという事実 [782460143]
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- んなっしょい🍬禁止🈲のお🏡
- 映画「ゼルダの伝説」、リンクとゼルダ姫が白人になってしまう。日本のものは日本人だろうが!! [592058334]
- 高市早苗「株やってる奴ザマァwww格差是正のためにも、もっと暴落した方がいいよwww」(´・ω・`)確かに。 [252835186]
