Rust part27

レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん
垢版 |
2024/12/02(月) 22:32:50.31ID:D+1pIyvG
公式
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/
2025/03/22(土) 09:31:58.11ID:JDdxCEyD
RustでもC++でも循環含めたガベージをまとめて回収するならアリーナ系でメモリアロケート
そのわずかな手間だけで速くて省メモリになるから
TSのケースのようなそのまま移植ではなくて新規や再設計ならRustで組むのがベター
2025/03/22(土) 09:38:45.99ID:20oTaz9t
Rustはマクロがあるから同じ処理を何度も書く手間が省ける
外部のコードジェネレータに頼らなくて良い
同じ様な処理が並びがちなインタプリタやコンパイラ系とは相性が良い
2025/03/22(土) 10:02:18.86ID:zL5M5nMT
負け惜しみばっかりで情けないな
2025/03/22(土) 10:11:41.52ID:GMYQzWfO
C#の敗因をここで議論する意味が分からん
2025/03/22(土) 10:19:41.52ID:JDdxCEyD
>>823
C#を含めた各クラス依存言語はクラスベースで書かざるを得ないため元のTypeScriptコードとの相違が大きくなり今後もコードを合わせ保守していかなければならない特殊事情のため選べなかったと書かれていた
いずれもTypeScript側の特殊事情で雁字搦めになっている
RustやC#の問題ではない

その件とは関係なくクラス依存言語は時代遅れだけどね
825デフォルトの名無しさん
垢版 |
2025/03/22(土) 11:00:03.74ID:aLOoKjU5
比較的新しい言語のKotlinやSwiftでもクラスはありますがな…
人気トップレベルの Python でもクラスを使うし

近年問題視されてるのは実装の継承くらいで、カプセル化やポリモーフィズム、メソッド記法は Rust, Go にもあるし、OOP自体は今も現役
C#やJavaはクラスが常に必要で、そこは個人的には好まないけど (staticメソッドを実質的に名前空間+関数として使えはする)
2025/03/22(土) 11:20:31.59ID:JDdxCEyD
>>825
クラス依存言語が時代遅れと明確に書いた通りで同じ意見だ
もちろんそれらカプセル化・ポリモーフィズム・メソッド記法などはクラス特有ではなく関係ない話
クラスと他の差異はクラス継承にありそれが問題というのも同意見
KotlinとSwiftにクラスがあるのは置き換え継承言語として元言語にクラスがあったため
827デフォルトの名無しさん
垢版 |
2025/03/22(土) 11:32:44.58ID:+aAOpttf
実はすべてハードウェアの都合で
素敵な世界は後付けだからな

・データに型がある
・構造化
・クラスベース
・例外

マシンパワーが上がれば必要ない可能性がある
828デフォルトの名無しさん
垢版 |
2025/03/22(土) 11:34:01.80ID:+aAOpttf
マシンパワーでなく機械力な
敵性言語は使わないようにしよう
2025/03/22(土) 11:40:22.91ID:20oTaz9t
クラスベースが時代遅れとは思わない
やってることは基本的に同じ
データと手続きがある
何も違いはないとまでは言わないけどさ
利便性があればそれを応用して使えればいい
2025/03/22(土) 11:44:40.17ID:DzZgP0yC
Pythonが優れてる
いやC#がほとんどのケースで優れてる
いやTypeScriptのほうがベター

君たちはこういうやり取り見たときにどう思うの?
やってること全く同じだよ
めちゃくちゃ次元が低い
2025/03/22(土) 11:47:38.36ID:pQ0AfiNn
KotlinもSwiftもインターフェースを使えるんだから、クラスで問題になってる継承による可読性の悪化は十分に対処できる
2025/03/22(土) 11:50:10.91ID:20oTaz9t
>>830
GC有りならその3つ+golangでいい
833デフォルトの名無しさん
垢版 |
2025/03/22(土) 12:03:06.76ID:+aAOpttf
>>829
全てをカバーしていないことが分かってきた程度だと思う
ほかのやり方のほうが良い場合もある的な
834デフォルトの名無しさん
垢版 |
2025/03/22(土) 12:05:17.24ID:+aAOpttf
>>830
金儲けのために劣った言語を推してくるベンダーや著者が後を絶たないので
それ違いますよ?という声は大切
2025/03/22(土) 12:08:01.39ID:GMYQzWfO
各々の言語ごとに規格を作っても言語がバラバラな状態は1ミリも改善しないんだよな
2025/03/22(土) 12:08:16.78ID:pQ0AfiNn
大規模プロジェクトがどの言語を使うかは結局のところ利権の問題になってくるのさ
C#やJava等はその辺のしがらみが大きすぎる
2025/03/22(土) 12:09:17.47ID:JDdxCEyD
>>829
クラス依存言語は時代遅れ
クラスと他との差はクラス継承にある
クラス依存言語はクラス継承に依存している
もちろんクラス継承を使わずに上手く書けるならばその言語はクラス依存言語ではない
しかしクラス継承があるとそれをを使ってしまう人がいる
クラス継承を無くせた言語が好ましい
2025/03/22(土) 12:11:48.69ID:20oTaz9t
windowsでデスクトップアプリ作るならC#
webでフロントエンド作るならts
AI系機械学習ならPython
趣味中の趣味でRustとgolang
2025/03/22(土) 12:11:53.98ID:IPTdsePr
いうてGUIやるならクラス継承がないときつくね?
2025/03/22(土) 12:13:52.50ID:IPTdsePr
RustやGoをやる人はフロントをやらないからクラス無しで十分なんだろうけどさ
2025/03/22(土) 12:14:46.71ID:20oTaz9t
絶対にC++じゃないところ以外はc++使わなくなった
iotとかの組み込みとか

他人のソース読むのもめんどくさい
2025/03/22(土) 12:18:05.67ID:/Xq5kWDX
ここはRustスレで組み込み屋の集う場所
フロント屋も居ていいけど話が噛み合わないことを自覚してくれ
2025/03/22(土) 12:19:02.77ID:JDdxCEyD
>>839 >>840
GUIはクラス継承の典型的な失敗適用ケースの一つとして有名だ
無理やりにピラミッドな歪んだクラス継承で作られているか無茶なクラス多重継承で作られているかになってしまっている
もちろんGUIはクラスを使わずにトレイトやインターフェイスなどで複数の機能を多重に実装するのが好ましい
2025/03/22(土) 12:19:21.85ID:20oTaz9t
いのなかのかわずではいけない
llmぐらい使えないと
845デフォルトの名無しさん
垢版 |
2025/03/22(土) 12:22:13.13ID:+aAOpttf
自称組み込み屋では
846デフォルトの名無しさん
垢版 |
2025/03/22(土) 12:24:51.61ID:+aAOpttf
Trait境界
2025/03/22(土) 12:25:22.83ID:F6xx6yRe
Javaの悪口はやめなくていいよもっとやれ~
2025/03/22(土) 12:28:08.50ID:20oTaz9t
Javaは偉大な功績があった
30年前のスターで今は選ばれないだけ

自分の母親をBBAと言うのと同じメンタリティ
849デフォルトの名無しさん
垢版 |
2025/03/22(土) 12:29:33.62ID:+aAOpttf
Trait制約
2025/03/22(土) 12:33:14.93ID:20oTaz9t
javaは多くの人をC++から救った功労者
時代とパラダイムが変わり今はRustがC++から多くの人を救う功労者に
2025/03/22(土) 12:33:33.59ID:pQ0AfiNn
OracleがアホなのであってJavaは悪くないおじさんになっていいか?
2025/03/22(土) 12:56:47.52ID:nNEN9uWE
>>851
Oracle 的ライセンス形態は Java の一部だ。
不可分なものを分けて考えるのはナンセンス。
2025/03/22(土) 13:36:44.76ID:U6/Lg1xx
「RustにはGCが無い」は誤解を産む表現
GCを実装していない訳じゃなくてGCが不要なの
2025/03/22(土) 13:44:37.92ID:dcRxFfMt
メモリ管理を自分でやるかランタイムに任せるか、なんだよね
メモリ管理を自分でやらなくてはいけないとネガティブに捉えるならば「GCが無い」というデメリットになり得る
2025/03/22(土) 13:53:15.19ID:SJ3E9yt4
前にこのスレで話題に出てたように
GCを後回しにして、そのまま終了するようなプログラムだと
RustよりGC付き言語の方が速いことがある
2025/03/22(土) 14:05:17.42ID:U6/Lg1xx
>>851
C++やJavaがアホなのであってObjective-Cは悪く無い
857デフォルトの名無しさん
垢版 |
2025/03/22(土) 14:28:26.15ID:CvXZsmCq
GCか。そういえばGCなしの Java って作れないんだろうか?
2025/03/22(土) 14:52:54.85ID:HDM9FDgQ
>>857
それをやろうとしたのが脱JVMのKotlin/Nativeでしょ
とはいえKotlin/Nativeも独自のGCを作ったが
859デフォルトの名無しさん
垢版 |
2025/03/22(土) 17:02:35.40ID:w9r0aks+
【鹿児島】県警幹部、情報漏洩の疑い 2月には不同意性交疑いで送検 [蚤の市★]
https://asahi.5ch.net/test/read.cgi/newsplus/1742567997/

