X



Rust part18

■ このスレッドは過去ログ倉庫に格納されています
2022/12/10(土) 18:17:02.61ID:XSNoXTPt
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

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 part17
https://mevius.5ch.net/test/read.cgi/tech/1665063793/
2023/01/02(月) 01:37:36.65ID:l4/Jezsd
>>554
カオスコードでもGCでメモリリーク最小限で動くならいいのでは?
GC稼働を許す製品の話をしてるつもりはなかった
2023/01/02(月) 01:39:14.49ID:7RCL5EAR
>>554
GAFAMみたいな大企業は技術は無くても株価だけ高騰するから、金に任せて
大量の人員だけを頼りに出来るから、数百人がかりでバグだらけの使いにくい
巨大サイズのプログラムを作ってるね。
技術は無いが人だけ入る。凡人プログラマを大量に使って大量のCPUパワーを
使ってPC-9801時代のJG程度のOfficeを作って悦に浸ってる。
2023/01/02(月) 01:41:18.45ID:7RCL5EAR
>>553
ただ、俺はそれに該当しない。
そういう人も居るというだけの事。
2023/01/02(月) 01:43:49.06ID:YOUl3ux+
てかこういうのが日本の競争力を落としているんやなって
2023/01/02(月) 01:43:53.33ID:AzjsiFbw
ガベージコレクション使っていいならそら楽ちんですわ
どんな汚コードでも動けばいいんだから

ガベージコレクション無しだと例外処理の例外処理の例外処理を跨いだりして有り得ないところにメモリリーク起きてるなんてことがザラ、どんなに頭よくても絶対に気づけない
2023/01/02(月) 01:45:36.33ID:0OBugHkq
気をつけて運転していれば事故は起きないんだから安全運転なんか必要ない
事故るやつは無能だけど俺は違う

こうですかわかりません
2023/01/02(月) 01:48:35.58ID:7RCL5EAR
>>560
車の運転は一発勝負で失敗は一瞬にして起こるしテストすることも出来ない。
それに対して、プログラミングは事前にテストできる。
特にユニットテスト、モジュール別開発という手法を使えばバグはほとんど消せる。
だから十分にバグの無い安全なプログラムが作れる。
2023/01/02(月) 01:51:38.45ID:wpCELxyp
>>561
ほとんどで許されるクオリティの製品を作ってるの?
2023/01/02(月) 01:53:13.27ID:l4/Jezsd
Rustは仕事でしか使わない
趣味ではC++一択ですわ
2023/01/02(月) 01:54:24.45ID:7RCL5EAR
>>562
Rustは、「メモリー関連エラー」を防げるだけで、バグはいくらでも入る。
Rustも、下手な人がプログラムするとバグは100個でも入るし、不安定で
(その人の頭脳では)エラー箇所が見つけられないバグも入り得る。
2023/01/02(月) 01:54:52.62ID:l4/Jezsd
それとGC有りはGoとKotlin&Swiftや
Goは最強過ぎる
2023/01/02(月) 02:08:35.19ID:iBEz6sTU
>>545
間引きまくってたら募集が集まらないし賃金も上がる
質の悪い土方人間をも上手く使っていかなきゃならない
質の悪い土方の書いたコードでもrustなら厄介なメモリバグ無く論理部分のフィードバック、デバッグに集中できるというメリットがある
567デフォルトの名無しさん
垢版 |
2023/01/02(月) 02:20:43.43ID:/m9PT5PE
またステマしてるのか。
2023/01/02(月) 08:04:20.77ID:5vPX8Xay
RustはCの置き換えくらいにしかならん
質の悪いPGが入り込まない分野じゃねえかなあ・・・
2023/01/02(月) 08:33:37.75ID:nNAGgWWg
だからWebでRustやってる奴は馬鹿
Cとpthreadの経験もないやつはRustやらない方がいいよ
2023/01/02(月) 09:51:22.76ID:0wpgrwz2
>>561
Rustでモジュール別開発、ユニットテストするのが一番いいんじゃね?


