Rust part17

■ このスレッドは過去ログ倉庫に格納されています
2022/10/06(木) 22:43:13.96ID:Re0G7B20
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

Web上の実行環境
https://play.rust-lang.org

日本語の情報
https://rust-jp.rs/

※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 part16
296デフォルトの名無しさん
垢版 |
2022/11/06(日) 23:25:31.82ID:tr7TV8Z+
>>295
うむ
2022/11/07(月) 14:30:18.00ID:5gh9UgGm
むしろ政治的な要素が少しでもあると過敏反応する日本IT連中のがキモいわ
2022/11/07(月) 14:37:07.26ID:3k6QMezQ
RustってSDGsだよね
2022/11/07(月) 16:35:16.97ID:F5fz3af4
みんなMSRVいくつにしてる?
2022/11/07(月) 21:29:16.68ID:oBOm8exD
日本人はまあ事なかれ主義だから仕方がない
2022/11/09(水) 08:18:29.70ID:JQdb1AnG
過剰反応というかツイッターでも左翼のトレンド操作がバレてしまったし
そういう必死な印象操作する奴らに全く反応しないのも正常性バイアスなだけで危険だと思うけどね
2022/11/09(水) 08:49:14.30ID:jv4fVWS/
別に操作でもなんでもなく前から人が選んでるって言ってたじゃん。
だからそういうのを過剰反応って言うんだよ。
303デフォルトの名無しさん
垢版 |
2022/11/09(水) 09:39:55.00ID:LmGx5OMY
>>301
ナイーブなやっちゃなぁ
どの国でも底辺ほど極右化しちゃうのは物事が見えてないからなんやな
2022/11/09(水) 09:48:57.31ID:fSnT1d04
貧困老人って左傾化してるイメージある
2022/11/09(水) 12:28:40.18ID:aAawVede
>>302
トレンドはどのように決定されますか?
トレンドはアルゴリズムによって決定され、初期設定では、フォローしているアカウント、興味関心、位置情報をもとにカスタマイズされています。

こういうAI系にRustが使われる可能性ありそうかな?
2022/11/09(水) 12:56:20.73ID:YZQA7nNX
>>305
コア部分がC++、FortranからRustに変わるとかはありそう
307デフォルトの名無しさん
垢版 |
2022/11/09(水) 13:03:43.26ID:tbXsBHme
>>304
それもまたナイーブな見方やなぁ
反自民党なら左、親自民党なら右やと思ってるんやろ?
2022/11/09(水) 14:25:41.02ID:bNBw/HLH
>>306
rustのGPU周りのツールチェインは整備進んでるの?
2022/11/09(水) 19:49:39.97ID:8uuc6jgH
>>308
GPGPU系は普通に使えそうな感じはしてるけどdeep learning周りはNvidiaが乗り気になるまで無理かもしれないと思えてきた
2022/11/12(土) 21:53:46.90ID:PWetNf5n
eguiつよそうだけどみんな興味ないの?
2022/11/13(日) 01:00:16.84ID:1Xo91Kz4
guiはeguiとtauriの2強になりそう
2022/11/13(日) 02:09:24.41ID:Uh0BavN1
eguiはエグイ
313デフォルトの名無しさん
垢版 |
2022/11/13(日) 02:33:53.13ID:RFRBhoEy
言うほど2強か?
https://www.publickey1.jp/blog/22/electrontauriguitauri-egui_010.html
2022/11/13(日) 21:44:40.30ID:SeSkk5iM
丸の内線ってマジでいらんよな
2022/11/13(日) 22:06:12.87ID:iM/fRtPp
脱Electronした純Rust製コードエディタが出ないことには評価し辛いな。
2022/11/13(日) 22:58:55.78ID:T5PK/vl5
そんなんLapceがあるだろ
317デフォルトの名無しさん
垢版 |
2022/11/15(火) 00:12:55.17ID:dw7MQVYD
Bevyの変更量エグいな。1.0到達まで様子見するわ
https://bevyengine.org/news/bevy-0-9/
2022/11/15(火) 00:20:45.30ID:aZkMwykQ
米国家安全保障局、CやC++からメモリー安全性の高いJavaなどへの移行を推奨
https://japan.zdnet.com/article/35195997/

