公式
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 part27
https://mevius.5ch.net/test/read.cgi/tech/1733146370/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
Rust part28
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2025/03/24(月) 17:37:00.15ID:NJwebgj2783デフォルトの名無しさん
2025/04/28(月) 09:22:16.38ID:AuNLagCl >>739
30年前と違って今はweb系から先にプログラミング入門しちゃう人がいるんだな
30年前と違って今はweb系から先にプログラミング入門しちゃう人がいるんだな
784デフォルトの名無しさん
2025/04/28(月) 09:27:48.27ID:DzCqdkTm >>780
ずっと境界知能だが
ずっと境界知能だが
785デフォルトの名無しさん
2025/04/28(月) 09:38:56.02ID:8CAU371s >>782
Rustを学ぶのにC++の知識は全く不要
Rustはムーブも所有権もあっさり単純化されてる
むしろ複雑化しているC++の知識があるとかえって混乱する人もいれば
すぐにRustでは非常にシンプルになってると気付く人もいる
スタック領域とヒープ領域の違いといった現在のコンピューターの基本常識を身に着けていればRustの学習は大丈夫
ただし何のためにそんなことしているのか必要性の納得がいかない人は自分でCでmalloc()とfree()を使ってプログラムを書いてみる体験するしかないね
Rustを学ぶのにC++の知識は全く不要
Rustはムーブも所有権もあっさり単純化されてる
むしろ複雑化しているC++の知識があるとかえって混乱する人もいれば
すぐにRustでは非常にシンプルになってると気付く人もいる
スタック領域とヒープ領域の違いといった現在のコンピューターの基本常識を身に着けていればRustの学習は大丈夫
ただし何のためにそんなことしているのか必要性の納得がいかない人は自分でCでmalloc()とfree()を使ってプログラムを書いてみる体験するしかないね
786デフォルトの名無しさん
2025/04/28(月) 09:41:49.31ID:xqBJYdnj787デフォルトの名無しさん
2025/04/28(月) 10:06:05.66ID:L3M/APjY 英語圏のパッケージソフトやOSS等のドキュメントを読んでると日本がITで勝てない理由がよくわかるよね
論理的な言語能力が段違い
奴らRedditの便所の落書きですら関心するくらい論理的かつ丁寧だからな
論理的な言語能力が段違い
奴らRedditの便所の落書きですら関心するくらい論理的かつ丁寧だからな
788デフォルトの名無しさん
2025/04/28(月) 10:34:28.00ID:gd16jUat 時間の使い方がおかしいんじゃないの
プロが1分で思いついたムーブが、アマチュアが何時間か探索した手に勝てる保証は全くない
プロが1分で思いついたムーブが、アマチュアが何時間か探索した手に勝てる保証は全くない
789デフォルトの名無しさん
2025/04/28(月) 13:19:02.28ID:uQHt/LFN >>783
今はそんな子ばかりだよ。Javaも触ってないから型付き言語に憧れる。GoぐらいにしとけばいいのにRustやって恨み言を言ってるようだが、それはそう
今はそんな子ばかりだよ。Javaも触ってないから型付き言語に憧れる。GoぐらいにしとけばいいのにRustやって恨み言を言ってるようだが、それはそう
790デフォルトの名無しさん
2025/04/28(月) 21:56:45.28ID:W90Pka9c スレ読んでたら、今更Trait制約などと宣う馬鹿が居て驚いた
791デフォルトの名無しさん
2025/04/28(月) 22:03:15.48ID:LU5KMJmp 制約でも境界でもどちらでもいいからとっととthe rust book 最新版を翻訳して用語を統一しとけ。
最初に翻訳した方を使うことにするわ。
最初に翻訳した方を使うことにするわ。
792デフォルトの名無しさん
2025/04/28(月) 23:45:26.03ID:VLo3P2tE >>779
そういう段階を踏んだ学習をすればRustをほとんどの人が理解できるだろうけど下層プログラマーだけは理解できないと思う
下層プログラマーは既に現在のAIでもうすぐ不要となる人たちだから問題はなさそう
そういう段階を踏んだ学習をすればRustをほとんどの人が理解できるだろうけど下層プログラマーだけは理解できないと思う
下層プログラマーは既に現在のAIでもうすぐ不要となる人たちだから問題はなさそう
793デフォルトの名無しさん
2025/04/29(火) 00:00:51.63ID:qhqmYF5L プログラミングの学習ってそれだけじゃないからな
ジュニアクラスのエンジニアに仕事を教える上で、メモリ管理などの低レベルの技術を教えるよりも、Webの仕組み (インフラだったり、フロントエンドのフレームワークだったり) を教えた方が戦力として役立つという組織も多いだろう
もちろんRustが必要な分野もあるけど、そうでないならRustに時間をかけるより、もっと製品やサービスの開発に直結するものを学んだ方が効率が良い場面も多い
ジュニアクラスのエンジニアに仕事を教える上で、メモリ管理などの低レベルの技術を教えるよりも、Webの仕組み (インフラだったり、フロントエンドのフレームワークだったり) を教えた方が戦力として役立つという組織も多いだろう
もちろんRustが必要な分野もあるけど、そうでないならRustに時間をかけるより、もっと製品やサービスの開発に直結するものを学んだ方が効率が良い場面も多い
794デフォルトの名無しさん
2025/04/29(火) 00:15:51.93ID:qhqmYF5L 自分はWeb系詳しくないから分からんけど、他の言語に比べて特筆して使いやすいフレームワーク (ツールが揃ってるとか、学習リソースが多いなどの点も含めて) があるわけでもないでしょ?
言語の構文よりも、フレームワークの使いやすさや導入しやすさの方が技術選定の上では重要なはず
高パフォーマンスが必要な分野でC++よりもすっと開発しやすい言語だというのはそう
言語の構文よりも、フレームワークの使いやすさや導入しやすさの方が技術選定の上では重要なはず
高パフォーマンスが必要な分野でC++よりもすっと開発しやすい言語だというのはそう
795デフォルトの名無しさん
2025/04/29(火) 00:48:55.50ID:MtXZxAjC 合格ラインギリギリを狙うのが最高に効率が良い
多分AIもギリギリ驚いてあげてもいいレベルで止まる
多分AIもギリギリ驚いてあげてもいいレベルで止まる
796デフォルトの名無しさん
2025/04/29(火) 01:09:26.08ID:4awPUBx2 効率最重視なら当然ギリギリ合格するかどうかという水準がベスト
でも効率最重視より突き詰めて設計したいよね
マージンあった方が安心だぜ
でも効率最重視より突き詰めて設計したいよね
マージンあった方が安心だぜ
797デフォルトの名無しさん
2025/04/29(火) 02:08:43.12ID:Norf50c9798デフォルトの名無しさん
2025/04/29(火) 02:43:09.44ID:Evjw1qeU >>794
クラウドでは CPU やメモリに課金される。
クラウド上のサービスは経営者から金の動きの形で観測できるので高パフォーマンスを求める圧力が強くなってる。
ユーザから見た性能としては必要なくてもコストというわかりやすいビジネス的要因が絡んでる。
サービスの規模によるがウェブは高パフォーマンスが必要な分野なんだよ。
クラウドでは CPU やメモリに課金される。
クラウド上のサービスは経営者から金の動きの形で観測できるので高パフォーマンスを求める圧力が強くなってる。
ユーザから見た性能としては必要なくてもコストというわかりやすいビジネス的要因が絡んでる。
サービスの規模によるがウェブは高パフォーマンスが必要な分野なんだよ。
799デフォルトの名無しさん
2025/04/29(火) 02:47:28.58ID:Norf50c9 アクセス多いサービスはいいなあ
サーバ代10万くらいで済むと経営からの圧力など無い🥺
サーバ代10万くらいで済むと経営からの圧力など無い🥺
800デフォルトの名無しさん
2025/04/29(火) 02:57:41.06ID:KZALrqD+ >>690 >>797
スタートアップを含めてWebバックエンドでRustを採用すべき理由としてよくまとまってるとされてるのがこれ
https://dockyard.com/blog/2025/03/18/why-rust-is-winning-backend-systems-startup-must-know
Web関係はフロントエンドのJS/TS部分を除いてRustが最善解
スタートアップを含めてWebバックエンドでRustを採用すべき理由としてよくまとまってるとされてるのがこれ
https://dockyard.com/blog/2025/03/18/why-rust-is-winning-backend-systems-startup-must-know
Web関係はフロントエンドのJS/TS部分を除いてRustが最善解
801デフォルトの名無しさん
2025/04/29(火) 07:14:39.79ID:qhqmYF5L Rustが辛いという記事も同様に見つかるね
3年間使った上で最終的にRustを手放したという話なんかは、多分あなたよりもずっと真面目にRustに向き合った上でこの結論を出してると思うよ
https://www.propelauth.com/post/i-love-building-a-startup-in-rust-i-wouldnt-pick-it-again
https://loglog.games/blog/leaving-rust-gamedev/
https://deadmoney.gg/news/articles/migrating-away-from-rust
当然だけど「最高の言語」なんてものは無い
それは組織やプロジェクトの特性によるし、開発者が個々に判断すべき話
(Rustがそうでないのと同様に、Goが最高だとかC#が最高だとか、そんなものもあり得ない)
3年間使った上で最終的にRustを手放したという話なんかは、多分あなたよりもずっと真面目にRustに向き合った上でこの結論を出してると思うよ
https://www.propelauth.com/post/i-love-building-a-startup-in-rust-i-wouldnt-pick-it-again
https://loglog.games/blog/leaving-rust-gamedev/
https://deadmoney.gg/news/articles/migrating-away-from-rust
当然だけど「最高の言語」なんてものは無い
それは組織やプロジェクトの特性によるし、開発者が個々に判断すべき話
(Rustがそうでないのと同様に、Goが最高だとかC#が最高だとか、そんなものもあり得ない)
802デフォルトの名無しさん
2025/04/29(火) 07:59:59.47ID:4awPUBx2803デフォルトの名無しさん
2025/04/29(火) 08:10:37.04ID:SlclBfrE コンパイルの遅さ、中間生成物のでかさ、データ構造の変更に弱い、並列性周りのキャッチアップ
このあたりはRustの弱点よな
このあたりはRustの弱点よな
804デフォルトの名無しさん
2025/04/29(火) 08:11:53.11ID:LggudSN5 >>801
ちゃんとそれらの記事を読んだか?
それらを読んだが全てRustは素晴らしいという話だったぞ
1つ目の記事はRustの良い点を列挙してくれている
ただし最後に
「in Rust, for our use case, they both require at least a rough understanding of pinning」
RustだとPin留めについての理解が必要になるというだけの話だった
2つ目の記事の結論は
「Once you get good at Rust all of these problems will go away」
Rustを上達してしまえばこれらの問題はすべて解消されます
3つ目の記事はRustの問題ではない
今回のゲーム作りのタイプが(Rust製の)BevyよりUnityが向いていたというだけの話だった
そしてRustとBevyについても
「 I have immense respect for both and may well use them again for different projects.」
別のプロジェクトでは使う可能性があると書いている
ちゃんとそれらの記事を読んだか?
それらを読んだが全てRustは素晴らしいという話だったぞ
1つ目の記事はRustの良い点を列挙してくれている
ただし最後に
「in Rust, for our use case, they both require at least a rough understanding of pinning」
RustだとPin留めについての理解が必要になるというだけの話だった
2つ目の記事の結論は
「Once you get good at Rust all of these problems will go away」
Rustを上達してしまえばこれらの問題はすべて解消されます
3つ目の記事はRustの問題ではない
今回のゲーム作りのタイプが(Rust製の)BevyよりUnityが向いていたというだけの話だった
そしてRustとBevyについても
「 I have immense respect for both and may well use them again for different projects.」
別のプロジェクトでは使う可能性があると書いている
805デフォルトの名無しさん
2025/04/29(火) 09:07:02.50ID:2WjdTDVx やっぱRustは清書用だな、気楽にバグ有りでも良いから作る分には役割が重すぎる
806デフォルトの名無しさん
2025/04/29(火) 09:07:31.63ID:xTPXppS5 この決めつけで他人に圧を掛けるレスをずっとしてる病人はなんなんだろ?
807デフォルトの名無しさん
2025/04/29(火) 09:08:03.86ID:LggudSN5 >>805
何を根拠にそんな頓珍漢な主張を?
何を根拠にそんな頓珍漢な主張を?
808デフォルトの名無しさん
2025/04/29(火) 09:09:59.77ID:xTPXppS5 rustが使えない人間の方がこの世に多いし今後もそれは変わらない
こんな単純な事実を否定して使えないやつは馬鹿だみたいな圧を掛ける馬鹿
こんな単純な事実を否定して使えないやつは馬鹿だみたいな圧を掛ける馬鹿
809デフォルトの名無しさん
2025/04/29(火) 09:12:09.63ID:2WjdTDVx >>807
Pythonみたいなスクリプト言語と比べて気楽さはないでしょ
Pythonみたいなスクリプト言語と比べて気楽さはないでしょ
810デフォルトの名無しさん
2025/04/29(火) 09:21:01.67ID:5LYm1eZb811デフォルトの名無しさん
2025/04/29(火) 09:25:37.97ID:85zQBF62 801の一番目の記事で言われている、
> Perf is easy when you have AWS credits.
これはWeb分野固有の事情として極めてクリティカル
スタートアップ向けの無料クレジット云々はともかく、金さえ出せば解決するのは事実だからな
そして多くの場合、人間の時間の方が高い
> Perf is easy when you have AWS credits.
これはWeb分野固有の事情として極めてクリティカル
スタートアップ向けの無料クレジット云々はともかく、金さえ出せば解決するのは事実だからな
そして多くの場合、人間の時間の方が高い
812デフォルトの名無しさん
2025/04/29(火) 09:27:24.85ID:yenpBK7D813デフォルトの名無しさん
2025/04/29(火) 09:33:07.30ID:MtXZxAjC 熊を生け捕りにする「圧」がもし本当にあるなら猟銃は必要なくなる
814デフォルトの名無しさん
2025/04/29(火) 09:34:23.44ID:Lw8Z4q0k815デフォルトの名無しさん
2025/04/29(火) 09:37:59.27ID:85zQBF62 >>814
実際に10倍高く、かつそれが機会損失コストと人件費を上回ることが予測できた段階で置き換えればよい
君が実際にプロダクションのWeb開発をやったことがあればわかるはずだが、そんな状況は滅多にお目にかかれない
実際に10倍高く、かつそれが機会損失コストと人件費を上回ることが予測できた段階で置き換えればよい
君が実際にプロダクションのWeb開発をやったことがあればわかるはずだが、そんな状況は滅多にお目にかかれない
816デフォルトの名無しさん
2025/04/29(火) 09:40:09.63ID:5wcVf3HC >>811
記事その部分の前提を見てごらん。
every new employee that isn’t familiar with Rust will run into this. You’ll either need to prioritize Rust experience when hiring or get good at training people.
つまりRustに不慣れな人にとっては、Rustを使わずにAWSに高い料金を払った方が良い場合がある、というだけであって、Rustに慣れてしまえばRustで書いた方が良いね。
記事その部分の前提を見てごらん。
every new employee that isn’t familiar with Rust will run into this. You’ll either need to prioritize Rust experience when hiring or get good at training people.
つまりRustに不慣れな人にとっては、Rustを使わずにAWSに高い料金を払った方が良い場合がある、というだけであって、Rustに慣れてしまえばRustで書いた方が良いね。
817デフォルトの名無しさん
2025/04/29(火) 09:43:15.06ID:SlclBfrE やっぱりRustを使える自分,にアイデンティティの拠り所を求めてるやつがいるなぁ
あるいは知識だけあって使えない反動で書いてるのかな
あるいは知識だけあって使えない反動で書いてるのかな
818デフォルトの名無しさん
2025/04/29(火) 09:43:33.48ID:5wcVf3HC >>815
それはクラウドに高い料金を支払い続けることになり損でしょう。
Web利用側にとっても、反応が速いほうがうれしいでしょう。
Rustに慣れてしまえば解決する問題なのだから、Rustで書くのが正解だと思うよ。
それはクラウドに高い料金を支払い続けることになり損でしょう。
Web利用側にとっても、反応が速いほうがうれしいでしょう。
Rustに慣れてしまえば解決する問題なのだから、Rustで書くのが正解だと思うよ。
819デフォルトの名無しさん
2025/04/29(火) 09:50:15.06ID:MtXZxAjC Rustを使える者、の集合がどうしても必要なのは統計学者だよ
個人のアイデンティティではなく集合の定義が必要なのだ
個人のアイデンティティではなく集合の定義が必要なのだ
820デフォルトの名無しさん
2025/04/29(火) 09:52:34.33ID:xTPXppS5 こいつなんでいつもIDコロコロしてんの?
821デフォルトの名無しさん
2025/04/29(火) 09:53:09.96ID:85zQBF62 >>818
経験があるなら当然知っているはずだが、残念ながらWebのボトルネックはほとんどの場合IOとDBなのです
経験があるなら当然知っているはずだが、残念ながらWebのボトルネックはほとんどの場合IOとDBなのです
822デフォルトの名無しさん
2025/04/29(火) 10:00:39.70ID:uEyS9h0C 「俺はRustが使えないから遅くてもPythonで書いたほうが効率がいいんだ!」と言う主張にも一理ある
しかしそれは個人の事情だろう
Rustスレに書き込んでここを荒らす必要があるのか?
今後はどうしてもRustを叩きたいならば専用のRustアンチスレに書き込みなさい
Rustアンチスレ
https://mevius.5ch.net/test/read.cgi/tech/1509028624/
しかしそれは個人の事情だろう
Rustスレに書き込んでここを荒らす必要があるのか?
今後はどうしてもRustを叩きたいならば専用のRustアンチスレに書き込みなさい
Rustアンチスレ
https://mevius.5ch.net/test/read.cgi/tech/1509028624/
823デフォルトの名無しさん
2025/04/29(火) 10:03:44.71ID:xTPXppS5824デフォルトの名無しさん
2025/04/29(火) 10:08:41.96ID:6lSK2oCI >>821
だからこそRustが有利というのがこの業界の常識
RustならばそのWebのIOとDB待ちの間に並行かつ並列でいくらでも他を安全に捌くことができる
そのためWebの世界はどんどんRust化が進んでいる
ちなみにRustの側でも最も使われている分野がWebサーバーサイドとアンケート結果が出ている
だからこそRustが有利というのがこの業界の常識
RustならばそのWebのIOとDB待ちの間に並行かつ並列でいくらでも他を安全に捌くことができる
そのためWebの世界はどんどんRust化が進んでいる
ちなみにRustの側でも最も使われている分野がWebサーバーサイドとアンケート結果が出ている
825デフォルトの名無しさん
2025/04/29(火) 10:09:02.51ID:qhqmYF5L >>804
Rustへの称賛以外の文章が目に見えない病気なんですかね…
1番目は最後の締めくくりで
But if I look back at it, as much as I love Rust, I absolutely would not choose Rust again.
と言ってるのだけど
開発者が個人としてRustが好きというのと、自分のチームでRustを選ぶべきかというのは別問題
自分もRustは好きだけど、会社だと現状ごく一部のプロジェクトでしか使えないと思ってるし、全てRustという主張は馬鹿だと分かる程度の良識はあるぞ
Rustへの称賛以外の文章が目に見えない病気なんですかね…
1番目は最後の締めくくりで
But if I look back at it, as much as I love Rust, I absolutely would not choose Rust again.
と言ってるのだけど
開発者が個人としてRustが好きというのと、自分のチームでRustを選ぶべきかというのは別問題
自分もRustは好きだけど、会社だと現状ごく一部のプロジェクトでしか使えないと思ってるし、全てRustという主張は馬鹿だと分かる程度の良識はあるぞ
826デフォルトの名無しさん
2025/04/29(火) 10:15:18.14ID:6lSK2oCI Rustを使えない人がいるからRustを使えないケースがあるというのは当たり前だけどそのチームの問題だからここで取り上げても意味ないんじゃないかな
このスレはRustを使いたい人や学びたい人だけで十分
例えばC++のスレでC++を使えない人もいるんだ!とか言い出したら完全に荒らし行為だぞ
このスレはRustを使いたい人や学びたい人だけで十分
例えばC++のスレでC++を使えない人もいるんだ!とか言い出したら完全に荒らし行為だぞ
827デフォルトの名無しさん
2025/04/29(火) 10:20:15.08ID:xTPXppS5 c++はほぼ誰でも普通に使えるだろ
メモリリークなどが発生するだけで
メモリリークなどが発生するだけで
828デフォルトの名無しさん
2025/04/29(火) 10:25:53.49ID:85zQBF62829デフォルトの名無しさん
2025/04/29(火) 10:27:02.06ID:6lSK2oCI >>827
C++使えるならRustも使える
そんなことよりもだな
Rustを使えない人が、Rustを使えないからRustを使うのはよくない!反対!とRustスレに書き込みに来るのはおかしい
荒らし行為だ
C++使えるならRustも使える
そんなことよりもだな
Rustを使えない人が、Rustを使えないからRustを使うのはよくない!反対!とRustスレに書き込みに来るのはおかしい
荒らし行為だ
830デフォルトの名無しさん
2025/04/29(火) 10:29:40.74ID:6lSK2oCI831デフォルトの名無しさん
2025/04/29(火) 10:29:40.82ID:xTPXppS5832デフォルトの名無しさん
2025/04/29(火) 10:31:19.04ID:6lSK2oCI833デフォルトの名無しさん
2025/04/29(火) 10:32:07.53ID:xTPXppS5 普通にストローマン論法だね
相手の主張を捻じ曲げてそれに対して批判するやり方
相手の主張を捻じ曲げてそれに対して批判するやり方
834デフォルトの名無しさん
2025/04/29(火) 10:33:11.40ID:xTPXppS5 > C++使えるならRustも使え
これは間違い
これは間違い
835デフォルトの名無しさん
2025/04/29(火) 10:36:53.75ID:6lSK2oCI スレを荒らしてる人は自覚ないのかな
ここはRustを使いたい人のためのRustスレ
Rustアンチスレがちゃんと別にあるのだから棲み分けしよう
ここはRustを使いたい人のためのRustスレ
Rustアンチスレがちゃんと別にあるのだから棲み分けしよう
836デフォルトの名無しさん
2025/04/29(火) 10:48:01.46ID:jqe5wR1K Rustは好きだけど、Rustを過剰に持ち上げるカルティストは嫌い
こういう輩のせいでRustは信者がうざいとか言われるし、まともな開発者にも迷惑がかかる
良い点も悪い点も含めて、言語の特性や現状を正しく認識しようというのがなぜできないのか
こういう輩のせいでRustは信者がうざいとか言われるし、まともな開発者にも迷惑がかかる
良い点も悪い点も含めて、言語の特性や現状を正しく認識しようというのがなぜできないのか
837デフォルトの名無しさん
2025/04/29(火) 10:54:37.77ID:MtXZxAjC838デフォルトの名無しさん
2025/04/29(火) 10:59:16.54ID:k6/eUMBS839デフォルトの名無しさん
2025/04/29(火) 11:00:35.07ID:xTPXppS5 狂信者がrustの地位や評判を落としてるのでその他の人間には迷惑
840デフォルトの名無しさん
2025/04/29(火) 11:03:29.06ID:nQBNOV6L 言語にアイデンティティを求めてる人の極論はともかく、他は別にRustを叩いているようにも荒らしているようにも見えないな
議論をするときには自己のポジションとアイデンティティを自分の中で区別しておいた方がいい
このスレは優しい方で、特にRustを採用できるような分野でやってきたいならそれができないと辛い思いするよ
議論をするときには自己のポジションとアイデンティティを自分の中で区別しておいた方がいい
このスレは優しい方で、特にRustを採用できるような分野でやってきたいならそれができないと辛い思いするよ
841デフォルトの名無しさん
2025/04/29(火) 11:07:36.96ID:k6/eUMBS842デフォルトの名無しさん
2025/04/29(火) 11:13:28.83ID:xTPXppS5 陰暴論でなんでもない
> C++使えるならRustも使える
これが間違いだと理解できないのは狂信者だろ
C++は型あり言語からやってきたらだいたいの人はコードを書ける
ただ危険なコードも容易に書ける
Rustはそれを阻止するために縛りがある 危険でない部分でもそれが必要になる
その概念を理解しないとコンパイルエラーから抜け出せないので実用的な成果物は作れない
> C++使えるならRustも使える
これが間違いだと理解できないのは狂信者だろ
C++は型あり言語からやってきたらだいたいの人はコードを書ける
ただ危険なコードも容易に書ける
Rustはそれを阻止するために縛りがある 危険でない部分でもそれが必要になる
その概念を理解しないとコンパイルエラーから抜け出せないので実用的な成果物は作れない
843デフォルトの名無しさん
2025/04/29(火) 11:21:05.72ID:Gj8Ry772 >>842
Rust初心者がコンパイル通らなくて困ってるのかな
どの言語でもその言語の決まりを守らないとコンパイルエラーだよ
C++に関して言えば弱い型付け言語で未定義動作もエラーにしないからコンパイルエラーは少なくなるけど
今は強い型付けで未定義動作を許さない言語のほうが主流になってるよ
Rust初心者がコンパイル通らなくて困ってるのかな
どの言語でもその言語の決まりを守らないとコンパイルエラーだよ
C++に関して言えば弱い型付け言語で未定義動作もエラーにしないからコンパイルエラーは少なくなるけど
今は強い型付けで未定義動作を許さない言語のほうが主流になってるよ
844デフォルトの名無しさん
2025/04/29(火) 11:35:49.34ID:MtXZxAjC >危険でない部分でもそれが必要になる
ギリギリ危険でないコードを不合格にするんだな
極めてなにか効率にたいする侮辱を感じます
ギリギリ危険でないコードを不合格にするんだな
極めてなにか効率にたいする侮辱を感じます
845デフォルトの名無しさん
2025/04/29(火) 11:50:27.89ID:85zQBF62 可変参照の排他性なんかは場合によっては効率性を犠牲にしても安全側に倒してる例だね。
846デフォルトの名無しさん
2025/04/29(火) 11:58:15.87ID:Gj8Ry772847デフォルトの名無しさん
2025/04/29(火) 12:02:19.93ID:Evjw1qeU C++ を使えている人なら Rust のチュートリアルを読めば簡単な実務を始められるくらいにはなれそうな感覚があるんだけどなぁ。
難易度の高さをしきりに主張する人がずっといるのがなんだかよくわからない。
いや、難しいと感じる人だっているというのを否定するつもりはないんだけどさ……
C++ はかなり面倒な部類だぞ。
その面倒な C++ を使いこなせるくらいの能力という前提を付けられるときに Rust がそこまで激烈にしんどいか?
難易度の高さをしきりに主張する人がずっといるのがなんだかよくわからない。
いや、難しいと感じる人だっているというのを否定するつもりはないんだけどさ……
C++ はかなり面倒な部類だぞ。
その面倒な C++ を使いこなせるくらいの能力という前提を付けられるときに Rust がそこまで激烈にしんどいか?
848デフォルトの名無しさん
2025/04/29(火) 12:13:51.06ID:85zQBF62 C++からの移行についてはそれほど議論の余地はなくて、周辺環境が許せば移行すればよい、で終わり
C++の開発というのは比較的ニッチかつ保守的なので、C++を使っていて、かつ周辺環境が移行を許す状況というのがそもそも稀
C++の開発というのは比較的ニッチかつ保守的なので、C++を使っていて、かつ周辺環境が移行を許す状況というのがそもそも稀
849デフォルトの名無しさん
2025/04/29(火) 12:50:13.98ID:qhqmYF5L C++が分かるならRustは学びやすい、というのはその通り
だけどそもそもC/C++をやらずに仕事できてる人も今はずっと多いわけで
> C++ はかなり面倒な部類だぞ。
> その面倒な C++ を使いこなせるくらいの能力という前提を付けられるときに
の「前提」というのが既に世間一般の感覚とズレてるのでないかと思う
だけどそもそもC/C++をやらずに仕事できてる人も今はずっと多いわけで
> C++ はかなり面倒な部類だぞ。
> その面倒な C++ を使いこなせるくらいの能力という前提を付けられるときに
の「前提」というのが既に世間一般の感覚とズレてるのでないかと思う
850デフォルトの名無しさん
2025/04/29(火) 13:27:22.82ID:uvfd+gUP C++は学んだことないけど
スタック領域とヒープ領域の違いは理解できていたからRustを学ぶうえで特に困ったことはなかったよ
ライフタイムも関数を抜けたら消えちゃうスタック領域とその変数に管理されて依存するヒープ領域
関数の呼び出し入れ子で祖先側のスタック領域は子孫側のスタック領域より長生きというだけの話だった
スタック領域とヒープ領域の違いは理解できていたからRustを学ぶうえで特に困ったことはなかったよ
ライフタイムも関数を抜けたら消えちゃうスタック領域とその変数に管理されて依存するヒープ領域
関数の呼び出し入れ子で祖先側のスタック領域は子孫側のスタック領域より長生きというだけの話だった
851デフォルトの名無しさん
2025/04/29(火) 13:56:05.54ID:Evjw1qeU852デフォルトの名無しさん
2025/04/29(火) 14:28:41.68ID:V0qLshIG Rustは脳死で使えるイディオムが豊富なので楽
C++は時代によって流儀が変わりすぎる
C++は時代によって流儀が変わりすぎる
853デフォルトの名無しさん
2025/04/29(火) 14:32:21.54ID:4awPUBx2 昔からム板は平均より遥かに上のひとしかおらんがな
平均的なプログラマーは3年目ぐらいからは勉強すらしてないし
平均的なプログラマーは3年目ぐらいからは勉強すらしてないし
854デフォルトの名無しさん
2025/04/29(火) 16:32:22.17ID:YYaK7+X4 >>852
C++ は設計理念のひとつとしてプログラマに選択の余地を与える (間違いの可能性があっても) というものを含んでいるので意図通りの結果ではある。
分野ごとの流儀や時代の要請が言語の流儀と噛み合わなくなると単にその言語が使われなくなるだけなので長く生き残るには (汚くても) 色々とできるように詰め込むしか仕方がないんだ。
C++ は設計理念のひとつとしてプログラマに選択の余地を与える (間違いの可能性があっても) というものを含んでいるので意図通りの結果ではある。
分野ごとの流儀や時代の要請が言語の流儀と噛み合わなくなると単にその言語が使われなくなるだけなので長く生き残るには (汚くても) 色々とできるように詰め込むしか仕方がないんだ。
855デフォルトの名無しさん
2025/04/29(火) 16:32:23.99ID:jZEw8P94 ム板が平均よりはるかに上?
856デフォルトの名無しさん
2025/04/29(火) 16:48:30.04ID:YYaK7+X4 大半の人は情報収集しないしコミュニティに属さないのは本当だ。
そういう意味では多少なりとも交流を持とうとしているのは平均以上の可能性が高い。
その一方で、ガチの上級者はガチの業務をしてるしガチなコミュニティに属しているからこんなとこにいない。
そういう意味では多少なりとも交流を持とうとしているのは平均以上の可能性が高い。
その一方で、ガチの上級者はガチの業務をしてるしガチなコミュニティに属しているからこんなとこにいない。
857デフォルトの名無しさん
2025/04/29(火) 17:51:47.71ID:uvfd+gUP >>854
Rustはどうしても必要不可欠ならばその汚いもの(unsafe)を関数やモジュールやクレートの中に閉じ込めて清らかな(safe)インターフェイスを公開する枠組みを持たせたね
そのように閉じ込めることでコンパイラによる自動保証の外の範囲も限定して管理できるようになり安全性と柔軟性や高速性の両立バランスをRustは手に入れた
Rustはどうしても必要不可欠ならばその汚いもの(unsafe)を関数やモジュールやクレートの中に閉じ込めて清らかな(safe)インターフェイスを公開する枠組みを持たせたね
そのように閉じ込めることでコンパイラによる自動保証の外の範囲も限定して管理できるようになり安全性と柔軟性や高速性の両立バランスをRustは手に入れた
858デフォルトの名無しさん
2025/04/29(火) 18:17:31.81ID:MtXZxAjC 交流しているのは評論家だけ
クリエイターの能力値はDS並に謎に包まれている
クリエイターの能力値はDS並に謎に包まれている
859デフォルトの名無しさん
2025/04/29(火) 18:25:25.23ID:1/cFi/QG いちいち訳語につっかかったり普及してるかどうかのレスバしかしてない奴らの集団が平均以上なわけないじゃん
860デフォルトの名無しさん
2025/04/29(火) 18:37:35.61ID:qhqmYF5L Rustでイディオムっぽく感じるのって個人的にはビルダーくらいな気がする
オプション引数やオーバーロードが無いから慣習的にビルダーを多様する、みたいなもので
他は割と言語デザインに沿って素直に書けるという感じ
オプション引数やオーバーロードが無いから慣習的にビルダーを多様する、みたいなもので
他は割と言語デザインに沿って素直に書けるという感じ
861デフォルトの名無しさん
2025/04/29(火) 18:45:02.43ID:Q2Q+JRXz どっかでビルダーパターンは良くないぞ、考え直せって記事を読んだ気がするが
内容を忘れてしまった
誰か教えて
内容を忘れてしまった
誰か教えて
862デフォルトの名無しさん
2025/04/29(火) 19:13:59.81ID:Evjw1qeU ウェブショッピンクサービス ViaWeb (後に Yahoo に買われた) の創設者であるポール・グレアムはイディオム (デザインパターン) が必要とされる言語は悪い言語だと述べてる。
頻繁に使われるパターンがあるならそのパターンは言語機能やライブラリになっているべきで、ユーザがパターンに沿って書くのはあほくさいという話。
頻繁に使われるパターンがあるならそのパターンは言語機能やライブラリになっているべきで、ユーザがパターンに沿って書くのはあほくさいという話。
863デフォルトの名無しさん
2025/04/29(火) 19:30:07.84ID:Evjw1qeU >>857
汚い部分を隠して残る綺麗な部分は Rust の流儀だ。
Rust では Rust 的ではない抽象化ができないようになっている。
C++ 的な混沌よりは Rust の流儀を強制されたほうが今のところはマシなんだが、そうはいっても未来がどうなるかはわからんからなぁ……という現実が理想的ではないという話。
汚い部分を隠して残る綺麗な部分は Rust の流儀だ。
Rust では Rust 的ではない抽象化ができないようになっている。
C++ 的な混沌よりは Rust の流儀を強制されたほうが今のところはマシなんだが、そうはいっても未来がどうなるかはわからんからなぁ……という現実が理想的ではないという話。
864デフォルトの名無しさん
2025/04/29(火) 19:30:23.61ID:o2zlgANI リスパーの言うことなんか聞くな
865デフォルトの名無しさん
2025/04/29(火) 19:40:07.38ID:XmZc7X21 BufWriterとかでnewにinnerを丸呑みさせて用が済んだらinto_innerで摘出するパターンもRust特有だと思う
他の言語だとinnerは参照で渡しそうだけどRustでそれやると可変参照のライフタイムでカオスになる
このパターンに慣れるまで何回かカオスを経験した
他の言語だとinnerは参照で渡しそうだけどRustでそれやると可変参照のライフタイムでカオスになる
このパターンに慣れるまで何回かカオスを経験した
866デフォルトの名無しさん
2025/04/29(火) 19:41:32.29ID:Evjw1qeU Common Lisp は有用な選択肢だと思うけどなあ。
ガッとラフに作れるというのと機械語レベルでのチューニングもできるという良いとこ取りだ。
ただ、ユーザが少ないと使えるライブラリも少なくて、だからユーザが伸びないというスパイラルがある。
物量が正義というのが現実なんだよね……。
ガッとラフに作れるというのと機械語レベルでのチューニングもできるという良いとこ取りだ。
ただ、ユーザが少ないと使えるライブラリも少なくて、だからユーザが伸びないというスパイラルがある。
物量が正義というのが現実なんだよね……。
867デフォルトの名無しさん
2025/04/29(火) 19:45:09.79ID:85zQBF62 builder嫌い
たかが構造体にパラメータ詰めるだけのことにいちいちオリジナリティを出すな
たかが構造体にパラメータ詰めるだけのことにいちいちオリジナリティを出すな
868デフォルトの名無しさん
2025/04/29(火) 19:52:58.08ID:Zs9DBDpd >>848
RustとC++の相性は最悪
RustとC++の相性は最悪
869デフォルトの名無しさん
2025/04/29(火) 20:05:56.08ID:Q2Q+JRXz870デフォルトの名無しさん
2025/04/29(火) 21:09:44.91ID:FS6BNYIE >>861
これかな?
ビルダーの代わりにinit struct pattern というのを提案してる
https://xaeroxe.github.io/init-struct-pattern/
ボイラープレートが少なくて簡単だけど、初期化用の構造体のフィールドがpublicなのは好みが分かれる
現状はビルダーの方が主流
外部に公開するライブラリのAPIとして使うのは微妙だけど、自分たちのコードの内部で使う分にはアリかもしれない
これかな?
ビルダーの代わりにinit struct pattern というのを提案してる
https://xaeroxe.github.io/init-struct-pattern/
ボイラープレートが少なくて簡単だけど、初期化用の構造体のフィールドがpublicなのは好みが分かれる
現状はビルダーの方が主流
外部に公開するライブラリのAPIとして使うのは微妙だけど、自分たちのコードの内部で使う分にはアリかもしれない
871デフォルトの名無しさん
2025/04/29(火) 21:30:51.12ID:Q2Q+JRXz872デフォルトの名無しさん
2025/04/29(火) 22:02:39.41ID:MtXZxAjC 車オブジェクトに高度を変えるメソッドがあったらおかしい
空飛ぶ車オブジェクトは一時的にメソッドの存在自体を消すシステムをもつべき
空飛ぶ車オブジェクトは一時的にメソッドの存在自体を消すシステムをもつべき
873デフォルトの名無しさん
2025/04/30(水) 01:02:26.08ID:RVMp5la+ こっち見といたほうがいいと思う
https://kerkour.com/rust-abolish-the-builder-pattern
YakShaverInitをinitしてYakShaver返すとかいろんな意味で微妙
YakShaverBuilderをbuildしてYakShaver返す癖が抜けてない
https://kerkour.com/rust-abolish-the-builder-pattern
YakShaverInitをinitしてYakShaver返すとかいろんな意味で微妙
YakShaverBuilderをbuildしてYakShaver返す癖が抜けてない
874デフォルトの名無しさん
2025/04/30(水) 01:03:45.45ID:RVMp5la+ どっちかが絶対いいというものではなくて使い分けるもの
875デフォルトの名無しさん
2025/04/30(水) 01:38:53.14ID:AZF3og04 >>873
the best code is no code at all か、なるほどね
構造体更新記法を使ってもらわないと、メンバー追加したときにコンパイル通らなくなるけど
それを問題視する人としない人がいるって感じ?
個人的には、今のRustはその程度の軽い互換性破壊は日常茶飯事だから別にいいのでは?って気がするけど
the best code is no code at all か、なるほどね
構造体更新記法を使ってもらわないと、メンバー追加したときにコンパイル通らなくなるけど
それを問題視する人としない人がいるって感じ?
個人的には、今のRustはその程度の軽い互換性破壊は日常茶飯事だから別にいいのでは?って気がするけど
876デフォルトの名無しさん
2025/04/30(水) 06:24:04.68ID:aRycYPw9 内部用は自由だが
少なくとも公開ライブラリの構造体の初期化の結論は出ている
まず各フィールド個別のpub化は以下の点で良くない
・構造体の値個別や全体の制約による無矛盾性を保証できない
・内部実装の改善による構造の変化に対応できない
・今後の機能拡張によるフィールド増加に弱い
したがってどうしてもビルダーパターンを使いたくないのならば
Foo初期化指定用の構造体FooConfigを更に用意してそれはpubを許して
Foo::init(FooConfig { FooConfig:: default(), i: 123, s: "abc" })?
またはこうする
FooConfig { FooConfig:: default(), i: 123, s: "abc" }.init()?
そしてinit()内で指定値チェックと本当の内部構造への変換をする形になる
同じことはビルダーパターンだとderive_builderを用いると提供側は簡単
使う側はおなじみの以下の形になる
FooBuilder::default().i(123).s("abc").build()?
どちらの方式も指定の構文が異なるだけで同じような形になってることがわかる
個人的にはビルダーパターンの方がよりシンプルだと思う
そしてRustでの主流となっている
少なくとも公開ライブラリの構造体の初期化の結論は出ている
まず各フィールド個別のpub化は以下の点で良くない
・構造体の値個別や全体の制約による無矛盾性を保証できない
・内部実装の改善による構造の変化に対応できない
・今後の機能拡張によるフィールド増加に弱い
したがってどうしてもビルダーパターンを使いたくないのならば
Foo初期化指定用の構造体FooConfigを更に用意してそれはpubを許して
Foo::init(FooConfig { FooConfig:: default(), i: 123, s: "abc" })?
またはこうする
FooConfig { FooConfig:: default(), i: 123, s: "abc" }.init()?
そしてinit()内で指定値チェックと本当の内部構造への変換をする形になる
同じことはビルダーパターンだとderive_builderを用いると提供側は簡単
使う側はおなじみの以下の形になる
FooBuilder::default().i(123).s("abc").build()?
どちらの方式も指定の構文が異なるだけで同じような形になってることがわかる
個人的にはビルダーパターンの方がよりシンプルだと思う
そしてRustでの主流となっている
877デフォルトの名無しさん
2025/04/30(水) 10:08:02.30ID:uCqRd3Sw 強制すれば良いのに
878デフォルトの名無しさん
2025/04/30(水) 11:07:06.59ID:8LRHZRl/ ビルダー自体が便利だとは思えないんだよな
オプション引数やオーバーロードが無いのを解決するためのもので、他の言語から来ると戸惑うと思う
(型で遷移を表現するなど、パターン自体は Rust らしいし、理解自体は容易だけど)
オーバーロードは別の面倒を生むから無くて良いと思うけど、オプション引数は個人的にはあると嬉しい気がする
実はGoもオプション引数が無い言語で、代わりに functional option パターンというのを使うんだけど、これもイディオムを知らない人にとって直観的でないと言われがち
同時期に登場した言語がどちらも採用しなかったんだから、多分それなりの理由があるんだろうな
オプション引数やオーバーロードが無いのを解決するためのもので、他の言語から来ると戸惑うと思う
(型で遷移を表現するなど、パターン自体は Rust らしいし、理解自体は容易だけど)
オーバーロードは別の面倒を生むから無くて良いと思うけど、オプション引数は個人的にはあると嬉しい気がする
実はGoもオプション引数が無い言語で、代わりに functional option パターンというのを使うんだけど、これもイディオムを知らない人にとって直観的でないと言われがち
同時期に登場した言語がどちらも採用しなかったんだから、多分それなりの理由があるんだろうな
879デフォルトの名無しさん
2025/04/30(水) 11:52:30.40ID:MOUA/jrw 簡単に言えば、virtualを使ってないデザインパターンは追放されない
880デフォルトの名無しさん
2025/04/30(水) 12:05:47.96ID:yPZIq5F0 ム板全体が限界過疎集落化してるのに
Rustスレだけ人が居るのはなぜ?
他に交流の場が無いのかな?
Rustスレだけ人が居るのはなぜ?
他に交流の場が無いのかな?
881デフォルトの名無しさん
2025/04/30(水) 12:11:54.22ID:VKtsx7kS 自作自演
882デフォルトの名無しさん
2025/04/30(水) 12:21:33.61ID:TMleEpRy 規模が大きくなるにつれてbestよりconsistentの重要性が高まるものだ
将来的な変更容易性がどうのと言って必要以上に凝ろうとする奴に限って、
革新的で最高にクールなニュースタイルのビルダーが出てきたらすぐにちゃぶ台返しをする
まあ初期化時のパラメータの与え方なんて壊滅的変更されたところで大した問題じゃないから、
そういう奴に自由にオナニーさせて発散させておくにはいいのかもね
将来的な変更容易性がどうのと言って必要以上に凝ろうとする奴に限って、
革新的で最高にクールなニュースタイルのビルダーが出てきたらすぐにちゃぶ台返しをする
まあ初期化時のパラメータの与え方なんて壊滅的変更されたところで大した問題じゃないから、
そういう奴に自由にオナニーさせて発散させておくにはいいのかもね
■ このスレッドは過去ログ倉庫に格納されています
