Rust part22

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2024/01/20(土) 23:21:40.08ID:wyzQTwgG
公式
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 part21
https://mevius.5ch.net/test/read.cgi/tech/1692105879/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.2ch.net/test/read.cgi/tech/1514107621/
2024/02/14(水) 05:28:01.52ID:uLd8jazY
>732 >734
Rustのtrait boundはあらかじめ型の方でtraitを準備しておかなきゃいけない。
これはRustが嫌っているクラスの継承みたいなもので、genericsやるごとに元の型/traitを弄くり回す必要が出てこない?
呼び出し元が真に必要なのは機能だけなんだから、同じ名前で互換性のある引数型・戻り値型ならそのまま利用できる方が良い。

まあ、ダックタイプみたいに手を抜かずにAdapter作れ、と言う方針でも良いけど、それならAdapter helperをもっと充実して欲しいところ。
AdapterパターンとかDecorator パターンて重要なのに言語側のサポート薄いよなぁ。
2024/02/14(水) 06:58:38.09ID:t2TEYrx/
>>738
>>これはRustが嫌っているクラスの継承みたいなもの

クラス継承は基底クラスの実装をそのまま継承する実装継承になっていることが問題点
一方でRustはトレイト境界となるトレイトに対して自分で実装を用意する
したがってRustでは実装継承とはならず問題が生じない
2024/02/14(水) 07:00:00.30ID:HWQ4xiFb
自演きもいなあ
2024/02/14(水) 07:00:27.71ID:523CbVaw
実装継承はゴミ
2024/02/14(水) 07:05:57.04ID:Uwd6Wtce
>>737
Ninはコンパイル時間の無駄があるからゴミ
Pythonは実行までの速度が一番早い
2024/02/14(水) 07:33:52.24ID:uLd8jazY
>>739
全然理解できていないね。
継承の問題点は、コンパイラ都合で早い段階で設計を固定しなきゃいけない「早すぎる最適化」。
機能とか実装の問題じゃなくて設計の問題。
2024/02/14(水) 08:08:30.71ID:b46uhNiQ
>>742
実運用はビルド済だから関係ないな。
2024/02/14(水) 08:09:58.02ID:t2TEYrx/
>>743
それは継承の問題点
Rustのトレイトは各型が自分で実装するため継承ではない
2024/02/14(水) 08:41:45.06ID:W3PM5KGQ
>>745
早すぎる最適化が問題なんだから、トレイトもその問題を引き継いでるぞ
2024/02/14(水) 08:51:32.74ID:t2TEYrx/
>>746
早すぎる最適化が問題になるのは継承
Rustのトレイトは継承ではなく合成で用いる
2024/02/14(水) 08:55:57.66ID:b46uhNiQ
>>745
全然理解できていないね。
>>743根は設計の問題で実装関係無いし、継承特有の問題というわけでもない。
>729というとfはDrawable以外のトレイトのdrawが使えない制限あるし、Circleも、問題領域に関する知識の少ない設計初期にtrait Drawableを実装するという仕様固定を行う必要がある。
c++のtemplate concept はあくまでdrawのみに依存するという違いがある。
749デフォルトの名無しさん
垢版 |
2024/02/14(水) 09:07:35.89ID:L7EuZktb
真面目に理解したいなら>>730が正解だからstructural typingとnominal typingの意味を調べてくればいいよ
2024/02/14(水) 09:20:06.07ID:BSRmwKLd
>>729
C++は酷いな
struct定義の時点でdraw()宣言を要求してしまうのか

Rustなら
struct定義の時点でdraw()宣言を要求せずに済む
後からdraw()という機能(=Drawableトレイト)が必要になった時点で
structに対してDrawableを実装すればいい
Rustの方が優れてるな
751デフォルトの名無しさん
垢版 |
2024/02/14(水) 09:36:07.02ID:48k6rT3Y
>>738
複オジに毒されすぎ
オジが一つ覚えで繰り返し書いてる内容がRust開発陣の見解だと勘違いしないようにね
2024/02/14(水) 09:47:17.10ID:c6aYZ04m
>>738
根本的な理解がおかしいので説明すると
Rustのtraitは機能を抽象化している
各型はその機能が必要になった時にそのtraitを実装(impl)すればよい
必要な分の各機能(trait)を実装することで結果的に各機能の合成となる
753デフォルトの名無しさん
垢版 |
2024/02/14(水) 09:59:07.19ID:YhuSf3ik
細かな実装上の違いはあるけど概念レベルでは Rustのトレイトも他言語のインターフェースも同じ
実装上の違いを見て異なる概念だと勘違いしてると本質を見失う
2024/02/14(水) 10:10:46.95ID:Z6/Yikm0
>>750
そりゃダックタイピングでdrawを使いたいんだから、drawの無い型は対象外。