ハッカーらによるリモートコード実行(RCE)をはじめとするさまざまな攻撃からコードを保護するために、C#やGo、Java、Ruby、Swift、Rustといったメモリー安全性の高い言語に移行するよう推奨している。
2022/11/15(火) 00:37:48.72ID:91d2LP66
CやC++で書かれているライブラリに依存するのもやめた方が良いのかね
2022/11/15(火) 01:26:07.72ID:5Bng48RE
実績というのは何にも代えがたい証明だからね。
十分に広く長く使われて枯れたライブラリをすぐさま使用停止するほどではないと思う。
長期的には移行せざるを得ないと思うが。
2022/11/15(火) 02:05:15.69ID:9SlnRoJw
>プログラマー側での実行に大きく依存している
言語の問題ではなくて、処理系と設計の問題だろうけど
C/C++と同程度の注意力であっても、
比較的楽に安全な実装が可能という話か
2022/11/15(火) 05:58:46.96ID:XpLYghoG
RubyはRustの誤植な気がする
323デフォルトの名無しさん
垢版 |
2022/11/15(火) 06:20:05.09ID:dw7MQVYD
Javaもnull非安全クソ言語じゃんぬるぽ
2022/11/15(火) 07:20:48.25ID:GEd0aXfX
>>322
元の記事でも
The National Security Agency (NSA) is urging developers to shift to memory safe languages – such as C#, Go, Java, Ruby, Rust, and Swift
って書いてあるから誤植とかでは無いと思うがNSAのソースを示してほしいね
https://www.zdnet.com/article/programming-languages-these-top-four-rule-and-developers-are-happy-for-now/
2022/11/15(火) 08:46:43.91ID:91d2LP66
メモリ安全という意味ではRubyは条件満たしてはいるのでは
Pythonがないのは気になるが
2022/11/15(火) 08:47:01.64ID:UduTysKC
ソース
https://media.defense.gov/2022/Nov/10/2003112742/-1/-1/0/CSI_SOFTWARE_MEMORY_SAFETY.PDF
2022/11/15(火) 09:09:11.17ID:ott+UO1u
人工衛星イザナミ・イザナギでも、mruby を使っている

C はポインターでバグるから、
文字列処理などはポインターを使わない、安全なmrubyが良い

それで、mrubyから、Cのライブラリを呼び出せば安全
328デフォルトの名無しさん
垢版 |
2022/11/15(火) 11:32:13.77ID:LEUpsbho
文字列処理でポインタを使わないってどうやんの?
2022/11/15(火) 11:45:11.75ID:Ohwd0nE1
陽に使わないって事だろ
2022/11/15(火) 12:05:46.25ID:91d2LP66
言わんとすることは分かるけど人工衛星と文字列処理はあんまり関係なさそう
2022/11/15(火) 12:16:51.72ID:REyE3AUr
>>326
これからメモリーセーフな言語が沢山出てきそうだな
2022/11/15(火) 12:57:18.27ID:37NRafRf
メモリセーフかつGC無しの言語ってRust以外に増える気配ないよな
需要あるのに
2022/11/15(火) 13:11:29.50ID:bU8+MPV6
C++ は安全な言語に混ぜてもらえなかったんだな。
C++はCに寄せられてしまったのかと。
2022/11/15(火) 13:50:50.90ID:eF4hIM3d
「生ポインタを使わずスマートポインタを使う」
「オブジェクトのコピーはすべてムーブを使う」
を徹底すればそこまで危険ではないんだけどね
2022/11/15(火) 13:53:08.34ID:Ohwd0nE1
>>333
まあやろうと思えばCと同じことができちゃうからね
2022/11/15(火) 14:25:30.22ID:5Bng48RE
>>334
知っててもクソみたいな誤りをするのが人だからな。
2022/11/15(火) 15:49:10.51ID:91d2LP66
Google Chromeのバグの7割がメモリ安全関連というし、
C++で安全性を保ちつつ大規模複雑なアプリケーションを作るのは難しいのでは
2022/11/15(火) 16:00:29.49ID:AMPFJlS8
そりゃ「〇〇するよう気をつければ良い」が通るんならそもそもバグらないよう気をつけられるはずだしな
人間が気をつけるのと機械的にチェックできることの間には大きな差がある
2022/11/15(火) 21:18:52.91ID:oaKUlL5c
>「オブジェクトのコピーはすべてムーブを使う」

