Rust part23
■ このスレッドは過去ログ倉庫に格納されています
エンジニアが判断すべき問題を管理者が決定してるようなレベルの開発現場まで Rustが普及する日は来るんだろうか 上の方でも言われてたけどコーダー集まらない問題に直面しそうだが Rustはコーダーは集まらんだろ 普通は外注先がほぼコーディングできない新人を連れてきて実質的にこちらが教育する羽目になる ある程度使えるようになるとそいつがどこか単価の高いところに送られてまた代わりの新人が送られてくる 大手だとこれの繰り返しだがRustはそれが難しい 意図的にどこかで誰かが資金を投入してRustコーダーを栽培()しないと 増えるわけがない javaやpythonじゃないんだから 野良Rustコーダーなんて存在しない 使える人間は100%C++使いなので引っ張ってこれない エンジニアの趣味なら高尚な言語追求してもいいと思うけど、ビジネスで使う言語はあくまでビジネスメリットが大きなもの選ばないと立ちいかなくなるよな まあJavaとかC++のバケモノみたいな分量のコーディング規約の存在を考えると、「Unsafe使うな」の一言で済むRustは原理的にはビジネス的なメリットありそう それよりもホントにシステムプログラミングできてんのかが興味あるわ CからはOSならばUnixやLinuxやWindowsが生まれてきたけど Rustからは一体どんな素晴らしいものが生まれてくるんだろうか? Cより書きやすくて? 安全なんだよね? 期待していいんよね? Systems programming https://en.wikipedia.org/wiki/Systems_programming e.g. operating systems, computational science applications, game engines, industrial automation, and software as a service applications 今更OSを書いたところでビジネスに出来るのは一握りの人間だからCの頃とは話がちょっと違いそうではある でも期待するのは自由だ Rustファンはみんな期待している >>477 interfaceって組み込み専門誌は毎月お題スレみたいな問題を解く記事が出てたり、Rust特集の時でもOSを作るどころか、OS乗らないような環境(Cとアセンブラの独壇場。C++不可の世界)で組み込みRust使う記事とかあったよ。 ビジネスになるかはともかく、技術的には余裕なはず。 既にネットインフラは次々とRust製 ソースは>>51 >>472 Rustは仕様や周辺ツールが飛びぬけて優秀な故 JavaやPHP等他の言語と違って素人でも適当に書いても 大した問題は起こらないから「技術者の立ち位置」を守る観点で見ると 大規模開発現場で普及する事はこれからも無いよ。 それで守られるのはITコン猿の立ち位置じゃね? エンジニアは長期的な保身より目の前の利便性に飛びつきそうだが 知ってる人間は黙ってRustの恩恵を受けておけば良くて 人売りサル業界は人/月だコミュニケーションスキルだと 喚いていれば良い。 C++が流行った経緯知ってる奴なら想像できるだろ。 C++が出た当初はSTLもテンプレートもなかったしライブラリなんかはObjective-Cのほうが多いくらいだった。 でも流行ったのはC++。 C++はわかりやすく拡張されたCだからさ ライブラリのAPIとかCばかりだから最悪そのまんまCでも良かった NEXTSTEPでObjecive-C開発は呪術で入門書もなく上手くいかなくても何が悪いのかさっぱりわからない 日本語の書籍がないのが一番つらかった 当時NeXTに触れてたやつおるん? たまげたなぁ 俺なんか図書館の奥に潜んでるObjective-Cの本読んでたよ いつごろだったかなぁ日本語のやつあったけどなぁ まさかmacOSで脚光浴びるとは思いもせずに 研究室にあったんよ 当時でももう型オチででも予算無いからリプレースも出来ず MOのデータを消しながら使ってた 古いUNIX系の雑誌の特集見てそれをポチポチやってクソうるさくて遅いHDDの音聞きながらコンパイル待って…と言う感じで 自分は図書館に埋もれたModulaの本を読んでた 羨ましい 俺は演習室のBSDのWMをafterstepにしてニマニマしてただけ あー羨ましい C の宣言の文法が無茶苦茶なのを C++ で改良するかどうか迷った話は D&E に書いてある。 結局は C のままでいくと判断した。 良くなるのだとしても、少なくとも一時的には大きな混乱が起こることを C++ は許容しなかった。 言語ってのはそれを取り巻くエコシステム (言語ユーザーやドキュメントも含む) と離れて成立することはないってこと。 C++ は C のツールチェインにほとんどそのまま乗っかる形で (最初は) 普及したし。 Rust はツールチェインの整備も一緒に取り組んだというのは普及の一助になったとは思うけど、 今までに作られた膨大なソフトウェア資源の最も低レイヤの部分は結局は C なんだよね。 そもそも ABI が C を基準にした仕様だったりするので 他の言語と接続するときは皆が C に合わせる形になる。 もしこれから Rust がもっと普及することがあったとしても低レイヤでは C の残滓はいつまでも消えないと思う。 ABI stableにするのはエディション単位でいいんだからさっさとやればいいのにとは思う >>490 Rustで書いたOSが大流行でもしない限りCと同じようにはならない。 ただ、Linux は Rust を取り込み始めたので何十年も掛けてゆっくり Rust 化する可能性はある。 そうなると移行したライブラリは増え続け、50年後ぐらいには今のCと同じようになっているかも知れない。 もちろんその頃には別の新言語が出てきていて Rust が時代遅れな言語になっているわけだが。 ABI部分のコーディングする人はプログラマーの1%もいないんだから影響は昔も今後もない 多言語システムはそれより多いけどそこはABIではなく様々な通信プロトコルなどを介する ABIこそ良い奴が出たら置き換えられそうだけどな 現状良い奴がないだけで >>493 何言ってんのwww 相変わらず無知が過ぎる そりゃABIがらみのプログラミングよりはProtocol Buffersなど使う方が多いんだろうけど そんなん言ったらrustを必要とするプログラマこそ1%もおらんけどな。 「ソフトウェアはメモリ安全でなければならない」との声明を発表、米ホワイトハウス:「C」「C++」よりも「Rust」などの言語を推奨 https://atmarkit.itmedia.co.jp/ait/articles/2403/18/news045.html >>500 メモリ安全というならSafe Rustのみだな。Unsafe Rustは禁止すべき。 c++標準も、Safe Rust に倣って c++ subset for safe programming とか 作ればいいのに。 メモリの具体的な番地やレイアウトに依存する低レイヤの事情が消えてなくなるわけじゃないからな。 java, python みたいな言語ならメモリ安全だよ。お前らの用途ならそれで十分だろ。 >>501 C/C++はプログラム全体がunsafe空間なので難しい safeにしようとすると全く別言語になってしまう 結局C/C++を捨てるのが正しい >>503 nullポイントがある時点で… 一応JavaはStream APIと同じくらいのタイミングでOptional<T>が追加されてたはずだけど,だからといって従来の「失敗したらnullを返すメソッド」がOptionalを返すように修正されたわけじゃないしなぁ ぬるぽ例外で止まるのはNone.unwrap()のpanicで止まるのと同じで安全に分類される nullから何かを読み出して動き続けると危険 >>508 Someである保証がある時のみunwrap()を使う 保証がないのにunwrap()する人はクビ メモリ安全の文脈だからそういう次元の話ではないのだが >>505 コーダー向けだから別言語でいいよ。 new deleteは禁止していいし、ポインタ演算その他のポインタ処理は全部禁止でいい。生ポインタのヒープ領域コピーも禁止していいし、そもそも生ポインタ禁止で参照のみ可にしてもいい。 operator関数定義も禁止でいいんじゃない? ちょっと何が禁止なのか分からないのでローカル変数の参照をreturnしておきますね どの言語にも共通するけど,書けるようになってくると楽しいよ でもってライブラリが足りて無いなって思って「使えね」ってなるんだよね >>512 あ、未定義と定義されているのも全部禁止ね。 >>500 これでRustの知名度も上がるし普及も加速しそう >>517 結構前にもNASAが同じ様な事言って今やんw rustを無理に使ってまですることがぬるぽ対策とかアホだよね >>519 まあ戦争によるサイバー攻撃に備えろってのは分かるんよ 日本も来年ぐらいに戦争になるって予測がアメリカとか含めて言われてるからね >>518 NASAに続いて米政府も「C/C++からRustへ切り替えろ」と明確なメッセージを出したことは大きいね 間違いなく日本も追随することになる Rust愛用者だけど今のホワイトハウスに推されると逆に不安になるんだがw ONCDは健全なのかな >>518 NASA?NSAじゃなく? NSAはNASAじゃないぞ。 ワロタ NSAとNASAの区別もできんとはww メッセージを出してるところが広がってトーンも厳しくなってきてるのは確か 2022/11 NSA 2023/09 CISA 2023/12 CISA+NSA,+FBI+Five Eyesの各機関 2024/02 White House(ONCD) >>524 あとは日本がどれだけ遅れるかだな 数ヶ月か、1年か、数年か、 外部のお墨付きを欲しがる時点でオワっとるんよ 言語として ここでそういう話題使って必死で盛り上げようとして 消えそうな火に風送ってるつもりかしらんけど IT大手ライバル同士が GAFAMからHUAWEIまで一致団結して Rust Foundationを設立した時点で未来は確定していた そしてRustに対抗できるライバル言語の芽が今も存在しない Rustの代替になる思想の言語が全くそれ以降全く見ないからな。 今のところGCレスでメモリ安全に向き合った唯一の言語でねえの? 後発の言語は Rust みたいに複雑なコンパイル時の検証を最初から書こうなんてそうそう思えないんじゃないかな。 >>527 欲しがってるかね? むしろ外部が乗っかろうとしてる感じ。 >>530 メモリ安全に向き合う、程度ならそれこそc++11が先駆けだろ。 過去互換性のせいで徹底できないけど。 それよりもRustはスタックフレーム指向であることに価値がある。 スタック is god, 再帰 is god. >>515 まあ標準ライブラリがかなりミニマムだなぁって感じるときはある 乱数くらい用意しておいてよ… >>530 ある言語Aがあってその弱点が強烈で直したいけどすでに普及しきっている で別の言語Bが作られる その言語Bが普及しきっていなければ容易に弱点を変更できるので別のC言語は必要とされない >>534 >その言語Bが普及しきっていなければ容易に弱点を変更できる これが真とは限らない 容易に変更できる場合もあればそうでない場合もある Rustで過去に結構破壊的変更がされてたらしいけどそれは普及してなかったからじゃないのか wikipedia > 2015年に1.0版がリリースされるまでにいくつもの破壊的な仕様変更があったが、1.0版以降は基本的には後方互換を保って6週間間隔で定期的にリリースされている。 GCやJITは銀の弾丸と思われていろんな後発言語に取り込まれたけど、所有権は最初から組み込むには高度すぎるがエコシステム成熟前に組み込まないといけないという制約が大きいんだろうな。 >>537 所有権は最終的にはプログラム間の境界の問題になるから、c++のスマートポインタのようにアダプタで管理範囲を調整することで改善可能。 適切なアダプタを用意しても境界のプロトコルをどうやって徹底するかという問題は残るから、Rustみたいに言語レベルで強制できると頑強になる。 ただ、Rustみたいにガチガチにすると設計の柔軟性を失うから、実装も早すぎる最適化になりがち。Rustの絶壁の学習曲線と相まって、開発初期のRust導入はプロジェクトを破綻させる要因となりうる。Rustが適しているのは、ある程度枯れた設計の実装を置き換えるようなプロジェクトかと。 Rustはむしろリファクタリングにも向いていてなかなか良い言語だぜ とりあえず動くように雑に書いて動かしてみて 次に機能追加充実させる上で整理しながらモジュール化や共通事項のtrait化など このようなリファクタリング過程で 他の言語だとメモリ安全性だけでなく書き換え競合やヌル値エラー値取り扱いミスなどエンバグすることも多いが Rustではコンパイル通せばそれらの心配がなくリファクタリングできる そもそもGC無しの言語ってニッチじゃない? 当面は、Rustで充足されて安泰な気がする。 うむり、実用言語では現時点で安全性とスピードを高い次元で両立できてるのはRustだけかもね。 関数型言語にも良いのあるけど、普及しなさそうだしね…。 (OCamlとか次世代HaskellらしいIdrisとか) それにCとアセンブラしかない分野(C++不可なくらい低スペックな組み込み)でC++以降のモダンな言語が使えるのは大きい。 学問的には合理的な型システムとか検証器とかの研究は大きく進んでるけど メモリの動作モデルをそこそこちゃんと仕様にしてるのは C/C++ しかないんだよね。 LLVM が C/C++ を前提にしてるところもあるし、 Rust もそれに合わせる形になってるところもある。 C/C++ 的な分野をよりよくやる言語と考えると Rust はとても良い。 すまんが↓これが動く理由を教えて欲しいんだけどさあ https://paiza.io/projects/uhC43ajorg-qaLG7mXbw7w 一見すると5行目で所有権が失われて、6行目で使ってるように見えるんだけど・・・・ これって5行目が借用に推定されてるの? それともリテラルを引数にした場合だと5行目で「1」が他のスタックにコピーされて、所有権が失われる問題なんか起きないのかな? へるぷみい >>544 値とその所有権が複製されて関数fに渡される分とそのまま残る分の2つになる 値が複製されて、複製された値の所有権が関数fに渡るだな。 所有権の複製とかいうクソワードは避けてくれ。 >>544 i32 は Copy トレイトが実装されてる。 普通なら所有権の移動になる文脈で暗黙に clone されると思ったら良い。 そう言うことなのか、ありがとう! 理由が分からなかったから不気味だったぜ >>547 >値が複製されて、複製された値の所有権が関数fに渡るだな。 複製された値の所有権は最初から関数fのスコープの中で発生するものなので 「関数f」に渡るという表現には少し違和感を感じる 感じてるから違和「感」だからね 要は頭痛が痛いと同じ >>553 感じるを感じるメタ表現だろ。 ポインタのポインタみたいなもんだ。 >>542 embedded 対応アーキ少なくね? >>557 重言ではあるけど間違った日本語ではない といったほうがよかったね >>556 少ないね。 でも、そもそも今までCとアセンブラ以外はほぼ無い状態だったから、出てきただけマシ。 それに、少ないといってもシェアが広いアーキなので滑り出しは順調と言えるのかと。 少し前まで次世代言語と言われてた程度には後発。 鯖向け言語で終わると思ってたら、マジでC/アセンブラの牙城を崩し始めるとは思わんかった。 むしろ崩し始めることすら無理だと思ってた。 >>559 状況も追い風なのかもね。 二の足踏んでたけど、armと生きていく決心をしてrust覚えるか。 先にrust身に付けてから、非対応アーキでC++導入したらメリットあるかな? Rust知ってれば安全性の高いシステム組めますと言うアピールになるし、C++にもその安全性のための知見は役立つ。 複数言語使えますってだけでもアピールになるしね。 Rustは多分仕事自体はまだ多くない。 これからアピールして増やしていく感じなので、両方使えてた方がいい。 rustというものがありながらなぜ大部分のコードはC言語なのかを知るために現場に行くのもアリ Rustが実用的になったのは2020年 それ以降の新規案件はRustになっている Rustへの移行は始まったばかりだからまだまだCが残っているのは当たり前 絶壁の学習曲線。 貧弱なライブラリと人材。 早すぎる最適化。 しばらくは既存コード置き換えが中心だし、今後もプロジェクト初期のプロトタイピングで使われることは無いだろう。 P系言語の糞思考に染まっていない初心者こそ 最初にRustを学ぶべき >>567 移植なんて無駄な作業はどの言語間でも行われることが少なく 初手Rustは冗談抜きで2024以降だと選択肢に入るんじゃないか >>567 移植なんて無駄な作業はどの言語間でも行われることが少なく 通常はシステム更新で全体もしくは一部が作り直される時に別の言語が使われる Rustでも同様でほとんどがそれら含む新たな案件 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる