Rust part18

レス数が950を超えています。1000を超えると書き込みができなくなります。
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/12(木) 11:13:05.66ID:CILc6G1+
ripgrepの実装でも見た方が早そう
2023/01/12(木) 11:37:44.42ID:Iq4TKL6o
>>858
そもそもトータル1MB程度って分かってるなら余裕みて2MB程度確保しとけば良いような気がするが...
861デフォルトの名無しさん
垢版 |
2023/01/12(木) 12:26:48.24ID:lE5eokgZ
>>859
ripgrepは今回のようにすべてのコンテンツを全て一括でメモリに保持するわけじゃないから
streamingで処理するのでいいなら固定長のバッファ確保してそこを使いながらパイプライン通して結果をI/O出力すればいい

>>860
アロケーションがボトルネックならそういう対処もあるだろうけど十中八九違うんじゃね?
2023/01/12(木) 13:42:55.06ID:xHtWNAJz
は?頭悪いの?
2023/01/12(木) 13:53:22.90ID:Iq4TKL6o
>>861
> アロケーションがボトルネックならそういう対処もあるだろうけど十中八九違うんじゃね?
そんなのはみんなわかっててあーだこーだ言ってるわけだがw
864デフォルトの名無しさん
垢版 |
2023/01/12(木) 15:09:30.20ID:xWF9eQpc
>>863
的外れないことを言ってる自覚があるなら>>860みたいなレスはしないだろ
2023/01/12(木) 15:31:26.43ID:Iq4TKL6o
的外れないことって何?w
2023/01/12(木) 21:08:10.25ID:3O2sN+zP
dunce::canonicalizeはダメっぽいのでGetFullPathNameWを使うことにした
ちょうどいいシステムコールが用意されているなら安易に野良クレートを使うより確実な気がしてきた
2023/01/12(木) 22:10:25.12ID:FSx5+7HP
やっぱC言語の方が良くね?
2023/01/12(木) 22:53:08.57ID:SDdlQMcb
というと ?
2023/01/12(木) 22:57:40.51ID:lSbfdb++
いや、知らんけどw
2023/01/13(金) 20:32:09.46ID:GI5Uh2G8
知らないなら言うなよ
2023/01/13(金) 21:11:06.84ID:DJL02dxD
>>844
のコード見るだけでも、Rustは書き味の悪い言語だと思う。
872デフォルトの名無しさん
垢版 |
2023/01/13(金) 21:13:37.70ID:pWxhpTTY
>>871
悪い見本だもの
2023/01/13(金) 21:16:19.91ID:DJL02dxD
>>872
Rust関連の本を何冊か読んだが良いコードは余り無い。
874デフォルトの名無しさん
垢版 |
2023/01/13(金) 21:19:33.92ID:pWxhpTTY
悪い見本だと判別できない時点でろくな本を読んでないことが分かる
875デフォルトの名無しさん
垢版 |
2023/01/13(金) 21:21:43.63ID:URQHLbI7
みんなの参考になるように読んだ本を列挙してみてはどうだ?
2023/01/13(金) 21:26:26.06ID:DJL02dxD
はっきり言ってやろう。Rustは根本的に書き味が悪いんだよ。
2023/01/13(金) 21:29:15.41ID:3E7mF/VV
Rustは苦痛を感じるためのドM言語ってこと、忘れてないか?
878デフォルトの名無しさん
垢版 |
2023/01/13(金) 21:29:53.28ID:AezcW3Li
>>876
じゃ君が思う根本的に書き味が良い言語は何なの?
2023/01/13(金) 21:35:01.32ID:SIYbgDna
>>878
c
2023/01/13(金) 21:47:38.65ID:fPZtp8ym
ワイはJava
2023/01/13(金) 21:48:28.21ID:fPZtp8ym
Kotlin、C#も好き
2023/01/13(金) 22:05:13.48ID:CrbXPD60
ラクダケース派か
PythonとかRustみたいに型と変数でラクダとヘビ使い分けるパターンって名前あるのかな
2023/01/13(金) 22:18:14.76ID:3Mpi9pMF
C#はたしかに何やるのも楽だ
2023/01/13(金) 22:45:44.13ID:JAZ1vLLw
Rustってそもそもコンパイル速度が遅くてダメだわ
2023/01/13(金) 22:48:50.23ID:KppyFlUz
Goはコンパイル最速だからデオキシスのスピードフォルムだな
Rustはディフィンス、Java/C#はノーマルフォルムだな
アタックフォルムは知らん
2023/01/13(金) 23:27:46.90ID:15Xqxl1r
>>878
C, C++, C#, JS, Ruby, Java は、Rustよりは書き味がいい。
2023/01/14(土) 00:10:54.25ID:+bIIgMNd
自分はスネーク派だからJavaとC#は苦手(根本的に書き味が悪い)
Python使用歴が長かったからだと思う
CとC++は何でもありだからどうでもいいけど
TypeScript(JS)も油断するとスネークで書いてたりする
2023/01/14(土) 00:20:05.26ID:7IKvLHvE
スネークとは関係なく、Rustは書き味が悪い。
他のどんな言語にも無い書きにくさ。
Kotlinも書き味が悪いから没落中。
2023/01/14(土) 02:25:09.71ID:aWsdCtiV
汚コード量産言語
2023/01/14(土) 06:19:32.45ID:si/5TbUH
書き味で言うならNimが一番良い。