微妙に意味が分からん
2022/11/16(水) 03:16:38.83ID:+3Ecu7Qb
>>339
クラスにムーブコンストラクタとムーブ代入演算子を必ず実装して
それが呼び出されように書くということね
ゼロから書く場合は可能
つまりRustっぽく書く
しかし外部ライブラリを使う場合は破綻するので無理なのだが
2022/11/16(水) 07:33:54.12ID:NR4h2Di6
F#をトライしていたのですが、VSは重いし、VScodeは動かすことができず
Sublimeは何とか動くが、ライブラリをうまくアクセスできず図を出力できず
コマンドラインでの実行もバージョンが古いせいかこれもライブラリにアクセスできず
で、似ているというRUSTをテストしてみました

インストールも簡単、クレートの設定も簡単
コンソールでコンパイル、実行も簡単
webにあるサンプルをテスト、5つほどwarningがでていましたが図を出力できました
F#では実行環境を作るのに四苦八苦しましたが、RUSTはあっというま
感激してここにアップしました
今から勉強します
2022/11/16(水) 07:35:45.01ID:16ZvLDN4
「コピーは使わないでムーブする」なら意味が通じたが
343デフォルトの名無しさん
垢版 |
2022/11/16(水) 12:12:43.09ID:I1e3AS0A
>>342
そのつもりで書いてた。
推敲不足だったな。回線ケーブルで首釣るかもしれん。
2022/11/16(水) 18:02:22.96ID:+n4YDZit
一部のアスペ以外はそれぐらいの推論はできるからあまり気にしなくていいよ
2022/11/16(水) 18:02:43.41ID:QMFF+6Ax
そういうのは吊るを使う
2022/11/16(水) 18:29:22.77ID:XyYlAbZW
>>343
お前は誰だよw
俺を語ってんじゃねー
2022/11/16(水) 20:20:41.18ID:Lkj73ShV
.netでrustが使えれば無敵なのに
2022/11/16(水) 21:13:44.67ID:y4GxYc69
GCのランタイム環境でRUSTは意味ないんじゃ?
2022/11/16(水) 21:37:10.96ID:eOApcCVI
ML 系言語が Rust を高水準にした感じじゃない?
(というか ML の研究からリージョン推論が生まれて Rust に繋がっていったのだが……。)
.NET 用だと F# があるから使ってみても面白いかもね。
2022/11/16(水) 21:59:45.42ID:/cIgFYP8
.NETのライブラリが使いたいとかでは
351デフォルトの名無しさん
垢版 |
2022/11/17(木) 00:08:08.45ID:Wvvh1amI
rust難しすぎません?
僕はまだまだ、たぶん無理だけど、そこそこできるようになったとしても、全体の底上げがなければ普及が難しいのではという自己弁護
2022/11/17(木) 00:34:44.66ID:/MItGujg
既存のC/C++のコードをRustに書き直すのは
頑張らなくても良いですと言われていても
世界に一人ぐらい頑張る人がいて
再実装しましたみたいなのが時々出てくるな
2022/11/17(木) 00:48:28.80ID:SzkkMxOu
C++ 何となく使っているけど、Rust って難しいの?
C++ より難しいなら、先に勉強しようかな
354デフォルトの名無しさん
垢版 |
2022/11/17(木) 01:00:11.07ID:EPum3E1i
>>353 とりあえず動かすのはRustのが難しい
正しく動かすのはC++のが難しい
2022/11/17(木) 01:28:33.22ID:MDHZgFO+
C++ は未定義を踏むのがさすがに簡単すぎるのがいけない。
2022/11/17(木) 01:54:53.99ID:6uPAxih4
>>340
これを徹底すればC++も問題ないよ
2022/11/17(木) 03:15:48.27ID:Oh632irx
>>354
Rustは安全性と処理効率を保ったままさらに高みに登ろうとすると、C++では
可能だったことが不可能なことがある。
358デフォルトの名無しさん
垢版 |
2022/11/17(木) 05:38:42.23ID:MvDxl/Xz
>>356
徹底するのが難しい、って話だろ
2022/11/17(木) 05:39:00.42ID:7vp/wPcJ
>>356
「〇〇を徹底します」みたいな精神論が再発防止にならないのは業界の常識
2022/11/17(木) 05:39:30.88ID:7vp/wPcJ
>>357
具体的にはどういうケース?
2022/11/17(木) 07:38:31.41ID:HsWuKvxv
>>360
大規模なマルチスレッドとかじゃない?
それこそ「共有メモリは排他制御を徹底すべし」ってだけの話だけど
数百万行のコードベース全体に対して常時気をつけ続けるというのは人間には無理だろう
362デフォルトの名無しさん
垢版 |
2022/11/17(木) 07:44:38.30ID:EPum3E1i
>>361 マルチスレッドこそRustの得意分野だと思うんだけど
363デフォルトの名無しさん
垢版 |
2022/11/17(木) 07:48:15.39ID:AvIWLuzY
rustは所有権とかライフタイムとかなければ簡単で使いやすそうって印象
2022/11/17(木) 07:53:43.04ID:HKu8SavS
所有権やライフタイムがいらないならrustである必要ないのでは
2022/11/17(木) 08:37:34.35ID:HsWuKvxv
>>362
あ、逆の話か
C++だと不可能なことがRustだと可能になるって読んでた
357のは思いつかんね
366デフォルトの名無しさん
垢版 |
2022/11/17(木) 08:42:54.13ID:t8CddWfY
複雑なマルチスレッドのアプリで俺にしか直せないバグを故意に仕込むことならC++でしかできないかな
367デフォルトの名無しさん
垢版 |
2022/11/17(木) 09:56:45.90ID:AvIWLuzY
>>364
プログラマが全知全能でメモリ関係のバグを踏まないって仮定したら所有権やライフタイムがなくてもrustはc++以上の優れた型システムを持ってる
2022/11/17(木) 10:21:30.69ID:oUYdn6MU
>>367
Haskellの方が優れてるよ
2022/11/18(金) 17:50:50.73ID:nTmfkfcZ
米GitHubは11月18日までに、2022年にGitHub上で多く使用されたプログラミング言語ランキングを発表した。

