公式
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 part20
https://mevius.2ch.net/test/read.cgi/tech/1677771928/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.2ch.net/test/read.cgi/tech/1514107621/
Rust part21
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2023/08/15(火) 22:24:39.45ID:xzxy4cgp423デフォルトの名無しさん
2023/10/06(金) 23:16:24.42ID:tE7CLicd mut 入れたのが間違いなんだろ
424デフォルトの名無しさん
2023/10/06(金) 23:30:10.29ID:hdhWn3/E 関数型に関してはscalaのほうがよっぽど意欲的だよ
def qsort(list: List[Int]): List[Int] = list match
case Nil => Nil
case pivot :: tail =>
val (smaller, rest) = tail.partition(_ < pivot)
qsort(smaller) ::: pivot :: qsort(rest)
たとえば↑こういうのとか
def qsort(list: List[Int]): List[Int] = list match
case Nil => Nil
case pivot :: tail =>
val (smaller, rest) = tail.partition(_ < pivot)
qsort(smaller) ::: pivot :: qsort(rest)
たとえば↑こういうのとか
425デフォルトの名無しさん
2023/10/07(土) 00:34:46.36ID:Hyqci1qG 関数型というよりはリスト型言語だな
426デフォルトの名無しさん
2023/10/07(土) 01:56:24.14ID:a3LzK6ia システムプログラミングのための言語なので純粋に関数型な要素だけを求めるなら別の言語を当たった方が良い
427デフォルトの名無しさん
2023/10/07(土) 02:12:44.80ID:QajUcOD9 リスト型つまりLinkedListをメインにすると利便さと引き換えに遅い問題とガベージが出まくる問題がある
Rustはリスト型メインにしなくて正解
Rustはリスト型メインにしなくて正解
428デフォルトの名無しさん
2023/10/07(土) 04:42:48.81ID:+bTugVnw GCを前提にしない仕様の上に積み上げなくてはならないという側面から見ると、わりかしよくやっている方なんじゃなかろうか……知らんけど
429デフォルトの名無しさん
2023/10/07(土) 06:29:51.58ID:GJ9LXcgc 自称情強底辺者「Rustでhello worldかける俺カコイイ」
真の成功者「スイカゲームでボロ儲けしました」
真の成功者「スイカゲームでボロ儲けしました」
430デフォルトの名無しさん
2023/10/07(土) 06:46:44.80ID:bWLG2vp7 mut無しとはこういうことか
https://play.rust-lang.org/?version=stable&mode=release&edition=2021&gist=a5753729862ae878a1cf011314e90f3e
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));
}
https://play.rust-lang.org/?version=stable&mode=release&edition=2021&gist=a5753729862ae878a1cf011314e90f3e
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));
}
431デフォルトの名無しさん
2023/10/07(土) 09:44:47.17ID:WqNjBTZw まあ今時ランタイム速度でそこまで差がつくことはないわな。
ガベコレの実行タイミングが問題になることは結構あると思うけど。
ガベコレの実行タイミングが問題になることは結構あると思うけど。
432デフォルトの名無しさん
2023/10/07(土) 11:17:12.27ID:fuWtUzBR アロケートしまくリングやな
433デフォルトの名無しさん
2023/10/07(土) 12:06:59.60ID:pov02R// ランタイムサポートが極まってきたからこそ
極めきれない部分の差が目立ってきたんだよ。
極めきれない部分の差が目立ってきたんだよ。
434デフォルトの名無しさん
2023/10/07(土) 14:19:35.27ID:koj+veBs XYZ座標みたいな単純だけどプリミティブでない大量のデータの配列を作りたいときに
1つ1つをオブジェクトにしないといけないGC言語は放り投げたくなる
座標なら最悪プリミティブに分解して自分で並べれば済むけど型が混ざると詰む
1つ1つをオブジェクトにしないといけないGC言語は放り投げたくなる
座標なら最悪プリミティブに分解して自分で並べれば済むけど型が混ざると詰む
435デフォルトの名無しさん
2023/10/07(土) 15:18:57.75ID:AO4ZOvxF436デフォルトの名無しさん
2023/10/07(土) 15:43:47.56ID:Ozx346pn Rustのはmutなしにした場合の問題提起のための悪い例だろ
437デフォルトの名無しさん
2023/10/07(土) 15:51:39.94ID:O3XDw4H3438デフォルトの名無しさん
2023/10/07(土) 16:42:12.14ID:2ow1Jojj ocamlだとこんな感じかな?
let rec qsort = function
| [] -> []
| pivot :: tail ->
let smaller, rest = List.partition ((>) pivot) tail in
qsort smaller @ pivot :: qsort rest
>>424 scala比較のためそのままコピペ
def qsort(list: List[Int]): List[Int] = list match
case Nil => Nil
case pivot :: tail =>
val (smaller, rest) = tail.partition(_ < pivot)
qsort(smaller) ::: pivot :: qsort(rest)
scalaすごい頑張ってると思うわ
let rec qsort = function
| [] -> []
| pivot :: tail ->
let smaller, rest = List.partition ((>) pivot) tail in
qsort smaller @ pivot :: qsort rest
>>424 scala比較のためそのままコピペ
def qsort(list: List[Int]): List[Int] = list match
case Nil => Nil
case pivot :: tail =>
val (smaller, rest) = tail.partition(_ < pivot)
qsort(smaller) ::: pivot :: qsort(rest)
scalaすごい頑張ってると思うわ
439デフォルトの名無しさん
2023/10/07(土) 23:59:36.96ID:QajUcOD9 >>430
RustはそのようにOCamlやScalaと同等に書くことも容易な点がいいな
同時にその方法によりRustで記述すると大量にVec(またはリストを実現する何か)を使い捨てていることが見える
つまりGC言語ではガベージが大量に出る
RustはそのようにOCamlやScalaと同等に書くことも容易な点がいいな
同時にその方法によりRustで記述すると大量にVec(またはリストを実現する何か)を使い捨てていることが見える
つまりGC言語ではガベージが大量に出る
440デフォルトの名無しさん
2023/10/08(日) 02:42:17.66ID:9NUoKPD/ くすくす
441デフォルトの名無しさん
2023/10/08(日) 08:07:41.64ID:WAd1DVRF 同等に書けてないでしょw
442デフォルトの名無しさん
2023/10/08(日) 09:57:45.64ID:ShBUnVvx443デフォルトの名無しさん
2023/10/08(日) 10:16:57.79ID:CrdCteTP 次はHaskellまたはErlangでおながいしまつ
444デフォルトの名無しさん
2023/10/08(日) 10:38:24.03ID:lCt9aeoq in-placeなqsort書いてよ
445デフォルトの名無しさん
2023/10/08(日) 10:39:23.48ID:WAd1DVRF >>443
Haskell
qsort [] = []
qsort (x:xs) = qsort [y | y <- xs, y < x] ++ [x] ++ qsort [y | y <- xs, y >= x]
Erlang
qsort([]) -> [];
qsort([X|Xs]) ->
qsort([ Y || Y <- Xs, Y < X]) ++ [X] ++ qsort([ Y || Y <- Xs, Y >= X]).
Haskell
qsort [] = []
qsort (x:xs) = qsort [y | y <- xs, y < x] ++ [x] ++ qsort [y | y <- xs, y >= x]
Erlang
qsort([]) -> [];
qsort([X|Xs]) ->
qsort([ Y || Y <- Xs, Y < X]) ++ [X] ++ qsort([ Y || Y <- Xs, Y >= X]).
446デフォルトの名無しさん
2023/10/08(日) 12:06:58.68ID:3KZ70qk+ 複オジは常にヒープアロケートするGC言語しか知らないのかな?
特定の言語の機能不足をGC言語の制約のように語るのはやめような
特定の言語の機能不足をGC言語の制約のように語るのはやめような
447デフォルトの名無しさん
2023/10/08(日) 14:27:21.60ID:1klr8jB1 rustより高度なライフタイム管理する言語ってないの?
448デフォルトの名無しさん
2023/10/08(日) 14:53:30.59ID:33/5YUgE 高度なライフタイム管理のベクトルがわからん
全データに参照カウンタをもたせて参照→存在を保証してるGC言語ならたくさんあるし
処理過程を生成する(書かせない)ことでライフタイムを意識させない関数型言語もある
全データに参照カウンタをもたせて参照→存在を保証してるGC言語ならたくさんあるし
処理過程を生成する(書かせない)ことでライフタイムを意識させない関数型言語もある
449デフォルトの名無しさん
2023/10/08(日) 14:57:14.95ID:lcllyLaE >>442
ScalaのListもOCamlの[]も単方向リストであってべクタではないのに唯一気付いていないおじさん
ScalaのListもOCamlの[]も単方向リストであってべクタではないのに唯一気付いていないおじさん
450デフォルトの名無しさん
2023/10/08(日) 15:04:22.44ID:KeQMELAC それはそれとしてScalaのcase classはRustにも欲しいと思うことあり
451デフォルトの名無しさん
2023/10/08(日) 15:32:16.97ID:1klr8jB1452デフォルトの名無しさん
2023/10/08(日) 16:37:56.79ID:lCt9aeoq ランタイムコストなしのライフタイムチェックはシステムプログラミング言語だから必要な話で、そうでない言語ならGCで良い
shared xor mutableの静的な保証はGC言語でも嬉しい性質だと思うが、他の言語で採用例はあるのかね?
shared xor mutableの静的な保証はGC言語でも嬉しい性質だと思うが、他の言語で採用例はあるのかね?
453デフォルトの名無しさん
2023/10/08(日) 18:19:11.05ID:WAd1DVRF enumのリストで書いてみたわ
rust不慣れだから所々おかしいかも
https://ideone.com/0Ro48L
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!("");
}
rust不慣れだから所々おかしいかも
https://ideone.com/0Ro48L
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!("");
}
454デフォルトの名無しさん
2023/10/08(日) 19:36:48.46ID:e3limdE9455デフォルトの名無しさん
2023/10/08(日) 20:05:18.10ID:lCt9aeoq で、みなさんは単方向リストを使う綺麗だけどクソ遅いコードを並べて何がしたいんですか?
456デフォルトの名無しさん
2023/10/08(日) 20:14:55.63ID:BgGDjECm そんなの用途次第だろ
ど素人かよ
ど素人かよ
457デフォルトの名無しさん
2023/10/08(日) 20:19:50.77ID:QzGY7mJQ458デフォルトの名無しさん
2023/10/08(日) 20:59:00.53ID:e3limdE9459デフォルトの名無しさん
2023/10/08(日) 22:12:35.86ID:nH9KI4I/ 赤っ恥オジの言い訳草
460デフォルトの名無しさん
2023/10/08(日) 22:57:55.16ID:1kYUOs3M 入れもの(メモリ)はどのデータ構造でも不可欠だからいずれもゴミが発生するのは仕方ない
ただしリスト(各セル|ノード)に比べてベクタは以下の点で有利
・まとめて確保解放ができる
・next pointer(の容量と処理)が不要
・リニアスキャンが速い
・ランダムインデックスアクセスも速い
そのためRustでもほとんどの用途でベクタが使われリストは少ない
ただしリスト(各セル|ノード)に比べてベクタは以下の点で有利
・まとめて確保解放ができる
・next pointer(の容量と処理)が不要
・リニアスキャンが速い
・ランダムインデックスアクセスも速い
そのためRustでもほとんどの用途でベクタが使われリストは少ない
461デフォルトの名無しさん
2023/10/08(日) 23:00:08.12ID:Li9tDqQF 今どきはCPUキャッシュが効くかどうかが問題だから
462デフォルトの名無しさん
2023/10/08(日) 23:38:45.90ID:F0i6/5MC 三連休使ってrustの勉強してるけど、ようやく慣れてきた
某openGLの本をMacでやっててDSL2のインストールに四苦八苦、、、
なんかこいつだけCargo.tomlの書き方が、、、
急ぎ足せずrustのとこにある蟹表示するやつ写経してクレートの追加覚えた
先は長いね、、、
頑張る
某openGLの本をMacでやっててDSL2のインストールに四苦八苦、、、
なんかこいつだけCargo.tomlの書き方が、、、
急ぎ足せずrustのとこにある蟹表示するやつ写経してクレートの追加覚えた
先は長いね、、、
頑張る
463453
2023/10/09(月) 01:16:03.20ID:VBg3Yonc464デフォルトの名無しさん
2023/10/09(月) 01:21:45.86ID:L6ciWwId465デフォルトの名無しさん
2023/10/09(月) 01:24:15.18ID:TA+AoWAa リストと配列比較してるやつ全員馬鹿です
466デフォルトの名無しさん
2023/10/09(月) 13:24:27.74ID:gMk1hFfQ そんな香具師いたか?
467デフォルトの名無しさん
2023/10/09(月) 18:01:30.12ID:416rm9Ab appendできないListってダサい
468デフォルトの名無しさん
2023/10/09(月) 18:16:49.87ID:TA+AoWAa おるやん!
469デフォルトの名無しさん
2023/10/11(水) 15:06:20.59ID:UxaO0GW9 Rust検索したらゲームの方が出てきてお前じゃないってなって情報収集が捗らない
470デフォルトの名無しさん
2023/10/11(水) 15:25:39.99ID:kTxLNWR8 それで困ったこと今まで一度もないんだがどういう検索でそうなるの?
普段からゲーム関係の検索したりサイト閲覧してたりする?
普段からゲーム関係の検索したりサイト閲覧してたりする?
471デフォルトの名無しさん
2023/10/11(水) 16:05:36.62ID:jfZ9hs4j ゲームの方もやってますね
Rust初心者が簡単なゲーム作ろうとしてまして
(Pythonのpygameでブロック崩し作れる程度)
検索方法がまずいのかもしれませんね
描画したり、画像をはったり、それを縦横動かしたいだけなのですが
icedか?eguiか?みたいなとこまで来てるけど、まだ使い方がよくわからんですね
どこの関数が初期設定の一発実行で、どこの関数が60fpsの毎回実行なのかとか
プロではなく趣味なので言葉選びが毎回曖昧です
Rust初心者が簡単なゲーム作ろうとしてまして
(Pythonのpygameでブロック崩し作れる程度)
検索方法がまずいのかもしれませんね
描画したり、画像をはったり、それを縦横動かしたいだけなのですが
icedか?eguiか?みたいなとこまで来てるけど、まだ使い方がよくわからんですね
どこの関数が初期設定の一発実行で、どこの関数が60fpsの毎回実行なのかとか
プロではなく趣味なので言葉選びが毎回曖昧です
472デフォルトの名無しさん
2023/10/11(水) 17:42:19.71ID:Pu4uPjjn なるほどそういう感じなのか
検索ワードに”game”とかも含んでるなら
月並みだけどprogrammingを足してみたりゲームの方にだけ特徴的なワード(surviveやsurvivalとか)を除外してみたりするといいんじゃないかな
検索ワードに”game”とかも含んでるなら
月並みだけどprogrammingを足してみたりゲームの方にだけ特徴的なワード(surviveやsurvivalとか)を除外してみたりするといいんじゃないかな
473デフォルトの名無しさん
2023/10/11(水) 20:52:08.31ID:OZznE1k0474デフォルトの名無しさん
2023/10/11(水) 23:18:11.74ID:vJm7EO/F >>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));
}
>>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));
}
475デフォルトの名無しさん
2023/10/11(水) 23:57:55.35ID:2xINBvCy はあ
馬鹿なんですね
馬鹿なんですね
476デフォルトの名無しさん
2023/10/12(木) 11:14:39.52ID:u59ybXeV たしかに Rust ゲーム 造り方 で検索するとゲームの方ばっかり出る罠
477デフォルトの名無しさん
2023/10/12(木) 11:17:21.26ID:u59ybXeV >>474
mut 使ったら負け
mut 使ったら負け
478デフォルトの名無しさん
2023/10/12(木) 12:51:53.05ID:5Y8Kw2UP479デフォルトの名無しさん
2023/10/12(木) 12:52:32.93ID:5Y8Kw2UP480デフォルトの名無しさん
2023/10/12(木) 13:19:12.59ID:SguY35qe mut使ったら負けとは俺は思わないが断じて表層的なことではない
本質的に重要な違いだからこそRustでは明確に区別してるわけなので
それにconcatもpartitionもmut使ってない
本質的に重要な違いだからこそRustでは明確に区別してるわけなので
それにconcatもpartitionもmut使ってない
481デフォルトの名無しさん
2023/10/12(木) 13:31:42.25ID:IQy1JHL6 単方向リストと両方向リストの区別もついていない馬鹿だからしょうがないね
482デフォルトの名無しさん
2023/10/12(木) 14:04:37.89ID:29Fh0rnH 標準ライブラリのソース見たら
concatもpartitionもmut使ってるな
最終的にあらゆるmutになるのか
concatもpartitionもmut使ってるな
最終的にあらゆるmutになるのか
483デフォルトの名無しさん
2023/10/12(木) 14:35:37.70ID:+nxBPiMF すべてがmutになる 森鴎外
484デフォルトの名無しさん
2023/10/12(木) 14:56:18.33ID:oQimRC1z 「ボクの考えた最強の汚コードを批判するな!」
485デフォルトの名無しさん
2023/10/12(木) 14:58:53.27ID:X9LcShxS486デフォルトの名無しさん
2023/10/12(木) 15:06:20.95ID:pri3rXDa 複オジが劣化したのだろうか
それとも複オジ劣化版が新たに出現したのだろうか
それとも複オジ劣化版が新たに出現したのだろうか
487デフォルトの名無しさん
2023/10/12(木) 15:24:09.95ID:VkfPx0C5 mutを使わずにできることは読み出しとムーブとコピーだけ
488453
2023/10/12(木) 19:51:44.10ID:viHBcoi7 今度はDartで書いてみた
3.0でパターンマッチがちょっと強化されたらしい?
3.0新登場のスイッチ式の=>の右側には式だけしか書けない?
dartにはそもそもpartitionはない?
というわけで>>445のHaskell方式で書いてみた(程遠いけど)
List qsort(List list) {
return switch (list) {
[] => [],
[var pivot, ...var rest] => qsort(rest.where((x) => x < pivot).toList()) + [pivot] + qsort(rest.where((x) => pivot <= x).toList())
};
}
3.0でパターンマッチがちょっと強化されたらしい?
3.0新登場のスイッチ式の=>の右側には式だけしか書けない?
dartにはそもそもpartitionはない?
というわけで>>445のHaskell方式で書いてみた(程遠いけど)
List qsort(List list) {
return switch (list) {
[] => [],
[var pivot, ...var rest] => qsort(rest.where((x) => x < pivot).toList()) + [pivot] + qsort(rest.where((x) => pivot <= x).toList())
};
}
489453
2023/10/12(木) 23:01:31.11ID:viHBcoi7 こういう書き方もできた
こっちのほうが雰囲気出てるかな?
List qsort(List list) {
return switch (list) {
[] => [],
[var x, ...var xs] => qsort([for (var y in xs) if (y < x) y]) + [x] + qsort([for (var y in xs) if (x <= y) y])
};
}
こっちのほうが雰囲気出てるかな?
List qsort(List list) {
return switch (list) {
[] => [],
[var x, ...var xs] => qsort([for (var y in xs) if (y < x) y]) + [x] + qsort([for (var y in xs) if (x <= y) y])
};
}
490デフォルトの名無しさん
2023/10/13(金) 08:06:18.09ID:q0Ayf65Z >>482
RustはCと同じ高速で動作する手続き型言語だから少なくとも最下層はmutが基本になる
たとえばイテレータからVecへcollectする場合
特殊ケースはunsafe最適化
一般ケースはlet mut vec = Vec::new();してextend
その一方でプログラミングする時はその最下層を意識しなくても知らなくてもいい
mutを必要としないiter.collect()と抽象的に書ける
RustはCと同じ高速で動作する手続き型言語だから少なくとも最下層はmutが基本になる
たとえばイテレータからVecへcollectする場合
特殊ケースはunsafe最適化
一般ケースはlet mut vec = Vec::new();してextend
その一方でプログラミングする時はその最下層を意識しなくても知らなくてもいい
mutを必要としないiter.collect()と抽象的に書ける
491デフォルトの名無しさん
2023/10/13(金) 08:24:52.90ID:NdZOKZ+T 最強Rust始めたわい
mutの話が出てるから質問
シャドーイングっていう性質使えばmutなくても書けそうな気がしてる(まだ書けてない)んだけど
シャドーイングしたときと、mutではメモリの動き何か変わるのかな?と
シャドーイング
let z = x + y;
その後z使って処理
let z = x - y; // z宣言して前回のz上書き
その後z使って処理
mutの話が出てるから質問
シャドーイングっていう性質使えばmutなくても書けそうな気がしてる(まだ書けてない)んだけど
シャドーイングしたときと、mutではメモリの動き何か変わるのかな?と
シャドーイング
let z = x + y;
その後z使って処理
let z = x - y; // z宣言して前回のz上書き
その後z使って処理
492デフォルトの名無しさん
2023/10/13(金) 12:19:34.60ID:tPfYbY0d >>491
それを1億行書いたとする。たぶんスタック溢れるんじゃね?
それを1億行書いたとする。たぶんスタック溢れるんじゃね?
493デフォルトの名無しさん
2023/10/13(金) 12:43:08.68ID:zQ1dnjfM 1億行書く意味が分からんが
そんな問題ではないだろw
そんな問題ではないだろw
494デフォルトの名無しさん
2023/10/13(金) 18:31:34.80ID:Q91zX7Uf ドロップしないの?
495デフォルトの名無しさん
2023/10/13(金) 19:31:02.96ID:/Zwm785x ちょっと前にJSONシリアライズでの最適化の話出たけど
goは空気感が不安になるよな
rust->システムプログラミングよりの言語で、速度やらいろいろうるさそうなやつが
集まってて、そんなやつらの作るライブラリだからパフォーマンスとか心配しなくてよさそう
C#->.NET開発チームが毎年長文ブログでがんばってるアピール
go->言語機能とかほぼ完成しちゃってるんだろうが
アピールもない、この空気感
goは空気感が不安になるよな
rust->システムプログラミングよりの言語で、速度やらいろいろうるさそうなやつが
集まってて、そんなやつらの作るライブラリだからパフォーマンスとか心配しなくてよさそう
C#->.NET開発チームが毎年長文ブログでがんばってるアピール
go->言語機能とかほぼ完成しちゃってるんだろうが
アピールもない、この空気感
496デフォルトの名無しさん
2023/10/13(金) 19:35:26.71ID:/Zwm785x https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-8/
今年の.netのパフォーマンス改善はこれ
goはシンプル言語で標準ライブラリも最小限だから
もうあまりやることないのか?
今年の.netのパフォーマンス改善はこれ
goはシンプル言語で標準ライブラリも最小限だから
もうあまりやることないのか?
497デフォルトの名無しさん
2023/10/14(土) 14:19:51.05ID:MfcWhKX5 >>491
不使用領域は再利用されるから単純な順次処理ならシャドーイングで十分
mutが欲しくなる理由の1つは繰り返し処理だな(長さ不定のリストの集計とか)
関数型言語みたいに再帰使えばmutなしでも何とかなるけど慣れないとややこしい
あとは全部作り直すのが不合理なデータの部分的な書き換えでもmut使いたい
不使用領域は再利用されるから単純な順次処理ならシャドーイングで十分
mutが欲しくなる理由の1つは繰り返し処理だな(長さ不定のリストの集計とか)
関数型言語みたいに再帰使えばmutなしでも何とかなるけど慣れないとややこしい
あとは全部作り直すのが不合理なデータの部分的な書き換えでもmut使いたい
498デフォルトの名無しさん
2023/10/14(土) 19:31:37.47ID:FeWBHDoO for文で値を変えるカウンタとかフラグとかもmutじゃないと書けないな。
まぁ for 文より iter で書けという一派も多いかもしれんけど。
まぁ for 文より iter で書けという一派も多いかもしれんけど。
499デフォルトの名無しさん
2023/10/14(土) 19:57:12.00ID:jlnlui4T モジュールの内部では (性能上の理由で) mut を使っても、
外側に見せるインターフェイスは
(不自然ではない範囲で) mut を避けるのは自然な方針だと思う。
外側に見せるインターフェイスは
(不自然ではない範囲で) mut を避けるのは自然な方針だと思う。
500デフォルトの名無しさん
2023/10/15(日) 09:39:38.68ID:M8zy/AR3 Cで書いたプログラムを Rustで書いたらこうなります
っていうのをひたすら集めた本がほしい
っていうのをひたすら集めた本がほしい
501デフォルトの名無しさん
2023/10/15(日) 10:09:58.67ID:Xnkvwbkm 全銀システムでJavaの信頼が失墜した今こそrustのチャンスだな
502デフォルトの名無しさん
2023/10/15(日) 11:00:17.07ID:2BZrn9hr 全銀はまだCOBOLだろ
ほんといつもいつも嘘ばっかりだな
ほんといつもいつも嘘ばっかりだな
503デフォルトの名無しさん
2023/10/16(月) 10:19:13.28ID:kgcCjrnK504デフォルトの名無しさん
2023/10/16(月) 10:21:08.50ID:kgcCjrnK 全銀協のフォーマットって今も変わってないんだろうけど
半角カタカナだらけでRustで扱うのは大変かも知れないね
半角カタカナだらけでRustで扱うのは大変かも知れないね
505デフォルトの名無しさん
2023/10/16(月) 10:35:49.58ID:enUIFRpv 扱う文字については適当なライブラリを整備すればそんなに問題にならなさそうに思うが
506デフォルトの名無しさん
2023/10/16(月) 11:26:02.88ID:SeIR9j3q507デフォルトの名無しさん
2023/10/16(月) 12:22:46.59ID:SkmcjqYw 半角しかないのに外字とは
508デフォルトの名無しさん
2023/10/16(月) 13:30:20.84ID:kgcCjrnK 今のうちに Rust でハンカクカタカナ自由自在な crate 造っておけば
将来ライセンス料でシッポリ儲かりますか?
将来ライセンス料でシッポリ儲かりますか?
509デフォルトの名無しさん
2023/10/17(火) 11:40:48.89ID:xDsy3kB7 Rustに慣れるとCのifで()付け忘れたわ
510デフォルトの名無しさん
2023/10/19(木) 14:52:32.31ID:rcYEOPS6 Vec の iter() と into_iter() の違いは?
511デフォルトの名無しさん
2023/10/19(木) 14:53:04.92ID:rcYEOPS6 Vec の iter() と into_iter() の違いは?
512デフォルトの名無しさん
2023/10/19(木) 15:12:31.11ID:V7scna43513デフォルトの名無しさん
2023/10/20(金) 01:20:11.96ID:/f3Rr7gK514デフォルトの名無しさん
2023/10/20(金) 06:13:09.90ID:3+q+Er7L Cで安全に書いたときと同じ生成コードにはなるけどRustでは抽象度の高い表現をするからなあ
例えばメモリのある範囲の領域を順に読み取る(書き込む)というC言語だとポインタをインクリメントしていくだけの場合でも
Rustだとまずメモリの領域をスライスという安全な抽象表現で扱い可変性もライフタイムも付随してスライスが指す元の安全に確保されている領域(配列やベクタなど)も必須というところからスタート
そのうえでスライスのイテレータにより必ずその範囲内のみを順に安全に指し示す参照(または可変参照)が次々と得られて順に読み取る(書き込む)ことが達成される
さらにRustではこれをfor文ではなく抽象度の高いイテレータメソッドチェーンで書くことも多いからCコードとの対応はますます難しくなるね
例えばメモリのある範囲の領域を順に読み取る(書き込む)というC言語だとポインタをインクリメントしていくだけの場合でも
Rustだとまずメモリの領域をスライスという安全な抽象表現で扱い可変性もライフタイムも付随してスライスが指す元の安全に確保されている領域(配列やベクタなど)も必須というところからスタート
そのうえでスライスのイテレータにより必ずその範囲内のみを順に安全に指し示す参照(または可変参照)が次々と得られて順に読み取る(書き込む)ことが達成される
さらにRustではこれをfor文ではなく抽象度の高いイテレータメソッドチェーンで書くことも多いからCコードとの対応はますます難しくなるね
515デフォルトの名無しさん
2023/10/20(金) 06:56:18.50ID:/M3RKJCH unsafe {
Rust で C ポインタやりたいなら
let p = *mut hoge;
p+=1;
std::slice::from_raw_part(p. 1)[0] = hage;
}
Rust で C ポインタやりたいなら
let p = *mut hoge;
p+=1;
std::slice::from_raw_part(p. 1)[0] = hage;
}
516デフォルトの名無しさん
2023/10/20(金) 09:04:11.56ID:6mF1sPPt >>513
同じように書けないからこそ対比したものが欲しいと言う話だろうに
同じように書けないからこそ対比したものが欲しいと言う話だろうに
517デフォルトの名無しさん
2023/10/20(金) 09:27:32.12ID:/M3RKJCH >>516
クソでたらめだが真面目に実装するとマジ面倒
>>515 方式だと
#[derive(Debug)]
struct Hoge {a: u8, b: u8, c: u8}
impl Hoge {
pub fn new(a: u8, b: u8, c: u8) -> Self {Hoge{a, b, c}}
}
fn main() {
let hoge: Vec<Hoge> = vec![Hoge::new(1, 2, 3), Hoge::new(4, 5, 6), Hoge::new(7, 8, 9)];
println!("{:?}", hoge);
let mut p = &hoge[0] as *const Hoge as usize;
p += 2 * std::mem::size_of::<Hoge>();
unsafe { std::slice::from_raw_parts_mut(p as *mut Hoge, 1)[0] = Hoge::new(8, 3, 1); }
println!("{:?}", hoge);
}
>>514 方式だと
let p = &hoge[0] as *const Hoge as *mut Hoge;
unsafe { std::slice::from_raw_parts_mut(p, 3)[2] = Hoge::new(8, 3, 1); }
でちょっとマシになるくらい
クソでたらめだが真面目に実装するとマジ面倒
>>515 方式だと
#[derive(Debug)]
struct Hoge {a: u8, b: u8, c: u8}
impl Hoge {
pub fn new(a: u8, b: u8, c: u8) -> Self {Hoge{a, b, c}}
}
fn main() {
let hoge: Vec<Hoge> = vec![Hoge::new(1, 2, 3), Hoge::new(4, 5, 6), Hoge::new(7, 8, 9)];
println!("{:?}", hoge);
let mut p = &hoge[0] as *const Hoge as usize;
p += 2 * std::mem::size_of::<Hoge>();
unsafe { std::slice::from_raw_parts_mut(p as *mut Hoge, 1)[0] = Hoge::new(8, 3, 1); }
println!("{:?}", hoge);
}
>>514 方式だと
let p = &hoge[0] as *const Hoge as *mut Hoge;
unsafe { std::slice::from_raw_parts_mut(p, 3)[2] = Hoge::new(8, 3, 1); }
でちょっとマシになるくらい
518デフォルトの名無しさん
2023/10/20(金) 09:40:03.83ID:2W9ATkqE マクロでウヒヒ
519デフォルトの名無しさん
2023/10/20(金) 11:03:08.72ID:+Ixb2Hv2 近代的な言語の仕組みってのは大規模なプログラムをどうやってまとめるかという方向で進歩してるから
小さなサンプルで比較しても設計理念は身につかんのだ。
小さなサンプルで比較しても設計理念は身につかんのだ。
520デフォルトの名無しさん
2023/10/20(金) 13:13:02.21ID:iA9G36tB 設計理念を身につける話なんて誰もしとらんだろw
521デフォルトの名無しさん
2023/10/20(金) 15:12:25.73ID:+Ixb2Hv2 してないから問題だと述べてるんだが。
俺が学生のときに英語の長文の全ての単語の横に(単語ごとに!)日本語の単語を書いてたやつがいたことを思い出したわ。
本に載る程度の規模(ひとつあたり数ページくらい?)のプログラムを対比するってのはそういうことだよ。
言語の設計理念に基づいた構造こそが重要で、構造を論じるほどの規模にならないならたいした違いは見えてこない。
俺が学生のときに英語の長文の全ての単語の横に(単語ごとに!)日本語の単語を書いてたやつがいたことを思い出したわ。
本に載る程度の規模(ひとつあたり数ページくらい?)のプログラムを対比するってのはそういうことだよ。
言語の設計理念に基づいた構造こそが重要で、構造を論じるほどの規模にならないならたいした違いは見えてこない。
522デフォルトの名無しさん
2023/10/20(金) 16:07:06.67ID:/M3RKJCH CでもPythonでもRustでも全部の行にあほみたいなコメント描く香具師はうざいけど
Rustのcrateでdocsにcomment100%達成するためにはアホなコメント描かされてダサい設計思想だと思う
Rustのcrateでdocsにcomment100%達成するためにはアホなコメント描かされてダサい設計思想だと思う
523デフォルトの名無しさん
2023/10/20(金) 16:34:14.75ID:HySp0Cr6 >>521
日本語の設計理念wが身についてないみたいだなw
日本語の設計理念wが身についてないみたいだなw
524デフォルトの名無しさん
2023/10/20(金) 17:24:55.57ID:/f3Rr7gK unsafe使うならCでいいんだよなw
525デフォルトの名無しさん
2023/10/20(金) 19:40:13.76ID:3+q+Er7L >>524
それは違う
unsafeを使ってsafeなインターフェースを提供する部分だけ人間が安全性を保証すれば
それ以外の部分はすべてRustが安全性を保証してくれる
その方針でRustの標準ライブラリやunsafeを用いる一部クレートが作られている
それは違う
unsafeを使ってsafeなインターフェースを提供する部分だけ人間が安全性を保証すれば
それ以外の部分はすべてRustが安全性を保証してくれる
その方針でRustの標準ライブラリやunsafeを用いる一部クレートが作られている
526デフォルトの名無しさん
2023/10/20(金) 20:06:04.22ID:9sHhryb+527デフォルトの名無しさん
2023/10/21(土) 12:29:35.28ID:sf7W/HH9 関数型最強(キリω
ですねわかります
ですねわかります
528デフォルトの名無しさん
2023/10/21(土) 21:43:10.75ID:sGOhbjn7 Linuxでも、結局のところ「C言語でいいじゃん」という結論になりそうよね
リーヌスもなんかやっぱRustはなぁ・・・ってトーンダウンしてきてるし
リーヌスもなんかやっぱRustはなぁ・・・ってトーンダウンしてきてるし
529デフォルトの名無しさん
2023/10/22(日) 00:35:28.61ID:GiKl9Asx >>528
カーネルなんて低レイヤーのポインタ操作とかビット演算しかしないからな
カーネルなんて低レイヤーのポインタ操作とかビット演算しかしないからな
530デフォルトの名無しさん
2023/10/22(日) 00:50:06.85ID:n0l+NFKj Linux カーネルの中にだって Rust が適している場所も
あるといえば有るだろうけど現時点でそれなりに検証が済んで
安定して動いているものを「置き換え」するほどではないだろうな。
適しているからといって各部を別の言語で書いたりすると
接続箇所で面倒になったりもするし。
あるといえば有るだろうけど現時点でそれなりに検証が済んで
安定して動いているものを「置き換え」するほどではないだろうな。
適しているからといって各部を別の言語で書いたりすると
接続箇所で面倒になったりもするし。
531デフォルトの名無しさん
2023/10/22(日) 11:49:16.17ID:IKvVj0uW カーネルで流行らないならもう流行るところないんじゃ…
532デフォルトの名無しさん
2023/10/22(日) 19:50:36.55ID:NN1UsPSx どの言語からどの言語への場合でも既に動いているものを別の言語に移植するだけだとコストがかかる
それでもスクリプト言語からRustへ置き換えるなら実行速度と省メモリの効果がコストを上回りやすいためよく行われている
一方でC/C++からRustへ換えても実行速度と省メモリの効果はない
だからシステム設計を変えるなど大きな更改タイミングでRust化することが多い
特にマイクロサービス化されているものは個別に更改できるためシステム全体の一部Rust化に向いている
最も向いておらずハードル高いのがモノリシックになっているOSカーネル
その場合でも分離されているデバイスドライバは最近のデバイス複雑化と更新対応の多さからもRust化が向いているため進んでいる
それでもスクリプト言語からRustへ置き換えるなら実行速度と省メモリの効果がコストを上回りやすいためよく行われている
一方でC/C++からRustへ換えても実行速度と省メモリの効果はない
だからシステム設計を変えるなど大きな更改タイミングでRust化することが多い
特にマイクロサービス化されているものは個別に更改できるためシステム全体の一部Rust化に向いている
最も向いておらずハードル高いのがモノリシックになっているOSカーネル
その場合でも分離されているデバイスドライバは最近のデバイス複雑化と更新対応の多さからもRust化が向いているため進んでいる
533デフォルトの名無しさん
2023/10/22(日) 19:58:13.61ID:fijCTFBo534デフォルトの名無しさん
2023/10/22(日) 21:57:00.47ID:xV2fKCwr 構造体をキャストするものでも、hoge_storage_t みたいに最大サイズを規定するパターンと
char foo[0]; を積極的に利用するパターンと 真っ二つにわかれるしねぇ
後者はRustでどうすんだろ
char foo[0]; を積極的に利用するパターンと 真っ二つにわかれるしねぇ
後者はRustでどうすんだろ
535デフォルトの名無しさん
2023/10/22(日) 22:15:56.13ID:fijCTFBo 結局構造体もパケットのバイト列にパックするからね
その時unsafeを使うことになる
その時unsafeを使うことになる
536デフォルトの名無しさん
2023/10/22(日) 22:45:30.49ID:EpprGwAf 構造体はunsafeいらん
タグ無し共用体はunsafe
タグ無し共用体はunsafe
537デフォルトの名無しさん
2023/10/22(日) 23:15:20.26ID:HWj9itUZ 流行るから価値ある、流行らないから価値なしって評価基準はジャパニーズカルチャーのガラパゴス
538デフォルトの名無しさん
2023/10/22(日) 23:23:05.72ID:/1lQw0Ls >>534
後者も普通に表現できるしCとのFFIも可能
後者も普通に表現できるしCとのFFIも可能
539デフォルトの名無しさん
2023/10/22(日) 23:28:57.61ID:zUgjdRO9 Redox(https://www.redox-os.org/)みたいなRust製のUnix系OSプロジェクトならもうあるし
無理してLinuxに食い込む必要はないと思うんだけどLinux開発者でもRust使いたい人はいるんでしょ
Linuxは一部のモジュールがRust製になる程度で中核は最後までCで通すと思う
というかRustで置き換えるなら名前変えてほしい
無理してLinuxに食い込む必要はないと思うんだけどLinux開発者でもRust使いたい人はいるんでしょ
Linuxは一部のモジュールがRust製になる程度で中核は最後までCで通すと思う
というかRustで置き換えるなら名前変えてほしい
540デフォルトの名無しさん
2023/10/23(月) 00:13:38.68ID:tCssLiBK541デフォルトの名無しさん
2023/10/23(月) 05:58:05.37ID:3382hDjx >>533
実際にはCでもバッファオーバーランしないからRustでは、unsafe必要ないでしょ
実際にはCでもバッファオーバーランしないからRustでは、unsafe必要ないでしょ
542デフォルトの名無しさん
2023/10/23(月) 06:59:33.53ID:8gpCEC0e543453
2023/10/24(火) 00:55:17.36ID:Ei0IGfb9 >>500
今度は逆にrustで書いたもの>>453をcで書いてみた
https://ideone.com/j5KR8Y
・参照透過性は考慮していない
・型のパラメータ化?には挑戦してない
・パターンマッチ再現?にも挑戦してない
・クロージャが欲しいところには呼び出し元の文脈を手渡して誤魔化す
・グローバル変数一個使ってノードの再利用を試みてる
・とにかくlist_qsort内部がそれっぽい感じの手順になってたらヨシ
struct node {
int value;
struct node *next;
};
struct node *list_qsort(const struct node *list) {
int pivot;
struct node *sorted = 0, *tail, *smaller, *rest, *a, *b;
if (list) {
pivot = list->value, tail = list->next;
list_partition(&pivot, less_than_context, tail, &smaller, &rest);
sorted = list_append(a = list_qsort(smaller), b = list_cons(pivot, list_qsort(rest)));
list_available_push_all4(smaller, rest, a, b);
}
return sorted;
}
今度は逆にrustで書いたもの>>453をcで書いてみた
https://ideone.com/j5KR8Y
・参照透過性は考慮していない
・型のパラメータ化?には挑戦してない
・パターンマッチ再現?にも挑戦してない
・クロージャが欲しいところには呼び出し元の文脈を手渡して誤魔化す
・グローバル変数一個使ってノードの再利用を試みてる
・とにかくlist_qsort内部がそれっぽい感じの手順になってたらヨシ
struct node {
int value;
struct node *next;
};
struct node *list_qsort(const struct node *list) {
int pivot;
struct node *sorted = 0, *tail, *smaller, *rest, *a, *b;
if (list) {
pivot = list->value, tail = list->next;
list_partition(&pivot, less_than_context, tail, &smaller, &rest);
sorted = list_append(a = list_qsort(smaller), b = list_cons(pivot, list_qsort(rest)));
list_available_push_all4(smaller, rest, a, b);
}
return sorted;
}
544デフォルトの名無しさん
2023/10/24(火) 13:32:38.68ID:oyxcPsiu スレチ
545デフォルトの名無しさん
2023/10/24(火) 16:02:23.69ID:ju9L4gE1 cargo 経由で rustc にコンパイルオプションを渡したいとき
RUSTFLAG=hogehoge
で成功はしたのですがパッケージ全体が再コンパイルされて遅いです
特定のファイルだけにコンパイルオプションを適用したいのですが
cargo にはそういうオプションはありませんか?
RUSTFLAG=hogehoge
で成功はしたのですがパッケージ全体が再コンパイルされて遅いです
特定のファイルだけにコンパイルオプションを適用したいのですが
cargo にはそういうオプションはありませんか?
546デフォルトの名無しさん
2023/10/24(火) 18:21:38.30ID:u/7eM1yW >>545
ありません
ありません
547デフォルトの名無しさん
2023/10/24(火) 20:07:58.68ID:dncTx+4h 大文字小文字が混在する言語って気持ち悪い
548453
2023/10/24(火) 22:19:05.86ID:yQ/jFyOv549デフォルトの名無しさん
2023/10/25(水) 09:06:18.67ID:9oOV85NF >>545
試してないけど
やるとしたら
cmdとかterminal(shell)を2つ以上別ウィンドウで開いておいて
それぞれ別のRUSTFLAG=を設定しておく(環境毎に独立なはず)
片方でbuildしたあと適用したいファイルだけ修正してもう片方でbuildするとうまくいかんかな
試してないけど
やるとしたら
cmdとかterminal(shell)を2つ以上別ウィンドウで開いておいて
それぞれ別のRUSTFLAG=を設定しておく(環境毎に独立なはず)
片方でbuildしたあと適用したいファイルだけ修正してもう片方でbuildするとうまくいかんかな
550デフォルトの名無しさん
2023/10/25(水) 10:10:31.38ID:p3+NCv68 特定のファイルにだけ適用したいコンパイルオプションて何なの?
551デフォルトの名無しさん
2023/10/25(水) 10:43:36.55ID:dKf07X6i crateで分割したらいけるんじゃね
552デフォルトの名無しさん
2023/10/25(水) 11:35:23.44ID:CN7zqSRs そらそうやろと言いたいところだが
今はcrate単位の指定はできなくてパッケージ単位のみ
今はcrate単位の指定はできなくてパッケージ単位のみ
553デフォルトの名無しさん
2023/10/25(水) 13:57:15.42ID:0w7kqvd/ crate で別れてる前提で
その crate を使う2つの bin (まあまあそっくりな main) を造って
それぞれをそれぞれの RUSTFLAGS= で build したら
うまく使い別けられました
とりあえず速度は気にならないからしばらくこれで逝く
アイディア呉れた人thx
その crate を使う2つの bin (まあまあそっくりな main) を造って
それぞれをそれぞれの RUSTFLAGS= で build したら
うまく使い別けられました
とりあえず速度は気にならないからしばらくこれで逝く
アイディア呉れた人thx
554デフォルトの名無しさん
2023/10/26(木) 14:45:03.06ID:6bJ9rmmH しつもんです
cargo publish のときに
warning: package `hoge vN.N.N` in Cargo.lock is yanked in registry `crates-io`, consider updating to a version that is not yanked
って警告が出てて意味は判るんだが
cargo clean してやり直しても package 'hoge vN.N.N' が最新のものに切り替わらない
自分自身の Cargo.toml の dependencies には hoge は描かれていない
どの crate が原因で hoge を要求してるのか知るにはどうすれば良い?
その crate を最新のものにすれば hoge の yank されてないものを取って来てくれるとも限らない訳だが
cargo publish のときに
warning: package `hoge vN.N.N` in Cargo.lock is yanked in registry `crates-io`, consider updating to a version that is not yanked
って警告が出てて意味は判るんだが
cargo clean してやり直しても package 'hoge vN.N.N' が最新のものに切り替わらない
自分自身の Cargo.toml の dependencies には hoge は描かれていない
どの crate が原因で hoge を要求してるのか知るにはどうすれば良い?
その crate を最新のものにすれば hoge の yank されてないものを取って来てくれるとも限らない訳だが
555デフォルトの名無しさん
2023/10/26(木) 15:53:54.89ID:wO29ziTZ cargo treeを使うといいよ
556デフォルトの名無しさん
2023/10/26(木) 21:41:03.08ID:pAbfpEYj Rust で書かれた WebAssembly/Canvas 上の
FlashPlayer のエミュレータ Ruffle の実装が
凄い勢いで進んでるけど
世界の凄腕プログラマも参戦してるみたい。
このスレで貢献してる人ひょっとしている?
エミュレータ実装て武者修行になるのかな。
FlashPlayer のエミュレータ Ruffle の実装が
凄い勢いで進んでるけど
世界の凄腕プログラマも参戦してるみたい。
このスレで貢献してる人ひょっとしている?
エミュレータ実装て武者修行になるのかな。
557デフォルトの名無しさん
2023/10/26(木) 23:18:45.93ID:oN20rU1J エミュレーターを作り始めるスタートは完全な仕様の資料を手にいれることで、それがないことも良くあることだから調査がしんどいんだよ。
そんで実装は仕様通りにやるだけのひたすらに地道な作業だからあまり面白味はない。
動くだけじゃなくて性能を出そうと思ったら色々と工夫の余地はあるんだけど……
そんで実装は仕様通りにやるだけのひたすらに地道な作業だからあまり面白味はない。
動くだけじゃなくて性能を出そうと思ったら色々と工夫の余地はあるんだけど……
558デフォルトの名無しさん
2023/10/27(金) 10:08:58.42ID:d8VwEqUV 古いゲーム機のエミュレータを書いたことがあるが結構面白いぞ
昔のソフトはクロックタイミングに依存することも珍しくないから、性能だけでなく再現精度にも気を配らなくちゃいけない
腕試しとしてはちょうどいいと思うよ
昔のソフトはクロックタイミングに依存することも珍しくないから、性能だけでなく再現精度にも気を配らなくちゃいけない
腕試しとしてはちょうどいいと思うよ
559デフォルトの名無しさん
2023/10/27(金) 12:30:38.77ID:xuiID3+p もっと良いサイトあったんだけど消滅してる?
http://sunlight.cocolog-nifty.com/sunlight/2005/08/post_1ff6.html
http://www.sm.rim.or.jp/~shishido/tick.html
http://sunlight.cocolog-nifty.com/sunlight/2005/08/post_1ff6.html
http://www.sm.rim.or.jp/~shishido/tick.html
560デフォルトの名無しさん
2023/10/27(金) 22:25:37.09ID:2hH60kIl561デフォルトの名無しさん
2023/10/27(金) 22:44:06.00ID:nnq2nBUF web上で再発明するの好きなやつ多いよね
でも失敗率高めじゃないか?
でも失敗率高めじゃないか?
562デフォルトの名無しさん
2023/10/28(土) 14:23:38.78ID:AMpKEF3U 自己鍛錬で再発明するのは好きにすればいいがそれでサーチエンジンの上位を占拠するのはマジ迷惑だ
563453
2023/10/28(土) 18:50:08.51ID:U0JINWpQ >>548 c
https://ideone.com/Rp476I
・ノードへのポインタとしてリストを表現していた(>>548)のを廃止
・共用体でリストを表現したことによりBoxの位置?がRust版(>>453)と同じに
・特に意味もなくループ文を再帰に置き換え
https://ideone.com/Rp476I
・ノードへのポインタとしてリストを表現していた(>>548)のを廃止
・共用体でリストを表現したことによりBoxの位置?がRust版(>>453)と同じに
・特に意味もなくループ文を再帰に置き換え
564デフォルトの名無しさん
2023/10/29(日) 12:47:29.07ID:IsQ6p7Vf uBlacklist が猿人検出阻止してくれるそうだ
sejuku とか techacademy とか KENTA とか入れると良い
sejuku とか techacademy とか KENTA とか入れると良い
565デフォルトの名無しさん
2023/11/03(金) 14:51:57.32ID:fSSaeY5g === 複製おじさん(通称複おじ)について ===
Rustスレを中心に活動し、2023年4月現在で1年以上ム板に住み着くRustacean。無自覚な荒らし。
Rustスレでは、基本的に他住民の意見を聞いて糧とすることなく、自らのコードが最善であると、ID変更自演を交えいつまでも主張し続ける。
同スレで「所有権が複製される」という違和感のある表現を、「違和感がある」とする他住民の意見をすべて否定してしつこく擁護し続けたことから、「複製おじさん」というあだ名が付けられた。
それ以外のム板スレでは、基本的に他住民の意見を聞いて糧とすることなく、Rustこそが最善であると、ID変更自演を交えいつまでも主張し続ける。
その基本戦術は、「GC言語は遅い」の一声でC/C++/Rust以外の言語を否定し、残ったC/C++は安全ではないので、Rustが最善であるとするもの。
しかしながら、Rust以外の言語に関しては、正当な批判を展開するのに十分な知識を持っているとは言いがたい。
本スレPart1では、C++の問題点を指摘しようとして多数の誤り・知識不足を露呈することとなった。特にしつこく食い下がったのが「動的ディスパッチ」に関する誤解である。
https://mevius.5ch.net/test/read.cgi/tech/1677286186/786-799(ID:Evbafc70とID:RiLc+pIfが複製おじさんであると考えられている)
要約すると、通常「条件分岐」と呼ばれるものを「動的ディスパッチ」と呼ぶのが正しいと主張し続けたのである。
常識的にはあり得ない誤解だが、提示されたC++のコードが自らの主張(C++にはパターンマッチが無い)に不都合であると感じたためか、C++のコードを正しく読み解くことができないにもかかわらず脊髄反射的に否定してしまい、その根拠として誤った論理をこじつけてしまったものと思われる。
ちなみにこの後、同種の誤解を持って書き込むID:wHEiYRW7(これはID使用歴的に複製おじさんとは考えにくい)に対して、正しい理解に基づく指摘を行う単発IDが複数出現するが、この中にも複製おじさんが多数含まれていると考えられている。
このように自分の誤りを認識した場合、それを認める書き込みは決して行わず、別人の振りをして最初から正しく理解していた体を装うのも複製おじさんの特徴である。
Rustスレを中心に活動し、2023年4月現在で1年以上ム板に住み着くRustacean。無自覚な荒らし。
Rustスレでは、基本的に他住民の意見を聞いて糧とすることなく、自らのコードが最善であると、ID変更自演を交えいつまでも主張し続ける。
同スレで「所有権が複製される」という違和感のある表現を、「違和感がある」とする他住民の意見をすべて否定してしつこく擁護し続けたことから、「複製おじさん」というあだ名が付けられた。
それ以外のム板スレでは、基本的に他住民の意見を聞いて糧とすることなく、Rustこそが最善であると、ID変更自演を交えいつまでも主張し続ける。
その基本戦術は、「GC言語は遅い」の一声でC/C++/Rust以外の言語を否定し、残ったC/C++は安全ではないので、Rustが最善であるとするもの。
しかしながら、Rust以外の言語に関しては、正当な批判を展開するのに十分な知識を持っているとは言いがたい。
本スレPart1では、C++の問題点を指摘しようとして多数の誤り・知識不足を露呈することとなった。特にしつこく食い下がったのが「動的ディスパッチ」に関する誤解である。
https://mevius.5ch.net/test/read.cgi/tech/1677286186/786-799(ID:Evbafc70とID:RiLc+pIfが複製おじさんであると考えられている)
要約すると、通常「条件分岐」と呼ばれるものを「動的ディスパッチ」と呼ぶのが正しいと主張し続けたのである。
常識的にはあり得ない誤解だが、提示されたC++のコードが自らの主張(C++にはパターンマッチが無い)に不都合であると感じたためか、C++のコードを正しく読み解くことができないにもかかわらず脊髄反射的に否定してしまい、その根拠として誤った論理をこじつけてしまったものと思われる。
ちなみにこの後、同種の誤解を持って書き込むID:wHEiYRW7(これはID使用歴的に複製おじさんとは考えにくい)に対して、正しい理解に基づく指摘を行う単発IDが複数出現するが、この中にも複製おじさんが多数含まれていると考えられている。
このように自分の誤りを認識した場合、それを認める書き込みは決して行わず、別人の振りをして最初から正しく理解していた体を装うのも複製おじさんの特徴である。
566デフォルトの名無しさん
2023/11/03(金) 20:56:04.34ID:uUmiO3VU Generatorはコードがごちゃっとしてたからgen fn/blockはありがたいな
567デフォルトの名無しさん
2023/11/03(金) 22:49:04.51ID:Q6dMbwrG 2024 editionから?
568デフォルトの名無しさん
2023/11/04(土) 04:29:37.91ID:xhYE5yZM Rustの学習を始めたが、所有権面倒くさい。まあでも安全性は高められそうな感じはする。
569デフォルトの名無しさん
2023/11/04(土) 12:29:53.92ID:eFHrirh7 Better C的なRustが欲しい
C++と張り合って仕様が複雑になってる
C++と張り合って仕様が複雑になってる
570デフォルトの名無しさん
2023/11/04(土) 12:45:03.68ID:whQSHNtc571デフォルトの名無しさん
2023/11/04(土) 13:26:02.22ID:ocaBqo/v Rust は別に C++ と張り合ってなんかいないよ。
現実に使うものはどうやったってどこかで汚くなるってだけ。
綺麗なものは使われてないものだ。
現実に使うものはどうやったってどこかで汚くなるってだけ。
綺麗なものは使われてないものだ。
572デフォルトの名無しさん
2023/11/04(土) 14:22:45.66ID:nDDUhOSB573デフォルトの名無しさん
2023/11/05(日) 00:55:20.60ID:Frni44mO >>569
Carbon
Carbon
574デフォルトの名無しさん
2023/11/05(日) 13:27:00.92ID:bq/z7Mod >>567
「gen」予約keyword化はそうだね
「gen」予約keyword化はそうだね
575デフォルトの名無しさん
2023/11/09(木) 15:19:57.39ID:j64EPVX0 すまんが、VSCode上から/examples下にあるものをデバッグしたい場合ってどうやんの?
他人の作ったクレートのコードを読む上で、これを楽にできると個人的にはありがたいんだけど・・・・
他人の作ったクレートのコードを読む上で、これを楽にできると個人的にはありがたいんだけど・・・・
576デフォルトの名無しさん
2023/11/09(木) 22:37:41.41ID:vNSbYVSe バージョンと拡張機能によりそうだけど自分の環境(Windows)だと
examples内でもfn main()の上に
|> Run | Debug
みたいなinlayが表示されてとりあえずそこからデバッグ実行できた
設定作ればほかの起動方法もあるはず
たぶんrust-analyserの機能だけどデバッガは環境依存だからわからん
examples内でもfn main()の上に
|> Run | Debug
みたいなinlayが表示されてとりあえずそこからデバッグ実行できた
設定作ればほかの起動方法もあるはず
たぶんrust-analyserの機能だけどデバッガは環境依存だからわからん
577デフォルトの名無しさん
2023/11/12(日) 02:38:23.29ID:O0gb6uIB gen はいわゆる協調スレッドなのか。
言語機能として取り込むにはちょっと豪華すぎる気もするな。
言語機能として取り込むにはちょっと豪華すぎる気もするな。
578デフォルトの名無しさん
2023/11/12(日) 04:55:58.85ID:2kP6dQwH genはasyncと同じでコルーチンだよね?
そしてasyncと同じく単純な状態マシンで実装だよね?
そしてasyncと同じく単純な状態マシンで実装だよね?
579デフォルトの名無しさん
2023/11/12(日) 07:45:09.87ID:sBWcqg0h >>576
ありがとう!バッチリできたぜ!!!
ありがとう!バッチリできたぜ!!!
580あぼーん
NGNGあぼーん
581デフォルトの名無しさん
2023/11/12(日) 11:30:27.32ID:cviedAAA >>580
既にやってるよ
既にやってるよ
582デフォルトの名無しさん
2023/11/14(火) 12:58:29.06ID:SRCspH78583デフォルトの名無しさん
2023/11/19(日) 15:31:52.34ID:J3g/JpQ/ rust初心者です。
cだとポインタに対してキャストすることで完全にプログラマ任せのキャストが出来ます。
例えば文字列を参照するポインタを強引に数値として解釈させるなど、好きなように出来ます。
rustでは簡単に調べたところparse().unwrap()などが必要だそうです。
rustはcのようにバイナリフォーマットをプログラマ任せにして自由にキャストさせる習慣はないということでしょうか?
cだとポインタに対してキャストすることで完全にプログラマ任せのキャストが出来ます。
例えば文字列を参照するポインタを強引に数値として解釈させるなど、好きなように出来ます。
rustでは簡単に調べたところparse().unwrap()などが必要だそうです。
rustはcのようにバイナリフォーマットをプログラマ任せにして自由にキャストさせる習慣はないということでしょうか?
584デフォルトの名無しさん
2023/11/19(日) 16:23:14.27ID:/G2k3fWt あるよ
585デフォルトの名無しさん
2023/11/19(日) 16:29:48.57ID:eJPqaRZx #[repr(C)]
as *const T
as *mut T
as usize
bytemuck
slice::from_raw_parts
as *const T
as *mut T
as usize
bytemuck
slice::from_raw_parts
586デフォルトの名無しさん
2023/11/19(日) 16:46:38.60ID:ib2hIQe1 バイナリや文字列と内部表現・の相互変換(シリアライズとデシリアライズ)ならば
Rustではdeser crateファミリーを使って専業分離することが多いね
Rustではdeser crateファミリーを使って専業分離することが多いね
587デフォルトの名無しさん
2023/11/19(日) 18:17:50.06ID:b3b61WiC シリアライズ関連のクレートを使った方が楽だし、もうちょっと簡易的にやる場合でも from_le_bytes などの組み合わせで安全にやれるから不必要にプログラマの責任で管理するべきではないよ。
C でもいまどきは高レイヤのプログラムならそんなに気軽に未定義の型変換はしない。(もっとも、高レイヤではあまり C を使わないけど)
C でもいまどきは高レイヤのプログラムならそんなに気軽に未定義の型変換はしない。(もっとも、高レイヤではあまり C を使わないけど)
588デフォルトの名無しさん
2023/11/19(日) 18:43:57.48ID:ib2hIQe1 ごめん、アホなスペルミスしてる
deserでなくてserde
あとserde_bytesやbincodeを併用
deserでなくてserde
あとserde_bytesやbincodeを併用
589デフォルトの名無しさん
2023/11/19(日) 23:58:07.78ID:J3g/JpQ/ 少し調べてより明確に言語化出来ました。
Rustはゼロコストのserderができますか?
Cだとしばしばそれができます。構造体の要素次第ですが。
で、調べてみるとrkyvというフレームワークが近いことを可能にしているようです。
ゼロコピーと謳っていますが、何らかの演算コストが生じているのかどうか。
Cなら構造体を注意深く設計すればキャスト一発で実行時コストゼロでserderが完了するのです。
Rustはゼロコストのserderができますか?
Cだとしばしばそれができます。構造体の要素次第ですが。
で、調べてみるとrkyvというフレームワークが近いことを可能にしているようです。
ゼロコピーと謳っていますが、何らかの演算コストが生じているのかどうか。
Cなら構造体を注意深く設計すればキャスト一発で実行時コストゼロでserderが完了するのです。
590デフォルトの名無しさん
2023/11/20(月) 02:05:15.84ID:ilBq5gGe591デフォルトの名無しさん
2023/11/20(月) 02:16:16.40ID:UjbzCz3W592デフォルトの名無しさん
2023/11/20(月) 02:16:45.62ID:K0+PyRHv #[repr(C)]付けてstruct/enum/unionをCと同じ使い方すればC互換のレイアウトになるはず
593デフォルトの名無しさん
2023/11/20(月) 06:49:29.19ID:dNsGQu4G >>589
Cと同じことがしたいだけならrepr(C)で構造体定義して
std::mem::transmuteでキャストすればいい
rkyvみたいなフレームワークはもっと高度なデータ型(ハッシュマップとか)で同じことをやるためのもの
Cと同じことがしたいだけならrepr(C)で構造体定義して
std::mem::transmuteでキャストすればいい
rkyvみたいなフレームワークはもっと高度なデータ型(ハッシュマップとか)で同じことをやるためのもの
594デフォルトの名無しさん
2023/11/20(月) 08:53:23.51ID:LwcosZwN 抽象度の高いレイヤを挟んでもかなり最適化で消えるよ。
逆に自由なキャストのコストはゼロではない。
ハードウェアの癖、処理系の癖を理解している人がうまくチューニングすれば性能はあがることも多いけどキャストして直接に読み替えたら実行時コストが低くなるとは限らない。
逆に自由なキャストのコストはゼロではない。
ハードウェアの癖、処理系の癖を理解している人がうまくチューニングすれば性能はあがることも多いけどキャストして直接に読み替えたら実行時コストが低くなるとは限らない。
595デフォルトの名無しさん
2023/11/20(月) 13:51:58.80ID:MS7hPbOQ >抽象度の高いレイヤを挟んでもかなり最適化で消えるよ。
それはもちろん判ってて
その上で厳密にゼロじゃないから問題視してんじゃん
それはもちろん判ってて
その上で厳密にゼロじゃないから問題視してんじゃん
596デフォルトの名無しさん
2023/11/20(月) 15:34:39.51ID:JXHwx0JF 具体的にRustを使うメリットよりデメリットが上回る例があるならそれを出さないと話がわからない
色んなバイナリプロトコルもRustで実装されて問題になっていない
色んなバイナリプロトコルもRustで実装されて問題になっていない
597デフォルトの名無しさん
2023/11/20(月) 17:27:20.27ID:cTETCu/a transmuteだとalign合わせるためにコピーする場合がありそうだから
本気でCと同じゼロコストで読み替えするならポインタ(参照じゃない)をとって
as *const T(as *mut T)で目的の型にキャストして参照(&T, &mut T)に戻す感じかな
どうせunsafeだからunion使う方がいいかもしれないけど
本気でCと同じゼロコストで読み替えするならポインタ(参照じゃない)をとって
as *const T(as *mut T)で目的の型にキャストして参照(&T, &mut T)に戻す感じかな
どうせunsafeだからunion使う方がいいかもしれないけど
598デフォルトの名無しさん
2023/11/20(月) 17:54:17.33ID:PG0EBfXZ Cから移植する場合でtagged unionをうまく移植する方法はないだろうか
unsafe使わずに
struct tagged_value {
enum tag t;
union {
hoge h;
fuga f;
} u;
};
みたいなの
unsafe使わずに
struct tagged_value {
enum tag t;
union {
hoge h;
fuga f;
} u;
};
みたいなの
599デフォルトの名無しさん
2023/11/20(月) 18:11:32.44ID:NaWZknyA >>598
enumで
enumで
600デフォルトの名無しさん
2023/11/20(月) 18:17:00.50ID:ieYqPgSw >>595
最適化の話は「どちらにしてもゼロとは限らない」という話のための前ふり。
仮にその場所に限ってはゼロになったとしても周囲の最適化の足を引っ張ることもある。
総合的な速さを出すには諸々を加味したチューニングが必要なので単純にキャストしたほうが速いとは考えるなというのが主旨。
もちろん諸々を考慮して検証した上で実際に速くなることが確かめられるならそれを否定したりはしないよ。割に合うことは少ないとも思うけど。
最適化の話は「どちらにしてもゼロとは限らない」という話のための前ふり。
仮にその場所に限ってはゼロになったとしても周囲の最適化の足を引っ張ることもある。
総合的な速さを出すには諸々を加味したチューニングが必要なので単純にキャストしたほうが速いとは考えるなというのが主旨。
もちろん諸々を考慮して検証した上で実際に速くなることが確かめられるならそれを否定したりはしないよ。割に合うことは少ないとも思うけど。
601デフォルトの名無しさん
2023/11/20(月) 21:13:04.59ID:ojqzhkRS ちゃんと考えるよ。
角度とか
角度とか
602デフォルトの名無しさん
2023/11/20(月) 23:02:22.90ID:QHUUbGYT 重要なのは、Rustで書くと遅くなる(コストがかかる)パターンを、実際に発見できたのかどうか?
もしそのようなパターンを発見できて、(Cによる)速い方法でも安全性に問題がないのならば、
Rustの歴史ではそれを(必要なら)unsafeで記述してライブラリの中に安全に閉じ込めてきた
そのためRustで一般プログラマーがunsafeを使わずに記述しても、ほとんどのケースでCと同等の速さが出る
もしそのようなパターンを発見できて、(Cによる)速い方法でも安全性に問題がないのならば、
Rustの歴史ではそれを(必要なら)unsafeで記述してライブラリの中に安全に閉じ込めてきた
そのためRustで一般プログラマーがunsafeを使わずに記述しても、ほとんどのケースでCと同等の速さが出る
603デフォルトの名無しさん
2023/11/21(火) 04:05:24.41ID:60zWiP9n 個人的な懸念点は処理のゼロコピー化においてCに劣るのか?という点
Rust界隈でゼロコピーフレームワークが色々あるがどういう工夫が行われているのか
調査は時間がかかりすぎるからやらないw
Rust界隈でゼロコピーフレームワークが色々あるがどういう工夫が行われているのか
調査は時間がかかりすぎるからやらないw
604デフォルトの名無しさん
2023/11/21(火) 04:13:54.83ID:60zWiP9n データ転送はCPU上の演算と比較してかなり遅い処理なので
ゼロコピーで劣ると一部の処理でかなり遅くなる
そしてベンチマーク系のプログラムではゼロコピーはあまり問題にならない。
ゼロコピーで劣ると一部の処理でかなり遅くなる
そしてベンチマーク系のプログラムではゼロコピーはあまり問題にならない。
605デフォルトの名無しさん
2023/11/21(火) 04:16:28.76ID:60zWiP9n ゼロコピーが問題になるのはserder、通信
あとたぶんOSの実装でも問題になるはず
だから数学的計算というよりはシステム間の垣根を超えるようなところで問題になる
RustがベンチマークでC並といっても、あくまで数値計算系の話
あとたぶんOSの実装でも問題になるはず
だから数学的計算というよりはシステム間の垣根を超えるようなところで問題になる
RustがベンチマークでC並といっても、あくまで数値計算系の話
606デフォルトの名無しさん
2023/11/21(火) 08:42:33.89ID:UPhRR3yr ゼロコピーってのはオリジナルのバッファ以外には追加でヒープアロケーションをせずに処理をするという意味
607デフォルトの名無しさん
2023/11/21(火) 10:07:46.27ID:ZzleWc4x ウザイからttf_parserのコードでも読んでくれば
608デフォルトの名無しさん
2023/11/21(火) 11:00:12.68ID:HSO31doi unsafe という名前が誤解の元になってる
unsafe に描く内容って結局安全な内容しか描いてはいけない訳だ
そして unsafe は使ってはいけない機能ではなくむしろ積極的に使って良い機能
unsafe に描く内容って結局安全な内容しか描いてはいけない訳だ
そして unsafe は使ってはいけない機能ではなくむしろ積極的に使って良い機能
609デフォルトの名無しさん
2023/11/21(火) 11:55:27.06ID:pNsPVZam こういうやつがいるからこそunsafeという名前に価値があるんだよな
610デフォルトの名無しさん
2023/11/21(火) 12:57:54.74ID:4vFkathr >>605
それらRustで書くことで遅くなった事例がない
むしろ例えばCDN世界トップのCloudflareは
Cで書かれたnginxを全面的にRustで作り直すことで
CPUリソースとメモリリソースを1/3に削減することに成功している
それらRustで書くことで遅くなった事例がない
むしろ例えばCDN世界トップのCloudflareは
Cで書かれたnginxを全面的にRustで作り直すことで
CPUリソースとメモリリソースを1/3に削減することに成功している
611デフォルトの名無しさん
2023/11/21(火) 15:25:53.24ID:OibZ9mzY Cloudflareのやつはnginxがスレッドベースで処理をブロッキングしてしまう(CPU時間とメモリを占有してしまう)から
マイクロスレッドで作り直した=基本設計を大きく変更したというだけで、Rustだからパフォーマンスが向上したというわけではない
マイクロスレッドで作り直した=基本設計を大きく変更したというだけで、Rustだからパフォーマンスが向上したというわけではない
612デフォルトの名無しさん
2023/11/21(火) 16:18:31.31ID:Pb5WKpvw stdをunsafeで検索するとUnsafeCellしか出てこなくて
unsafeな関数の名前がほとんどuncheckedなのは
let x = unsafe { do_something_unsafe() };
だとアホっぽいからかな
unsafeな関数の名前がほとんどuncheckedなのは
let x = unsafe { do_something_unsafe() };
だとアホっぽいからかな
613デフォルトの名無しさん
2023/11/21(火) 18:24:54.78ID:Fzh9NpIU 検索方法が間違ってる
そしてuncheckedはunsafeとは意味が違う
そしてuncheckedはunsafeとは意味が違う
614デフォルトの名無しさん
2023/11/21(火) 23:10:58.28ID:lumDzvUR615デフォルトの名無しさん
2023/11/21(火) 23:28:16.17ID:u3FDf3nL 外部入力をtransmuteとか地雷臭がハンパない
どうぞご安全に〜
どうぞご安全に〜
616デフォルトの名無しさん
2023/11/21(火) 23:39:45.33ID:lumDzvUR transmute使わなくてすむsafeなライブラリ関数が揃ってるからね
617デフォルトの名無しさん
2023/11/25(土) 09:15:59.95ID:rKTwm3uz Rust って同じ変数名なのに違う型に出来るよね?
同じスコープで再定義出来ると言うか上書き出来る
名前が変わらないから便利って思うかも知れないが
気を付けてソース観ていないと途中で型が変わってるやん!ってなる
なかなか嫌な構文だね
可読性低下しない?勘違いしそう
同じスコープで再定義出来ると言うか上書き出来る
名前が変わらないから便利って思うかも知れないが
気を付けてソース観ていないと途中で型が変わってるやん!ってなる
なかなか嫌な構文だね
可読性低下しない?勘違いしそう
618デフォルトの名無しさん
2023/11/25(土) 09:18:00.86ID:rKTwm3uz あと上書きされたとき前のリソースは上書きされたタイミングで消えてない
明示的に drop していれば消えるがしなかったら実は生きたまま
迷惑仕様じゃないかな
明示的に drop していれば消えるがしなかったら実は生きたまま
迷惑仕様じゃないかな
619デフォルトの名無しさん
2023/11/25(土) 10:20:51.65ID:ytuM+CNS >>618
同じスコープ内でシャドウィングする時は意味的に同じものを入れるようにする
前のリソースがすぐにドロップされないのはシャドウィング時にそのリソースへの参照を使う事で不要なアロケーションを避けられるから
同じスコープ内でシャドウィングする時は意味的に同じものを入れるようにする
前のリソースがすぐにドロップされないのはシャドウィング時にそのリソースへの参照を使う事で不要なアロケーションを避けられるから
620デフォルトの名無しさん
2023/11/25(土) 12:38:39.68ID:EEEndPKs シャドウイングされた時に勝手に消える方が迷惑仕様だな
その時点で他から参照されてるかもしれないし
その時点で他から参照されてるかもしれないし
621デフォルトの名無しさん
2023/11/25(土) 13:46:10.54ID:V6cVkJ+M >>617
Rustはプログラマーに優しい強い静的型付けの言語だから型が違えばエラーになるため混乱もなく大丈夫
また、型変換するたびに別の変数名にしなければいけなかった言語よりも便利でプログラミングも快適だよ
Rustはプログラマーに優しい強い静的型付けの言語だから型が違えばエラーになるため混乱もなく大丈夫
また、型変換するたびに別の変数名にしなければいけなかった言語よりも便利でプログラミングも快適だよ
622デフォルトの名無しさん
2023/11/25(土) 16:27:51.72ID:81rqCYd0 Rustの欠点は誰も使ってない所だけ
623デフォルトの名無しさん
2023/11/25(土) 17:24:40.07ID:4EAT4Ovg >>622
どうしてそんな悲しいこと言うの!
どうしてそんな悲しいこと言うの!
624デフォルトの名無しさん
2023/11/25(土) 18:44:41.46ID:vlc4nTzz 誰も使ってないのってカッコいいな
625デフォルトの名無しさん
2023/11/25(土) 23:55:37.33ID:B979bnCG 俺だけが知っている
626デフォルトの名無しさん
2023/11/26(日) 09:12:21.52ID:k38CbPq9 ユーザーが少ないのはアドバンテージだってポール・グレアムも言ってる。
627デフォルトの名無しさん
2023/11/26(日) 09:20:04.49ID:OE1+8Rl8 GAFAMで使われるようになった時点で言語として消え去る可能性は十分下がったし
別にこれ以上使う人増えなくてもいいんじゃないかな
日本のSIerにまで広まるなんてまずないだろうし
別にこれ以上使う人増えなくてもいいんじゃないかな
日本のSIerにまで広まるなんてまずないだろうし
628デフォルトの名無しさん
2023/11/26(日) 10:05:44.56ID:Deg4O8Si 言語じゃないけどBlenderみたいにいつの間にか覇権を取ってたりすることもあり得る
629デフォルトの名無しさん
2023/11/26(日) 11:39:45.82ID:d/KzVdDP おまえが使ってるのに誰も使ってないって可笑しなことを言うのな
もしかしておまえも使ってないだろ?正直に言え
もしかしておまえも使ってないだろ?正直に言え
630デフォルトの名無しさん
2023/11/26(日) 11:42:35.06ID:Deg4O8Si 「俺の周りじゃ」
631デフォルトの名無しさん
2023/11/26(日) 12:18:50.10ID:d/KzVdDP ぼっちってこと?
632デフォルトの名無しさん
2023/11/26(日) 12:23:12.23ID:oOwLuMql Rust「きゃー、私のために争わないで
633デフォルトの名無しさん
2023/11/26(日) 12:32:50.97ID:iMOX0Yuj クズがこっちに移動してきたか
まかせろ
まかせろ
634デフォルトの名無しさん
2023/11/26(日) 13:04:33.25ID:oOwLuMql crateのバージョンが1.0になってないのが多いから、まだまだだなーって思う
635デフォルトの名無しさん
2023/11/27(月) 02:23:02.91ID:hnitA9Px ぼっちざRust
636デフォルトの名無しさん
2023/11/27(月) 03:19:17.53ID:shAL5QFI >>635
ちょっとかっこいいじゃん
ちょっとかっこいいじゃん
637デフォルトの名無しさん
2023/11/27(月) 10:05:45.61ID:7/k6/GSg638デフォルトの名無しさん
2023/11/28(火) 08:31:02.24ID:t7+ip2Xg Rustって名前が良くない
639デフォルトの名無しさん
2023/11/28(火) 08:45:48.68ID:ruCnqVCc Cナントカじゃそれこそカビが生えてる
640デフォルトの名無しさん
2023/12/03(日) 08:34:26.30ID:JMjzgwiz >>638
go-langよりはマシ
go-langよりはマシ
641デフォルトの名無しさん
2023/12/03(日) 18:40:27.28ID:kcDV2U5x go は何が駄目といってネーミングがクソすぎるからな
あとマスコットがキモすぎる
あとマスコットがキモすぎる
642デフォルトの名無しさん
2023/12/03(日) 20:05:06.19ID:KItL/kTG ogleとセットで売り出せていれば多少は救われたかもしれない
文字型runeの中二感は好きなんだけど
文字型runeの中二感は好きなんだけど
643デフォルトの名無しさん
2023/12/08(金) 13:43:21.24ID:QsZXn/jV VSCodeのrust_analyzerが、全く関係のないC#のプロジェクトでも勝手に動き始めるようになっちゃった
みんなのところどう?他の言語とか使ってたら起動しちゃったりしてる???
みんなのところどう?他の言語とか使ってたら起動しちゃったりしてる???
644デフォルトの名無しさん
2023/12/08(金) 15:21:20.43ID:FH+GH+Zi645デフォルトの名無しさん
2023/12/10(日) 04:46:02.96ID:RGphax9G ʕ◔ϖ◔ʔ < お呼びですか?
646デフォルトの名無しさん
2023/12/10(日) 11:57:04.81ID:1MxEINjf つべでrust検索するとゲームばっかり出る
647デフォルトの名無しさん
2023/12/21(木) 16:58:33.82ID:HvDn5p2W GAFAMで使われてるから廃れることないし、
コミュニティに変な人が入って来ない方が居心地が良いまである
コミュニティに変な人が入って来ない方が居心地が良いまである
648デフォルトの名無しさん
2023/12/21(木) 17:12:16.21ID:JI0UYSEL gopher はちいかわと同じヤバみを感じる
649デフォルトの名無しさん
2023/12/21(木) 17:13:31.75ID:HvDn5p2W 言語のマスコットネタは寒いよなあ
650デフォルトの名無しさん
2023/12/22(金) 13:35:06.75ID:lJtOGqn+ カニのフェリスも割りと一般的な名前
651デフォルトの名無しさん
2023/12/25(月) 09:35:30.12ID:734EcmtL 「Rust」言語向けの“ビジュアルタイムトラベルデバッガー”「FireDBG」が公開
https://forest.watch.impress.co.jp/docs/news/1557204.html
https://forest.watch.impress.co.jp/docs/news/1557204.html
652デフォルトの名無しさん
2023/12/25(月) 10:28:47.95ID:7mXOqNeO タイムトラベル?使い物になるのか?
653デフォルトの名無しさん
2023/12/25(月) 12:40:39.37ID:Sk+Bp6T/ タイムトラベル知らんのか
654デフォルトの名無しさん
2023/12/26(火) 01:14:24.20ID:79CvGGY2 >>652
CやC++やJavaでも昔からコールスタックは遡れたけど、あれのビジュアル良くしたやつとは違うのかね?
CやC++やJavaでも昔からコールスタックは遡れたけど、あれのビジュアル良くしたやつとは違うのかね?
655デフォルトの名無しさん
2023/12/26(火) 01:58:52.00ID:DHuhCQvi656デフォルトの名無しさん
2023/12/26(火) 04:22:44.20ID:hadQuCYF657デフォルトの名無しさん
2023/12/26(火) 04:22:50.25ID:hadQuCYF658デフォルトの名無しさん
2023/12/26(火) 08:35:59.69ID:P1ddGMJS >>656
セマンティックバージョニングのせいだよ。
バージョンナンバーの付け方は基準があって互換性が維持されるときとされないときで数値の上げかたが違う。
しかしメジャーバージョンがゼロのときは基準の適用外で勝手にしていいことになってる。
初期は試行錯誤があって当然だからね。
キッチリした管理なんかしたくないからまだまだ初期だという体裁でゼロのままにしたほうが楽なんだよ。
セマンティックバージョニングのせいだよ。
バージョンナンバーの付け方は基準があって互換性が維持されるときとされないときで数値の上げかたが違う。
しかしメジャーバージョンがゼロのときは基準の適用外で勝手にしていいことになってる。
初期は試行錯誤があって当然だからね。
キッチリした管理なんかしたくないからまだまだ初期だという体裁でゼロのままにしたほうが楽なんだよ。
659デフォルトの名無しさん
2023/12/26(火) 08:50:16.75ID:RJv1OlmX660デフォルトの名無しさん
2023/12/26(火) 09:58:50.36ID:4qW9SvtE Rustの要であるfutures futures-coreなども0.3のままだな
hyperは先月ようやく正式1.0になり先週1.1になった
h2が0.3から0.4に上がった
hyperは先月ようやく正式1.0になり先週1.1になった
h2が0.3から0.4に上がった
661デフォルトの名無しさん
2023/12/26(火) 10:02:59.91ID:QVgSLMrU どうでもいいな
662デフォルトの名無しさん
2023/12/26(火) 11:10:33.20ID:rdxjbOn3 メジャーバージョンが0のライブラリなんて怖くてよう使わん
Julia並みの破壊的変更が来ても文句言えんからな
Julia並みの破壊的変更が来ても文句言えんからな
663デフォルトの名無しさん
2023/12/26(火) 11:17:02.90ID:RJv1OlmX そういう日が来たら全部壊して書き直した方が早いよ
自分の書いてる所の効率も洗練されて良くなるし
自分の書いてる所の効率も洗練されて良くなるし
664デフォルトの名無しさん
2023/12/26(火) 11:53:58.51ID:druMhfTB まあこういう感じの真面目にサポートとかする気のない人しか使ってない言語なんだろうな
665デフォルトの名無しさん
2023/12/26(火) 12:09:12.16ID:aCwAChA1 >>656
それ他の言語でも散見されるぞ
1.0は枯れ切った後に出て実質でかい機能追加は行わなくなったところでつけることが多い
大抵凄腕の人のライブラリに多いような気がする
SemVerが浸透する前からこの状態だったし
それ他の言語でも散見されるぞ
1.0は枯れ切った後に出て実質でかい機能追加は行わなくなったところでつけることが多い
大抵凄腕の人のライブラリに多いような気がする
SemVerが浸透する前からこの状態だったし
666デフォルトの名無しさん
2023/12/26(火) 15:06:21.44ID:iSUEMnuj Inkscapeは一生1.0に上がらないと思ってた
667デフォルトの名無しさん
2023/12/26(火) 16:49:51.67ID:KvBUmVJg GitHub Issueが2627件あるZigはどうするつもりなんだろう
668デフォルトの名無しさん
2023/12/26(火) 17:19:43.95ID:Y/g/LC26 どうでもいいな
ライブラリの質はSemverで測るものじゃないから
ライブラリの質はSemverで測るものじゃないから
669デフォルトの名無しさん
2023/12/26(火) 17:33:22.23ID:E/z8PERd ライブラリの質にsemver考慮しない人間、仕事にRust使う気がなさそう
趣味プログラムで一年も生かす気がないコードならまあわかる
仕事で限られた工数で長期サポートするならsemver気にしないはありえん
まあRustなんて所詮趣味プログラミング向けなのかもな
まともな仕事には使えん
趣味プログラムで一年も生かす気がないコードならまあわかる
仕事で限られた工数で長期サポートするならsemver気にしないはありえん
まあRustなんて所詮趣味プログラミング向けなのかもな
まともな仕事には使えん
670デフォルトの名無しさん
2023/12/26(火) 17:36:00.58ID:APrQ9KVs 個々のバージョンにおいて出来が良いかどうかはともかくとして、
長期的な互換性に対する姿勢を測る指針のひとつにはなる。
長期的な互換性に対する姿勢を測る指針のひとつにはなる。
671デフォルトの名無しさん
2023/12/26(火) 17:43:23.74ID:AKSTTleD672デフォルトの名無しさん
2023/12/26(火) 18:34:35.78ID:6dPf9R/w ライブラリを選ぶときや使うときには当然Semverは気にする
でもそれは質を測るものではない
その違いが分からないとか理解に苦しむ
ま、どうでもいいけど
でもそれは質を測るものではない
その違いが分からないとか理解に苦しむ
ま、どうでもいいけど
673デフォルトの名無しさん
2023/12/26(火) 18:42:19.39ID:krXurI2c rustを使う人は、みんな凄腕で無ければ自分で実装するイメージ。
674デフォルトの名無しさん
2023/12/26(火) 20:02:46.87ID:E/z8PERd675デフォルトの名無しさん
2023/12/26(火) 20:12:35.91ID:RJv1OlmX 出来たばっかりの言語にやってきて
1系になってるライブラリまるでない使えねー!
お前はJavaに帰れ
1系になってるライブラリまるでない使えねー!
お前はJavaに帰れ
676デフォルトの名無しさん
2023/12/26(火) 20:20:41.08ID:E/z8PERd >>675
古いって言ってももう開発開始から17年なんだよな
Javaリリースから27年であり、正直そこまで差はないだろ
正式リリースからは8年だけど、リリースが遅かったことを評価することは出来んし、正直そこまで差はないと思わざるを得ない
正直、いつまで新しい言語みたいな顔してるんだよって気持ちだ
まるで自分を若いと勘違いしているおっさんみたいだ
古いって言ってももう開発開始から17年なんだよな
Javaリリースから27年であり、正直そこまで差はないだろ
正式リリースからは8年だけど、リリースが遅かったことを評価することは出来んし、正直そこまで差はないと思わざるを得ない
正直、いつまで新しい言語みたいな顔してるんだよって気持ちだ
まるで自分を若いと勘違いしているおっさんみたいだ
677デフォルトの名無しさん
2023/12/26(火) 20:30:47.94ID:rdxjbOn3 しかしJavaに帰れってのも悲しい発言だな
結局仕事ならJavaって>>675も思ってるってことなんだもんな
結局仕事ならJavaって>>675も思ってるってことなんだもんな
678デフォルトの名無しさん
2023/12/26(火) 20:34:34.53ID:4qW9SvtE 他の言語と比較したい人は言語比較スレへ
アンチ活動したい人はアンチスレへ
アンチ活動したい人はアンチスレへ
679デフォルトの名無しさん
2023/12/26(火) 22:38:40.65ID:ewLNJPek >>674
メジャーバージョンが1.0以上かどうかはサポート品質を測る指標にならないんだよ
実際にいろんなライブラリをきちんと調べて使った経験があれば誰にでもわかる常識的なこと
エアプで批判だけしたかったのだとしたらもう少し別の観点から攻めた方がいい
メジャーバージョンが1.0以上かどうかはサポート品質を測る指標にならないんだよ
実際にいろんなライブラリをきちんと調べて使った経験があれば誰にでもわかる常識的なこと
エアプで批判だけしたかったのだとしたらもう少し別の観点から攻めた方がいい
680デフォルトの名無しさん
2023/12/26(火) 23:11:29.12ID:exfh4uMB >>679
いや仕様が安定しているというのはオープンなライブラリが提供可能な最大のサポートだが
まあでもそう思わない分野があるのは理解できるよ
多分君の業界では一度書いたコードが1年以上使われることはないのだろう
そういう業界ではライブラリが変わりまくって新機能が追加されることをサポートと呼ぶだろうし、それはまあわからんではない
でも0.9で止めるみたいな、特に新機能付けるわけでもないけどfixする気もありません。好きな時に変えたいですみたいなのはサポートとは程遠いよね?
いや仕様が安定しているというのはオープンなライブラリが提供可能な最大のサポートだが
まあでもそう思わない分野があるのは理解できるよ
多分君の業界では一度書いたコードが1年以上使われることはないのだろう
そういう業界ではライブラリが変わりまくって新機能が追加されることをサポートと呼ぶだろうし、それはまあわからんではない
でも0.9で止めるみたいな、特に新機能付けるわけでもないけどfixする気もありません。好きな時に変えたいですみたいなのはサポートとは程遠いよね?
681デフォルトの名無しさん
2023/12/26(火) 23:13:25.69ID:exfh4uMB 0.9は関係なかったな
682デフォルトの名無しさん
2023/12/27(水) 00:41:46.65ID:3CBetLUr683デフォルトの名無しさん
2023/12/27(水) 00:49:37.20ID:JhhYq7wG >>682
書いてないことを読み込んで妄想で勝手にまとめる読解力すごいな
書いてないことを読み込んで妄想で勝手にまとめる読解力すごいな
684デフォルトの名無しさん
2023/12/27(水) 00:53:03.07ID:6D5uPlZV >>682
まぁワッチョイスレから逃げ回ってるような荒らしなんだから構うのはやめとこうぜ
まぁワッチョイスレから逃げ回ってるような荒らしなんだから構うのはやめとこうぜ
685デフォルトの名無しさん
2023/12/27(水) 05:17:40.43ID:/OnGyPrY そこまでNGされるのが嫌なのか
686デフォルトの名無しさん
2023/12/27(水) 21:49:50.71ID:feQ9KdG1 自然淘汰とかいうけど
それを人為的にやったらただの私刑じゃないかね
それを人為的にやったらただの私刑じゃないかね
687デフォルトの名無しさん
2023/12/27(水) 22:20:54.47ID:/OnGyPrY 改行NGにすれば全部消えるよ
俺は一時期それにしてたけどおもちゃが見えなくなるのは寂しいからやめた
どうしても消したい場合はそれ推奨
俺は一時期それにしてたけどおもちゃが見えなくなるのは寂しいからやめた
どうしても消したい場合はそれ推奨
688デフォルトの名無しさん
2023/12/27(水) 22:55:48.52ID:+Ixmj89w Polonius期待
689デフォルトの名無しさん
2023/12/28(木) 08:10:24.28ID:7EmcMJDG 1.0 出てても信頼できるかどうかは結局のところ内情ちゃんと見ないとわからないからなぁ。
パッチバージョンで破壊的な事するOSSはとても多い。
パッチバージョンで破壊的な事するOSSはとても多い。
690デフォルトの名無しさん
2023/12/28(木) 08:35:00.47ID:uitX+xsl >>689
Rustならば
①バージョン上がろうがバージョン指定のまま使い続けられる
➁ソース内のテスト及びカバレッジの仕組により意図しない破壊的ミスを防げる
➂意図した破壊的変更は1.xから2.0へ上げるルールが守られているため①により1.*指定で安心して使える
Rustならば
①バージョン上がろうがバージョン指定のまま使い続けられる
➁ソース内のテスト及びカバレッジの仕組により意図しない破壊的ミスを防げる
➂意図した破壊的変更は1.xから2.0へ上げるルールが守られているため①により1.*指定で安心して使える
691デフォルトの名無しさん
2023/12/28(木) 09:01:37.54ID:JG4/aLYi そのルールが厳格に守られてなんかいないって話なんやが。
692デフォルトの名無しさん
2023/12/28(木) 09:05:11.24ID:tRLYlD1D 1.0を超えたら信頼出来るなんて言ってる奴は居ないんだよな
1.0を超えてないのは問題外だが
1.0を超えてないのは問題外だが
693デフォルトの名無しさん
2023/12/28(木) 11:02:26.82ID:TCyyQhqN694デフォルトの名無しさん
2023/12/28(木) 11:34:37.14ID:PHYdezLP695デフォルトの名無しさん
2023/12/28(木) 11:35:52.30ID:PHYdezLP お前が勝手に信頼しているだけで、開発者も想定していない信頼を受けて困っているだろう
696デフォルトの名無しさん
2023/12/28(木) 11:47:36.08ID:PHYdezLP 普通に考えて欲しいんだが、自分がライブラリ開発者の立場だったとして、1.0に上げていないライブラリを安定してて信頼できるものとして使うユーザーがいたら「ちょっと待って」って思うだろ
697デフォルトの名無しさん
2023/12/28(木) 11:54:18.66ID:jeZ/sYb6 使わせてもらってる立場から、使ってやってるに増長するキッズ
文句言うならサポート契約でも結んでからにしろクズ
文句言うならサポート契約でも結んでからにしろクズ
698デフォルトの名無しさん
2023/12/28(木) 11:58:34.84ID:uitX+xsl Rustと関係ない話なら他のスレでやれ
ここで話すなら具体的にRustのどのクレートの話か示せ
ここで話すなら具体的にRustのどのクレートの話か示せ
699デフォルトの名無しさん
2023/12/28(木) 11:59:02.76ID:N5v1piyg バージョン関係なくTHIS SOFTWARE IS PROVIDED "AS IS"なライセンスのライブラリでなに勘違いしてんだろこいつとは思う
700デフォルトの名無しさん
2023/12/28(木) 12:00:19.07ID:N5v1piyg701デフォルトの名無しさん
2023/12/28(木) 12:00:19.20ID:PHYdezLP 開発者の意思表示を正しく読めよ
1.0になってないものを勝手に信頼するな
それはユーザーの心構えが出来ていない
1.0になってないものを勝手に信頼するな
それはユーザーの心構えが出来ていない
702デフォルトの名無しさん
2023/12/28(木) 12:02:39.92ID:jJTXzrLr703デフォルトの名無しさん
2023/12/28(木) 12:07:24.88ID:N5v1piyg705デフォルトの名無しさん
2023/12/28(木) 12:15:29.31ID:PHYdezLP >>703
不十分なのが特定の機能だけなら全体を1.0に上げてからその機能をexperimentalとして提供して良いだろ
だから特定の機能が不安定とかはバージョンニングと独立では?
俺なんか勘違いしてるか?
不十分なのが特定の機能だけなら全体を1.0に上げてからその機能をexperimentalとして提供して良いだろ
だから特定の機能が不安定とかはバージョンニングと独立では?
俺なんか勘違いしてるか?
706デフォルトの名無しさん
2023/12/28(木) 12:19:43.58ID:uitX+xsl 具体的にどのクレートの話か出せない時点で机上の空論
707デフォルトの名無しさん
2023/12/28(木) 12:25:11.39ID:N5v1piyg >>705
具体的な領域の限定や条件の明示なく絶対的な「信頼」が存在すると思っている
それがv1リリースで示されると思っている、ってあたりを勘違いしてるんじゃないかな……
セキュリティを語るときに「この前提が崩れない限り」安全としか語れないのと似ている
具体的な領域の限定や条件の明示なく絶対的な「信頼」が存在すると思っている
それがv1リリースで示されると思っている、ってあたりを勘違いしてるんじゃないかな……
セキュリティを語るときに「この前提が崩れない限り」安全としか語れないのと似ている
708デフォルトの名無しさん
2023/12/28(木) 12:30:33.09ID:PHYdezLP709デフォルトの名無しさん
2023/12/28(木) 12:35:25.46ID:N5v1piyg710デフォルトの名無しさん
2023/12/28(木) 12:35:38.49ID:ySYWG+kx お前まともにRust使ったことないだろう
なんでこのスレにいるの?
なんでこのスレにいるの?
711デフォルトの名無しさん
2023/12/28(木) 12:39:55.64ID:9fQ265/7 仕様の安定度を知りたいなら1.0未満かどうかなんてゴミのような基準使わなくても他にいくらでもマシな方法があるだろうに
712デフォルトの名無しさん
2023/12/28(木) 12:43:17.71ID:PHYdezLP713デフォルトの名無しさん
2023/12/28(木) 12:46:56.09ID:N5v1piyg714デフォルトの名無しさん
2023/12/28(木) 12:49:05.73ID:PHYdezLP >>713
絶対的な信頼が可能なものなど存在しないのが当たり前なので俺はこれまで話題にも上げなかったが、どうしてもその話をしたいようなので、そんなものはないという点については当たり前のこととして同意することをここに記す
絶対的な信頼が可能なものなど存在しないのが当たり前なので俺はこれまで話題にも上げなかったが、どうしてもその話をしたいようなので、そんなものはないという点については当たり前のこととして同意することをここに記す
715デフォルトの名無しさん
2023/12/28(木) 12:50:06.29ID:3VbosFG3 ほんとにどうでもいい話だったな
716デフォルトの名無しさん
2023/12/28(木) 12:52:12.25ID:DH0jKNBE 最近のMicrosoftやApple、Googleなんて安定しているとはいいがたく商用でも責任なんて取らないがみんな使っている
717デフォルトの名無しさん
2023/12/28(木) 14:56:05.00ID:PHYdezLP ほんとうにどうでも良い話だったな
俺に噛みついてきた人間、逆裏対偶理解していない数IA未履修者と、わざわざ1.0未満で止めているものを勝手に信頼し始めるやべー奴しかいなかった
俺に噛みついてきた人間、逆裏対偶理解していない数IA未履修者と、わざわざ1.0未満で止めているものを勝手に信頼し始めるやべー奴しかいなかった
718デフォルトの名無しさん
2023/12/28(木) 15:03:10.32ID:13cJB/jM やっぱりワッチョイは必要だという結論しか出て来ない
ワッチョイ無しは荒らしに構うから伸びてるだけだわ……
ワッチョイ無しは荒らしに構うから伸びてるだけだわ……
719デフォルトの名無しさん
2023/12/28(木) 15:54:11.64ID:uitX+xsl720デフォルトの名無しさん
2023/12/28(木) 17:10:51.72ID:QN4uwoNP721デフォルトの名無しさん
2023/12/28(木) 20:36:54.93ID:JQwnhIVp722デフォルトの名無しさん
2023/12/29(金) 08:33:17.51ID:CCwb5Mxd バージョン0.9は「信頼してはいけない」という解釈が可能
複数通りの解釈を発生させた戦犯は謝罪するべきという解釈も可能
複数通りの解釈を発生させた戦犯は謝罪するべきという解釈も可能
723デフォルトの名無しさん
2023/12/29(金) 08:38:26.10ID:sHM61QvB 0.1.234 みたいにパッチバージョン爆発させてる OSS は継続性という点でわりと信頼感がある。
724デフォルトの名無しさん
2023/12/29(金) 09:12:11.91ID:a+GKJrq8 たしかに234.0.0と0.1.234なら1.0未満とはいえ後者のほうがいいな
725デフォルトの名無しさん
2023/12/29(金) 09:59:51.90ID:CCwb5Mxd セマンティックだから1通り以上の解釈がある
無意味かつ無リスクな数字にすれば0通り
無意味かつ無リスクな数字にすれば0通り
726デフォルトの名無しさん
2023/12/29(金) 10:19:20.55ID:DHnfEKbi >バージョン0.9は「信頼してはいけない」という解釈が可能
じゃ0.10にすればいいんですねww
じゃ0.10にすればいいんですねww
727デフォルトの名無しさん
2023/12/29(金) 10:25:18.94ID:f2oltWq4 >>723
誰もがお行儀良くone by oneでincrementしてるとは限らないよ
誰もがお行儀良くone by oneでincrementしてるとは限らないよ
728デフォルトの名無しさん
2023/12/29(金) 10:30:28.27ID:CUdroGt9 ライブラリを選ぶときは過去にリリースしたバージョン数、期間、頻度、メンテナンス状況、リリースノートの内容、ドキュメントの内容、Dependencies、Dependentsあたりの基本的項目くらいはみんな確認するよね?
バージョン番号だけで評価しようとする意味がわからない
バージョン番号だけで評価しようとする意味がわからない
729デフォルトの名無しさん
2023/12/29(金) 10:36:02.78ID:0cvltfsQ730デフォルトの名無しさん
2023/12/29(金) 11:52:32.00ID:fWvRNSV1 急に「だけで」みたいな条件を脳内補完し始める人間、数IA未履修者っぽい気配がする
731デフォルトの名無しさん
2023/12/29(金) 11:57:48.80ID:gPoT6KCM732デフォルトの名無しさん
2023/12/29(金) 12:12:05.81ID:PikwmNJc 番号見てあれこれ想像してないで受け入れテスト書けよ
733デフォルトの名無しさん
2023/12/29(金) 12:18:04.06ID:pF6WWzLY >>732
ほんとそれ
あちこちに直接組み込んだら
別ライブラリ使いたいの度に全部書き直しやんけ
自前のちょっとしたラッパー書いて
同プロジェクトから呼ぶときはラッパー通せば良くね?
一度バージョン上げてみてテスト通らないので、時間出来るまで見送りですねーってやれば終わり
ほんとそれ
あちこちに直接組み込んだら
別ライブラリ使いたいの度に全部書き直しやんけ
自前のちょっとしたラッパー書いて
同プロジェクトから呼ぶときはラッパー通せば良くね?
一度バージョン上げてみてテスト通らないので、時間出来るまで見送りですねーってやれば終わり
734デフォルトの名無しさん
2023/12/29(金) 12:42:41.12ID:1/HEfF20 ちょっとH2とH2に依存しているライブラリの使っている機能全てのラッパー書いてラッパーのメンテナンスしてくれる人いるー?
できれば別ライブラリ使いたくなった時も対応してくれるいいなー
できれば別ライブラリ使いたくなった時も対応してくれるいいなー
735デフォルトの名無しさん
2023/12/29(金) 12:45:01.14ID:gPoT6KCM736デフォルトの名無しさん
2023/12/29(金) 13:03:50.04ID:ymW7FjRY737デフォルトの名無しさん
2023/12/29(金) 13:50:41.57ID:CCwb5Mxd 標準ライブラリのたぐいを自作ライブラリでラップするのは
自己肯定感というか個人主義の成功体験がないと難しいんじゃないか
自己肯定感というか個人主義の成功体験がないと難しいんじゃないか
738デフォルトの名無しさん
2023/12/29(金) 14:08:03.03ID:5mnDPveJ ぽまいらGRUBも使ってなかったの?
あれなんかあんな便利なのにずーっと0.9だったでしょ
あんなに人類に役立つソフトなかなかないで
あれなんかあんな便利なのにずーっと0.9だったでしょ
あんなに人類に役立つソフトなかなかないで
739デフォルトの名無しさん
2023/12/29(金) 14:12:05.35ID:gPoT6KCM ラップすることは本質ではなくただ単にラップするのは本末転倒
抽象化のために自分側の関数をそれぞれ作ってその中に外部ライブラリを閉じ込めるのが一般的
結果的にラップの一形態となっているにすぎない
抽象化のために自分側の関数をそれぞれ作ってその中に外部ライブラリを閉じ込めるのが一般的
結果的にラップの一形態となっているにすぎない
740デフォルトの名無しさん
2023/12/29(金) 14:12:37.90ID:Y5pppiMt GRUBの仕様が変わったら面倒って状態になったことないので流石に別の話では
741デフォルトの名無しさん
2023/12/29(金) 16:21:20.54ID:GcW4fAIp742デフォルトの名無しさん
2023/12/29(金) 16:40:37.66ID:fjXA5V8+ >>729
>「だけで」と言ってるやつはいないよ。
「だけで」と言ってるやつはいないけど「だけで」判断してるマヌケはいるよね?
まぁほぼ君だけなんだけどさ↓
「メジャーバージョンが0のライブラリなんて怖くてよう使わん」
「0.9で止めるみたいな、特に新機能付けるわけでもないけどfixする気もありません。好きな時に変えたいですみたいなのはサポートとは程遠い」
「1.0を超えてないのは問題外」
「1.0に上げていないライブラリを安定してて信頼できるものとして使うユーザーがいたら「ちょっと待って」って思うだろ」
「1.0になってないものを勝手に信頼するな」
「わざわざ1.0未満で止めているものを勝手に信頼し始めるやべー奴しかいなかった」
>「だけで」と言ってるやつはいないよ。
「だけで」と言ってるやつはいないけど「だけで」判断してるマヌケはいるよね?
まぁほぼ君だけなんだけどさ↓
「メジャーバージョンが0のライブラリなんて怖くてよう使わん」
「0.9で止めるみたいな、特に新機能付けるわけでもないけどfixする気もありません。好きな時に変えたいですみたいなのはサポートとは程遠い」
「1.0を超えてないのは問題外」
「1.0に上げていないライブラリを安定してて信頼できるものとして使うユーザーがいたら「ちょっと待って」って思うだろ」
「1.0になってないものを勝手に信頼するな」
「わざわざ1.0未満で止めているものを勝手に信頼し始めるやべー奴しかいなかった」
743デフォルトの名無しさん
2023/12/29(金) 18:22:07.42ID:v1Foeynd 確かにどう見てもバージョンナンバーだけで判断してるな
744デフォルトの名無しさん
2023/12/29(金) 19:11:58.37ID:fWvRNSV1745デフォルトの名無しさん
2023/12/29(金) 19:28:31.50ID:fWvRNSV1 ああ、それとも「仕様が安定していて信頼出来る」と「あるプロダクトの依存として採用する」の方が良いかな
746デフォルトの名無しさん
2023/12/29(金) 19:32:39.94ID:0cvltfsQ 関連しそうなクレートを全て精査するのは無理なんだから分かりやすい基準で足切りラインを設定するのは普通の処置なんじゃないの。
それがバージョンナンバーでも作者でもダウンロード数でもいいけど、バージョンナンバーでマシそうなのを選出してから細かい絞り混みをするのはそんなに不自然なこととは思わないけどな。
クレートを使う側の選出では偽陰性が増えてでも疑陽性が少ないほうが絞り混みやすいわけだし。
それがバージョンナンバーでも作者でもダウンロード数でもいいけど、バージョンナンバーでマシそうなのを選出してから細かい絞り混みをするのはそんなに不自然なこととは思わないけどな。
クレートを使う側の選出では偽陰性が増えてでも疑陽性が少ないほうが絞り混みやすいわけだし。
747デフォルトの名無しさん
2023/12/29(金) 20:54:47.18ID:CCwb5Mxd ベン図も三角関数も
何の役に立つのかを分かりやすく示さなければ足切られる側なんだよな
何の役に立つのかを分かりやすく示さなければ足切られる側なんだよな
748デフォルトの名無しさん
2023/12/29(金) 21:21:00.48ID:qZkdUj+g749デフォルトの名無しさん
2023/12/29(金) 21:52:37.44ID:fWvRNSV1 バージョンナンバーを考慮することはないって意見、同意はしないけど逆裏対偶みたいな基本的な誤りはないのでまあ分野によってはそうかもって感じ
俺も年単位でサポートする気がない書き捨てに近いプログラム書くときはそうだし
俺も年単位でサポートする気がない書き捨てに近いプログラム書くときはそうだし
750デフォルトの名無しさん
2023/12/29(金) 23:21:04.71ID:QVcmgKmp バージョンおじさん見苦しい
751デフォルトの名無しさん
2023/12/30(土) 00:00:54.19ID:xE8SJEDn 所有権の複製のときといっしょの流れになってない?w
しょーもないところで食い下がってゴールポスト動かして居座るやつ
しょーもないところで食い下がってゴールポスト動かして居座るやつ
752デフォルトの名無しさん
2023/12/30(土) 00:42:52.50ID:slhZof7h 対偶と裏の違いがわかってないから変なゴールポストを幻視してしまうのでは?
753デフォルトの名無しさん
2023/12/30(土) 01:02:25.15ID:CdBdHENn 『「バージョン1未満」は「信頼出来ない」と判断しているが「バージョンだけで判断」していない』
複製オジさんもビックリしてそう
複製オジさんもビックリしてそう
754デフォルトの名無しさん
2023/12/30(土) 01:56:09.99ID:slhZof7h755デフォルトの名無しさん
2023/12/30(土) 04:10:17.11ID:+VY2mXpj >>754
具体的にどのクレートをバージョンナンバーにより採用した採用しなかったのかを書きなさい
具体的にどのクレートをバージョンナンバーにより採用した採用しなかったのかを書きなさい
756デフォルトの名無しさん
2023/12/30(土) 04:20:00.71ID:slhZof7h757デフォルトの名無しさん
2023/12/30(土) 04:25:37.61ID:slhZof7h いやそれはそれと俺が選ばなかったライブラリの話、真面目に答えると結構ちゃんと選ばないと分野がバレるな
758デフォルトの名無しさん
2023/12/30(土) 04:26:52.37ID:+VY2mXpj >>756
一度も具体的な話を書けないエアプログラマーはこのスレから去れ
一度も具体的な話を書けないエアプログラマーはこのスレから去れ
759デフォルトの名無しさん
2023/12/30(土) 04:56:11.37ID:slhZof7h760デフォルトの名無しさん
2023/12/30(土) 05:03:26.73ID:slhZof7h 不毛な話に返信している自覚はあるので、俺に言及する奴が消えたら俺も書かなくはなるんだよな
ID:+VY2mXpjが具体的な話をしてくれたらそっちに話題が移るんじゃないだろうか
ID:+VY2mXpjが具体的な話をしてくれたらそっちに話題が移るんじゃないだろうか
761デフォルトの名無しさん
2023/12/30(土) 05:10:37.63ID:+VY2mXpj762デフォルトの名無しさん
2023/12/30(土) 05:19:08.00ID:slhZof7h >>761
「出してください」な
「出してください」な
763デフォルトの名無しさん
2023/12/30(土) 05:21:27.73ID:slhZof7h まあちゃんと「出してください」って言われても俺の分野がバレない奴があったか悩ましいが
764デフォルトの名無しさん
2023/12/30(土) 05:28:06.55ID:slhZof7h こういうのは具体的を出すということ自体が結構難しいんだよな
>>761が使っているライブラリでバージョンが1未満のものを上げるとかしてくれたら話が早い
>>761が使っているライブラリでバージョンが1未満のものを上げるとかしてくれたら話が早い
765デフォルトの名無しさん
2023/12/30(土) 06:29:39.39ID:GnED1sKw Rust勉強中。アノテーション注釈が出てきたところで流行らない理由をなんとなく察する
ヌルポとメモリーリークを防げるから個人開発で使う分にはいいけど。会社で広める気にはならない
学習コスト高いわ
ヌルポとメモリーリークを防げるから個人開発で使う分にはいいけど。会社で広める気にはならない
学習コスト高いわ
766デフォルトの名無しさん
2023/12/30(土) 10:07:43.55ID:bcJEqtzR async traitが安定化されてる!!!
https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html
https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html
767デフォルトの名無しさん
2023/12/30(土) 10:32:04.21ID:QGv3PFfa768デフォルトの名無しさん
2023/12/30(土) 11:16:50.31ID:kCUZZSzY769デフォルトの名無しさん
2023/12/30(土) 11:33:27.15ID:d4YZn3CY the book はきついよね
770デフォルトの名無しさん
2023/12/30(土) 11:41:42.24ID:scaDM36O staticを自粛する言語はみんな高コスト
チェリーピッキングみたいに最高値の近辺だけが高いという指摘はうさんくさい
チェリーピッキングみたいに最高値の近辺だけが高いという指摘はうさんくさい
771デフォルトの名無しさん
2023/12/30(土) 12:22:34.64ID:WjlNag1n772デフォルトの名無しさん
2023/12/30(土) 18:18:48.80ID:Ycw4kjfb >>759
自分が具体的なことを書いていないという指摘は否定しないw
自分が具体的なことを書いていないという指摘は否定しないw
773デフォルトの名無しさん
2023/12/31(日) 05:11:31.11ID:15iRFp/+ >>765
ライフタイム注釈はたいてい一意に定まりその時は省略できるから面倒にならないよ
省略できず明示的にライフタイム注釈を指定しないといけない場合は
例えば複数の参照を受け取り参照を返す関数などでそれら参照間の関係を指定する
ライフタイム注釈はたいてい一意に定まりその時は省略できるから面倒にならないよ
省略できず明示的にライフタイム注釈を指定しないといけない場合は
例えば複数の参照を受け取り参照を返す関数などでそれら参照間の関係を指定する
774デフォルトの名無しさん
2023/12/31(日) 10:19:28.53ID:kd8WxVq5775デフォルトの名無しさん
2023/12/31(日) 10:35:21.39ID:NOiZF6ke なまじライフタイムを省略できるせいでライフタイム未修得でも書けてしまう言語なので、いざライフタイム省略出来ない時が来た時に脳がバグる
776デフォルトの名無しさん
2023/12/31(日) 11:15:14.55ID:sbs7ggSq ライフタイムの記述は省略できることはあっても常にライフタイムを意識しながら書かなきゃいけない
それに省略できない場面にも日々遭遇するから「省略できるから面倒にならない」みたいな初心者釣りはやめた方がいい
暗黙的に意識しなきゃいけないC++に比べればある意味面倒ではないという程度
それに省略できない場面にも日々遭遇するから「省略できるから面倒にならない」みたいな初心者釣りはやめた方がいい
暗黙的に意識しなきゃいけないC++に比べればある意味面倒ではないという程度
777デフォルトの名無しさん
2023/12/31(日) 11:24:54.37ID:rKdc/qeD マクロやFFIのようなやや高度な機能を除いた基本機能の中ではライフタイムが一番難しくて一番面倒
性能と引き換えに受け入れなければいけない面倒臭さ
性能と引き換えに受け入れなければいけない面倒臭さ
778デフォルトの名無しさん
2023/12/31(日) 12:07:26.58ID:8Uv46fmp ライフタイム意識しなくても良いと騙されて書き始めた人間のがライフタイムに恐れを抱いて迂回しながら書いた至る所でcloneして値渡するコード
779デフォルトの名無しさん
2023/12/31(日) 13:31:13.38ID:K3mMRoqD まあ C++ と比較するとおおよそ良くなってると思うが C++ で不都合なく寿命管理できる能力があるなら Rust でライフタイムを明記するのを面倒と感じることはあるだろうな。
人類は駄目なので実際には頻繁に問題を起こすという現実があるんだけどさ。 わかってても間違うのが人類。
人類は駄目なので実際には頻繁に問題を起こすという現実があるんだけどさ。 わかってても間違うのが人類。
780デフォルトの名無しさん
2023/12/31(日) 13:50:46.98ID:PS1jMjj+ お金を賭ければ失敗することもあるけど賭けなければどうということはない
どっちも現実なんだけどリスク回避=現実逃避だと思ってるのが人類あるある
どっちも現実なんだけどリスク回避=現実逃避だと思ってるのが人類あるある
781デフォルトの名無しさん
2023/12/31(日) 14:00:16.32ID:8Uv46fmp C++で不都合なく寿命管理出来る能力があったらライフタイム管理なんて数文字タイプが増えるだけになのでは
782デフォルトの名無しさん
2023/12/31(日) 14:02:49.07ID:JAX3toXP >>779
Rustで性能&安全性優位になるのは積極的にスタックに積んで参照使いまくった場合だろうけど、c++だとスマートポインタとアロケータで最適化しとけという話になるからなぁ。
どんくらい性能差あるのかわからん。
Rustで性能&安全性優位になるのは積極的にスタックに積んで参照使いまくった場合だろうけど、c++だとスマートポインタとアロケータで最適化しとけという話になるからなぁ。
どんくらい性能差あるのかわからん。
783デフォルトの名無しさん
2023/12/31(日) 14:05:38.66ID:K3mMRoqD >>781
出来ると思ってるが実際には出来てないって話さ
出来ると思ってるが実際には出来てないって話さ
784デフォルトの名無しさん
2023/12/31(日) 16:01:28.24ID:r3ulhjhy もうRustじゃ無理なんだよ
785デフォルトの名無しさん
2023/12/31(日) 17:31:22.31ID:15iRFp/+ >>784
Rustが有利という話の流れの中で唐突にRustが何か無理なことある?
Rustが有利という話の流れの中で唐突にRustが何か無理なことある?
786デフォルトの名無しさん
2023/12/31(日) 18:02:32.92ID:K3mMRoqD プログラミング出来ない人は本当に出来ない。
C++ を使えているくらいの人なら Rust を (良いと思うかどうかは別として) 真面目に学べば使いこなせるだろうけど、初心者が最初に学び始めるには全く向いてないなぁと思うくらいのハードルの高さはあると思う。
C++ を使えているくらいの人なら Rust を (良いと思うかどうかは別として) 真面目に学べば使いこなせるだろうけど、初心者が最初に学び始めるには全く向いてないなぁと思うくらいのハードルの高さはあると思う。
787デフォルトの名無しさん
2023/12/31(日) 18:29:47.72ID:15iRFp/+ プログラミング出来ない人にRustはハードルが高いという主張か
788デフォルトの名無しさん
2023/12/31(日) 19:12:47.61ID:SnRIdEnt ゴミには何触らせてもゴミ
789デフォルトの名無しさん
2023/12/31(日) 20:25:01.01ID:d6XbubcX >>786
単に最近のスクリプト言語が簡単過ぎるだけだと思うけどね
ブイブイ言わせてる()モダンなスクリプト言語使いが
俺たちRustも書けるっしょwみたいなノリで挑戦して
書けなくて諦めるというのを何度も見てきた
本来プログラミングってのはこの程度は難しいものよ
単に最近のスクリプト言語が簡単過ぎるだけだと思うけどね
ブイブイ言わせてる()モダンなスクリプト言語使いが
俺たちRustも書けるっしょwみたいなノリで挑戦して
書けなくて諦めるというのを何度も見てきた
本来プログラミングってのはこの程度は難しいものよ
790デフォルトの名無しさん
2023/12/31(日) 20:41:56.95ID:Asz1BteV Rustを書けず断念するような低レベルの人ならば
他の言語でもまともなプログラムは書けないと思うけどな
他の言語でもまともなプログラムは書けないと思うけどな
791デフォルトの名無しさん
2023/12/31(日) 22:03:37.75ID:682wQwxe バージョンおじさんの次はスクリプトコンプおじさんか
792デフォルトの名無しさん
2023/12/31(日) 22:07:53.39ID:fB+p+szm ライフタイムは関数に渡すときborrowするだけなら何も難しいことはないんだが型に参照を含めていろんな操作をしたり持ち回ったりし始めると複雑度が急上昇する
793デフォルトの名無しさん
2023/12/31(日) 22:22:03.06ID:Asz1BteV そこは同じ
型に含まれてる参照のライフタイムがその型にも付くだけ
型に含まれてる参照のライフタイムがその型にも付くだけ
794デフォルトの名無しさん
2024/01/01(月) 00:50:09.76ID:X6Py91w/ あけましておめでとうございます
ライフタイム面倒なので捨ててstaticにしたいそんな貴方へ魔法の関数プレゼント!
fn to_static_str(input: &str) -> &'static str {
input.to_owned().leak()
}
ライフタイム面倒なので捨ててstaticにしたいそんな貴方へ魔法の関数プレゼント!
fn to_static_str(input: &str) -> &'static str {
input.to_owned().leak()
}
795デフォルトの名無しさん
2024/01/01(月) 19:58:44.82ID:SMFNndU8 the book で勉強中だけど覚えること多いなあ
構文を覚えるだけで70時間はかかりそう
デザインパターンの勉強は必要なさそうだけど
実践投入するには読経も20時間分ぐらい必要だろうな
構文を覚えるだけで70時間はかかりそう
デザインパターンの勉強は必要なさそうだけど
実践投入するには読経も20時間分ぐらい必要だろうな
796デフォルトの名無しさん
2024/01/01(月) 22:17:40.22ID:nmIunYxl 90時間でも約11日稼働ならオンボーディングで
極端に辛いというほどじゃなくね
極端に辛いというほどじゃなくね
797デフォルトの名無しさん
2024/01/01(月) 22:29:17.37ID:pmJAVvpO798デフォルトの名無しさん
2024/01/02(火) 00:14:27.39ID:SHn+5kOU Rustの勉強が大変なら勉強なんかせんでええ
Copilotに書かせてコンパイル通ればOKや!
Copilotに書かせてコンパイル通ればOKや!
799デフォルトの名無しさん
2024/01/02(火) 08:32:02.80ID:xTyEZXhx copilot は予測変換の賢いやつって感じ。
個々の場面では思ったよりも賢くて使い物になるが全体を構成するのに人の思考がいらないほど、全部丸投げ出来るほどではない。
出来る人が楽をするツールであって、できない人が使ってもまともなものは作れない。
個々の場面では思ったよりも賢くて使い物になるが全体を構成するのに人の思考がいらないほど、全部丸投げ出来るほどではない。
出来る人が楽をするツールであって、できない人が使ってもまともなものは作れない。
800デフォルトの名無しさん
2024/01/02(火) 22:18:53.42ID:3cCPTdjI >>792
どっちかというとそういうもち回しによる複雑な操作するなってのがrustの思想だろ
どっちかというとそういうもち回しによる複雑な操作するなってのがrustの思想だろ
801デフォルトの名無しさん
2024/01/03(水) 00:45:56.91ID:cT5UAedN 他の言語の習慣を捨てないとなかなか実践できないと思う
しばらく使ってるとRust特有のプラクティスが見えてくるけど
しばらく使ってるとRust特有のプラクティスが見えてくるけど
802デフォルトの名無しさん
2024/01/03(水) 00:58:25.14ID:WEsHc8Hy 全体を構成する部分が問題になってRustにノータイムで移行できない人間が書くスクリプト言語で書かれたプログラム、読みたくなさすぎる
803デフォルトの名無しさん
2024/01/03(水) 18:10:43.49ID:AJuUFyM+ VSCodeとrust-analyzerでrustを書いている人にちょっとお聞きしたいんだけど、
rustのコード補完で、必ずabc順になっちゃうんだけど
直前に使用したメソッドを優先的に上位に表示させることってできないの?
VSCodeのエディタの設定でrecently usedを設定してもabc順でしか表示さない
InteliJIdeaでは学習した結果、使用頻度の高いものを上位に表示してくれてたのに・・
rustのコード補完で、必ずabc順になっちゃうんだけど
直前に使用したメソッドを優先的に上位に表示させることってできないの?
VSCodeのエディタの設定でrecently usedを設定してもabc順でしか表示さない
InteliJIdeaでは学習した結果、使用頻度の高いものを上位に表示してくれてたのに・・
804デフォルトの名無しさん
2024/01/03(水) 23:00:13.67ID:parSgmbo 質問の仕方が間違っているぞ
そういう時は「補完もまともに出来ないクソ言語」って言えば信者が頑張って探してくれる
そういう時は「補完もまともに出来ないクソ言語」って言えば信者が頑張って探してくれる
805デフォルトの名無しさん
2024/01/04(木) 17:30:55.33ID:mYBU2Jpa InteliJでは出来てたって書いてあるの読めない人なのかな?
こういう人がテストケースとか書いてると思うと怖くてたまらんね
こういう人がテストケースとか書いてると思うと怖くてたまらんね
806デフォルトの名無しさん
2024/01/04(木) 17:56:16.02ID:dLQyUrS8 >>804は頭の弱いRustアンチの人だから無視しとけ
807デフォルトの名無しさん
2024/01/04(木) 18:21:30.81ID:mYBU2Jpa ごめんよ
rustが難しくて理解できない可愛そうな人だったか
rustが難しくて理解できない可愛そうな人だったか
808デフォルトの名無しさん
2024/01/04(木) 19:32:15.16ID:lFo5UMLf 誰も問題解決出来てなくて草
マジで糞言語なのか?
VSCodeでもPythonなら出来るぞこれ
マジで糞言語なのか?
VSCodeでもPythonなら出来るぞこれ
809デフォルトの名無しさん
2024/01/04(木) 20:05:26.49ID:9Tnu7Lk1810デフォルトの名無しさん
2024/01/04(木) 20:44:14.40ID:5w1EWT82 普通にバグ報告すればいいのに
811デフォルトの名無しさん
2024/01/04(木) 20:47:26.53ID:mYBU2Jpa >>808
あらためてVSCode再起動したら普通に直近に選択したメソッドや変数が上位に表示されるようになった
ごめんね ぺこり
ちなPythonは入れ子のループの内側から外側のbreakができないから嫌い
あらためてVSCode再起動したら普通に直近に選択したメソッドや変数が上位に表示されるようになった
ごめんね ぺこり
ちなPythonは入れ子のループの内側から外側のbreakができないから嫌い
812デフォルトの名無しさん
2024/01/04(木) 21:51:07.65ID:dt0a6v34 InteliJ は rust-analyzer 使ってないんじゃなかった?
開発支援機能の基盤が違えば細かい挙動が一致しないのなんて当たり前過ぎて何が言いたいのかわからない。
開発支援機能の基盤が違えば細かい挙動が一致しないのなんて当たり前過ぎて何が言いたいのかわからない。
813デフォルトの名無しさん
2024/01/04(木) 22:28:32.21ID:4GGvVaU9 >>795の読経って何?
814デフォルトの名無しさん
2024/01/05(金) 08:39:06.77ID:wSd1e+VK815デフォルトの名無しさん
2024/01/05(金) 09:40:39.59ID:K2XmLAOd Rustで書かれたLinux互換OS「Maestro」が爆誕
https://softantenna.com/blog/rust-maestro/
https://softantenna.com/blog/rust-maestro/
816デフォルトの名無しさん
2024/01/05(金) 09:43:03.49ID:QSnLODWj >>814
ああ、コードを読むのを読経と言ってるのか。ありがとう。
ああ、コードを読むのを読経と言ってるのか。ありがとう。
817デフォルトの名無しさん
2024/01/05(金) 13:58:06.60ID:p8td/CWz 読経なんかせんでええ
GPTに書かせろ
GPTに書かせろ
818デフォルトの名無しさん
2024/01/05(金) 14:50:07.45ID:5Ddnqo9+ ソースはお経じゃねえぞ
819デフォルトの名無しさん
2024/01/05(金) 16:26:15.51ID:qm5+loRz 写すと写経
読むと読経か
般若心経に波羅蜜多という単語が出て来る
修行の意味だが、修行を行った量という意味でもあり
英単語のparameterと同語源だという
引数か
ヤシの木palmとparameterも同語源って説がある
palmは手の平の意味だが手の指で文字を数えるとも繋がる
これがまた修行の量とか引数って概念に繋がる
またヤシの葉で分厚いパルミラヤシと呼ばれるものは経文を書くのに使われていた
経文を書いた量がまた修行のパラメーターとなった
ナツメヤシのことをdateというが日にちも数えるもの、デートも日にちを重ねて交流を深めるものとされた
ヤシの葉と修行と日にちと引数は常に数えるものとされた
一方で波羅蜜、パラミツというスイカの5倍くらいある果物もある
果実を輪切りにするとアナログ時計のように果肉が並び
時間を象徴するものだから?という話があるが、パラミツと波羅蜜多は特に関係がないという方が多い
インドにRust外注したら動くものは帰ってくるのかどうか
読むと読経か
般若心経に波羅蜜多という単語が出て来る
修行の意味だが、修行を行った量という意味でもあり
英単語のparameterと同語源だという
引数か
ヤシの木palmとparameterも同語源って説がある
palmは手の平の意味だが手の指で文字を数えるとも繋がる
これがまた修行の量とか引数って概念に繋がる
またヤシの葉で分厚いパルミラヤシと呼ばれるものは経文を書くのに使われていた
経文を書いた量がまた修行のパラメーターとなった
ナツメヤシのことをdateというが日にちも数えるもの、デートも日にちを重ねて交流を深めるものとされた
ヤシの葉と修行と日にちと引数は常に数えるものとされた
一方で波羅蜜、パラミツというスイカの5倍くらいある果物もある
果実を輪切りにするとアナログ時計のように果肉が並び
時間を象徴するものだから?という話があるが、パラミツと波羅蜜多は特に関係がないという方が多い
インドにRust外注したら動くものは帰ってくるのかどうか
820デフォルトの名無しさん
2024/01/05(金) 17:09:23.62ID:FktlJzQH parameterのpara-はギリシア語由来の「離れている」では
parallel(平行)のpara-
parallel(平行)のpara-
821デフォルトの名無しさん
2024/01/05(金) 19:03:58.53ID:kJ7MyVdE822デフォルトの名無しさん
2024/01/06(土) 15:29:56.82ID:NPThFXTg 無理にひねくれたこと書かんでよろしい
823デフォルトの名無しさん
2024/01/07(日) 02:08:36.16ID:eqr3i2HS rustちょっと書いたけどなんかハマらんな
つまんない
刺激が少ない
俺は別に言語に安全性なんて求めてないんだ
刺激がほしいんだ
つまんない
刺激が少ない
俺は別に言語に安全性なんて求めてないんだ
刺激がほしいんだ
824デフォルトの名無しさん
2024/01/07(日) 02:15:40.93ID:k7dl9y2N >>823
お前のチームのバグ出しまくる同僚に使わせたら?
お前のチームのバグ出しまくる同僚に使わせたら?
825デフォルトの名無しさん
2024/01/07(日) 02:41:23.33ID:KA2Mqlfb プログラミングそのものに刺激を求めるんじゃない
刺激はプログラミングで実現したいものに求めろ
刺激はプログラミングで実現したいものに求めろ
826デフォルトの名無しさん
2024/01/07(日) 09:36:48.73ID:qkYZiPZe rustはコンパイラにムチを打たれながらコーディングする性癖ドM言語だよ
自身の性癖と合う言語を使ってけ
自身の性癖と合う言語を使ってけ
827デフォルトの名無しさん
2024/01/07(日) 15:48:04.06ID:ujkX2rEF Rustがムチ打つかレビューでムチ打つかの違いでしかないんだよな
誰にも見せないコードなら関係ないけど
誰にも見せないコードなら関係ないけど
828デフォルトの名無しさん
2024/01/07(日) 16:53:56.32ID:FD9BMc1I 男は黙ってSegmentation Fault
829デフォルトの名無しさん
2024/01/07(日) 21:59:04.51ID:k7dl9y2N830デフォルトの名無しさん
2024/01/08(月) 12:20:12.43ID:JTfbpR0w 刺激ってメモリリークでクラッシュとか、ストレージフォーマットとかか?
831デフォルトの名無しさん
2024/01/08(月) 20:41:35.20ID:6GvPzxXI スマートポインタについて勉強中。強い参照、弱い参照という概念が出てきて目が回る
RefCell……所有権の共有が発生する参照……参照???
言葉遊びが過ぎないか。。。
RefCell……所有権の共有が発生する参照……参照???
言葉遊びが過ぎないか。。。
832デフォルトの名無しさん
2024/01/08(月) 21:50:36.68ID:VjyRCTjd 何書いてるかによるけど、出来ればスマートポインタ使わずに書きたい
833デフォルトの名無しさん
2024/01/08(月) 21:56:10.69ID:a9mjVCEv >>831
強い参照、弱い参照はRustやC++だけでなくJavaやC#、PythonやJavaScriptでさえ出てくる一般的な概念だぞ
RefCellは所有権の共有じゃないぞ
スマートポインタや参照という言葉もRustの定義を理解した上で学ぶ必要があるんだけどちゃんとした資料で勉強してるか?
強い参照、弱い参照はRustやC++だけでなくJavaやC#、PythonやJavaScriptでさえ出てくる一般的な概念だぞ
RefCellは所有権の共有じゃないぞ
スマートポインタや参照という言葉もRustの定義を理解した上で学ぶ必要があるんだけどちゃんとした資料で勉強してるか?
834デフォルトの名無しさん
2024/01/08(月) 22:02:17.92ID:6GvPzxXI835デフォルトの名無しさん
2024/01/08(月) 22:04:58.02ID:6GvPzxXI836デフォルトの名無しさん
2024/01/08(月) 22:45:23.91ID:U+1fQP74837デフォルトの名無しさん
2024/01/08(月) 22:56:58.99ID:DdO69zqE >>835
まず前提環境が重要になる
たとえば並行はあるのか?並列はあるのか?両方あるのか?
あるとしても共有が必要なそれらの範囲はどこまでなのか?
それとは別の話で参照の共有と所有権の共有についても前者だけで済むのか後者も必要なのか?
など
まず前提環境が重要になる
たとえば並行はあるのか?並列はあるのか?両方あるのか?
あるとしても共有が必要なそれらの範囲はどこまでなのか?
それとは別の話で参照の共有と所有権の共有についても前者だけで済むのか後者も必要なのか?
など
838デフォルトの名無しさん
2024/01/09(火) 00:03:40.70ID:8DV95bbu839デフォルトの名無しさん
2024/01/09(火) 00:15:41.68ID:nS4EcHpr 配列にどんどん詰め込んでいって
ポインタのかわりにインデックスで管理するという方法も取れなくはない。
Rust で参照の取り扱いが面倒くさくなったときは割とよく使われる。
ポインタのかわりにインデックスで管理するという方法も取れなくはない。
Rust で参照の取り扱いが面倒くさくなったときは割とよく使われる。
840デフォルトの名無しさん
2024/01/09(火) 00:41:55.42ID:p6fXuzFt Rustだから面倒になるのではなく
同じ方針ならばC/C++でも同じようになる
そしてどの言語でも同じく色んな方針を取ることができる
たとえばプログラム終了まであるメモリを解放しない&しなくてよい状況と方針ならば
CだけでなくRustでもそのようにプログラミングすることで簡単になる
同じ方針ならばC/C++でも同じようになる
そしてどの言語でも同じく色んな方針を取ることができる
たとえばプログラム終了まであるメモリを解放しない&しなくてよい状況と方針ならば
CだけでなくRustでもそのようにプログラミングすることで簡単になる
841デフォルトの名無しさん
2024/01/09(火) 00:48:52.81ID:71QF1ibn Array/VecとMapでやる方が普通
てかスマートポインタで胃が重いとか言ってる人にFST実装させようとするのはどうなのか
学生さんの宿題ならいいんだけど
てかスマートポインタで胃が重いとか言ってる人にFST実装させようとするのはどうなのか
学生さんの宿題ならいいんだけど
842デフォルトの名無しさん
2024/01/09(火) 13:46:52.23ID:cAvIdAYQ >>815
windowsこそrustで書き直して欲しい
windowsこそrustで書き直して欲しい
843デフォルトの名無しさん
2024/01/09(火) 14:29:03.17ID:ZeSQ9HCg いやWindowsは消滅してくれ
Windowsのパス区切り文字がバックスラッシュだと面倒くさいんだよ
いつになったら他のOSのようにスラッシュになるんだ
Windowsのパス区切り文字がバックスラッシュだと面倒くさいんだよ
いつになったら他のOSのようにスラッシュになるんだ
844デフォルトの名無しさん
2024/01/09(火) 14:42:13.51ID:W90zSzbf そこでいまどき困るか?
ライブラリで吸収してくれるだろ
ライブラリで吸収してくれるだろ
845デフォルトの名無しさん
2024/01/09(火) 15:03:46.95ID:mDjH0FU9 困るのはそんなポイントではないわな
846デフォルトの名無しさん
2024/01/09(火) 15:51:14.16ID:LmJT0Ko+ UNIX
https://learn.microsoft.com/ja-jp/cpp/c-runtime-library/unix
プログラムを UNIX に移植する場合は、次のガイドラインに従ってください。
・引数としてパスとファイル名を表す文字列を実行するルーチンでは、UNIX と互換性のあるパス区切り記号を使用します。 UNIX は、この目的でスラッシュ (/) のみをサポートしますが、Win32 オペレーティング システムでは、円記号 (\) とスラッシュ (/) の両方をサポートします。
https://learn.microsoft.com/ja-jp/cpp/c-runtime-library/unix
プログラムを UNIX に移植する場合は、次のガイドラインに従ってください。
・引数としてパスとファイル名を表す文字列を実行するルーチンでは、UNIX と互換性のあるパス区切り記号を使用します。 UNIX は、この目的でスラッシュ (/) のみをサポートしますが、Win32 オペレーティング システムでは、円記号 (\) とスラッシュ (/) の両方をサポートします。
847デフォルトの名無しさん
2024/01/09(火) 16:00:24.31ID:OfKvL6VZ WindowsはWSL2のおかげで立ち位置を少し取り戻した感ある
Docker×WSL最強なんだ
Docker×WSL最強なんだ
848デフォルトの名無しさん
2024/01/09(火) 16:26:04.96ID:dEgljR3a Rustを学習していてよくわかんないんだけど、なんで&mut演算子って=の右側に書くの?
演算子を分けて&を右でmutを左にすべきことじゃないのか
演算子を分けて&を右でmutを左にすべきことじゃないのか
849デフォルトの名無しさん
2024/01/09(火) 16:31:10.75ID:T7+wXIHZ >>848
変数がmutなのと参照がmutなのと意味が違うでしょ
変数がmutなのと参照がmutなのと意味が違うでしょ
850デフォルトの名無しさん
2024/01/09(火) 16:38:48.96ID:7APTEGxI 不変なT型 T
不変な不変参照 &T
不変な可変参照 &mut T
可変なT型 mut T
可変な不変参照 mut &T
可変な可変参照 mut &mut T
不変な不変参照 &T
不変な可変参照 &mut T
可変なT型 mut T
可変な不変参照 mut &T
可変な可変参照 mut &mut T
851デフォルトの名無しさん
2024/01/09(火) 16:51:10.28ID:/HMizx3H それ複オジがよく書いてたやつだけど
そうやって書くと型の違いと変数のmutabilityの違いを混同しちゃうから良くないんだよね
そうやって書くと型の違いと変数のmutabilityの違いを混同しちゃうから良くないんだよね
852デフォルトの名無しさん
2024/01/09(火) 16:57:39.62ID:FRUFivso fn main() {
let mut foo = String::from("foo");
let mut bar = String::from("bar");
let a1 = &foo;
// a1の値も参照先(foo)も変更できない
// a1.push('o'); // 不可
// a1 = &bar; // 不可
println!("{a1}"); // foo
let a2 = &mut foo;
// a2の値は変更できないが参照先(foo)は変更できる
a2.push('o');
// a2 = &mut bar; // 不可
println!("{a2}"); // fooo
let mut a3 = &foo;
// a3の値は変更できるが参照先(foo)は変更できない
// a3.push('o'); // 不可
a3 = &bar;
println!("{a3}"); // bar
let mut a4 = &mut foo;
// a4の値も参照先(foo)も変更できる
a4.push('o');
a4 = &mut bar;
println!("{foo} {a4}"); // foooo bar
}
let mut foo = String::from("foo");
let mut bar = String::from("bar");
let a1 = &foo;
// a1の値も参照先(foo)も変更できない
// a1.push('o'); // 不可
// a1 = &bar; // 不可
println!("{a1}"); // foo
let a2 = &mut foo;
// a2の値は変更できないが参照先(foo)は変更できる
a2.push('o');
// a2 = &mut bar; // 不可
println!("{a2}"); // fooo
let mut a3 = &foo;
// a3の値は変更できるが参照先(foo)は変更できない
// a3.push('o'); // 不可
a3 = &bar;
println!("{a3}"); // bar
let mut a4 = &mut foo;
// a4の値も参照先(foo)も変更できる
a4.push('o');
a4 = &mut bar;
println!("{foo} {a4}"); // foooo bar
}
853デフォルトの名無しさん
2024/01/09(火) 17:54:54.96ID:yDV9ZPsZ >>815
先にfirefox互換のブラウザをRustで作れよ
先にfirefox互換のブラウザをRustで作れよ
854デフォルトの名無しさん
2024/01/09(火) 20:29:20.32ID:OfKvL6VZ855デフォルトの名無しさん
2024/01/09(火) 21:43:46.90ID:ba97u6j0 JythonみたいにRinuxとか呼ばれる様になるんかね
856デフォルトの名無しさん
2024/01/09(火) 23:30:54.91ID:kFOi0b9p >>847
わかる
わかる
857デフォルトの名無しさん
2024/01/09(火) 23:33:35.76ID:kFOi0b9p858デフォルトの名無しさん
2024/01/09(火) 23:44:10.92ID:VWF/HjAU >>857
なんでmut& Tやmut& mut Tのほうがいいと思うの?
なんでmut& Tやmut& mut Tのほうがいいと思うの?
859デフォルトの名無しさん
2024/01/10(水) 00:26:25.61ID:50jzIioV 変数は不変 参照先も不変
【Rust】 let ptr: &i32 = ...
【C/C++】 const int* const ptr = ...
変数は可変 参照先は不変
【Rust】 let mut ptr: &i32 = ...
【C/C++】 const int* ptr = ...
変数は不変 参照先は可変
【Rust】 let ptr: &mut i32 = ...
【C/C++】 int* const ptr = ...
変数は可変 参照先も可変
【Rust】 let mut ptr: &mut i32 = ...
【C/C++】 int* ptr = ...
【Rust】 let ptr: &i32 = ...
【C/C++】 const int* const ptr = ...
変数は可変 参照先は不変
【Rust】 let mut ptr: &i32 = ...
【C/C++】 const int* ptr = ...
変数は不変 参照先は可変
【Rust】 let ptr: &mut i32 = ...
【C/C++】 int* const ptr = ...
変数は可変 参照先も可変
【Rust】 let mut ptr: &mut i32 = ...
【C/C++】 int* ptr = ...
860デフォルトの名無しさん
2024/01/15(月) 07:32:23.77ID:GWa8/EJ0 プログラミングをしていて最も出現頻度が高いのがその4つのうちこのパターンだな
>変数は不変 参照先も不変
>【Rust】 let ptr: &i32 = ...
>【C/C++】 const int* const ptr = ...
したがって可変部分のみmutを付加するRust方式が理に適っている
>変数は不変 参照先も不変
>【Rust】 let ptr: &i32 = ...
>【C/C++】 const int* const ptr = ...
したがって可変部分のみmutを付加するRust方式が理に適っている
861デフォルトの名無しさん
2024/01/15(月) 09:26:21.36ID:87NFfbL3 C/C++のconstとRustのletを対比するなよ
コンパイル時の定数と変数は違うから
コンパイル時の定数と変数は違うから
862デフォルトの名無しさん
2024/01/15(月) 10:46:44.96ID:6ZDKWey9 C/C++のconstはコンパイル時の定数とは限らない
> 変数は不変 参照先も不変
C++はconst int*で定義した変数経由では参照先を変更出来なくても他から参照先が変更されることがあるので「参照先が不変」とは言えない
> 変数は不変 参照先も不変
C++はconst int*で定義した変数経由では参照先を変更出来なくても他から参照先が変更されることがあるので「参照先が不変」とは言えない
863デフォルトの名無しさん
2024/01/15(月) 11:01:12.76ID:AliX8x8r864デフォルトの名無しさん
2024/01/15(月) 11:06:03.10ID:YtourOsv C/C++のconstはコンパイル時の定数となることもあるのがややこしいところ
constexprはそれを矯正するもの
1対1の単純な比較では抜け落ちるものが多すぎる
constexprはそれを矯正するもの
1対1の単純な比較では抜け落ちるものが多すぎる
865デフォルトの名無しさん
2024/01/15(月) 18:27:24.64ID:8IhMbXbn イミュータブルの観点でこの対応は合ってる。
Rust: let foo: &i32 = ...
C++: const int* const foo = ...
ただし違いとしては、
Rustではfooが生きている間は参照先が(内部可変性を除いて)真に書き変わらない保証がある点が異なる。
Rust: let foo: &i32 = ...
C++: const int* const foo = ...
ただし違いとしては、
Rustではfooが生きている間は参照先が(内部可変性を除いて)真に書き変わらない保証がある点が異なる。
866デフォルトの名無しさん
2024/01/17(水) 18:48:37.40ID:6S0S7+zy この件はC++と比較しても刺激が少ない
mutがない関数型言語と比較するほうがいい
mutがない関数型言語と比較するほうがいい
867デフォルトの名無しさん
2024/01/17(水) 19:39:11.45ID:gS91WelD ミュータブルを無くすと美しく見える反面
ガベージコレクションが多数発生し効率が悪くなる
アルゴリズムも制約を受けてしまい効率が悪くなる
ガベージコレクションが多数発生し効率が悪くなる
アルゴリズムも制約を受けてしまい効率が悪くなる
868デフォルトの名無しさん
2024/01/17(水) 19:42:50.91ID:NPS8JVAZ Linuxカーネルについに実用的なコードが
マージされたと話題になってるな
マージされたと話題になってるな
869デフォルトの名無しさん
2024/01/17(水) 20:07:47.38ID:ouelKdFS >>868
新規追加するドライバにだけ採用とか前に言ってなかったっけ?
新規追加するドライバにだけ採用とか前に言ってなかったっけ?
870デフォルトの名無しさん
2024/01/17(水) 21:08:18.79ID:6S0S7+zy871デフォルトの名無しさん
2024/01/17(水) 21:16:06.79ID:gS91WelD872デフォルトの名無しさん
2024/01/17(水) 23:31:19.01ID:6S0S7+zy cloneに似た処理をしてからオリジナルをdropするんだよね
873デフォルトの名無しさん
2024/01/18(木) 04:18:08.52ID:p4+mv2Ay RustはカーネルやOSコアの開発で存分に活躍してくれ🙏
874デフォルトの名無しさん
2024/01/18(木) 06:21:12.49ID:vxth9lRp ぺたんこおっぱい
ぽっこりおなか
つるつるわれめ
ぽっこりおなか
つるつるわれめ
875デフォルトの名無しさん
2024/01/19(金) 01:46:37.00ID:qsekRxP5 プログラミング言語利用実態調査でRustが急落
https://www.nikkei.com/article/DGXZQOUC223M10S3A221C2000000/
https://www.nikkei.com/article/DGXZQOUC223M10S3A221C2000000/
876デフォルトの名無しさん
2024/01/19(金) 08:43:59.73ID:q7Fi5Auv >>875
それ日本だけのアンケートじゃん
それ日本だけのアンケートじゃん
877デフォルトの名無しさん
2024/01/19(金) 08:55:08.16ID:v7odrc0V 登録が必要な記事貼るとか
878デフォルトの名無しさん
2024/01/19(金) 10:17:52.92ID:9hGbEahh >>875
日本でもクソ言語ってバレ始めてるなw
日本でもクソ言語ってバレ始めてるなw
879デフォルトの名無しさん
2024/01/19(金) 10:49:32.99ID:Z0EBK6tx そもそもrustを使う場面があるか?って話
wasmは始まる前からオワコンだし、組み込みシステム開発してる人なんて割合で見ればプログラマの中でごく一部だし
wasmは始まる前からオワコンだし、組み込みシステム開発してる人なんて割合で見ればプログラマの中でごく一部だし
880デフォルトの名無しさん
2024/01/19(金) 11:13:07.05ID:vjpbBz8R881デフォルトの名無しさん
2024/01/19(金) 11:19:17.56ID:EYCY+PGA >>875
ちゃんとリンク貼れ無能
スキルアップしたい言語はPythonとJavaScript、不動の不人気言語はCOBOL
安藤 正芳 日経クロステック/日経コンピュータ
https://xtech.nikkei.com/atcl/nxt/column/18/02670/112900003/
ちゃんとリンク貼れ無能
スキルアップしたい言語はPythonとJavaScript、不動の不人気言語はCOBOL
安藤 正芳 日経クロステック/日経コンピュータ
https://xtech.nikkei.com/atcl/nxt/column/18/02670/112900003/
882デフォルトの名無しさん
2024/01/19(金) 11:27:47.52ID:uugkJRQ7 「実際に仕事で使われているプログラミング言語」(2023)
https://qiita.com/mmake/items/b346cb32ccc3bcb5d03f
日本でのRustの使用実態が全く見られないの笑えるな
https://qiita.com/mmake/items/b346cb32ccc3bcb5d03f
日本でのRustの使用実態が全く見られないの笑えるな
883デフォルトの名無しさん
2024/01/19(金) 11:34:00.68ID:EoDClT2o Rustは業務で使用する言語ではない
884デフォルトの名無しさん
2024/01/19(金) 11:36:55.28ID:arzVgFZ3 使われてる言語ランキング見てると、CやC++、Rustみたいな組み込み開発用言語は全体から見ればもはやプログラミングの中でもマニアックな分類なんやね
ブログラマといえばWebサービス関連の人ってイメージになっちゃった
ブログラマといえばWebサービス関連の人ってイメージになっちゃった
885デフォルトの名無しさん
2024/01/19(金) 11:48:30.00ID:vjpbBz8R とはいえそれを支えるホスト環境 (OS) や処理系は大抵の場合に C とかで書かれてるんだけどな。
886デフォルトの名無しさん
2024/01/19(金) 11:49:23.47ID:pW7O4nZv RustがC/C++の代わりになるのは間違いないのだけれどね
富士通さんはRustの普及をもっと頑張ってくれよ
富士通さんはRustの普及をもっと頑張ってくれよ
887デフォルトの名無しさん
2024/01/19(金) 12:01:24.14ID:pW7O4nZv888デフォルトの名無しさん
2024/01/19(金) 12:05:10.29ID:pW7O4nZv889デフォルトの名無しさん
2024/01/19(金) 12:05:22.87ID:vjpbBz8R デバイスドライバとかは C のほうが楽だけど
言語処理系くらいのレイヤだと大部分は Rust で書いたほうが楽そうだなーとは思う。
言語処理系くらいのレイヤだと大部分は Rust で書いたほうが楽そうだなーとは思う。
890デフォルトの名無しさん
2024/01/19(金) 12:26:38.25ID:CZFLW0PQ そろそろ実装に入れそうだけど。Rustを勉強したことを少し後悔ぎみ
オブジェクト指向言語しか触ったことなかったから取得するのにガチで一ヶ月(130時間)かかった
chatgptに聞いた感じだと、これでも割と早い方らしい。おとなしくC/C++を使えばよかった
オブジェクト指向言語しか触ったことなかったから取得するのにガチで一ヶ月(130時間)かかった
chatgptに聞いた感じだと、これでも割と早い方らしい。おとなしくC/C++を使えばよかった
891デフォルトの名無しさん
2024/01/19(金) 12:33:55.04ID:3hcnICbb 【AI】Googleの医療面接特化AI「AMIE」は人間よりも正確な診断が可能&患者への印象に優れるという研究結果 [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705583722/l50
【AI】Google DeepMindが数学オリンピックレベルの幾何学問題を解けるAIを発表、人間の金メダリストに近い性能を発揮 [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705583476/l50
【AI】大学入試共通テスト、3つのチャットAIに解かせてみたら? GPT-4はバケモノだった [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705585402/l50
【ナゾロジー】「株価の変動を粒子の振動として理解」量子力学で株式市場の法則を読む! [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705583580/l50
【AI】NTT、自分の分身AIを低コストで作る技術。自分の合成音声を簡単に作れる技術も [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705583313/l50
ボイス・トォ・スカルのコアプログラムの一部は上記を統合している
https://egg.5ch.net/test/read.cgi/scienceplus/1705583722/l50
【AI】Google DeepMindが数学オリンピックレベルの幾何学問題を解けるAIを発表、人間の金メダリストに近い性能を発揮 [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705583476/l50
【AI】大学入試共通テスト、3つのチャットAIに解かせてみたら? GPT-4はバケモノだった [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705585402/l50
【ナゾロジー】「株価の変動を粒子の振動として理解」量子力学で株式市場の法則を読む! [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705583580/l50
【AI】NTT、自分の分身AIを低コストで作る技術。自分の合成音声を簡単に作れる技術も [すらいむ★]
https://egg.5ch.net/test/read.cgi/scienceplus/1705583313/l50
ボイス・トォ・スカルのコアプログラムの一部は上記を統合している
892デフォルトの名無しさん
2024/01/19(金) 13:26:04.84ID:eEzmAF9q893デフォルトの名無しさん
2024/01/19(金) 13:41:00.69ID:CZFLW0PQ C/C++, java, pythonの経験があるから、Rustを取得するのに50時間かからないだろうと思ってた時期が僕にもありました
ヌルポが怖いからRustを使うけど……歯を食いしばって捻出した130時間を投資回収できるかは神のみぞ知る
ヌルポが怖いからRustを使うけど……歯を食いしばって捻出した130時間を投資回収できるかは神のみぞ知る
894デフォルトの名無しさん
2024/01/19(金) 13:47:10.87ID:vjpbBz8R C/C++ の経験があってそんなに時間かかるか?
「習得」というのがどの程度の基準で見るかにもよるけど
いわゆる the book を一通り読んだ後なら
コンパイラがあまり助けてくれないところ (unsafe) を除けば
マニュアルを見ながら書けばだいたいなんとかなる程度には使えそうなもんだと思うんだが。
「習得」というのがどの程度の基準で見るかにもよるけど
いわゆる the book を一通り読んだ後なら
コンパイラがあまり助けてくれないところ (unsafe) を除けば
マニュアルを見ながら書けばだいたいなんとかなる程度には使えそうなもんだと思うんだが。
895デフォルトの名無しさん
2024/01/19(金) 13:56:01.98ID:arzVgFZ3 C/C++を適当にやってたせいでRustでつまづくってのはありそう
896デフォルトの名無しさん
2024/01/19(金) 14:12:09.59ID:CZFLW0PQ >>894
最近はpythonで仕事する機会が多くて、C/C++を4年ほど触ってなかったのと、
仕事の後に疲れた頭で勉強したから体力的にキツかったのと。。。
the bookを読むだけで90時間はかかったわ。検索モジュールを開発しようと思ってるんだけど
いきなり実装に入るより読経した方がマシな感じで、regexのコードを読んでる
既に10時間読経に捧げて、あと10時間は追加の読経が必要な感じ
この後、形態素解析エンジンのコードも読む必要があるから、追加で20時間はお勉強する予定であわせて130時間
……重いです
最近はpythonで仕事する機会が多くて、C/C++を4年ほど触ってなかったのと、
仕事の後に疲れた頭で勉強したから体力的にキツかったのと。。。
the bookを読むだけで90時間はかかったわ。検索モジュールを開発しようと思ってるんだけど
いきなり実装に入るより読経した方がマシな感じで、regexのコードを読んでる
既に10時間読経に捧げて、あと10時間は追加の読経が必要な感じ
この後、形態素解析エンジンのコードも読む必要があるから、追加で20時間はお勉強する予定であわせて130時間
……重いです
897デフォルトの名無しさん
2024/01/19(金) 14:23:24.55ID:arzVgFZ3 >>896
おつかれよくがんばった
おつかれよくがんばった
898デフォルトの名無しさん
2024/01/19(金) 14:50:46.17ID:tvouuqwU >>896
the bookでの90時間の中身がわからないので何とも言えないかな
bookだけを読んだのか
それともdocsやreferenceと行き来して読んだのか
サンプルコードくらいのことを書けるようになっただけなのか
それとも各機構や機能を本質的に理解したのでdocsなど見ればbookに書かれてないことも書けるようになったのか
などピンキリだよね
the bookでの90時間の中身がわからないので何とも言えないかな
bookだけを読んだのか
それともdocsやreferenceと行き来して読んだのか
サンプルコードくらいのことを書けるようになっただけなのか
それとも各機構や機能を本質的に理解したのでdocsなど見ればbookに書かれてないことも書けるようになったのか
などピンキリだよね
899デフォルトの名無しさん
2024/01/19(金) 15:08:45.88ID:IG9zAVYP >>890
一般的にですが、
自分が使いたい新たな言語の学習で、辛いとかキツいとか後悔とか感じる人はプログラマーに向いていません。
プログラマーに向いてる人たちにとっては、新たな学習や会得はワクワク楽しくてその時間を後悔することもありません。
一般的にですが、
自分が使いたい新たな言語の学習で、辛いとかキツいとか後悔とか感じる人はプログラマーに向いていません。
プログラマーに向いてる人たちにとっては、新たな学習や会得はワクワク楽しくてその時間を後悔することもありません。
900デフォルトの名無しさん
2024/01/19(金) 15:23:39.42ID:w30sYh7E >>899
禿同だな
禿同だな
901デフォルトの名無しさん
2024/01/19(金) 15:25:17.10ID:1KLWZB9m 件の人は質問がどれもバカっぽかったから習得からは程遠い印象
902デフォルトの名無しさん
2024/01/19(金) 16:19:14.85ID:vjpbBz8R Rust の個々の機能が難しいとは感じないけど
綺麗に噛み合うように全体を設計するのは C++ とは違う感覚が要るから
大きいプログラムを綺麗に設計しようとしたら最初はしんどいかも。
ボトムアップ的なスタイルで書いていくのをオススメする。
綺麗に噛み合うように全体を設計するのは C++ とは違う感覚が要るから
大きいプログラムを綺麗に設計しようとしたら最初はしんどいかも。
ボトムアップ的なスタイルで書いていくのをオススメする。
903デフォルトの名無しさん
2024/01/19(金) 16:39:45.44ID:8qrrLmZj 逆かな
みんなリファクタリングが機能しないからRustだとボトムアップじゃだめだと分かっかんだよ
みんなリファクタリングが機能しないからRustだとボトムアップじゃだめだと分かっかんだよ
904デフォルトの名無しさん
2024/01/19(金) 16:40:26.29ID:Rx8gKVuk the book自体の難しさがあるというか
905デフォルトの名無しさん
2024/01/19(金) 17:22:29.33ID:5TL7zSTv the bookを頭から読むやつなんているんだ
大してわかりやすくもないし
説明が冗長な感じだからChatGPT使った方が良いぞ
大してわかりやすくもないし
説明が冗長な感じだからChatGPT使った方が良いぞ
906デフォルトの名無しさん
2024/01/19(金) 17:23:51.53ID:vjpbBz8R 初心者にとって知らんことが書いてあるんだからそんなにスラスラとは読めないのは当たり前だし、文章自体に問題があるようには感じないな。
改善すべき点がゼロなわけではないが、少なくとも C++ を分かっているくらいの人が最初に読むには十分すぎるほどに良書じゃないの。
改善すべき点がゼロなわけではないが、少なくとも C++ を分かっているくらいの人が最初に読むには十分すぎるほどに良書じゃないの。
907デフォルトの名無しさん
2024/01/19(金) 17:34:10.12ID:vjpbBz8R 説明対象がもつ難易度より分かりやすい説明があったとしたらその説明は嘘であるか不足しているってことだ。
本来の難易度は後にならないと分からないから学習者本人には見分けられない。
本来の難易度は後にならないと分からないから学習者本人には見分けられない。
908デフォルトの名無しさん
2024/01/19(金) 17:55:40.81ID:88sLHWJm ガリ勉完璧主義者ほど隅から隅まで理解しようとするけど
要領よくChatGPTを使いこなすチャラ男に天然GPTとしてカモられている
要領よくChatGPTを使いこなすチャラ男に天然GPTとしてカモられている
909デフォルトの名無しさん
2024/01/19(金) 18:00:19.70ID:88sLHWJm 天然GPT本人はマウントして気持ち良くなりたいから他のみんなと勉強会じゃなくて家でガリ勉なんだ
910デフォルトの名無しさん
2024/01/19(金) 18:05:32.43ID:5TL7zSTv 作りたいものを決めてそれを実現するための知識をChatGPTで調べるというやり方のほうがはるかに効率が良いよ
多少間違ったこと教えてきたり
古かったりするけどそれはもう気にしてたら仕方がないので
無視してどんどん手を動かすほうが良い
多少間違ったこと教えてきたり
古かったりするけどそれはもう気にしてたら仕方がないので
無視してどんどん手を動かすほうが良い
911デフォルトの名無しさん
2024/01/19(金) 18:15:21.92ID:1hwMDgMT The Bookは簡潔にまとめるために説明をやや端折り気味
書いてる内容自体が難しいわけじゃないけど深い理解には至らないから腹落ち感を得にくい
あんまり期待しすぎず無料で読める基本チュートリアルとして捉えておくべき
書いてる内容自体が難しいわけじゃないけど深い理解には至らないから腹落ち感を得にくい
あんまり期待しすぎず無料で読める基本チュートリアルとして捉えておくべき
912デフォルトの名無しさん
2024/01/19(金) 18:26:39.26ID:OWRF5bQs ところでこのスレには組み込み開発でRustを使ってる人はいるの?
913デフォルトの名無しさん
2024/01/19(金) 18:38:50.67ID:5qNxVIXw 組み込みは頭おじいちゃんが支配してるからRust使える人いないよ
914デフォルトの名無しさん
2024/01/19(金) 18:49:19.87ID:AbS8PLZw そう組み込みも重要な分野だから、これにRustが皆無な時点で大手では大々的に採用されていないって事、せいぜい窓際
「実際に仕事で使われているプログラミング言語」(2023)
https://qiita.com/mmake/items/b346cb32ccc3bcb5d03f
「実際に仕事で使われているプログラミング言語」(2023)
https://qiita.com/mmake/items/b346cb32ccc3bcb5d03f
915デフォルトの名無しさん
2024/01/19(金) 18:52:09.31ID:wGMq60ju そうだ窓際追い出し目的でおじいちゃんにRustやらよう
916デフォルトの名無しさん
2024/01/19(金) 18:53:27.57ID:wGMq60ju そうだ窓際追い出し目的でおじいちゃんにRustやらせよう
本当にあるな
本当にあるな
917デフォルトの名無しさん
2024/01/19(金) 18:54:40.94ID:75Zji/CQ 今時の組み込みって何使ってるんだろ?
918デフォルトの名無しさん
2024/01/19(金) 18:55:15.30ID:Nlxayr7x919デフォルトの名無しさん
2024/01/19(金) 19:00:48.51ID:SK8TlxrV920デフォルトの名無しさん
2024/01/19(金) 19:08:03.87ID:pqBZI8v7 格言おじいちゃん、窓際組み込み?
921デフォルトの名無しさん
2024/01/19(金) 19:08:58.61ID:pqBZI8v7 格言は説得力とは真逆だと思うの
922デフォルトの名無しさん
2024/01/19(金) 19:10:50.73ID:+7/a4sFt 自分がこうだから他人もこうあれ
って考えは時代にそぐわない老害感がある
って考えは時代にそぐわない老害感がある
923デフォルトの名無しさん
2024/01/19(金) 19:11:44.46ID:pqBZI8v7 論理的でもなく屁理屈にも劣ります
924デフォルトの名無しさん
2024/01/19(金) 19:12:08.48ID:SK8TlxrV >>896
Rustは絶壁の学習曲線だから、段階的な学習は難しい。少なくともスタックフレームの動きを意識できないとキツイと思う。
Rustを使った開発も、小さく始める段階的開発とかきついんじゃない?ひたすらスクラップ&ビルド繰り返しそう。
Rustは絶壁の学習曲線だから、段階的な学習は難しい。少なくともスタックフレームの動きを意識できないとキツイと思う。
Rustを使った開発も、小さく始める段階的開発とかきついんじゃない?ひたすらスクラップ&ビルド繰り返しそう。
925デフォルトの名無しさん
2024/01/19(金) 20:04:18.16ID:U1u9K+K0926デフォルトの名無しさん
2024/01/19(金) 21:01:18.97ID:vjpbBz8R 全体を綺麗に構成することはしづらくても小さなモジュール単位でならそれなりに構成できるからそれを繰り返せばいい。
全体の構成を考えてから作るよりは汚いだろうけど、綺麗な全体の構成を考えるなんていう出来もしないことをやるよりはそういうボトムアップ方式のほうが少なくとも途中まではまあまあに出来る。
もちろんちゃんと全部をまともに構成できるだけの能力を身に付けられるならそれに越したことはないよ。
でも実際問題として初心者にはできないじゃんと思ったからボトムアップ方式のほうが(初心者の内は)よさそうと考えてる。
全体の構成を考えてから作るよりは汚いだろうけど、綺麗な全体の構成を考えるなんていう出来もしないことをやるよりはそういうボトムアップ方式のほうが少なくとも途中まではまあまあに出来る。
もちろんちゃんと全部をまともに構成できるだけの能力を身に付けられるならそれに越したことはないよ。
でも実際問題として初心者にはできないじゃんと思ったからボトムアップ方式のほうが(初心者の内は)よさそうと考えてる。
927デフォルトの名無しさん
2024/01/19(金) 21:22:17.40ID:U1u9K+K0 他の言語と同じ
そこにRust固有の問題はないな
そこにRust固有の問題はないな
928デフォルトの名無しさん
2024/01/19(金) 22:20:52.17ID:5TL7zSTv929デフォルトの名無しさん
2024/01/19(金) 22:39:11.81ID:vjpbBz8R 変数の寿命と連動するから意識するよ。
C/C++ の世界だと当たり前のことだから意識してる自覚すらないレベルで自然に考えてるけど。
C/C++ の世界だと当たり前のことだから意識してる自覚すらないレベルで自然に考えてるけど。
930デフォルトの名無しさん
2024/01/19(金) 22:39:43.86ID:eEzmAF9q 人格をもたない書物は効率が悪いという風潮は面白い
人格がなければ報酬とか私刑とかができないってことだろうか
人格がなければ報酬とか私刑とかができないってことだろうか
931デフォルトの名無しさん
2024/01/19(金) 22:43:52.06ID:Hr4uH45j 進行が早くなったのでいつもの
次スレはなしで既存のワッチョイスレにしよう
過疎るのは既定路線なので頃合いでしょ
次スレはなしで既存のワッチョイスレにしよう
過疎るのは既定路線なので頃合いでしょ
932デフォルトの名無しさん
2024/01/19(金) 23:05:04.70ID:Rx8gKVuk 「スタックフレームを意識する」というのはどの程度を指してるんだろう。
どれがスタックに積まれるかとどうスタックに積まれるかは違うわけで。
どれがスタックに積まれるかとどうスタックに積まれるかは違うわけで。
933デフォルトの名無しさん
2024/01/19(金) 23:24:13.49ID:LbAGY+B7934デフォルトの名無しさん
2024/01/19(金) 23:35:33.58ID:QqY+6sl7 オラから『Rustの練習帳』って新刊が出るんだね
タイトルがエモい
タイトルがエモい
935デフォルトの名無しさん
2024/01/19(金) 23:44:43.13ID:NtpPLEep ワクワクすっぞ
936デフォルトの名無しさん
2024/01/20(土) 00:29:37.21ID:zhjwtCng オライリーをオラと略す人は初めて見た
937デフォルトの名無しさん
2024/01/20(土) 00:46:25.56ID:B5JkVzvF そう?
オラの村では普通だでね
オラの村では普通だでね
938デフォルトの名無しさん
2024/01/20(土) 01:10:08.13ID:ppE6WkEJ 都会は進んでるなあー
939デフォルトの名無しさん
2024/01/20(土) 01:16:50.20ID:zhjwtCng ミスチルはわかるんだ
ミスター・チルドレンは長いから
サザンもサザンオールスターズは長いからわかる
マクドもマクドナルドは長いからギリわかる
オライリーをオラは無いだろ
たかが2文字略すなと思った
ま、どうでもいいんだがな
ミスター・チルドレンは長いから
サザンもサザンオールスターズは長いからわかる
マクドもマクドナルドは長いからギリわかる
オライリーをオラは無いだろ
たかが2文字略すなと思った
ま、どうでもいいんだがな
940デフォルトの名無しさん
2024/01/20(土) 01:51:39.52ID:HZE0SdTu スクリプト言語出身者が増えたせいだよ
スタックフレームやヒープなんてCSやってりゃ習うでしょ
コンパイラかコンピュータアーキテクチャでやる
スクリプト言語はスタックフレームの開放も全てGCがやることになるから
全く意識しないんだよな
スタックフレームやヒープなんてCSやってりゃ習うでしょ
コンパイラかコンピュータアーキテクチャでやる
スクリプト言語はスタックフレームの開放も全てGCがやることになるから
全く意識しないんだよな
941デフォルトの名無しさん
2024/01/20(土) 01:55:10.81ID:ppE6WkEJ スクリプト言語に限らず、C/C++を書かなければそこら辺に気を使う機会はないよ
942デフォルトの名無しさん
2024/01/20(土) 07:57:38.44ID:lqSANakz >>937
公式にオラの村ってのがあるよね
公式にオラの村ってのがあるよね
943デフォルトの名無しさん
2024/01/20(土) 08:33:10.42ID:QXcnqV7m GCありでパフォーマンスも関係ないなら、スコープだけ気にしていれば困らないしね。
944デフォルトの名無しさん
2024/01/20(土) 08:49:07.11ID:G76ZEaWY >>939
マクドじゃなくてマックね
マクドじゃなくてマックね
945デフォルトの名無しさん
2024/01/20(土) 09:18:20.17ID:viZi/CYZ webサービスまわりは全部スクリプト言語かGCランタイム付き言語だもんなあ
946デフォルトの名無しさん
2024/01/20(土) 11:01:53.93ID:ppE6WkEJ 最近は組み込みもC/C++を使う理由がないことが多い
947デフォルトの名無しさん
2024/01/20(土) 11:38:27.03ID:lE+lj03S オラは「Rust for Rustaceans」の訳書出さないな
本格的にRustやるなら必読書なんだけどな
本格的にRustやるなら必読書なんだけどな
948デフォルトの名無しさん
2024/01/20(土) 11:42:02.65ID:o5qofGYG スクリプト言語はともかく静的にコンパイルする言語ならGC言語でもスタック/ヒープは意識するけどね
949デフォルトの名無しさん
2024/01/20(土) 12:07:36.77ID:KBzblFQB >>945
CPU時間(ミリ秒)あたりで課金されるからこそのRustだよ
CPU時間(ミリ秒)あたりで課金されるからこそのRustだよ
950デフォルトの名無しさん
2024/01/20(土) 12:23:09.39ID:+uoYRouQ オンプレミスでも同じ
Rustで書くかスクリプト言語で書くかでサーバーやメモリの必要量が何倍も変わる
電気代も節約できRustはエコにも貢献
Rustで書くかスクリプト言語で書くかでサーバーやメモリの必要量が何倍も変わる
電気代も節約できRustはエコにも貢献
951デフォルトの名無しさん
2024/01/20(土) 12:30:18.74ID:KBzblFQB そう、CO2排出量を考えたら、Rust以外で書くのは社会にとっての悪
952デフォルトの名無しさん
2024/01/20(土) 12:33:36.69ID:wJQgtkwZ 昔は全体の性能に余裕があって I/O (ストレージと通信) が極端に足を引っ張る状況だったから言語処理系の動作速度は問題にならなかったけど今は全ての性能をギリギリまで絞り出す勝負に変わってる感じだね。
953デフォルトの名無しさん
2024/01/20(土) 12:46:54.29ID:+pH1NoHl Rust言語は
・タイプセーフ、メモリセーフによる高い安全性
・並列プログラミング処理設計
・ガベージコレクタのようなランタイム無しに動作
だから、これらを活かせる製品に採用したらいいんじゃないかな
いまどきそんなのは組み込みロボットとかカーネルやエンコーダデコーダくらいしかないような気がするけど
・タイプセーフ、メモリセーフによる高い安全性
・並列プログラミング処理設計
・ガベージコレクタのようなランタイム無しに動作
だから、これらを活かせる製品に採用したらいいんじゃないかな
いまどきそんなのは組み込みロボットとかカーネルやエンコーダデコーダくらいしかないような気がするけど
954デフォルトの名無しさん
2024/01/20(土) 12:56:12.54ID:UT8XEnd7955デフォルトの名無しさん
2024/01/20(土) 13:15:54.83ID:KWXCbsaH ウェブっていうかwasmじゃね?
rustじゃないけどffmpegのwasm実装は使ったことある
rustじゃないけどffmpegのwasm実装は使ったことある
956デフォルトの名無しさん
2024/01/20(土) 13:17:39.73ID:NDqmkpk/ >>954
Webって言っても大規模なユーザーがいるようなものじゃない?
大した事無いサービスで、スペック高い人が必要なRustはまだまだ辛い気がする。Javascript並みに誰でも使えますって世の中になったらRust一択でも良いのかもしれないけれど。
Webって言っても大規模なユーザーがいるようなものじゃない?
大した事無いサービスで、スペック高い人が必要なRustはまだまだ辛い気がする。Javascript並みに誰でも使えますって世の中になったらRust一択でも良いのかもしれないけれど。
957デフォルトの名無しさん
2024/01/20(土) 13:22:10.20ID:KBzblFQB AWSもGCPもサーバーレス環境とかのランタイムや下周りがだいたいRustで書いてある
958デフォルトの名無しさん
2024/01/20(土) 13:22:24.95ID:lxegQoou CO2排出量は難しいな
Rust書けない人間がCO2排出するだけのうんこ生産機になってしまうのもあんまエコじゃない気がする
Rust書けない人間がCO2排出するだけのうんこ生産機になってしまうのもあんまエコじゃない気がする
959デフォルトの名無しさん
2024/01/20(土) 13:24:24.78ID:tKcafxZR actix-webはどうなん?自分はよく知らんのだが使ってる人いるんけ?
960デフォルトの名無しさん
2024/01/20(土) 13:24:56.70ID:NDqmkpk/ >>958
そんなこと言ってると、Rustへのリスキリング時のco2排出量もRustのコストって言われちゃうぞ。
そんなこと言ってると、Rustへのリスキリング時のco2排出量もRustのコストって言われちゃうぞ。
961デフォルトの名無しさん
2024/01/20(土) 13:27:59.09ID:KBzblFQB CO2排出量を考えて、コンパイル中は息を止めている
962デフォルトの名無しさん
2024/01/20(土) 13:34:01.02ID:vYJJrZqN JavaがOracle事件で終わって脱SpringでRustのActixがついに普及するかなと思ったらC#のASP.NETにみんな行っちゃった
963デフォルトの名無しさん
2024/01/20(土) 13:39:08.81ID:tKcafxZR >>962
そうなんか…
そうなんか…
964デフォルトの名無しさん
2024/01/20(土) 13:57:32.93ID:ngmk9luX Javaが脱Springなんて馬鹿げた事言い出してるのかと見間違えたが
脱Javaの話か
Rustは学習コスト高いからJavaでやってた様な大人数プロジェクトには向かんだろう
脱Javaの話か
Rustは学習コスト高いからJavaでやってた様な大人数プロジェクトには向かんだろう
965デフォルトの名無しさん
2024/01/20(土) 14:59:14.28ID:ppE6WkEJ みんな経済合理性でRustを選択するんだよな
966デフォルトの名無しさん
2024/01/20(土) 15:49:27.64ID:w9m16ZcP >>952
特に機械学習ではその方向が顕著
MLIRみたいにSIMDやGPUを使う前提でIRが設計されてる
Node.jsが切り開いた非同期IOの登場もでかい
これによってIOの比重が高いプログラムでもIO待ちがなくなり
さらにマルチコア、GPUを活かせる環境が整った
一方Rustはtokioなどの非同期IOを実現できるフレームワークが山のようにある
さらにSIMD命令を直接使える仕様も整備されてきている
(LLVMの最適化によって勝手に使われることも多いが)
マルチスレッドは言わずもがな
他の言語でこれらを全てサポートしている言語はない
現在の最先端の環境を活かせる言語は他に選択肢がない
特に機械学習ではその方向が顕著
MLIRみたいにSIMDやGPUを使う前提でIRが設計されてる
Node.jsが切り開いた非同期IOの登場もでかい
これによってIOの比重が高いプログラムでもIO待ちがなくなり
さらにマルチコア、GPUを活かせる環境が整った
一方Rustはtokioなどの非同期IOを実現できるフレームワークが山のようにある
さらにSIMD命令を直接使える仕様も整備されてきている
(LLVMの最適化によって勝手に使われることも多いが)
マルチスレッドは言わずもがな
他の言語でこれらを全てサポートしている言語はない
現在の最先端の環境を活かせる言語は他に選択肢がない
967デフォルトの名無しさん
2024/01/20(土) 16:00:45.48ID:tKcafxZR RustのWebアプリケーションは未履修だけどぜひやりたいなあ
968デフォルトの名無しさん
2024/01/20(土) 18:46:27.21ID:PTOG17pe969デフォルトの名無しさん
2024/01/20(土) 18:55:33.87ID:I+Fu8n3P >>964
90年代後半にコボラーがJavaでWebアプリを作れるようになるための学習コストに比べればRustの学習コストは断然低い
90年代後半にコボラーがJavaでWebアプリを作れるようになるための学習コストに比べればRustの学習コストは断然低い
970デフォルトの名無しさん
2024/01/20(土) 19:12:06.87ID:6DBgVQg4 >>969
その時期にいた純粋コボラーって定年間際のジジイじゃん。そりゃ学習コスト高いわ。
その時期にいた純粋コボラーって定年間際のジジイじゃん。そりゃ学習コスト高いわ。
971デフォルトの名無しさん
2024/01/20(土) 19:21:51.44ID:w9m16ZcP httpclientもそれぞれのイベントループに対応したものをつかわないとダメだから割と面倒なんだよね
使い方もフレームワークによってかなりクセが違っていて面倒だし
ぶっちゃけWebはGoやpythonでいいんじゃねーかって思う
使い方もフレームワークによってかなりクセが違っていて面倒だし
ぶっちゃけWebはGoやpythonでいいんじゃねーかって思う
972デフォルトの名無しさん
2024/01/20(土) 19:26:03.92ID:tKcafxZR Goでいいは分かる
973デフォルトの名無しさん
2024/01/20(土) 19:56:32.80ID:k6CjZuQW Go のランタイムサポートは分厚めだがどうせ要るもの(やること)と考えればそんなに速度的に不利なわけではないよな。
974デフォルトの名無しさん
2024/01/20(土) 20:11:15.24ID:u/fg5YR1 速度的にはGoで十分なんだけど型とか貧弱すぎるんだよな…
sumタイプとパターンマッチくらいは欲しい
sumタイプとパターンマッチくらいは欲しい
975デフォルトの名無しさん
2024/01/20(土) 20:17:19.49ID:tNrs3Odf976デフォルトの名無しさん
2024/01/20(土) 21:17:45.54ID:w9m16ZcP >>975
いやデファクトがあるのは良いけど
例えばコマンド実行1つとっても
tokio::process::commandとか使わなきゃいけなくてなんだかなあと
非同期版じゃないのと区別しなきゃいけなくて嫌気が刺す
まあpythonもasync使えば同じことなのだけど
いやデファクトがあるのは良いけど
例えばコマンド実行1つとっても
tokio::process::commandとか使わなきゃいけなくてなんだかなあと
非同期版じゃないのと区別しなきゃいけなくて嫌気が刺す
まあpythonもasync使えば同じことなのだけど
977デフォルトの名無しさん
2024/01/20(土) 21:24:03.71ID:w9m16ZcP まあ俺はRust信者だから使うのだけど普通の人はなかなか辛いんじゃないかなーと
その点Goは何も考えなくて良いしpythonもasync使わなけりゃ同期的に書けるし
その点Goは何も考えなくて良いしpythonもasync使わなけりゃ同期的に書けるし
978デフォルトの名無しさん
2024/01/20(土) 21:48:04.29ID:USm4U3n4 >>976
PythonもasyncはそうだしJavaScript(Node)も同期execと非同期exec分かれているし
動作が異なるのだから別になるのは当たり前
もちろんRustでも同様で
そもそも関数の返り値が異なる
だから関数が分かれているのは正しい
したがって一番下位のライブラリが別であることに何ら問題はない
一方で中位ライブラリ作成側の視点に立つと
同期か非同期かだけの違いでasync/awitを除いて全く同じ構造の関数を作ることになる
そのため『?async』キーワードによるジェネリック化がRustでは進められている
期待しているのはこの話でよいのか?
PythonもasyncはそうだしJavaScript(Node)も同期execと非同期exec分かれているし
動作が異なるのだから別になるのは当たり前
もちろんRustでも同様で
そもそも関数の返り値が異なる
だから関数が分かれているのは正しい
したがって一番下位のライブラリが別であることに何ら問題はない
一方で中位ライブラリ作成側の視点に立つと
同期か非同期かだけの違いでasync/awitを除いて全く同じ構造の関数を作ることになる
そのため『?async』キーワードによるジェネリック化がRustでは進められている
期待しているのはこの話でよいのか?
979デフォルトの名無しさん
2024/01/20(土) 23:05:04.71ID:w9m16ZcP >>978
いや見た目は似ててもpythonとはだいぶ違うよ
まずpythonでのasync defは単なるコルーチンオブジェクトなので非同期とか関係ない
これにより恐ろしい柔軟性を持ってる
さらにWebにおいてはASGIという非同期Webフレームワークが満たすべき仕様をまず決めた
その仕様を満たしさえすればどのような実装でも非同期の機能を満たせるような仕様となっている
そこにはもうイベントループなどの概念は消え去っている
さらに同期版と同居できる仕様となっている
なのでdjangoなどは同期版と非同期版の切り替えが可能となっている
このように明らかにユーザーフレンドリーな姿勢を貫いている
いや見た目は似ててもpythonとはだいぶ違うよ
まずpythonでのasync defは単なるコルーチンオブジェクトなので非同期とか関係ない
これにより恐ろしい柔軟性を持ってる
さらにWebにおいてはASGIという非同期Webフレームワークが満たすべき仕様をまず決めた
その仕様を満たしさえすればどのような実装でも非同期の機能を満たせるような仕様となっている
そこにはもうイベントループなどの概念は消え去っている
さらに同期版と同居できる仕様となっている
なのでdjangoなどは同期版と非同期版の切り替えが可能となっている
このように明らかにユーザーフレンドリーな姿勢を貫いている
980デフォルトの名無しさん
2024/01/20(土) 23:17:14.31ID:wyzQTwgG981デフォルトの名無しさん
2024/01/20(土) 23:26:48.19ID:HZE0SdTu >>980
コルーチンではないでしょ
コルーチンではないでしょ
982デフォルトの名無しさん
2024/01/20(土) 23:49:39.00ID:nUH4CzWh Rustのasyncはstackless croutineでstate machineとなっている
個別stackのresouceもswitchingも不要なため軽くて有利
個別stackのresouceもswitchingも不要なため軽くて有利
983デフォルトの名無しさん
2024/01/20(土) 23:50:29.43ID:u/fg5YR1 Rustのasyncは(スタックレス)コルーチンである
Rustのasyncは(スタックフル)コルーチンではない
どっちも正しいとは思うけど
Rustのasyncは(スタックフル)コルーチンではない
どっちも正しいとは思うけど
984デフォルトの名無しさん
2024/01/21(日) 10:13:23.50ID:VnWGTEfZ985デフォルトの名無しさん
2024/01/21(日) 11:18:24.63ID:JCOE1HZY DAD御用達?
986デフォルトの名無しさん
2024/01/21(日) 11:24:54.33ID:8LqvrPkW 物理攻撃にソフトウェアを活用するってある意味「お花畑」だよな
987デフォルトの名無しさん
2024/01/21(日) 11:29:12.59ID:7K9itJgV パパ活か?DoDだろ
DoD御用達はAdaだぞ
DoD御用達はAdaだぞ
988デフォルトの名無しさん
2024/01/21(日) 11:46:34.67ID:VnWGTEfZ やっぱりAdaしかないか
プリプロセッサ使うのもNGだからマクロがダメなんかな
プリプロセッサ使うのもNGだからマクロがダメなんかな
989デフォルトの名無しさん
2024/01/21(日) 11:59:39.08ID:dFB+Bg2+ とはいえF-35はC++だったんだし、そのうちRust採用されてもおかしくはないけどな
990デフォルトの名無しさん
2024/01/21(日) 12:09:12.81ID:4CYZ0hXB The Book読んでコード打ち込んだりしたが理解できた気がしない
次はどうすればいいの
次はどうすればいいの
991デフォルトの名無しさん
2024/01/21(日) 13:24:30.49ID:8LqvrPkW 仕様の次は実装とか
いま極端なところにいる奴は次はもう一方の極端に行けばいいし
ちょうどいい位置にいる奴は一生そこに居続ければいいのでは?
いま極端なところにいる奴は次はもう一方の極端に行けばいいし
ちょうどいい位置にいる奴は一生そこに居続ければいいのでは?
992デフォルトの名無しさん
2024/01/21(日) 14:20:11.30ID:sCtD39A+ >>990
理解できてないと感じるのがunsafeやasyncやマクロ辺りならそこは一旦放置して小さいCLIツールをいくつか書いて実践経験を一度積むほうがいいかもしれない
逆にownership/reference/lifetime/generic/traitといったコアなところが理解できてないと感じるならオライリー本など別の入門書をすすめる
理解できてないと感じるのがunsafeやasyncやマクロ辺りならそこは一旦放置して小さいCLIツールをいくつか書いて実践経験を一度積むほうがいいかもしれない
逆にownership/reference/lifetime/generic/traitといったコアなところが理解できてないと感じるならオライリー本など別の入門書をすすめる
993デフォルトの名無しさん
2024/01/21(日) 15:14:08.20ID:eSjvKxMy994デフォルトの名無しさん
2024/01/21(日) 15:15:15.91ID:eSjvKxMy F-15は50年以上空を飛んでいることを思い出してほしい
Rustは50年後存在しない
Rustは50年後存在しない
995デフォルトの名無しさん
2024/01/21(日) 15:44:39.63ID:cX88PWDV996デフォルトの名無しさん
2024/01/21(日) 15:46:08.09ID:4rk7TZPC 統計学的に会社や国家、生物種の存続見込みを解析した例を見たことが有るな。
これまでの歴史が長いものはこれからも長く続く可能性が高い。
これまでの歴史が長いものはこれからも長く続く可能性が高い。
997デフォルトの名無しさん
2024/01/21(日) 15:50:57.32ID:eziZnnQK >>996
Javaみたいにホストがアホなことするとすぐ廃れるけどな
Javaみたいにホストがアホなことするとすぐ廃れるけどな
998デフォルトの名無しさん
2024/01/21(日) 16:55:47.23ID:4CYZ0hXB >>992
ありがと
ありがと
999デフォルトの名無しさん
2024/01/21(日) 19:43:22.00ID:/dcZ0aWP1000デフォルトの名無しさん
2024/01/21(日) 20:22:28.74ID:mpR7a4j6 >>994
C++みたいに、色々な実装がでてくれは、50年後にも生きてるんじゃない?
C++みたいに、色々な実装がでてくれは、50年後にも生きてるんじゃない?
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 158日 21時間 57分 50秒
新しいスレッドを立ててください。
life time: 158日 21時間 57分 50秒
10021002
Over 1000Thread 5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/
▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★3 [1ゲットロボ★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」★2 [冬月記者★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- 「稼ぐのよ!」高市総理が電話ガチャ切りで伝えたこと 鈴木憲和農林水産大臣が国政報告会に出席 自身が目指す農政の方針語る [煮卵★]
- 自衛隊の船を爆破して中国が攻撃してきたって自作自演できねえかな?👈今の高市が考えてそうなこと [369521721]
- 『しんちゃんと岸田さん』 [175344491]
- 日本株、大暴落!!! [252835186]
- 識者「『フリーパレスチナ』とかイキってる連中が台湾の話になると『中国を怒らせるな!』ってなる。ほんと左翼の正義って薄っぺらい」 [279254606]
- 高市と安倍の共通点。それは、子供がいないこと。そういう奴が戦争を煽る [805596214]
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
