Rust part26

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2024/09/20(金) 22:18:38.38ID:c48cFuZJ
公式
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 part25
https://mevius.5ch.net/test/read.cgi/tech/1722354386/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
2024/10/12(土) 10:14:12.54ID:o9Hly54Z
>>224
公式も認めている激烈絶壁の学習障壁を、あえて言わずにその主張をするのは詐欺ですな。

初心者向けのまともな学習書は出たのかしらん?
2024/10/12(土) 11:04:13.10ID:DTlX8R5X
学習時間が固定相場ならまともにはならない
昔の人がいうように修行は10年かかるとかいうレベルで時間が変動することを認めないと
2024/10/12(土) 11:56:03.05ID:pKFLyiMR
Rust 2024 editionっていつ出るの?
2024/10/12(土) 12:06:55.87ID:PWeoTkee
C++ のあかんところはわかってても間違う (間違いをコンパイラやランタイムサポートが検出しない) ところ。
わかってないときに自分がわかってないということに気づけないところ。

このつらさと難易度を天秤にかけたら Rust のほうがマシ。
2024/10/12(土) 12:33:44.48ID:qdhjRNO+
>>225
ごめんなにいってるかわかんない
Rustの闇の話?
231デフォルトの名無しさん
垢版 |
2024/10/12(土) 13:30:21.66ID:2nOFyk8I
中学生が好みそうなワード
2024/10/12(土) 14:53:53.79ID:DTlX8R5X
C++は完成品だという前提を強制してから自由に選ばせるのが闇だ
もしかして未完成なんじゃないかという解釈は必要
その解釈は誹謗中傷だという解釈もあるだろうが
未完成だったことにして完成品を作ってみたのがRustだとしたらやはり必要なことだった
2024/10/12(土) 14:55:04.31ID:BAZEi6Kk
c++もrustもどっちも使えたらええだけやろ
所詮言語ごときで何を騒いどんねん
2024/10/12(土) 15:40:11.45ID:3DzBYfs0
rust

消えてく言語なの?
2024/10/12(土) 16:05:55.21ID:91OPX9l9
Rustは一番嫌われている言語。
2024/10/12(土) 16:12:40.29ID:0WcQlR1j
普通10言語以上覚えて使い分けるだろ。
237デフォルトの名無しさん
垢版 |
2024/10/12(土) 16:55:23.16ID:2nOFyk8I
使い分けてるのは言語じゃなくてIDなんだよなあ
2024/10/12(土) 19:05:36.19ID:C7MzjPxF
Rustの安心安全でいいんだけど
一つだけ欠点があって、それは誰も使ってないってことなんだよな
2024/10/12(土) 19:31:25.97ID:PWeoTkee
んなこたない。
crates.io に登録されてたり github に上がってる大量のコードを誰が書いてるんだって話になるじゃないの。
他の言語との差はあるにしても誰も使ってないというほど少ないということもない。
2024/10/12(土) 20:05:40.69ID:Vo4EHhVz
Rust Surveyの回答者が1万人だからある程度熱心な人はそれくらいいて、全体で5-10万人ってとこかな
2024/10/12(土) 20:37:41.94ID:hSwwQxA2
ネットインフラが次々とRust製へ変わっていってるように
絶大な効果を発揮している
242デフォルトの名無しさん
垢版 |
2024/10/12(土) 22:46:05.65ID:2nOFyk8I
> ネットインフラが次々とRust製へ変わっていってる
具体的にどういうのがあるの?
無知なだけかもしれないけど自分はあまり実例を知らない (自分が知ってるのはFirefoxとDiscordくらい)
2024/10/12(土) 22:58:36.02ID:hSwwQxA2
ネットインフラが次々とRust製へ変わっていってるニュース記事ソース

