結局C++とRustってどっちが良いの? 7traitsat TECH
結局C++とRustってどっちが良いの? 7traits - 暇つぶし2ch1:デフォルトの名無しさん
23/08/31 12:16:53.23 dCL063sE.net
C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」

っていう雑談スレ。

前スレ: 結局C++とRustってどっちが良いの? 6traits
スレリンク(tech板)

関連スレ(マ板): Google&Microsoft「セキュリティバグの70%はC/C++のメモリ管理ミス。Rustにする」
スレリンク(prog板)

2:デフォルトの名無しさん
23/08/31 12:33:26.11 dCL063sE.net
あるあるトピックス
・後発のRustが優れているといっても、C/C++から「推し変」するほどじゃないな
・現状のRustはまだまだ書きにくい、移行するにしてももっと進化してからでいいのでは
・現状のcrateシステムでけえ、大げさ
・いくら安全っつっても、ヘタクソがunsafeだらけに書いちゃったらおんなし
・てかC++にも unsafe{ } はよ

・C/C++ <=> Rust いまさら聞けない移行質問なども適当にどぞ

・レスバはじめんのは勝手だけど、面白いこと・へぇなこと書いたヤツが優勝
・マな話は、マのスレもご活用ください >>1

3:デフォルトの名無しさん
23/08/31 12:37:09.57 QKPa2t5y.net
GPTベースのソースチェッカーの登場でRustの必要性はほぼなくなる

4:デフォルトの名無しさん
23/08/31 12:38:30.42 xdGgbyvb.net
ネットインフラが次々とRust製になっていってる

>【CDN世界トップシェアCloudflare】
URLリンク(www.publickey1.jp)
>CDNプロバイダのCloudflareは、同社のグローバルなCDNの基盤として長らく利用してきたNGINXに代えて、
>同社自身がRust製のHTTPプロキシである「Pingora」を開発し利 用していることを明らかにしました。

>【クラウド世界トップシェアAWS】
URLリンク(japan.zdnet.com)
>Rustで構築されたAWSサービスの例としては、
>コンテナーアプリ用のサーバーレスプラットフォーム「Lamba」を支える「Firecracker」、
>「Amazon Simple Storage Service(S3)」、
>「Amazon Elastic Compute Cloud(EC2)」、
>コンテンツ配信ネットワーク「Amazon CloudFront」、
>LinuxベースのコンテナーOS「Bottlerocket」などがある。

5:デフォルトの名無しさん
23/08/31 12:46:13.82 9MCfOvkc.net
>>3
それ逆
GPTは論理的に必ず正しいことを示せるわけではない
しかしGPTは(多少間違えても)生成するのは得意
だからGPTにRustのコードの叩き台を生成させてGPTに再指示したり人間が仕上げる
そしてRustコンパイラが論理的に必ず正しく安全性を保証する
以上が互いの得意分野を組み合わせたベストな今後の向かう方向

6:デフォルトの名無しさん
23/08/31 12:54:47.09 5zYhiOSj.net
>>2
ここまでのスレと真逆のまとめはよくないね
Rustの方が言語機能が充実しているため圧倒的に書きやすいのは客観的な事実

7:デフォルトの名無しさん
23/08/31 13:08:56.12 3Z3eLBs1.net
=== 複製おじさん(通称複おじ)について ===
Rustスレを中心に活動し、2023年4月現在で1年以上ム板に住み着くRustacean。無自覚な荒らし。

Rustスレでは、基本的に他住民の意見を聞いて糧とすることなく、自らのコードが最善であると、ID変更自演を交えいつまでも主張し続ける。
同スレで「所有権が複製される」という違和感のある表現を、「違和感がある」とする他住民の意見をすべて否定してしつこく擁護し続けたことから、「複製おじさん」というあだ名が付けられた。
それ以外のム板スレでは、基本的に他住民の意見を聞いて糧とすることなく、Rustこそが最善であると、ID変更自演を交えいつまでも主張し続ける。
その基本戦術は、「GC言語は遅い」の一声でC/C++/Rust以外の言語を否定し、残ったC/C++は安全ではないので、Rustが最善であるとするもの。

しかしながら、Rust以外の言語に関しては、正当な批判を展開するのに十分な知識を持っているとは言いがたい。
本スレPart1では、C++の問題点を指摘しようとして多数の誤り・知識不足を露呈することとなった。特にしつこく食い下がったのが「動的ディスパッチ」に関する誤解である。
スレリンク(tech板:786番)-799(ID:Evbafc70とID:RiLc+pIfが複製おじさんであると考えられている)
要約すると、通常「条件分岐」と呼ばれるものを「動的ディスパッチ」と呼ぶのが正しいと主張し続けたのである。
常識的にはあり得ない誤解だが、提示されたC++のコードが自らの主張(C++にはパターンマッチが無い)に不都合であると感じたためか、C++のコードを正しく読み解くことができないにもかかわらず脊髄反射的に否定してしまい、その根拠として誤った論理をこじつけてしまったものと思われる。

ちなみにこの後、同種の誤解を持って書き込むID:wHEiYRW7(これはID使用歴的に複製おじさんとは考えにくい)に対して、正しい理解に基づく指摘を行う単発IDが複数出現するが、この中にも複製おじさんが多数含まれていると考えられている。
このように自分の誤りを認識した場合、それを認める書き込みは決して行わず、別人の振りをして最初から正しく理解していた体を装うのも複製おじさんの特徴である。

8:デフォルトの名無しさん
23/08/31 13:20:21.68 QKPa2t5y.net
>>5
GPTの性能向上のスピードを舐めてはいけない
更にはRustでは不可能なデッドロックすら検出できる

9:デフォルトの名無しさん
23/08/31 13:21:39.72 QKPa2t5y.net
GPTが開発ツールに統合されることで
Rustのセールスポイントの価値はなくなる

10:デフォルトの名無しさん
23/08/31 13:22:06.11 A3Yq0OZn.net
動的ディスパッチはvtableを使った型による条件分岐で合ってるような

11:デフォルトの名無しさん
23/08/31 13:26:30.09 QKPa2t5y.net
>>10
用語の使い方以外で双方の認識に齟齬はない
どうも用語の使い方に方言があるようだ

12:デフォルトの名無しさん
23/08/31 13:27:09.24 9dXqAvn4.net
>>8
簡単で自明なデッドロックのよくある例が検出できただけであれは学習マッチングだよ
実用的じゃない
理論的にデッドロックの静的な検出は不可能なのは知っているよね?

13:デフォルトの名無しさん
23/08/31 13:29:13.22 QKPa2t5y.net
>>12
>簡単で自明なデッドロックのよくある例が検出できただけであれは学習マッチングだよ
>実用的じゃない
そうなのかどうかは私も分からんので反例を1つ示して反駁してくれ

>理論的にデッドロックの静的な検出は不可能なのは知っているよね?
人間はできるよね? <- 反例

14:デフォルトの名無しさん
23/08/31 13:34:06.16 9dXqAvn4.net
>>13
人間にもデッドロックの静的な検出はできません
そのため実行時のデッドロック検出ツールが使われています
この分野はGPTにも無理です

15:デフォルトの名無しさん
23/08/31 13:39:30.11 QKPa2t5y.net
>>14
>人間にもデッドロックの静的な検出はできません
お前はソース見てもデッドロックをデバッグできないんだなw
「静的な検出」に限定する必要はないのだよ

16:デフォルトの名無しさん
23/08/31 13:41:32.63 lAaLgVee.net
>>9
むしろGPT支援でRustが有利になった
GPT自体は安全性の保証をできなくて間違いも犯すけど
GPTへRustコンパイラを通すように指示すればRustコンパイラにより必ず安全性が保証される

17:デフォルトの名無しさん
23/08/31 13:48:22.11 QKPa2t5y.net
まだ読んでない人もついてこれるように
>>12が学習マッチングと言ってるのは前スレの>>289だよ
スレリンク(tech板)
確かに検証したソースはシンプルで
1. ソースの規模が大きくなるとこれは検出できなくなるのか?
2. もしできなくなるとしたらどのくらいの大きさが限界なのか?
3. あるとしてその限界は実用的なのか?
など謎が多く興味深い

18:デフォルトの名無しさん
23/08/31 13:49:39.59 lAaLgVee.net
>>15
デッドロックは簡単なものを除いて見つけるのが極めて難しくて
コードを解析してもデッドロックを見つけることは無理だと証明されてる分野
そのため検出デバッグコード入りでデッドロックが起きるまで実行させて検出しているのが現状
だからGPTも同じように長期間実行させないとデッドロックを見つけられない

デッドロックはロックの順序さえ決めて守れば発生しないので
ほとんどのプログラムはそうすることでデッドロックを回避してる

19:デフォルトの名無しさん
23/08/31 13:51:16.54 QKPa2t5y.net
>>18
反例出しなよ
1個だよ

20:デフォルトの名無しさん
23/08/31 14:19:56.37 qE8kvwKZ.net
今度はデッドロックで埋まるのか

21:デフォルトの名無しさん
23/08/31 14:36:00.57 8akA3y2j.net
デッドロック検出の現実的な需要がないので無意味だな
各ロックの依存関係が階層構造となるよう制限して設計すればデッドロックは絶対に発生しない
実用的なプログラムにおいてその制限はなんら支障をもたらさない
つまりその制限を課すだけでデッドロック問題は発生することなく終わる

22:デフォルトの名無しさん
23/08/31 14:46:26.78 QKPa2t5y.net
反例をあきらめたか
デッドロックの検出に限らず
GPTによるデバッガ(にも限らないが)の開発環境への統合は
今日のプログラミング言語に求められる要件を大きく変えるだろうね
Rustはこの先生きのこれるのだろうか?

23:デフォルトの名無しさん
23/08/31 14:56:20.19 cJGO4qoC.net
GPTのおかげでRustだけが有利になってしまった
ミスもするが命令すれば何度でもやり直すGPT
必ず安全なコードのみを通すRustコンパイラ
この二つを組み合わせると必ず安全なコードを生成できる

24:デフォルトの名無しさん
23/08/31 15:15:28.97 qE8kvwKZ.net
そういう異世界が有っても良いとは思うが
こっちの世界はそうじゃないしならなくても良いわ

25:デフォルトの名無しさん
23/08/31 15:19:12.60 W3nqyCpe.net
>989
C++でもRustでも所有権を持つものがいなくなった時に自動的に解放される仕組み
所有権は移動(ムーブ)できるがC言語から所有権は当然やって来ない
だからCで確保したメモリがC++やRustで自動的に解放される危険はない

26:デフォルトの名無しさん
23/08/31 15:36:45.71 vuMs0nOC.net
ひさしぶりにこのスレ見にきて
>>1 に完璧な結論が書いてあって吹いた

27:デフォルトの名無しさん
23/08/31 16:26:48.65 B9PGZ7xZ.net
>>1
「Aに固執するのは老害、柔軟な若者はBを好む」などという
説はよくあるが、後者は、別の新製品が出てくれば、そっちに
移るので定着しないと言われている。なので、ターゲット層
としては気をつける必要があるとされる。

28:デフォルトの名無しさん
23/08/31 16:36:45.32 QVzwGMKd.net
>>7
>しかしながら、Rust以外の言語に関しては、正当な批判を展開するのに十分な知識を持っているとは言いがたい。

Rustについても十分な知識なんて持っておらず
自信満々に間違ったこと書くから注意してね

29:デフォルトの名無しさん
23/08/31 18:13:47.28 Fp7risRc.net
>>23
結局カットオフがあるんでアップデート後の内容に対応できてないように見えるけど。

