Rust part20

■ このスレッドは過去ログ倉庫に格納されています
2023/03/03(金) 00:45:28.73ID:vTVY069B
公式
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 part19
https://mevius.5ch.net/test/read.cgi/tech/1673926892/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
431デフォルトの名無しさん
垢版 |
2023/05/29(月) 18:20:04.93ID:Qw0OFueK
>>430
能力のある人間が英語が読めないやつのためだけにわざわざ時間を割いてタダ働きで非公式な翻訳に参加する理由がない

英語が苦手な人による英語が苦手な人のためのもの
過度な期待は良くない
2023/05/29(月) 20:58:34.38ID:14JJPgZq
誤訳でも元の英語が大体思い浮かぶから問題なし
433デフォルトの名無しさん
垢版 |
2023/05/29(月) 21:18:54.45ID:ZWlF7ESV
そうして生まれたのが複製おじさんや仮の所有権おじさん
434デフォルトの名無しさん
垢版 |
2023/05/29(月) 21:36:32.72ID:fyU8ZoqD
>>432
元の英語が大体思い浮かぶようなやつが
誤訳だらけの日本語訳なんて読むわけないやん
435デフォルトの名無しさん
垢版 |
2023/05/29(月) 22:51:14.31ID:/vmU8chJ
アハハ バカね!嘘つくならもっとマシな嘘ついてよね・・・
2023/05/30(火) 00:04:02.24ID:/771ql8l
明瞭に「誤訳」だとわかるくらいの能力があるなら issue 立てるくらいしてくれよ。
2023/05/30(火) 11:47:11.26ID:0Tfb139m
このスレも日本語を禁止して英語だけにした方が話が早くね?
2023/05/30(火) 13:54:02.69ID:m0YhPkee
Good Idea desune〜
2023/05/30(火) 21:02:05.18ID:H+AZ7xQ9
可変変数という摩訶不思議な用語・・・・・
440デフォルトの名無しさん
垢版 |
2023/05/30(火) 21:41:45.99ID:6nHNYy1Z
おっさんになって覚えがわるいのか言語のせいなのかわからんがRust難しいなおい…
2023/05/30(火) 21:44:11.50ID:wiPQkzC+
>>436
issue も pr も放置されてる現実を見ような
442デフォルトの名無しさん
垢版 |
2023/05/31(水) 12:34:12.39ID:mN2Hu6K3
ハードウェア依存のライブラリってのはパッケージ管理ソフトが扱いづらいんだよ。
cargoがそういうの取り込むとは思えん。
2023/05/31(水) 21:01:36.14ID:YdF423Zw
>>440
どうだろ。 それは知識背景によると思う。
最初に学ぶ言語なら Rust はしんどいと思う。
ウェブ系でアプリケーションレイヤしか触ってないみたいな経歴でも Rust は異質かも?

C++ を充分に習得してるくらいなら Rust はそんなにハードルは高くないと思う。
まあ隅々まで理解しようと思うとなんだって大変だが及第点レベルまではドキュメントを読めば普通にわかる。
Rust の型システムは ML 系言語で実績があるものだからその感覚で使えるし、
唯一の面倒なところはライフタイムの管理くらいじゃないかなぁ。

そのライフタイムにしたところで参照より先にオブジェクトの寿命が終わったらダメという当たり前の根本ルールを
成立させられるように考えたら詳細を知らんでも自然に出来そう。
2023/05/31(水) 23:09:20.99ID:wcJUGwzN
>>442
xargoはもうチェックした?
見当違いだったらすまね
2023/06/02(金) 15:23:50.48ID:xBaj60Ia
>>443
用途次第でもあるんじゃね
自分なんて豪華なC程度にしか使ってなくてトレイトとか理解できていない
2023/06/02(金) 16:09:01.15ID:IDHD031H
>>445
C++ のコンセプトなんかだと無ければ無くてもなんとかなるが
Rust のトレイトは理解できてないとコンパイルが通るものを書くことすら難しくない?
2023/06/03(土) 20:44:16.65ID:oycqQ//J
>>446
簡単なプログラムだと自分で書く範囲でトレイトで抽象化するのを避けると意外と避けたまま済んじゃうんだよね。
2023/06/03(土) 23:52:21.19ID:JeZxIQ3D
新しい型を作らない程度の使い方だとトレイトの理解が不十分でも意外と何とかなっちゃうかも?
2023/06/04(日) 08:41:55.61ID:rt4nzg3U
みんなRust使って何開発してるの?
一通り勉強したけど用途が今の俺にはあまり縁が無い事に気付いた