>>752
もともとの話はダックタイピングでtraitじゃないよ。
Rustで静的ダックタイピング・ダックテストする方法はあるかしらん?
2024/02/14(水) 10:17:10.59ID:naKe/3pl
ダックタイピングという問題ありまくりのものを有り難がるのはバカだけ
2024/02/14(水) 10:27:45.39ID:s2Ev9A6j
>>738
言語側のサポートならマクロで十分でしょ

macro_rules! impl_drawable {
($type:ty) => {
impl $crate::path::to::Drawable for $type {
fn draw(&self) -> f64 { self.draw() }
}
}}

を定義すれば

impl_drawable!(Circle);

だけでimpl Drawable for Cirle {...}を生成できる
渡された型が同じ引数&戻り値のself.draw()をもってないとコンパイルできないから実質ダックタイピング
Drawableに関数を追加したらマクロにも追加すればいい

draw関数の有無だけで照合するのは別の意味のdrawも対象になるから危なっかしい
impl traitだとどのモジュールのDrawableを実装するかまで指定できるから混同の心配がなくなる
2024/02/14(水) 10:44:54.87ID:AzS2pw5X
ダックタイピングは使う側が気をつければなにも問題ないんだよなあ
そこらへん理解してないあたり実装をやったことのないエアプなんだろうな
かわいそう
2024/02/14(水) 10:53:25.15ID:naKe/3pl
>>757
その「使う側が気をつければ問題ない」が最悪
ミスが入り込んだ時に気付かず問題を引き起こす
ダックタイピングを持ち上げるのはバカだけ
759デフォルトの名無しさん
垢版 |
2024/02/14(水) 11:07:38.32ID:RfRsJx+N
使う側が気をつけるならC++も問題ないからな
760デフォルトの名無しさん
垢版 |
2024/02/14(水) 11:17:22.43ID:NjTyhCIW
>>756
これがいわゆる実装継承の再発明
このケースはマクロよりも同じ実装継承のデフォルト実装のほうがベター
2024/02/14(水) 11:23:15.20ID:FEB+PUkj
>>759
そゆこと
だからRustは不要
2024/02/14(水) 11:28:02.15ID:naKe/3pl
ダメ人間の思想「使う側が気をつければ問題ない」によって
今まで数多のなかなか見つからないバグやセキュリティホールを生じてきたのがプログラミング言語の黒歴史
今後はそのような言語を用いてはいけない
763デフォルトの名無しさん
垢版 |
2024/02/14(水) 11:51:49.92ID:L7EuZktb
ここで>>9-20の流れを振り返ってみましょう
2024/02/14(水) 11:52:42.46ID:3OoaoCBc
C の後置 ++ 演算子のようなことをする Rust の関数が標準で有ったりしますか?
リファレンスマニュアルをざっとみた感じでは見つけられないのですが……。
具体的に言えば

fn increment(dest: &mut u32) -> u32 {
let t = *dest;
*dest += 1;
t
}

みたいなことをしたくて、いかにもよくありそうなパターンなので標準内にあってもよさそうなもんだと思った次第です。
2024/02/14(水) 12:13:59.14ID:s2Ev9A6j
>>760
どこをどう曲解しても実装継承にはならんだろ
すべてのケースでマクロ使うとでも思ってるの?
〇〇の思考回路はよく分からん