てかステマステマ言ってるやつ居るけど出版社がプログラミング言語のプロパガンダしてなんの得になるんだよドメインが違うやろ
出版社なら勝確になった言語の本を出すだけでいいはず
ステマで特定言語を覇権に押し上げても他社が解説本出すのを止められないから独占できる利益とかどこにもない
2023/01/02(月) 11:12:02.50ID:Gy4QUALO
>>543
javaと同じIT土方専用になりそう
2023/01/02(月) 11:28:29.88ID:YmLvf+iB
>>571
土方じゃないのってなんだよ
フロント設計用言語か?
2023/01/02(月) 12:32:43.21ID:4sGLZD36
>>543これだな
頭の程度の低い人なら安く雇えるから開発費を抑えられる
c/c++をまともに使えるやつの人件費は高すぎて困る
2023/01/02(月) 12:41:13.29ID:/FZtEsII
まあ1Mにも満たない規模の組み込みでrustはいらんわな。
数GBかつメモリ使用量を気にするって領域以外はほぼ必要ない。
2023/01/02(月) 12:42:40.05ID:EJhafa7d
>>573
頭の悪いやつはJavaしか使えんよ
2023/01/02(月) 13:04:35.26ID:CiQJ5hLG
うちの洗濯機ってなんの言語で動いてるんだろ
2023/01/02(月) 13:27:14.96ID:+OfFIZCg
今どきの家電はインタプリタ言語で動いてるとか
2023/01/02(月) 13:35:26.47ID:hMsVB3IX
>>574
ArduinoでもRaspiでも、Cだとそのまま単純に理解できて便利だな。
579デフォルトの名無しさん
垢版 |
2023/01/02(月) 13:37:29.21ID:68tUcpM+
>>576
そらC#に決まってる
2023/01/02(月) 13:42:25.25ID:hMsVB3IX
>>568
ところが、Rustの安全性は大規模プログラムで無いと真価が発揮できないから、
帯に短し襷に長し状態。
Cは小規模プログラム向けで、大規模プログラムはC++だから。
2023/01/02(月) 13:58:18.86ID:1k7qyNCA
>>576
多分C言語 + 一部アセンブラかと