特にメソッド呼出し構文はNimが一番洗練されていると思う。UFCSとかもっと色々な言語で採用されてほしい。
2023/01/14(土) 10:19:28.23ID:gaUC4cev
でもnimって流行ってないじゃん?
2023/01/14(土) 10:29:27.36ID:qzxpLg1U
nimの構文とか好きな人は好きだろうと思うけど自分は嫌いだし
嫌いな構文をわざわざ使うほどの他の魅力がないんだよなぁ
2023/01/14(土) 11:26:06.77ID:P3G4Bbh6
書き味悪いとか言ってRust使う気全くないのにわざわざRustスレに書き込もうとするのが一番意味不明
2023/01/14(土) 11:58:15.30ID:2TykacFm
>>893
オレもそう思った
意味不明というかアンチスレあるからそっちでやれよ
って感じ
2023/01/14(土) 12:05:24.38ID:mqrlOfYW
わざわざ文句いいに来るおじさんって大抵構ってちゃん
896デフォルトの名無しさん
垢版 |
2023/01/14(土) 13:50:07.41ID:E6EWdIax
「書き味」の良さ悪さの原因を自分なりに考察して言語化してれば多少は議論になるんだけどな

慣れと好みの次元でしか語れないならお爺ちゃんの自分語りでしかないから相手しても無駄
2023/01/14(土) 14:08:44.00ID:CzVWhO4J
そもそもRustはいろいろ我慢して使う言語だし
みんな上に言われて仕方なく使ってる
2023/01/14(土) 14:09:38.67ID:kogkDCJ2
>>896
そんなことしたら、ずるがしこい人達にアイデア盗まれるだけじゃ。
2023/01/14(土) 14:11:13.60ID:kogkDCJ2
何が良くて何が悪いかを発見すること能力こそ重要なのだから。
2023/01/14(土) 14:33:09.89ID:Yhj3VSAm
>>898
糖質おつ
2023/01/14(土) 14:35:58.49ID:osTmo3zd
コンパイラ安全最強はrust
コンパイラ速度最強はgolang
オブジェクト指向設計最強はjava/c#
汎用最強はc/c++
2023/01/14(土) 14:56:30.09ID:on+CIJwd
殆どの言語は高速化に向けて頑張ってるからGo言語の地位は危ういけど、既存の言語をメモリ安全にするのは大変だからRustは安泰
強みがあるって大事
2023/01/14(土) 15:32:55.40ID:3m59wGPl
もう次世代言語スレ立ててこいよ
904デフォルトの名無しさん
垢版 |
2023/01/14(土) 15:40:05.51ID:4KPPIGP6
また次世代言語スレ(旧世代おじいちゃん隔離スレ)が消えたから溜まり場になってるのか
迷惑な話だな
2023/01/14(土) 15:51:18.61ID:yWcHQYoB
rustが次世代言語、、?まじぃ?
2023/01/14(土) 15:55:26.44ID:HwrORXYU
次世代の言語
https://mevius.5ch.net/test/read.cgi/tech/1571717826/
907デフォルトの名無しさん
垢版 |
2023/01/14(土) 17:40:41.95ID:VmfonobT
>>898
アホだろw