30:デフォルトの名無しさん
23/08/31 18:18:04.17 Fp7risRc.net
>>5
仕上げられる人間はそんなまどろこしいことしないよ
それにaiが劣化した途端詰みですね

31:デフォルトの名無しさん
23/08/31 18:40:59.47 3Z3eLBs1.net
GPTにはコード生成だの検証だのくだらんことやらせてないで証明を生成させていけッ
URLリンク(leandojo.org)

32:デフォルトの名無しさん
23/09/01 11:21:35.62 8Q6o7DlX.net
>>27
一理あるな
Nim やめて Codon とか
Rust やめて Mojo とか
言い始めてるし
URLリンク(twitter.com)
(deleted an unsolicited ad)

33:デフォルトの名無しさん
23/09/01 11:30:00.17 8Q6o7DlX.net
こんなツボ外し記事もある
URLリンク(kinsta.com)

34:デフォルトの名無しさん
23/09/01 11:39:10.28 8Q6o7DlX.net
こっちの方がはるかにマシ
URLリンク(qiita.com)

35:デフォルトの名無しさん
23/09/01 12:19:56.36 kkk5kcra.net
QiitaとNimスレで話題に上がっていたダブル再帰フィボナッチなんだけど
ちょといじったらNimでRustの700倍速出た、もちろんチートなしで

36:デフォルトの名無しさん
23/09/01 12:35:29.32 m6HesT0Y.net
700倍も差が出れば簡単に原因わかるよね?

37:デフォルトの名無しさん
23/09/01 12:59:23.02 kkk5kcra.net
知らんけどgccとの相性が良いと言う話になっている、俺はwandbox回しただけだから

38:デフォルトの名無しさん
23/09/01 13:02:56.23 kkk5kcra.net
wandboxさらそうかと思って保存したけど
知恵付けさせたくないから自分でやれる人だけやれば良いよ

39:デフォルトの名無しさん
23/09/01 13:14:13.41 04JNpieX.net
チップベンダが提供するライブラリを使うのがだいたい さいつよ
…といいつつ、一度は・多少は、自分でやってみるのは基礎力が付く
ライブラリをおかしな風に呼ぶ・まわすことが減ると思う

そういや、OneAPIの近々の更新で、iccの同梱提供やめるっていってるから、
プロプラのコンパイラもひとつ押さえとくか…って思ってる人は、オフラインインストーラ取りに行っておくといいぞ
icc系やめて、dpcpp系に収束するとかだったと思う

ガセだったらごめそ 「登録を飛ばしてDL」ってのちゃんとあるからゆるしてちょ

40:デフォルトの名無しさん
23/09/01 13:48:11.87 ICS2J+hp.net
>>35
両方のコードウpキボン

41:デフォルトの名無しさん
23/09/01 14:00:07.92 8Q6o7DlX.net
zig も良いな
URLリンク(www.youtube.com)

42:デフォルトの名無しさん
23/09/01 14:02:01.75 8Q6o7DlX.net
>>40
ソース貼らない貼らない連呼する香具師がうるさいスレ
>>35 の理由は >>38 に描いてある

43:デフォルトの名無しさん
23/09/01 16:50:34.24 tlI+G5Aw.net
>>42
計算した項のオーダーは?

44:デフォルトの名無しさん
23/09/01 17:05:44.06 HsHv4oLZ.net
フィボナッチはヤツの縄張りだからな
ここで喧嘩を売ると何かと面倒だ

45:デフォルトの名無しさん
23/09/01 17:24:24.66 ftOUUIl5.net
wandboxでやったら>>32のcodonのZenn記事は3年以上古いgcc使っているっぽい

g++ 14.0.0 (HEAD)
ackermann(3, 11) = 16381
elapsed time: 57 [ms]

g++ 9.3.0 (March 12, 2020)
ackermann(3, 11) = 16381
elapsed time: 134 [ms]

clang++ 18.0.0 (HEAD)
ackermann(3, 11) = 16381
elapsed time: 156 [ms]

46:デフォルトの名無しさん
23/09/01 17:31:47.41 ftOUUIl5.net
>>45
3, 11はコマンドライン引数にしてある

>>43
>>35-37だけど42は別人だ
44
不便すまない、詳細は元のQiita記事かレスをたどってくれ

47:デフォルトの名無しさん
23/09/01 17:36:10.48 ftOUUIl5.net
>>35
タイムを一応書いておく
Rustのwandboxが見当たらないからclang比較で1.6秒として
改良Nimは0.0022~0.0023秒が出たので700倍

48:デフォルトの名無しさん
23/09/01 17:41:20.75 +8P4VWnQ.net
数倍の差ならともかく700倍ともなるとネイティブ同士の言語で発生する差じゃないからな
コードがまともじゃないか比較方法がまともじゃないのは明らか
いちいち中身を見る必要もない

49:デフォルトの名無しさん
23/09/01 17:54:14.28 ftOUUIl5.net
>>48
来ると思った
だから改良Nimのwandbox貼るのやめた

50:デフォルトの名無しさん
23/09/01 18:37:56.38 1ff+BwiP.net
フィボナッチ全盛期の荒れようでも貼っとくか
スレリンク(tech板)

51:デフォルトの名無しさん
23/09/01 18:41:52.45 1ff+BwiP.net
おじさんが出没してた過去スレって
C++ vs Rust
ワッチョイなしのほうの次世代言語スレ
ワッチョイなし時代のC++相談室
あと何があったっけ

52:デフォルトの名無しさん
23/09/01 18:42:24.54 ZzB4GlH6.net
>C(gcc)よりNimが3倍も速い

Nimがおかしい

53:デフォルトの名無しさん
23/09/01 18:56:13.90 c+J4ltwv.net
そうやな
るstより早いはともかくcより3倍早いはなんかインチキはいってるくさい

54:デフォルトの名無しさん
23/09/01 20:48:12.17 eJ5UCtcA.net
Nimすげーな。
最新の情報科学を総力して作られたNimだから
Rustより700倍、Cより3倍も速く出来たんだろ。
で、10年後にはさらにすごい言語が出ているんだろうが

55:デフォルトの名無しさん
23/09/01 21:00:39.20 rDAe3h1F.net
アルゴリズムまで最適化するんだろうか?

56:デフォルトの名無しさん
23/09/01 21:03:10.49 c+J4ltwv.net
Nim「なんじゃこのトロくさいコード?こうした方が何倍も早いと分からん?手間かけさせやがって」

57:デフォルトの名無しさん
23/09/01 21:04:42.86 ABczp9XP.net
コードを見ないとなんとも言えんが、Nimの方はループにでも展開したんじゃない?
cは最適化無しとか。

58:デフォルトの名無しさん
23/09/01 21:05:59.18 rDAe3h1F.net
nimが吐いたcのコード見ればわかる

59:デフォルトの名無しさん
23/09/01 21:20:44.34 eJ5UCtcA.net
>>58
人間が理解できないすごいコードを吐き出しているんじゃないのか

60:デフォルトの名無しさん
23/09/01 22:00:52.55 rDAe3h1F.net
そんなに癖が強いのか

61:デフォルトの名無しさん
23/09/02 05:51:36.66 IbJ1Mk2a.net
トランスパイラが、想定以上に事前計算を進めちゃうんじゃないかw

62:デフォルトの名無しさん
23/09/02 06:06:22.50 pS+S9F7F.net
まともなベンチマークでは静的な事前計算ができないようにする
だからそんなことは起きない

63:デフォルトの名無しさん
23/09/02 09:44:56.85 Mt6Fp/v3.net
=T=i=k=T=o=k(←迷惑でしたらこちらをNGしてください。)
更にご家族にも紹介して、追加で¥3500を入手できる
URLリンク(i.imgur.com)

64:デフォルトの名無しさん
23/09/02 11:03:33.99 JuhwvQNt.net
>>63
もう現金化してアンインスコしてる。

65:デフォルトの名無しさん
23/09/02 21:58:35.01 HCZF/or7.net
>>35
C/gccのダブル再帰の最適化本気スイッチの入れ方わかった
全てローカル、(Cは)C++chrono計測、Nimはcputicks

ダブル再帰最適化本気スイッチ版C
C/gcc
Time= 1.176ms fib_c_trigger(44)= 701408733
Time= 1.782ms fib_c_trigger(45)= 1134903170
Time= 2.424ms fib_c_trigger(46)= 1836311903
Time= 3.090ms fib_c_trigger(47)= 2971215073
Time= 3.873ms fib_c_trigger(48)= 4807526976
Time= 5.365ms fib_c_trigger(49)= 7778742049
Time= 7.337ms fib_c_trigger(50)= 12586269025
Time= 10.149ms fib_c_trigger(51)= 20365011074
Time= 13.961ms fib_c_trigger(52)= 32951280099
Time= 18.983ms fib_c_trigger(53)= 53316291173
Time= 26.660ms fib_c_trigger(54)= 86267571272
Time= 36.483ms fib_c_trigger(55)=139583862445
Time= 50.876ms fib_c_trigger(56)=225851433717
Time= 70.201ms fib_c_trigger(57)=365435296162

66:デフォルトの名無しさん
23/09/02 22:00:43.37 HCZF/or7.net
本気スイッチ版Cは不自然な書き方になるが再帰コール二つはループ化したりしていなくて
gccの何かの最適化が本気モードになる

改良Nim
Nimはキレイなシンプル再帰のままでここまで出る
Nim/gcc
Time= 1.368ms fib_nim(44)= 701408733
Time= 1.634ms fib_nim(45)= 1134903170
Time= 2.255ms fib_nim(46)= 1836311903
Time= 3.121ms fib_nim(47)= 2971215073
Time= 4.261ms fib_nim(48)= 4807526976
Time= 5.989ms fib_nim(49)= 7778742049
Time= 8.224ms fib_nim(50)= 12586269025
Time= 11.304ms fib_nim(51)= 20365011074
Time= 15.644ms fib_nim(52)= 32951280099
Time= 22.103ms fib_nim(53)= 53316291173
Time= 31.147ms fib_nim(54)= 86267571272
Time= 41.306ms fib_nim(55)=139583862445
Time= 58.134ms fib_nim(56)=225851433717
Time= 78.528ms fib_nim(57)=365435296162

67:デフォルトの名無しさん
23/09/02 22:02:10.21 HCZF/or7.net
本気スイッチ版Cでもclangでは遅いまま

C/clang
Time=1438.212ms fib_c_trigger(44)= 701408733
Time=2310.675ms fib_c_trigger(45)= 1134903170
Time=3746.923ms fib_c_trigger(46)= 1836311903
Time=6040.876ms fib_c_trigger(47)= 2971215073
Time=9779.249ms fib_c_trigger(48)= 4807526976
Time=15877.302ms fib_c_trigger(49)= 7778742049
Time=26151.375ms fib_c_trigger(50)= 12586269025
Time=42241.553ms fib_c_trigger(51)= 20365011074
Time=67936.930ms fib_c_trigger(52)= 32951280099
Time=110828.012ms fib_c_trigger(53)= 53316291173
Time=176305.471ms fib_c_trigger(54)= 86267571272
SIGINT: Interrupted by Ctrl-C.
推定
55 --> 287秒
56 --> 463秒
57 --> 750秒

68:デフォルトの名無しさん
23/09/02 22:03:36.41 HCZF/or7.net
シンプル再帰版 C/gcc
Time= 625.499ms fib_c_simple(44)= 701408733
Time= 995.294ms fib_c_simple(45)= 1134903170
Time=1568.026ms fib_c_simple(46)= 1836311903
Time=2497.401ms fib_c_simple(47)= 2971215073
Time=4059.698ms fib_c_simple(48)= 4807526976
Time=6563.932ms fib_c_simple(49)= 7778742049
Time=10696.766ms fib_c_simple(50)= 12586269025
Time=18117.324ms fib_c_simple(51)= 20365011074
Time=30850.988ms fib_c_simple(52)= 32951280099
SIGINT: Interrupted by Ctrl-C.