洗濯機・掃除機・調理家電の組み込みソフト開発
組込みソフトウェア開発の経験(C言語他,モデルベースソフト開発)
https://www.hitachi-gls.co.jp/recruit/career/recruit/pe2.html
2023/01/02(月) 14:23:20.98ID:YOUl3ux+
今しか見ていない情弱の鏡
2023/01/02(月) 14:29:37.31ID:hMsVB3IX
>>568
組み込みって分野は、基本的に微分積分やベクトル、論理回路、複素数などが
普通に出てくる世界だから、頭脳レベルが一般プログラマより元々高い。
だからもともとメモリーエラーで苦しんだりする人が少ない。
なので、Rustの出番が無い。
584デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:36:17.90ID:FoyI26k+
>>583
その一般レベルプログラマと一緒に仕事しなきゃいけないときには頭脳の高い人も仕方なくRustを使うのでは?
社会活動ってマジで頭脳の高い人が損する世界だわ、一般レベルプログラマは消えてもらって頭脳の高い人集団でCだけ使わせてほしいわ
585デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:38:59.98ID:FoyI26k+
好きでRustを使ってる人なんてこの世に居ないと思うよ
みんな納品先や上からの命令でイヤイヤRustを使ってる
586デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:39:14.35ID:J6556tKT
フロントの意味知らないやつとか
バックエンドの意味知らないやつとか
ホントなんなんこのスレw
587デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:47:05.55ID:8T2JCaCm
>>583
スマホに使うチップのコードを書いてる知人が何人かいるが頭脳レベルが高いとか全くないわ
Fラン文系新卒で3ヶ月の新卒研修後に客先派遣されるような末端プログラマーに比べたらそりゃ頭脳レベルwは高いがな
588デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:47:48.26ID:rNCwFI/s
rustはやってるとイライラするから私用ではぜっっっっったいに使わないw
rust大好きステマするやつは頭おかしい
2023/01/02(月) 14:52:40.32ID:2CTZhPr+
Rustはマイクロソフトが採用したり
Linuxのデバイスドラバで採用されたり
トヨタ自動車の組み込みソフトで採用されたり
特殊用途ではこれから発展していくけど
さらに一般的になるには 最低でも10年くらいかかるといっていだろう
590デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:56:42.31ID:VUVgrbrW
c++やjavaとかは人間様のための言語だけど、
rustはコンピュータ様のための言語だからね
人間がコンピュータ様の奴隷になって制約されながら設計する言語だからrust好きの人間はドM確定
591デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:59:59.54ID:VUVgrbrW
>>589
一般的になってほしくねえなあ
2023/01/02(月) 15:07:37.03ID:1k7qyNCA
>>591
お前みたいなど底辺まで降りてこないから心配すんなw
2023/01/02(月) 15:09:37.54ID:hMsVB3IX
>>589
本当の事は知らんが、PerlやJava、Rubyの本が本屋に沢山並んでいた頃には、
既にそれらの言語はよく使われていたのに対し、Rustは本はその状態になったのに
余り使われて無い現実がある。知名度が高いのに使われて無い。
2023/01/02(月) 16:35:19.00ID:1k7qyNCA
Rustの本がたくさん並んでる本屋ってどこ?
595デフォルトの名無しさん
垢版 |
2023/01/02(月) 19:09:09.75ID:YhyxjXQU
Rustの本くらい近所の町図書館にすら置いてるわ
2023/01/02(月) 19:16:20.01ID:1k7qyNCA
>>595 は「たくさん」という言葉すら理解できないのか...
2023/01/02(月) 19:16:22.22ID:f/84eqys
>>594
Kindleでええやん
598デフォルトの名無しさん
垢版 |
2023/01/02(月) 19:32:00.38ID:bVUI9Zvi
>>594
紀伊國屋書店はたくさんあるで
いまはこの本を通販で買って勉強中
https://www.kinokuniya.co.jp/f/dsg-01-9784873119595
599デフォルトの名無しさん
垢版 |
2023/01/02(月) 19:34:02.10ID:l4/Jezsd
今日は初詣に行ってきた
Rustさん普及しないで下さいと神頼みしてきた
600デフォルトの名無しさん
垢版 |
2023/01/02(月) 19:39:19.94ID:Qsv7PpLz
>>599
お前には無意味な願いだな
お前にRustの仕事が来るわけ無いもんなww
2023/01/02(月) 19:41:54.59ID:f/84eqys
>>600
どう考えてもゴミプログラマやゴミ企業が参入してくるなって意味やろ
602デフォルトの名無しさん
垢版 |
2023/01/02(月) 19:42:30.75ID:l4/Jezsd
>>600
それな
だけどタワマンをローンで買ったばかりだから簡単に辞められない😭
来週からまたRustやらなあかん😭
603デフォルトの名無しさん
垢版 |
2023/01/02(月) 19:59:34.00ID:VzocPQJy
>>586
ガイジばっかだからしょうがない
2023/01/02(月) 20:14:22.01ID:1k7qyNCA
>>598
まあ紀伊国屋さんなら...
でも検索すると結構あるんだな、ちょっと驚いたわ
605デフォルトの名無しさん
垢版 |
2023/01/02(月) 20:30:32.37ID:XEaXux8L
俺は実用にしてるのはC#で、Rustやら情報科学やらは教養のための修行だと思って勉強してる
2023/01/02(月) 20:57:28.93ID:1nPeGYO+
>>605
その目的ならRustではなくCをやるべき
607デフォルトの名無しさん
垢版 |
2023/01/02(月) 21:02:55.55ID:kxn3UFF9
Cは実用になっちゃうからな。
修行に向いてない。
2023/01/02(月) 21:11:43.92ID:f/84eqys
Rustでプログラミング始めるヤツなんておらんやろ
最低5言語くらいマスターしてる人が道楽として試すのから入るのが殆どじゃない?
609デフォルトの名無しさん
垢版 |
2023/01/02(月) 21:31:15.99ID:kxn3UFF9
Rustで生涯修行してればよい。
2023/01/02(月) 21:42:04.71ID:V6kLsOzd
今北なんだが、メモリー関連バグを潰せるだけでRust採用の価値があると思うけどそうじゃないんか
メモリー管理ミスが6割と聞いた
2023/01/02(月) 21:52:47.16ID:Gy4QUALO
>>610
linuxのドライバー作成ならいいかも
612デフォルトの名無しさん
垢版 |
2023/01/02(月) 22:10:50.96ID:QyytlXeP
>>598
紀伊國屋てw
ジュンク堂と双璧をなすラスボスですやん
613デフォルトの名無しさん
垢版 |
2023/01/02(月) 22:12:22.06ID:tEANpl9g
>>610
何事も良い面と悪い面があるので
自分のユースケースに当てはめてトレードオフを判断すべき
614デフォルトの名無しさん
垢版 |
2023/01/02(月) 22:14:14.00ID:Pa+Nwx1c
>>605
C#やってるならSwift勉強するといいぞ
教養とは違ってC#の力が向上する
2023/01/02(月) 22:25:45.48ID:U4Kt6Q5r
C#だのSwiftだのJavaだのスレチじゃバカども
2023/01/02(月) 22:34:00.16ID:+w7X3Pyb
ファイルシステムのパス回りをいい感じに抽象化してくれる(もしくは整形してくれる)クレートとかない?
env!("APPDATA")→"C:\Users\・・・\AppData\Roaming"
current_exe()→"\\?\C:\foo\・・・"
違うパス形式が入り混じるのはトラブルの元
2023/01/02(月) 22:48:29.16ID:65aHjL4I
まず Windows を窓から投げ捨てます
2023/01/02(月) 22:53:21.97ID:S0abPazk
>>616
fs::canonicalizeかければとりあえず形式は揃うんじゃない?
619デフォルトの名無しさん
垢版 |
2023/01/03(火) 00:03:36.64ID:z3nhExEu
>>610
頭脳の高い人はそもそもメモリ関バグを引き起こさないからRustである意味がない
620デフォルトの名無しさん
垢版 |
2023/01/03(火) 00:22:12.16ID:yTVwCgmJ
>>619 人間は間違う生き物だぞ
2023/01/03(火) 00:35:48.41ID:lG7LTjUD
>>620
頭脳明晰な人は
・論理を間違う頻度が極端に低い。
・テストの仕方が合理的でシステマチック。
・問題が発生しても原因箇所を突き止めるのが上手い。
622デフォルトの名無しさん
垢版 |
2023/01/03(火) 00:56:11.95ID:iu5XrAAr
頭脳明晰な人は人間の限界をよく理解している
注意資源を無駄なことに使わないためにどうすればいいかを考える