例1
>【クラウド世界トップシェアAWS】
https://japan.zdnet.com/article/35183866/
>Rustで構築されたAWSサービスの例としては、
>コンテナーアプリ用のサーバーレスプラットフォーム「Lamba」を支える「Firecracker」、
>「Amazоn Simple Storage Service(S3)」、
>「Аmazоn Elastic Compute Cloud(EC2)」、
>コンテンツ配信ネットワーク「Аmazоn CloudFront」、
>LinuxベースのコンテナーOS「Bottlerocket」などがある。

例2
>【CDN世界トップシェアClоudflare】
https://www.publickey1.jp/blog/22/cloudflarenginxrusthttppingoracdncpu31.html
>CDNプロバイダのCloudflareは、同社のグローバルなCDNの基盤として長らく利用してきたNGINXに代えて、
>同社自身がRust製のHTTPプロキシである「Pingora」を開発し利 用していることを明らかにしました。
2024/10/12(土) 23:11:32.64ID:O1A52KxC
使えないって言ってるやつは頭が悪いだけ
2024/10/13(日) 00:02:47.57ID:bsYTaHhv
Linuxの時と同じような感じだな。熱狂的信者とアンチとの戦い方が。
結局、Linuxの場合、普及したのはサーバーサイドだけで、Desktopは5%程度にとどまることになった。
Rustの場合は、安全性重視の分野では天下をとるかもしれないが、安全性がそれほど重要でない分野はC++のままなのではないか。
2024/10/13(日) 00:05:30.88ID:bsYTaHhv
>>245
熱狂的信者は視野が狭く、アンチとは見ている世界が違う。
Linuxの場合も、信者は「Linuxは十分に普及した」と真顔でいまだに主張している。
しかし、アンチはDesktopを想定しているから話が合わない。
それと似たことがRust vs C++でも起きてくるのではないか。
2024/10/13(日) 00:07:58.43ID:bsYTaHhv
>>246
Linuxの場合も、20年経過した後、信者は「ほら普及したよね?」
アンチは「やはり普及しなかったな」という様相を呈している。
つまり、想定している「普及」や「勝利」の概念すら違っているのだ。
Rust vs C++でもそうなのではないか。
2024/10/13(日) 00:08:15.95ID:uHcnNqHT
>>245
セキュリティホールなど脆弱性があってもそれほど重要でない分野ってある?
2024/10/13(日) 00:20:19.98ID:bsYTaHhv
>>248
WordやExcel、画像エディタ、3Dモデラ、CADなどの一般アプリや、ゲームが
それに当たる。
2024/10/13(日) 00:20:21.18ID:bsYTaHhv
>>248
WordやExcel、画像エディタ、3Dモデラ、CADなどの一般アプリや、ゲームが
それに当たる。
2024/10/13(日) 00:23:13.27ID:URUAnEKd
草w
2024/10/13(日) 00:34:31.04ID:Lrm9f5J1
メモリ安全性や脆弱性に対する知識が皆無なんだろ
2024/10/13(日) 00:47:36.22ID:uHcnNqHT
>>249
それらは脆弱性があっては困る分野だ
2024/10/13(日) 00:51:33.48ID:9IW5Js7R
word文書保存すると無くなるってニュースが出ていたな
VSSもソースロストするって有名だったし

ま現物が無くなればアリストテレスでも論破不能だよね
2024/10/13(日) 09:21:11.59ID:2a75wgGc
普及とか繁殖の定義が違うと言われても困るな
理解できないのは定義の違いではなく
一体なぜ繁殖を定義しようと思ったのかを理解できない
2024/10/13(日) 12:12:14.31ID:UZT3uuKD
>>239
crates.io や github に上がってる Rust のプロジェクトって
もうだれもメンテしてませんってのも多いよね
C/C++ でもそういうのあるけど
257デフォルトの名無しさん
垢版 |
2024/10/13(日) 12:14:41.71ID:UZT3uuKD
>>246
>信者は「Linuxは十分に普及した」