普通のアプリならGC走って少しレスポンス遅い時があっても問題無い
Webフレームワークで早いっていっても色んな機能が無いだけ
あれもこれもそれもとフルスタックなら既存言語ので良い

結局仕事として使ったのってセンサー系だけ
確かにIoTセンサーには向いてると思った
450デフォルトの名無しさん
垢版 |
2023/06/04(日) 09:02:25.58ID:QzSyb99b
毎年の調査結果にも出てるように
Rustを使っているのが多いのはWeb
低レベルhyperの上のフレームワーク本命axumが熱い
2023/06/04(日) 09:11:57.71ID:rt4nzg3U
やっぱりWebなん?

でもWebシステムだとアレコレソレって色々必要じゃん
足りてる?
言語云々じゃ無くてミドルウェア
2023/06/04(日) 09:19:10.72ID:MHoxWKtY
今どきのウェブはクラウドに載ってることが多い。
CPU やメモリを使った分だけコストがかかるのでレスポンスタイムが問題なくても
リソース消費量を削減すれば大幅なコスト削減が見込める。

ライブラリはなんだかんだでそこそこ充実してるし、
むしろ何か足りないものってある?
具体的にこれが足りないって言える?
2023/06/04(日) 09:34:57.16ID:rt4nzg3U
そこまでガッツリとRustでWeb開発して無いから聞いてる感じかな

例えばASP.NET系でAzureAD認証だと設定しとけば勝手に認証機能付く
それこそアクセストークンがどうだのリフレッシュトークンがどうだの開発者は気にしない
勝手に内部でアクセストークンが期限切れならリフレッシュトークンで再取得して処理する
リフレッシュトークンが期限切れでも勝手に認証ページ飛んで認証したら続きから処理する

そういうミドルウェアあるんかな?
アレもコレも実装しなきゃってのは充実してない
C#ならNugetでライブラリ読み込んで設定用の数行記述したらそれで終わり
コレが充実
454デフォルトの名無しさん
垢版 |
2023/06/04(日) 09:59:54.28ID:6x+rjW9P
そういうのはない
でも俺もwebで使ってる
2023/06/04(日) 10:02:25.33ID:QzSyb99b
ASP.NETに全く興味ないので知らないが
そこまでやりたいことがはっきりしてるなら自分で調べればいいだけではないのか?
何をしようとしたが何ができなくて困っているのかをはっきりさせよ
2023/06/04(日) 10:08:15.10ID:rt4nzg3U
>>455
いやRustはWebには向いてないって思ってたから調べてさえいないよ
そして試してもいないから困ってもいない

最初に質問したように俺の感覚ではIoTとかみたいな変なタイミングでGCしちゃってみたいなのは困る場面ぐらいしか用途は無いと思ってた
だから何に使ってるのかを聞いた
コレが俺の知りたい事で既に書いてる

そこでWebで使ってると返ってきたから突っ込んで聞いてみただけよ
でもってやっぱり無理矢理使ってるだけって印象を更に深めた結果になってる
2023/06/04(日) 10:08:26.66ID:M4a45GKO
そりゃAzureADとかやりたいならC#で良くてわざわざRust使うこともないよ
でもWebのすべてがそういった要件を必要とするわけでもないし、Rustが向いてるとこに使えばいいってだけ
自分の分野で向いてるとこがないって判断ならそれでいいと思うけど
2023/06/04(日) 10:10:46.55ID:rt4nzg3U
>>457
それはその通り
規模とか使う場所によるわな

それこそルーターに組み込む管理画面のWebページ程度ならRustのWebで良いわな
今でもPHPとかで動いてるわけだし
459デフォルトの名無しさん
垢版 |
2023/06/04(日) 10:12:15.45ID:E551jt0y
俺は実用のコードを専らC#で書いていて、コンピューターサイエンスやRustの言語は単なる修行だと思って学習してるんだけどさ
10年ぐらい前に廃れたような構造でWebアプリを作ろうとする人を見ると、「年をとっても学習を止めちゃだめだ」と改めて感じたね
2023/06/04(日) 10:13:17.36ID:rt4nzg3U
ちなみに認証だけならRustでもあるぞ
本当に認証するだけで期限切れがどうとかリフレッシュトークンがどうとかは自分で書く感じ

