[過去ログ] Rust part21 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
62(4): デフォルトの名無しさん [] 2023/09/02(土) 07:37:58.97 ID:v3EBZAej(1/2) AAS
失礼します
Rustは制約の厳しい言語だから(環境さえ整えば)他言語にトランスパイルしやすい言語
という認識は合ってるでしょうか?
65(3): デフォルトの名無しさん [sage] 2023/09/02(土) 11:00:44.98 ID:YkB2gBn6(1) AAS
>>62
トランスパイル先言語との機能的互換性の高さやや元言語のコンパイラが単純なほうがトランスパイルしやすいと思う
例えばOwnership/Borrow/Lifetimeあたりのトランスパイルが楽かどうか
165(4): デフォルトの名無しさん [sage] 2023/09/09(土) 08:43:17.99 ID:jpDXx+st(1) AAS
yarnだのcargoだのどいつもこいつもなんでオレオレパッケージマネージャ使いたがるの😭
220(3): デフォルトの名無しさん [] 2023/09/15(金) 23:11:51.65 ID:UUFGnjcv(1) AAS
>>219219(2): デフォルトの名無しさん [sage] 2023/09/15(金) 22:34:16.16 ID:qrlNPDKn(1) AAS
そのRust批判を書いてる人もそうだが
意味のあるプログラミング経験の少ない人はmutを毛嫌いしてるよな
言語に関係なくミュータブルか否かの区別がある方が好ましく
ミュータブルの使用は必要最小限が好ましい
という当たり前のことに沿う仕様なのに理解できなくて批判
ミュータブルか否かの区別があるのは煩雑になるだけで好ましくない。WindowsやLinuxのソースコードに
Rustが採用されたと言ってもごく一部でメモリ安全性が特に重視される部分だけ。全部をRustで書くなんて
煩雑な作業には人間はとても耐えられない。
267(3): デフォルトの名無しさん [sage] 2023/09/16(土) 20:31:44.89 ID:/CtnFWfv(1) AAS
>>266その代償としてイミュータブルをコピーしまくってメモリ浪費して関数型言語遅いじゃん
mut祭りで読みづらい代わりに高速でメモリ効率が良いのがRustの売りでしょ
294(3): デフォルトの名無しさん [sage] 2023/09/18(月) 23:41:51.16 ID:X+wkGtcX(3/3) AAS
>>290290(1): デフォルトの名無しさん [sage] 2023/09/18(月) 16:05:47.88 ID:7BUJ27i/(1) AAS
>>285
C(C++含む)の真のヤバさはそれが周知されていないことだと思う
セキュリティ、セキュリティ吠えながら妄信的にC/C++使っているところとか普通にあるし
ロジックが正しくてもバイナリレベルでは脆弱性になることがある。
分かりやすい例では、言語の理屈では寿命を終えたはずのオブジェクトでも再利用される機会がなくて内容が残り続けるとかね。
そういうときにでもどうにかする知見が C/C++ では積み上がってる。
普通に書いて脆弱性が発生しにくいに越したことはないが、脆弱性が発生していることがわかったときに直せる確信があるというのはセキュリティが重要な場面で C/C++ を使う理由になる。
C/C++ が「自分の足を撃つ」ことになるなんてのは百も二百も承知の上で、「自分の足を撃つことも出来る」ことに価値を見いだしてるんだよ。
もともと自分の足を撃つというのは戦争に行かなくて済むようにわざと撃つことがあるというのを下敷きにした言い回しで、危険であると同時にそれが必要なこともあるというニュアンスを含んでいる。
336(3): デフォルトの名無しさん [sage] 2023/09/20(水) 18:16:56.45 ID:52Xj2Gp1(1) AAS
>>328他のDBMSでもプロセス間の排他制御は
出来る方法が限られているのでファイルロックを
使っている可能性が高い。
他の方法だと、mkdir 法や、名前付きパイプが
あることがあるが、ファイルロックの方が便利。
一つのプロセスの中のスレッド間の排他制御は
色々な方法が有るが、プロセスを越えた排他制御
は意外と他に出来る方法が無いから。
385(3): デフォルトの名無しさん [sage] 2023/09/26(火) 18:52:01.41 ID:liEPyEVD(1/7) AAS
rustとgoとc#でjsonのシリアライズ、デシリアライズ実験したんだけど
rust 1ms cargo run --release
go 10ms
c# 40ms dotnet build -c Release
こんなに違うもんなの?
リリースモードでビルドしたつもりだけど
WebAPIのバックエンドどれにするか悩んでたけどもうrust1択でいいやん
430(6): デフォルトの名無しさん [sage] 2023/10/07(土) 06:46:44.80 ID:bWLG2vp7(1) AAS
mut無しとはこういうことか
外部リンク:play.rust-lang.org
fn qsort<T: Copy+Ord>(list: &[T]) -> Vec<T> {
match list {
[pivot, ..] => {
let (smaller, rest): (Vec<T Vec<T>) =
list[1..].iter().partition(|&i| i < pivot);
[qsort(&smaller), vec![*pivot], qsort(&rest)].concat()
},
_ => vec![]
}
}
fn main() {
let list = [9, 0, 7, 3, 6, 1, 2, 4, 8, 5];
println!("{:?}", list);
println!("{:?}", qsort(&list));
}
453(6): デフォルトの名無しさん [sage] 2023/10/08(日) 18:19:11.05 ID:WAd1DVRF(3/3) AAS
enumのリストで書いてみたわ
rust不慣れだから所々おかしいかも
外部リンク:ideone.com
enum List<T> {
Cons(T, Box<List<T>>),
Nil,
}
impl<T: Copy + PartialOrd> List<T> {
// 略
fn qsort(&self) -> Self {
match self {
List::Nil => List::Nil,
List::Cons(pivot, tail) => {
let (smaller, rest) = tail.partition(|x| *x < *pivot);
smaller.qsort().concat(&rest.qsort().prepend(*pivot))
}
}
}
}
fn main() {
let list = List::<i32>::nil().prepend(4).prepend(8).prepend(8).prepend(3).rev();
list.each(|n| print!("{}", n));println!("");
list.qsort().each(|n| print!("{}", n));println!("");
}
474(3): デフォルトの名無しさん [sage] 2023/10/11(水) 23:18:11.74 ID:vJm7EO/F(1) AAS
>>441>>430がVec使用だから同等でないという話ならばRustにもリンクリストがあるよ
リンクリストに特化したパターンマッチング構文や結合構文はないけれど
例えばTをCopyせずそのまま使うならば
use std::collections::LinkedList;
fn qsort<T: PartialOrd>(mut list: LinkedList<T>) -> LinkedList<T> {
if let Some(pivot) = list.pop_front() {
let (smaller, rest): (LinkedList<T LinkedList<T>) =
list.into_iter().partition(|x| x < &pivot);
// concat
list = qsort(smaller);
list.extend([pivot]);
list.extend(qsort(rest));
}
list
}
fn main() {
let list = LinkedList::from([9, 0, 7, 3, 6, 1, 2, 4, 8, 5]);
println!("{:?}", list);
println!("{:?}", qsort(list));
}
500(3): デフォルトの名無しさん [sage] 2023/10/15(日) 09:39:38.68 ID:M8zy/AR3(1) AAS
Cで書いたプログラムを Rustで書いたらこうなります
っていうのをひたすら集めた本がほしい
569(3): デフォルトの名無しさん [sage] 2023/11/04(土) 12:29:53.92 ID:eFHrirh7(1) AAS
Better C的なRustが欲しい
C++と張り合って仕様が複雑になってる
765(4): デフォルトの名無しさん [sage] 2023/12/30(土) 06:29:39.39 ID:GnED1sKw(1) AAS
Rust勉強中。アノテーション注釈が出てきたところで流行らない理由をなんとなく察する
ヌルポとメモリーリークを防げるから個人開発で使う分にはいいけど。会社で広める気にはならない
学習コスト高いわ
815(4): デフォルトの名無しさん [sage] 2024/01/05(金) 09:40:39.59 ID:K2XmLAOd(1) AAS
Rustで書かれたLinux互換OS「Maestro」が爆誕
外部リンク:softantenna.com
875(3): デフォルトの名無しさん [] 2024/01/19(金) 01:46:37.00 ID:qsekRxP5(1) AAS
プログラミング言語利用実態調査でRustが急落
外部リンク:www.nikkei.com
896(3): デフォルトの名無しさん [sage] 2024/01/19(金) 14:12:09.59 ID:CZFLW0PQ(3/3) AAS
>>894894(1): デフォルトの名無しさん [sage] 2024/01/19(金) 13:47:10.87 ID:vjpbBz8R(4/9) AAS
C/C++ の経験があってそんなに時間かかるか?
「習得」というのがどの程度の基準で見るかにもよるけど
いわゆる the book を一通り読んだ後なら
コンパイラがあまり助けてくれないところ (unsafe) を除けば
マニュアルを見ながら書けばだいたいなんとかなる程度には使えそうなもんだと思うんだが。
最近はpythonで仕事する機会が多くて、C/C++を4年ほど触ってなかったのと、
仕事の後に疲れた頭で勉強したから体力的にキツかったのと。。。
the bookを読むだけで90時間はかかったわ。検索モジュールを開発しようと思ってるんだけど
いきなり実装に入るより読経した方がマシな感じで、regexのコードを読んでる
既に10時間読経に捧げて、あと10時間は追加の読経が必要な感じ
この後、形態素解析エンジンのコードも読む必要があるから、追加で20時間はお勉強する予定であわせて130時間
……重いです
924(3): デフォルトの名無しさん [sage] 2024/01/19(金) 19:12:08.48 ID:SK8TlxrV(2/2) AAS
>>896
Rustは絶壁の学習曲線だから、段階的な学習は難しい。少なくともスタックフレームの動きを意識できないとキツイと思う。
Rustを使った開発も、小さく始める段階的開発とかきついんじゃない?ひたすらスクラップ&ビルド繰り返しそう。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.558s*