日本中で多発しているのか?
国民は騙されているのか?
2025/03/22(土) 18:26:15.55ID:nNEN9uWE
ここまで Rust が注目されているのはクラウドの従量課金システムの影響がデカい。

たとえばウェブ系みたいにリクエストをさばいて次のリクエストが来るまでの空き時間に GC が走れば GC の速度ペナルティは問題にならない……
と従来は言われていたんだが従量課金の世界では空き時間という概念が通用しない。
サービスを提供する上では問題にならなくてもかかる金が違うというのは経営層にわかりやすく見えてしまう。
2025/03/22(土) 18:39:47.45ID:+4wHRnDV
ラムダならGC走る前に終われるんでしょ
862デフォルトの名無しさん
垢版 |
2025/03/22(土) 18:54:40.05ID:aLOoKjU5
Web系のサービス分野でRustが注目を浴びてるとは思いづらい
今のところ期待されてるのはCLIツールやシステムプログラミング、組込みなどじゃないの?
Rustの採用例 (Discordなど) はあるけど、有名どころのサービスを列挙していけば他の言語の方がずっと多いと思う

Web系だとRustのGoのようなコンパイル言語を選ぶ企業がいる一方で、「バックエンドにTypeScriptを使う」も妥当な選択肢の一つとして見られたりするくらいだし
(これはフロント側との知識の共有しやすさが理由)
2025/03/22(土) 19:09:06.13ID:+4wHRnDV
Goより茨の道だからやめたほうがいいね。メンバーがついてこれんし。
ライブラリが未整備だろうから自前実装も居るだろう
面倒。Rustのコミッタを集めてOSSにプルリク出していくことが広報になるとか割り切って尖ってくのを経営がOKすればいいが
2025/03/22(土) 19:09:54.71ID:+4wHRnDV
estieあたりはそうなのかな
865デフォルトの名無しさん
垢版 |
2025/03/22(土) 19:09:58.69ID:+aAOpttf
スタートエンドに使うのもあり
866デフォルトの名無しさん
垢版 |
2025/03/22(土) 19:10:54.90ID:+aAOpttf
Rust使うならC++使うわ
2025/03/22(土) 19:15:35.11ID:SJ3E9yt4
ライブラリは未整備ではないが、カジュアルにAPIを変えちゃう傾向がある
あと、chronoみたいな基本的なライブラリが使いづらい
2025/03/22(土) 19:17:42.77ID:wj/QNrNA
>>862
Rustの利用調査でWebバックエンドが利用の最大多数派であったように
Rustといえば主要な使われ方はWebバックエンドだよ
そもそもRustの基幹の一つであるtokioはそのために作られた
goroutineより性能も良い