シンプル再帰版 C/Clang
Time=1556.296ms fib_c_simple(44)= 701408733
Time=2491.174ms fib_c_simple(45)= 1134903170
Time=4019.549ms fib_c_simple(46)= 1836311903
Time=6543.637ms fib_c_simple(47)= 2971215073
Time=10584.639ms fib_c_simple(48)= 4807526976
Time=17254.294ms fib_c_simple(49)= 7778742049
Time=27799.040ms fib_c_simple(50)= 12586269025
Time=45090.030ms fib_c_simple(51)= 20365011074
Time=73155.917ms fib_c_simple(52)= 32951280099
SIGINT: Interrupted by Ctrl-C.

nim 2.0.0
gcc 13.2.0
clang 16.0.5

69:デフォルトの名無しさん
23/09/02 23:49:38.43 soXXGfaw.net
コードも出ず一般的な副作用のある問題への適用可能性もわからないが
速度が必要なところでは始めからループを使い再帰は通常使われない
今回のような問題ならメモ化の方が高速化に対して効果的
さらにフィボナッチ漸化式の場合はそのまま二つ分のみのメモ化としレジスタ(ローカル変数)で演算していくようにプログラミングするのが常識

70:デフォルトの名無しさん
23/09/03 01:40:05.47 FNjdjIYP.net
>>69
それ今回の目的と手段が逆じゃね?
今回のは、より高速なフィボナッチが目的じゃなく、速度計測の一つの手段として再帰のフィボナッチを使ってるんじゃね?

71:デフォルトの名無しさん
23/09/03 02:08:27.39 qv2yXMke.net
言語の速度計測でフィボナッチを使うのは無意味となるためやるべきでない

ダブル再帰の計算量O(1.6^n)をどこまでアルゴリズム変換して計算量をどこまで減らせるかは言語の優劣と関係ない
フィボナッチの場合は究極的にO(n)にすることもできるが汎用的ではなくこれを言語が頑張っても意味がない
>>66もまだO(n)になっておらずさらなる改善の余地が大いにあるが仮にその対応をしてもその言語が速いことにならない

計算量を激減可能なアルゴリズムで言語間の速度を計測しても意味がない

72:デフォルトの名無しさん
23/09/03 02:23:40.00 Mb6+Xv4j.net
じゃあお前はこの話についてこなくていいよ

73:デフォルトの名無しさん
23/09/03 02:32:28.82 YnA1A/h9.net
5ch は中毒性あるからホドホドにね

74:デフォルトの名無しさん
23/09/03 02:35:49.88 KbrggjTt.net
NimがCの3倍速いという話はそういうことだったのか
まともなベンチだとNimは遅くてNimを使う意義ないもんな

75:デフォルトの名無しさん
23/09/03 08:30:48.70 nC5slhbh.net
違うアルゴリズムで組んで速度比較したって事?

76:デフォルトの名無しさん
23/09/03 09:13:46.86 wSmhXuqb.net
再帰とかじゃなくてコンパイラとかリンカとかの実用的なプログラムで同じロジックでコード書いたときに、CよりNimの方が最適化すごかったりするの?
仮にそうなら競プロでなんでnimがもっと流行らないんだろう

77:デフォルトの名無しさん
23/09/03 09:28:46.76 Bq21XdKC.net
>>75
逆にそれ以外で700倍の差をつける方法あるのか?

78:デフォルトの名無しさん
23/09/03 09:32:31.02 TsOYddoh.net
実用的なプログラムではNimが遅い

79:デフォルトの名無しさん
23/09/03 09:35:19.44 36B6WYNv.net
違うアルゴリズムで比較とかあまりにも想像絶する

80:デフォルトの名無しさん
23/09/03 09:44:59.77 yS6lNlyW.net
コンパイル時にほとんどを解決してたってこと?

81:デフォルトの名無しさん
23/09/03 11:51:45.92 FrdsG3go.net
結局この種の速度なんてメモリに触る部分をどれくらいカスタマイズできるか、しなきゃならんかって
話なわけで、
その辺いじってないバカほどベンチガーになる。

82:デフォルトの名無しさん
23/09/03 13:07:12.78 jFAGdbdC.net
フィボナッチなんてキャッシュすると(メモリ触れば触るほど)速くなるだろ

83:デフォルトの名無しさん
23/09/03 13:20:45.65 gAcx4cQI.net
>>82
それは遅くなる
f(n)の計算のためにf(0)からf(n-1)までn個のメモリをメモ化で使うのと
nを順に大きくして行きメモ化は常にf(n-1)とf(n-2)の2個のみのメモリ(レジスタも可)を使うのと
どちらが速いと思う?

84:デフォルトの名無しさん
23/09/03 13:46:53.98 jFAGdbdC.net
nはランダムに指定するんじゃなくて必ず順に取り出すルール?
そんなの使い物にならんで

85:デフォルトの名無しさん
23/09/03 13:59:25.38 gAcx4cQI.net
当然nはランダムに一つのみ指定される

86:デフォルトの名無しさん
23/09/03 15:10:52.83 Ejn6d0t5.net
まーた複オジが壮大な勘違いをして頓珍漢な自説唱えてるよw

87:デフォルトの名無しさん
23/09/03 16:55:12.08 Wq0bTRWQ.net
問題を勝手に決めて自分に都合の良い解釈だけで突っ走る人だから議論が成立しないよね

88:デフォルトの名無しさん
23/09/03 18:15:12.53 EkQ0UVka.net
Rustの悪口は許せないんだろうな

89:デフォルトの名無しさん
23/09/03 18:41:52.70 10lidGqP.net
今回のはRustと全然関係ないような

90:デフォルトの名無しさん
23/09/03 19:09:26.28 tfuye9ZX.net
>>84
元記事でもこのスレでもnはランダムでもなんでも関数に渡ってくる引数だよ
そのフィボナッチ計算のアルゴリズムは最適化できれば自由で途中の計算のメモ化もアルゴリズムの範疇で自由だよ
ただし関数だから以前に呼ばれた時の計算結果のメモ利用だけはダメ
それを許したらconstexprでメモつくっておいて即答になり計算測定の意味なくなるからね

91:デフォルトの名無しさん
23/09/03 20:45:15.50 i7VVLiaz.net
>>35だけど
メモ化とかしていない
asmレベルは知らないけど増加度を見れは推測はつく

92:デフォルトの名無しさん
23/09/03 20:53:12.27 i7VVLiaz.net
煽れば情報が出てくると思っている輩が多いな
>>90
実際に試したのかどうかまでは読み取れないけど、記事は見たようで何より

93:デフォルトの名無しさん
23/09/03 20:58:09.55 cN0hXvga.net
軽く煽った後は、本業に戻る、だよ 急がないし

94:デフォルトの名無しさん
23/09/03 22:52:15.27 68eKICn8.net
>>89
Rustと関係ない話をしていても心は常にRustが憎いからさ

95:デフォルトの名無しさん
23/09/04 07:41:36.53 ytoGFs4j.net
>>83
>>85
IDかぶってんの?自演バレ?

96:デフォルトの名無しさん
23/09/04 16:41:39.63 6SDqroOn.net
C言語の高速化のしやすさは半端じゃないな。ただ、Rustと違って時々メモリの解放忘れとかでやらかすのはあれだけだど。
gcc -O3 -march=nativeってすると爆速だもんな。Rustでこれに対応するのはあんのかな?cargo run --releaseでもgccの最適化に比べるとかなり物足りなく感じる。

97:デフォルトの名無しさん
23/09/04 17:35:48.90 JbdU2FRK.net
LLVMベースなんだから、そのうち同等か近いところまでくるでしょ

98:デフォルトの名無しさん
23/09/04 18:26:01.51 5oeNnUkL.net
Rustのsafeモードでは効率よく使えないアルゴリズム
がある。
また、その場合、関数の中にunsafeを閉じ込めることも
不可能であることが分かっている。
ここの人は馬鹿なので理解できないので説明しない。

99:デフォルトの名無しさん
23/09/04 18:44:20.41 ag4slkxg.net
だめじゃん

100:デフォルトの名無しさん
23/09/04 18:54:40.00 fLDaY/zR.net
「safeモード」
この言葉だけで理解してないのが分かるよね

101:デフォルトの名無しさん
23/09/04 19:05:16.04 SW/WF2bi.net
他人の無能を強調するタイプのコミュニケーションやめたほうがいいよ

102:デフォルトの名無しさん
23/09/04 19:14:49.30 Y/5CznFq.net
>>98
いつもの嘘つき登場か

103:デフォルトの名無しさん
23/09/04 20:11:29.90 h0MJ6cwW.net
>>98
ソースプリーズ
根拠がなきゃ他人は説得できない

104:デフォルトの名無しさん
23/09/05 00:55:10.57 6M2Epndy.net
俺は趣味だからC++で良いよ。仕事で使うわけではないし。
AppleとかGoogleとかMicrosoftが使っているとか関係ねえ。

105:デフォルトの名無しさん
23/09/05 01:14:55.37 c+OS/OAh.net
>>98
あなたがC++でソースを例示してここの人達にRustで書けるか
挑戦者を求めれば良いだけでは?
「説明しない」では誰にもさっぱり伝わらん

106:デフォルトの名無しさん
23/09/05 01:42:09.14 I0sPE9P+.net
Rustスレでコテンパンにされたのがそんなに堪えたかw

107:デフォルトの名無しさん
2023/09/05


108:(火) 04:59:27.85 ID:/p9Vc2Wd.net



109:デフォルトの名無しさん
23/09/05 10:25:22.07 VcHV7Whb.net
調べてみたらRustのコンパイルオプションにも-C target-cpu=nativeというオプションがあるっぽい。これがgccの-march=nativeに対応する模様。ただ、どちらの方が最適化性能が高いかは計測してないのでわからん。

110:デフォルトの名無しさん
23/09/05 10:28:47.45 c+OS/OAh.net
gccrs使えば良いのでは?

111:デフォルトの名無しさん
23/09/05 14:25:20.49 SlAKktdo.net
C の vector とか map とか ordered_map から
Rust の Vec とか HashMap とか BTreeMap に変換してくれる crate ってありますか?
(また逆方向も)
map の vector だったり vector の map だったりしても再帰的に処理してくれるものを希望
っていうか copy とか clone とかせずにそのままアクセス出来れば尚良し

112:デフォルトの名無しさん
23/09/05 17:45:36.54 wH7GfeTA.net
>>110
cxx crateを見るといい
mapは対応してないけどvectorは対応してる
基本的に所有権があるから値をコピーせずに言語またいでowned valueを作ることはできない

113:デフォルトの名無しさん
23/09/05 18:26:01.00 KSf6O0Ea.net
所有権の行き来の情報を付けて、C/C++が収受できるようなればいいんだよな
RustがC/C++を追い抜くなら、かならずそれもできるようになるはず

114:デフォルトの名無しさん
23/09/05 20:46:09.58 alKbh+Qd.net
>>110
Cのmapってどこかにライブラリがあるの?
超ほしいんだけど・・・

115:デフォルトの名無しさん
23/09/05 21:04:49.01 mNTu3Q/f.net
>>110
アクセスしたいだけなら異なる型へ変換する必要がない
そのままアクセスした方が当然速い
さらに言えばもっと上位のXY問題の可能性もある