>>764
Atomic系統ならfetch_addがあるけど普通のincrementは単純&限定的すぎて逆にないな
std::mem::replace使えば
replace(&mut t, t+1)
とかできるけど+1するだけなら大袈裟すぎる気がする
766デフォルトの名無しさん
垢版 |
2024/02/14(水) 12:19:27.37ID:Cdw7DngV
>>761
だから の文が全然繋がってなくてワラタw
こういう低能はプログラミングしちゃダメだよ。
2024/02/14(水) 12:25:13.12ID:b46uhNiQ
>>755
そうして無駄な依存関係を負の遺産として引きずるか、設計が破綻して再構築するか。
DbCとか勉強したほうがいいよ。
2024/02/14(水) 12:29:23.30ID:naKe/3pl
>>767
ダックタイピングが負の遺産であることは自明だが
ダックタイピングを使わないことが負の遺産だと主張する君は破綻している
2024/02/14(水) 12:49:07.16ID:b46uhNiQ
>>768
自明だと検証できる証明を示して頂戴。

検証可能性の無い主張は単なる疑似科学だし。
2024/02/14(水) 12:52:16.39ID:KpCwABm3
欠点がない言語なんて無いから言い争ってもね。
2024/02/14(水) 12:57:57.69ID:p6Tfi6cJ
そもそも人間自体が欠陥なんだからその人間の作った言語に欠陥があるのは自明
772デフォルトの名無しさん
垢版 |
2024/02/14(水) 13:07:28.33ID:L7EuZktb
たし🦀
2024/02/14(水) 13:09:31.24ID:aR1xhX8a
おれたちは欠陥と共存してよりよいプログラミングスタイルを目指すべき
774デフォルトの名無しさん
垢版 |
2024/02/14(水) 13:16:05.40ID:eD+V22zq
drawという名前のメソッドを作ったらそれらが全部ダックタイピングとして使われうることを想定しないといけないのきつすぎる
適当な名前つけたら想定外の使われ方をすることをケアしないといけないわけだ
2024/02/14(水) 13:33:10.33ID:Q08aEmFz
境界知能が可視化されてる
2024/02/14(水) 13:53:52.28ID:Z6/Yikm0
>>774
当たり前だろ。
インターフェイスは利用者に対する契約だからな。使わせる気が無ければ公開するな。
777デフォルトの名無しさん
垢版 |
2024/02/14(水) 13:55:32.21ID:eD+V22zq
>>776
ダックタイピングはその契約書が定義されてないのが良くない
Traitは契約書の定義みたいなもんだ

ダックタイピングは白紙の契約書にサインするようなものだ
2024/02/14(水) 13:57:04.55ID:s22bd+Hs
>>775
お前のこと?
779デフォルトの名無しさん
垢版 |
2024/02/14(水) 14:31:04.48ID:h4S8S2sP
>>777
これな
2024/02/14(水) 14:41:15.13ID:3OoaoCBc
>>765
replace だと借用規則に引っかかってエラーになるようです。
まあ自分で書いてもたいしたものじゃないのでなければなくても困りはしないんですが……
2024/02/14(水) 15:12:12.70ID:s2Ev9A6j
>>780
Copy型だから通りそうな気がしたけど無理だったか
何か技がありそうだけどそこまでするほどの問題じゃないよな
2024/02/14(水) 15:36:36.14ID:S2bQYQek
>>764
Rustで++は排除されている

理由はたくさんあるようだが
例えば今回のそのCコードは*dst++では動かず(*dst)++とする必要があるようにミスが増えるとか
前置と後置の間違いミスも多いことに加えて
生ポインタはsafe Rustから排除されたため*ptr++の形が出て来ないことや
move/copy問題もあったかな
2024/02/14(水) 16:02:27.29ID:3OoaoCBc
>>782
そんな話はしてないです。
役に立つことを言えないなら余計な茶々入れるな。
2024/02/14(水) 16:29:39.74ID:ona7PgM1
>>783
おまえ質問してる分際でキチガイなのか?
そういう態度を改めないなら二度と教えてやらんぞ