最低限のライブラリは一応あるけどミドルウェアにはなってないって感じ
2023/06/04(日) 10:15:03.74ID:QzSyb99b
>>456
むしろWeb向き
クラウド含めたサーバは今はWebベースであり
CPUコストメモリコストが言語により数倍変わってくる
2023/06/04(日) 10:17:45.38ID:M4a45GKO
あとはWASMも結構多いかもね
Amazon Prime Videoとかディズニーの動画配信はRustで書いてたはず
2023/06/04(日) 10:18:49.32ID:rt4nzg3U
>>459
そこは難しいんじゃね

開発者の問題ってより経営者の問題
新しい技術は良いけど補償出来るの?って感じやん
他社での実績は?ノウハウは?トラブった時に解決出来る?って感じ

企業がシステムに望むのは安定稼働
なので数年前から10年前の技術が現在の主流になる
実績があってノウハウがあって技術持った人が外部にも多いから求人も楽でコンサルしてくれる所も有る

こういう要素無いと稟議通らないでしょ
2023/06/04(日) 10:20:54.57ID:rt4nzg3U
>>461
そこは思うわ
要はコスパが良いんやな
金が有れば確かにクラウド出水平分散出来るがって事やな
2023/06/04(日) 10:28:10.92ID:xOmzDhxR
複おじ共々隔離スレにお帰りくださいませ
2023/06/04(日) 10:29:49.43ID:MHoxWKtY
実行中のプロセスを実行中のままで別のサーバに移動するみたいなことも出来るしな。
負荷分散とか CDN みたいなことを考えたら WASM の利用価値は高いと思う。

ただ、逆に言えば大規模にクラウドを活用するという場合でないのなら
必要そうなものが最初から載ってるフレームワークが楽というのは確かにそう。
既存のシステムがあるなら既存のシステムでやればいい。

そうでないときが有るから新しいシステムが発明されるわけなんで。
2023/06/04(日) 10:29:57.16ID:rt4nzg3U
>>461
これビューエンジンは何使うの?
調べてみたけど貧相なテンプレート機能しかない感じだけどマジ?

Razorみたいにガッツリ中でコーディング出来ないの?
それともJavaScript系の何か使うの?
もしかしてコーディング量で言えばRustの方が少なくてJS書く方が多い?
マジ?
2023/06/04(日) 10:31:29.87ID:rt4nzg3U
>>466
動かしたまま別サーバーに移動ってAzureやらAWSじゃ普通に出来るやんw
2023/06/04(日) 11:27:05.07ID:IpWrAX+2
画面周りなんかHTMLで書いた方がだいぶ楽だろ。
470デフォルトの名無しさん
垢版 |
2023/06/04(日) 11:45:54.52ID:2fzIybDH
延々と自演してて草
2023/06/04(日) 12:12:07.87ID:rt4nzg3U
>>469
これはただの馬鹿w
2023/06/04(日) 12:29:26.42ID:ckCJmvWc
Rustってlinuxコマンドのリプレースを作るための言語だろ
2023/06/04(日) 12:33:51.42ID:+vxIFgp1
いつからそんな地位を?w
2023/06/04(日) 12:54:38.29ID:yBN53eMB
個人開発で技術力高いならコスト削減の効果があるが
エンタープライズは人件費の方が高いわけでコスト削減にそもそもならない
AWSとかマンパワーのある企業なら別だけど

このことをわかってるから、Web系企業は普通Rustを採用しない

基本はC、C++の代替言語だね
ランタイムが薄くてシステムプログラミング向け