116:デフォルトの名無しさん
23/09/05 21:41:39.41 56UyfnN+.net
>>113
c++のタイポ

117:デフォルトの名無しさん
23/09/06 02:47:52.58 AxBHE0of.net
>>1
OSSは混沌が続くだろう。
なぜなら、OSSという暴力を使えば、
どんなに弱い人間でも、どんなに強い人間をも
殺すことが出来るから。

ホッブズ という イギリス の 政治思想家が言うには
「人間は 放置 すれ ば、 何 を しでかす か わから ない。
永遠 に 混沌 が 続く だけ」
さらに、 混沌 が 続く 理由 を「 どんなに 弱い 人間 でも、
どんなに 強い 人間 をも 殺す こと が できる から だ」

118:デフォルトの名無しさん
23/09/06 02:56:49.29 AxBHE0of.net
暴力を使えば、どんな弱者でもどんな強者をも殺してしまえる。
その結果社会が乱れ、万人の万人に対する闘争状態
になる。
だから近代社会は暴力を禁止した。
ところがオープンソースは、暴力に他ならないから
社会が崩壊してきている。

119:デフォルトの名無しさん
23/09/06 07:23:23.69 SjXDb1Fn.net
>>117
また妄想かよ。コテハン付けろよ。
近代社会が暴力を禁止しているわけ無いだろ。
禁止されているのは個人の暴力で、国家が暴力機関の形で独占しているだけだわ。

120:デフォルトの名無しさん
23/09/06 09:13:19.92 pnRwesTN.net
まあ、放置されてる感はあるけどね。暴力。

121:デフォルトの名無しさん
23/09/06 09:16:46.22 pnRwesTN.net
あ。暴力は暴力でも、対人の暴力ね
>>113
どこのプロジェクトも、自分とこに合ったmapなりlistなりを既に持ってるから、それを使うのが結局正解
なんなら、C++(STL)で、必要十分なmapを導出(特殊化)して、extern "C" つけてあげるのもいい

122:デフォルトの名無しさん
23/09/06 11:23:19.33 UTcPybKQ.net
どうせコピーになるなら msgpack とかも OK?

123:デフォルトの名無しさん
23/09/06 12:35:37.91 x3Cf/OuA.net
>>109
gccrsって何?

124:デフォルトの名無しさん
23/09/06 13:14:48.02 pnRwesTN.net
ggrksっぽいなにか

125:デフォルトの名無しさん
23/09/06 13:45:29.45 UTcPybKQ.net
>>122
gcc-rs
>>123
わかります

126:デフォルトの名無しさん
23/09/06 14:39:52.42 mhdAji14.net
Googleは民間企業に見せかけた国家機関であり、
NASAのIT企業版みたいな物。RustのMozillaも
Googleから年間数千億円の資金を得ている。
どちらも共産主義的な機関だから民間企業は
勝てるわけなく、競争も不可能。

127:デフォルトの名無しさん
23/09/06 14:43:05.57 mhdAji14.net
Googleの検索エンジンはCEOらの個人開発ではなく
スタンフォード大学製であり、開業資金も
スタンフォード大学から貰っていた。
また、YouTubeは米国が視聴者の情報と引き換えに
資金援助しており、それでやっとこさ経営できている
半官半民の中国と同様の社会主義の様な組織であり、
純粋な民間企業�


128:ニは言えない。 当然、日本製のSNSでは競争が成り立たない。



129:デフォルトの名無しさん
23/09/06 14:47:38.64 mhdAji14.net
YouTubeもGoogle検索エンジンもインターネット
自体も米国政府が国民の個人情報や他国の
企業秘密のを抜き取るための仕組みである。
そうやって技術を盗むから米国には技術で
絶対に勝てない。
TikTokはそれの中国版であるから、米国政府は
激しく抵抗した。自分がYouTubeでやっている
悪さを中国に真似されたので、自分を棚に上げて
TikTokだけを攻撃している。
中国政府はマフィアと癒着していることが
イタリア警察によって明らかになってきているが、
アメリかは元々がマフィアである。
マフィア vs マフィアの戦い中。

130:デフォルトの名無しさん
23/09/06 14:53:13.10 qXp2w36z.net
陰謀論ktkr

131:デフォルトの名無しさん
23/09/06 14:55:50.70 mhdAji14.net
さらにシリコンバレー自体が軍事と結びついている
と聞いた。

132:デフォルトの名無しさん
23/09/06 15:01:08.12 mhdAji14.net
Googleの検索エンジンがスタンフォード製で
あることや起業時の大学からの資金援助については
「慶応大生が学んでいるスタートアップの講義」
という本がソース。
また、YouTubeが米国政府から視聴者のデータを
政府に渡すことと引き換えに資金援助されている
というのは事実のはず。
また、GoogleがAppleにデフォルト検索エンジン
をGoogleにすることと見返りに年間一兆円の金を
渡していたことや、Chromeが出来る前にMozillaに
デフォルト検索エンジンをGoogleにする代わりに
数千億円の金を渡していたことは事実のはずだ。
Mozillaの主な資金源はそれ。
のちに、Googleは自らChromeを作ってしまったので
Moziilaに金が流れなくなって、Mozillaは倒産の危機に
ある。

133:デフォルトの名無しさん
23/09/06 16:05:05.97 t5cl0sC6.net
>>129
dod から資金援助受けて研究するのは駆け出しの研究者なんかもそうだと言ってたぬ kill related ってゆーてたぬ Sra のお偉いさんが書いた文章にもアメリカのIT企業はdodからの支援があるので日本はアメリカにITで絶対に勝てないって書いてあったぬ

134:デフォルトの名無しさん
23/09/06 16:33:45.04 ZAQrLBW+.net
>117 >125 >126 >127 >129 >130
だからコテハン付けろよ。

135:デフォルトの名無しさん
23/09/06 16:52:38.67 NNZIdAYN.net
資金で勝てないというのは陰謀論でもなんでもないけどな
そもそも日本は敗戦以来アメリカの庇護下にあるんだし、
対等に競争できないことを前提に考えないといけない

136:デフォルトの名無しさん
23/09/06 17:00:10.52 bUnufnfX.net
Chromeでは、https化してないサイトに警告が出る様にな
ったが、https化するためにはまたアメリカに結構な
金額を毎年貢がないといけなくなった。
もともとドメイン料の毎年の維持費もある。
結局、アメリカには何もしなくても金が入る
不平等な仕組みになっている。

137:デフォルトの名無しさん
23/09/06 17:21:26.22 t5cl0sC6.net
AIだってチップ作ってた企業を東京地検特捜部が因縁付けてあらかじめ潰してあるからぬ そも対等に競争なんて連中わ端から考えてもネエぬ スタート位置にすら立てねえように準備してあるんだよぬ

138:デフォルトの名無しさん
23/09/06 17:29:48.64 bUnufnfX.net
>>133
今のテック業界は、技術や頭の良さより、
金と暴力で決まる分野になっている。
戦争になるぞと脅して自分の都合の良いルール
を世界に従わせ、金が自動的にアメリカに
入る様になっている。

139:デフォルトの名無しさん
23/09/06 17:31:35.56 t5cl0sC6.net
dod から出てくる研究テーマわ 比較的カンタンな内容で 無名な研究者なんかでも申請通りやすくなってるぬ こうやって研究開発する人員の裾野を広げ 若手を育成すべき対象として理解してるぬ 翻ってジャップ猿のやってるコトわ ノーベル賞級の成果をあげた若手女性研究者を カスゴミステマで潰して 魂の叫びを無視して 笑い者にしたダケだぬ 当然ながら追試して正しい成果と認められても 名誉回復は一切ナシで 本人は場末の雀荘で絶賛放置プレイ中だぬ

140:デフォルトの名無しさん
23/09/06 17:41:22.15 NNZIdAYN.net
巨大資本が裏から手を回すことを共産主義的って言うのは誤解されるからやめたほうがいいと思うんだけどな
結局それらは国際的な政治経済システムの話なんだから、ここじゃなくてもっとしかるべき場所でやりなよ

141:デフォルトの名無しさん
23/09/06 17:47:40.14 bUnufnfX.net
ところが、大学初のものは共産主義的に
なりがちで、それがGoogleにも言えている。
あらゆるソフトウェアを無料にする姿勢とか。

142:デフォルトの名無しさん
23/09/06 17:52:07.03 t5cl0sC6.net
Sunの商用UNIXとしての圧倒的なシェアを資金力で真正面から潰しにかかるのは現実的ではないので共産主義的手法を利用するためibmがLinuxを利用したというのが歴史的経緯と思いますケドぬ

143:デフォルトの名無しさん
23/09/06 17:54:57.41 4/PYDWmG.net
スレチさん何故ここなん?
別にどこでもいいわけじゃん
いろんなスレでやってるとか?

144:デフォルトの名無しさん
23/09/06 17:55:21.90 t5cl0sC6.net
>>139
大学には特にIT系学部は下火で基本的にカネがねえので 畢竟テーマに困れば既存の製品の車輪の再発明ぐらいしかする事がネエんだよぬ

145:デフォルトの名無しさん
23/09/06 17:57:38.45 Rj/DPiQB.net
>>141
板違いスレ上げんなカス

146:デフォルトの名無しさん
23/09/06 17:58:33.12 t5cl0sC6.net
大学でもLinuxわ人気だったぬ パッケージダウンロードのための特定のサイトへのアクセス抜きに コンパイルの労なく必要なミドルやツール類のインストールが可能だからぬ

147:デフォルトの名無しさん
23/09/06 17:59:04.03 NNZIdAYN.net
スレチを指摘されてなお居座るのは心の病気を疑われても仕方ないんよね

148:デフォルトの名無しさん
23/09/06 18:00:17.31 n2GKaLyb.net
>>115
そうか・・・

149:デフォルトの名無しさん
23/09/06 18:10:43.39 bUnufnfX.net
>>142
>大学には特にIT系学部は下火で基本的にカネがねえので
詳しくお願いします。
アメリかでは、ITはもう下火になってるんでしょうか。
夢のない分野になってきたんではないかとは薄々
感じてたけど。

150:デフォルトの名無しさん
23/09/06 18:31:27.57 t5cl0sC6.net
>>147
娑婆ウケする分野かどーかじゃねえの ほぼ決着ついてるカンジだけどぬ

151:デフォルトの名無しさん
23/09/06 18:31:37.02 4/PYDWmG.net
>>143
絡んでくんなよボケ

152:デフォルトの名無しさん
23/09/06 18:49:25.08 Mh27mgbM.net
そろそろ質問して答える自作自演が始まりそう

153:デフォルトの名無しさん
23/09/06 20:28:10.75 CBec6NAo.net
>>142
AIブームなのに?

154:デフォルトの名無しさん
23/09/06 20:30:48.84 SITPWv9f.net
>>110-121
NIMの方が便利

155:デフォルトの名無しさん
23/09/07 09:23:51.42 yf0XBZB8.net
Rust は C/C++ との相性は良くない(悪いとは言っていない)
置き換えることは可能だが面倒
無理やり置き換えたところでさらに使い難いかせいぜい同じようなものにしかならない
本気で Rust で描きたいなら C/C++ のことは忘れて新たに Rust で設計すべし

C/C++ で描けない人・描きたくない人・描き治したい人(描ける人含む) → Rust
C/C++ で描ける人・もっと楽したい人 → Nim
C/C++ で描ける人・満足な�


156:l → C/C++



157:デフォルトの名無しさん
23/09/07 09:35:37.63 bUyh+PaU.net
Nimってなに? そういう集団組織?

158:デフォルトの名無しさん
23/09/07 10:13:07.64 Bu93feMa.net
>>153
複オジ並みの意見ですね