頭の悪い人にはこれが理解できない
2023/01/03(火) 01:02:17.21ID:lG7LTjUD
>>622
もっと頭のいい人は、特に注意して無くてもちゃんと出来てる。
2023/01/03(火) 01:17:35.62ID:FM7p8eEf
架空の「何でも完璧にできるプログラマー」などを頭の中で作り上げたところで何の意味もない
実際にそういう人だけで回せている組織を教えてくれ
625デフォルトの名無しさん
垢版 |
2023/01/03(火) 01:24:27.20ID:EuUAQyXR
>>621 そりゃすげえや
天才しか入れない会社であるGoogleで作られたソフトウェアには脆弱性が存在しないことになるんだからな
2023/01/03(火) 01:28:02.05ID:JZU75e4y
>>616
Ruby では、File.expand_path で、\ を、/ に変換できる
627デフォルトの名無しさん
垢版 |
2023/01/03(火) 03:16:16.17ID:KtR68cDI
>天才しか入れない会社であるGoogle
夢見過ぎw
算数100点オジと同じ発想だぞ
628デフォルトの名無しさん
垢版 |
2023/01/03(火) 03:21:18.09ID:4wglqwE1
>>623
最高に頭悪そうな発言だな
小学生1年生かよ
2023/01/03(火) 03:59:57.20ID:FAR4SCa0
>>618
サンクス。それを通すとUNCライクになるんか
リファレンスを見るとこの仕様が確定しているわけではなく
互換性の面でUNCライクのパスが望ましいのかという問題も
なんとなくだけど互換性はドライブレタースタートのほうが高そう
というかググってもパス情報の推奨される扱いとかよくわからんな
PathBufが返ることが多いためかmutをつけてる例が多く見えるけど
加工が終わった後もmutのままにしておくのが望ましいとも思えないし
2023/01/03(火) 07:04:07.60ID:njxOMnvb
>>625
そのGoogleがAndroidにRustを使うようになってバグが減ってるからGoogle程度では頭脳明晰な人ばかりではないらしい

https://japan.zdnet.com/article/35196972/
2023/01/03(火) 08:12:40.12ID:qI8JCo5P
○○バリア!
○○バリア貫通ビーム!
○○バリア貫通ビーム完封バリア!
まじで小学生と同じやな

グーグルの社員ですらメモリ管理をミスる
それより賢い天才が居ればそいつはCで良いよ、でも俺はそうじゃないのでRustを学んでるよ
ある意味メモリ管理を絶対にミスらない天才がコンパイラ
2023/01/03(火) 08:30:40.46ID:iKNX9wDb
>>629
mut が気になるならシャドーイングで消せばいいよ
let mut a = …