そもそもWebサーバーをCで普通書かないから同様にRustも向いてないということになる
IT土方向け言語じゃなくてOS開発とか一部のエリート開発者向け言語
2023/06/04(日) 12:56:42.06ID:rt4nzg3U
つまりRustでWeb云々言ってる奴は小規模開発の経験しか無い土方って訳か
そりゃ意見が合わん訳だ
476デフォルトの名無しさん
垢版 |
2023/06/04(日) 13:04:09.42ID:S8P2kIF5
Rustって戦争の準備じゃないの?
サイバー攻撃に備えましょうって事とか
爆弾搭載したドローン制御するのにとか
2023/06/04(日) 13:06:29.56ID:QZNMuBNC
RustでWebっていうとCloudflareみたいにHTTP直接扱うようなのも多いしな
PHPでWebアプリ、みたいな層はターゲットではないと思う
478デフォルトの名無しさん
垢版 |
2023/06/04(日) 13:14:25.68ID:Yc44DpOp
>>474
> そもそもWebサーバーをCで普通書かないから
> 同様にRustも向いてないということになる

いえいえ
WebサーバーはこれまでCで書かれてきました
apacheもnginxもC言語で書かれています
Rustが最適な分野です

>>475
逆です
2023/06/04(日) 13:18:05.37ID:rt4nzg3U
>>478
いや言いたい事ってそういう事じゃ無いと思うよw
そこが分かってないのは技術力が無い証拠
480デフォルトの名無しさん
垢版 |
2023/06/04(日) 13:28:02.69ID:Yc44DpOp
>>479
CDNやクラウドなど含めてWebサーバーシステムの新たなものはRust製
Rustの世界的な利用調査結果からみてもWeb方面での利用が多い
この分野で現在プログラミング言語のうち最も適しているのはRust
2023/06/04(日) 13:38:27.69ID:M4a45GKO
Webにも低レイヤ(HTTP3とかSSLみたいなライブラリ)から高レイヤ(Railsで作るようなWebアプリ)まであって
まとめてWebっていうから話が合わないんだろうね
高レイヤしかやってない人はそもそも低レイヤの存在自体知らなかったりするし
Rustに向いてるのは低レイヤ側で、Railsの代わりに使えるなんて言う人はいないんじゃないかな
2023/06/04(日) 13:39:46.54ID:R98I/Q0o
実際ウェブアプリを速攻で作ってみるというなら
Railsは何でもライブラリやドキュメントが揃ってるから楽

規模が大きくなるとRubyのせいで辛いことが増えてくるけど
最初から高度なこと目指してない人には
Rustから始めるのは現状では立ち上がりの苦労が多いとは思う
483デフォルトの名無しさん
垢版 |
2023/06/04(日) 13:46:22.68ID:wTbdEHgi
俺はいわゆるwebアプリ作ってるよ
最近は重厚なフレームワークは避けられるでしょ
2023/06/04(日) 13:58:39.33ID:s0MiwY6r
高レイヤwebは形式上プログラミング言語を使っただけのお絵描きや職人芸みたいなものであって、Rustユーザーが言うプログラミングとはかなり異なる世界
2023/06/04(日) 13:59:58.35ID:YjKn3ZKa
Webブラウザサイドで重い計算処理はRustで書いてWasmにやらせている
関連するUIやviewもWasmから
486デフォルトの名無しさん
垢版 |
2023/06/04(日) 15:22:57.88ID:6x+rjW9P
楽だという理由でwebで使っているよ
2023/06/04(日) 15:26:41.80ID:rt4nzg3U
>>486
どういう部分が楽だって聞いても良い?
更に言えば同じ部分が他言語ではこういう感じで面倒的な話とか
488デフォルトの名無しさん
垢版 |
2023/06/04(日) 15:49:15.47ID:6x+rjW9P
平たくいうと品質を保つのが楽
スクリプト言語は作るのは楽だけど維持するのが苦痛すぎ
2023/06/04(日) 16:05:09.85ID:rt4nzg3U
それってJavaとかC#でも良くね?
Rustである意味はないよね
490デフォルトの名無しさん
垢版 |
2023/06/04(日) 16:06:21.66ID:6x+rjW9P
なぜそう思うの?
2023/06/04(日) 16:14:24.49ID:JwBn0wcZ
Rustを活用できないクソ雑魚が使わない理由の正当化に必死っすな
2023/06/04(日) 16:22:16.38ID:rt4nzg3U
>>490
要はスクリプト言語を排除出来れば良い訳じゃん
Rustじゃ無くても出来るよねって話
2023/06/04(日) 16:23:34.73ID:rt4nzg3U
>>491
今のところ“活用”出来てる例は出てないけど?
“使用”は出来るって話だよね
2023/06/04(日) 16:26:51.47ID:rt4nzg3U
ちなみに俺のそもそもの質問は何に使ってるのかって話なんだから“活用”出来る場所を教えてくれよ