159:デフォルトの名無しさん
23/09/07 10:19:38.00 yf0XBZB8.net
>>155 そうですあなたが複オジです

160:デフォルトの名無しさん
23/09/07 11:08:24.82 cG1GNwJh.net
CとRustどっちがいいの?ならわかるけど、なぜC++を比較してるの?
C++は大規模開発時に楽する目的で発明された言語なのに
優秀な人材しかいないマイクロソフトがWindowsNT開発に使ったら生産性落ちたっていう欠陥言語だよ

161:デフォルトの名無しさん
23/09/07 14:54:23.24 KHJyfSOM.net
>>153
RustはC++とは相性最悪だと思うけど、Cは言語仕様がシンプルだからC言語の方がRustの仕様に合わせやすそうな気はする。C++よりも関数型のCの方がライフタイムの実装楽そうだし。

162:デフォルトの名無しさん
23/09/07 15:30:26.25 CEV0gVYD.net
隔離ゴミ溜めにふさわしい聡明さw

163:デフォルトの名無しさん
23/09/07 17:01:41.78 jI1DUGHn.net
なんじゃそれ、と思うようなことが、ただの言葉足らずだったりすることもあるしな よくわからない話は静観

164:デフォルトの名無しさん
23/09/07 17:21:26.84 DVHOJsg7.net
平日昼に役に立たないマウント合戦するクソスレ
>>1
板違いだけじゃなくキチガイ醸成するスレ立てんな
こんな奴らに居場所与えたらどこかに放火するような犯罪者になるわ

165:デフォルトの名無しさん
23/09/07 17:32:23.27 h7SChVbG.net
>>161
とキチガイが申しております

166:デフォルトの名無しさん
23/09/07 18:31:09.37 ViOBJqCH.net
>>161
なんでわざわざ書き込むんだろう…

167:デフォルトの名無しさん
23/09/08 06:44:16.08 qdhugbG5.net
もう飽きたし面倒くさいからC言語でいいや

168:デフォルトの名無しさん
23/09/08 12:22:42.70 Qwh1dPVP.net
CとRust比べたら普通にRustが勝ってしまうからつまらん
Cのメリットはいちいちunsafe書かずに済むことくらい

169:デフォルトの名無しさん
23/09/08 12:51:55.61 kALI0S3x.net
じゃあなんでみんなrustを使わないの???

170:デフォルトの名無しさん
23/09/08 13:16:19.23 Rkiz5MVI.net
CとRustを比べるとCの方が開発コストが明らかに低い。なぜならCの方がライブラリが揃ってるうえ、ライフタイムの縛りがないから。個人的にはCは数値計算のライブラリ開発ではRustよりも優れていると思う。C数値計算のライブラリはメモリリークをそこまで気にしなくて良いし未定義動作も使用者が避ける工夫をすれば大きな問題にならなそうだしね。C言語の問題はサーバーやOSサイド、Webアプリケーションの開発だと思う。ここら辺の開発ははっきりいってメモリリークとかは致命的な問題に繋がりかねない。だからISやWebアプリケーションの開発はRustでやった方が良いと思う。

171:デフォルトの名無しさん
23/09/08 13:20:31.98 Rkiz5MVI.net
>>167
C数値計算➡数値計算
IS➡OS
色々入力ミスった。

172:デフォルトの名無しさん
23/09/08 14:24:57.53 Qwh1dPVP.net
>>166
ごめん >>165 は皮肉なんだ
特に2行目

173:デフォルトの名無しさん
23/09/08 17:42:23.48 xhNNQs6H.net
>>166
得られる恩恵<置き換えコスト
だからです。

174:デフォルトの名無しさん
23/09/08 21:55:09.00 Wdg5/Ojr.net
AIチャットの台頭でC++勢いづいてるのまじうける
論文形式で全部ウェブに言語仕様ドキュメントとして残すやり方がAIと親和性高かったのかね

175:デフォルトの名無しさん
23/09/08 22:24:28.06 c97HRFoQ.net
>論文形式で全部ウェブに言語仕様ドキュメントとして残すやり方
なにそれ?

176:デフォルトの名無しさん
23/09/09 00:45:01.52 uwI0AfpW.net
>>170
+1

177:デフォルトの名無しさん
23/09/09 02:28:33.04 d/jTMxPI.net
Webアプリケーションのサーバーサイドの開発とかはかなりRustによる恩恵が大きい気がするんだけどな。

178:デフォルトの名無しさん
23/09/09 08:33:48.48 /nk0WbMz.net
新規のものは可能な限りRust製になっていってるが
既存のものをそのまま書き換えるのはどの言語間であろうがコストが高い
ただしスクリプト言語からC/C++/Rustへはリソースコスト激減効果が上回りやすい

179:デフォルトの名無しさん
23/09/09 08:50:52.17 rTxZpTbM.net
>新規のものは可能な限りRust製になっていってるが
マジで?

180:デフォルトの名無しさん
23/09/09 11:09:25.95 MLVcfiFl.net
>>175
>新規のものは可能な限りRust製になっていってるが
どこで?

181:デフォルトの名無しさん
23/09/09 11:39:16.47 IggX53ET.net
>>175
マジで?
PHPで適当に書いた使い捨てツールもRustで書き直せるかな

182:デフォルトの名無しさん
23/09/09 12:32:31.48 vkUXrWN4.net
>>174
Goに比べて何が優れてるの?

183:デフォルトの名無しさん
23/09/09 12:35:49.92 vkUXrWN4.net
GCガーメモリ効率ガーだとかいうんだろうけど
ぜひISUCONでRustで優勝してみてほしいわ
優勝者は基本的に全員Goを使ってるけど、これは生産性とパフォーマンスが優れてる証拠なんだよね

184:デフォルトの名無しさん
23/09/09 12:45:04.17 bJGuwc+m.net
Goはスクリプト書く程度の規模ならよいよ
しかし普通にプログラミングしていく規模だと機能の貧弱さもあり開発がつらくなる
ようやく導入されたジェネリクスも使い勝手よくない

185:デフォルトの名無しさん
23/09/09 12:51:14.78 MLVcfiFl.net
>>181
「新規のものが可能な限りRust製になっていってる」のはどこで?

186:デフォルトの名無しさん
23/09/09 12:53:27.32 dXR1Nip0.net
ISUCONはGoの次に使われているのが各スクリプト言語群
C++が壊滅的な状況を見てもその場しのぎのジャンル
ISUCONをもってC++・RustよりGoが優れていると主張するのは滑稽

187:デフォルトの名無しさん
23/09/09 12:57:12.14 J/5NSGrp.net
ジェネリクスって良くないアイデアの極北よ?

188:デフォルトの名無しさん
23/09/09 13:03:47.44 dXR1Nip0.net
ここはジェネリックを使いまくるC++とRustのスレ

189:デフォルトの名無しさん
23/09/09 13:16:45.85 vkUXrWN4.net
>>183
うん、だからRust自体は否定してないよ
WebにRustが向いているのを否定しているだけで
WebはGoかTypescriptなどのスクリプト言語でいいよね

190:デフォルトの名無しさん
23/09/09 13:18:12.75 vkUXrWN4.net
RustがWebに向いているならISUCONでRustの初期スコアでGoに負けてるのは何故?
なんで予選通過が1組だけなの?

191:デフォルトの名無しさん
23/09/09 13:21:01.15 vkUXrWN4.net
Goはジェネリクスがないおかげで、標準ライブラリやOSSのコードが異常に読みやすい
Rustのマクロ、トレイト、ジェネリクスのてんこ盛りの標準ライブラリと比べると対照的
もちろんジェネリクス向いている場面はあるが機能があると必要もないところで使いたがるアホが出てくるのが問題なのよね
力に溺れてしまうのよ
その結果生産されたゴミがScalaとかのクソ言語

192:デフォルトの名無しさん
23/09/09 13:29:45.94 oUPrnFIv.net
>>188
Goは多くがジェネリクスを入れて欲しいとの要望でついにジェネリクスを導入した
しかし他の言語と比べるとGoのジェネリクスは使いにくく多くががっかりした
それ以降はGo本スレも過疎ってる

193:デフォルトの名無しさん
23/09/09 13:31:21.28 uDMMOHqV.net
>>186
>>187
スレタイ見ような

194:デフォルトの名無しさん
23/09/09 13:58:14.77 vkUXrWN4.net
>>189
なおトレンド
日本
URLリンク(trends.google.com)
アメリカ
URLリンク(trends.google.com)

195:デフォルトの名無しさん
23/09/09 13:58:16.63 vkUXrWN4.net
>>189
なおトレンド
日本
URLリンク(trends.google.com)
アメリカ
URLリンク(trends.google.com)

196:デフォルトの名無しさん
23/09/09 14:00:51.94 oUPrnFIv.net
>>192
Goは5年前で頭打ちか

197:デフォルトの名無しさん
23/09/09 17:42:02.02 e/q3RqSr.net
Rustは目的と手段が逆転している人間が使う言語
特にWebでRustをイキって使うやつ
何を作るのではなく何で作るのかを重視するマウントイキリ野郎

198:デフォルトの名無しさん
23/09/09 17:52:25.50 5dSlQ8VJ.net
>>184
あなたのお気持ちはどうでもいいじゃないすかw

199:デフォルトの名無しさん
23/09/09 18:08:20.78 rTxZpTbM.net
>>192
うぅ、、Rustさん(;;)

200:デフォルトの名無しさん
23/09/09 18:51:54.71 pYp2eZcM.net
>>192
Rustは上がっていき
Go行き詰まりだな

201:デフォルトの名無しさん
23/09/09 19:04:27.37 5dSlQ8VJ.net
>>197
それは今そうなだけでこの先わからないじゃないすか
それにgoogleトレンドの結果だけでそんなこと言ったらガキっぽいじゃないすか、ねえ

202:デフォルトの名無しさん
23/09/09 20:36:58.75 cxxghb5d.net
goもrustもググラビリティ悪いからこれ以上発展しない

203:デフォルトの名無しさん
23/09/09 21:37:17.46 WePQ7y3A.net
>>192
Goとrust同じような言語年齢なのにGoのほうがトレンド高いのか
難しい言語のRustは学習時間が掛かる・開発者をあんまり集められないとかで避けられるのかもな

204:デフォルトの名無しさん
23/09/09 22:10:32.74 1+ERYJG2.net
その二つは10年違う
goroutine使えるようになったのが2009年
Rustがgoroutineに該当するタスクを使えるようになった(=今のFutureとasyncが使えるようになった)のが2019年
この10年の差が大きい
>>192で興味深いのは2019年からどんどん上がるRustと下がるGo