スマホに限ってはそうだね
もちろん観てる世界が違う結果そう観えてる訳だね
2024/10/13(日) 12:17:07.38ID:UZT3uuKD
>>255
自分の世界で普及していないものは普及していないって言い張るタイプの人は一定数居る
2024/10/13(日) 15:16:40.73ID:9IW5Js7R
OpenCASCADE をRustに移植してくれる勇者は居らぬか?
2024/10/13(日) 16:07:57.49ID:OnT8jRlg
>>259
こういう感じ?
https://github.com/ricosjp/truck
2024/10/13(日) 16:54:43.62ID:2a75wgGc
視点を変えるだけで生存者が死者に変わるというのは極端過ぎる
生命にたいする侮辱を感じる
2024/10/13(日) 18:09:40.09ID:RQflUxIg
>>258
Unixの世界はもともと異なるメーカーのUnix規格に沿ったOSがあったわけだから、
無料のLinuxが普及するのは当たり前であって、ことさら強調されても意味が分からん
わけだよ。今で言うPC/AT規格やかつてのMSX規格の互換製品を作っても売れるのは
当たり前であって。
263デフォルトの名無しさん
垢版 |
2024/10/13(日) 18:11:20.56ID:RQflUxIg
>>262
MSXやPC/ATは互換性の有るものを非常に沢山のメーカーが当たり前の様に作っていた。
Unixもそれと同じ。誰でも作れるOSを無料化しただけみたいな。
264デフォルトの名無しさん
垢版 |
2024/10/13(日) 21:33:21.80ID:cfTcGRh7
Rustの話してよ
2024/10/13(日) 21:40:56.59ID:svBHWCr7
>>243
知らぬ間に我々が間接的に使ってるインフラが続々とRust製になってるんだな
身動きが取れない古くからの大きな遺物を除くと近い将来Rust製一色になりそうだ
2024/10/13(日) 22:30:12.40ID:wYeF4p9P
>>262
一々突っ込まないけどいっちょかみには
UNIXの歴史はそんなふうに見えてるんだなあ
2024/10/13(日) 23:37:02.43ID:2a75wgGc
補給と撤退はできて当たり前という伝統的価値観はunixの伝統とは全然関係ない
2024/10/14(月) 10:09:10.28ID:NZxYCisA
属人性排除は難易度が無限小という意味ではない
難易度がfnでもmutでもないだけ
それと、正解が複数あるのではなく誤解がいっぱいあるだけ
269デフォルトの名無しさん
垢版 |
2024/10/14(月) 10:31:37.38ID:9n6nFJIZ
いや正解は複数ある
誤解もいっぱいあるけど
270デフォルトの名無しさん
垢版 |
2024/10/14(月) 12:41:22.19ID:frzdEHtE
Haskellと同じ道をたどってる
271デフォルトの名無しさん
垢版 |
2024/10/14(月) 12:55:36.56ID:PAao37O/
Haskellよりは盛り上がってるでしょ
ライブラリとか割とあるし
2024/10/14(月) 13:34:21.16ID:Tepyp1Xi
エリート主義的で一般ウケしなかった関数型言語というレッテルを貼って一方的にぶん殴ってもいい存在がほしいなら、Scalaのほうが適任なんじゃね
知らんけど
2024/10/14(月) 13:37:01.70ID:9n6nFJIZ
Eiffelの再燃とか無いのかな
2024/10/14(月) 13:56:15.30ID:b6A9/4cN
>>270
大手IT企業のほとんどがRustを用いている
そして>>243の例のようにITインフラがRust製へと置き換わっていってる
2024/10/14(月) 14:13:01.64ID:UHTCVsGQ
このスレはバカ話が永遠に続くな
2024/10/14(月) 14:31:11.38ID:Tepyp1Xi
中途半端にまともな話ができそうな雰囲気を出されるより
最初からバカ話に全振りしてくれてる今の状況がありがたい
2024/10/14(月) 14:47:08.94ID:6F/WzjOb
だれも Rust の話してないよねこのスレ
2024/10/14(月) 17:04:57.32ID:AQF6byo6
なにが一番みたいな論争するやつは軒並みアホだよね
いつまで厨房やってんだか
2024/10/14(月) 17:39:30.59ID:jiIXwm87
定期的にどこそこが採用しただの、アメリカ政府が推薦したという話が出てくる
が、具体的にコードを示して優位性を説いたりはしない
2024/10/14(月) 19:35:56.02ID:Tepyp1Xi
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=0bb08fd2d76e4ceb6cfa93c9b7fcf946
2024/10/15(火) 15:25:40.98ID:xmb61fZ8
play.rust-lang.org 死んでるのか
2024/10/15(火) 16:19:54.80ID:ljjOrbgX
>>279
ある時からコンピュータソフトの分野に権威性を持ち込む人が増えた。
283デフォルトの名無しさん
垢版 |
2024/10/15(火) 20:41:46.23ID:7T7mXQAC
>>270
HaskellがRustみたいにinterface(雑誌)で連載持ってたら普及してたかもしれないね…。
いあ、GC有る時点で組み込み専門誌に連載なんて持てないんだが。
284デフォルトの名無しさん
垢版 |
2024/10/15(火) 21:39:59.36ID:kUMekxil
関数型由来の考えもあるけど関数型言語ではない、というのがバランス的に良かった気がする
関数型に振ってたらRustもScalaやF#くらいのポジションに収まってたかも?
2024/10/16(水) 01:15:48.39ID:OzuoU4nz
firefoxってホントにRust使ってるの?ってくらいメモリ管理ダサい
286デフォルトの名無しさん
垢版 |
2024/10/16(水) 06:29:19.89ID:J5oRWUb2
火狐と言えば、これってRustで開発してることに関係あるのかな?