>>866
C++は絶対にない
tokioやgoroutineに匹敵する非同期インフラすらC++では弱くて無い
2025/03/22(土) 19:27:58.28ID:+4wHRnDV
型安全警察で~す
2025/03/22(土) 19:44:27.97ID:GMYQzWfO
ユーザーは無料で遊べちまうのに業者は課金されるのか
2025/03/22(土) 20:06:41.33ID:LDE6EGsp
>>860
別に注目されてないだろw
872デフォルトの名無しさん
垢版 |
2025/03/22(土) 20:46:20.66ID:+aAOpttf
RustはHaskellのようなもんだな
2025/03/22(土) 20:51:35.38ID:pQ0AfiNn
サーバー系は、どう議論しようがAWSらがRustを使うと決めてるんだから俺たちもRustを使うべきなんだよね
2025/03/22(土) 20:54:15.56ID:wj/QNrNA
RustがIT企業の支持を得られて普及した要因の最大の理由は非同期タスクでCPUマルチコアスレッドを最大限に生かせることが実証されたため
もちろんそのメリットを生かせる最大の分野がWeb
その結果としてWebインフラが次々とRust製になっていってるのもご存知の通り
2025/03/22(土) 20:58:48.70ID:Hzxc05GG
>>873
内部で使われてるって話とごっちゃになってないか?
2025/03/22(土) 21:37:06.41ID:nNEN9uWE
内部で使ってれば外部 (SDK) の充実だって期待できるだろ。
他もサポートするとはいっても内部で第一に使っている言語が最も切られにくいはず。
2025/03/22(土) 21:47:08.55ID:wj/QNrNA
もちろんそれもあるがアマゾンAWSはエネルギー効率の高さを示してRustの使用が良いと主張している
エコのため、クラウド提供側にとっては電気消費量のため、クラウド利用側にとっては利用料金のため、誰にとってもRustが良い
2025/03/22(土) 21:49:55.80ID:0jsJ/YT+
状況に応じて道具を選べないやつなんて所詮この程度だからな
相手にするだけ時間の無駄だよ
879デフォルトの名無しさん
垢版 |
2025/03/22(土) 21:56:00.76ID:aLOoKjU5
企業としてはユーザーが最も多い言語のSDKに一番力を入れるんじゃない?
2025/03/22(土) 21:56:48.74ID:+4wHRnDV
じゃあRustか
2025/03/22(土) 22:00:34.26ID:P6hXjgwK
クラウドに限らずどんな分野のとんな用途でも
環境などで言語制限のある分野でなければ
Rustが一番よいだろうね
2025/03/22(土) 22:02:15.86ID:GMYQzWfO
雑な推理だな
お金の話をすれば雑でも許してもらえる法則でもあるのかな
2025/03/22(土) 22:04:35.46ID:+4wHRnDV
工数と開発者のスキルが必要なのが難点でしょ
スタートアップはとりあえずlaravelで雑でも動かしたい
2025/03/22(土) 22:08:44.37ID:nNEN9uWE
プログラマにかかるコストも大きいのでそれとのトレードオフではある。
2025/03/22(土) 22:08:56.75ID:wj/QNrNA
スキルがないとかその分野に標準の言語があるとかの制約がなければRust
制約がないのに他の言語を選ぶメリットがない
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のほうが良い
2025/03/22(土) 23:13:07.51ID:2RmOfPx/
なんかpythonの話ししてる時に呼んでもないのに出てくるRubyの人みたい
2025/03/22(土) 23:30:44.29ID:P6hXjgwK
Goは適用範囲が狭すぎてね
そしてその分野もRustが代わりになれるから
2025/03/22(土) 23:39:54.79ID:SJ3E9yt4
シングルバイナリで配布するなら、今でもGoの方が有利だろ
2025/03/22(土) 23:51:36.52ID:FupbzmQ3
>>855
CやRustが必ず速く、GC言語が必ず遅いです。
そのケースでは、CもRustもメモリ解放する必要ありませんから。
GC言語がCやRustに勝てる可能性はありません。
2025/03/22(土) 23:59:13.86ID:P6hXjgwK
スタック領域を最も活用できるRustが一番有利だろうね
もちろんヒープ領域は返さない手がある
2025/03/23(日) 00:19:54.96ID:Ft35v0Bz
プログラマが充分に賢いと仮定できるときとそうでないときがある。
2025/03/23(日) 02:37:14.92ID:FBKpXUl6
esbuildとswcを比べるといい
swcは少なくともesbuildの3〜5倍の開発工数がかかってる
にもかかわらず性能でも人気でも後発のesbuildに実質負けている
896デフォルトの名無しさん
垢版 |
2025/03/23(日) 04:01:40.19ID:fJAmg8F4
>>889
あれなんだろうな
2025/03/23(日) 08:06:03.43ID:E0tNSJV1
>>889
KENYA が Eust 使ってる姿が想像できないなω
2025/03/23(日) 11:30:47.99ID:7BeeA992
>>895
これが現実だよな
規模の大きい用途でもなければ性能差以外のところに価値を見出さないとRustは選択肢にならない
2025/03/23(日) 11:46:34.65ID:ucJr9566
>>898
バカ発見
それは言語の比較ではなく作者の比較
900デフォルトの名無しさん
垢版 |
2025/03/23(日) 12:05:46.10ID:dLW1UlJo
それを言い始めたら、現実のプロジェクトであまり使われないのを無視して「Haskellは生産的」と主張し続けてる人と同じじゃないの
2025/03/23(日) 12:16:32.87ID:hhiHggcP
何の制約もない理想的な世界ではRustが一番みたいな主張をするのは宗教だからね