205:デフォルトの名無しさん
23/09/09 23:14:39.35 rzpNtN6B.net
C++のコルーチンはいいぞ(どさくさ

206:デフォルトの名無しさん
23/09/10 00:29:47.43 DLzpZfEZ.net
Goは何がクソといってまずネーミングが致命的にクソ
あとマスコットがキモすぎ
あれじゃだめだ

207:デフォルトの名無しさん
23/09/10 03:07:25.31 9TiyMpcM.net
>>203
全面的に同意する

208:デフォルトの名無しさん
23/09/10 09:15:38.67 zU/sZl9q.net
>>201
それはgoroutineに比べて何が優れてるの?
2019から入ったってことはNode.jsと同じで非同期な仕組みがコロコロ変わって不安定でぶっ壊れやすいってことだよね

goroutineはGoが出た当初から何も仕組みが変わってないからどのライブラリでも共通した仕組みで使えるけど

209:デフォルトの名無しさん
23/09/10 09:21:52.03 QnQmm6lX.net
Rustを誰も使ってないってことが答えなんだろ

210:デフォルトの名無しさん
23/09/10 09:24:04.51 zU/sZl9q.net
コンピュータサイエンスや低レイヤを学びたいならRustやC++ではなくCがよくて
現代で実用的な低レイヤ以外のソフトを作るにはGoが優れてる

なぜかというとどちらとも言語仕様がシンプルでどうでもいい文法の学習をすぐに終わらせることができるから
わかっているやつは言語の機能じゃなくて何を作るのかを重視するのや

Rustってのは低レイヤだけに適しているんだろうけど、それならCでいいしZigなどのシンプルな言語の方がCの後継になりうるよね

RustってのはあくまでもC++の後継であって、現在C++で作られてる特殊なアプリの後継にしかならないよね
C++がWebに向いていないのと同様Rustも当然向いていない

なぜWeb屋はCやC++の経験がないのに、Rustを使ってイキリ出すのかが本当に謎
misskeyとかな

211:デフォルトの名無しさん
23/09/10 09:37:13.77 zU/sZl9q.net
Rustが今後使われるにしてもDenoとかの言語のランタイムの裏で使っている用途ぐらいか
NginxやRedisなどの高度かつ高パフォーマンスのミドルウェア的なソフトウェアぐらいでしょ (これらはCから変える必要はないと思うが1から作る場合)
で、これらの高度なアプリを1から作ることってそんなにあるの?って話。ふつうはこれらを利用してサービスを作る側だよね。

一般層に流行らせるためには、Node.jsやGoのように誰でも簡単に扱えるようになっていないとダメ
Rob Pikeが言っていたようにGoogleの新入社員でさえ研究者でないのだから企業で使われる言語は簡単でなければならないってのが本当に真理
Googleの新入社員ですらRustなんて扱えないんだから、お前らが扱えるわけないだろ


The key point here is our programmers are Googlers, they’re not researchers.
They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python.
They’re not capable of understanding a brilliant language but we want to use them to build good software.
So, the language that we give them has to be easy for them to understand and easy to adopt. – Rob Pike

212:デフォルトの名無しさん
23/09/10 10:11:48.00 oEydPFxE.net
>>205
Rustのタスクはスタックレス対称コルーチンだからGoより速くて軽い
>>4のようなネットインフラにも使われていて安定して堅固
Goは劣るためRustが採用されている

213:デフォルトの名無しさん
23/09/10 10:38:10.70 JNK4y9LH.net
>>209
webだと結局問い合わせ時間がボトルネックになるからその差が問題になるケースは限られるやろがい。
ボトムネックとボトルネックくらいの差でしかない

214:デフォルトの名無しさん
23/09/10 10:51:25.03 yM7j2B0I.net
>>207
>RustってのはあくまでもC++の後継であって、現在C++で作られてる特殊なアプリの後継にしかならないよね
なるわけないじゃん
後継じゃねーよ
C++とRustは完全に別物

215:デフォルトの名無しさん
23/09/10 10:53:50.09 yM7j2B0I.net
>>207
>なぜWeb屋はCやC++の経験がないのに、Rustを使ってイキリ出すのかが本当に謎
ここは同意かな
C++使えないweb屋はRustでこれはいける!ひゃっはー状態なんだろ

216:デフォルトの名無しさん
23/09/10 10:55:05.74 zU/sZl9q.net
>>211
Cの後継ではないのは確かだけど、C++でもないならなんの後継なの?
Mozillaが作ってるからC++だと思ったけど

217:デフォルトの名無しさん
23/09/10 11:12:11.26 yM7j2B0I.net
いやむしろRustはCの後継と言っていい
C++の後継にはならない

218:デフォルトの名無しさん
23/09/10 11:41:24.89 sArcEmyj.net
>>203
ネーミングが悪いのはRustだろ。しかもシンボルマークが歯車だから、錆び付いて非効率という
印象しかない。開発者は何でこんな変な名前を選んだのか。
メモリ安全、コンパイル時にエラー検出でプログラムの信頼性は保証されるから、言語名は
Trustだ! とドヤ顔で言い張れる鉄面皮ではさすがになかったんだろうな。

219:デフォルトの名無しさん
23/09/10 11:41:42.14 VMvGrq1x.net
>>212
Web屋の世界最大手のAWSとCloudflareもWebインフラをRustで記述して実運用してるよ
ソースは>>4

220:デフォルトの名無しさん
23/09/10 11:42:31.89 zU/sZl9q.net
>>214
そっくりそのまま返すわ
CとRustは完全に別物だから後継にはならねーよ
言語仕様を削ぎ落としたCと増やしまくってるRust
増やしまくってるのはC++と同じだからRustはC++に近い言語

221:デフォルトの名無しさん
23/09/10 11:45:42.86 zU/sZl9q.net
>>216
それを一般的なWeb屋とは言わないんだが
インフラ屋だよね

222:デフォルトの名無しさん
23/09/10 11:55:01.88 yM7j2B0I.net
>>217
全然理由になってなくて草

223:デフォルトの名無しさん
23/09/10 12:22:11.83 zU/sZl9q.net
>>219
お前の中ではそうなんだろうけどこれはCを触るエンジニアでは共通認識だよ
逆にお前がRustとC++が別物である根拠を示せよ

224:デフォルトの名無しさん
23/09/10 12:29:44.22 kn32mMwx.net
C++もRustもCの別方向の進化形でしょ
C⇔C++の書き換えとC⇔Rustの書き換えは頑張ればできそうな気がするけど
C++⇔Rustの書き換えは禿げる

225:デフォルトの名無しさん
23/09/10 13:12:29.84 sSPr1k9L.net
結論から言えば、RustはCの後継でも、C++の後継
でもない。どちらからも言語間距離がとても遠い。

226:デフォルトの名無しさん
23/09/10 13:33:20.59 yM7j2B0I.net
>>222
┏━C++
C
┗━━━━━Rust
こうだよ

227:デフォルトの名無しさん
23/09/10 15:28:39.58 Ap5G6qZA.net
web屋がrustに流れ着くのは自然な流れ
それが理解できないのは経験不足です

228:デフォルトの名無しさん
23/09/10 16:29:46.43 JNK4y9LH.net
>>224
そんな流れまだ無いよw
今後来るのかは知らんけど

229:デフォルトの名無しさん
23/09/10 17:08:07.27 sIJu/rWm.net
Rustでの非同期プログラミングは最悪だ、Goが最高ってのが流行っているみたいだね
stackless coroutineだから、Rustは糞ってのも書いてあるね
Async Rust Is A Bad Language
URLリンク(bitbashing.io)
URLリンク(news.ycombinator.com)
この辺の記事も関連している
URLリンク(journal.stuffwithstuff.com)

230:デフォルトの名無しさん
23/09/10 18:07:26.76 QnQmm6lX.net
>>222
haskellの後継だと思ってた

231:デフォルトの名無しさん
23/09/10 18:07:45.14 KCQnpZM7.net
Rust自体が難しいのに、更に非同期プログラミングとなるとどんでもない難易度になることになるのは想像できるわな
Web屋がそんなの使いこなせるわけないだろ
Goなら1ヶ月あれば快適にコードをかけて非同期プログラミングもできるようになるだろうけど、Rustは何ヶ月かかるんだろうね
AWSやCloudflareはWeb屋じゃないし

232:デフォルトの名無しさん
23/09/10 18:08:09.28 QnQmm6lX.net
>>224
haskellサイコー!

233:デフォルトの名無しさん
23/09/10 18:42:25.15 Nc6gtmY+.net
UnityのC#のポジションに来れば習得するわ
今はまだその時期じゃない

234:デフォルトの名無しさん
23/09/10 20:56:07.05 UYX28Tlr.net
>>224
きっと途中で嫌になるに一票。

235:デフォルトの名無しさん
23/09/10 20:59:42.76 RHEbDKKy.net
>>224
そう言われても、たしかにwebのほうは経験不足…やってねえし
てかぶっちゃけ、webの進化にはついていけん
ライブラリ・フレームワークの名前聞くたびにぐぐるしかない
ある意味、C++でもRustでもなく、JavaScript最強を実感する世界

236:デフォルトの名無しさん
23/09/10 21:40:34.45 UYX28Tlr.net
Web屋は、Web屋であり、デスクトップアプリの
事情は分かって無いし、また、Web領域を超える
こともない。そしてRustを別の何かと勘違いして
いるのでそのうち落胆する。

237:デフォルトの名無しさん
23/09/10 21:40:35.44 UYX28Tlr.net
Web屋は、Web屋であり、デスクトップアプリの
事情は分かって無いし、また、Web領域を超える
こともない。そしてRustを別の何かと勘違いして
いるのでそのうち落胆する。

238:デフォルトの名無しさん
23/09/10 22:16:00.92 ZNDzog4E.net
web屋は頭悪いんだからRails使っとけってことかね
>>228

239:デフォルトの名無しさん
23/09/10 22:32:35.73 UYX28Tlr.net
twitterでC++でCMakeやmakeのビルドエラーを直す
難しさを指摘してる人がいるけど、それは、
C++自体の問題じゃなくて、多くはGNUのプログラマ
とAutoconfやcmakeの難しさと書き方の問題によっている。
オープンソース系のCMakeやmakefileは必要以上に難しい構造をしているから。
configureなども、大部分が意味の無い構造になっているが、
それは。CやC++の問題ではない。
また、VS+MFCを使っていればその問題は生じない。
が、オープンソース系のプログラマは根本的に余り優秀でない
のでどうしてもおかしな構造をとりがち。
別の宇宙でRustがオープンソース系で流行り出せば
同様に複雑化するだろう。

240:デフォルトの名無しさん
23/09/10 22:42:37.24 UYX28Tlr.net
twitterでRustの良さを指摘してる人のページを
見てみるとプライドが高いことが分かって来た。
独自基準で自分が優秀だと思い込んでいるような
経歴を持っている。

241:デフォルトの名無しさん
23/09/10 22:44:16.11 /jMAELPG.net
頭悪そうな文章だと思ってたらアンチOSSお爺さんだったwww

242:デフォルトの名無しさん
23/09/10 22:46:02.90 UYX28Tlr.net
そういう人達は学業から何から何まで
人生をかけてプログラミングの事ばかり
していてね。どうでもいいような競技みたいな
ことばかりこっていたりする。
他の人が参加すらしていない競技なのに。

243:デフォルトの名無しさん
23/09/10 22:47:03.48 UYX28Tlr.net
ずる賢い手法で自分が一番みたいな、いなかっぺ
大将みたいな状態になっているということだ。

244:デフォルトの名無しさん
23/09/10 22:51:12.74 UYX28Tlr.net
Rust支持者は、現状認識が間違っていて、妄想が激しい。
例えばプログラミング業界の認識からして間違っている。
集団幻覚みたいな状態にあるのかもしれない。
間違った、あるいは、自分に都合の良い認識の人が
集団を形成し、代々延々と続いた状態にあるのだ。

245:デフォルトの名無しさん
23/09/10 22:58:12.29 uILl1E7m.net
>>236
>また、VS+MFCを使っていればその問題は生じない。
autotoolsやcmakeを使っている場合に比べて移植性が低い

246:デフォルトの名無しさん
23/09/10 22:59:51.44 UYX28Tlr.net
>>242
そもそも誰も使ってないOSに移植する必要もない。

247:デフォルトの名無しさん
23/09/10 23:00:43.53 I57c0J7v.net
まぁ実態がホントにそーかまでわ分からんが 仮にそーならソレわソレでシヤワセな状態と言えるのカモだぬ

248:デフォルトの名無しさん
23/09/10 23:12:06.85 uILl1E7m.net
>>243
誰も使ってないOSに移植する人など誰もいない

249:デフォルトの名無しさん
23/09/10 23:13:09.84 UYX28Tlr.net
一般人向けデスクトップアプリはWindowsだけで十分。

250:デフォルトの名無しさん
23/09/10 23:14:32.53 UYX28Tlr.net
OSS狂信者は自分の理想社会になるまで頑張り続けてるだけ。
共産主義者。

251:デフォルトの名無しさん
23/09/10 23:25:46.54 I57c0J7v.net
いまとなってわみんなWebアプリになってしまったので プラットフォームごとの独自GUIほすいという状況わ かなり限定的と思いますケドぬ たとえばPCゲのようにパフォーマンス命のバヤイトカだぬ

252:デフォルトの名無しさん
23/09/10 23:34:44.32 uILl1E7m.net
>>247
>OSS狂信者は自分の理想社会になるまで頑張り続けてるだけ。
>共産主義者。
それは>>246のような考え方を言うのでは?
自分で自分のこと言及しているよにしか見えん

253:デフォルトの名無しさん
23/09/10 23:58:13.35 Ap5G6qZA.net
webが特別なのはリリースサイクルが異常に早いこと
だからRustに魅力を感じるのは当然
Rustは難しいとか、Cより安全とかいうことを言っている連中は、残念ながら経験不足
Rustの経験不足か、webの経験不足であるのは間違いないが、なによりプログラマーとしての経験が足りてない

254:デフォルトの名無しさん
23/09/11 00:13:07.35 TuCSEATp.net
2年間5chやってもバレバレの自演しかできないのも経験不足?

255:デフォルトの名無しさん
23/09/11 00:19:30.06 x8WXqWDl.net
朝から晩まで5chで経験不足連呼するだけのゴミ人生でした

256:デフォルトの名無しさん
23/09/11 01:58:15.09 k08oejKU.net
>>249
意味不明。
実際にビジネスでは99.9%がWindowsなんだから
他のOSは無視してよいし。

257:デフォルトの名無しさん
23/09/11 03:32:23.30 ECkhuLcp.net
>>253
お前がこうして書き込んで俺が読んでいるシステムは
Windowsだけで成立しているのかな?
ライブラリがポータブルなのは極めて重要
autotoolsやcmakeはそれらを支えている
視野が狭すぎる

258:デフォルトの名無しさん
23/09/11 03:33:07.09 ECkhuLcp.net
>>253
OSSをことあるごとに批判しているようだが
boostは使わないのかな?

259:デフォルトの名無しさん
23/09/11 07:50:35.19 E5vyJfZg.net
サーバサイドかなりlinux

260:デフォルトの名無しさん
23/09/11 08:10:14.91 6xpAyPC+.net
>>250
リリースサイクルが早いからバグってもすぐ直せばいいから問題ない
だからWebでRubyなどの動的言語が流行ってきたんだよ
それでも規模が大きくなると開発自体が大変になるからTypeScriptやGoなどが流行ってきた

つまりRustとWebは最悪な組み合わせだね
コンパイル速度が遅くメモリ安全のために強要される
Webでは早く開発するのが重要であるから、無駄な努力をしていることになる

Rustが向いているのは低レイヤでバグが許されない用途

261:デフォルトの名無しさん
23/09/11 08:36:35.01 PxJKmT2P.net
あなたのような土方志向言語の使い手には呆れて反論する気も起きません
経験不足どころかプログラマーですらない

262:デフォルトの名無しさん
23/09/11 08:42:22.10 d+PRxn/f.net
>>257
前半の段落読むとRustも選択肢に入るという話かと
思ったら後半で支離滅裂になった

263:デフォルトの名無しさん
23/09/11 08:49:44.02 6xpAyPC+.net
あなたが何を言おうがWebでRustが流行ることはないからいいんじゃないかな
君の脳内だけでは流行っているようだけど

264:デフォルトの名無しさん
23/09/11 08:52:08.60 6xpAyPC+.net
そもそもGC言語であればメモリ安全

メモリが潤沢に存在するWeb環境でなぜわざわざ非GC言語を選択する必要があるの?
マゾとしか言いようがないな

目的と手段が入れ替わった馬鹿

Rustが低レイヤ専用言語という事実をいうと発狂するのは、自分がそれらに携わることが決してないWeb屋だからだろうw
効いちゃった?w

265:デフォルトの名無しさん
23/09/11 09:17:00.45 54D6Lwwp.net
>>257
複オジ以上に無知ですね
TypeScriptやGoが使われるようになった理由くらいの一般常識は最低限勉強してからWeb開発について語ってください

266:デフォルトの名無しさん
23/09/11 09:24:20.93 p7LeL6Qu.net
メモリ安全とはメモリが少なくても大丈夫ではない

267:デフォルトの名無しさん
23/09/11 09:28:56.91 6xpAyPC+.net
自分がWeb屋で低レイヤを一切触ったことがないがこれからはRustだと勝手に妄想を膨らませて無駄に勉強しちゃったけど、Webでは絶対流行らない低レイヤ専用言語だという事実を指摘されて発狂してID変えまくって書き込むアホw
お前は無駄な努力してたんだよw
意味のない努力だよ

268:デフォルトの名無しさん
23/09/11 09:36:01.63 CzWM7Xpm.net
用語の意味すら知らないのはカコワルイ

269:デフォルトの名無しさん
23/09/11 09:42:20.49 PxJKmT2P.net
自分で技術選定したことないから表面的なことしか分からないんだな

270:デフォルトの名無しさん
23/09/11 10:01:23.49 lXcI/Ajd.net
>>238
禿堂

271:デフォルトの名無しさん
23/09/11 10:01:28.48 6xpAyPC+.net
だからお前のいうWeb開発でRustを採用している企業ってあるの?聞いたことがないんだけど
AWSやCloudflareがお前が勤められるような一般的なWeb企業ではないからな

272:デフォルトの名無しさん
23/09/11 10:02:52.41 lXcI/Ajd.net
>Rust支持者は、現状認識が間違っていて、妄想が激しい。
これは一理ある

273:デフォルトの名無しさん
23/09/11 10:06:46.41 lXcI/Ajd.net
>Rustは難しいとか、Cより安全とかいうことを言っている連中は、残念ながら経験不足
Rustの経験不足か、webの経験不足であるのは間違いないが、なによりプログラマーとしての経験が足りてない
これも一理ある

274:デフォルトの名無しさん
23/09/11 10:08:43.00 lXcI/Ajd.net
>>254
5chって今もSJIS使ってるんだっけ
もうUTF8のDATとかHTML返してくれ�


275:驍謔、になった?



276:デフォルトの名無しさん
23/09/11 12:53:14.26 h3RiCxz0.net
とりあえず現状行列ライブラリをRustで実装するのは止めてる。理由はsimd命令周りの対応が微妙すぎるから。
今はC言語で行列ライブラリを実装している。Rustへの移植性を考えたデ


277:ータ構造にはしてある。とりあえず1000×1000の行列積をシングルスレッドで0.034秒で実行できるようになった。手元のIntelMKLと大体同じくらいの速度。まだ、試してない最適化がいくらかあるのでそこら辺を実装したら0.025秒台くらいは目指せそう。行列積の実装で大分スキルがついてきたので固有値問題とか逆行列の計算も実装していきたい。ここら辺のことが一通り終わったらGitHubにソースコードを挙げようと思う。



278:デフォルトの名無しさん
23/09/11 13:33:50.47 e0SgkFmy.net
>>272
そのCライブラリをRustアプリから呼べるようにはしないの?
頑張ってね

279:デフォルトの名無しさん
23/09/11 13:38:06.05 h3RiCxz0.net
>>273
今、どうするか検討中。内部の行列積を計算するとことろなどのsimdやアセンブラを直接叩くところ以外は最終的にRust純正を目指していきたい。

280:デフォルトの名無しさん
23/09/11 14:56:21.77 ph9tsm2Y.net
>>271
自分で調べろ
URLリンク(mevius.5ch.net)

281:デフォルトの名無しさん
23/09/11 16:03:47.99 lXcI/Ajd.net
>>275
URLリンク(paiza.io)
import requests
urls = [
('URLリンク(mevius.5ch.net)', 8),
('URLリンク(mevius.5ch.net)', 54),
('スレリンク(tech板)', 45)]
for (url, l) in urls:
resp = requests.get(url)
ct = resp.headers['Content-Type']
print(f"{url} : {ct}")
tx = resp.text[-l:]
print(f"{tx.encode('latin1') if ct == 'text/plain' else tx}")

URLリンク(mevius.5ch.net) : text/html
</html>
URLリンク(mevius.5ch.net) : text/plain
b'\x8e\xa9\x95\xaa\x82\xc5\x92\xb2\x82\xd7\x82\xeb <br> URLリンク(mevius.5ch.net) <>\n'
スレリンク(tech板) : text/html; charset=Shift_JIS
5ちゃんねる<br><br><br><br></footer></body></html>
ほんとうにありがとうございました

282:デフォルトの名無しさん
23/09/11 17:53:54.58 /kk+oPKa.net
メモリ関係に自信があるわりにはFirefoxでamebaTVを見ると
メモリリークが発生して落ちる件、修正されませんよね
かれこれ一ヶ月くらい経過するのに

283:デフォルトの名無しさん
23/09/11 18:31:28.11 Xp4QPw8N.net
それはamebaTVの問題やろ
プロファイリングしろ

284:デフォルトの名無しさん
23/09/11 18:48:13.64 d+PRxn/f.net
JavaScript処理系の問題と区別できないレベルの
人がいるんだ

285:デフォルトの名無しさん
23/09/11 19:00:36.49 ECkhuLcp.net
Rustを庇うつもりはないが総本山のfirefoxでも
RustよりC/C++の方がステップ数は多いんだよ
更に言うとJavaScriptのステップ数はもっと多い
Rustが原因とは限らない

286:デフォルトの名無しさん
23/09/11 19:05:21.90 zwAMgEJb.net
>>226
スレタイ読み返したら?

287:デフォルトの名無しさん
23/09/11 19:12:24.81 zwAMgEJb.net
スレタイはC++とRustなのに、何故かGoとかJavaScript等とRustの話にすり変わってC++が影に隠れてしまう不思議。

288:デフォルトの名無しさん
23/09/11 20:16:38.03 MZ4x1aOt.net
このスレのスレタイは「Rustレスバ会場 ワ無し」だよ

289:デフォルトの名無しさん
23/09/11 20:24:08.02 ECkhuLcp.net
「Rustはこの先生きのこれるか」かと思ってた

290:デフォルトの名無しさん
23/09/12 00:56:45.92 h9tsc2mb.net
C++派だが、別にいいんだ
氏んでもRust使わないってまで言ってないんだ、動向は気になるにきまってるので

291:デフォルトの名無しさん
23/09/12 01:43:18.48 OkyJ0X+a.net
AVX512で行列ライブラリ開発するのは止めたわ。発熱がでかくて使えば使うほど性能が低下して全然安定しない。1000×1000の行列積なんてシングルスレッドで100回平均で0.034秒だったのが10000回平均だと0.039秒まで落ちる。

292:デフォルトの名無しさん
23/09/12 02:19:08.34 k1dOXU9O.net
質問です
URLリンク(play.rust-lang.org)
よろしくおながいしまつ

293:デフォルトの名無しさん
23/09/12 03:25:57.16 t8zMJnwJ.net
スレチだが、AVX512がすべての命令に対応しているわけじゃないし発熱は命令のせいじゃないしSIMDの話で急にスレッドの話が出てくるのも意味不明だし
一行にバグ詰め込みすぎだろw

294:デフォルトの名無しさん
23/09/12 08:42:02.94 ApNREiLC.net
>>287
reqwestのbodyがStringか&'static strを要求するのは
非同期処理が終わるまで送信データが存在することを保証するためだろうから
blockingで処理が終わるまでStringが存在することを外から保証できるなら
&str(&String.as_str())を&'static strにtransmuteすればbodyに使えるはず
本当に安全かは分からん

295:デフォルトの名無しさん
23/09/12 11:18:20.04 VdHLMOad.net
>>287
現実の使われ方はどちらかしかない
(1)毎回値が変わる
値が変わるのだからStringを使えばよくて値が変わるのだからcloneは出て来ない
(2)毎回値が同じ
値がずっと同じならば&'static strを使えばよくてcloneは出て来ない
後者にする場合の具体的なコード変更点はこうなる
let j: String = 略;
let j: &'static str = j.leak();
for _i in 0..2 {
 test_client(j)?;
ずっと同じ値を使い続けるならリークさせてもよいわけでStringを&'static strへ安全に変換できる
あとは呼び出し関数側も&'static strに変える
fn test_client(j: &'static str) -> Result<(), Box<dyn Error>> {

296:デフォルトの名無しさん
23/09/12 12:38:51.25 OkyJ0X+a.net
>>288
プログラムとしては正常に動作してるんだよ。これは出力結果をテストして確認もしている。ただ、AVX256に比べてCPUの温度変化を監視すると明らかに温度上昇が確認されるんだよね。自分のPCがそろそろ3年目に突入するってのもあるかもしれないけど、明らかにCPUに良くない影響を及ぼしてる兆候は確認できたし。実際AVX256ベースのプログラムにすると10000回1000×1000の行列積を回してもほとんど100回平均の時と平均実行時間に差がなかった。

297:デフォルトの名無しさん
23/09/12 12:44:50.45 OkyJ0X+a.net
IntelのAVX256ベースに絞ればRustの安定版でも行列ライブラリが開発できそうではあるので、AVX512に対応するかいなかは結構重要な分岐なんですよ。まあ、Armのsimd命令拡張セットにはRustは安定版では対応してないし。AMDに関してはx86アーキテクチャだった気がするのでもしかしたらRustの安定版でも行けるかもしれんけど。

298:デフォルトの名無しさん
23/09/12 15:00:04.98 Q9fCm6fi.net
🔥は予想通りだった

299:デフォルトの名無しさん
23/09/12 18:20:02.75 9gzYBW0v.net
>>293
どんな予想?

300:デフォルトの名無しさん
23/09/12 20:54:22.07 XeofXrcc.net
>>294
前スレ969ですか?
>mojoを持ちつつPythonを嗜み

301:デフォルトの名無しさん
23/09/12 21:46:29.14 kYbrMwgz.net
次のようなトレードオフが異なります。

(1) プリプロセッサ(Cプリプロセッサ、Lex / YACなど)は、おそらく最も重い扱いです。それらは完全に一般的ですが、開発者の経験とツールの統合の点で最悪です。

(2) 一部の言語(LispやRustなど)は、マクロ拡張機能をサポートしており(時には「衛生的」)、構文の拡張と定型的な削減を可能にし、ツールの統合をいくらか改善します。

(3) C ++のようないくつかの古い言語には、ランタイム言語のデュアルである非常に大きく複雑なメタプログラミング言語(テンプレート)があります。これらは習得が著しく難しく、コンパイル時間とエラーメッセージが不十分です。

302:デフォルトの名無しさん
23/09/12 21:54:52.19 uAwiXx2o.net
テンプレートメタプログラミング楽しいよ!

303:デフォルトの名無しさん
23/09/12 23:37:42.92 Ez0KcXtp.net
>>296
ChatGPTやん
やっぱ複オジと似てるよな

304:デフォルトの名無しさん
23/09/12 23:38:22.02 Pu8riC7w.net
>>296
どういう質問でこの回答出てきたのかぬ

305:デフォルトの名無しさん
23/09/12 23:59:02.76 q0VrB5Vz.net
複オジ節

・当たり障りのない事
・周知の客観的事実
・一解釈、不確かな一説
・自説、自分の思い込み
・流布したい嘘

が全て断言調なところ

徐々に自説、嘘を織り込んで行く、
絶対儲かりますと畳み込む詐欺師と区別がつかない
最悪そのものかも知れない

なお上記は複オジ節で書かれている、テンプレ推奨

306:デフォルトの名無しさん
23/09/13 00:05:40.15 1hA9kn3L.net
>>296はmojo公式ページ

307:デフォルトの名無しさん
23/09/13 00:54:47.03 PItzFlj9.net
機械翻訳の不自然な日本語と同カテゴリだったのかw

308:デフォルトの名無しさん
23/09/13 01:01:32.82 8tIdE0x0.net
>>301
faqかなんか?原文かURL おねがいしてイイかぬ

309:デフォルトの名無しさん
23/09/13 01:15:01.57 vv+/T9XN.net
>>303
301じゃないけど
URLリンク(docs.modular.com)
>>301が、話のコンテキスト、(4)(5)を意図的に省いたのは?だな
NimはZigと同じ(5)方式っぽい

310:デフォルトの名無しさん
23/09/13 01:16:45.03 vv+/T9XN.net
>>304
省いた犯人は>>296

311:デフォルトの名無しさん
23/09/13 01:19:32.96 vv+/T9XN.net
これも貼っておきます
We’ve raised $100M to fix AI infrastructure for the world's developers
August 24, 2023
Modular Team
URLリンク(www.modular.com)
>led by General Catalyst and filled by existing investors GV (Google Ventures), SV Angel, Greylock, and Factory.
modularは$130m集めた責任ある企業だから嘘大げさはやらないよネ!

312:デフォルトの名無しさん
23/09/13 01:23:34.03 vv+/T9XN.net
最新ですね
URLリンク(docs.modular.com)
>We also benefit from tremendous lessons learned from other languages
>(such as Rust, Swift, Julia, Zig, Nim, etc.)

313:デフォルトの名無しさん
23/09/13 01:55:28.58 do5ALmVA.net
トランスパイラは夢がある Cに変換されるやつは人間も読みやすく現実的

314:デフォルトの名無しさん
23/09/13 04:44:50.56 8tIdE0x0.net
>>304
ありがとぬ

315:デフォルトの名無しさん
23/09/13 10:17:22.08 GmHSIqMf.net
>>298
>>300
mojo公式に対して複オジ呼ばわりワロタ

316:デフォルトの名無しさん
23/09/13 10:40:20.50 mm/SnZpQ.net
"複オジ"は、traitなのですよ

317:デフォルトの名無しさん
23/09/13 12:53:51.86 Ie8e0Rot.net
翻訳のクソ度がよく似てたんだろ
機械翻訳でももう少しまともなのあるだろうに

318:デフォルトの名無しさん
23/09/13 14:32:47.21 IHxW8owo.net
1行目から間違ってるもんな

319:デフォルトの名無しさん
23/09/13 21:42:52.00 HljQ0S6H.net
URLリンク(docs.modular.com)
> 180.14895626059092 GFLOP/s, a 77052.192096131941 x speedup over Python
行列積のGFLOPS数値があるけど
>>272,286の感想は?

320:デフォルトの名無しさん
23/09/14 10:07:25.21 /LryAq71.net
>>314
このベンチマークはシングルコアではないよね?多分4コア8スレッドとかそんな感じ?
手元のOpenBLASはシングルスレッド計測だと大体60GFLOPSだったよ。自分がAVX512でやってるやつもは65GFLOPS。AVX512なんで、もう少しチューニングすればマックスで80とか90GFLOPSまでは期待できるかもしれない。

321:デフォルトの名無しさん
23/09/14 10:08:17.83 /LryAq71.net
>>315
あと、あくまでもシングルスレッドでのGFLOPSであることには留意してね。

322:デフォルトの名無しさん
23/09/14 10:29:06.74 iBoAtJWG.net
>>314は単精度

>>315は倍精度で出している?

323:デフォルトの名無しさん
23/09/14 11:25:47.47 /LryAq71.net
>>317
倍精度。

324:デフォルトの名無しさん
23/09/14 12:22:56.03 JjtV6D+W.net
>>318
やはり
単精度マルチスレッドでやると分かるけど
mojoであってもちょっと書いたくらいでは
凄く遅いという事ね
こちらはnumpy openblasで1020GFLOPS位
mojoは150GFLOPS位だった

325:デフォルトの名無しさん
23/09/14 12:55:47.67 JjtV6D+W.net
単精度シングルスレッドは
numpyで140GFLOPS位、mojoは40GFLOPS位だったかな
(どっちも1000x1000 float32)

もともと遅いしマルチスレッドの伸びも良くない印象だった

>>315のシングルスレッドは単精度に引き直すと
結構頑張っていると思う

326:デフォルトの名無しさん
23/09/14 13:59:54.79 3ROssfnr.net
このスレ的にはZigはどうなんだに?

327:デフォルトの名無しさん
23/09/14 15:09:10.16 Y5/q5uFG.net
Zigもありなんだけどバージョン1.0予定の2025年も遅れるだろうし
便利なC言語という需要がどこまであるのかわからん
正反対な方向のZigとRustだが企業がZigを選ぶのはレアケースだろう

328:デフォルトの名無しさん
23/09/14 18:02:30.25 /LryAq71.net
>>320
AVX512というチートに手を染めててこのGFLOPSは個人的には不満。ただ、自分のノートパソコンのzmmレジスタが16本しかなくて制約がキツすぎて困ってる。512bit長のsimdであればレジスタは最低でも32本は欲しい。16本だとパイプラインハザードの回避がかなりキツイ上ロード命令と置換命令に対して十分に演算命令を積めないのでかなり苦労している。というかAVX512をレジスタ16本はキツイのでAVX256の方で普通にOpenBLASを目指そうかどうかを検討している。

329:デフォルトの名無しさん
23/09/14 18:47:08.14 fFI/ZuLN.net
>>323
zmm レジスタは 32本有るはずだが。

330:デフォルトの名無しさん
23/09/14 22:26:51.45 GWshkXO+.net
激震のためRust製のゲームエンジンAmethystが注目されてるらしい
URLリンク(amethyst.rs)

激震

基本無料のソシャゲ終了のお知らせ。Unity「インストールするならお金払ってね。リセマラも都度料金徴収するから」
スレリンク(poverty板)

全ゲーム業界に暗雲 「UNITY税」が始まる事を受け販売中のゲームを削除するとアナウンスするメーカーが出始める
スレリンク(poverty板)

331:デフォルトの名無しさん
23/09/14 23:17:48.22 4BMiRrnl.net
ふと試したBLISが良い感じ

単精度
OpenBLAS: 1.940ms 1030.853 GFLOP/s
BLIS: 1.983ms 1008.616 GFLOP/s
MKL: 2.654ms 753.593 GFLOP/s

倍精度
OpenBLAS: 4.139ms 483.190 GFLOP/s
BLIS: 3.584ms 557.981 GFLOP/s
MKL: 4.818ms 415.121 GFLOP/s

MKL倍精度は100回毎のサブ平均が350~550で安定していなかった
MKL単精度は安定して遅かった
OpenBLASとBLISが安定して速かった
(1000x1000 10000回平均 マルチスレッド AVX2)

>>323
AVX512はチートと言う程じゃないけど普及度はかなり下がるね

332:デフォルトの名無しさん
23/09/15 01:00:20.84 ufqLCMQd.net
>>325
Amethystはだいぶ前に開発止まったはず

アンチOSSの人はこういう激震が好きなんだろうか


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch