Rust part27

■ このスレッドは過去ログ倉庫に格納されています
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/19(水) 05:41:06.52ID:fTWiecdN
>>753
誰も今そんな話をしてないぞ
755デフォルトの名無しさん
垢版 |
2025/03/19(水) 12:22:06.99ID:WrL/Yuti
Traitが制約だと思ったんだろな
756デフォルトの名無しさん
垢版 |
2025/03/19(水) 12:28:38.82ID:WrL/Yuti
クラスはオブジェクトではないと言っても理解できなさそう
2025/03/19(水) 12:36:09.04ID:wTc70yxX
「指月の法」?
2025/03/19(水) 19:00:48.96ID:HOJerMIy
匿名性は対話の制約ではないが攻撃手段の制約ではある
759デフォルトの名無しさん
垢版 |
2025/03/19(水) 21:02:58.86ID:UDiJNll+
>>754
誰も観てないから安心汁
2025/03/19(水) 22:59:24.15ID:ISJvMewj
Rustでない真の理由もわかった

> TypeScriptのGo移植、なぜC#ではないのか?
> https:/zenn.dev/dinii/articles/typescript-go

・TypeScript の型システムは常軌を逸した複雑さになっていて他言語で再実装するのがほぼ困難
・約5万行のchecker.tsで実装されていてそのままTSのCompiler API として公開されている
・この公式の機能変更や微妙な動作を常に追従し続ける必要がありサードパーティ製の型チェックツールを作るのも現実的ではなく上手くいっていない
・公式で他言語で書くのも上述のTSそのままのAPI公開と細かな挙動を連動させる必要があるためrewriteは困難でコードをそのままportするしかない
・そのためクラスベースで書くC#等ではコードの違いが多くなり困難でありGCのないRust等でも困難となる
2025/03/19(水) 23:20:20.58ID:b0FVQxgZ
根本的には TypeScript の仕様がない状態が悪いんだけどね。
どう動くのが正しいかよくわからんのに全く違う形に再構成なんてできない。
挙動を変えないように軟着陸するにはベタ移植するのは妥当な選択。

それでふと Rust の仕様をまとめる件を連想したので確認してみたらあまり動きがないなぁ……
https://github.com/rust-lang/spec
2025/03/19(水) 23:59:12.09ID:wToXoaM5
世間の色んな古いシステム更新開発が失敗したり長引くのも
仕様がなかったり仕様と動いてるコードが食い違ってるため
2025/03/20(木) 00:02:49.63ID:iinwNT6F
eslintがなかなか最新のTypeScriptサポートできてないのもこういう謎言語仕様が残ってるのがあかんのだろうな
2025/03/20(木) 00:20:55.90ID:HhRcanws
Rustの言語仕様はRwLockやRefCellの仕様に連動する部分がある
が、RwLockの仕様が変更されるとは思えない
何らかのアルゴリズムがスレッドセーフである、というのは仕様ではなく事実だから
事実は変更できない
2025/03/20(木) 00:49:46.73ID:TAfwZREl
循環参照多くてRustのコンパイラのチェックにかかるってね
2025/03/20(木) 02:06:51.17ID:HhRcanws
ゼロコスト循環参照?
まるで財政黒字とムーンショットを同時に実現するみたいな
2025/03/20(木) 08:53:13.40ID:H11WmPqJ
async-stdが開発中止だってさ
ヤバいね
2025/03/20(木) 09:19:59.31ID:lw5lwif7
coffeescriptが死んだ理由も同じ
2025/03/20(木) 09:41:20.96ID:JPzwfaEh
>>767
smolに収束するだけだから問題ない
async-stdが使っているasync-ioはsmolのプロジェクト
async-fsやasync-netなどもsmol
2025/03/20(木) 09:52:35.44ID:g0LbdmRL
トーキーオ
2025/03/20(木) 11:21:13.60ID:IOPz16Jd
>>760
“困難”で思考停止してるうちは真の理解には至れないぞ
2025/03/20(木) 11:23:34.31ID:Mh4znie8
>>771
だから色々な言語を検討・試作した上で Go を選んだという話なんやが。
2025/03/20(木) 11:28:09.84ID:IOPz16Jd
>>772
実際にその判断をしたやつは理解してるけど>>760は理解してないという話なんやが。
2025/03/20(木) 11:37:41.12ID:RrGtH69G
楽をするためには困難を厭わないのがハッカー気質だが
ただ困難に突進して行くのは違うわな
2025/03/20(木) 11:50:42.98ID:g0LbdmRL
jsには仕様があるのにtsには無いとは~
2025/03/20(木) 12:07:12.01ID:jc9oQcIa
Rustて仕様書あったっけ?
2025/03/20(木) 14:49:19.51ID:PqZkwPwR
>>776
無い。
作る計画はある。
778デフォルトの名無しさん
垢版 |
2025/03/20(木) 15:40:09.53ID:gApbteYy
ソースが仕様
2025/03/20(木) 20:28:45.95ID:rtIGs5K9
>>771
仕様書が実装されたんじゃなくてコード実装が仕様なんだからこれは仕方がない
GCがないrust等に書き換えるのは現実的じゃない
2025/03/20(木) 20:41:26.42ID:rtIGs5K9
typeは内部で文字列ででも持ってるのか? "ANY"とか
そういうのをGoへ大部分機械で翻訳するのか
781デフォルトの名無しさん
垢版 |
2025/03/20(木) 21:12:58.82ID:i7M5tZpp
AI時代には仕様書がソースなんだ
2025/03/20(木) 21:42:01.77ID:Mh4znie8
型システムは形式論理の手法で書いてから適当な言語に変換みたいなのでいけそうな気がするが、そんな単純な話でもないんかね?
783デフォルトの名無しさん
垢版 |
2025/03/20(木) 22:06:39.51ID:eyw9NSl/
プロセッサは命令に型があって
データに型はない
2025/03/20(木) 22:49:36.11ID:Eo3vM0Mi
仕様書云々は基本的に関係ない
仕様だけじゃなく挙動を踏襲することで
ユーザーに負の影響がでるリスクを最小化する意図があるんだから