fn increment(dest: &mut u32) -> u32 {
 std::mem::replace(dest, *dest + 1)
}
785デフォルトの名無しさん
垢版 |
2024/02/14(水) 16:36:51.93ID:b+wxXawK
質問している人間相手なら関係ないことを書いて良いわけではない
2024/02/14(水) 16:42:22.39ID:3OoaoCBc
>>784
結果的に役に立たないことがあってもしょうがないですが、関係ないことをアンカーで書くのは正当化できない迷惑行為です。
質問者 (特に初心者?) には迷惑をかけてよいと考えているのだとしたらそれは改めるべき悪です。
787デフォルトの名無しさん
垢版 |
2024/02/14(水) 16:46:13.61ID:L7EuZktb
ついに存在しないCコードの幻覚が見えるようになってしまった複製おじさん……
788デフォルトの名無しさん
垢版 |
2024/02/14(水) 16:46:26.67ID:b+wxXawK
一方、質問文を誤読して解答してしまった人間に対して強く当たって良いわけでもない
2024/02/14(水) 16:51:03.66ID:3OoaoCBc
>>788
あれは誤読 (?) なんでしょうか。
茶化しているように受け取ったので腹立たしかったのですが、
そうだとしたら >>783 は言い過ぎですね。

ID:S2bQYQek さん、すいません
790デフォルトの名無しさん
垢版 |
2024/02/14(水) 17:05:32.23ID:ZK4bCcm/
人間の注意力読解力は実際この程度なので、人間にC++を扱うことは難しい
2024/02/14(水) 17:06:20.11ID:Q08aEmFz
だから境界知能なんでしょ
792デフォルトの名無しさん
垢版 |
2024/02/14(水) 17:19:45.82ID:qgmjNVo3
腹立てるのもわからなくはないがそんなにキレてレスするようなことではないだろ
気に入らなかったらスルーする程度には心に余裕を持っておこう
793デフォルトの名無しさん
垢版 |
2024/02/14(水) 17:26:03.70ID:h4S8S2sP
tmuxよりscreen派だよ。
794デフォルトの名無しさん
垢版 |
2024/02/14(水) 17:50:47.59ID:6CXfQ6Kw
個人的には後置インクリメントだけを関数化するのは微妙に感じる

fetch_addとかは必要性を理解できるけど単純なpost_addやpost_incrementは一段階上の処理を関数化するので十分でそのほうが見通しがいいように思う
795デフォルトの名無しさん
垢版 |
2024/02/14(水) 19:51:05.67ID:7rKeAYke
>>762
こういう偉そうなこと散々言ってたhaskellがなぜ流行らなかったのかすら理解できてないというのが愚かだよね。
2024/02/14(水) 19:57:21.78ID:b46uhNiQ
>>777
c++ template conceptも碌に知らないでダックタイピングをけなしているのか。なかなか……
ダックタイピングは契約の主体・時期・範囲が違うという話だかね。
2024/02/14(水) 20:14:14.28ID:yh2p7tDo
>>796
C++では機能の異なる同名メソッドを区別できないから欠陥品
2024/02/14(水) 20:52:10.35ID:b46uhNiQ
>>797
引数・戻り値で区別できるだろ。
2024/02/14(水) 21:01:37.45ID:yh2p7tDo
>>798
それに依存してしまうのがC++の限界
2024/02/14(水) 21:18:41.79ID:b46uhNiQ
>>799
名前も引数も戻り値も区別できないんだったら、ダックタイピングで呼び出す側はそもそも区別する必要あるんですかねぇ。
2024/02/14(水) 21:58:58.38ID:H5X+9PTs
>>796
それだとRustでいうところのトレイト境界を課すことができないな
つまりC++では安全に呼び出すことができない
呼び出したメソッド内で出来ること出来ないことが定まらないため
2024/02/14(水) 22:13:29.10ID:uLd8jazY
>>801
「呼び出したメソッド内で出来ること出来ないこと」
て何?