「トマトは不味い、俺はりんごが好き」と同程度の話なのにお前がりんごが美味いと感じる理由を説明したらそのアイデアwとやらがが盗まれると思ってんのかww
908デフォルトの名無しさん
垢版 |
2023/01/14(土) 17:48:38.74ID:7aPbxTVe
>>907
まともにrust使ったことないのがまたバレるから誤魔化してるだけでしょ
2023/01/14(土) 18:06:11.45ID:P3G4Bbh6
アイデアってことは書き味のいい最強のプログラミング言語の開発でもしてるんだろうな
2023/01/14(土) 18:36:28.57ID:9ctkhBjT
仮に、あくまでも仮にプログラミング言語を確実に素晴らしくする案があったとして
その案が盗まれて (他の言語に取り入れられて) なんか損なことがあるのか?
世の中に良いものがひとつ増えればありがたい話。
2023/01/14(土) 19:24:05.22ID:s7HfBvg3
車関連のソフトウェア携わってるやつおる?
今年から急にrustの案件増えてきてね?
しかもすごい金かけてる案件が目白押し
うちは4次請け5次受けくらいの立場だからわからないけどこれってTOYOTAとかホンダとかが大元なのか?
2023/01/14(土) 19:34:43.90ID:F1jWkXvh
勘弁してくれよ、、
Google Chrome、プログラミング言語「Rust」の採用を発表
https://news.mynavi.jp/techplus/article/20230113-2561774/
2023/01/14(土) 20:10:33.53ID:2TykacFm
>>911
>>589

世間知らずもほどがある
2023/01/14(土) 20:48:41.86ID:VNfJPmNM
車載での普及はかなり先では
少なくとも今のE/EではCのままでしょ
2023/01/14(土) 20:53:17.78ID:IboOW/fc
>>912
この流れだとedgeやsafariが追随するのは必至か
2023/01/14(土) 21:32:45.87ID:CLO/QXdT
車つってもエンジン制御とUIじゃ全然違くないか
2023/01/14(土) 22:11:15.42ID:QmsxXkaU
>>915
EdgeはChromiumベースじゃん
918デフォルトの名無しさん
垢版 |
2023/01/14(土) 22:11:45.32ID:d5QpUSFx
>>915
edgeはchromiumだから追随も何も自動的にRust採用
chromeの脆弱性の大半はメモリ関連バグが原因なので自然な流れ
919デフォルトの名無しさん
垢版 |
2023/01/14(土) 22:12:14.30ID:d5QpUSFx
ァー!
920デフォルトの名無しさん
垢版 |
2023/01/15(日) 00:41:50.47ID:ku1I9qUG
>>886
Ruby入れんなバカ
921デフォルトの名無しさん
垢版 |
2023/01/15(日) 00:54:56.50ID:ku1I9qUG
>>911
俺もそんぐらいの商流だけど、話は増えてる。

>>914,916
今の車はエンジンやナビ以外も色々電子制御してるんだわ。
んでもって今まさに売るもんじゃなくて、ン年先に出るかもしれないモデルの話。
C/C++のテスト工数がばかんなんないんだわ。
2023/01/15(日) 02:51:25.95ID:KkfkCmPm
Rustは自動車などの人命に関わる部分では人気が高まっていると。
人命に関わるからめんどくさくても仕方が無いと。
2023/01/15(日) 02:56:27.53ID:lfgB9E3M
その話が事実ならルネサスからRustの開発環境が提供されるのも
時間の問題ってこと?(もしくは一部にはすでに提供されている?)
現状組み込み用だとCortex-MやRISC-V用の野良コンパイラと
vscodeあたりを組み合わせるしかないわけだし
2023/01/15(日) 07:17:19.37ID:Fhl5jlzy
ソニー・ホンダのAFEELAとかどうなんだろ?
Rustとか使ってるのかね。