VS Codeの150万行が8秒程度でコンパイルできたら性能的には十分だろ?
リスクとコストとメリットデメリットのバランスを考えれば当然の判断
2025/03/20(木) 22:55:50.18ID:g0LbdmRL
node₋modulesの中にgoのバイナリがインストールされるのw
2025/03/20(木) 23:03:09.33ID:H11WmPqJ
>>785
今さら何言ってるの?
CやRustで書かれたバイナリだらけだぞ
2025/03/20(木) 23:16:29.52ID:g0LbdmRL
そうなんだ。無知だった
2025/03/20(木) 23:24:17.46ID:JPzwfaEh
JavaScriptもPythonも遅いからね
ライブラリはRustなどで書く
2025/03/20(木) 23:46:32.22ID:g0LbdmRL
ビルドで使うものはELFでいいけどブラウザ上だとwasmにするってことだよね
手元リポジトリにも何個かあったわ
2025/03/21(金) 00:27:25.14ID:kWaivJMR
俺もライブラリーは全部Rustで書き直した
単なる条件分岐とかシーケンス処理は何でもいいがデータベース周りの検索とかするようなのは少しでもメモリ消費抑えるのと高速化しといた方が他で楽できるからな
VSCodeの拡張機能なんかでも普通に中身はpython, TS, Rustほかいろいろ混在してることが多いよ。よくツギハギしてんなと感心することも多い。ユーザーに配布する前にビルドするからRustが苦手とする「ビルドクソ遅い」問題も影響出ないし
791デフォルトの名無しさん
垢版 |
2025/03/21(金) 09:13:54.82ID:ay/iUnFi
golangのほうが良いと思う
2025/03/21(金) 11:28:14.91ID:MjzRbdoZ
golangは例外捨てたのにunused resultの扱いがザルだから良くない

https://github.com/golang/go/issues/20803
2025/03/21(金) 17:49:17.17ID:3XC5KI0j
verboseであるけどバグにはつながることはない
100倍速いコンパイル速度のほうが魅力
2025/03/21(金) 18:46:39.69ID:HON6iU44
typescriptのAPIのソースみたらやはり型は文字列で比較している
2025/03/21(金) 19:04:53.56ID:l+dW9zqf
何のAPIの話してんだよ
脈略なくRustスレでいきなりTypeScriptのAPIについて語りだすとか気がふれてるとしか思えんぞ
796デフォルトの名無しさん
垢版 |
2025/03/21(金) 19:09:59.48ID:+UbngIjN
気が触れてなかったらプログラミングなんかしない
2025/03/21(金) 19:14:54.80ID:9KaMmcum
プログラミングなんてそんな高尚な能力じゃねーから
勘違いすんなよ凡人
798デフォルトの名無しさん
垢版 |
2025/03/21(金) 20:03:14.46ID:+UbngIjN
高尚だと思っているから凡人を見下すようなことを書き込めるのでは?
2025/03/21(金) 20:29:22.06ID:HON6iU44
>>780 からの >>794
で脈絡はある