OSやら低レイヤWeb以外でさ
495デフォルトの名無しさん
垢版 |
2023/06/04(日) 16:40:10.04ID:ydxF9Sga
RustのWebアプリ個人的にrailsより遥かにわかりやすいと思うんだけど
2023/06/04(日) 16:46:31.48ID:rt4nzg3U
シンプルな機能しか無いからだろ
2023/06/04(日) 16:46:36.28ID:3zj6xUo2
エコシステム全体が代数的データ型前提で作られていて
型宣言だけでほぼAPIの使い方がわかる、みたいな体験は他言語ではちょっとないかもね
だから一度Rust書けるようになったら全部Rustでいいじゃんってなりがち
2023/06/04(日) 16:47:18.61ID:iNT4RVPT
railsの分からなさは、どこのコードがいつ動いてるのか、分からんとこ
499デフォルトの名無しさん
垢版 |
2023/06/04(日) 16:55:53.89ID:6x+rjW9P
>>492
ジャバもダメだね
C#はちょっとしか触ってないから評価できないな
500デフォルトの名無しさん
垢版 |
2023/06/04(日) 16:59:31.44ID:6x+rjW9P
>>498
レイルズに限らずフレームワークというのはえてしてそういうものだよね
それって作る時はいいけど維持することを難しい
なので避けられるようになってきた
501デフォルトの名無しさん
垢版 |
2023/06/04(日) 17:00:30.76ID:CvW15b8Y
高レイヤーのWebアプリでもRustがつかわれるようになるよ
支配的にはならないけど
2023/06/04(日) 18:26:31.67ID:R98I/Q0o
ID:rt4nzg3Uからは議論や情報交換より
「論破」したい気持ちは強く伝わるな
2023/06/04(日) 18:31:18.83ID:rt4nzg3U
論破なんてどうでも良いです
504デフォルトの名無しさん
垢版 |
2023/06/04(日) 18:56:40.97ID:Yc44DpOp
>>493
AWS (Amazon Web Service)など様々なものがRust製になっていってる現実を受け入れられない?
もしRust製である必要がないと主張したいならばどの言語を使うのがベストなのか明確にすべき
2023/06/04(日) 19:11:40.33ID:rt4nzg3U
>>504
既に言われてるけど低レイヤーの話でしょ
そこは得意分野だろ

でお前はその低レイヤーな部分を作るの?
要はApacheもどきを自分で作るんか?
2023/06/04(日) 19:12:48.96ID:rt4nzg3U
OS開発に向いてますって言われてもOS作る開発者は一般的じゃ無いやろ
2023/06/04(日) 19:13:29.18ID:yBN53eMB
>>478
言おうとしてたのはWebサーバーじゃなくてWebアプリね

で、企業でnginxやapacheみたいなHTTPサーバースクラッチで作ってる日本の企業ってどこにあるんだ?
Webアプリ作ってるのが大半だろ?
H2Oぐらいしか知らないけどあれはほぼ個人開発だしな
なんでかって言うと既にOSSで優秀なエンジニアが作ってるから、企業でそれをやるのは意味がないから
普通のエンジニアはこういう車両の再発明的なことを業務ではやらない

だからWeb系企業にRustは普通採用されないと言ってるの

一部のエリート向けって言ったのはまさにこういうこと
nginxもredisもCで書かれてるけどほぼ一人のエリートよって作成されてるからな
Linuxカーネル書いてる人もエリートしかいないだろ
そう言う人向けの言語
2023/06/04(日) 19:13:51.05ID:rt4nzg3U
議論が出来ない馬鹿の良くある事

極論で語る

これが出てきたら無能確定
2023/06/04(日) 19:36:06.85ID:yBN53eMB
でその一部のエリートは通常C、C++を使いたがる
新しい言語自体には興味がなくメモリを自分で管理できる自信があるから

Rustが輝くのはAWSとか一部のエリート企業に限られるだろうね
企業でやる場合はメモリ安全は重要だろう