ソニー・ホンダも志向、自動車の「走るスマホ化」
https://toyokeizai.net/articles/-/644484?page=2
ソニー・ホンダモビリティの河野拓・デザイン&ブランド戦略部ゼネラルマネジャーは、AFEELAを「iPhoneにタイヤがついたようなもの」と例える。
2023/01/15(日) 09:01:34.83ID:FWMLffRf
>>921
>>922
914です。ADやゾーンE/Eに向けて採用されていくのは同意。演算能力はマイコンというよりPC

エンジン、ブレーキ、ステアECU等々のマイコン使った従来E/EのECUは人命に関わっていたとしてもCのままだと思うよ
モデルベースでRustのコード生成なんて聞いたことないし
2023/01/15(日) 10:33:03.49ID:xEBlbsta
書き味ってのはオブジェクト指向し易いかどうかってこと?
2023/01/15(日) 11:04:25.61ID:iBpPXbBA
>>924
> ソニー・ホンダモビリティの河野拓・デザイン&ブランド戦略部ゼネラルマネジャーは、AFEELAを「iPhoneにタイヤがついたようなもの」と例える。
そう言うのはECUとか知らない一般向けの宣伝文句だよ
928デフォルトの名無しさん
垢版 |
2023/01/15(日) 11:33:45.74ID:Veh5XioV
命に関わるようなところを4次請け5次請けに出してんの!?
日本マジ終わってんなww
2023/01/15(日) 12:56:35.95ID:XPwcoEw+
>>928
いまさらすぎる
2023/01/15(日) 13:28:39.34ID:9tzHaMX4
仕様書通りにできててテストに合格すればどこに出してもいいでしょ
孫請け以降禁止する契約もあるけど
931デフォルトの名無しさん
垢版 |
2023/01/15(日) 15:27:38.76ID:L+UeRXU0
>>930
言い訳ないだろw
戦略的にも品質的にも生産性的にもあり得ない

仕様書通りにできててテストに合格してればいいという理由でGoogleが自動運転技術の命に関わるような開発を4次請け5次請けに出すと思うか?
シートベルトやエアバッグ作るのとはわけが違うんだよ
2023/01/15(日) 16:08:55.48ID:9tzHaMX4
>>931
だから不安なら禁止すればいいと書いた
2023/01/15(日) 16:09:46.14ID:dEFl4tMA
>>931
GoogleはGoogleの付加価値を提供するために自分たちでやっているだけでしょ
車とそのシステムを作るカーメーカーやTier1が自分でソフト書かなくても品質保証できていれば問題ない。付加価値はそこじゃないから
時代は変わってきてるけどね
2023/01/15(日) 16:13:07.64ID:9tzHaMX4
Rustは メモリ関連のバグが減るからどんだけ下請けに出しても
大丈夫な言語でしょw
935デフォルトの名無しさん
垢版 |
2023/01/15(日) 16:19:04.91ID:kf65JyLn
>>933
そんな考えだから
トヨタですらコードがスパゲッティすぎるという理由で安全性を疑問視され訴訟で負けたりするんだぞ

