公式
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 part21
https://mevius.5ch.net/test/read.cgi/tech/1692105879/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.2ch.net/test/read.cgi/tech/1514107621/
探検
Rust part22
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2024/01/20(土) 23:21:40.08ID:wyzQTwgG443デフォルトの名無しさん
2024/02/08(木) 14:22:34.49ID:TVrzLD8V ウェブまわりはいろんな規格が入れ子状態だから名前空間で分離する仕組みも要るところでは要る。
XML の万能さは他には代えられない便利さはある。
ただ、それが要らないところでは負担がデカいのも本当だし、多くの場合には要らんかったわという気づきがあったんだよ。
XML もスキーマがあれば大幅に情報を短縮できるバイナリXMLの規格も出てるんで、
そういうのを活用すればそれほど過剰に冗長なわけではない。
XML の万能さは他には代えられない便利さはある。
ただ、それが要らないところでは負担がデカいのも本当だし、多くの場合には要らんかったわという気づきがあったんだよ。
XML もスキーマがあれば大幅に情報を短縮できるバイナリXMLの規格も出てるんで、
そういうのを活用すればそれほど過剰に冗長なわけではない。
444デフォルトの名無しさん
2024/02/08(木) 14:33:58.18ID:d7zFncjn >>436
例えがフロントエンドって急にレベル下がってワロタ
例えがフロントエンドって急にレベル下がってワロタ
445デフォルトの名無しさん
2024/02/08(木) 14:44:36.25ID:K+TPHqwf >>431
ゲームサーバーでも性能を極限まで高めることが要求されるような場合はprotobufやJSONはあまり使われない
↓ここでいうRaw Struct的なものが今でも使われてる
https://flatbuffers.dev/md__benchmarks.html
言語ニュートラルじゃないしサーバーとクライアントと同時アップデートしないといけないとかいろいろ制約あるけど性能が必要ならそれらの手間を惜しまない
ゲームサーバーでも性能を極限まで高めることが要求されるような場合はprotobufやJSONはあまり使われない
↓ここでいうRaw Struct的なものが今でも使われてる
https://flatbuffers.dev/md__benchmarks.html
言語ニュートラルじゃないしサーバーとクライアントと同時アップデートしないといけないとかいろいろ制約あるけど性能が必要ならそれらの手間を惜しまない
446デフォルトの名無しさん
2024/02/08(木) 14:50:39.80ID:L2e7Z7sZ447デフォルトの名無しさん
2024/02/08(木) 14:52:06.22ID:ZTHDKZhp >>440
早くxmlは滅んで欲しい。
早くxmlは滅んで欲しい。
448デフォルトの名無しさん
2024/02/08(木) 14:52:54.34ID:TVrzLD8V シリアライズやパースのコストは小さくはないけど、
メモリコピーのコストが多くを占めているという発見から
なるべくコピーを減らしたシリアライズの規格として message pack が
実行性能と可搬性を (ある程度に) 両立したものとして人気がある。
まあ要するにそれぞれに利点があるんでこれが決定版とはなかなか言えないんだよな。
ある程度の収斂はしたにしても両立不可能なトレードオフってものはある。
メモリコピーのコストが多くを占めているという発見から
なるべくコピーを減らしたシリアライズの規格として message pack が
実行性能と可搬性を (ある程度に) 両立したものとして人気がある。
まあ要するにそれぞれに利点があるんでこれが決定版とはなかなか言えないんだよな。
ある程度の収斂はしたにしても両立不可能なトレードオフってものはある。
449デフォルトの名無しさん
2024/02/08(木) 14:58:14.76ID:ug5u5xxX >>445
まあゲームだとデータの規格のバージョン互換性を考えなくていいし独自規格で暗号化も兼ねたシリアライズをしたほうが悪意あるデータの改ざん防止のための対策にもなりそう
てかデータ記述言語の話なんざクソほどどうでもいいんだが
まあゲームだとデータの規格のバージョン互換性を考えなくていいし独自規格で暗号化も兼ねたシリアライズをしたほうが悪意あるデータの改ざん防止のための対策にもなりそう
てかデータ記述言語の話なんざクソほどどうでもいいんだが
450デフォルトの名無しさん
2024/02/08(木) 15:04:17.46ID:2EtcR70r xmlだろうがjsonだろうがrest通すときはgzipするからどっちでもいいわ
451デフォルトの名無しさん
2024/02/08(木) 15:04:23.12ID:d7zFncjn452デフォルトの名無しさん
2024/02/08(木) 15:14:54.75ID:ug5u5xxX453デフォルトの名無しさん
2024/02/08(木) 15:16:59.91ID:ZTHDKZhp クライアントとサーバーで同じ "プログラミング言語" 使うことの話が、いつのにかプロトコルとデータシリアライズの話にすり変わってるし。
発端は >>426 あたりかな。
発端は >>426 あたりかな。
454デフォルトの名無しさん
2024/02/08(木) 15:26:56.26ID:L2e7Z7sZ >>451
分散オブジェクトの話とは状況が全く異なる
ウェブのサーバーサイドとクライアントサイドでのコード共通化は現在使われている最新技術
これを片側でしか行なわないと速度面すなわちブラウザを使う人間の体感面で不利となってしまう
両側ともにJavaScriptにするのが主流だがサーバーリソースコスト面で不利なため両側Rust化
分散オブジェクトの話とは状況が全く異なる
ウェブのサーバーサイドとクライアントサイドでのコード共通化は現在使われている最新技術
これを片側でしか行なわないと速度面すなわちブラウザを使う人間の体感面で不利となってしまう
両側ともにJavaScriptにするのが主流だがサーバーリソースコスト面で不利なため両側Rust化
455デフォルトの名無しさん
2024/02/08(木) 15:32:31.05ID:d7zFncjn >>454
別にお前のお気持ちは聞いてないよ
別にお前のお気持ちは聞いてないよ
456デフォルトの名無しさん
2024/02/08(木) 15:34:25.91ID:L2e7Z7sZ457デフォルトの名無しさん
2024/02/08(木) 15:39:43.48ID:lShPsUxC >>454
それwasmってやつ?ファイルサイズがjavascriptより大きくならない?
それwasmってやつ?ファイルサイズがjavascriptより大きくならない?
458デフォルトの名無しさん
2024/02/08(木) 15:46:12.86ID:rcfTmCHH フロントエンドってAPI受け取ってReactで画面描いてAPI送りつけるだけじゃん、これのどこがサーバーサイドとコード共通にすなるん??
459デフォルトの名無しさん
2024/02/08(木) 15:52:25.19ID:VkQAw5RB javascriptでサーバーサイドって言ってる時点で頭がおかしいからスルーでおけ
460デフォルトの名無しさん
2024/02/08(木) 15:57:01.04ID:z3sGsuBj nodejsで済むサーバーって自宅サーバーか何かか?
461デフォルトの名無しさん
2024/02/08(木) 16:06:02.61ID:34mhb8ps462デフォルトの名無しさん
2024/02/08(木) 16:07:53.03ID:d7zFncjn463デフォルトの名無しさん
2024/02/08(木) 16:08:25.23ID:34mhb8ps464デフォルトの名無しさん
2024/02/08(木) 16:43:53.73ID:ug5u5xxX WASMはあまりにアセンブリ言語すぎる
watで直接WASMを書いてコンパイルするのが一番バイナリのファイルサイズを抑えられるけど大変
watじゃなくて他の言語で書くにしてもstd使うとファイルサイズが爆増する
既存のライブラリをWASM化するならともかく、既存のJavaScriptコードをstd有りで書き直すのは、ファイルサイズがJavaScriptのときと比較して増えて本末転倒だからJavaScriptのままでいい
watやRust with no-stdでWASMを頑張る人は頑張って
watで直接WASMを書いてコンパイルするのが一番バイナリのファイルサイズを抑えられるけど大変
watじゃなくて他の言語で書くにしてもstd使うとファイルサイズが爆増する
既存のライブラリをWASM化するならともかく、既存のJavaScriptコードをstd有りで書き直すのは、ファイルサイズがJavaScriptのときと比較して増えて本末転倒だからJavaScriptのままでいい
watやRust with no-stdでWASMを頑張る人は頑張って
465デフォルトの名無しさん
2024/02/08(木) 16:54:49.99ID:GUaqsUfs466デフォルトの名無しさん
2024/02/08(木) 17:10:13.67ID:ug5u5xxX だめだ、WASM specを見直してるけど相変わらず何書いてあるのかわからん
467デフォルトの名無しさん
2024/02/08(木) 17:15:11.69ID:TVrzLD8V >>464
規模がデカいアプリケーションは std の大きさなんてどうでもよくなるくらいにデカい。
大規模化するウェブアプリケーションが想定されているから
JavaScript のほうが軽量であるときは JavaScript を使えばいいよ。
そうじゃないときがあるって話なんだよ。
規模がデカいアプリケーションは std の大きさなんてどうでもよくなるくらいにデカい。
大規模化するウェブアプリケーションが想定されているから
JavaScript のほうが軽量であるときは JavaScript を使えばいいよ。
そうじゃないときがあるって話なんだよ。
468デフォルトの名無しさん
2024/02/08(木) 17:20:27.37ID:K+TPHqwf 1コアで毎秒数万リクエスト処理するようなゲームサーバー的なものの話をしてると思ってたらSSRとかReactとか全く違うユースケースの話をしてる人達がいたのか
そりゃ話が噛み合わないわなぁ
そりゃ話が噛み合わないわなぁ
469デフォルトの名無しさん
2024/02/08(木) 17:26:24.69ID:Z/Y0D/hR 話を合わせようとしたら負け
駄文乱文を量産し続けて最後まで圧倒したやつの勝ち
駄文乱文を量産し続けて最後まで圧倒したやつの勝ち
470デフォルトの名無しさん
2024/02/08(木) 17:26:27.02ID:Z/Y0D/hR 話を合わせようとしたら負け
駄文乱文を量産し続けて最後まで圧倒したやつの勝ち
駄文乱文を量産し続けて最後まで圧倒したやつの勝ち
471デフォルトの名無しさん
2024/02/08(木) 17:33:18.45ID:wPAPAJoC >>467
その規模のデカいアプリケーションとやらがffmpegとかゲームとかをやるwasmならファイルサイズが大きくなる以上のメリットがあるからいいが、きれいなUIを表現するためにjavascriptよりファイルサイズの大きくなったwasmを使うのはアホとだけ言っておくわ
その規模のデカいアプリケーションとやらがffmpegとかゲームとかをやるwasmならファイルサイズが大きくなる以上のメリットがあるからいいが、きれいなUIを表現するためにjavascriptよりファイルサイズの大きくなったwasmを使うのはアホとだけ言っておくわ
472デフォルトの名無しさん
2024/02/08(木) 17:42:32.82ID:EBOg13nx >>464
Wasmではfsなど必要ないのだから
no_stdで全く問題なくプログラミングできます
Rustの基本はほとんどcoreに入っています
allocを使えばVecやStringも使えます
あと欲しくなるのはHashMapあたりでしょうがこれもhashbrownで使えます
一度no_stdでプログラミングしてみることをオススメします
Wasmではfsなど必要ないのだから
no_stdで全く問題なくプログラミングできます
Rustの基本はほとんどcoreに入っています
allocを使えばVecやStringも使えます
あと欲しくなるのはHashMapあたりでしょうがこれもhashbrownで使えます
一度no_stdでプログラミングしてみることをオススメします
473デフォルトの名無しさん
2024/02/08(木) 17:44:09.24ID:EBOg13nx474デフォルトの名無しさん
2024/02/08(木) 17:55:44.80ID:TVrzLD8V Rust で簡易アセンブラっぽいものを作ったことがあった (特に std を避けるとかしてない) ので
wasm で出力してみたけどだいたい 140kb くらいな感じ。
たぶん JavaScript で書いて最適化もすればもっと小さくは出来そうな感触はあるが
だからといって Rust でやって深刻に巨大すぎるということはない。
小さいプログラムのときでも Wasm は使い物になる。
いや、もちろん比較したら JavaScript で書いたほうがよいことも多いのだろうけど、
全くのアンチパターンってことはない。
wasm で出力してみたけどだいたい 140kb くらいな感じ。
たぶん JavaScript で書いて最適化もすればもっと小さくは出来そうな感触はあるが
だからといって Rust でやって深刻に巨大すぎるということはない。
小さいプログラムのときでも Wasm は使い物になる。
いや、もちろん比較したら JavaScript で書いたほうがよいことも多いのだろうけど、
全くのアンチパターンってことはない。
475デフォルトの名無しさん
2024/02/08(木) 17:56:24.51ID:ug5u5xxX >>472
いやー、watでいいかな
いやー、watでいいかな
476デフォルトの名無しさん
2024/02/08(木) 18:26:36.73ID:d7zFncjn Figmaはecmascripten使ってるそうだよ
C++で書いてWebGL用にコンパイル
おそらく世界最大のwasmコードだろう
https://www.figma.com/ja/blog/webassembly-cut-figmas-load-time-by-3x/
C++で書いてWebGL用にコンパイル
おそらく世界最大のwasmコードだろう
https://www.figma.com/ja/blog/webassembly-cut-figmas-load-time-by-3x/
477デフォルトの名無しさん
2024/02/08(木) 18:29:10.38ID:d7zFncjn 今のところrustよりはecmascriptenの方が既存コードを活かせる
478デフォルトの名無しさん
2024/02/08(木) 18:37:22.37ID://05Mhwl479デフォルトの名無しさん
2024/02/08(木) 18:41:39.17ID:d7zFncjn >>478
next.jsはUI部分だけでバックエンドはRustだから特に必要性は感じないね
next.jsはUI部分だけでバックエンドはRustだから特に必要性は感じないね
480デフォルトの名無しさん
2024/02/08(木) 18:54:05.90ID://05Mhwl >>479
Next.jsでSSRなら毎回JavaScriptのコードが動くわけだけど
「バックエンドはRustだから」って?
外から受ける部分のサーバはRustでもそこからNext.jsを動かすためのNode.jsなどを呼び出すことになるよね
Next.jsでSSRなら毎回JavaScriptのコードが動くわけだけど
「バックエンドはRustだから」って?
外から受ける部分のサーバはRustでもそこからNext.jsを動かすためのNode.jsなどを呼び出すことになるよね
481デフォルトの名無しさん
2024/02/08(木) 19:25:31.03ID:QINBs586 単にNext.jsがデータをフェッチする先のAPIエンドポイントがRust製ってだけだろ。
LBやらWebサーバーのような低レイヤがRust製かどうかみたいなのはそんなにユーザーに近いWeb屋が気にかけて手をいれる場所でもない。
LBやらWebサーバーのような低レイヤがRust製かどうかみたいなのはそんなにユーザーに近いWeb屋が気にかけて手をいれる場所でもない。
482デフォルトの名無しさん
2024/02/08(木) 19:29:46.46ID:0U3NNgcj 途中にビルド嚙ませれば同じにできるけど一般的にはCommonJSとECMAScriptで違う方言のJSでやり取りする事になるけどね
TypeScriptは使ってないから知らん
TypeScriptは使ってないから知らん
483デフォルトの名無しさん
2024/02/08(木) 19:34:55.22ID:XA34Vq7w484デフォルトの名無しさん
2024/02/08(木) 19:38:03.57ID:XODN4PGj next.jsは普通に速いよ
ビルドがクソ遅いだけで
他のエコシステムはもっと高速なんだけどねえ
ビルドがクソ遅いだけで
他のエコシステムはもっと高速なんだけどねえ
485デフォルトの名無しさん
2024/02/08(木) 19:54:29.48ID:vWC2S6ww サーバーサイドは可能な限りリソースコスト(クラウド代/ハード代電気代)を下げたい
Next.jsに限らずJavaScriptを含めた遅い言語の実行は避けたい
すべてをRust化するのが最善案
Next.jsに限らずJavaScriptを含めた遅い言語の実行は避けたい
すべてをRust化するのが最善案
486デフォルトの名無しさん
2024/02/08(木) 20:01:51.28ID:ZqeEswjg Next.js(Nuxt.js)はどんなにクソだとしても使わざるをえないものなんだよね
Next.js以上のものはもはや作れんよ
Next.js以上のものはもはや作れんよ
487デフォルトの名無しさん
2024/02/08(木) 20:03:16.79ID:XODN4PGj それな
App Routerが神過ぎるんよ
これのおかげでサーバーサイドエンジニアが全てコントロールできるようになった
App Routerが神過ぎるんよ
これのおかげでサーバーサイドエンジニアが全てコントロールできるようになった
488デフォルトの名無しさん
2024/02/08(木) 20:29:26.04ID:ZTHDKZhp >>464
forthみたいで面白くない?
forthみたいで面白くない?
489デフォルトの名無しさん
2024/02/08(木) 21:09:57.90ID:iGefvq8R Next.jsがRailsの息の根を止めたわけだが、
React+Next.js+〇〇
このバックエンド部分の〇〇がRustが活かせるところ
React+Next.js+〇〇
このバックエンド部分の〇〇がRustが活かせるところ
490デフォルトの名無しさん
2024/02/08(木) 21:15:13.68ID:fAoXwANU491デフォルトの名無しさん
2024/02/08(木) 22:03:30.31ID:z3hLjd3o もう大きくは変わらないんじゃないか?
正直俺はPages Routerまでのnext.jsはゴミだと思ってたから使ってなかった
しかしApp Routerを見たときまさに俺の求めているものだと感じた
多分これが最高地点だよ
正直俺はPages Routerまでのnext.jsはゴミだと思ってたから使ってなかった
しかしApp Routerを見たときまさに俺の求めているものだと感じた
多分これが最高地点だよ
492デフォルトの名無しさん
2024/02/09(金) 00:17:38.71ID:tjbjc/kZ 今はRuby on Rails でも、React/Next.js, TypeScript が転職で必須。
少し前は、Vue.js だったけど、Vue 3 は流行らなかった
Rails 7 からは、Hotwire に変わった。
HotwireはHTML Over The Wireの略で、
SPAの開発において、JavaScriptのコーディングを極力必要としない。
脱node.js, webpack
JSONではなく、HTMLベース。
サーバーサイドでHTMLを生成し、WebSocketでWebブラウザへ送信する
これで、Reactに取られたシェアを回復する
少し前は、Vue.js だったけど、Vue 3 は流行らなかった
Rails 7 からは、Hotwire に変わった。
HotwireはHTML Over The Wireの略で、
SPAの開発において、JavaScriptのコーディングを極力必要としない。
脱node.js, webpack
JSONではなく、HTMLベース。
サーバーサイドでHTMLを生成し、WebSocketでWebブラウザへ送信する
これで、Reactに取られたシェアを回復する
493デフォルトの名無しさん
2024/02/09(金) 06:07:49.74ID:79P7yOqB >>492
javascript使ったほうがラクなのになんでわざわざhtml縛りするの?
javascript使ったほうがラクなのになんでわざわざhtml縛りするの?
494デフォルトの名無しさん
2024/02/09(金) 07:43:30.04ID:uUxbU3bY Ruby信者はズレてるから仕方ない
495デフォルトの名無しさん
2024/02/09(金) 07:53:26.10ID:cmMrL7Ws SSRのsvelteはWebオーサリングツールから実画面に持っていきやすい
WebページのスクリプトにRust使えるブラウザとRust実装のsvelteを作ってもらいたい
WebページのスクリプトにRust使えるブラウザとRust実装のsvelteを作ってもらいたい
496デフォルトの名無しさん
2024/02/09(金) 08:55:44.38ID:so08h4Qi SvelteもNext.jsもサーバーサイドでJavaScriptを動かすためエコじゃないのでいずれ新たなものに置き換えられるでしょう
497デフォルトの名無しさん
2024/02/09(金) 09:34:26.12ID:Kdv0HxUE std::any::type_name_of_val()は学習時にも良さそ
498デフォルトの名無しさん
2024/02/09(金) 09:59:55.75ID:so08h4Qi 昔から使えるよ
fn type_name_of_val<T: ?Sized>(_val: &T) -> &'static str {
std::any::type_name::<T>()
}
fn type_name_of_val<T: ?Sized>(_val: &T) -> &'static str {
std::any::type_name::<T>()
}
499デフォルトの名無しさん
2024/02/09(金) 10:27:55.96ID:C39eXNkM >>493
JS使った方が楽という感覚は理解できんわ
JS使った方が楽という感覚は理解できんわ
500デフォルトの名無しさん
2024/02/09(金) 13:19:22.70ID:YdTAf9YB >>496
next.jsのapp routerがサーバーサイドフレームワークになったの知らないの?
next.jsのapp routerがサーバーサイドフレームワークになったの知らないの?
501デフォルトの名無しさん
2024/02/09(金) 13:59:04.29ID:wfDAL7tm リソースコストがかかるスクリプト言語をサーバーサイドで動かしてる連中はいずれ消えるさ
502デフォルトの名無しさん
2024/02/09(金) 14:16:42.17ID:YdTAf9YB503デフォルトの名無しさん
2024/02/09(金) 15:05:02.67ID:7wM1u29W どんどんrustの話から離れていってんな
504デフォルトの名無しさん
2024/02/09(金) 15:19:56.77ID:d4LbU2O8 SSRやCSRがややこしいと感じる意味がわからん
Next.jsのPage Router時代の区別がややこしかったと感じてるだけとちゃう?
特定の実装とは関係のない概念としてのSSRやCSRは別にややこしくも何ともないでしょ
ReactのサーバーコンポーネントはNext..jsではサーバーサイドでレンダリング(HTML生成される)、つまりSSR
クライアントコンポーネントはクライアントサイドでレンダリングされる、つまりCSR
ついでに言うとHotwireみたいなのも仕組みとしての基本的な考え方は同じ
Next.jsのPage Router時代の区別がややこしかったと感じてるだけとちゃう?
特定の実装とは関係のない概念としてのSSRやCSRは別にややこしくも何ともないでしょ
ReactのサーバーコンポーネントはNext..jsではサーバーサイドでレンダリング(HTML生成される)、つまりSSR
クライアントコンポーネントはクライアントサイドでレンダリングされる、つまりCSR
ついでに言うとHotwireみたいなのも仕組みとしての基本的な考え方は同じ
505デフォルトの名無しさん
2024/02/09(金) 15:26:09.73ID:wyTCEkUp Rustで引数の数を可変にしたいと思っただけでマクロが必要になるの、どういう思想なんだ
506デフォルトの名無しさん
2024/02/09(金) 15:36:06.60ID:gZOHhCrR >>505
型システムとの兼ね合い。
型システムとの兼ね合い。
507デフォルトの名無しさん
2024/02/09(金) 15:38:36.69ID:ixshWTAh >>505
オプショナル引数 → 数が少ないならOption多いならbuilder
可変長の引数 → スライス
マクロを使うのは個々の引数の扱いがそれぞれ異なりそれぞれをコンパイル時に型をチェックしたい場合などに使う
オプショナル引数 → 数が少ないならOption多いならbuilder
可変長の引数 → スライス
マクロを使うのは個々の引数の扱いがそれぞれ異なりそれぞれをコンパイル時に型をチェックしたい場合などに使う
508デフォルトの名無しさん
2024/02/09(金) 15:52:26.69ID:IKpgt5UR next.jsはRustフレンドリーなフレームワークだから実質Rustなんだよね
509デフォルトの名無しさん
2024/02/09(金) 16:25:40.87ID:YdTAf9YB >>504
その発想だとサーバーアクションは説明できないよ
その発想だとサーバーアクションは説明できないよ
510デフォルトの名無しさん
2024/02/09(金) 16:28:31.07ID:YdTAf9YB >>508
俺は将来的にnext.jsは全部rustで書きなおされると思ってる
俺は将来的にnext.jsは全部rustで書きなおされると思ってる
511デフォルトの名無しさん
2024/02/09(金) 16:37:49.82ID:DOCRBofH512デフォルトの名無しさん
2024/02/09(金) 17:13:49.98ID:wfDAL7tm >>510
同感
同感
513デフォルトの名無しさん
2024/02/09(金) 18:59:39.30ID:wyTCEkUp C++であれば関数のオーバーロードで実現していたようなことをRustでは全部封じてしまった結果、ライブラリは至る所マクロだらけ
これはRustの目指したいところなのか?
これはRustの目指したいところなのか?
514デフォルトの名無しさん
2024/02/09(金) 19:22:48.34ID:6IeD8Xf6 実行時の分岐ではなくコンパイル時のコード生成に置き換わるんだから
ゼロコスト抽象化という観点ではC++のほうがそちらを目指さなければいけなかったんじゃないでしょうか。
ゼロコスト抽象化という観点ではC++のほうがそちらを目指さなければいけなかったんじゃないでしょうか。
515デフォルトの名無しさん
2024/02/09(金) 19:24:12.28ID:6IeD8Xf6 あ、可変長引数の話とオーバーロードの話を混同してしまっていた。
516デフォルトの名無しさん
2024/02/09(金) 19:32:53.51ID:RpHX5dqz https://qiita.com/buntafujikawa/items/1bd808f5f55eb63df7c4
こういうの知ってたら
オーバーロードもデフォルト引数もいらね〜
どうしてもほしけりゃ別名の関数作るわ
ってならん?
こういうの知ってたら
オーバーロードもデフォルト引数もいらね〜
どうしてもほしけりゃ別名の関数作るわ
ってならん?
517デフォルトの名無しさん
2024/02/09(金) 19:45:04.86ID:qkcXaSLH 別名の関数を作りたくなるのはわからんでもないけど、実際crates.ioはそうならずにマクロだらけなので
518デフォルトの名無しさん
2024/02/09(金) 20:35:29.36ID:gZOHhCrR 田舎者は十年間使わない道具でも納屋にしまいっぱなしってことがまあまああるけど都会だとどんどん捨てるじゃん。
都会では物より空間のほうが高くつくから。
何が大事か、何を大事ということにするかで判断が変わる。
名前を考えるってのは人にとって思ったより負荷が高いということに対する解がオーバーロードなんだよ。
でもまあオーバーロードにもデメリットは当然ながらあるので結局は何を重視するかの問題。
都会では物より空間のほうが高くつくから。
何が大事か、何を大事ということにするかで判断が変わる。
名前を考えるってのは人にとって思ったより負荷が高いということに対する解がオーバーロードなんだよ。
でもまあオーバーロードにもデメリットは当然ながらあるので結局は何を重視するかの問題。
519デフォルトの名無しさん
2024/02/09(金) 23:53:50.41ID:qm1w3dJY オーバーロードは無くてもいいけどキーワード引数は欲しいかな
520デフォルトの名無しさん
2024/02/09(金) 23:59:48.02ID:D/1cks9J521デフォルトの名無しさん
2024/02/10(土) 02:54:22.21ID:rfU+NtYa >>520
いちいちstructを定義しなくてもいいようにするためにキーワード引数って存在してるんだよ
いちいちstructを定義しなくてもいいようにするためにキーワード引数って存在してるんだよ
522デフォルトの名無しさん
2024/02/10(土) 09:13:20.91ID:KcmgHb9l523デフォルトの名無しさん
2024/02/10(土) 09:40:29.45ID:d2BF2Jtb Rustでなぜデフォルト引数がサポートされてないのかはここでよろしく
https://www.reddit.com/r/rust/comments/fi6nov/why_does_rust_not_support_default_arguments/
https://www.reddit.com/r/rust/comments/fi6nov/why_does_rust_not_support_default_arguments/
524デフォルトの名無しさん
2024/02/10(土) 09:50:58.48ID:lXB6J68A 構造体を使うかビルダーパターンで困ることはないからね
もし技術的に矛盾のない他の良い方法があれば提案してみるべきだけど既出だと思うよ
もし技術的に矛盾のない他の良い方法があれば提案してみるべきだけど既出だと思うよ
525デフォルトの名無しさん
2024/02/10(土) 09:54:14.05ID:Lf9bQLCg ビルダーパターンは自分で書くならめんどい
526デフォルトの名無しさん
2024/02/10(土) 10:07:03.72ID:iJNhxzEm527デフォルトの名無しさん
2024/02/10(土) 10:08:52.95ID:QvZInASK ADAってどう?
528デフォルトの名無しさん
2024/02/10(土) 10:22:50.56ID:iJNhxzEm Adaってなんだと思って調べたら米国国防総省が主導のもとで開発されたプログラミング言語なんだね
後に開発されたC++やJavaに影響を与えたんだって
後に開発されたC++やJavaに影響を与えたんだって
529デフォルトの名無しさん
2024/02/10(土) 10:33:01.11ID:VP+Iax6j530デフォルトの名無しさん
2024/02/10(土) 10:33:37.95ID:2jz47bNZ パターンとかきしょすぎ
Javaみてえな文化
Javaみてえな文化
531デフォルトの名無しさん
2024/02/10(土) 10:36:17.39ID:VP+Iax6j532デフォルトの名無しさん
2024/02/10(土) 11:15:35.75ID:6T66/lvp533デフォルトの名無しさん
2024/02/10(土) 11:20:28.46ID:iJNhxzEm534デフォルトの名無しさん
2024/02/10(土) 11:21:55.77ID:xcSAMi5J キーワード引数のような劣った方法より構造体あるいはビルダーパターンが絶対にいいぞ
デフォルト値はまとめてDefault実装でがっちりコードも書けるしな
デフォルト値はまとめてDefault実装でがっちりコードも書けるしな
535デフォルトの名無しさん
2024/02/10(土) 11:24:20.16ID:iJNhxzEm キーワード引数は>>523に書いてあるように、いまだ有用な実装が挙がってないから無い
数年後には有用な実装が提言されてるかもしれないから待て
数年後には有用な実装が提言されてるかもしれないから待て
536デフォルトの名無しさん
2024/02/10(土) 11:32:26.22ID:iJNhxzEm パターンにアンチ的な考えを持つのはお門違い
Webアプリにしてもコア部分のライブラリにしても、一般的なデザインパターンに基づいて設計されていればあとから雇った技術者に引き継がせるのが楽ちん
デザインパターンのうちのひとつ、ビルダーパターンだって可読性、保守性に優れてるから使われているんだ
Webアプリにしてもコア部分のライブラリにしても、一般的なデザインパターンに基づいて設計されていればあとから雇った技術者に引き継がせるのが楽ちん
デザインパターンのうちのひとつ、ビルダーパターンだって可読性、保守性に優れてるから使われているんだ
537デフォルトの名無しさん
2024/02/10(土) 11:53:44.03ID:H5a70urg538デフォルトの名無しさん
2024/02/10(土) 11:54:44.92ID:H5a70urg 可読性・保守性のために追加のパターンの勉強が必要だなんて信じられない
まるでJavaみたいだ
まるでJavaみたいだ
539デフォルトの名無しさん
2024/02/10(土) 11:57:02.97ID:iJNhxzEm >>537
だってPythonはデザインパターンを意識しないと保守が面倒になるような複雑に設計すること自体がアンチパターンじゃんか
だってPythonはデザインパターンを意識しないと保守が面倒になるような複雑に設計すること自体がアンチパターンじゃんか
540デフォルトの名無しさん
2024/02/10(土) 12:00:29.93ID:iJNhxzEm >>539 アンチパターンは言い過ぎか、Pythonにだってデザインパターンの基本的な原則はあるんだから
541デフォルトの名無しさん
2024/02/10(土) 12:04:27.79ID:09Czk/ru >>537
Pythonは欠陥プログラミング言語として知られているように酷い状況だよ
特に酷いと言われてるのはPythonにはinterface機能がないこと
抽象クラスで無理に実現しても劣りコードも汚い
Pythonはプログラミングはせずにあくまでもスクリプトとして用いる範囲内で使うのがよい
Pythonは欠陥プログラミング言語として知られているように酷い状況だよ
特に酷いと言われてるのはPythonにはinterface機能がないこと
抽象クラスで無理に実現しても劣りコードも汚い
Pythonはプログラミングはせずにあくまでもスクリプトとして用いる範囲内で使うのがよい
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で ★3 [お断り★]
- トランプ氏、女性記者に「ブタ、静かに」 エプスタイン元被告めぐる質問さえぎる [1ゲットロボ★]
- 【株価】日経平均、上げ幅一時2000円超 5万円台を回復 [蚤の市★]
- 高市首相「台湾有事」発言引き出した「立憲・岡田克也氏」に聞いた質問の真意「これはマズイ発言だと」少しずらしてみたが焼け石に水 ★2 [ぐれ★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★3 [樽悶★]
- トランプ氏「台湾侵攻すれば北京爆撃」“過激予告発言”報道がXで再燃「高市氏の1億倍やばい」 [七波羅探題★]
- 【高市円暴落】 トランプ関税で激ヤバの🚗マツダ。 ドル、ユーロで円安の神風。 株価(´∀`∩)↑age↑ [485983549]
- ヤフコメ投稿が制限されました部 [787212328]
- 「ネトウヨが中国人以上の価格でホタテを買って食う」こんな簡単なことを前回も今回もできないのは不思議と話題 [158478931]
- トランプ「中国が他国産より高値で米国産大豆を大量購入してくれた。中国最高!」 どっかのバカ日本人との差w [271912485]
- インフルエンザにかかりやすい5つの特徴、「血糖値高め」「睡眠不足」「栄養不良」「アレルギーがある」「安倍晋三」 [748563222]
- 日本人「な、なぜだ?なぜこの件で日本を助けてくれる国が0カ国なんだ!?」。日本人、さすがに気づく [805596214]