その結果、1位は「JavaScript」だった。以降、2位「Python」、3位「Java」、4位「Typescript」、5位「C#」、
6位「C++」、7位「PHP」、8位「Shell」、9位「C」、10位「Ruby」と続いた。

Rubyに負けたらいけないだろw
2022/11/18(金) 17:57:22.15ID:G2UZSnwT
企業の人ってGitHub使えるのかな?
企業が使い始めたら増えると思うけど。
2022/11/18(金) 18:25:40.22ID:nTmfkfcZ
真の意味でホビーユーザーに支持されなきゃだめだよ
2022/11/18(金) 18:31:52.75ID:UFs4jVzI
ゆきひろにより開発されたオブジェクト指向スクリプト言語か
373デフォルトの名無しさん
垢版 |
2022/11/18(金) 18:55:51.18ID:fYiWUan7
このグラフ、Typescriptの躍進とRubyの凋落が対照的で興味深かった。
374デフォルトの名無しさん
垢版 |
2022/11/18(金) 19:00:57.54ID:WkS6x7hj
これか
https://i.imgur.com/QE0WMb7.jpg
2022/11/18(金) 21:08:51.27ID:8iIh2nXZ
C/C++の減少分がRustじゃね
2022/11/18(金) 21:48:16.28ID:G2UZSnwT
その説が正しい使い方気がした
2022/11/19(土) 00:42:59.64ID:h9f1WTcb
>>360
効率よくリンクリストやグラフ構造を使うこと。
この(前?)スレで散々議論されていた。
2022/11/19(土) 00:49:11.67ID:UL/detO7
いい加減スレ違いはやめろって
2022/11/19(土) 04:53:18.01ID:c1VeRjNF
>>377
全然具体的でなくて草
そりゃ散々議論(のつもりw)になるわ
コードで示すとか出来ないの?
2022/11/19(土) 09:49:20.36ID:RDqVxLmi
tscがRustだと書き直すのが難しいとか聞いたが
2022/11/19(土) 10:48:30.65ID:AeJpea+k
>>380
tscをRustに一部移植
元のコードがGC前提だから全体の移植は大変なのでGoに変更
GoはGoで無駄な作業が多くて大変。やっぱりRustのほうが良かったのでRustに戻す