ソフトウェアというものへの理解が足りない
2023/01/15(日) 16:20:38.88ID:9tzHaMX4
>>935
え? 負けてないけど?
2023/01/15(日) 16:32:56.96ID:x9M0LVrY
fn foo(・・・) -> Path {
>error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
Pathを返したい場合ってどうすればいいの?
Path::newとかはPathを返してくるしPathを返り値とできないってことはないと思うんだけど
2023/01/15(日) 16:38:48.05ID:+F45TDzj
テスラ車を突然襲う「ファントムブレーキ」、米NHTSAが調査に本腰
https://www.gizmodo.jp/2022/02/what-causes-phantom-braking-in-tesla-cars.html
https://www.youtube.com/watch?v=gG2joDBwvUk

調査の対象となる去年と今年の北米市場版Model 3とModel Yは8つのカメラオンリーです。前方の障害物を認識するレーダー(競合EVの間では自動運転に不可欠というのが常識)は装備されていません
2023/01/15(日) 16:56:40.61ID:ENXbg9TW
>>937
Path::new()の戻り値の型は&Path
2023/01/15(日) 17:00:40.85ID:4g2lfxWa
>>935
コードがスパゲッティだと安全性
2023/01/15(日) 17:01:49.92ID:4g2lfxWa
>>935
コードがスパゲッティだと安全性に問題あり→分かる
コードがスパゲッティだと裁判で負ける→そんなわけない
2023/01/15(日) 17:20:01.49ID:c/yAq8vN
>>926
それ以外も全般的に。
943デフォルトの名無しさん
垢版 |
2023/01/15(日) 17:55:36.90ID:5NYA+kvP
>>937
Pathはsliceだから生のままでは返せないよ

Stringとstr
OsStringとOsStr
PathBufとPath
の関係
2023/01/15(日) 17:56:08.44ID:JkaIrkhI
>>939
今度は
>error[E0515]: cannot return value referencing temporary value
そりゃそうだが動的に生成したPathは返せないのか?
2023/01/15(日) 19:17:28.73ID:VFtoNkPd
>>935
rustはスパゲッティーでもメモリは安全安心なんだぞ
2023/01/15(日) 19:40:58.90ID:fK8j/jFh
秘技!unsafe発動!私は無敵になる!
2023/01/15(日) 19:54:34.79ID:m9lyhdrZ
>>944
動的に生成したパス文字列なら生成した文字列を保持するメモリが必要だからPathBufで返す
関数の中で作成したString(OsString)は関数を抜けるといなくなるからそれを参照する&Pathは返せない
どーーーしても&Pathで返したいなら生成した文字列を保持するための&mut OsStringを渡すみたいな技巧が必要

単純に使いたい関数の引数が&Pathなのであれば&PathBufを&Pathとして使える(&Stringが&strになるのと同じ)
2023/01/15(日) 19:58:23.93ID:VFtoNkPd
動的に生成したパスタに見えた
2023/01/15(日) 20:11:32.50ID:XPwcoEw+
>>946
無敵どころか無防備やん
2023/01/15(日) 20:49:39.82ID:m9lyhdrZ
彼の敵はRustコンパイラだから…
2023/01/15(日) 23:14:32.72ID:PFXm7BL+
コンパイラを黙らせることが開発だとでも思ってんのかね
2023/01/15(日) 23:28:08.61ID:lfgB9E3M
日本の仕事の進め方的には遠からず当たっているのでは?
うるさい奴を黙らせればおkみたいな会社は多いだろ
2023/01/15(日) 23:30:43.68ID:PFXm7BL+
そういうアリバイ主義者と静的解析バカの悪魔合体は勘弁願いたいな。
2023/01/16(月) 00:40:29.27ID:kCG1A2Jc
>>947
マジか。結局Pathを全部PathBufに書き換えた
955デフォルトの名無しさん
垢版 |
2023/01/16(月) 01:05:51.67ID:N6G/4L1i
最初の[u8]渡してエラーになってるやつは
&[u8]を渡して&Pathを返す関数にするのが一般的
2023/01/16(月) 08:09:07.68ID:iSnf76Rg
let mut v:Vec::<u8> = Vec::new();
let mut t = tar::Builder::new(v);
と書くと1行目がwarning: variable does not need to be mutableになるんだけど
こういうときってどう書くのがいいのだろうか
コンパイラのチェックや動作に問題がなくても変化する変数をイミュータブルで
宣言するのは可読性が落ちるし
2023/01/16(月) 08:16:50.14ID:uVn9RqoF
>>956
少なくともvは一度も変更せずにtar::Builderにムーブされてしまうのだから
素直にmut取ればいいと思うけど
ムーブ先で将来的に変更される可能性のあるものすべてにmutを付けるというのは
特に可読性良くもないと思う
2023/01/16(月) 08:26:33.56ID:uVn9RqoF
というかその理屈だと
let b = a;
let c = b;
let d = c;
とムーブしたときにdをmutにしたくなったら依存関係を遡って全部にmutつけてまわるのか?
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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