コンテキスト長の短い人間にはなりたくないなと
2025/03/21(金) 20:50:56.42ID:NakMno3Y
他人を評価するのは、わざと自分より低い点数をつければいくらでも操作できるから無意味だな
2025/03/21(金) 20:55:28.43ID:kWaivJMR
コンテキスト長って何の言語のことだ?
フロントエンドフレームワークならコンテキストとかの概念はあるけど
2025/03/21(金) 20:57:19.52ID:pZb/IUdt
LLMじゃないかね
2025/03/21(金) 21:05:47.63ID:zo9K80Ew
async || {…} と || async {…} の違いみたいなもの
2025/03/22(土) 00:04:04.62ID:zZx6/hT2
>>799
>>780からして脈略なさすぎて草
完全にキチガイの独り言じゃん
しかも間違ってるしw
2025/03/22(土) 01:12:50.19ID:20oTaz9t
本当にコンテキスト長が短いと言うか前方参照性の乏しい人間だな
哀れだなと思うよ
2025/03/22(土) 01:36:57.26ID:lhCwsCEz
つくずくRust関連で賑わってる話題って
翻訳があーだこーだ
罵倒の水掛け論
ほかのプログラミング言語がどーだのこーだの
こんなんばっかり。
特に
>>805
はずっとスレを脱線させてる張本人じゃないかと思う。用語も独特で良くわからない造語病あるし。コンテキスト?とかの用語から何となくプログラマーじゃない雰囲気を感じ取ってる
(ReactやらSvelteにコンテキストはあるが自分でセットして使うかライブラリー内で依存関係として使われてるやつで長さとか関係ないし)
2025/03/22(土) 01:57:17.67ID:pEem+ZLp
コンテキストは一般的に使われる用語だぞ
それこそプログラミングのコンテキストでもよく使われる
コンテキスト長はまあ流行だからわざと使ってるんだろ
2025/03/22(土) 02:18:51.91ID:lhCwsCEz
>>807
コンテキストは知ってるよ。コンテキストに長さと言う概念持ち込むのがよく分からんだけ。単なるオブジェクトなんだから長いも短いもプログラマー次第じゃんと
2025/03/22(土) 02:22:12.11ID:UPRjExhr
>>806
現代のチャットAIサービスの対話内記憶力(過去の対話履歴の保持限界)のしょぼさは誰もが知るところであってな...
810デフォルトの名無しさん
垢版 |
2025/03/22(土) 02:53:44.38ID:U6/Lg1xx
>>805
だってAIだもん
2025/03/22(土) 03:27:10.02ID:By+tvoLU
科学臭防止のために
敢えて忘れっぽくしてあるんだろ
ボケ老人の無限ループと症状が良く似てる
2025/03/22(土) 08:02:31.40ID:U6/Lg1xx
そんなこともあるさ
AIだもの
2025/03/22(土) 08:46:20.81ID:20oTaz9t
粘着してくる馬鹿がこのご時世にLLMも知らないでなんでプログラムしてるのか謎すぎる
2025/03/22(土) 08:50:54.26ID:20oTaz9t
コンテキスト長でググって意味が判らないならもうプログラマ引退した方が良いレベルだよ

> つくずくRust関連で賑わってる話題って
つくづくだよ おじいちゃん
2025/03/22(土) 09:07:44.47ID:c11Lo5GV
つくずくにツッコむとか草
>>813-814みたいなお爺ちゃん丸出しなリアクションしてるのに本人は気ズいてないのも草
816デフォルトの名無しさん
垢版 |
2025/03/22(土) 09:14:42.51ID:5jLwffS+
RustよりGolangのほうがええぞ
2025/03/22(土) 09:15:11.34ID:nNEN9uWE
場合による。
2025/03/22(土) 09:23:26.99ID:JDdxCEyD
ほとんどのケースでGoが劣るけど
一部に互角なケースもある
2025/03/22(土) 09:23:52.43ID:20oTaz9t
GC有り言語のコードをGC有り言語に移すのは難易度が低いってだけ
Rustははるか前にGCを言語仕様から外したから選ばれなかった
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が不要なの
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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