Rust part33

1デフォルトの名無しさん
垢版 |
2025/08/15(金) 17:49:30.70ID:N8TIzbWg
公式
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 part32
https://mevius.5ch.net/test/read.cgi/tech/1755057787/
Rust part31 https://mevius.5ch.net/test/read.cgi/tech/1751545806/
Rust part30 https://mevius.5ch.net/test/read.cgi/tech/1748392296/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
2025/08/24(日) 12:05:10.36ID:DXAve6fe
Goでタプルがなくて辛いという話は聞いたことがないな
最適化の観点抜きで機能的に他でカバーできるから不要と言ってしまうと、
例えばオブジェクトは全部ヒープに置いてスマポの所有権移動だけにしてしまえば複雑なムーブは不要となり遥かにシンプルになる
それはそれで一つの考え方だが、Rustはそういう言語ではないと思っているのだろう?
2025/08/24(日) 12:08:19.32ID:veJK4T2Q
返却された値がスタック上でどう扱われるかというのは言語仕様でなく最適化の問題だから、そこはRustではなくLLVMの話
言語仕様としては「Rustではタプルを簡単に作れる」「タプルの中身を別々の変数に束縛できる」というだけ
多値返却の目的からすればこれで十分だし、多くの言語はこれに相当する

Goは本当に多値返却という仕様で、これはタプルを返すのとは違う
そもそもタプルが言語仕様になくて、関数の返り値でだけ多値を返せるという変わった仕様
だから、2つの戻り値を返す関数を1変数で受け取ることができなかったりする
(Rustでいえば「戻り値を分解せず1つのタプル変数 t で受け取る -> t.0, t.1 のようにアクセスする」という書き方がGoではできない)

だから言語仕様としての話をしたいのか、「関数から複数の戻り値を返す」という目的の話をしたいのかで話は変わる
後者については、最近の多くの言語ではサポートしてるし、そんなに話がズレることもない
前者の意味でなら、Rustは多値返却の構文を持つ言語とは違う
2025/08/24(日) 12:16:23.06ID:aQdKZ7zp
Goの多値とRustのタプルは同じ
どちらも実装は多値として返すため多値レジスタ返しが可能ならばそうするため効率が最も優れている
関数定義もほぼ同じ
func foo() (type1, type2) {…
fn foo() -> (type1, type2) {…
2025/08/24(日) 12:16:31.50ID:tCu5AZNy
バカなやつほど抽象度の区別ができない
バカなやつほどオレオレ定義で用語を使う
バカなやつほど主語を書かない

本当に相手にする価値があるか考えよう
改善の見込みがないバカなら何を書いても時間の無駄でしかない
2025/08/24(日) 12:26:32.12ID:95hjiUrq
多値を抽象化して機能を強化したものがタプルだもんね
だから多値でできることは全てタプルでもできるんだよ
タプルを持つ言語は機能の低い多値を別途持つ必要がない
2025/08/24(日) 12:50:55.19ID:veJK4T2Q
「タプルがあれば十分」は殆どのケースでは同意するけど、Goに限ってはそうする理由があるんだよ
エラーを多値で返す仕様かつ、エラー処理を明示的に書かせる思想の言語だから
value, err := foo()
のように err がコード上に表れるようにする必要があって、これはタプルだとまずい
t := foo() と書けてしまうと「タプルの2要素目がエラー」というのが見えなくなる

これは割とGo特有の事情で、Result型や例外を使う言語だとタプルでも困らない

言語仕様というのは他の部分も含めた全体的なデザインとして考えるものだから、「Rustではタプルで困らない」が正しくても、他の言語含めて全てそうだとは言えない
2025/08/24(日) 12:56:30.01ID:9a3ehhoR
>>49
>バカなやつほど抽象度の区別ができない
>バカなやつほどオレオレ定義で用語を使う
>バカなやつほど主語を書かない

汚コーダーの特徴が濃縮されてるね
3番目は「書かない」というより「書けない」だと思う
2025/08/24(日) 13:02:12.19ID:LAWD3p/v
原始的な剥き出しの多値を扱う必要のない言語においては、タプル多値があれば多値をサポートしているという結論でいいんじゃないかな
2025/08/24(日) 13:07:02.23ID:vekMbO+E
Rustはnamed tupleもanonymous structもなくunnamed tupleで位置でアクセスするか事前に定義した型で名前でアクセスするかしかないから利便性ではモダンな他言語に一段劣る
2025/08/24(日) 13:18:17.18ID:kBf9AmUd
>>54
これ便利だと思う?

# まずnamedtuple関数をインポートします
from collections import namedtuple

# 次にNamed Tupleを定義します
Point = namedtuple('Point', ['x', 'y'])

# そしてインスタンスを作ります
p = Point(10, 20)

# 名前でアクセスできるようになります
print(p.x) # Output: 10
print(p.y) # Output: 20
2025/08/24(日) 13:28:22.18ID:fUN48E4b
>>51
いや、エラーに限らずt.0とか普通に可読性最悪だからね
多値をタプルとして実装するなら、即時の分割代入を必須とするか、もしくはC#のようにpositionalなタプルと互換性のあるnamed tupleとするか、どちらかは必須
2025/08/24(日) 13:41:09.97ID:uDNIRrgr
必要となるまでは1つのまとまりとして一括して扱えたほうが有利
必要になったところでパターンマッチングさせて個別に用いる
2025/08/24(日) 13:49:22.14ID:+tDfyqBW
Rustは必要なところではパターンマッチングできるから不便なことはないよな
2025/08/24(日) 13:56:11.80ID:fUN48E4b
取得から消費までのコード上の距離が離れるほど人間の短期記憶の負担になり可読性が低下する
複おじは特に頭悪いから実感してるんじゃない?
2025/08/24(日) 14:11:41.28ID:0UxuBUhy
let (unko, chinko) = unkochinko
とか突然出てきてunkochinkoの宣言が離れてたら、合ってるのか不安を感じてつい宣言までスクロールしちゃうわ
離れた場所での位置依存は普通に可読性最悪
2025/08/24(日) 14:14:05.68ID:ieA/MpG4
>>56
ジェネリックに意味を持たない局面もあるからそこでt.0を使うのは適してる
意味がある局面なら例えばfor (index, name) in ...や|(index, name)| ...のように使われるから名前でアクセスできる
62デフォルトの名無しさん
垢版 |
2025/08/24(日) 14:15:37.70ID:veJK4T2Q
>>56
C#も分割代入しない書き方はできるじゃん
その場合の可読性はPythonもC++もC#もそう変わらないかと (t[0], get<0>(t), t.Item1)

意味のある名前を付けたいなら、それはRustでもstructを定義すれば済む話だし
C#の匿名クラスの便利さもまあ分かるけど、あれば嬉しいくらいで、個人的には必須とまでは思わない
2025/08/24(日) 14:18:45.06ID:m/1beq6h
>>62
C#には匿名型とは別にnamed tupleがあって、positional tupleと互換性を持ったままフィールドに名前を付けられる
2025/08/24(日) 14:23:02.15ID:VS0PssfI
>>55
named tupleの定義が面倒&カッコ悪いな
2025/08/24(日) 14:40:44.45ID:f2gy7gmS
Pythonの名前付きタプルは普通に使いにくいからな…
その用途なら dataclass にしとけ、というのが共通認識だと思う
2025/08/24(日) 17:03:59.99ID:apxru5vn
>>55
それは文法としてnamed tupleをサポートしてないからだよ
サポートしてれば下のように書ける

def foo() -> (x: int, y: int):
 return (x: 10, y: 20)

p = foo()
print(p.x, p.y)
x, y = foo()
print(x, y)
2025/08/24(日) 17:15:02.39ID:7zDT8kXu
事実と意見を区別しろ
前提を明確に示せ
異なる前提に依存する結論を無理に適用するな
2025/08/24(日) 17:48:30.01ID:+zGYyK0c
>>66
これで済む話
let (x, y) = foo();
2025/08/24(日) 18:53:52.96ID:xPc+Pkry
>>66
筋がよくなく中途半端に感じる
その型を他でも用いるならば型に名前を付けて宣言したほうがよく
その場限りならば>>68
2025/08/24(日) 19:23:45.82ID:o5OQy7cK
let (manko, chinko) = foo(); // 本当のfoo()の返す中身は(chinko, manko)
が許されるから、それって嫌だよねって話じゃないの?
2025/08/24(日) 19:32:58.00ID:lcXQ4DrV
>>70
そうそう
AIに生成させるにしても、fooが別のパッケージだったりするとシグネチャだけで要素の意味を推測できないのは辛いわな
2025/08/24(日) 19:44:34.69ID:PRkNyipX
別なら構造体を定義しろ
2025/08/24(日) 22:32:48.16ID:O8wAGFa3
>>68
どっちかというと真逆でRustの場合は1mmでも名前でアクセスしたいと感じるものは構造体を定義しないといけない

>>69
中途半端に感じるのは当然
事前に構造体を定義しておくほどではないが要素には名前でアクセスしたいというものすごく中途半端な状況にこそ求められる機能だから
2025/08/25(月) 06:47:36.11ID:E2rxLwdP
>>59
>>60
それらは古典的プログラミングだから無関係な処理が間に挟まったり流れが乱されるため可読性が落ちる
Rustでは抽象化したプログラミングによりメソッドチェーンで繋ぐことが多い
チェーンの間はタプルのまま旅を続けたとしても一つの流れなので可読性は落ちない
チェーンの途中もしくは最後のforやfold系でパターンマッチングされてタプルが解消されればよい
2025/08/25(月) 08:15:32.90ID:foAG4KWU
多値戻しは_をサポートしてなければコーダーにとってはどうでもいい話じゃないんかね。
最適化機会を明示できるかどうかくらいじゃね?
2025/08/25(月) 10:18:01.04ID:hSk6qQ9G
ながめてるとたしかに_多いな

>fn f(init: &str, n: usize) -> String {
> let mut list = init.chars().rev().collect::<Vec<_>>();
> for _ in 1..n {
>  if let Some((pre_index, (_, old))) = list.iter().tuple_windows().enumerate().find(|(_, (pre, cur))| pre > cur) {
>   let old_index = pre_index + 1;
>   let (new_index, _) = list.iter().enumerate().find(|(_, cur)| cur > &old).unwrap();
>   list.swap(old_index, new_index);
>   list[..old_index].reverse();
>  }
> }
> list.into_iter().rev().collect()
>}
2025/08/25(月) 12:25:47.76ID:lo8Kz+ZF
タプルの片方は途中不要で最後に必要だが、もう片方はその逆とかよくあるある。
後者のfind()はposition()に置き換えられるが、二つのfindが対称形の処理ぽいのでそのままでもいいか。
2025/08/25(月) 15:50:58.87ID:4Ejmg1ls
まだ多値の話してる・・・
2025/08/25(月) 16:13:59.05ID:M76UE5qm
このスレはあくまで複おじのファンスレッドだから
複おじの興味が続けばその話題が続くんだよ
2025/08/25(月) 21:09:46.97ID:KzDmCwhz
ファンじゃなくて自演スレだから
2025/08/27(水) 18:45:58.51ID:s/5KNF71
タプルといえばzipとmultizipの方針の違いでVec指定の与え方が微妙差
let (counts, chars) = str.chars().sorted().dedup_with_count().unzip::<_, _, Vec<_>, Vec<_>>();
let (counts, chars) = str.chars().sorted().dedup_with_count().multiunzip::<(Vec<_>, Vec<_>)>();
2025/08/28(木) 10:55:22.21ID:OS0cfYx9
抽象なんて「見たいものだけを見る」という程度の意味だからね
もしメモリ管理が最大の関心事なら
抽象度が最も高いIUnknownにリファレンスカウント機能をつけていい
2025/08/28(木) 11:58:26.45ID:1IatnfJ+
>>81
左辺に型を書けばいいんだよ
そのほうが読みやすいしタイプ数も少ない
あとunzip/multiunzipはcollectでも代用可
2025/08/28(木) 15:40:44.35ID:OS0cfYx9
なんで掛け算の引数には名前がないんだろう
順序を逆にできない理由が一目でわかるような名前があるなら名前をつけるべき
2025/08/28(木) 20:43:02.31ID:fdP0HyCm
>>81
unzipはトレイトを使っていないため余分なパラメタが露出してしまってる
multiunzipはトレイトMultiUnzipを
collectはトレイトFromIteratorを使っている

>>83
今年のRust 1.85からタプルもcollectできるようになったね
2025/08/30(土) 05:57:20.14ID:JBC8dN2M
a * b * c
は b や c のすぐ隣に目印があるからキーワード引数は不要だ

mul(a, b, c)
(* a b c)
このような記法だけが、b c 付近で文法的サポートが不足している問題を抱えている
2025/08/30(土) 23:22:46.71ID:6bFj+97W
>>55
namedtupleは廃れて今はdataclassを使う
Rustでの#[derive(Debug, Hash, Ord)]付き構造体相当
結局Pythonでもそのへんはちゃんとしてほしいことになった
2025/08/31(日) 09:51:10.58ID:cF2U6lLu
ハッシュ関数を使えば保守的GCが廃れる
確率を見たらカオスと思え
2025/08/31(日) 10:00:25.50ID:mJd+1ya1
>結局Pythonでもそのへんはちゃんとしてほしいことになった
誰か日本語に翻訳して
2025/08/31(日) 10:52:20.39ID:QUPYnWaR
足りない頭で必死に調べた複おじの努力を認めて差し上げろ
それはともかく、一般にスクリプト言語ではタプルはあまり好まれず、辞書が好まれる傾向がある
- ユーザーが辞書データ構造を使ってレコードを扱うことに慣れている
- 辞書を扱うための簡便な構文が存在する場合が多い
- 辞書と配列の速度やメモリ使用量の差が問題にならない
- 値が増えた場合にランタイムエラーを引き起こす
なお、dataclassは辞書に対する型付きのラッパーに過ぎない
あくまでこれはスクリプト言語の事情であり、Rustのような静的言語においてはレコードはタプル(構造体は名前付きのタプルの一種)として実装することが基本であることに注意しなければならない
2025/08/31(日) 17:32:35.66ID:qrCON/OK
辞書かどうかは本質ではない
辞書として用いないことが圧倒的に多いため例えばV8では静的解析で判明するプロパティを構造体フィールドのように扱い実行するため辞書実装とは異なり速い
2025/08/31(日) 18:15:49.65ID:IkR/a1qs
また的外れなレスだなぁ
結局複おじにもそのへんはちゃんとしてほしいことになった
2025/08/31(日) 18:20:32.10ID:yY4/9rZW
>>91
V8のプロパティアクセスの最適化は基本的には静的解析に依存しないよ
同じプロパティが同じ順序で追加されたオブジェクトは同じ型と見做してキャッシュされたプロパティの位置を利用する
あくまで辞書データ構造を前提としたままでキャッシュ戦略を工夫しているに過ぎない
2025/08/31(日) 23:19:02.35ID:cF2U6lLu
魔法の数字ではなく
ちゃんとenumを使うことになった
2025/08/31(日) 23:24:15.68ID:Dds/cnqW
Minimal Embedded FAT32 Driver - in Rust!
https://www.youtube.com/watch?v=VcWXn8B9RoE
96デフォルトの名無しさん
垢版 |
2025/09/02(火) 22:34:52.76ID:sEJ6dDWm
「Rust」の平均単価が3カ月連続上昇 エン・ジャパンがフリーランス案件の分析レポートを発表
https://atmarkit.itmedia.co.jp/ait/spv/2508/21/news045.html

開発言語別では、比較的新しい言語「Rust」が3カ月連続で平均単価を伸ばし、87万4000円(2025年6月比で4.4%増)で1位となった。
2025/09/03(水) 01:10:14.83ID:rmZ6WmxL
もういいよ
2025/09/03(水) 06:18:41.58ID:Myuv+TwW
Rustがトップになる予想が当たったね
2025/09/03(水) 08:43:05.32ID:Ypa4ifGO
これからどんどん増えるで
2025/09/03(水) 10:27:14.93ID:pUgFa8ls
https://corp.en-japan.com/newsrelease/2025/42699.html
Goもそうだけどレベル低い人(特定言語の習熟度ではなく基礎的な技術力の観点で)お断り案件がほとんどだから単価が高く出る
つまり裾野が狭いことを意味するわけで、決して手放しに歓迎すべきことではない
特にRustがこれから食っていかなければならないのは最下位付近にいるC++とCの領域だから、普及していけば単価は大幅に低下する
2025/09/03(水) 10:39:55.94ID:slTkF8Pj
> 全体として、比較的新しい言語である「Rust」や「Go言語」、「Kotlin」などが高い単価を維持しており、市場での需要の高さがうかがえます。

これかなり違和感あるなあ
このへんのメンツの単価が高いのはつまるところ案件の難易度が高いからで、
下の方のコモディティ言語と同じように需給バランスで単価が決まると考えてるのは実態を知らないんだろうなと思う
2025/09/03(水) 11:43:31.30ID:FcGJkFCi
>>100
C系はバカでも書けるから安いんだよ
レベルが低い人はRustが難しいと感じて挫折や一部アンチ化
一方で今後求められつつあるのが安全で速いRust
103デフォルトの名無しさん
垢版 |
2025/09/03(水) 12:11:36.01ID:UDH6IOq3
もしかしてRustを誰も使ってないのはレベル低い人だらけだから?
2025/09/03(水) 12:41:52.63ID:JLXMHQtL
>>101
案件の難易度というよりも
開発者個人に期待されてる技術水準だったり
言語に付随して求められる知識やスキルの水準と希少性による

それらが低い水準の技術者でも構わないという求人の多寡が
言語別平均単価を最も大きく左右する要因
2025/09/03(水) 14:32:47.56ID:mk24rcqJ
低い水準の技術者ほど言語別の単価を気にするのは他に差別化できるものがないからなんだよな
転職エージェントについても同じ事が言える
2025/09/03(水) 14:55:10.39ID:wGzU1Ifu
納期を守るのと守らないのはどっちが供給不足か

デフレ脱却したいとして、供給を減らすのと増やすのはどっちが合理的か
ぜんぜんわからない
雰囲気
2025/09/03(水) 20:52:42.81ID:16NS2IAc
関係ないよ
Pythonの単価が一番高かったころもあった
その時はみな稼いでいたんだろな

需要と供給のバランスが崩れてるところと言う視点だけだと思うけど
2025/09/03(水) 23:36:04.43ID:0gdcYoMa
何が関係ないのか全然わからん
2025/09/04(木) 00:25:45.89ID:6pIdFnm5
プログラミングは一種のパズルのようなもの
各言語の機能制約+バグなく目的の実現という全体のパズルを解いていく
Rustの場合はメモリ関係や諸々の安全性などのための制約で他より難しいパズルになるため誰でも参入できるわけではない
代わりに速さ省メモリ安全性の両立という唯一の果実を得ることができる
構造的に単価の崩壊は起きそうにない
2025/09/04(木) 00:35:53.93ID:LhBS9NeG
プログラミングをパズルだと思ってるやつw説得力が違うww
2025/09/04(木) 00:41:20.03ID:UUTUiuRY
データや手続きの構造化はパズルそのもの
2025/09/04(木) 02:30:07.00ID:LqWnaoik
それわかるわ
パズルを解く意識なく漫然と進めるとスパゲッティになりやすい
そうなるとバグや機能追加で辻褄合わせを重ねるダメなプログラミングになってしまう
2025/09/04(木) 08:52:39.19ID:ZfQJo1Tt
ルールが不安定なパズル
ストライクを三回見逃したらアウトか?
それは実際に起きてから検討する
2025/09/04(木) 08:58:39.79ID:1soimmg4
プログラミングの基本は段階的詳細化
設計のセンスない奴は逆にボトムアップで後から辻褄を合わせていくようなパズルになりがち
特にRustは細部に気を取られやすいから注意
2025/09/04(木) 09:22:33.64ID:vfX9hKSX
実現したい機能に対してトップダウン的に絵を描いていく過程も含めてパズルと言っているならいいが、
おそらく複おじが言っているのはそういうものではなくコードレベルの辻褄合わせのパズルだろう
いわば、自ら解く必要のないパズルをわざわざ作り出して必死にそれを解いている状況だ
2025/09/04(木) 10:16:31.84ID:eoDLYfq3
パズルではないわな
答えなんてないし

それぞれの事象に対してどう見るか 構造の把握
スケール感の問題
2025/09/04(木) 10:23:41.49ID:eoDLYfq3
ABCの処理があって普通に考えるとA、B、Cの順で処理するんだけど
よく考えるとC,A..BにしてCの段階で条件分岐や枝狩りしたほうがロジカルに効率が良いと気が付いて実装するけど
実務で使い始めて統計取ると特定のパターンばかり利用されててキャシュ効率上でBCAでやったほうが効率が良かったとか
パズルとは程遠い泥臭い世界
2025/09/04(木) 10:44:44.47ID:m/0dQr70
Rustは他の言語よりパズル要素強めじゃね?
2025/09/04(木) 10:56:34.58ID:3uttxPMH
明瞭な線があるわけではないグラデーションの中であえて「どちら寄り」かを言うならそうとも言えるかもしれない。
2025/09/04(木) 11:02:42.07ID:eoDLYfq3
外部の条件によって最適化のために条件分岐などが追加され複雑度が上昇する
そんなパズルなんてない
2025/09/04(木) 11:26:54.96ID:JGI2PCUV
プログラミングはぐちゃぐちゃの辻褄合わせになったら敗北
辻褄合わせにならないようにするという明確なゴールのパズルを解かなければならない

強引に辻褄合わせできてしまう言語ではその問題が潜在化して表面上はごまかす形になる
Rustでは辻褄合わせはコンパイルを通せないという形で顕在化してくれることが多くて好ましい
無理矢理にコンパイルを通すために無駄なコピーや不必要な内部可変性を用いるとコードレビューですぐに低質なプログラマであるとあぶり出せる
2025/09/04(木) 11:29:28.26ID:vfX9hKSX
そりゃ辻褄合わせと呼ぶラインをどこに引くかによって何とでも言える
優秀なエンジニアならコードレベルの試行錯誤は全て辻褄合わせだろう
123デフォルトの名無しさん
垢版 |
2025/09/04(木) 11:40:43.96ID:IELJ+5qz
またそうやって擬似問題になりそうな話を

(wikipedia)パズルは、あらかじめ出された問題を、論理的な考察と試行錯誤によって解くことを目的とした、ゲームやクイズに似た娯楽の一種。

が世間一般の認識だから、解を用意していない問題はあんまりパズルとは言わん。
2025/09/04(木) 11:56:06.31ID:ZcFrEykS
プログラミングは制約条件を理解してないと解けないパズルかというとそうでも無い
テストさえ書けりゃ、どう解いてもいいパズルだから自由度は無限大
どこを妥協するか、どこを作り込むかだけの問題
もちろん、組み込みみたいに制約が厳しすぎて設計自由度のない世界もあるけれどそういう世界ではRustは使わない
2025/09/04(木) 11:57:48.23ID:ZcFrEykS
前スレから「辻褄合わせ」というプログラマーが大勢いるが、それは外部インターフェースとの整合とかの話だけでしょ
そんなの辻褄合わせして当たり前、仕様なんだから合格させようよ
2025/09/04(木) 12:02:06.25ID:cGup1Tfc
パズル的要素が皆無というわけではないんだが仕事としてのプログラミングの場合その割合はせいぜい全体の5%以下
プログラミングをパズルだと捉えている人は残りの95%が見えてないだけ
2025/09/04(木) 12:27:45.62ID:9OFIpubQ
競プロ上がりだと100%パズルぐらいの感覚で業務システム開発もやるのかな
2025/09/04(木) 12:43:52.93ID:sEvyWhfg
全員の意見が多かれ少なかれパズル的な部分が存在することを認めているな
さらにRustはそのパズル的な部分の難易度が上がるという見方が複数あってそれらに反論がない
元の話の結論が出たな
2025/09/04(木) 12:45:05.01ID:sEvyWhfg
元の話の結論が出たな
Rustに低質なプログラマは参入できない
よって>>96の単価表ボトム3『C/C++/C#』のように単価が下がることはない
2025/09/04(木) 12:50:01.72ID:sEvyWhfg
その記事の元の発表の単価表は>>100
2025/09/04(木) 13:08:42.88ID:7fb6B/JG
いやーC#はともかくC/C++はエッセンシャルワークとしての側面があるからねえ
C#みたいな業務システムの領域ならそんなものはSaaSに喰われて消えるみたいな強弁も一理あるけど、組み込みが消えたら社会回んなくなるよ
その領域がいつまでもC/C++のままで変わらないとしたら、複おじの願うRust理想郷は永遠に実現しないことになる
2025/09/04(木) 13:15:29.52ID:2hNgjipt
言語別単価で優劣を語りたがる層
 ≒ 言語以外に差別化要素を持ち合わせてない層
 ≒ プログラミングをパズルと捉えている層
 ≒ 生成AIで置き換えられる層
2025/09/04(木) 14:20:06.37ID:BCXVeHms
パズルの言語差が単価の言語差だと思ってる層 == 複おじ層
134デフォルトの名無しさん
垢版 |
2025/09/04(木) 19:30:28.50ID:vcXGHXe6
脳内の「心の声」を読み取る新たな技術、最大74%の精度でリアルタイム解読に成功
公開: 2025-08-23 08:00
https://karapaia.com/archives/537808.html
>> 彼らの脳の運動皮質(大脳皮質の一部で随意運動の指令を出す領域)にマイクロ電極を埋め込み、神経活動を記録した。
>> 実験では、参加者に以下の2通りの指示が与えられた。
>>1. 指定された単語を声に出そうと努力する(実際には発声しない)
>>2. 同じ単語を、声にも出さず、心の中だけで思う(内言)
>> 結果として、どちらの行動でも脳の同じ領域が活動し、似たパターンの神経信号が観測された。
>> ただし、内言の方が全体的に信号の強度は弱く、詳細な分析によって両者の違いも見分けられることが分かった。
>> さらに驚くべきことに、研究チームは、参加者が指示されていない言葉までもBCIが読み取っていたことを報告している。
>> たとえば、画面上に表示されたピンク色の円を数える課題では、参加者が心の中で数を数えていたことが検出されたという。

★直接接続しても読み取り精度100%で無い!
★★★★★★★★★
思考盗聴不可能
★★★★★★★★★
2025/09/04(木) 20:49:36.52ID:3uhYTePD
Rustって思考盗聴の技術と何か関係あるんか
そもそもサブリミナルで他人の意思決定に干渉してるだけなのに「思考盗聴」とか言う意味が分からん
カードマジックで意図的に特定のカード選ばせた後に「透視」して言い当てるみたいなネタなら分かるけど
2025/09/05(金) 11:45:03.86ID:qGwJ0G0s
このスレ見てると統失多そう
2025/09/05(金) 21:32:26.30ID:y82F5TBG
プログラマーなんて、SEと違ってその気になればいつでも手帳もらえるようなのばっかりだろ
138デフォルトの名無しさん
垢版 |
2025/09/05(金) 21:42:30.51ID:PE0qALNl
よくC/C++からの書き換えは話題になるけどJavaとかはどうなんだろ
2025/09/05(金) 22:16:43.53ID:SAtiqpOd
>>138
Meta社主導のオープンシステムBuckがJavaからRustに書き換えられ速くなった
140デフォルトの名無しさん
垢版 |
2025/09/05(金) 23:14:16.74ID:PE0qALNl
やっぱそっちの方が効くよな…
C/C++は安全性は向上するかもだけど効率面はそれほど変わらないし
2025/09/05(金) 23:41:19.77ID:EdDK7HX5
C製のNginxにCloudflareが機能拡張の限界を感じてRust製のPingoraを作ってしまい速くなった話もある
2025/09/06(土) 00:25:08.85ID:PVmm5ZSZ
速くなるものが作れるともう戻れなくなるのよね
143デフォルトの名無しさん
垢版 |
2025/09/06(土) 01:20:05.03ID:BBkKVX9d
JavaはなんとなくわかるけどCより速くなれたのは
どういう理由なんだろうな?

メモリ管理に厳しくなった分コードが整理されたとか
高速なライブラリが利用しやすかったりとか?
2025/09/06(土) 04:08:45.69ID:UZSX8lly
そういうのはたいてい並列化で読み込み時間短縮って例
2025/09/06(土) 08:16:45.68ID:RDwHnPgj
Nginxの件に関しては、マルチプロセスをマルチスレッドに変更してコネクションプールの効率を改善したのと、
LuaモジュールをRustに書き換えたことが速くなった理由
つまりCより速いかどうかは全く関係ない
2025/09/06(土) 10:23:19.24ID:gk21ZPjY
「xxx言語で書き直したらこんなに速くなりました」はだいたい言語とは関係無いよ
リライトに伴う構造やロジックの見直しがメイン
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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