現実を説いても無駄だよ
2025/03/23(日) 12:29:31.57ID:ucJr9566
ハスケルがどこで使われてるかは知らないが
Rustはネットインフラなど各所で使われてるからな
2025/03/23(日) 13:45:50.39ID:ILZgSc5B
PrismaなんてRustからTypescriptに乗り換えてるからなぁ
2025/03/23(日) 14:04:29.94ID:kax3x6iq
まあ現実というか現時点でHaskellは実在しているので
自分は現実を説いていると思ってる人はじつは将来のHaskellについて説いているんだろう
2025/03/23(日) 14:14:35.83ID:i3JV7Cin
>>903
PrismはJavaScript/TypeScriptでのSQLのORMだよ
コアをRustで書いていたけどTypeScriptとの間でのデータのシリアル変換がオーバーヘッドなのでやめた
RustでなくC/C++でもGoでも何でも同じ話
2025/03/23(日) 14:19:18.42ID:Ft35v0Bz
Haskell や ML 系は金融系で人気があるみたいな話だね。
そういう人は数理最適化とかの専門家で、アカデミック寄りの出自だったりするから言語もそういう系統になる。
2025/03/23(日) 14:23:11.51ID:MPpv/Zn0
>>899
そうそう優秀な作者だからこそヘルスバーグやエヴァン・ウォレスはRustでも作ってみて自分の目で比較した上で敢えてGoを選んでるんだよな
2025/03/23(日) 14:29:01.82ID:i3JV7Cin
逆にオーバーヘッドよりも効果が上回るものも多い
そういうものはJS/TSのライブラリがRustやC/C++で書かれている
これはPythonのライブラリでも同じ
Goでそれらのライブラリを書かれることはない
2025/03/23(日) 14:41:46.62ID:aJUotRkD
>>907
頭悪そうな君には理解できなかったのかね
TypeScriptの型チェック&コンパイラの件は
①C#などのクラス依存言語はクラスベースで書かざるを得ないため元のTypeScriptコードとの相違が大きくなり今後もコードを合わせ保守していかなければならない特殊事情のため選べなかった
②RustやC++などはGC依存言語でないため元のTypeScriptコードとの相違が大きくなり今後もコードを合わせ保守していかなければならない特殊事情のため選べなかった

理解できない人は自分の言語にスレに戻りなさい
あるいはRustアンチスレへ行きなさい
ここはRustのためのスレです
2025/03/23(日) 14:45:12.04ID:NxWV5kSB
工数が3倍以上かかっても数%の性能向上でペイできる分野ならいいんだけどね
大手クラウドベンダーのインフラ開発がまさにそれ
ペイできるどころかお釣りがじゃんじゃん来る

逆にそういう分野に該当しないtscgoとesbuildでは
費用対効果を考えてRustは選ばれなかったということ
911デフォルトの名無しさん
垢版 |
2025/03/23(日) 14:47:02.77ID:RxW/LXmg
typescriptのコンパイラやツールをgoにとられたのはかなり痛いね
仮にもpythonやjsと並ぶ覇権言語の実装に選ばれなかった
これは重みがある事象になる
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
2025/03/23(日) 14:51:45.32ID:aJUotRkD
>>911
TypeScriptだけの自業自得の特殊事情を理解できない人はこのスレから出てけよ
ここはRustのためのスレ
2025/03/23(日) 14:54:10.83ID:aJUotRkD
>>912
他の言語コミュニティの問題ならRustは関係ないだろ
なぜそこまでしてこのRustスレを荒らすんだ?
915デフォルトの名無しさん
垢版 |
2025/03/23(日) 14:54:48.47ID:AhwOgDDy
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というクレートが有名
自分は実際にこれ使ってるけど、なかなか良い感じ
2025/03/23(日) 15:16:21.64ID:gOdPz2Go
なぜかRustスレでRustを叩くために
他の言語の仕様の問題とか
他の言語のコミュニティの問題とか
そんなRustと関係ない事情の件ばかりを持ち出すのは感心しないね
そういう他言語の問題がなければRustが好ましいという左証になってるとも言えるけど
2025/03/23(日) 15:21:41.23ID:2OqM692P
>>909
esbuildには@もAも当てはまらない

グリーンフィールドかブラウンフィールドかに関わらず
類似処理をしているesbuildとtscgoが同じ結論に達した事実を見れば
tscの特殊事情が主たる理由ではないことは明らか
2025/03/23(日) 15:34:46.69ID:gOdPz2Go
敗北して閑散としているGoのスレッドでやればいいんじゃないかな
Rustへの逆恨みは感心しないね
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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