ゼロデイ脆弱性の報告から解決までたった25時間 ~Mozillaが対応の早さをアピール
「Firefox」、「Thunderbird」、「Tor Browser」を最新にしよう
https://forest.watch.impress.co.jp/docs/news/1631133.html
287デフォルトの名無しさん
垢版 |
2024/10/16(水) 06:33:37.57ID:J5oRWUb2
>>284
関数型言語の普及を願ってる人からすればショックだろうけど、Haskell好きな自分も現実解はその方が良いとは思う。
そういう意味じゃScalaも良いところまで行ってたんだけど、理由忘れたけど自滅したってのは覚えてる。
2024/10/16(水) 07:16:03.45ID:Rxxbhur+
ScalaはScalazとかで関数型を推しすぎたのと、標準ライブラリに破壊的変更バリバリ入れて過去のコードが動かなくなったせいだと思う
2024/10/16(水) 08:13:07.22ID:TssvwW2w
>>284
言われてみればjsもそれに近いな
2024/10/16(水) 09:44:47.18ID:IRnMzRmI
Rustで開発してたらゼロデイ脆弱性なんて起こりません(キリっ
2024/10/16(水) 09:46:37.48ID:IRnMzRmI
Scalaの失敗はJavaをベースにしたこと
2024/10/16(水) 11:03:29.32ID:TpBdArw+
https://xtech.nikkei.com/atcl/nxt/column/18/00692/042700054/
2024/10/16(水) 11:05:35.24ID:TpBdArw+
>>292
>> GoogleおよびMicrosoftはセキュリティー脆弱性の70%がメモリー安全に関するバグに起因すると述べている。
>> C/C++を使う限りこれらを根絶するのは不可能と考えて、Rustを採用するに至ったというわけだ。
2024/10/16(水) 11:06:00.19ID:RoKRQLvT
中国製やロシア製のクレート使ってるとまずいの?
2024/10/16(水) 11:24:30.99ID:iczv67yq
Rustの一番の特徴はスタックフレームを意識して言語仕様の下敷きにしていることかと。ライフタイムとかスコープとか。結果として再帰構造を取り込んでいるから言語として強い。

関数型プログラミングを前面に出すとHaskellみたいになりそうだから止めてほしいところ。
296デフォルトの名無しさん
垢版 |
2024/10/16(水) 11:35:27.63ID:k6iNMcvo
副作用がないとかは嬉しいけど、関数型信者はデータ構造をなんでもリンクドリストにしようとするキチガイだから関わりたくない
2024/10/16(水) 11:40:53.10ID:9ExG49iw
>>296
んなことはない。
LISP 系ですらプロトタイプが終われば積極的に固有の型を定義しまくる。
そうなってないのはただカスなやつが書いてるだけ。
2024/10/16(水) 12:33:07.98ID:ru3N7GME
>Rustの一番の特徴はスタックフレームを意識して言語仕様の下敷きにしていることかと。
こういう発言を見ると無駄にRust推してるやつのレベルの低さに呆れる
299デフォルトの名無しさん
垢版 |
2024/10/16(水) 12:34:03.40ID:kfN83BOA
>>297
Lispは関数型もどきってHaskellが言ってた
2024/10/16(水) 12:49:23.38ID:IRnMzRmI
過去スレのこの辺からの流れ思い出してしまった
https://mevius.5ch.net/test/read.cgi/tech/1692105879/423-
2024/10/16(水) 16:38:38.84ID:1LoW/zWh
スクリプト言語上がりからするとスタックフレームを意識するのは斬新なんだろ
2024/10/16(水) 17:01:37.45ID:+2+Nhw/8
lispはlispを操作してlispを吐き出すための言語であって
それ以外の機能はオマケだから
2024/10/16(水) 17:34:30.78ID:9ExG49iw
>>299
関数型がどうとかは重要ではなくて「リストを多用しがちと思われているLisp」という意味
2024/10/16(水) 17:48:29.96ID:1LoW/zWh
普通に多用するだろ
lisp使っててそこを認めないやついるのに驚き
2024/10/16(水) 17:54:09.44ID:jR87Fk4R
C言語もリンクリストの権現みたいな存在だったんだよ。
2024/10/16(水) 17:56:35.94ID:jR87Fk4R
リンクトリストで、一番初期に有名になったのが、LISP。
それを分かりやすくしたのがC言語、みたいな感じ。
リンクトリストは、8MHz程度の16BIT-CPUにおいて、
動的配列に比べてとても効率が良かったので、人気が出た。
2024/10/16(水) 18:07:55.38ID:1LoW/zWh
lispのリストとcでリンクリストが作れることは次元が違う話
lisp知らんやつに言っても理解できんだろが
だいたいリンクリストの権現って何だ?w
2024/10/16(水) 18:11:33.23ID:jDyVYSBS
ごん‐げん【権現】 の解説
1 仏・菩薩 (ぼさつ) が人々を救うため、仮の姿をとって現れること。
2 仏・菩薩の垂迹 (すいじゃく) として化身して現れた日本の神。本地垂迹説による。熊野権現・金毘羅 (こんぴら) 権現などの類。
3 仏・菩薩にならって称した神号。東照大権現(徳川家康)の類。

ありがたや🙏🙏🙏
2024/10/16(水) 18:13:29.12ID:qBTeykyO
Cって、プログラムがリストになってるん?
lisp系以外で、こういうのってない気がするんだけど。
2024/10/16(水) 18:39:06.97ID:jR87Fk4R
>>309
Cの場合は、データ構造のみの話。

>>307
LISPは、プログラムもリンクトリストみたいだった
から、Cよりも権現といえるだろうけども、
Cもリンクトリストと密接な言語だと言われていて、
Cの速さはリンクトリストのおかげだった。
2024/10/16(水) 20:06:13.28ID:IdjFDmt0
>>285
Firefoxの一部はレンダリング部分などRustになっているけど
そのメモリ管理部分を含めて本体はC++のままだよ
いずれにしても各アプリケーションによるメモリ管理部分は使用言語C++/Rustのメモリ管理とは別レイヤなので各言語の問題ではないね
2024/10/16(水) 20:08:26.05ID:IdjFDmt0
>>295
ライフタイム導入でスタックフレーム上への参照と変数が管理するヒープへの参照を区別せず安全に扱えるようになっただけで意識するしないは別問題じゃないかな
そのためコストの高いヒープを回避できる機会が増えて高速化に寄与しているのは間違いないけど
2024/10/16(水) 20:11:56.13ID:IdjFDmt0
>>306
今はパイプラインとキャッシュによりほとんどの利用ケースでリンクリストよりベクタが速くなってしまったね
元々メモリ使用量や多段間接参照になる点でリンクリストが不利だった点に加えて追い打ちをかけるように
2024/10/16(水) 20:13:18.48ID:IdjFDmt0
>>310
Lispは言語としてcond, car, cdrがあるからリンクリスト言語だけどC言語は明確に違うね
Cはリンクリストもベクタもその他のデータ構造も実装できるというだけの平等な立ち位置かな
2024/10/16(水) 20:21:57.12ID:jR87Fk4R
>>313
>今はパイプラインとキャッシュによりほとんどの利用ケースでリンクリストよりベクタが速くなってしまったね
典型的な間違い。
2024/10/16(水) 20:27:30.93ID:RoKRQLvT
リンクリストは不変コレクションだから、副作用にこだわる関数型言語では特別な地位がある

ちなみにScalaではVectorという名前のもう一つの不変コレクションが多用されているんだが
これのRust版あるのかな? 中身は1ノード32要素のトライ木
2024/10/16(水) 20:48:00.68ID:jDyVYSBS
ゆーてClojureとかHylangとか今ドキLisp女子はlist processingナニソレって感じのやつばっかやん
318デフォルトの名無しさん
垢版 |
2024/10/16(水) 21:41:36.61ID:NMNSAXL7
やっぱりこのスレ関数型言語わかる人多いの?
C/C++系から入った自分としてはサッパリわからん
2024/10/16(水) 22:33:14.93ID:9ExG49iw
>>318
パラダイムは実際にはグラデーション的で、要素が混ざり合ってる。
明瞭に線を引いて分類できるわけではない。
ML 系とか LISP 系とかは関数型みたいに言われることは多いんだが実際には関数型要素が強めのマルチパラダイムって感じで、 C++ を使いこなせる人なら入門書をちゃんと読めば使えるくらいの難易度。

誰もが文句なく関数型に分類するメジャーな汎用プログラミング言語は Haskell くらいだと思う。

パラダイムは脇に置くとして、 ML 系はインデントで構造を表す文法だったり LISP 系は丸括弧ばかりで構造を表すという外観の違いの段階で忌避感を持っちゃう人は結構いるかも?
320デフォルトの名無しさん
垢版 |
2024/10/16(水) 23:59:33.67ID:NMNSAXL7
Rustで使うもの (式指向という考え方, match式, 代数的データ型, リストやOptionへのmap, filterなどの操作等) は理解できてるし、良いなと思って使えてる
それでも Lisp や Haskell は難しいという印象があるんだよね
指摘の通り見た目の見慣れなさで抵抗感があるだけなのかもしれない
2024/10/17(木) 00:17:27.82ID:CZAZeUbm
> ML 系はインデントで構造を表す文法

Haskell や F# が人気なのは分かるけど、OCaml や Standard ML を差し置いて勝手に ML 系の代表ヅラしないでくれますかね……
2024/10/17(木) 00:25:33.00ID:NeG4778y
元々は研究用の言語でコンパイラ開発とか特定の用途以外だと実用性低いし
ほとんど趣味の領域だから無理に手を出さなくていいよ
Haskellの知識があるとRustのtraitとか?演算子(Result戻し)に馴染みやすくなるけど
そのためにHaskellを勉強するほどではない
2024/10/17(木) 00:26:57.93ID:SxNRrx7E
>>321
Hakell は ML 系ではない扱いだろ。
2024/10/17(木) 00:55:24.22ID:yABRuexK
>>319
関数型の定義は何?
325デフォルトの名無しさん
垢版 |
2024/10/17(木) 01:12:31.87ID:WrCN832N
>>296
Haskellは好きだけど、他の言語でそんな事しねーわw
郷に入っては郷に従えが基本。

パフォーマンスと人間関係を犠牲にしてまでする事じゃない。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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