Rust part23
■ このスレッドは過去ログ倉庫に格納されています
>>397 問題点の指摘や解決策の提案と 問題解決のために実際に誰が動くのかという 2つの異なるものを混同したらだめだよ マネジメント101 その素晴らしい提案がなぜされていないのか考えよう そしてなぜ自分は実行から逃げているのか考えよう >>394 Rustが流行りそうな一番の理由は「管理側」が「コーダー」にunsafeみたいなことをやらせたくないということなんだから、どこでもunsafeとか管理側が許さんだろ。 unsafe はコンパイラが安全性を「論理的に検証できない」部分であって、理論上の都合で出来た区分だよ。 危険な操作も含まれるけど危険な部分を分けれてるわけではない。 もちろん unsafe を制限する規約のプロジェクトがあったって良いが、そのための機能じゃないよ。 >>401 安全性をコンパイラが検証できないなら、なおのこと制限すべきだと思うがね。 デフォルト禁止でもいいくらい。 >>402 だからそうしたいならそうすりゃいいって話をしてる。 あなたが裁量権をもつプロジェクトでは。 私が反論してるのは「そのためのものだ」という部分に対して。 >>403 Rustのコンセプトとニーズからすれば、どこでもunsafe使えるのは中途半端だ、ということだよ。 unsafeはデフォルト禁止でいいよ。 理想をいえばunsafeなんて無いならサイコーだったんだろうね rust陣営もしゃあなしでunsafe導入したんやろうし unsafeなしですべてがセーフで効率的だったら そりゃあrustは本当に素晴らしい文句なしの言語だったやろな 生ポインタすなわちCPUによるメモリアクセスはunsafe そこが出発点 unsafeを組み合わせてunsafeを閉じ込めたsafeなインタフェースを提供できる それがsafe Rustの基本原理 つまりunsafeに行き着くためunsafe無しでは何もできない これが真理 一方で unsafeを閉じ込めたライブラリ利用可を前提にすれば unsafeを用いないsafe Rustでほとんど大抵のことが実現できるのも事実 >>406 だったらデフォルトunsafe禁止で良い。 どこでもunsafe okはやっぱりチグハグ。 そこまでsafeな事にこだわるなら、Haskellに行けばいいのでは…? >>404 「そうであって欲しいと自分は思っている」なら別にいいよ。 ニーズとかコンセプトとか、ありもしないものを根拠にしてることに反論されてるんだよ。 #![forbid(unsafe_code)] を宣言すればいい もちろんすべてはunsafeへ行き着くため unsafeを禁止できるのは自分のコード部分だけ unsafeな部分の拡張子を変えるというのが有効とはあんま思えんのだよな 平気でunsafe使ってくるガイジは当然平気でunsafeな拡張子を使ってくるだろうという予想する >>409 公式の「効率的で信頼できるソフトウェアを誰もがつくれる言語」に従うなら、安全でもなくて誰もが使えるわけでもないunsafeはデフォルト禁止にすべきだろ。やっぱりチグハグだわ。 >>411 拡張子以外だとどんなのができるかねぇ。コーダー向けRustとライブラリアン向けRustで完全に分けるぐらい? rustもいろいろ問題を抱えてるんだね プログラマの習熟が必要だっていうなら流行らないだろう メモリ安全なソフトウェア書くことを優先するなら土方が適当に使えるjavaやc#があるだろうし 新しいc/c++/rustと競合する決定版のような言語が出てきてrustはさらなる傍流に押しやられそう >>412 こう書くだけでunsafeの使用が禁止されます #![forbid(unsafe_code)] >>413 普通の人はunsafeなんか使いませんからRustは安全で何も問題ありません >>414 >411みたいなマキャベリガイジが混ざると破綻しますな。 MSとかGoogleとかの管理側がRustに期待するのはそういった部分含めた安全性だろ。 >>415 これでunsafeが使用禁止となり安全なsafe Rustになる #![forbid(unsafe_code)] コンパイラがunsafeをエラーとして弾く 結局いつもの「無知なアンチ vs 無知な信者」の薄っぺらい対立になっちゃうのな まあハスケルなんかもinvalidな変数使うようにっての広めるのには役立ったからrustもそういう位置に落ち着くだろ。 unsafeを使う人はライブラリ作成者がほとんどで、残りはシビアなインフラ作成者 一般プログラマーはunsafeを使わずに、unsafeが閉じ止められたライブラリのsafeなインターフェースのみ用いる もしunsafeを用いて閉じ込めてsafeなインターフェースを提供できる新たなパターンを発見した時のみ、 その部分だけを切り出してライブラリ作成者になれる それができない一般プログラマーはunsafeに縁がなく、unsafeを気にする必要がない >>419 そうならやっぱりデフォルト禁止にすべきだな。一般コーダーはunsafeを使えないようにしてコードの安全性を高めるべき。 Rustのデフォルトムーブとかshared xor mutableとかは安全側に倒しているのに、なんでunsafeだけはユルユルなのかね。 unsafeって書かないといけないってのは結構デフォ禁止よりの処置だと思うが このメッセージが伝わらない相手にはもうunsafeの文法を分けてunsafeだけ難しくするとかしかなさそう でもわざわざ難しい文法を用意すると言うのも馬鹿らしい話だ 必要な各企業、各プロジェクトなどで義務付け #![forbid(unsafe_code)] これでunsafeの話はおしまい 他の言語と比べてRustはコーディング規約もAPI規約も公式で楽 Rust公式APIガイドライン https://rust-lang.github.io/api-guidelines/ >>422 公式のドキュメントで #![forbid(unsafe_code)] の説明を探しているんだけど、どこにあるのかしらん? doc.rust-lang.org/nomicon/safe-unsafe-meaning.html の1行でおしまい? forbidもunsafe_codeもrustcのlintの一部だな doc.rust-lang.org/rustc/lints/levels.html#forbid doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html#unsafe-code Rust Foundationによる資格認定試験に合格した者だけにunsafe使用パスワードが発行されるようにするしかないな。 どの開発でも #![forbid(unsafe_code)]が原則 どうしてもunsafeが必要なら その安全ロジックを関係者で協議後に #![deny(unsafe_code)]へそのモジュールのみ変更し 許可する部分のみを #![allow(unsafe_code)]として監視対象 といった感じが一般的かと 監視対象を極一部に限定できて 全体はコンパイラにより保証できるため 他のプログラミング言語より扱いやすい >>420 一般とそうでない奴は誰がどうやって区別するのさ? 時間がない時に焦ってunsafe使って書いたコードは長期利用すると大変なことになるので書いてから1時間以内に使って捨てよう >>429 safeで書くのが早くて楽で安全 わずかでもパフォ上げる必要性のあるような箇所が生じない限り、unsafeを検討する人は存在しない >>430 unsafeの使用は、その論拠の安全性の検討や、それ以前に必要性の検討などが必要となるため、時間がかかる safe Rustが楽で早く書けて安全 >>432 安全性の検討も必要な検討も全部スキップして「えいや」ってやればsafe rustより速く書き上がることもあるのでは? 雑にunsafe使って早く書けるのはFFIくらいかな FFIはどのみちunsafe必須だけど、事前条件とかの検討せずに雑にsafe化してしまうならそれは確かに早い pure Rustでunsafeの方が早いケースはちょっと思いつかないな >>427 そりゃプロジェクト管理者だろ。 そもそもRust採用するメリットはソースコードの品質管理しか無いし。 デフォルトunsafe禁止は何回か話題に出てきているのな。 >>426 それぐらいやらないとRust採用するメリット無さそうだよな。 初心者ぼく「禁止しないといけないようなもんが標準で使えるって結局それ危険な言語なんでは? そもそも普通に書いててunsafe使いたいなって場面がない 多人数で書いてるならforbidで落としてもいいけど コードレビューでちょっとでも見ればunsafe使ってることは明らかなんだし、いずれにしてもどうでもいい >>436 じゃunsafe使うな、で済む話じゃん。 rustもプログラマがザコだと使いこなせない言語なんだろ? 人材確保すら苦労するってメジャーになれるのかよ たしかにプログラムの品質がいいから出世するって見たことないわ 逆にクソ過ぎて出世できない奴はいるかも知れんがそういう奴はプログラム云々の問題ではないからな unsafeは面倒 Rustで書いていてunsafeを使いたい気分になることがない さらに通常のプログラミングでunsafeを使うメリットがあるケースが訪れることはまずない 初心者や一般的な人は、unsafeの使い所がないなら、unsafeを使うようなすごい人でもミスをしたり理解不足だったりするって事だから、すごい人が精進すれば解決でしょ。 >>440 PMやったこと無いの? unsafe使うなと管理するより、そもそも使えない方が遥かに楽。 >>442 C++ とかだと使いこなせてないのになんとなく動いちゃったりするから…… 使えてないなら使えないほうがちょっとマシなんだよ。 >>448 言語機能的にunsafeって書かなければそもそも使えないじゃん。 >>448 そのあたりの管理は開発TLの仕事だと思ってたがPMが兼任することもあるのね unsafeでサクッと終わらせてどんどん仕事取ろうぜ safeでチンタラやってる無能に仕事を回すな アンチはunsafeを使うと早く書けると誤解しているのが面白い 早くもなければ楽でもないので普通は使わない 「借用エラー出たらとりあえずunsafeと書いとけば回避できる」くらいのイメージなんかね このスレの優秀な人たちを安月給で揃えたチーム作れたらunsafeについて真面目に取り組んでもいいんだが 正常なコミュニケーション力を持った優秀なエンジニア →こいつらは出世するのでプログラミングスキルは生かされない方向に進む 正常なコミュニケーション力がない優秀なエンジニア →こいつらはどうでもいいことばかりブツブツ言っててイマイチスキルが生かされない どうしたら優秀なエンジニア揃えられるんや… カチョー「では進捗を報告してください」 unsafe_man「アノー、チョット時間かかってオリマシテ、アンセーフが、ソノー(怒涛の勢いで難しいことを話し続ける)」 カチョー「???」 >>457 放っておいても勝手に集まるから心配しなくていいよ そこに混ざりたいなら自身も優秀なエンジニアになる必要はあるけど >>459 すまん、集まってるとこの実名あげてくれんか? >>458 いきなり人格攻撃かよ?Rustらしいな unsafe使う機会ってほぼないよな よほどシビアな低レベルライブラリ作成かFFI部分くらいじゃないか 優秀なエンジニアは担当している仕事がいつ頃終わるか明確に答えられる人 でunsafeを使いこなせるかどうかなんか無関係 これいつまでかかるのと聞かれていつまでに終わるか言えて理由も言える人 システムプログラミング用途も売りにしてなかった? Cと同等のことをしてみせようってんなら unsafeくらい当たり前に常用するやろ?しらんけど ボクは使いません!みたいな意見は誰も求めてないからw unsafe使うと変更する時にだるくなるからできるだけ使わない グローバル変数使うのと同じ気分 「グローバル変数くらい当たり前に常用するやろ?しらんけど ボクは使いません!みたいな意見は誰も求めてないからw」 とか言われたら知らん 使う必要があるからunsafeってもんがあるんであって 使う必要がない人の意見や感想は求められてないんよ 使うべきとか使うべきじゃないとか 普通はどうとか普通はどうじゃないとか 無意味な応酬はやめよう コーダーの「使う使わない」の問題じゃなくて、管理者の「許可する禁止する」の問題なんだよ。 >>451 君の時間の無駄ってこと? こんなところで毎日無駄な時間過ごしてるのに? それって君がやらなければいいだけだよね >>468 一連のunsafeコントで初めてまともな意見だな エンジニアが判断すべき問題を管理者が決定してるようなレベルの開発現場まで 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など使う方が多いんだろうけど ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる