公式
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 part23
https://mevius.5ch.net/test/read.cgi/tech/1708677472/
探検
Rust part24
■ このスレッドは過去ログ倉庫に格納されています
2024/05/27(月) 06:41:26.82ID:T4AFD1f4
352デフォルトの名無しさん
2024/06/25(火) 09:03:31.00ID:9+k+boDP 「アセンブラ知らずにCって理解できるものなのか?」
↓
「C++の方が普通。Cは専門家向け」
↓
「いきなりRust」
↓
「C++の方が普通。Cは専門家向け」
↓
「いきなりRust」
353デフォルトの名無しさん
2024/06/25(火) 09:25:46.54ID:eEyTJz94 オレはPHPからRustに移行したよ
actix web使ってる
速さには感激してる
戸惑うのは謎のワーニングが出る時かな
mut付けてないのにmut付けるなってワーニング出たりする
cargo cleanとかすれば消えるんだけど
actix web使ってる
速さには感激してる
戸惑うのは謎のワーニングが出る時かな
mut付けてないのにmut付けるなってワーニング出たりする
cargo cleanとかすれば消えるんだけど
354デフォルトの名無しさん
2024/06/25(火) 09:32:01.85ID:GyGy4ZSw355デフォルトの名無しさん
2024/06/25(火) 10:36:22.38ID:398g93Vj356デフォルトの名無しさん
2024/06/25(火) 11:03:26.31ID:eEyTJz94357デフォルトの名無しさん
2024/06/25(火) 11:48:25.07ID:EN7MeMPi C++ を知っていると Rust がわかりやすいというよりも有難みを感じやすいとは思う。
なんだかんだで Rust は面倒くさいしそれなりに学習曲線の急上昇もあるのは本当だけど、
それでもなお Rust が良いと思えるのは C++ の駄目な部分についての反省が入ってるから。
C++ 的なものが必要な場面で C++ より上手くやるものという感覚で捉えてる。
なんだかんだで Rust は面倒くさいしそれなりに学習曲線の急上昇もあるのは本当だけど、
それでもなお Rust が良いと思えるのは C++ の駄目な部分についての反省が入ってるから。
C++ 的なものが必要な場面で C++ より上手くやるものという感覚で捉えてる。
358デフォルトの名無しさん
2024/06/25(火) 12:43:05.46ID:qH1sgo3/ 「Rustを学ぶためにC++を学ぶ必要があるか(学ぶといいか)」も定期的に沸くな
何度も見てて思うのが
「あなたはRustを学ぶ前にC++を学んでいたか」とYes/Noが一致して、平行線にしかならない議論なのでは
何度も見てて思うのが
「あなたはRustを学ぶ前にC++を学んでいたか」とYes/Noが一致して、平行線にしかならない議論なのでは
359デフォルトの名無しさん
2024/06/25(火) 13:05:45.82ID:ZtCD4zFU フランス語を学ぶときに英語を知ってる必要があるか(學ぶといいか)を考えれば良い
日本語←→フランス語だけ教わりたいのに英語學ぶ必要は無い
日本語←→フランス語だけ教わりたいのに英語學ぶ必要は無い
360デフォルトの名無しさん
2024/06/25(火) 15:05:50.09ID:UfTXO4rA Rustを学ぶ前に他言語を学ぶ必要は無い。
しかしプログラム自体の経験が浅いのなら、絶壁の学習曲線に挫折する可能性が高い。 そういう初学者はRusuではなく、とりあえずは動くところまで持っていきやすい言語を使って勉強したほうがいい。
しかしプログラム自体の経験が浅いのなら、絶壁の学習曲線に挫折する可能性が高い。 そういう初学者はRusuではなく、とりあえずは動くところまで持っていきやすい言語を使って勉強したほうがいい。
361デフォルトの名無しさん
2024/06/25(火) 15:23:35.53ID:bjcoCLHQ C++を経由しないでRustを使えてる人たちがたくさんいることから
C++が不要言語であることは間違いない
C++が不要言語であることは間違いない
362デフォルトの名無しさん
2024/06/25(火) 15:29:24.75ID:ZtCD4zFU >とりあえずは動くところまで持っていきやすい言語
Rustも変な事しなければとりあえずは動く
C/C++みたいに一見動いてるフリしてメモリ壊してたりに気付かない方が有害
Rustも変な事しなければとりあえずは動く
C/C++みたいに一見動いてるフリしてメモリ壊してたりに気付かない方が有害
363デフォルトの名無しさん
2024/06/25(火) 16:22:38.23ID:EN7MeMPi それはプログラミングに慣れてるから言えることで、
エラーになってくれることが心底から有難いことだと思えるのは
エラーにならずにぶっ壊れる体験を通してじゃないと無理だよ。
結果的にわかりやすいかどうかの話じゃなくて
学習する当人がちゃんと納得して学習し続けられるかというモチベーションの話としてね。
エラーになってくれることが心底から有難いことだと思えるのは
エラーにならずにぶっ壊れる体験を通してじゃないと無理だよ。
結果的にわかりやすいかどうかの話じゃなくて
学習する当人がちゃんと納得して学習し続けられるかというモチベーションの話としてね。
364デフォルトの名無しさん
2024/06/25(火) 16:57:26.38ID:bjcoCLHQ Cでmalloc/free面倒とか忘れたとか解放したのにポインタ残っていて使っちゃったとか体験しておいたほうがよいかもしれないが
C++は不要
C++は不要
365デフォルトの名無しさん
2024/06/25(火) 17:23:57.01ID:jUYULW90 >>363
つまり最初はPerlが良いってことか
つまり最初はPerlが良いってことか
366デフォルトの名無しさん
2024/06/25(火) 17:55:00.58ID:EN7MeMPi 初心者レベルだと C/C++ もRust も向いてないって話
367デフォルトの名無しさん
2024/06/25(火) 19:32:04.37ID:l0yCAl6v そう言えばHaskell難しい言うやつも似たようなこと言ってたな。
そんなに難しいと感じてなかったから不思議だったんだが、
自分でバグ作っておいて言語が難しいとか言うなよ…。
そんなに難しいと感じてなかったから不思議だったんだが、
自分でバグ作っておいて言語が難しいとか言うなよ…。
368デフォルトの名無しさん
2024/06/25(火) 20:03:41.12ID:qH1sgo3/ ID:ZtCD4zFU
ID:bjcoCLHQ
ID:bjcoCLHQ
369デフォルトの名無しさん
2024/06/25(火) 20:13:30.50ID:urOX5j9P 関数型言語を使ってるとRustの理解が少し早くなるよ
特にHaskellを知っていればtraitの理解も早いね
しかしRustを学ぶために関数型言語を知っている必要はないんだよな
同様にC++も知っている必要はない
特にHaskellを知っていればtraitの理解も早いね
しかしRustを学ぶために関数型言語を知っている必要はないんだよな
同様にC++も知っている必要はない
370デフォルトの名無しさん
2024/06/25(火) 22:48:01.04ID:3rDdWdgz Erlang使ってて良かったと思った
371デフォルトの名無しさん
2024/06/25(火) 23:04:44.45ID:8sxbkiyD バレおじw
372デフォルトの名無しさん
2024/06/25(火) 23:30:51.26ID:oKw2Pfcc373デフォルトの名無しさん
2024/06/25(火) 23:49:25.06ID:ThxORcgc >>369
>特にHaskellを知っていればtraitの理解も早いね
これには全く同意できない
type classというかHaskellとはやり方もできることも違いすぎるから
そもそも何の事前知識なくてもtraitは容易に理解できるでしょ
>特にHaskellを知っていればtraitの理解も早いね
これには全く同意できない
type classというかHaskellとはやり方もできることも違いすぎるから
そもそも何の事前知識なくてもtraitは容易に理解できるでしょ
374デフォルトの名無しさん
2024/06/26(水) 08:25:01.52ID:egC8x8gn 神 精霊 絶大なエネルギーを使用可能
幽霊 人間を疲れさせるや一時操作可能
@エネルギーの貯蔵の仕方は➁そのエネルギーの発生方法はBそのエネルギーを貯蔵する方法はCそれだけのエネルギーの物体を科学で観測不能はなぜ
6G通信に使われるテラヘルツ帯の電波、脳細胞の成長を促進
2022/08/16
タンパク質の操作/マイクロ波等の照射が記憶に影響
2008/11/01
男性の精子の減少、携帯電話の使用と関係か 最新研究
2023/11/02
統合失調症.発達障害.各身体症状 など国力低下
人為的で身体攻撃
威力を測定すれば判明するのにテロリストを野放し
全ての精神病
@ 英キングス・カレッジ・ロンドンをはじめとするグループは、人間の脳内で発現している古代ウイルス由来のDNA配列を調べ、それがうつ病・統合失調症・双極性障害といった主要な精神疾患のなりやすさと関係していることを明らかにした。
➁九大、後の出来事が直前の出来事に錯覚を起こさせる脳の仕組みの一端を解明
2024/06/05
C幼児期の脳活動から18歳時点でのIQを予測できるという研究結果
2023/09/09
D3歳までに脳は形成される
E統合失調症などの患者に幻覚や妄想を引き起こす脳のネットワークがAIを使った研究で明らか
1立方ミリメートルの脳の断片をハーバード大学とGoogleの研究者がナノメートル単位で3Dマッピングすることに成功
2024年05月10日
※MRIで物理的に神経の接続問題観測可能
嘘つきの知的障碍者と精神障碍者や認知症の者発見
◇電磁波攻撃はあるとないどの思考【組織】の者が話しているのかな
マイクロ波聴覚効果やボイス・トォ・スカル発見可能
電磁波している者守りたいもの守りたくないものの判別方法は各対象者の将来で名よある地位やよい未来の映像と悪い未来の映像を見てもらえば副交感神経と交感神経の差と脳波パターンをみたら判明する
幽霊 人間を疲れさせるや一時操作可能
@エネルギーの貯蔵の仕方は➁そのエネルギーの発生方法はBそのエネルギーを貯蔵する方法はCそれだけのエネルギーの物体を科学で観測不能はなぜ
6G通信に使われるテラヘルツ帯の電波、脳細胞の成長を促進
2022/08/16
タンパク質の操作/マイクロ波等の照射が記憶に影響
2008/11/01
男性の精子の減少、携帯電話の使用と関係か 最新研究
2023/11/02
統合失調症.発達障害.各身体症状 など国力低下
人為的で身体攻撃
威力を測定すれば判明するのにテロリストを野放し
全ての精神病
@ 英キングス・カレッジ・ロンドンをはじめとするグループは、人間の脳内で発現している古代ウイルス由来のDNA配列を調べ、それがうつ病・統合失調症・双極性障害といった主要な精神疾患のなりやすさと関係していることを明らかにした。
➁九大、後の出来事が直前の出来事に錯覚を起こさせる脳の仕組みの一端を解明
2024/06/05
C幼児期の脳活動から18歳時点でのIQを予測できるという研究結果
2023/09/09
D3歳までに脳は形成される
E統合失調症などの患者に幻覚や妄想を引き起こす脳のネットワークがAIを使った研究で明らか
1立方ミリメートルの脳の断片をハーバード大学とGoogleの研究者がナノメートル単位で3Dマッピングすることに成功
2024年05月10日
※MRIで物理的に神経の接続問題観測可能
嘘つきの知的障碍者と精神障碍者や認知症の者発見
◇電磁波攻撃はあるとないどの思考【組織】の者が話しているのかな
マイクロ波聴覚効果やボイス・トォ・スカル発見可能
電磁波している者守りたいもの守りたくないものの判別方法は各対象者の将来で名よある地位やよい未来の映像と悪い未来の映像を見てもらえば副交感神経と交感神経の差と脳波パターンをみたら判明する
375デフォルトの名無しさん
2024/06/26(水) 12:30:12.07ID:j6fp+f8B376デフォルトの名無しさん
2024/06/26(水) 12:31:27.14ID:j6fp+f8B >>373
事前にやるならNimの方が良いよ
事前にやるならNimの方が良いよ
377デフォルトの名無しさん
2024/06/26(水) 13:01:41.83ID:eR4cI6Xf Rustを学ぶ前に他の言語を学ぶ必要はないけど
全くプログラミング言語を知らないならシンプルで学習例も多いC言語一択だね
ポインタとヒープの扱いまで学べたらたらC言語を忘れてRustへ
全くプログラミング言語を知らないならシンプルで学習例も多いC言語一択だね
ポインタとヒープの扱いまで学べたらたらC言語を忘れてRustへ
378デフォルトの名無しさん
2024/06/26(水) 14:31:44.00ID:uKek7pO0 デストラクタの動きを知らないで本当にrustできんの?って思うけど
379デフォルトの名無しさん
2024/06/26(水) 14:43:55.70ID:eR4cI6Xf スコープを抜けた時にデストラクタが自動的に呼ばれる
それだけ
予備知識を必要としない
それだけ
予備知識を必要としない
380デフォルトの名無しさん
2024/06/26(水) 14:54:42.66ID:j6fp+f8B Rustのデストラクタの描き方ってなんであんなんなん
381デフォルトの名無しさん
2024/06/26(水) 15:00:49.20ID:KtPyzxFO C書くしかない時代だったからC勉強できたけど
Rustがある時代に純粋な教養としてC勉強なんて苦行できないだろ
修行僧かよ
Rustがある時代に純粋な教養としてC勉強なんて苦行できないだろ
修行僧かよ
382デフォルトの名無しさん
2024/06/26(水) 15:13:01.92ID:UcL9V/nx 最近気付いたんだけどもしかしてRustの所有権って2通りの意味がある?
383デフォルトの名無しさん
2024/06/26(水) 17:42:24.19ID:AVbFTHWJ >>382
そのココロは?
そのココロは?
384デフォルトの名無しさん
2024/06/26(水) 18:05:02.22ID:tR/OTOKs >>378
それってc++学ぶときも一緒じゃない?
それってc++学ぶときも一緒じゃない?
385デフォルトの名無しさん
2024/06/26(水) 20:50:33.32ID:mzS1vumz >>382
Rustを学ぶ上で所有権は忘れた方がいい
実はRustは非常にシンプルで
値をmoveして用いるか参照して用いるかしかない
(ただしCopy実装型はmoveの代わりにcopy)
値はmoveされないままスコープが尽きると消える
消える直前にデストラクタが呼ばれる
以上たったこれだけだ
Rustを学ぶ上で所有権は忘れた方がいい
実はRustは非常にシンプルで
値をmoveして用いるか参照して用いるかしかない
(ただしCopy実装型はmoveの代わりにcopy)
値はmoveされないままスコープが尽きると消える
消える直前にデストラクタが呼ばれる
以上たったこれだけだ
386デフォルトの名無しさん
2024/06/26(水) 23:00:32.38ID:GOea043w >>381
苦行はごちゃごちゃして煩わしい記述を強要されるRustだろ。fnだのmutだの略語が多く
殺伐としているし、記号の使い方なども含めて如何にもギークが作ったというような
美的感覚が欠如した野暮ったいコードを書き連ねるのはおぞましい。
Cと違って新しいSwiftはRustに機能的に近いが、Rustよりずっと洗練されている。
苦行はごちゃごちゃして煩わしい記述を強要されるRustだろ。fnだのmutだの略語が多く
殺伐としているし、記号の使い方なども含めて如何にもギークが作ったというような
美的感覚が欠如した野暮ったいコードを書き連ねるのはおぞましい。
Cと違って新しいSwiftはRustに機能的に近いが、Rustよりずっと洗練されている。
387デフォルトの名無しさん
2024/06/26(水) 23:26:44.75ID:skjSHmL1 Rust言語を知らないから見た目のキーワード批判しかできないのだ
388デフォルトの名無しさん
2024/06/27(木) 04:20:04.01ID:nawTLqWn スタックは早くてヒープは遅い、みたいな話よく聞くんだけど、
具体的に何が早い/遅いの?
具体的に何が早い/遅いの?
389デフォルトの名無しさん
2024/06/27(木) 04:33:33.49ID:TDzAch9x >>388
自分でヒープメモリ管理部分を書いてみるとよくわかる
ヒープでメモリ確保したり解放したりするのは色んな処理が入って非常に遅い
スタック上ならそのコストはない
関数に入る&抜けるときにスタックフレームを指してるレジスタの値を変えるだけ
というのに加えて
CPUの多段メモリキャッシュ機構での速さが桁が変わってくる
スタックフレーム上なら常にアクセスしていてキャッシュに載るから超速い
自分でヒープメモリ管理部分を書いてみるとよくわかる
ヒープでメモリ確保したり解放したりするのは色んな処理が入って非常に遅い
スタック上ならそのコストはない
関数に入る&抜けるときにスタックフレームを指してるレジスタの値を変えるだけ
というのに加えて
CPUの多段メモリキャッシュ機構での速さが桁が変わってくる
スタックフレーム上なら常にアクセスしていてキャッシュに載るから超速い
390デフォルトの名無しさん
2024/06/27(木) 07:18:32.22ID:CXekxx/V >>386
mutが煩わしい言うてる時点で関数型プログラミングをまともに出来てないな。
今までの副作用だらけの言語だとマルチスレッドプログラミングが上手く出来ないから関数型プログラミングを取り込んだというのに。
Rustでごちゃごちゃしてると感じるならHaskellにおいで。
forやifと書くことすら煩わしく感じるくらいシンプルだよ。
mutが煩わしい言うてる時点で関数型プログラミングをまともに出来てないな。
今までの副作用だらけの言語だとマルチスレッドプログラミングが上手く出来ないから関数型プログラミングを取り込んだというのに。
Rustでごちゃごちゃしてると感じるならHaskellにおいで。
forやifと書くことすら煩わしく感じるくらいシンプルだよ。
391デフォルトの名無しさん
2024/06/27(木) 08:56:33.16ID:ozUuBzDI Swift、よく知らないんだよなあ
Appleの囲い込み言語という時点でもう勉強する気になれない
Appleの囲い込み言語という時点でもう勉強する気になれない
392デフォルトの名無しさん
2024/06/27(木) 09:08:39.14ID:AKJ8/1zo C++ でも変更なしのときに const を付けるんじゃなくて変更ありのときに指定するほうがよかったという声は結構あるよな。
まあいまさら変更できんが。
まあいまさら変更できんが。
393デフォルトの名無しさん
2024/06/27(木) 09:50:18.20ID:OTNDZ+yC >>372
PyO3おすすめ
PyO3おすすめ
394デフォルトの名無しさん
2024/06/27(木) 10:07:28.99ID:OTNDZ+yC >美的感覚が欠如した野暮ったいコード
禿しく同意
禿しく同意
395デフォルトの名無しさん
2024/06/27(木) 10:21:46.91ID:nawTLqWn396デフォルトの名無しさん
2024/06/27(木) 10:30:52.47ID:OTNDZ+yC キャッシュに載ったらアクセス速度変わるやろ
397デフォルトの名無しさん
2024/06/27(木) 10:33:46.61ID:xhKCtT/7 そりゃ、キャッシュ・イズ・キングと言うぐらいだからな
398デフォルトの名無しさん
2024/06/27(木) 11:05:58.76ID:AKJ8/1zo399デフォルトの名無しさん
2024/06/27(木) 11:20:07.91ID:veLj9zg3 よくわかんないんだけどスタック上に確保したメモリの所有権を外に移して関数は終了してスタックが縮んじゃうとかさ
「そんなわけないだろ」って思うんだけど
「そんなわけないだろ」って思うんだけど
400デフォルトの名無しさん
2024/06/27(木) 11:56:53.85ID:TDzAch9x401デフォルトの名無しさん
2024/06/27(木) 12:00:05.74ID:TDzAch9x >>399
関数が値を返す場合にサイズが小さければレジスタで返す
サイズが大きい場合は呼び出し元のスタックフレームに領域を確保してそこへ直接書き込んでいる
つまり暗に可変参照を渡す最適化が行われている
それはサイズの大きい値を返す関数呼び出しが多段でも同じなので一番最初の関数のスタックフレームに直接書き込まれる
関数が値を返す場合にサイズが小さければレジスタで返す
サイズが大きい場合は呼び出し元のスタックフレームに領域を確保してそこへ直接書き込んでいる
つまり暗に可変参照を渡す最適化が行われている
それはサイズの大きい値を返す関数呼び出しが多段でも同じなので一番最初の関数のスタックフレームに直接書き込まれる
402デフォルトの名無しさん
2024/06/27(木) 12:27:57.71ID:OTNDZ+yC403デフォルトの名無しさん
2024/06/27(木) 12:45:47.11ID:VTKaeii9404デフォルトの名無しさん
2024/06/27(木) 12:53:21.92ID:TDzAch9x405デフォルトの名無しさん
2024/06/27(木) 13:06:53.73ID:VTKaeii9 それをスタックが縮むと表現してるのか
意味は分かった
意味は分かった
406デフォルトの名無しさん
2024/06/27(木) 13:24:58.99ID:veLj9zg3 スタックてのは関数が何段か終了して縮んだあと、また伸び直して前の伸びを上書きしちゃうでしょって話
とにかく「移動」というのが新しくて、代入の移動はわかったけど
関数呼び出しの引数も移動です、返り値も移動ですってのがどういう実装に落とされるのかまだわかってない
とにかく「移動」というのが新しくて、代入の移動はわかったけど
関数呼び出しの引数も移動です、返り値も移動ですってのがどういう実装に落とされるのかまだわかってない
407デフォルトの名無しさん
2024/06/27(木) 13:49:01.55ID:AKJ8/1zo 低レイヤで起こってることは C と変わらん。
寿命の矛盾がないか静的な検査がクソ強いってだけだ。
寿命の矛盾がないか静的な検査がクソ強いってだけだ。
408デフォルトの名無しさん
2024/06/27(木) 15:56:45.17ID:AKJ8/1zo スタックを伸ばすだの縮めるだのいうのはメモリのとある番地に実際のメモリを割り当てたり切り離したりすること。
スタックが足りなくなってきたら連続するアドレスのところに実メモリを割り当てるのがスタックを伸ばすってこと。
普通の使い方をしていたらスタック領域を縮めることはあんまりない。
スタックがあるところまで伸びたということはもう一度そこまで伸びる可能性が高いので回収してまた割り当ててをするよりは割り当てっぱなしにしたほうが良いという設計思想になってるので全体のメモリが足りている限りスタックが浅いところまで戻ってきても実メモリを回収しないという のが現代的な OS。
逆に言えば全体のメモリが足りなくなってきたら回収することもあるんだけど。
素人感覚だとメモリをなるべく空くようにするのが「メモリの無駄を防ぐ」という意識の人がいるんだけど、存在するメモリが使われないままになってるほうがもったいないんだ。
それとたとえば Linux だとスタックの大きさは 8MB が上限というのがデフォ。
これは OS 側の設定なのでアプリケーション側では (OS の設定をいじる権限がない限りは) どうにもできない。
8MB ってめちゃくちゃ少ないように感じるかもしれないけどだいたいこんなもんで足りちゃうんだよ。
スタックが足りなくなってきたら連続するアドレスのところに実メモリを割り当てるのがスタックを伸ばすってこと。
普通の使い方をしていたらスタック領域を縮めることはあんまりない。
スタックがあるところまで伸びたということはもう一度そこまで伸びる可能性が高いので回収してまた割り当ててをするよりは割り当てっぱなしにしたほうが良いという設計思想になってるので全体のメモリが足りている限りスタックが浅いところまで戻ってきても実メモリを回収しないという のが現代的な OS。
逆に言えば全体のメモリが足りなくなってきたら回収することもあるんだけど。
素人感覚だとメモリをなるべく空くようにするのが「メモリの無駄を防ぐ」という意識の人がいるんだけど、存在するメモリが使われないままになってるほうがもったいないんだ。
それとたとえば Linux だとスタックの大きさは 8MB が上限というのがデフォ。
これは OS 側の設定なのでアプリケーション側では (OS の設定をいじる権限がない限りは) どうにもできない。
8MB ってめちゃくちゃ少ないように感じるかもしれないけどだいたいこんなもんで足りちゃうんだよ。
409デフォルトの名無しさん
2024/06/27(木) 16:39:29.50ID:EaS5WQGi >>406の書いてる「縮む」はVecで言うところのcapacityじゃなくてlenっぽくない?
ムーブとの関連がよくわからんけど
ムーブとの関連がよくわからんけど
410デフォルトの名無しさん
2024/06/27(木) 17:46:10.67ID:6+Lg0PcZ >>407
ですな
ですな
411デフォルトの名無しさん
2024/06/27(木) 17:59:42.80ID:AKJ8/1zo 低レイヤのメモリの取り扱いモデルが確立している高級言語が C/C++ くらいしかなくて、 LLVM も汎用的なフレームワークのふりして思ったほど自由ではないので Rust の言語仕様が LLVM の都合に、 C/C++ の都合に引っ張られているところはまあまあある。
412デフォルトの名無しさん
2024/06/27(木) 18:20:02.76ID:veLj9zg3 つまりC++同様、ポインタの糖衣構文としての参照?
413デフォルトの名無しさん
2024/06/27(木) 18:50:13.20ID:veLj9zg3 あ、なるほど
&mutみたいに*mutって書けば実体を扱えるわけか
&mutみたいに*mutって書けば実体を扱えるわけか
414デフォルトの名無しさん
2024/06/27(木) 18:56:27.59ID:RLHdjniL いつものことながら妙なこと書く人はだいたいThe Book(本物)を読んでないよな
415デフォルトの名無しさん
2024/06/27(木) 19:07:01.79ID:inDwmtnT そんなの読むような真面目な人間は5chに来ない
416デフォルトの名無しさん
2024/06/27(木) 20:08:52.27ID:AKJ8/1zo >>412
まあ機械語レベルの低レイヤまでいけば参照もポインタも同じっちゃおなじだけど、構文糖だという認識は明確に誤りだ。
参照がポインタの構文糖なんて書いてあるデタラメ本で C++ を学んだのなら C++ の理解も全然できてないと思う。
または書いてないことを脳内で作り出すタイプのやつは誤った方向に邁進してどうにもならなくなったところで質問したりするから言ってることが意味不明になりやすい。
仮に(あくまでも仮にだが!)言ってる理屈自体が正しかったとしてもちゃんとした用語でいってくれないと伝わらないし、ちゃんとした用語は(一次資料に基づいた)ちゃんとした資料で学ばないと身に付かん。
まあ機械語レベルの低レイヤまでいけば参照もポインタも同じっちゃおなじだけど、構文糖だという認識は明確に誤りだ。
参照がポインタの構文糖なんて書いてあるデタラメ本で C++ を学んだのなら C++ の理解も全然できてないと思う。
または書いてないことを脳内で作り出すタイプのやつは誤った方向に邁進してどうにもならなくなったところで質問したりするから言ってることが意味不明になりやすい。
仮に(あくまでも仮にだが!)言ってる理屈自体が正しかったとしてもちゃんとした用語でいってくれないと伝わらないし、ちゃんとした用語は(一次資料に基づいた)ちゃんとした資料で学ばないと身に付かん。
417デフォルトの名無しさん
2024/06/27(木) 22:40:30.91ID:TDzAch9x >>406
そのmoveについてもmoveというRust上の概念の理解のみがRustを学習&利用していく上で必要となるよ
moveによる生成コードがどのようになるかは最適化の方法の変更や進化で変わり得る話だから確定することはできず、学ぶこともできない
こんな場合に現在はたまたまこんな生成コードになっていることだけは実験などでわかるけど今後の保証はない、としか言えない
だからmoveはmoveとして理解することが唯一の正解でしょう
そのmoveについてもmoveというRust上の概念の理解のみがRustを学習&利用していく上で必要となるよ
moveによる生成コードがどのようになるかは最適化の方法の変更や進化で変わり得る話だから確定することはできず、学ぶこともできない
こんな場合に現在はたまたまこんな生成コードになっていることだけは実験などでわかるけど今後の保証はない、としか言えない
だからmoveはmoveとして理解することが唯一の正解でしょう
418デフォルトの名無しさん
2024/06/27(木) 22:43:00.49ID:QXPbo1LF どうせChatGPTの回答を使い回してるだけだろ
419デフォルトの名無しさん
2024/06/27(木) 22:45:03.57ID:QXPbo1LF420デフォルトの名無しさん
2024/06/27(木) 23:03:07.98ID:TDzAch9x Rustの各概念を無理矢理なC/C++と結びつけようとしたり生成コードと対応させようとしてる人々がRustを難しいと言ってるようにみえる
そんなことをせずに各概念の理解だけに集中すればRustはシンプルに出来ていてわかりやすい言語だと理解できるよ
そんなことをせずに各概念の理解だけに集中すればRustはシンプルに出来ていてわかりやすい言語だと理解できるよ
421デフォルトの名無しさん
2024/06/27(木) 23:34:16.52ID:AKJ8/1zo C/C++ だと抽象機械という概念を挟む形で仕様化されてる。
言語の挙動を抽象的な (架空の) 機械の動作として記述していて、それを実際の機械とどう対応させるかは知らんけど見かけ上の動作が仕様通りなら良しとする規定。
だから最適化を豪快にやっても結果が同じなら言語仕様に反しない。
で、抽象機械っていうのはある程度は現実のコンピュータを想定はしているけど細かいところは意図的にうやむやにして選択の余地を残してる。
C/C++ には言語仕様としてはスタックもヒープも存在せず書いてあるのは寿命についてのルールだけで、それをどういう形で実現するかは自由……
なんだけど現実にはスタックとヒープを使い分けるとちょうどいいような仕組みになってる。
C/C++ の言語仕様に低レイヤのメモリアクセスのことも確かに書いてあるんだ。
でもそれは抽象的な機械のことであって本物の機械のことじゃない。
でもある程度は対応しているという絶妙なバランスで成り立ってる。
Rust では言語の高レイヤの話と低レイヤの話の間を取り持つ理屈がまだ十分に整理されてないと思う。
言語の性質上、やっぱり低レイヤを全く意識しないで上手く使えるようなものでもないし、低レイヤのことを考えるのもそれなりには必要だと思う。
必要なんだけど意識的にレイヤを分けて考えられないなら混乱するのも確かなので、 (少なくとも最初は) 低レイヤのことは忘れろというのは理に適った助言だと思う。
言語の挙動を抽象的な (架空の) 機械の動作として記述していて、それを実際の機械とどう対応させるかは知らんけど見かけ上の動作が仕様通りなら良しとする規定。
だから最適化を豪快にやっても結果が同じなら言語仕様に反しない。
で、抽象機械っていうのはある程度は現実のコンピュータを想定はしているけど細かいところは意図的にうやむやにして選択の余地を残してる。
C/C++ には言語仕様としてはスタックもヒープも存在せず書いてあるのは寿命についてのルールだけで、それをどういう形で実現するかは自由……
なんだけど現実にはスタックとヒープを使い分けるとちょうどいいような仕組みになってる。
C/C++ の言語仕様に低レイヤのメモリアクセスのことも確かに書いてあるんだ。
でもそれは抽象的な機械のことであって本物の機械のことじゃない。
でもある程度は対応しているという絶妙なバランスで成り立ってる。
Rust では言語の高レイヤの話と低レイヤの話の間を取り持つ理屈がまだ十分に整理されてないと思う。
言語の性質上、やっぱり低レイヤを全く意識しないで上手く使えるようなものでもないし、低レイヤのことを考えるのもそれなりには必要だと思う。
必要なんだけど意識的にレイヤを分けて考えられないなら混乱するのも確かなので、 (少なくとも最初は) 低レイヤのことは忘れろというのは理に適った助言だと思う。
422デフォルトの名無しさん
2024/06/27(木) 23:40:56.83ID:ZCM59EGi C/C++の方こそ誤魔化しているぜ
そのため未定義動作だらけだ
Rustはわかりやすく抽象的に明確だ
そして未定義動作もない
そのため未定義動作だらけだ
Rustはわかりやすく抽象的に明確だ
そして未定義動作もない
423デフォルトの名無しさん
2024/06/27(木) 23:46:01.41ID:AKJ8/1zo 未定義動作の話をしてはいないよ。
低レイヤとの間をどう取り持つかの話をしてる。
低レイヤとの間をどう取り持つかの話をしてる。
424デフォルトの名無しさん
2024/06/27(木) 23:53:14.85ID:iyfRmZdF Rustは低レイヤにも対応している
高い抽象度によるプログラミングもできる
高い抽象度のプログラミングにおいて低レイヤとの対応付けは不要であってやるべきではない
高い抽象度によるプログラミングもできる
高い抽象度のプログラミングにおいて低レイヤとの対応付けは不要であってやるべきではない
425デフォルトの名無しさん
2024/06/27(木) 23:56:31.92ID:lXX+GpEL オジーw
426デフォルトの名無しさん
2024/06/28(金) 00:09:40.45ID:uAgz1Jdl >>424
その論を許すなら Rust は OS やデバイスドライバを書くのには使えない言語であってよいという立場になるが、そうじゃないよね?
その論を許すなら Rust は OS やデバイスドライバを書くのには使えない言語であってよいという立場になるが、そうじゃないよね?
427デフォルトの名無しさん
2024/06/28(金) 00:16:19.92ID:hS2q8k+h428デフォルトの名無しさん
2024/06/28(金) 00:20:27.61ID:uAgz1Jdl >>427
低レイヤを書くための仕様が確立していなくて今はなんとなく書けているという状態を「できる」と称していいならそうだね。
低レイヤを書くための仕様が確立していなくて今はなんとなく書けているという状態を「できる」と称していいならそうだね。
429デフォルトの名無しさん
2024/06/28(金) 00:28:00.38ID:UvqDoogo430デフォルトの名無しさん
2024/06/28(金) 00:48:52.30ID:uAgz1Jdl >>429
実用的に問題があって、機能できていない。
Rust の仕様に明るくて低レイヤのメカニズムに明るくても Rust で OS は書けないから。
現状では Rust の実装に明るいという要素が求められていて、ある程度はそういうものかもしれないけど仕様 (というか文書化というべきかな) の明確化が十分とは言えない。
実用的に問題があって、機能できていない。
Rust の仕様に明るくて低レイヤのメカニズムに明るくても Rust で OS は書けないから。
現状では Rust の実装に明るいという要素が求められていて、ある程度はそういうものかもしれないけど仕様 (というか文書化というべきかな) の明確化が十分とは言えない。
431デフォルトの名無しさん
2024/06/28(金) 00:57:19.20ID:UvqDoogo432デフォルトの名無しさん
2024/06/28(金) 01:04:07.98ID:0ko0Zb9B そういえばRedoxの開発は今どうなってるんだろ
433デフォルトの名無しさん
2024/06/28(金) 01:21:44.32ID:uAgz1Jdl434デフォルトの名無しさん
2024/06/28(金) 01:57:43.66ID:/H5n5ha9 流れを切って申し訳ないんだけど
Rustってディープラーニングのプログラムを作るのに実用的な段階に来てる?
まだ一部の物好きが書いてるだけ?
Rustってディープラーニングのプログラムを作るのに実用的な段階に来てる?
まだ一部の物好きが書いてるだけ?
435デフォルトの名無しさん
2024/06/28(金) 02:39:42.33ID:OzTZZFgl 自分
Rustってディープラーニングのプログラムを作るのに実用的な段階に来てる?
まだ一部の物好きが書いてるだけ?
Copilot
Rustでディープラーニングのプログラムを作ることは可能ですが、まだ一部のエンジニアが実験的に取り組んでいる段階と言えます。具体的には、『ゼロから作るDeep Learning』の内容をRustで実装する試みや、Deep LearningのフレームワークDeZeroをRustで実装する試みなどがあります。
これらの試みは、Pythonで書かれたディープラーニングのコードをRustに翻訳し、Rustの学習やディープラーニングの理解を深めるためのものです。しかし、これらの実装はあくまで個々のエンジニアの学習目的で行われており、一般的なディープラーニングの実装にRustが広く使われているわけではありません。
Rustはパフォーマンスが高く、メモリ安全な言語であるため、ディープラーニングの実装にも適していると言えます。しかし、Pythonのように豊富なディープラーニングライブラリが存在しないため、現状ではディープラーニングの実装にはPythonが主に使われています。
Rustでのディープラーニングの実装が一般的になるかどうかは、今後のRustコミュニティの活動やディープラーニングの研究動向によるところが大きいでしょう。
Rustってディープラーニングのプログラムを作るのに実用的な段階に来てる?
まだ一部の物好きが書いてるだけ?
Copilot
Rustでディープラーニングのプログラムを作ることは可能ですが、まだ一部のエンジニアが実験的に取り組んでいる段階と言えます。具体的には、『ゼロから作るDeep Learning』の内容をRustで実装する試みや、Deep LearningのフレームワークDeZeroをRustで実装する試みなどがあります。
これらの試みは、Pythonで書かれたディープラーニングのコードをRustに翻訳し、Rustの学習やディープラーニングの理解を深めるためのものです。しかし、これらの実装はあくまで個々のエンジニアの学習目的で行われており、一般的なディープラーニングの実装にRustが広く使われているわけではありません。
Rustはパフォーマンスが高く、メモリ安全な言語であるため、ディープラーニングの実装にも適していると言えます。しかし、Pythonのように豊富なディープラーニングライブラリが存在しないため、現状ではディープラーニングの実装にはPythonが主に使われています。
Rustでのディープラーニングの実装が一般的になるかどうかは、今後のRustコミュニティの活動やディープラーニングの研究動向によるところが大きいでしょう。
436デフォルトの名無しさん
2024/06/28(金) 02:47:01.21ID:/H5n5ha9 >>435
さっそくの返信ありがとうございます
> 今後のRustコミュニティの活動やディープラーニングの研究動向
がどうなってるかを聞きたかったんですがどんな感じですか?
libtorchバインディングのtorch-rsや
ほぼ純Rust製のcandleが出てきたのはわかったんですが
まだ周辺ライブラリが足りない感じです?
さっそくの返信ありがとうございます
> 今後のRustコミュニティの活動やディープラーニングの研究動向
がどうなってるかを聞きたかったんですがどんな感じですか?
libtorchバインディングのtorch-rsや
ほぼ純Rust製のcandleが出てきたのはわかったんですが
まだ周辺ライブラリが足りない感じです?
437デフォルトの名無しさん
2024/06/28(金) 03:31:36.21ID:OzTZZFgl 少なくとも俺よりはAIの方が物知りだから自分でAIに聞いた方がいいと思う
論文の検証を論文と異なる言語ではしないでしょぅ
NCNNやDarkNetを超えるエンジンがあるわけではなし
NCNNやDarkNetを超えるエンジンがあるわけではなし
439デフォルトの名無しさん
2024/06/28(金) 05:55:26.25ID:OzTZZFgl >>417
関数の引数にオブジェクト(Copy型でない型)を渡す際は参照渡しが基本で、
うっかり所有物を引数として渡すと所有権ごと関数の向こうへ移動してしまって二度と戻って来ない
これは逆に、関数が何らかの実体を返り値として返す際には便利
とまあネチネチ考えてればわかってくるもんだよ
関数の引数にオブジェクト(Copy型でない型)を渡す際は参照渡しが基本で、
うっかり所有物を引数として渡すと所有権ごと関数の向こうへ移動してしまって二度と戻って来ない
これは逆に、関数が何らかの実体を返り値として返す際には便利
とまあネチネチ考えてればわかってくるもんだよ
440デフォルトの名無しさん
2024/06/28(金) 07:54:27.71ID:diDidYCE >>422
unsafeを無視しちゃいかんよ。
unsafeを無視しちゃいかんよ。
441デフォルトの名無しさん
2024/06/28(金) 09:41:44.10ID:RD8xbJnt 型がガチガチの言語でdeepnetの実装するのは面倒な割に生産性薄いわ
442デフォルトの名無しさん
2024/06/28(金) 09:45:48.57ID:uAgz1Jdl 仕組みがまだ確立してなくて試行錯誤があるなら型で制約しまくるのは面倒なだけだけどもうそういう段階じゃないのなら型で固めたほうが (使い方の間違いが検出されやすいので) 生産性高いよ。
443デフォルトの名無しさん
2024/06/28(金) 12:27:02.70ID:4Cbqp0xY >>441
C++/C#/Javaとの比較はともかく、LLとの比較は目指すところが違うでしょ。
Rustは組み込みやOSまでカバーする言語。
医療用機器とか、自動車とか、命に関わるような分野でバグを入れないための言語なんだから。
金融も同じようなものだけど、そっちはOCamlの実績(みずほ)があるのでRustである必要は必ずしもは無い。
C++/C#/Javaとの比較はともかく、LLとの比較は目指すところが違うでしょ。
Rustは組み込みやOSまでカバーする言語。
医療用機器とか、自動車とか、命に関わるような分野でバグを入れないための言語なんだから。
金融も同じようなものだけど、そっちはOCamlの実績(みずほ)があるのでRustである必要は必ずしもは無い。
444デフォルトの名無しさん
2024/06/28(金) 13:07:10.53ID:gx/r5usH LLとかいう死語を使ってるのは複オジだけだぞ
445デフォルトの名無しさん
2024/06/28(金) 13:32:56.61ID:3PtwFBGo >>441
ささっと数行書くスクリプトでなければ静的型付け言語が生産性高いよ
ささっと数行書くスクリプトでなければ静的型付け言語が生産性高いよ
446デフォルトの名無しさん
2024/06/28(金) 17:07:56.21ID:v8X9ZSBd うい。40のおっさんよん(^_-)
まあ、プロトタイプは動的型言語で作って、本番のコードは静的型言語で作るなんて常識なんだから、若い人じゃなければ
> 型がガチガチの言語でdeepnetの実装するのは面倒な割に生産性薄いわ
何てこと書かないわな…。
まあ、プロトタイプは動的型言語で作って、本番のコードは静的型言語で作るなんて常識なんだから、若い人じゃなければ
> 型がガチガチの言語でdeepnetの実装するのは面倒な割に生産性薄いわ
何てこと書かないわな…。
447デフォルトの名無しさん
2024/06/28(金) 18:51:50.94ID:y+eGYcxn 今のご時世にプロトタイプは動的言語とか言ってるのは頭の硬いジジイか、ジジイの本でしか勉強出来ない馬鹿がほとんどなんだよなあ
448デフォルトの名無しさん
2024/06/28(金) 19:09:29.56ID:v8X9ZSBd 出来る人ならそれで良いし、それで>>441の言うように生産性が低いと感じないなら全然かまわない。
馬鹿馬鹿言うけど、そういう馬鹿にも作らせないといけないし、それでも作れない救えない奴はリストラするしか道が無い。
馬鹿馬鹿言うけど、そういう馬鹿にも作らせないといけないし、それでも作れない救えない奴はリストラするしか道が無い。
449デフォルトの名無しさん
2024/06/28(金) 19:58:03.61ID:pImSoiYg 動的型でプロトは結局本番で書き直す時間など取れないから机上の空論ってのが最近の認識では
最初から静的型にするか、どうしようもなくなるまで動的型で耐えるかの2択じゃないかな
まぁたいていのスタートアップは耐えられなくなる前に潰れるからそれを見越して動的型というのはありだと思うが
最初から静的型にするか、どうしようもなくなるまで動的型で耐えるかの2択じゃないかな
まぁたいていのスタートアップは耐えられなくなる前に潰れるからそれを見越して動的型というのはありだと思うが
450デフォルトの名無しさん
2024/06/28(金) 20:05:28.17ID:3PtwFBGo スタートアップ企業であろうと
動的型付け言語を使うのは開発効率が悪い
動的型付け言語を使うのは開発効率が悪い
451デフォルトの名無しさん
2024/06/28(金) 20:36:15.04ID:v8X9ZSBd んー…。
おっさん的には関数単位でテスト出来るかどうかが問題であって、プロトタイプは動的か静的かの問題じゃない気がするな。
最近は静的型言語でもインタラクティブシェル(略語忘れた)のインタプリタで関数単位でプロトタイプ作ってテストして、上手くいけばビルドって流れだし。
そういうのが無い言語は今でもプロトタイプは動的言語で作って…ないわw
場合によるな。
すでに作り方を知ってたらいきなり静的型言語で書くし、何か思いついたけど確信が持てない。みたいな時(試行錯誤が予想される)は動的型言語でプロトタイプ書いてるかな。
(静的型言語にインタラクティブシェルが無い時)
おっさん的には関数単位でテスト出来るかどうかが問題であって、プロトタイプは動的か静的かの問題じゃない気がするな。
最近は静的型言語でもインタラクティブシェル(略語忘れた)のインタプリタで関数単位でプロトタイプ作ってテストして、上手くいけばビルドって流れだし。
そういうのが無い言語は今でもプロトタイプは動的言語で作って…ないわw
場合によるな。
すでに作り方を知ってたらいきなり静的型言語で書くし、何か思いついたけど確信が持てない。みたいな時(試行錯誤が予想される)は動的型言語でプロトタイプ書いてるかな。
(静的型言語にインタラクティブシェルが無い時)
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- NHK、受信料の未払い世帯に督促強化へ 民事手続きの新組織を設置 差し押さえなどの強制執行も ★2 [1ゲットロボ★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★3 [1ゲットロボ★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」★2 [冬月記者★]
- 日本人、歴史も経済も分からず貧乏に耐えかねて第二次日中戦争を求めてしまう…ヤバイよ [819729701]
- お前らは今年の冬何回くらいカニバスツアー行くんだ? この国の冬の味覚と言えばカニだろ [452836546]
- んなっても良いお🏡
- 【悲報】高市早苗を妄信している今の日本人見ると80年前も市民は進んで戦争協力してたんだって理解出来るよね🥺 [616817505]
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