let a = a; // これ以降変更不可
2023/01/03(火) 10:24:54.22ID:Wjw3Ta6M
>>629
dunce crateのほうがいいかもね
ていうか本音はcurrent_exe()が完全修飾パス返すのをやめてほしいところ
2023/01/03(火) 12:37:20.83ID:guKgEgHI
ここってこんなにカオスだっけ
2023/01/03(火) 12:48:32.86ID:jNo/ZtXx
ディープステートに関わり持つやつが荒らしに来ている!
2023/01/03(火) 15:23:27.19ID:GGjfHYq/
頭のいい人の気持ちを一般人は理解できない。
2023/01/03(火) 15:33:14.38ID:GGjfHYq/
>>631
犬と人間くらいの知能差があるとすれば話は違ってくる。
Google社員は犬の中の秀才程度。
2023/01/03(火) 15:38:13.00ID:GGjfHYq/
>>631
俺からすれば、コンパイラは決まりきったことだけこなす単純馬鹿だけどな。
639デフォルトの名無しさん
垢版 |
2023/01/03(火) 16:20:19.42ID:N8ek48Mq
>>638
コンピュータなんだから当たり前では?
2023/01/03(火) 17:21:00.77ID:FAR4SCa0
>>632
となるとパスを整形する関数を用意して切り離すべきか

>>633
なかなかよさそうですね。使ってみます
>There are also Windows NT UNC paths (\\?\C:\foo), which are more robust and with fewer gotchas
>but are rarely supported by Windows programs. Even Microsoft's own!
思うことはみんな同じなんやなって
641デフォルトの名無しさん
垢版 |
2023/01/03(火) 18:42:10.36ID:yYGSV1g6
技術評論社の呪い。
2023/01/03(火) 18:46:23.16ID:EF4+Zmp+
技評技評言ってるヤツがしつこいが正直Rust流行ったからって技評のあの構成じゃ売れんだろ
2023/01/03(火) 18:49:28.25ID:FAR4SCa0
canonicalizeって存在しないパス情報を扱えない?のか(fsもdeucnも)
let path = dunce::canonicalize(Path::new(".\\foo")).unwrap();

は.\fooが存在しない場合Errが返ってパニックする
こうなるとパス情報は他の処理系と同じく文字列で保持して
使用するところでPathに変換するのがベターなのかな
644デフォルトの名無しさん
垢版 |
2023/01/03(火) 18:57:54.40ID:yYGSV1g6
>>643
それ、実はかなり深い問題だぞ。
特に、環境依存のないライブラリではな。
Rustだから安全ですとか言ってないで、経験豊富なC++スレにでも聞きに行け。
2023/01/03(火) 20:14:15.53ID:ZKwlKjAo
>>643
っstd::path::absolute
646デフォルトの名無しさん
垢版 |
2023/01/03(火) 20:19:29.87ID:yYGSV1g6
深い問題だと言ってるだろ。
Rustだから安全ですと言ってないで、わかってる人に聞きに行け。
2023/01/03(火) 20:23:30.48ID:iKNX9wDb
>>643
dunce::simplifiedでUNC除去するのがいいんじゃない?
別にPath自体は存在しないパスも保持できるしOsStringにするほどのこともないように見えるけど
648デフォルトの名無しさん
垢版 |
2023/01/03(火) 20:57:51.98ID:pV/Lv/4Y
>>645
\\?\にabsoluteは対応してなくない?
2023/01/03(火) 20:59:49.29ID:FAR4SCa0
>>645,647
そもそも一律で絶対パスに展開するのが最良なのか?ってところから再検討中
リモートになりうるパスを絶対パスに展開するとトラブルの発生率が増す気がしてきた
650デフォルトの名無しさん
垢版 |
2023/01/03(火) 21:01:15.66ID:yYGSV1g6
Rustスレでそんなこと質問したって無理だから。
いい加減諦めて実績のある言語スレに行け。
2023/01/03(火) 21:21:04.77ID:FM7p8eEf
誰も「Rustだから安全です」なんて言ってもいないしそもそも必ずしも安全でないことぐらい少しRustのこと勉強した人なら誰でも知ってる
2023/01/03(火) 21:39:29.06ID:MrpqBo7i
>>649
とりあえずPathBuf(参照ならPath)で保持しておいて必要な時にcomponents()で展開する感じがいいのかな
std::pathのPathBuf、Component、Prefixあたりでそれなりに抽象化はできてると思う
あとは目的次第
2023/01/03(火) 21:42:19.01ID:nBTO23xG
>>651
>>231
654デフォルトの名無しさん
垢版 |
2023/01/03(火) 21:54:07.94ID:yYGSV1g6
>>651
知ってたらRustなんか使わんだろ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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