Rustのtraitて、副作用のコントロールできたっけ?
2024/02/14(水) 22:26:20.82ID:8gvFvpJ5
traitのprovided methodのdefault実装で呼び出せるのはrequired methodと
trait境界がある場合はそのtraitのmethod
そしてそれらで構成された他のprovided methodのみ
って制限をC++でどうするんだろ
2024/02/14(水) 23:19:42.33ID:3OoaoCBc
>>803
コンセプト。
2024/02/14(水) 23:20:56.22ID:3OoaoCBc
>>792
毎度毎度のことで余裕を削られた最後だったんだよ。
806デフォルトの名無しさん
垢版 |
2024/02/15(木) 00:20:11.01ID:AyUC+mx+
毎度毎度のことという認識を持っていながらなぜここに書き込むのか
2024/02/15(木) 00:23:07.31ID:x2y7hFPc
>>806
せやな。
けど日本で比較的活発な Rust コミュニティというとここなんよ。
2024/02/15(木) 07:06:08.60ID:13EQhuxe
>>804
concept記述が多すぎて書いててイヤになるな
普及しそうにない仕様がまたC++に増えた感じ
Rustが必要な機能を洗練して提供しているのと対照的
2024/02/15(木) 07:43:10.62ID:j4EJcuA3
>>808
洗練されすぎてて「早すぎる最適化」がバンバン起きるけどな。
枯れた既存プログラムの置き換え用途が無難なところかと。
コード破棄前提のプロトタイピングはコスト的にキツイか。問題領域の知識がほとんど無い開発初期で使えるのは未来を予測できる天才ぐらいだろ。
2024/02/15(木) 07:55:56.64ID:hKdVOM0D
>>809
Netflixの天才プログラマーが丸2年間Rustに全力費やして周りに吹聴した挙句に
RustやめてGoにする宣言してる
理由を真面目に話してるから一見の価値のあり
2024/02/15(木) 08:11:38.37ID:j4EJcuA3
>>810
検索したけど見つからなかった……
リンクある?
2024/02/15(木) 08:17:50.82ID:Me0Wd39H
[Why I Use Golang In 2024](https://www.youtube.com/watch?v=6gwF8mG3UUY)
2024/02/15(木) 08:19:40.94ID:j4EJcuA3
>>812
サンクス。
家帰ったら見るわ。
2024/02/15(木) 08:48:36.69ID:UeUfm3Ct
>>812
見た
ほとんどの話がプログラミング言語の比較よりももっと抽象的な話で中身が薄い
そして批判されてるのはなぜかTypeScrpt
Goについてはシンプルなのが好きでジェネリックが導入されてワクワク
Rustはifに括弧がないのたスネークケースが嫌いだけどGoもifに括弧がないよ
Rustの型システムはとても素晴らしいけど、
2024/02/15(木) 09:52:51.93ID:x2y7hFPc
>>808
過去のコードと矛盾しない形での後付けだからな。
C++ を根本から変えるような大革新なのに (ほとんど) 互換性を損なわないように出来ているという意味ではかなり気が利いた設計ではある。
簡単に互換性を切り捨てていると資産が蓄積されないし、かといって変わらないままでもいられないのは宿命というもんだよ。
Rust だって歴史が積み重なればいずれそうなる。
「綺麗なのは使われないもの」という格言を聞いたことないか?
Rust は C++ の歴史のグダグダから学んだ反省としてエディションという概念を導入したが、これがどれくらい上手く機能するかは現時点では未知数だ。
規格策定・処理系保守のリソースは無限なわけではないしな。
2024/02/15(木) 09:55:25.99ID:LYiZEs3M
エディションはすでに複数あるけど
あっても無理とか問題起きるとか
実例あるの?
2024/02/15(木) 10:07:56.04ID:x2y7hFPc
>>816
問題が抑えられているのは問題がないように保守されているからで、
その体制を「ずっと」続けられるものかどうかはずっと続けてみないとわからない。
今問題があるとかそういう話じゃないから未知数と述べてる。
2024/02/15(木) 10:11:47.35ID:9MXGquuv
C++は貧弱な家を土台に増築工事をしまくって部屋数は多いが使われていない部屋だらけ
C++プログラマーの多くが知らない部屋、見たことない部屋、たどり着けない部屋が多数あるまま、さらに増築工事が進んでいる
819デフォルトの名無しさん
垢版 |
2024/02/15(木) 10:21:13.40ID:qaCOVcST
まあいうてもRustも将来的には増築されたバケモノになるか途中で破壊的変更的なものを入れるかするかの選択になるのでは

Cから呼べてCを呼べる限りはどの言語を使っても良いとする立場であれば今一番使いたい言語はRustではある
2024/02/15(木) 10:32:36.57ID:LYiZEs3M
>>817
今は良くても未来は何が起こるかわからない論法は
何にでも使えるから意味ある話とは思えないけど…
2024/02/15(木) 10:37:24.02ID:x2y7hFPc
「出来る」ということを大前提として確信できて、
その上で「上手く出来る」ならより良いってのが産業的な考え方だ。
おおよその場合に上手く出来ても
ちょっとした想定外に直面したときに破綻するようでは使い物にならない。

現実の問題ってのは想定してないところから出てくるものだから
そういうことも乗り越えられることを証明するには
実績 (歴史) を重ねるしかしょうがないんだ。

C++ は上手くやったとは言えなくても、汚くても打てる手が有る道具として信頼を得た。

Rust は今の時点では実に使いやすいように見えるが、
本当の意味で現実の使用に耐えうるものなのかは現実に使い倒してみるまでわからない。
822デフォルトの名無しさん
垢版 |
2024/02/15(木) 10:38:37.60ID:TrooctNX
今の時点で使いやすければなんでもいいんだYO
2024/02/15(木) 10:45:22.07ID:9MXGquuv
C++コンパイラが諸問題を指摘してコンパイルエラーにしてくれる状況は来そうにない
これだけ増築工事を重ねてもまだ見込みが立たないまま
2024/02/15(木) 11:47:28.36ID:olqTmpaN
C++の知識は大いに再利用されているので現実世界の変化は小さい
想定外かもしれないのは変化の大きさではなく
現実世界を定義できないことだ
定義できるのは理論だけ
2024/02/15(木) 12:02:34.79ID:oxTsPXaA
>>821
今の想定が甘いとか具体的指摘なかったら
想定外の対処ができてないから駄目は無敵論法
2024/02/15(木) 14:40:35.94ID:wvzNp0zm
そりゃWeb系だとGoのほうが使いやすいに決まってるでしょ
パフォーマンスもスクリプト言語よりはめちゃくちゃ速いから十分
2024/02/15(木) 14:47:01.34ID:z+RD4XEG
サーバーサイドは群雄割拠時代よね
Rust、Go、Java/Kotlin、C#いっぱいある
2024/02/15(木) 16:20:13.71ID:x2y7hFPc
>>825
駄目とは言ってない。
駄目かどうかも「わからない」ことが産業的なハードルだよねって話なんだが、わからんかな。
2024/02/15(木) 16:46:19.25ID:606b12LT
>>828
あなたの話相手してもrustでも他言語でもいいけど
問題回避のためにこういう仕様や実装にすべきじゃないか
みたいな議論が成り立たないのでそちらがおよそ産業的じゃないね
2024/02/15(木) 16:50:52.01ID:olqTmpaN
すべてを疑っても産業だけは疑いようがないって話なら
想定内と想定外の境界がどの辺にあるのかはなんとなくわかる
2024/02/15(木) 17:21:54.77ID:SzbBTI0k
>>814
Rustは型〇ナニーで長時間バトルだったと言ってるぞw
>>812動画の人がいくら天才でも2年間かき回したのは頂けない
2024/02/15(木) 17:26:25.25ID:BHoNDVf7
Rustは非同期処理がC++より扱いやすいおかげでサーバー方面に進出したのは良い
さすがにフロントでRustは微妙そうだけど、このままどんどん多方面に普及してほしい
2024/02/15(木) 17:31:26.55ID:dtRRoOMy
Ruby は、Go/Rust/Elixir の3大言語を超えた!
Rust の上昇は止まったか?

Stack Overflow 米国年収。2022 -> 2023

Ruby : 9.3 -> 9.9 万ドル
Elixir : 9.3 -> 9.6
Go : 8.9 -> 9.3
Rust : 8.7 -> 8.7

多くの言語 : 6.5〜7 -> 7.3〜7.8

PHP : 5 -> 5.9
Dart : 4.4 -> 5.6
2024/02/15(木) 17:35:21.87ID:eOw5Ad1t
>>832 夢見てないで現実見ては?
https://active.nikkeibp.co.jp/atcl/act/19/00546/011500001/
2024/02/15(木) 17:41:41.98ID:wvzNp0zm
>>812
流し聞きしたけど複雑だとかしょーもない構文の好き嫌いみたいな話しかしてなくて草
2024/02/15(木) 17:53:07.04ID:8jpdfcc8
>>835
Rustインフルエンサーの成れの果てですなw
2024/02/15(木) 18:08:05.70ID:uSGIT3N+
>>834
せめて用途別のプログラミング順位を挙げてくれ

…単発に言っても無駄か😭
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。