というのが今の状況
来年あたりまたGoに戻ってる可能性はあるが
2022/11/19(土) 14:18:44.14ID:UL/detO7
>>381
移植とか考えずに仕様だけ洗い出してからRustで実装するのがベストでしょうね
仕様解析チーム(tscを読み込んでドキュメント化する)
とRust実装チーム(Rustのエキスパートたち)
この2チームがいれば十分だし
2022/11/19(土) 20:51:33.06ID:W8eLHJQE
Rustで実装が難しいようなアルゴリズムは不安全で時代遅れだ説
2022/11/19(土) 20:55:58.15ID:LAn7MDSu
解析してる間にどんどんtscの仕様は変わっていくよ
2022/11/19(土) 21:07:54.54ID:2PIO0unP
Rustってお互いに参照し合うようなグラフ構造を表現しにくいイメージある
2022/11/19(土) 22:17:39.01ID:ibRUDL6T
し難いのか不可能なのかどっちよ
2022/11/19(土) 22:23:36.77ID:yb7KRrg5
rustcでグラフ構造扱ってるよ
ポインタではなくインデックスでアクセする実装
388デフォルトの名無しさん
垢版 |
2022/11/19(土) 22:41:12.16ID:yWSzX/NN
>>387
なるほどなあ
2022/11/19(土) 23:28:51.73ID:PCVv4O5z
>>387
前スレ読んでもわかるが、それでやれば出来るのは分かってるんだけど、
効率が落ちるから「ゼロコスト安全性」ではない。
2022/11/19(土) 23:29:54.28ID:PCVv4O5z
>>383
リンク構造を持つデータ構造は今も発展途上中で今後も開発されていくが、
Rustでは取り扱いにくく、むしろRustこそ時代遅れ。
2022/11/19(土) 23:31:24.06ID:PCVv4O5z
ポインタが理解できない人は、ポインタが中心に居るところのリンク構造を全て
無視するから、Rustの欠点が理解できないだけ。
2022/11/19(土) 23:32:17.52ID:Bzioz9F5
>>386
しにくいだけ
>>1のHow to not learn RustとかオライリーのProgramming Rustでも指摘されてたはず
2022/11/19(土) 23:44:21.19ID:PCVv4O5z
>>386
不可能ではないが、C言語のように参照やポインタでダイレクトに取り扱うのが
不可能なので、インデックスを介してアクセスした、非常に複雑な仕組みで
アクセスしたりする必要があり、効率が落ちる。
マシン語レベルで見ると、アクセスすすために必要なコードが増えるから。
2022/11/19(土) 23:44:57.71ID:PCVv4O5z
誤:インデックスを介してアクセスした、非常に複雑な仕組みで
正:インデックスを介してアクセスしたり、あるいは、非常に複雑な仕組みで
2022/11/20(日) 00:54:20.94ID:uh6X/Buy
窮屈だからとか言って車に乗るときにシートベルトを付けないタイプの人かな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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