俺たちIT土方はまずこういった低レイヤーやミドルウェアを触れる機会がないので間違ってもイキってWebアプリとかでRust使わない方がいいと思うよ
ほとんどのケースで向いてないし、企業でもまず採用されないから
510デフォルトの名無しさん
垢版 |
2023/06/04(日) 19:55:56.27ID:Yc44DpOp
>>505
Webにそんな区別はない
HTTPベースで通信するものがWebと呼ばれておりAWSのWもその略

Rustでも他の言語と同様にHTTPは自分で実装する必要がなく利用するだでよい
低レイヤという区別をするならばRustではhyperというHTTPを担うライブラリが低レイヤと呼ばれている
だからRustでもその低レイヤ部分を自分で実装する必要はない

さらにその低レイヤhyperの上に作られた様々なフレームワークがある
つまり低レイヤ部分のhyperを自分で直接使う必要はなく各フレームワークを用いてWebのプログラムを書くことができる

したがってRustでは低レイヤ部分を自作もできるが既に標準的なものがあり
フレームワークも自作できるが既に様々なものがあり自分で作らなくても利用可能

Rustを否定しているあなたがRustの代わりに使うべきだと考えているプログラミング言語は何ですか?

>>509
Rustを否定しているあなたもRustの代わりに使うべきだと考えているプログラミング言語は何ですか?
2023/06/04(日) 22:38:12.29ID:rt4nzg3U
何でRust否定してる事になってるの?
妄想酷くねw

長々と書いてるけど的外れなんだよ
2023/06/04(日) 22:52:44.00ID:Lgm9jhwY
結局なにがしたいのかがわからん
相手にしてるやつも
2023/06/04(日) 22:57:08.43ID:YjKn3ZKa
速さ省メモリに保守性の良さからRustがベストで間違いない
2023/06/05(月) 01:02:48.45ID:G39bRhEA
この人の中ではRustの適用範囲は決まってて
他の人が範囲外の事例出すと否定のための否定を
したいだけなのが明白だから相手しても不毛
2023/06/05(月) 01:11:33.27ID:9wHuhZD9
言いたいことはこれなのだろう

>>489
> それってJavaとかC#でも良くね?
> Rustである意味はないよね

JavaとかC#である意味こそないよな
2023/06/05(月) 01:41:08.29ID:FV749zD+
まとめて隔離スレに帰れゴミカスども
2023/06/05(月) 07:49:28.36ID:GAWgQYcM
>>468
ライブマイグレーションって今でもあまり普通じゃないと思うけど。冗長化構成とって切り替えが多いだろ。
2023/06/05(月) 11:19:07.49ID:9Zk1qYqb
>>514
違うかな

逆に言うとC#でもOSは書けるし実際に有る
でもソレって無理矢理感有るでしょ

Rustも同じでやろうと思えば出来る
でもそれってRustである意味は無いよねって話

高速で動く必要があって
GCが走って一時的にレスポンスが遅くなる事態が不味い
って場面がRustの出番って事だと思うんだけどね

WebアプリについてはまさしくRustであるある必要は無い
せめて他言語のフレームワーク並みに各種ミドルウェアが充実してるならまだしもその分野では貧相としか言えない
だからこそ流行ってないとも言える
2023/06/05(月) 11:31:56.47ID:G39bRhEA
>>518
そうだねすごいね
520デフォルトの名無しさん
垢版 |
2023/06/05(月) 12:29:52.32ID:AdIugMi7
自分で考えて調べて判断を下せない人にはRustは向かない
良い悪いじゃなく適性と置かれている環境の違い
2023/06/05(月) 12:41:59.19ID:GjYw3Sbx
DiscordでGC云々ってのもGoのアップデートで解消できる内容だしな
(Go作者のRuss Coxさん曰く)

Webでいちいちスタックだとかヒープだとかメモリの所有権だとか考えながらコードを書くメリットは別にそこまでないよな
nginxみたいなミドルウェア的な立ち位置のWebサーバーを作るならともかく

システムプログラミング言語だからあくまでもC, C++の代替言語
GoやJavaとは全く別用途の言語
522デフォルトの名無しさん
垢版 |
2023/06/05(月) 13:16:05.91ID:dGVU/GMJ
15年くらい前の考え方だね
523デフォルトの名無しさん
垢版 |
2023/06/05(月) 13:34:19.17ID:UReP7Es5
>>518
C#である必要もない
524デフォルトの名無しさん
垢版 |
2023/06/05(月) 13:43:03.69ID:UReP7Es5
>>521
あるよ
ここまで外部データを扱う分野もない
つまり内部でメモリアロケーションが頻発する
メモリをどうアロケートするか?で天と地の差が出るのが現代のマシンのアーキテクチャだ
キャッシュメモリに全部乗せるようにプログラムを書くのは今や常識
いちいちヒープからメモリを確保していたらページフォルトで尋常じゃないスピード劣化を招く
ましてやGCなどそんなプログラムを遅くするようなもんよく採用したな?というレベル
Webこそスタックとヒープとメモリアロケーションを明確に制御できるべき分野
2023/06/05(月) 13:46:53.65ID:UReP7Es5
>>509
何度も言うがスタック、ヒープ、ベクター化(SIMD)、キャッシュメモリなどを意識することは一昔前よりはるかに有効になっている
キャッシュメモリの速度が比べ物にならないくらい速くなっているからだ
むしろ今こそスタックとヒープを意識して「メモリをちゃんと使い回す」ことを意識すべきなんだよ
所有権ってのはマシンアーキテクチャの視点で見ると
メモリ領域をうまく使い回すための技術ともいえる
余計なアロケーションを防ぎメモリリークを防ぎ
ページフォルトを防ぎベクター化を容易にする
このような現代的なプログラミング技術についてまともに解説されることは少ないのだが
優れたプログラマは常に意識している
2023/06/05(月) 13:51:56.62ID:UReP7Es5
「Rustが速い」と言われてるのはこのようなメモリの使い方が優れているから結果として速くなっているというのが事実
これは他の言語が捨てた部分だ
他の言語は「メモリなんて富豪的でいいっしょ」と言う姿勢を貫いていた
しかし現代のアーキテクチャにおいては他の言語が捨てた部分こそが高速化の肝だったのだ
Rustの初期のメンバーがここまで意識できてたかはわからないが
メモリ安全を追求した結果現代アーキテクチャにとって最適な形になったのは偶然ではない
2023/06/05(月) 14:02:53.03ID:v+V2Ynpr
>>521
TypeScriptで型レベルプログラミングに慣れた人たちは「せめて直和型くらいは欲しい」となってしまい
移行先としてGoもJavaも対象外になって、パフォーマンスが必要なくてもRustに行くケースがよくある
Goがもっとリッチな言語機能を目指してればこういう層は全部取れたんだろうけど
528デフォルトの名無しさん
垢版 |
2023/06/05(月) 14:21:53.12ID:qHQdZEB1
アレな人とアレを複製する人のアレな議論からは
反面教師とする以外に何も得るものがないな
2023/06/05(月) 14:27:59.36ID:/xaXR3Rr
>>521
かつてはウェブの世界だと細々と切り詰めて効率化するよりスケールアウトのしやすさのほうが重要視されてた。
プログラムを改良して性能を倍に延ばすよりもサーバの数を増やしたほうが安上がりだから。
プログラムの改良はやればやるだけ性能が伸びるというわけでなくて、
どうせどこかに上限があるなら数で補えるような設計のほうが良い。
それがかつてのウェブの思想だが、クラウドが前提の世界になって一変した。

スケールアウトを簡単に出来るインフラが整ってしまったんだ。
サービスを構築する側は CPU とメモリを使いたい分だけ金を払えばスケールアウトは当たり前に出来るものになった。
サーバの準備が投資ではなく消費になってしまったとも言える。
ま、経営者にとってみれば消費は減らしたいもんだ。
故に今はミクロ的な実行効率のほうを上げようとする圧力が発生している。

そんなわけで Rust を採用する動機はある。
もちろんサービスの規模が小さいならそんなに手間かける割に合わんということも多いだろうけど、
ウェブでも Rust を採用する動機は存在するんだよ。
530デフォルトの名無しさん
垢版 |
2023/06/05(月) 14:30:23.16ID:SGaNfCKj
おっさん、Rustは学歴勝負の言語なんだよ
高卒様はC#スレに帰ってくれ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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