[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 07/24 13:42 / Filesize : 280 KB / Number-of Response : 1007
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

結局C++とRustってどっちが良いの? 6traits



1 名前:デフォルトの名無しさん [2023/07/29(土) 15:05:46.55 ID:2Hm/yplK.net]
C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」

っていう雑談スレ。

前スレ 
https://itest.5ch.net/mevius/test/read.cgi/tech/1688129795

関連スレ(マ板): Google&MS「バグの70%はC/C++。Rustにする」
https://medaka.5ch.n...cgi/prog/1619943288/

654 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 18:47:47.02 ID:7ABRPFiH.net]
ハイリスクハイリターンのように、リスクとリターンの差に意味がある
リスクとリスクの比較や、リターンとリターンの比較は合理的ではないと思う

655 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:17:38.70 ID:ISPaueS8.net]
>>645
だけど気軽にできないよね
標準の機構で並行並列処理できないよね
async await使うだけでアホみたいに大量の依存をダウンロードしてきてコンパイル爆遅だよね

GoはCとかの手続き型言語を知っていたら、すぐマスターできるけど
Rustで並行並列処理までマスターするのに一体どれだけ時間がかかるんだろうねw

656 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:22:26.53 ID:Kl/zN5NU.net]
>>635
C++のvectorに相当するのがその>>630のGoのスライス
その挙動は明らかに常識外れで理不尽だがGoの仕様通りの挙動
Goはあちこち設計がおかしい

>>644
このためGoで本格的なプログラミングをすべきではない風潮になってきた
もともと貧相な仕様をシンプル簡素と積極的に評価してきたが無理があった

657 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:40:10.54 ID:e3KbknBC.net]
>>630
これ挙動わかってるのにわからんないみたいに書いてあるでしょ
配列とスライスのデータ構造はシンプルだからそれを調べれば自明にわかるだろ
他の言語でも

実験2でそんなこと考える奴はいないよね

658 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:44:32.36 ID:JiE5FPq0.net]
>>630,648
GoのスライスをC++のvector相当、ってのが早とちり過ぎる
Goのslice header, backing memoryの理解をすっ飛ばしただけじゃんw

659 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 19:50:41.88 ID:yS5HHAxP.net]
>>630
そんな妙な動きをするプログラミング言語はGoだけだな

660 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 20:23:05.08 ID:/GsC+n7c.net]
C++erに無視されてきてつまらなくなってきたので今度はGoをタゲるおじさん

661 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 20:29:00.75 ID:VmqYer8d.net]
>>630
使いやすいかどうかは謎だけどスライスだから当然の挙動かなと

実験1 スライスは配列そのものじゃなく参照と長さなのでそういうもの
実験2 aは新しく作った別のスライスを代入してるので当然
実験3 スライスaの末尾に対してappendしてるので当然
実験4 3と同じ スライスaとbの長さが違っているので当然


結論
スライスすら使えない奴は馬鹿

662 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 20:36:58.94 ID:ISPaueS8.net]
てかこれを理解できないのであればRustは習得できないんじゃないかね
Rustできるならわかるだろ



663 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 20:38:53.30 ID:pJm/stU2.net]
>>653
嫌なら配列使え、ということかね。

配列とスライスの表記に問題があるとは思うけど。[]と[1]で別物というのはやりすぎだわな。

664 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 20:40:40.07 ID:VmqYer8d.net]
余談
初期の開発中のC言語にはポインタは int* じゃなくてint[]だった

665 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 20:51:02.38 ID:NqAD2XrU.net]
>>630
Goの何がおかしいのかわかった
C++やRustや他の普通の言語ならば
bがaのコピーならばその実験1~4すべてでaとbは異なる
bがaを参照しているならばその実験1~4すべてでaとbは同じになる
その二つのケースどちらかになる
Goは実験を進めるごとにaとbが異なったり再び同じになったり再び異なったりおかしい

666 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 20:54:15.45 ID:VmqYer8d.net]
わざと言ってるよねwそれw

667 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 21:01:52.15 ID:fjgGWx1p.net]
なぜGoだけがそんな変な仕様にしちゃったの?
新旧の言語を見回してもそんな変な仕様の言語は存在しないよ

668 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 21:20:15.18 ID:VmqYer8d.net]
スライス自体は他も似たり寄ったりだよ
pythonは3で多分新しい配列を作る
多分appendの時に新しい配列をコピーしてそっちに代入するはず

元の実態を明確にコピーすると言わずにコピーするかどうかと言う設計理念の違いだろう
pythonは初心者向けだからそうしたgoはしなかった

669 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 21:24:30.15 ID:VmqYer8d.net]
配列の箱が並んだ絵でも書いてスライスは別のところに書いてポインタの矢印と長さでも書いてみれば理解しやすい

670 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 21:36:19.25 ID:ISPaueS8.net]
>>659
GoはC言語に近い言語だから
Cでmallocとかreallocとかを使って配列を扱ってたらよく理解できるはず

無駄なコピーを避けつつ、細かいメモリ操作も行えるようにして最適化の余地を残しているのがGoの特徴なので

671 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 21:36:31.10 ID:pJm/stU2.net]
>>659
スライスはrangeみたいなもので、スライスそのものはそんなに変なものではない。

問題はそこではなくて、
・スライスに「可変長なだけの配列」に見えるような表記を割り当てた
・真に「可変長なだけの配列」(vectorみたいなの)が存在しない
なので、スライスと配列を混同して使わざるを得ない言語設計が問題。

素直にCOWスライスを用意すればまだ良かったんだけどね。

672 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 21:41:06.14 ID:VmqYer8d.net]
Goのスライスは現実社会の物を表しているとも言える

1,2,3と書かれた箱が並べてあって、あるスライス(窓)が1,2を指しているとする
そのスライスに4の箱を追加されたとしたらどのようになるのが望ましいか

Goは現実世界のように1,2,4,3と箱が並ぶ
Pyothonはどこかから急に箱が表れて
1,2,4と言う並びの箱の列と1,2,3と言う並びの箱の列ができる



673 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 21:42:56.92 ID:seEzfIxj.net]
なるほど、スライスと言われてなんとなくわからんでもない挙動には見えてきた
でもやっぱりバグを呼び込むためだけの仕様にも思える
こんな仕様にして誰か幸せになるんかな

674 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 21:45:59.61 ID:pJm/stU2.net]
>>665
スピードマニア、つまりgo ユーザー。

675 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 22:01:59.17 ID:UHKUI4sz.net]
C++もRustもわかりやすい仕様だけどGoよりスピード出る

676 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 22:23:22.38 ID:Jp8sOWVj.net]
Goは言語設計をミスってるな

>>630
// 実験3: 要素の追加 (その1)
a = append(a, 777)

この部分は他の言語だとメソッド名こそ異なれど
a.add(777)
a.append(777)
a.push(777)
a.push_back(777)
となる
メソッド名は自由だがこの形式が正しい
Goの失敗の原点はここだ
a = append(a, 777)

677 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 22:31:11.69 ID:7ABRPFiH.net]
言語とライブラリを分離できないと潰しがきかない
C++の場合mallocやsjljを単なるライブラリではなく言語の一部にしたのが悪手

678 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 22:42:32.22 ID:hfXr0Ior.net]
>>668
go はオブジェクト指向じゃないからなぁ。

純関数にしやすいように、仮引数自体は変更しない設計にしたんじゃない?Rustも似たような思想だろ。

679 名前:デフォルトの名無しさん [2023/08/18(金) 23:16:43.53 ID:Xs4y23Ew.net]
手軽というのは実際はただの手抜きなんだよ
その尻拭いをさせられてきた良識ある若者が次の世代のためにRustのようなものを産み出す
それを無自覚な老害が腐す

680 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 23:38:51.82 ID:H/YqNwUg.net]
>>629
標準ライブラリの範囲は言語ごとに異なる
Rustの方針は言語サポートが必要な機能を標準ライブラリとする傾向が強いため他より範囲が狭い
例えばRustの標準ライブラリに正規表現や乱数などは含まれていない
だからといってRustはそれらが扱えない、というのは正しくないように
標準ライブラリに入っているか否かはさほど重要なことではない

今回の例で言えばC++20のコルーチンもRustのasyncコルーチン(タスク)も意図的にそれ自体の機能のみを言語機能および標準ライブラリに入れている
コルーチンのスケジューリング機能など含めてほとんどの機能は標準ライブラリにない
それらは言語自体が直後サポートしなくても実装可能だからであろう
Rustの場合はデファクトスタンダードの地位を確立したtokioがあるため困ることはない

681 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 23:44:30.71 ID:H/YqNwUg.net]
>>647
気軽にの意味が多様だがRustでもGoルーチンのように気軽にタスクをspawnできる
もちろんチャネルも使えてGoスタイルのプログラミングをしたければそれも簡単にできる

682 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 23:52:18.58 ID:H/YqNwUg.net]
>>654
RustでVecだと最初のb = aの時点でムーブとなるためその問題は起きない
ムーブではなくb = &aとして参照にしても競合防止のため書き換えできず問題は起きない
Goでaとbが異なったり同じになったりを二転三転してるのはaとbが競合してると考えてもいいのかもしれない



683 名前:デフォルトの名無しさん mailto:sage [2023/08/18(金) 23:57:19.87 ID:H/YqNwUg.net]
>>670
Rustはオブジェクト指向であってクラス継承の概念のみを排除している
だからそこではRustでもa.push(a)の形となりVec型の値(オブジェクト)が書き換わる
他の例でもイテレータはnext()する毎に値(オブジェクト)が書き換わる

684 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 00:22:06.39 ID:yRRJwuXx.net]
getterだけを公開すればオブジェクト指向だが
いつどこからsetされるか分からないコードはstatic変数に近い性質
それはオブジェクト指向ではない

685 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 00:59:21.18 ID:78dnv4FG.net]
>>676
「いつどこからsetされるか分からないコード」について
Rustは所有権もしくは可変参照を持たないと値を書き換えられないからコード上で明確にわかるよ
static変数については「いつどこからsetされるか分からないコード」によってデータ競合が起きうるのはその通り
しかしRustのstatic変数は(unsafeを除いて)可変(mutable)ではないため「いつどこからsetされるか分からないコード」によってデータ競合を起こすこともないよ
例えばRustのstatic変数をマルチスレッドで共有しつつ値を書き換えたいならばMutexなどによる内部可変性を与える必要がありデータ競合が必ず避けられる

686 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 01:55:38.87 ID:3nD/Pt3g.net]
こういう意味のない比較を少なくとも2年はずっと書き散らし続けて
何も生み出していないっていうね

687 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 06:12:11.05 ID:ImsjC3MV.net]
技術板のスレなのに無能が適当なこと書き散らすだけで他人が参考にならないスレ
板違いの雑談スレなんだからせめてageるな

688 名前:デフォルトの名無しさん [2023/08/19(土) 08:18:21.33 ID:7swIlm9f.net]
Rust は安全(キリっ
ですね
わかります

689 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 08:30:53.11 ID:EolsykgK.net]
>>672
標準ライブラリのサポートは重要だろ
ちょっとしたことをやるだけでいちいちライブラリを選定する必要があり、コンパイルが遅くなる
CICDも遅くなるし、ライセンスもいちいちクリアしなくては行けない

同じく標準ライブラリが薄いNode.js使っててnode_modules肥大化問題に悩んでいる奴は多いだろう

例えばhttpリクエストするだけでもプロジェクトによってライブラリが異なる
ライブラリが異なるのでそれぞれの使い方をいちいち覚えないといけない
こういったことは企業で開発する上で不毛なんだよ

690 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 08:44:42.58 ID:iXpPt34C.net]
企業については、企業がライブラリを指定するんだし…感はある(非プロの感想です

691 名前:デフォルトの名無しさん [2023/08/19(土) 10:43:11.58 ID:7swIlm9f.net]
>>681
わかります

692 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 10:53:02.71 ID:LtLp+SED.net]
選定ばかりで何も生み出さない消費者を許せないってそこに書いてある
だから選択肢を増やせば増やすほど評価が高い



693 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 14:23:54.36 ID:whLCc1g8.net]
オープンソース環境は、OSや環境に変化があるたびに、
別人が別の修正版を出してきて、少しずつ使い勝手が違う
ので、めんどくさい。
Rustもそうなる予感がするので使わない。

694 名前:デフォルトの名無しさん [2023/08/19(土) 14:30:43.48 ID:whLCc1g8.net]
>>685
今、OSSのある開発環境を使い始めたとしよう。
・ドキュメントも不十分なので、上手く行く方法を
 試行錯誤して探すのが必須。
・やっと探し出した方法でmakefileやbatファイルなどを
 整備して開発できるようになる。
・数年後、試して見ると動作しなくなっている。
・それでまた、ググり調査 + 自分でテストを繰り返し、
 数種類の配布物を試してやっとの思いで昔と似た
 ことが出来る方法にたどり着く。その間、大部分の
 環境は、来たいはずれの「試し損」となる。
・そして、makefileやbatファイルが作り直しとなる。
・ライブラリパス、インクルードパス、#includeなどの
 修正も必要となる。xxx.h だったものが、sys/xxx に移って
 いたり、昔 typedef されていたものが、なぜか無くなったり
 別ファイルで定義し奈緒知れていたりする。
・ここまで、数日間かかり、プログラミングは全く出来ない。

経験法則から導かれたOSSの開発環境の日常の風景。

695 名前:デフォルトの名無しさん [2023/08/19(土) 14:31:48.17 ID:yRurJ253.net]
>>685
C++の新しい規格を使わないのかな

696 名前: []
[ここ壊れてます]

697 名前:デフォルトの名無しさん [2023/08/19(土) 14:35:14.63 ID:yRurJ253.net]
>>686
>・数年後、試して見ると動作しなくなっている。
あなたのOSSとの付き合い方の問題点は上記に集約される
常に追っていかなくてはおいてきぼりにされる
あなたには向いていないので使わないこと

698 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 14:44:59.29 ID:rWZzqTr8.net]
2022年版年次Rust調査結果、1万超の回答 職場でRustを使う理由
https://atmarkit.itmedia.co.jp/ait/articles/2308/19/news032.html

プロフェッショナルな環境でRustを使用する主な理由としては、「バグのないソフトウェアを作成できる」という認識(86%)、Rustのパフォーマンス特性(84%)、Rustのセキュリティと安全性の保証(69%)が挙げられる。また、回答者の76%が、「Rustが楽しいと感じたから」という理由だけでRustを使い続けている(ここでは回答者が複数の選択肢を選択できるので、数値の合計が100%になるわけではない)。

仕事でRustを使用した回答者のうち、72%が「チームの目標達成に役立った」と報告し(前年比4ポイント増加)、75%は今後もチームでRustを使用し続ける計画を持っている。

一方で、職場で適用されている他の言語と同様、Rustの学習曲線は重要な考慮事項だ。専門的な立場でRustを使用している回答者の39%は、そのプロセスが「挑戦的だ」と報告している。
回答者の9%は、職場でRustを採用することで「チームの速度が低下した」と回答した。

699 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 14:45:09.39 ID:B82tdG00.net]
>>681
Rustはデファクトスタンダードがあるからそのように困ったことないな
httpならhttpという名のクレートに基本事項が定められていて全てのhttp実装やその上の各フレームワーク等がこれを使う
httpクレート自体はhttp実装を持たずにhttpのリクエスト型やレスポンス型にURI型やヘッダ型やステータス型などだけを持つところが重要なポイント
もし新たな速いhttp実装が現れたとしてもインターフェイスはこのhttpクレートに(少なくとも今までは全て)従うため利用者が困ることはない

700 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 16:02:34.86 ID:HZzlwK9f.net]
>>688
うん。だから、OSSは大嫌いだし、出来る限り使わない。
Linuxを含めて色々試したが、ごく一部のものを除いては
結局駄目だった。

701 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 16:07:41.17 ID:HZzlwK9f.net]
>>691
ちなみに、俺は、自分で何から何まで作るのが好きなので、
人が作った環境に追いまくられるのが大嫌い。

702 名前:デフォルトの名無しさん [2023/08/19(土) 16:16:02.61 ID:yRurJ253.net]
>>691
適応能力に長けてないと扱うのは難しい
変化の速さがOSSの競争力の源泉の一つと感じられなければ
苦痛だろうね

オープンソースでもboostとかはほとんど変わらんやろ? 使わないの?
規格にすらあなたは新しいものにクレームつけそうだがw



703 名前:デフォルトの名無しさん [2023/08/19(土) 16:17:31.20 ID:yRurJ253.net]
>>692
仕事が遅いと言われるだろ?

704 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 16:19:22.12 ID:LtLp+SED.net]
debとかrpmとかバイナリパッケージを否定したら挫折するね
Windowsに依存しないだけならそこまで無理ゲーではないけど
WindowsもLinuxもどっちも認めないいわゆる「中立」が過激化するとうまくいかない

705 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 16:36:31.92 ID:HZzlwK9f.net]
>>692
むしろ逆で、今までみたことがないくらい仕事が
物凄く速いと言われていたぞ。
研修時の記録も塗り替えた伝説も持っている。

706 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 16:37:25.19 ID:HZzlwK9f.net]
>>696
アンカーミスした。


707 名前:正しいアンカーは >>694 []
[ここ壊れてます]

708 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 17:00:00.61 ID:nqM77Zy+.net]
OSSかどうかとは関係なく現状のRustはライブラリ探しと精査に超時間がかかるのは確か
アプリケーションプログラマーから見るとこれがRustの最大の欠点

709 名前:デフォルトの名無しさん [2023/08/19(土) 17:36:47.10 ID:yRurJ253.net]
>>696
仕事が速い人がOSSに適応できないわけないじゃんw
>>686に「・ここまで、数日間かかり、プログラミングは全く出来ない。」
と自分でも書いてるし

boostは使わないのかい?

710 名前:デフォルトの名無しさん [2023/08/19(土) 17:53:56.37 ID:2pOprLh9.net]
>>698
そもそもRustは低レイヤ向けでライブラリを特に必要としない用途に向いてるってことだよ
Webやクラウドなどの通常のバックエンドアプリはライブラリを多用することになるがそれは向いていないってことの証

711 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 17:57:23.73 ID:Y5l+MR//.net]
ほんとに(webの上位層で)人気が出てくれば、ライブラリは勝手に揃ってくるだろうけどね

712 名前:デフォルトの名無しさん [2023/08/19(土) 18:20:48.63 ID:JEXSqoZz.net]
webやるには十分よ



713 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 18:58:40.44 ID:nqM77Zy+.net]
>>700
ところが低レイヤもたくさんライブラリ使うんだよ

714 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 19:13:06.91 ID:ZeP/2UQc.net]
だんだんOSSがおかしいと思い始めてきた

715 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 19:18:41.11 ID:bDuPlb9r.net]
RHELやHashiCorpの動きはAmazonがターゲット?

716 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 19:32:52.64 ID:bYZ/uEmX.net]
actix-webとaxumどちらがいいのだろう

717 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 19:49:03.02 ID:MPHyURRb.net]
>>704-705
Mojo🔥がAmazonかGoogleに買収されてクラウドオンリーになる可能性

718 名前:デフォルトの名無しさん [2023/08/19(土) 20:17:26.90 ID:ScsfkQnZ.net]
Firefoxはバクサイ開いたままにしてるとメモリー20GB、CPU100%になったりする
Chromeはそんなことにならない
そういう違いがある

719 名前:デフォルトの名無しさん [2023/08/19(土) 20:41:53.76 ID:JEXSqoZz.net]
>>706
axum

720 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 20:47:27.03 ID:ZeP/2UQc.net]
>>707
妨害してるってこと?

721 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 21:06:21.33 ID:LtLp+SED.net]
インターネットはおかしいと最初から思ってた
でもソースコードを保存する場所はネットでもディスクでも紙でもなんでもいい

722 名前:デフォルトの名無しさん [2023/08/19(土) 21:18:25.63 ID:fB8B9G8R.net]
>>690
Python3の場合(正常に動作しかも高速)
https://paiza.io/projects/ciU5iRNbruZiSz4IAy9M4w
Rustの場合(timeoutする)
https://paiza.io/projects/xeAwQZ8M_BHwu0fvFsPLtw



723 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 21:36:12.67 ID:DB+Yglwb.net]
write_allの後はflushした方いいんじゃね?
しらんけど

まあPythonの方がアマチュア向けというか面倒見がいいのは分かる

724 名前:デフォルトの名無しさん [2023/08/19(土) 21:50:51.02 ID:fB8B9G8R.net]
>>697
自演がバレたなω

725 名前:デフォルトの名無しさん [2023/08/19(土) 21:52:18.92 ID:fB8B9G8R.net]
>>698
crates.io 破綻してるよな

726 名前:デフォルトの名無しさん mailto:sage [2023/08/19(土) 22:20:00.98 ID:DB+Yglwb.net]
crates.ioに限った話ではないけど
ライブラリ名と実装品質のミスマッチはいつも気になってる
HTTP/2用のライブラリでもhttp2よりh2の方が利用者数多いとか
オープンなレジストリの宿命として諦めるしかないのかな

727 名前:デフォルトの名無しさん [2023/08/19(土) 22:20:55.24 ID:uqHP0fTk.net]
>>644
5chでデマ垂れ流して気持ち良くなるだけのゴミ人生でしたw

728 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 00:49:54.32 ID:nxq7VYP6.net]
損得の勝負をしてると、デマで得をする奴がいないか常に不安だよな
それなら単純に本当か嘘かで勝負すればデマと勝利は両立しないから安心安全なのでは

729 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 01:54:31.51 ID:xEeb34b9.net]
>>712
HTTPを知らないなら素直にライブラリを使えよ
そのRustコード汚すぎるがそこに正しくHTTPヘッダを一行加えたら動いたぞ
サイン曲線GIFが表示されている

730 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 02:56:13.90 ID:shN/tp+V.net]
>>719
修正版ウブおながいします

731 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 06:38:03.53 ID:klcvUWNp.net]
練習に書いてみた

fn base64_encode(input: impl AsRef<[u8]>) -> String {
 const TABLE: [u8; 64] = *b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
 const MASK: usize = 64 - 1;
 let mut input = input.as_ref();
 let mut output = Vec::new();
 while let [i0, i1, i2, rest @ ..] = input {
  let x = u32::from_be_bytes([0, *i0, *i1, *i2]) as usize;
  (0..=3).rev().for_each(|shift| output.push(TABLE[x >> shift * 6 & MASK]));
  input = rest;
 }
 match input {
  [i0, i1] => {
   let x = u32::from_be_bytes([0, *i0, *i1, 0]) as usize;
   (1..=3).rev().for_each(|shift| output.push(TABLE[x >> shift * 6 & MASK]));
   output.push(b'=');
  }
  [i0] => {
   let x = u32::from_be_bytes([0, *i0, 0, 0]) as usize;
   (2..=3).rev().for_each(|shift| output.push(TABLE[x >> shift * 6 & MASK]));
   output.push(b'=');
   output.push(b'=');
  }
  _ => {}
 }
 String::from_utf8(output).unwrap()
}

732 名前:デフォルトの名無しさん [2023/08/20(日) 07:18:09.55 ID:3t1JnBWI.net]
>>663
同意



733 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 08:16:48.41 ID:6nnys+Pw.net]
>>699
俺はOSSを使わない仕事をしているから。

734 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 08:21:25.95 ID:6nnys+Pw.net]
>>698
>OSSかどうかとは関係なく現状のRustはライブラリ探しと精査に超時間がかかるのは確か
いや、それはOSSだとほぼ必ず起きる現象。
OSS自体が持つ欠点の一つだから。

735 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 08:24:41.49 ID:6nnys+Pw.net]
クローズドなソフトだと、古いものも維持されるかどうかは、
それぞれの企業次第で各企業の特徴が出る。
ところがOSSの場合、人類全体の傾向となるから、
どのOSSなソフトでも似たような保守の傾向となり、
制御できない。なぜなら、人類全体の傾向はいつも
ほぼ同じだから。
電力送電における「無限大母線」という言葉を思い出した。

736 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 09:39:15.51 ID:GjiTjTDJ.net]
>>720
>>712 もう治ってる
>>719 thx

737 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 09:56:36.27 ID:GjiTjTDJ.net]
>724
なんか全体集合と部分集合を理解出来ていない様な日本語ですね

738 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 10:26:38.95 ID:nxq7VYP6.net]
人類の傾向はいつも、n=1を笑い、前例が1つもない事件事故に泣く

739 名前:デフォルトの名無しさん [2023/08/20(日) 10:50:22.50 ID:1EohdLDs.net]
>>723
boostは使わないのかな?

740 名前:デフォルトの名無しさん [2023/08/20(日) 11:46:34.65 ID:PLGKFrd6.net]
>>727
実際rustに限らずOSSなら必ず当てはまることなので部分と言っても意味はない。

741 名前:デフォルトの名無しさん [2023/08/20(日) 11:52:30.19 ID:1EohdLDs.net]
>>730
「ライブラリ探し」は検索すれば良いだけ
「精査」はOSSはソース手に入るが
プロプラなソフトでは諦めるしかない

742 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 12:53:04.65 ID:nxq7VYP6.net]
時間はお金で買える
ただ具体的にいくらで買えるのか誰も知らないだけ



743 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 13:19:08.66 ID:sLWYcNsZ.net]
>>731
ライブラリの選定ってソースコードの精査はそれほど比重高くないよ。
それよりもライセンス、開発体制やアクティブさ、直近のリリース状況、人気とかが重視されがち。

744 名前:デフォルトの名無しさん [2023/08/20(日) 13:30:35.17 ID:1EohdLDs.net]
>>733
アンカー間違っとった

>>724
「ライブラリ探し」は検索すれば良いだけ
「精査」はOSSはソース手に入るが
プロプラなソフトでは諦めるしかない

745 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 15:55:58.84 ID:KkFZufKp.net]
>>712を見て思ったが
RustにもPythonのrequests/base64のようなライブラリあるんだろ

746 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 15:58:19.75 ID:OKeiQGdq.net]
標準ライブラリには入ってない

747 名前:デフォルトの名無しさん [2023/08/20(日) 16:12:04.89 ID:KkFZufKp.net]
>>736
Pythonのrequestsも標準じゃないだろ
Rustは標準のみを使い,Pythonでは外部ライブラリも使ってだからな

748 名前:デフォルトの名無しさん [2023/08/20(日) 16:22:18.11 ID:mA4FcHyW.net]
RustってSimd命令は非安定だよね?実際にSimd命令使うとどれくらい高速化できんの?
Simd命令ってCPUに応じて場合分けしてコードを書かないとならんの?

749 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 16:51:39.65 ID:7DmX7Wr5.net]
>>738
CPU以外にボトルネックがないならおおよそ並列度の分だけ性能上がる
32bit + 32bitのような計算を1命令で処理してたところを256bit幅がサポートされてるハードウエア&命令を使えば約8倍

750 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 16:54:56.78 ID:7qQbvCdM.net]
>>739
実際には、「お膳立て」のためのオーバーヘッドが有ることと、
SIMD命令が使える部分が少ないことで、8倍のSIMD命令を
使っても、20%位の向上にしかならないと言われている。
数値は大体。
だから、IntelはAVX512をメインストリームからは捨て
ようとした。

751 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 17:01:04.61 ID:7qQbvCdM.net]
スパコンが、ベクトル型が廃れてスカラー型の並列型が
流行していることからしても、SIMDは将来性の無い
ものだと個人的には思ってる。
むしろ、SIMDを捨て、コア数を増やす方が圧倒的に
高速化できる。

752 名前:デフォルトの名無しさん [2023/08/20(日) 17:20:33.01 ID:V1e9lq/f.net]
スパコンのコーディングは知らんけど
雑にスレッドプールにぶん投げるだけで速くなる並列処理の方が
SIMDより使いやすいなって思う



753 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 18:05:27.72 ID:a//hKKzV.net]
>>720
整理するとこれでいいみたい

use std::error::Error;
use std::net::TcpStream;
use std::io::{BufReader, BufRead, Read, Write};
use std::fmt::Write as _;

fn http_get(host_port: &str, path: &str) -> Result<Vec<u8>, Box<dyn Error>> {
 let mut server = TcpStream::connect(host_port)?;
 let mut http = String::new();
 write!(http, "GET {path} HTTP/1.1\r\n")?;
 write!(http, "Host: {host_port}\r\n")?;
 write!(http, "Connection: close\r\n")?;
 write!(http, "\r\n")?;
 server.write_all(http.as_bytes())?;

 let mut server = BufReader::new(server);
 let mut line = String::new();
 server.read_line(&mut line)?;
 if line != "HTTP/1.1 200 OK\r\n" {
  return Err("HTTP: not 200 OK".into());
 }
 while server.read_line(&mut line)? > 2 {}

 let mut data = Vec::<u8>::new();
 server.read_to_end(&mut data)?;
 Ok(data)
}

754 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 18:11:30.48 ID:gUvM95Xg.net]
よかったね

755 名前:デフォルトの名無しさん [2023/08/20(日) 18:25:00.43 ID:MyoNrmjT.net]
>>743
え?Rustって標準ライブラリでhttpリクエストすらできないの?

756 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 18:38:37.77 ID:iamuQ/3/.net]
Rsutはwebやるための言語とか言ってたような

757 名前:デフォルトの名無しさん [2023/08/20(日) 19:01:10.42 ID:mA4FcHyW.net]
とりあえず1000×1000の行列の行列積dotが0.015秒弱でできるようなところまで行列ライブラリーが実装できたので、何とか0.00秒台で計算が終わる様にしたい。
今の所手を出してない最適化
1) Simd命令
2) インラインアセンブリ
3)ループアンローリング(これはRustだと自動的にやってくれてる様で自分の実験した範囲ではあまり効果がなかった。)


この中で一番効果的な最適化は何?
ちなみに今の所は以下の最適下は既に実装済み
1) ループ交換
2) キャッシュブロッキング
3) rayonによる並列処理

758 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 19:10:25.82 ID:IxOV384F.net]
>>745
Rustの標準ライブラリは言語サポートを必要とするものを中心に極めて絞っている
既出のhttpやbase64だけでなく正規表現や乱数など多くの機能がデファクトスタンダードライブラリ

>>746
標準ライブラリにないだけで各種ライブラリは下位から上位フレームワークまで揃っている
CPUとメモリのリソースコスパ重視でWebやるならRust一択でまちがいない
Webインフラ各トップ企業たちも>>496のようにRustを採用している

759 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 19:16:55.65 ID:55RG+hvj.net]
デファクトスタンダードという選りすぐりに聞こえるが
単にそれしかないだけのような...
ユーザ数少ないので

760 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 19:20:14.76 ID:yJmfO0+S.net]
>>747
simdに手を出すとarmのsimdまでやる羽目になる
インラインアセンブリも同じ

つまり今のところおすすめはない
外部のライブラリなどに依存するなら別だけど

761 名前:デフォルトの名無しさん [2023/08/20(日) 19:25:32.14 ID:mA4FcHyW.net]
>>750
じゃあ基本的にはdot演算に関してはこれ以上の最適化の余地はないって感じ?

762 名前:デフォルトの名無しさん [2023/08/20(日) 19:26:47.41 ID:MoWe6Sep.net]
グーグルとアップルが流行らせようとしてるらしいが



763 名前:デフォルトの名無しさん [2023/08/20(日) 19:44:59.22 ID:sOv9anOF.net]
paiza.io の Rust は crates 使えないから
ホント使いもんにならんわ

764 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 19:47:42.13 ID:rPtHvv2S.net]
じゃあGitHubのCodespacesでも使ってれば

765 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 19:54:55.65 ID:yJmfO0+S.net]
>>751
おすすめはしないけどやればやったになるはず
デバッグ環境があるかは知らないが

766 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 19:58:02.59 ID:U3mkt6q/.net]
>>753
それはpaizaが悪い
例えば>>712で意味のない比較をしているが
Python版はimport requestsと標準ライブラリではないものを使っている
つまりpaizaはPythonだと標準ライブラリ以外のライブラリも使える
同じようにRustでも標準ライブラリ以外を使えるようにpaizaが対応すれば解決

767 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 20:00:15.86 ID:259yUXDO.net]
>>747
これに即して測ってみては(1500x1500(f64)の生成、行列積、破棄の計測)
https://github.com/kostya/benchmarks#matmul

とりあえずnumpyとの比較とか
https://github.com/kostya/benchmarks/blob/master/matmul/matmul-numpy.py

768 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 20:00:40.96 ID:pu4udaaX.net]
シミュレータなどは行列演算だけ高速化しても、全体の
高速化にはなら無い事が多い。

769 名前:デフォルトの名無しさん [2023/08/20(日) 20:04:56.81 ID:mA4FcHyW.net]
>>757
手元のnumpyよりは少なくとも1000×1000の行列積は2倍から3倍速、10000×10000の行列積だと約5倍から10倍速い。手元よnumpyのバックエンドはIntelMKL。

770 名前:デフォルトの名無しさん [2023/08/20(日) 20:07:47.30 ID:mA4FcHyW.net]
まだ、行列の対角化とか逆行列の計算は実装できてない。

771 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 20:20:10.35 ID:259yUXDO.net]
なんかnumpyが遅くない?

1000x1000でnumpy.dot(a, b)部分だけ測ったらこんな感じだったけど

0.006215572357177734
0.005822658538818359
0.005129098892211914
0.007399797439575195
0.011432886123657227
0.008414506912231445
0.009572029113769531
0.009091615676879883
0.008922100067138672
0.007265329360961914

772 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 20:23:55.44 ID:259yUXDO.net]
def calc(n):
n = n // 2 * 2
a = build_matrix_np(n, 1.0)
b = build_matrix_np(n, 2.0)

start = time.time()
d = matmul(a, b)
end = time.time()
time_diff = end - start
print(time_diff)

return d[n // 2][n // 2]



773 名前:デフォルトの名無しさん mailto:sage [2023/08/20(日) 20:37:44.31 ID:259yUXDO.net]
pipで入れたのでopenblasだと思うけど、こんな感じ

OMP_NUM_THREADS=1 python mutmul-numpy.py 1000
0.030291080474853516
0.029540538787841797
0.029771089553833008
0.02943873405456543
0.02980208396911621
0.03012990951538086
0.0300595760345459
0.030525922775268555
0.03243899345397949
0.02984023094177246


OMP_NUM_THREADS=8 python mutmul-numpy.py 1000
0.0073316097259521484
0.007174968719482422
0.007193326950073242
0.006682157516479492
0.006906747817993164
0.006983757019042969
0.007711172103881836
0.008562803268432617
0.007740497589111328
0.00671076774597168

>>759のnumpy計測がsingle threadになってたりしてる?

774 名前:デフォルトの名無しさん [2023/08/20(日) 22:44:27.85 ID:mA4FcHyW.net]
>>763
シングルスレッドでの計測になってたぽい。この計測って最初のメモリ確保は含めてる?

775 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 11:52:24.10 ID:lrfEI2bB.net]
SIMDでの行列演算の最適化方法そのものとかさすがに関係なさ過ぎ。
RustとC++の違いに着目するならまだしも。

776 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 14:56:42.48 ID:jPnmmh+2.net]
>>764
>>762の通り行列積部分

JuliaをREPLで試した

function matgen(n, seed)
tmp = seed / n / n
[tmp * (i - j) * (i + j - 2) for i = 1:n, j = 1:n]
end
n = 1000
n = round(Int, n / 2) * 2
a = matgen(n, 1.0)
b = matgen(n, 2.0)
using BenchmarkTools
c=@btime(a*b)


OPENBLAS_NUM_THREADS=1 julia --optimize=3 --check-bounds=no
29.581 ms (2 allocations: 7.63 MiB)
OPENBLAS_NUM_THREADS=8 julia --optimize=3 --check-bounds=no
6.875 ms (2 allocations: 7.63 MiB)

juliaが行列積でnumpyの10倍遅いのが意外

777 名前:デフォルトの名無しさん [2023/08/21(月) 16:08:29.46 ID:IYi1S2wl.net]
>>765
まあ、この板は実質雑談板なんで。アンチOSS君も大暴れしてますし大目にみてください。

778 名前:デフォルトの名無しさん [2023/08/21(月) 16:21:29.46 ID:A+ik1f9X.net]
OSS関係無いわな。スレチ。別のところで好きなだけやればいい。

779 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 16:41:35.26 ID:W/JUog9y.net]
OSSは関係大有りだと思う。

780 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 16:46:18.02 ID:dQnAszLW.net]
Juliaとかは関係あるの?

781 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 16:48:11.28 ID:US7qznQL.net]
議論に関係あるかどうかの議論が必要ですね

782 名前:デフォルトの名無しさん [2023/08/21(月) 16:55:39.81 ID:A+ik1f9X.net]
>>769
rustのエコシステムの話とかなら関係あるけど、OSS自体のメリデメ、とかそういう論点はスレチ。



783 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 17:31:43.44 ID:W/JUog9y.net]
>>772
そんなことなくて、OSSであるということは、
非常に大きな影響を及ぼすので無視できない。

784 名前:デフォルトの名無しさん [2023/08/21(月) 17:54:01.38 ID:A+ik1f9X.net]
>>773
それが通るなら少しでも擦れば何でもありになる。
影響の大小なんて本人が大きいと言い張れば大きいことになる。
スレタイ読んで関係あるかどうか常識で考えれば自明。もちろんあなたに言っても意味無いわけですけども。

785 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 18:18:38.42 ID:W/JUog9y.net]
>>774
そういうことじゃなくて、OSSは本質的に非常に大問題を
抱えてしまっているから、どうしようもない。

786 名前:デフォルトの名無しさん [2023/08/21(月) 18:33:57.42 ID:AlisErs6.net]
>>775
そういうことじゃなくて、

じゃなくて、このスレそういうスレなんだよ。
マジで頭おかしいw

787 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 18:35:45.82 ID:dQnAszLW.net]
Rustが失敗した原因の根底にOSSの問題があるって言いたいんじゃね

788 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 19:07:31.63 ID:8jq5nfQv.net]
「(すべての)OSSは本質的に非常に大問題を抱えている」→「Rustは本質的に非常に大問題を抱えている」
ってことだな
一応前提が正しければ結論も正しいけど前提の論証が大変そうだ

「一部のOSSは本質的に非常に大問題を抱えている」→「すべてのOSSは本質的に非常に大問題を抱えている」
みたいな論証魔法を決めれば何とかなるけどプログラマはこの類には耐性あるからな

「一部の」と「すべての」を削って後ろの修飾語を盛る程度だとまだ術式が足りなくて通らない

789 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 19:20:23.58 ID:NjHCZBFl.net]
どっちでもいいから、面白いことを書いてくれ

790 名前:デフォルトの名無しさん [2023/08/21(月) 19:32:31.36 ID:jTK4AVkF.net]
>>775
boostは使わないの?

791 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 19:53:38.34 ID:2W/Jw/4i.net]
矛盾を抱えているんだから論証とか無駄。
どんな結論でも導出できる。

792 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 20:44:27.67 ID:oR9oJ1qa.net]
背理法の仮定を利用しなくても矛盾するなら、任意の結論を背理法で証明できる

だから「矛盾しているのはお前だけ」みたいな結論はむしろ出てこないんだよ
属人的な仮定を必要としないのだから全人類が矛盾する



793 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 21:19:54.31 ID:q/j5yT82.net]
>>782
論理を語るのなら、まず共通の前提条件を全部出して合意取れよ。

前提条件より先に結論が出るとかありえないし、前提条件の合意が取れていないなら矛盾するから議論する意味がない。

794 名前:デフォルトの名無しさん [2023/08/21(月) 21:26:14.98 ID:6J/DqmTl.net]
>>778
おもしろい

795 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 21:58:53.90 ID:oR9oJ1qa.net]
>>782
合意がなければ義務はないというのは正しい
議論には義務が必要不可欠というのは間違っている
強制力があるべきという合意がもしあれば論理ではなく物理的な戦争が始まる

796 名前:デフォルトの名無しさん mailto:sage [2023/08/21(月) 22:02:41.22 ID:oR9oJ1qa.net]
ちょっと間違えたけど、どこを間違えたのかいちいち合意を取るのが面倒臭い

797 名前:デフォルトの名無しさん [2023/08/22(火) 00:06:37.51 ID:p77SLRC3.net]
まあ、この板はプログラム関連なら基本的に何話しても良いってことで。この6traits目を、立てた本人が言ってることなんで。次のtraitからはそれについても書いとく?

798 名前:デフォルトの名無しさん mailto:sage [2023/08/22(火) 00:42:55.89 ID:CKREFo3h.net]
>>787
君スレと板ごっちゃにしてない?

799 名前:デフォルトの名無しさん mailto:sage [2023/08/22(火) 06:46:28.34 ID:oV9q0mPv.net]
このスレタイに釣られるって段階で、参加者がある程度絞られてる
別に何話そうが確かに構わんのだが、面白いことを書け

ライブラリ書いてるヤツが定着してるのは、Rustのライブラリ作りってこんな感じなのか、と思って眺めてる

そういや、hsutter氏がなんか動画出してたけど、まだ観てない
勉強しないといけないこと(non C++, non Rust)大杉

800 名前:デフォルトの名無しさん [2023/08/22(火) 12:18:07.09 ID:whNyN1Gw.net]
>>773
スレタイを100万回読め

801 名前:デフォルトの名無しさん mailto:sage [2023/08/22(火) 19:02:47.39 ID:jvLbVv4g.net]
>>766 訂正
測定自体はOKですが、最後の一文、桁を読み間違えてたorz

× >juliaが行列積でnumpyの10倍遅いのが意外

juliaとnumpyは同じスピードです(両方ともopenblasバックエンド、同一スレッド数の場合)

https://i.imgur.com/AKwAFec.png

>>747,759,764
そちらの環境でのマルチスレッドnumpyの測定数値が出ていたら自作ライブラリとの比較結果お願いします

802 名前:デフォルトの名無しさん [2023/08/22(火) 19:57:32.16 ID:p77SLRC3.net]
>>791
なんかnumpyでマルチスレッド指定しても速度上がんないんですけど何か要因は考えられますか?



803 名前:デフォルトの名無しさん mailto:sage [2023/08/22(火) 21:29:39.50 ID:3Q3W0wKi.net]
>>792
こちらでは素のvenvでやり直しても、defaultでマルチスレッドが効いています

$ python311 -m venv venv
$ . venv/Scripts/activate
$ pip install numpy
$ pip list
Package Version
---------- -------
numpy 1.25.2
pip 23.2.1
setuptools 65.5.0
$ du -h venv
96M venv

$ python matmul-numpy.py 1000
0.006245136260986328
0.006272077560424805
0.006720542907714844
0.007251739501953125
0.006670713424682617
0.0067596435546875
0.006724119186401367
0.005736351013183594
0.005699872970581055
0.007322788238525391

condaの場合は分かりませんので、とりあえずpipのopenblas版numpyで計測してみては?
https://numpy.org/install/#numpy-packages--accelerated-linear-algebra-libraries

804 名前:デフォルトの名無しさん mailto:sage [2023/08/22(火) 22:57:52.73 ID:3Q3W0wKi.net]
miniforgeのcondaでchannel指定してmkl版numpyを入れましたが、こちらもマルチスレッドが効いています(MKL_NUM_THREADS指定無しでも)

$ conda install -c intel numpy

$ du -h ****/tmpenv2
1.3G ****/tmpenv2 <-- orz

$ python -c 'import numpy; numpy.show_config()'
....
blas_mkl_info:
libraries = ['mkl_rt']
library_dirs = [****]
define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
include_dirs = [****]
....

MKL_NUM_THREADS=8 python matmul-numpy.py 1000
0.007200717926025391
0.007269620895385742
0.0062868595123291016
0.00983738899230957
0.007195472717285156
0.006726503372192383
0.006485939025878906
0.0068206787109375
0.006815910339355469
0.006788492202758789

805 名前:デフォルトの名無しさん mailto:sage [2023/08/22(火) 23:05:57.11 ID:3Q3W0wKi.net]
MKL版はthread数指定しないと=8よりも若干遅くなる

$ python matmul-numpy.py 1000
0.007860660552978516
0.009339094161987305
0.00830698013305664
0.006848335266113281
0.008496522903442383
0.007841348648071289
0.007840871810913086
0.00741887092590332
0.007982254028320312
0.006742000579833984

$ python -V
Python 3.8.11 :: Intel Corporation

芋づるインストールされた中でバージョンが気になるもの
mkl intel/win-64::mkl-2023.2.0-intel_49496
mkl-service intel/win-64::mkl-service-2.4.0-py38h9a4cf0c_35
mkl_fft intel/win-64::mkl_fft-1.3.6-py38h5020ddc_56
mkl_random intel/win-64::mkl_random-1.2.2-py38hf267b2b_76
mkl_umath intel/win-64::mkl_umath-0.1.1-py38h51af1d9_86
numpy intel/win-64::numpy-1.24.3-py38hcdfd0aa_0
numpy-base intel/win-64::numpy-base-1.24.3-py38h9b12b81_0

806 名前:デフォルトの名無しさん mailto:sage [2023/08/22(火) 23:11:09.00 ID:3Q3W0wKi.net]
シングルスレッドがopenblasよりも若干遅いじゃないか!
この辺でやめておきますorz

MKL_NUM_THREADS=1 python matmul-numpy.py 1000
0.032694339752197266
0.03222513198852539
0.03307652473449707
0.03224611282348633
0.031710147857666016
0.03175640106201172
0.032773494720458984
0.032234907150268555
0.03272652626037598
0.0316920280456543

807 名前:デフォルトの名無しさん [2023/08/23(水) 11:18:41.09 ID:89z/H8g7.net]
crate の docs の comment 率上げるために
struct に comment 付け捲る仕様はホントうざい

808 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 02:29:53.65 ID:zGLBQFrp.net]
python や bumpy の話題はスレ違い。
OSSの話題は許容範囲。
同一視してはいけない。

809 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 02:32:08.21 ID:zGLBQFrp.net]
RustとC++の比較において、前者が「パソコンにおいて」
OSSからスタートしてしまったことは、全ての問題の始まり。
かつてC言語はUnixではOSSであったろうが、パソコンでは
原則的にクローズドであったからこそ発展を遂げた。

810 名前:デフォルトの名無しさん [2023/08/24(木) 02:42:41.30 ID:hEI/Eij5.net]
>>799
>かつてC言語はUnixではOSSであったろうが、パソコンでは
>原則的にクローズドであったからこそ発展を遂げた。
自分で書いていて論理がおかしいと思わないのかな?

811 名前:デフォルトの名無しさん [2023/08/24(木) 02:45:44.43 ID:hEI/Eij5.net]
>>799
C言語がクローズドって何がクローズなのかな?
ANSIは誰もが使えるオープンな規格だろうが?
他人に伝えたい文章は正確に書き給え

812 名前:デフォルトの名無しさん mailto:sage [2023/08/24 ]
[ここ壊れてます]



813 名前:(木) 02:47:37.96 ID:zGLBQFrp.net mailto: >>801
TurboC, msc, Watcom C/C++, LSI C, Lattice C,
Small C などがクローズであり、パソコンでOSSなものは
当時存在していなかったはずだ。
[]
[ここ壊れてます]

814 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 02:53:01.56 ID:zGLBQFrp.net]
C言語は、規格はオープンと言えばオープンであったが、
PC-9801用のコンパイラのソースコードは非公開であった。
X68000 は gcc だったらしいが。

815 名前:デフォルトの名無しさん [2023/08/24(木) 02:53:58.47 ID:hEI/Eij5.net]
>>802

>>799
>パソコンでは原則的にクローズドであったからこそ発展を遂げた。
これは因果化関係を主張しているので
相関ではなくて因果の根拠を示すことが必要です
述べて下さい

816 名前:デフォルトの名無しさん [2023/08/24(木) 02:56:38.98 ID:hEI/Eij5.net]
分かると思うけどタイポ
-因果化関係
+因果関係

817 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 03:19:55.67 ID:zGLBQFrp.net]
>>804
クローズドだから競争が生じ、開発環境が高度に発展した。

818 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 03:23:10.48 ID:zGLBQFrp.net]
Win95が開発環境にとって終わりの始まりだった。
OSが32BIT化したことで、Unix系の無料OSSツールが
「主流のビジネスパソコン(PC-9801など)」の世界に
大量流入。
競争条件が破綻し、競争が不可能となり、衰退。

819 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 04:23:51.68 ID:ejJL7Sq0.net]
>>759
(室温超伝導)サンプルの提出をお願いします

>>793-796
スルーか一言で済ませて、余計な知恵を付けさすな

820 名前:デフォルトの名無しさん [2023/08/24(木) 04:45:44.07 ID:UfAeCzV0.net]
C/C++
/*
printf("hoge*/hoge\n");
*/
コンパイル通る

Rust
/*
println!("hoge*/hoge");
*/
コンパイル通らないωωω

821 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 04:47:55.84 ID:UfAeCzV0.net]
#[cfg(test)]
が原因か?

822 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 04:51:35.83 ID:UfAeCzV0.net]
>>799
>RustとC++の比較において、前者が「パソコンにおいて」
>OSSからスタートしてしまったことは、全ての問題の始まり。
一理ある

>かつてC言語はUnixではOSSであったろうが、パソコンでは
>原則的にクローズドであったからこそ発展を遂げた。
君の世界戦は異世界のものなのか?



823 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 04:54:05.61 ID:UfAeCzV0.net]
分かると思うけどタイポ
世界戦
世界線

824 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 04:57:32.27 ID:zGLBQFrp.net]
>>811
俺が言っているパソコンとは、PC-9801のことだ。
他のパソコンは知らんが、PC/AT機でもDOSでは、
OSSなコンパイラはほとんど動かなかったのでは。

825 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 04:59:32.52 ID:UfAeCzV0.net]
知らないならさっさと寝て下さい

826 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 05:13:21.27 ID:zGLBQFrp.net]
>>814
お前の方が知らんだろ。
OSSのせいで何もかも衰退してる。

827 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 05:26:52.49 ID:7AUlTMfz.net]
OSSは貧者(俺含む)の味方。これはガチ

828 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 07:39:52.41 ID:UfAeCzV0.net]
みんなの予想通り
プリゴジン氏が暗殺された
ぜんぶOSSのせいだ

829 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 08:51:41.95 ID:TNcuPvYX.net]
>>802
当時っていつだよ。
gnu cは1980年台からあるだろ。

830 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 08:53:47.64 ID:TNcuPvYX.net]
>>813
ハナクソみたいな日本市場で世界を騙るとか、どこの異世界ですかね?

831 名前:デフォルトの名無しさん [2023/08/24(木) 12:14:49.40 ID:fsW9ztQn.net]
>>819
5chでイキって気持ち良くなるとか、どこの暇人ですかね?

832 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 13:03:33.51 ID:hEI/Eij5.net]
>>802
確かにコンパイラは淘汰され減ったが
トータルのコンパイラの利用者つまり開発者は
OSSがない場合に比べて増加したんだと思うよ
誰でも直ぐに無料で開発を進められるようになり
開発者の裾野が広がったのは
ソフトウェアの進化速度を考える上で重要だったと思う



833 名前:デフォルトの名無しさん [2023/08/24(木) 15:07:09.15 ID:HFuNmebf.net]
>>821
淘汰されたのはOSSのせいじゃなくてVisual C++のせい。

834 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 15:13:16.73 ID:YZsWFF7D.net]
>>818
DOSのPC-9801ではまともに使えなかった。

835 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 15:51:29.49 ID:YZsWFF7D.net]
競技プログラミングみたいな何の能力を測定しているのか、
また、参加者も限られるようなものの成績が良かった
ことと、言語に対する評価眼を持っていることは別である。
評価とは、審査する側が誰であるかによって異なってしまう。
国際組織でも、アメリカの金で成り立っている組織は、
アメリカの意見になってしまうことは良く知られている
のと同様、プログラムでも学問の世界でも同様だと考えられる。

836 名前:デフォルトの名無しさん [2023/08/24(木) 15:56:25.89 ID:hEI/Eij5.net]
>>824
それで?

837 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 15:56:54.62 ID:YZsWFF7D.net]
「若いから年上の人より正しい判断が出来る」とは限らない。
しかも、その若者の能力が高いかどうかを判定しているのが
京大総長というような高齢の権威者の場合はなおさら。
何を持って人の能力を判断しているのか問題、という問題
が起きる。

838 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 16:00:05.43 ID:YZsWFF7D.net]
京大総長が、「この人はプログラミング能力がすばらしい」などと
判断したとしよう。
しかし、それは「京大総長基準」に過ぎない。
「プログラミング能力が素晴らしい」とは、一体何を
もって決めるのか。
仮に素晴らしかったとしても、プログラミング言語の
良し悪しをその人一人が判断してよいということでもない。

839 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 16:12:01.07 ID:M4GRlfeF.net]
それで?

840 名前:デフォルトの名無しさん [2023/08/24(木) 18:17:38.62 ID:QG+ZRfMP.net]
test

841 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 18:50:59.70 ID:RER6Zrq6.net]
パソコンが高価だった時代はゲーム機が貧者の味方
その時代のゲームは今でも売買されているが開発者の利益にはならない
むしろ過去の商用ソフトは衰退させた方が最新のゲームを売りやすい

842 名前:デフォルトの名無しさん [2023/08/24(木) 18:52:23.22 ID:CY1BVKcv.net]
#[derive'Copy, Clone)]
たとえば古い passwd ファイルの形式とかで使われていた
root:x:0:0:root:/root:/bin/bash
user01:x:500:500::/home/user01:/bin/bash
のような「:」区切りのテキストファイルのデータベースを扱いたいとき
C標準のライブラリは何ですか?
Rust用のcrateで言うと何ですか?



843 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 19:15:40.09 ID:zclBScKH.net]
なんでそんなこと聞くの?

844 名前:デフォルトの名無しさん mailto:sage [2023/08/24(木) 22:11:36.44 ID:3ljd7W/g.net]
自作自演の準備じゃね

845 名前:デフォルトの名無しさん mailto:sage [2023/08/25(金) 00:12:20.33 ID:1ayFYibv.net]
>>831
区切るだけならstr.split(':')かstr.splitn(7, ':')
構造体に入れるなら一般的にserde crate
そのケースならcsv crateでコロンにデリミタ指定でもいけるはず

846 名前:デフォルトの名無しさん mailto:sage [2023/08/25(金) 00:21:37.84 ID:jCG33I6S.net]
Cなら自分はstrtokが好きかなあ もちろんいろいろとunsafe

847 名前:デフォルトの名無しさん mailto:sage [2023/08/25(金) 03:14:57.13 ID:VpCvI12o.net]
Ruby で、CSV モジュールを使って書いた

UNIXプログラミング質問すれ Part10
https://mevius.5ch.net/test/read.cgi/tech/1303113996/936-937

848 名前:デフォルトの名無しさん mailto:sage [2023/08/25(金) 05:21:04.13 ID:+GAmI8K8.net]
>>681
わかりみ

849 名前:デフォルトの名無しさん [2023/08/25(金) 07:20:56.16 ID:vekBwhc6.net]
BDS-C とか α-C の人は少数派かな

850 名前:デフォルトの名無しさん mailto:sage [2023/08/25(金) 07:34:56.19 ID:jCG33I6S.net]
THINK Cとか、CodeWarriorとかあったけどねえ 内製にはgccで十分だわって

851 名前:デフォルトの名無しさん mailto:sage [2023/08/25(金) 10:05:27.96 ID:QjCfYj97.net]
マクロはズル
非売品はチート
ネイティブコンパイラは商品という雰囲気

852 名前:デフォルトの名無しさん mailto:sage [2023/08/25(金) 21:47:21.62 ID:dgCh3EK3.net]
スレタイだけ見て検証結果だけ見に来ました
どこですか?



853 名前:デフォルトの名無しさん mailto:sage [2023/08/25(金) 22:49:31.05 ID:TKWUIPKw.net]
検証結果ならC++とRustの平行線が交差してるところに書いてあるよ

854 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 09:36:49.47 ID:6yPOQcjp.net]
何番のレスですか?

855 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 10:17:55.69 ID:YvKfERa1.net]
MS「BASICとCってどっちが儲かるの」
科学「推測するな。速度を計測しろ」
アンチOSS「ソースを見れない方が勝つ」

856 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 10:47:48.15 ID:oTZjsNGJ.net]
>>844
アホ科学者「推測するな。速度を計測しろ」
知的科学者「思考実験しろ」

857 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 12:11:26.64 ID:n9Zpgb21.net]
科学的wの含意がわからないバカは単なるバカより悪性度が高い

858 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 12:50:41.78 ID:EQIr/PqP.net]
参照で充分なのに所有権の移転を要求する関数があると
いちいちcloneしてから渡さないといけないから非効率
もちろん一回呼ぶだけならclone不要だが
ループ中とかで何度も呼ぶ用途には使えない
なんでそんな関数の設計になってるんだろう?
別にメリットでもあるんか?

859 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 13:34:35.63 ID:Zw1oRqbC.net]
日本の科学界は理論軽視。実験ばかりしてる。

860 名前:デフォルトの名無しさん [2023/08/26(土) 13:51:37.78 ID:BkdXpONX.net]
日本のプログラマは設計軽視
実装ばかりしている

861 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 13:53:57.47 ID:1I5XjMeW.net]
まだ検証結果とかないんですね
結果だけは知りたいので、そのうちまた来ます

862 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 13:54:42.84 ID:X9B+4TBT.net]
無駄な事を如何に合理的に行うか



863 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 17:14:09.12 ID:BANL9PLy.net]
>>847
例えばどの関数?

864 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 18:20:57.77 ID:SuFMWKx7.net]
>>852
誰かばれるからネットでは言えないだろうて。

865 名前:デフォルトの名無しさん [2023/08/26(土) 18:28:43.52 ID:PUW/Ds/i.net]
逆じゃね
日本人は実装軽視
設計でガチガチに固めすぎる

866 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 18:35:38.61 ID:d2gT63Zp.net]
>>853
具体例出せないんだと
本人の認識に問題あるのか
関数の作りに問題があるのかわからない

867 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 18:39:02.26 ID:rFnbk731.net]
わからなくていいんじゃない?

868 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 19:54:07.81 ID:W0ZiOB7w.net]
わかってないのに何かわかったつもりになって書き込まれているクソスレ

869 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 21:07:05.08 ID:0tgAAb31.net]
上には上がある わかったつもりでも、さらに賢い奴から見ればクソ
自分なりに勉強して持論もまとめてるが、わかったなんて思わないもんだ

870 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 21:55:32.22 ID:H12RzSKf.net]
さすが老害スレww

871 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 22:24:06.83 ID:lapxHx5e.net]
賭け事とか軽率な行動をしなければいいよ
頭の中が謙虚だろうが傲慢だろうが行動に直結しなければいい
いくら謙虚になっても忠誠心か何かで極端な行動をするパターンはある

872 名前:デフォルトの名無しさん mailto:sage [2023/08/26(土) 22:46:59.85 ID:rQ60jT/J.net]
さすが老害スレw



873 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 02:06:49.72 ID:q6Sk83rz.net]
判ると解るの違いも分からないとか単なるバカだろ

874 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 02:08:05.98 ID:fTLdLIfO.net]
あーそれめっちゃわーかーるー!

875 名前:デフォルトの名無しさん [2023/08/27(日) 02:39:08.79 ID:v+5WY+8u.net]
Firefoxは何かと問題が多い

876 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 10:34:56.61 ID:m1noAQBG.net]
構造体に演算子オーバーロードしたいときって,所有権持ってかれないように構造体の参照に対して演算子オーバーロードでいいの?
期待通りに動くんだけど
&a + &b
みたいな書き方になってまどろっこしい

877 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 10:46:11.22 ID:FBPgStJh.net]
(*a).演算()やa->演算()を間違えてa.演算()と書いたらエラーになるのがC++で
エラーにならないのがRustじゃないの

878 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 10:50:29.34 ID:fHPM9HO/.net]
>>855
前者だったことが判明

879 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 11:12:20.72 ID:KN9Q47l4.net]
勝利宣言おじさん!

880 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 12:47:03.16 ID:nwdT7crg.net]
>>867
ネットで身元がばれるような情報が書けない事をいいことに
勝利宣言してしまう人。

881 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 13:02:52.22 ID:gIdFwVfH.net]
くやしそうww

882 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 13:15:32.07 ID:nwdT7crg.net]
どうせ普及し無い事が分かってるし、なんとでも言え。



883 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 13:30:23.89 ID:FBPgStJh.net]
スマホや自動車の部品のように
買わされたけど存在意義は知らない物が普及することはよくある

884 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 13:50:59.05 ID:HtzqCBy6.net]
おじさん思考トレース

おじさんはね
Rustに部分的にでも欠陥があるかのような物言いは許せないんだよ
コードが出れば今すぐにでもそいつのせいにしてマウントして打ち消しようと思うんだけどね
証拠がないならそいつのせいってことで断定してマウントとっちゃうのが手っ取り早いから、もうそういうことにしちゃうよ

885 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 13:53:29.74 ID:HtzqCBy6.net]
こうして今日もRustの名誉は保たれた

886 名前:デフォルトの名無しさん [2023/08/27(日) 14:19:51.40 ID:FzVOeawK.net]
FirefoxはRustで書かれてる

887 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 14:42:04.03 ID:ZMNQeswV.net]
めちゃくちゃくやしかったんだなwwwww
クッソおもろい

888 名前:デフォルトの名無しさん [2023/08/27(日) 14:45:24.00 ID:wLUi1wnU.net]
FirefoxってRustでも書かれているってだけで
C/C++の方がまだ多いうだよ

889 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 14:53:34.38 ID:FBPgStJh.net]
確率的にはコンパイラのバグよりもアプリかライブラリのバグが多いから
コンパイラに欠陥があった的な物言いは分が悪い
これをやりたいためにライブラリを外部に丸投げする方式が普及している

890 名前:デフォルトの名無しさん [2023/08/27(日) 15:00:51.57 ID:FzVOeawK.net]
使用率100%は電池が減る

891 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 16:29:11.02 ID:CnmnxBvX.net]
>>865
普通はCopyにする
Copyにできないなら明示的にcloneする
どちらにも採用できない状況なら
参照に対してのみオーバーロードを書く

+や-の演算子はdot演算子と違ってauto-referencingが効かないから
&a + &bみたいな書き方になるのは現状では避けようがない
将来的にauto-refが効くように改修されることがもしあれば
a + bのような書き方もできるようになるかもしれない

892 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 17:02:53.80 ID:dtO6uWju.net]
>&a + &b
>みたいな書き方になってまどろっこしい

Copy実装したくない大型なら参照を使うから&a + &bの書き方がありがたい
小型ならCopy実装してa + bと書ける



893 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 17:07:29.78 ID:FBPgStJh.net]
大きいサイズの値を2回以上コピーするのを1回にするような最適化は
コピーコンストラクタに副作用がない保証があればできる気がする

そしてRustのCopyの振

894 名前:る舞いはユーザが勝手に定義できない []
[ここ壊れてます]

895 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 18:00:17.55 ID:U2l728xv.net]
>>867
具体例出せないと後者の可能性高いだろ。
標準ライブラリやOSSならそういう問題は他の誰かからも指摘入って修正されるだろうし。

896 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 18:26:07.84 ID:5kryRYaj.net]
>>880
ありがとう
auto-refないから&a+&bって書き方になるのね
理解したわ

897 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 18:47:19.96 ID:9Fw72WPV.net]
>>883
具体例はfn add(self, rhs: Rhs) -> Outputだったということでしょ

898 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 19:50:49.96 ID:zk2DK/9o.net]
>>885
なるほどね
やはり勘違いしていたわけだ
&selfと書いていないから参照はダメだと思い込んでしまったのだろう
実際にはもちろんself自体が参照型でもOK

899 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 19:55:22.28 ID:zk2DK/9o.net]
一般的にもトレイトのメソッドfoo(self, ...)についてself自体が&T型の場合もある
&T型はCopy実装されているため消費されても構わない
ようはポインタだから

900 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 20:33:53.99 ID:E6sVfEz/.net]
え、その二つの話つながってたの?

901 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 21:23:31.52 ID:Cz9QaAKK.net]
比較演算子とかはauto-ref/derefできたほうがいいと思うが算術演算子はexplicitな今のスタイルの方がいいと思う
今でも&a + &bの中身がa.clone() + b.clone()になってるやつとかやめて欲しい

902 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 21:33:56.56 ID:OVTDvFv9.net]
>>885でSelfもRhsもOutputも自由なのでT次第でT + T、T + &T、&T + &Tなどそれぞれ最適な実装ができる
例えばT + &T -> Tは敢えて消費してそのメモリを居抜して返す効率パターン
例えば計算途中の中間生成Tは消費されてもよいわけで再び結果の中間生成Tに転用できる



903 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 21:35:11.73 ID:Aks4ymi6.net]
>>889
俺もそう思う
コピーして演算なら a+bで良いと思うけど
デカいオブジェクトで参照で演算なら&a+&bのほうがわかりやすいから良いと思う

904 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 21:44:01.12 ID:OVTDvFv9.net]
数値計算以外にも応用できて
Rhsは &T でなくてもよいため
例えば { string.push_str(other_str); string } と書くところを
string + other_str と簡潔に書ける
以下の居抜き実装があるため

impl Add<&str> for String {
 type Output = String;

 #[inline]
 fn add(mut self, other: &str) -> String {
  self.push_str(other);
  self
 }
}

905 名前:デフォルトの名無しさん mailto:sage [2023/08/27(日) 21:45:30.32 ID:Aks4ymi6.net]
>>888
俺もなんで&a+&bの&を書くのがまどろっこしいが
>>847
>参照で充分なのに所有権の移転を要求する関数があると
>いちいちcloneしてから渡さないといけないから非効率
に結び付くのか理解できないが,でも、rust野郎は激頭いいから同じ質問を形を変えた質問と
見抜いたんだろう

906 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 03:04:54.55 ID:kRbDFKro.net]
質問してる人と答えてる人が同じ人だったら怖いなあ

907 名前:デフォルトの名無しさん [2023/08/28(月) 03:16:32.18 ID:gISZWwhM.net]
自演の多いスレ

908 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 09:03:13.17 ID:ponuOfxz.net]
ほんそれ
>>873-874

909 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 10:16:26.38 ID:uyUKevyw.net]
くやしすぎて負け惜しみを書かずにはいられない老害爺ww

910 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 12:32:28.64 ID:PXcIjE1o.net]
Rustの名誉を守るため、日々欠かさずパトロール。
そうしてRustの名誉は保たれているのだ。

911 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 12:58:11.57 ID:v69lGQmU.net]
質問してたのは行列演算の人でしょ

912 名前:デフォルトの名無しさん [2023/08/28(月) 13:33:08.88 ID:EHUcz/c8.net]
>>847>>865両方とも?



913 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 14:14:10.40 ID:fWSSPYAk.net]
impl<'a> Add for &'a Foo
impl<'a> Add<&'a Foo> for Foo
これで、変数名に&はつかないけど括弧に&がつく感じにできるね
a + b + c == &(a + b) + c == a + &(b + c)

914 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 15:01:10.40 ID:Lf88OaGD.net]
それだけじゃ無理

915 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 15:28:15.79 ID:YEWHN9+F.net]
Rustで学ぶなんとかとかいう本いっぱい出ているし、結構個人でやる気のあるやつは覚えるんじゃね?
Rust人口増えている印象。

916 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 16:02:44.46 ID:Ga4nU38J.net]
この出版不況にそれは凄いじゃん!

917 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 17:40:21.62 ID:g5rB6bRy.net]
数年後はHaskellみたいな存在になってそう

918 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 17:40:22.57 ID:v1Y6udqG.net]
数年後はHaskellみたいな存在になってそう

919 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 18:31:30.91 ID:F1J/4/k0.net]
地学を笑えば名誉を保てそうなのに
逆に名誉を捨てて地学を取る芸風みたいな

920 名前:デフォルトの名無しさん [2023/08/28(月) 19:57:39.97 ID:4Zx7/Z20.net]
数年後にはHaskellみたいなってると言う人が数年前からいるけど数年後もいるだろうなぁ

921 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 20:08:53.96 ID:BueC5+dS.net]
数年前はHaskellはまだブームだったからその時は誉め言葉だったんじゃないの?

922 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 20:46:16.35 ID:o8MpXwtV.net]
まあそもそもC++人口がそんなに多くないのにそこからRUSTに移行する人間なんて更に少ないわな



923 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 20:47:30.82 ID:C2T1kkQt.net]
ちょっと勉強するならいいけどビジネスでRust書くとか発狂しそう

924 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 20:53:03.47 ID:kRbDFKro.net]
そろそろ質問する人と答える人が出てくるかも

925 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 21:01:02.40 ID:DV0IBXio.net]
単純なoperator overlodingでもTと&Tの組み合わせで最低4パターンは考慮しないといけないからな
一般的なビジネスアプリケーションでこういう手間をかけるだけのメリットを享受できるケースは少ない

926 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 22:06:15.45 ID:LALZht9t.net]
operator overlodを使うビジネスアプリケーションw
あるとしてもoperator overlodを定義するのはライブラリの仕事
利用者は型エラー起こさないように使うだけであり一般的な静的型付け言語どれも同じ

927 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 22:36:07.58 ID:78Jgmrk1.net]
>>914
知らない分野に無理にコメントしなくていいぞ

928 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 22:50:16.52 ID:t6DgO9mO.net]
ないな
算術以外でオーバーロードは必要ない
関数(メソッド)名で目的をはっきりさせる

929 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 22:53:49.98 ID:56ZoPPYl.net]
くやしくてイチャモンつけたかっただけだろw

930 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 23:04:09.89 ID:o8MpXwtV.net]
バカでも書けるフレームワークでも無ければビジネス利用は無いだろね

931 名前:デフォルトの名無しさん [2023/08/28(月) 23:07:53.29 ID:N5WGrjIW.net]
>>916
operator<<
operator>>

932 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 23:08:27.79 ID:F1J/4/k0.net]
PerlやC++の演算子を想定してるんだろうけど
若者はそんなものは知らん
PythonとRustは失敗を繰り返さなかった



933 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 23:30:17.72 ID:t6DgO9mO.net]
>>919
シフトは整数以外で使ったことないな
そんなものをオーバーロードしてどうするんだよ
意味不明になるぞ

934 名前:デフォルトの名無しさん mailto:sage [2023/08/28(月) 23:56:35.09 ID:LALZht9t.net]
>>915
具体的にoperatorをoverload実装して使うビジネスアプリケーションを言ってみろよ
例えば多倍長を利用するとしても汎用ライブラリが実装するから該当しないよな

935 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 00:00:35.21 ID:J3xeIa5d.net]
一般的には算術演算子よりも比較演算子をオーバーロードすることのほうが多いだろうな

936 名前:デフォルトの名無しさん [2023/08/29(火) 00:04:16.28 ID:82ATxlW4.net]
>>921
そいう批判は昔からあったけど混乱することは全くないよ

937 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 00:36:27.64 ID:fynFs9jV.net]
>>923
Rustなら例えばこう書くだけだな
#[derive(PartialEq)]
struct Foo { ... }

これで型表記Foo == Fooも&Foo == &Fooも通る
Foo == &Fooは撥ねてくれる

ちなみに値の比較ではなく
同一性すなわちポインタの比較をしたいならば
std::ptr::eq(&Foo, &Foo)

938 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 01:09:16.27 ID:Cd1k3Xfz.net]
>>922
もしかしなくても実務経験ゼロ?

939 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 01:43:28.47 ID:g1jCtVM0.net]
>>925
>Foo == &Fooは撥ねてくれる
値として扱うならこれは跳ねるべきではないのでPatrialEqのimplが追加で2ついる

940 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 01:43:31.90 ID:fynFs9jV.net]
おまえらいつも例を出さずにもめてるな
演算子をオーバーロード実装するビジネスアプリとやらの例を出せば済む話

941 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 01:45:18.86 ID:fynFs9jV.net]
>>927
型不一致として撥ねるべきだ

942 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 01:49:31.97 ID:fynFs9jV.net]
>>927
例えば型不一致でも通せ!という理不尽な要求はここへ行き着くので認めるべきでない
if Foo != &Foo {
 Foo = &Foo;
}



943 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 01:51:57.07 ID:3VOu0kGE.net]
>>929
eqメソッドを使った時も撥ねる仕様ならその言い訳も成り立ったかもね

944 名前:デフォルトの名無しさん [2023/08/29(火) 02:17:09.83 ID:+HxwobiY.net]
>>926
と素人が申しております

945 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 02:25:36.33 ID:RO95g2iU.net]
>>931
演算子オーバーロードの話をしているところにメソッドを持ち出したらオウンゴールw
メソッド使用でいいなら演算子オーバーロードの必要なし

946 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 05:40:09.32 ID:DdsP5NoC.net]
演算子のオーバロードは、ライブラリマンに任せるよ これはC++も同様
あんなものバグ・抜けなしで書けるとか数学マンかよ

ああいうこともできる、というのがC++のいいところだが、自分には過ぎた代物

947 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 07:50:33.04 ID:E3TpD5zQ.net]
英単語ではない記号を使うだけなら仮想関数でもできる
仮想関数のように型を統一しないのがオーバーロードの特徴
統一するとvoid*とかObjecとか残念な型になってしまう

948 名前:デフォルトの名無しさん [2023/08/29(火) 10:14:25.34 ID:RvCE3Lp0.net]
>>900
その二つは別人
ソース俺

>>888
繋がってない
めっちゃ迷惑

自演じゃなくて他演されたの初めてだわ

949 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 12:39:12.46 ID:Gj9jSZac.net]
>>936を信じるなら
ID:EQIr/PqP

ID:m1noAQBG = ID:RvCE3Lp0 = 行列ライブラリの人
で、ID:Aks4ymi6は行列ライブラリの人になりすまそうとしたっぽい謎の人物ってことかいな?

950 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 13:05:17.54 ID:4jFDwxnu.net]
このスレまじで負け惜しみレスが多いな
なんでここまで幼児メンタルを引きつけるのか謎

951 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 13:45:45.19 ID:L7AzKEdf.net]
ここはプログラマ板ではなくプログラム板
話はプログラムで示せ
それができない話ならばプログラマ板へ行け
具体的なコードで話せずに文句と批判するだけの無能は不要

952 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 13:57:24.70 ID:YzXqUdha.net]
自分で自分追放してて草



953 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 14:01:13.75 ID:Gj9jSZac.net]
>>939
問題の切り分けができない無能も不要

954 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 14:44:41.31 ID:CCTytCTB.net]
急に発狂するやついて草
何か刺さっちまったんだろうなw

955 名前:デフォルトの名無しさん [2023/08/29(火) 18:25:25.49 ID:113viVdP.net]
玲音しね

956 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 18:42:00.76 ID:E3TpD5zQ.net]
こんな仮想空間でまじになっちゃって
負けたら大変なことになると思い込むのが問題なんだけど
論破というのはまさにそういう仮想空間で相手にそう思い込ませる術だよね

957 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 19:18:58.62 ID:YzXqUdha.net]
rustって名前が良くないよねって思ったけどcも大概やったわ

958 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 20:54:09.08 ID:Nn6iD5I/.net]
おれ865だけどなんで847と同一人物認定されてんの?

959 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 21:54:12.23 ID:0ZJbGVqi.net]
Rustは普及してないという願望・妄想と
Rustに言及するレスが続いてる現状を両立させるためだろ

960 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 21:55:40.52 ID:o1bsY+eR.net]
稚拙w

961 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 22:39:33.53 ID:qbvOBi0x.net]
>>947
C++おっさん・爺は年齢的にRust覚えられないから
普及されると嫌だろうからな
一方、若い連中はもう化石言語になるC++よりRustに将来性を見出すだろうからな。

962 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 23:08:37.53 ID:dpeDea2P.net]
若い人は誰も使ってないイメージ



963 名前:デフォルトの名無しさん [2023/08/29(火) 23:42:50.57 ID:KeTq/BI+.net]
でも、いまC++もRustも経験がない人が勉強するならC++からじゃない? C++がある程度分かってないと、Rustのありがたみも分からないし。

964 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 00:16:18.11 ID:4rN9QUhj.net]
Cと各スクリプト言語から来てRustで困ることなかった
C++は必要なさそう

965 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 08:48:22.21 ID:eE+KSztu.net]
将来性ならpython
言語設計ならNimかMojo
実力ならc/c++
かね。
pythonは無くなることないから身につけて損はないし、その延長線としてNimは使える。
Mojoはスタックフレーム指向として将来性感じる。RustはMojoの踏み台。

966 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 08:54:27.99 ID:Q1GiOTDg.net]
バイナリサイズを小さくしたい→C
バグを少なくしたい→Rust
??→C++

967 名前:デフォルトの名無しさん [2023/08/30(水) 10:06:20.92 ID:7zJH/Xg6.net]
>>954
Cの後継はZig
C++の後継はRust

C++はいらないこ

968 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 10:57:54.24 ID:O0+f/FEO.net]
mojoはわかるけどnimってスーパーマイナーすぎんか

969 名前:デフォルトの名無しさん [2023/08/30(水) 12:29:00.92 ID:kkA3iJAe.net]
>>953
>>956
mojoは早くソース公開しろよ

970 名前:デフォルトの名無しさん [2023/08/30(水) 12:30:46.34 ID:kkA3iJAe.net]
>>955
zig使ってるbunが1.0になったのに、肝心のzigはいつ1.0になるんだよ?

971 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 12:32:21.28 ID:K0sdPATe.net]
喪女はまだめっちゃアーリーステージです~って言ってなかったか
それであんなにドヤ顔登場させた意味はわからんが

972 名前:デフォルトの名無しさん [2023/08/30(水) 12:40:02.98 ID:wWfEYgvd.net]
やねうら氏ね



973 名前:デフォルトの名無しさん [2023/08/30(水) 12:40:52.41 ID:wWfEYgvd.net]
>>951-952
C++は知らない方が良い

974 名前:デフォルトの名無しさん [2023/08/30(水) 12:42:41.11 ID:wWfEYgvd.net]
>>956
nim知らないの?遅れてるな

975 名前:デフォルトの名無しさん [2023/08/30(水) 13:45:48.64 ID:mNxVjhal.net]
>>962
あなたの遅れてる認定とか知りませんやんw

976 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 15:17:49.40 ID:zHni/Vbc.net]
智慧をくれ

977 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 15:36:17.12 ID:HQ0MoXmm.net]
「次世代言語wに憧れる一日中暇なお爺さん達wのスレ」
さすが!中身がない!

978 名前:デフォルトの名無しさん [2023/08/30(水) 17:03:14.09 ID:JRlr8oOO.net]
前にnimは使ったことあるけど、結論的にはそんなに将来性を感じなかった。nimのライブラリが少ないし、pythonのライブラリを使うと結局そこが律速段階になるので速度の恩恵も個人的には微妙だった。これなら普通にpythonを使った方が便利だなとは思った。いまはどんだけ進展してるのかは良く知らんけど。

979 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 18:40:48.60 ID:Blqpd4nm.net]
>>953
Pythonは必要な時にスクリプトの読み書きができれば十分で
あの言語仕様と遅さはプログラミング言語としては適してないためこのスレの対象外

Nimは何もかも中途半端であることに加え
先が見えてしまったのとあの開発体制では今後も期待できないため無視してよい存在

980 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 18:56:26.78 ID:VDEXXxkp.net]
意味のないレスだよ

981 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 19:40:27.89 ID:K0sdPATe.net]
mojoを持ちつつPythonを嗜み
Rustを横目にc+に打ち込む

982 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 20:24:13.48 ID:YW1fodiP.net]
Rustが失敗作だったってことじゃん



983 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 20:35:58.15 ID:o+6d8X1p.net]
現実はこれ>>496
新たなネットインフラC++ではなくRustで記述されている

984 名前:デフォルトの名無しさん [2023/08/30(水) 21:03:04.24 ID:U5prozod.net]
>>971
現実はRustで書かれているものも稀にあるってだけでは?

985 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 21:05:54.95 ID:EFFGi3bv.net]
>>298
mallocしたままfreeしないのはRustでももちろんできる
BoxやVecなどにはleak()があり意図的にリークする(=今後解放しない)ことができる
代わりに得られるのはライフタイムがstaticな可変参照
つまり静的にメモリ確保したことと同じ扱いになりライフタイムの束縛がなくなり自由となる

986 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 21:20:25.79 ID:qErRQYHl.net]
>>972
超大手が色々検討してその結果Rustで作ったなんだが、
知りたいのは、なんで(C++じゃなく)Rustを採用したのかなんだよな。
俺思うに、ネットインフラは公開で超攻撃対象になるから、脆弱性がなるべく少なくなるように
するためにはC++よりRustが良いと判断したからじゃないかと妄想。

987 名前:デフォルトの名無しさん [2023/08/30(水) 21:33:28.86 ID:U5prozod.net]
>>974
だからその超大手の数多ある新規プロジェクト群の中に
Rustのプロジェクが稀にあるってだけなのでは?

988 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 21:37:48.96 ID:qErRQYHl.net]
>>973
そんなの(leak()って)あるのか、leak()でdropしない(禁止する)ように指示しているのかな

989 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 21:39:30.75 ID:8/HxBYkL.net]
>>974
C++と比べるとRustはまず記述のしやすさと可読性の良さ
そしてC++よりもコンパイル時点で判明できるミスやバグが多くてデバッガ実行も激減し開発効率が高い
同時にそれらは保守性の良さにも繋がっている
C++とRustのどちらも選べる環境ではC++が今後使われることがほぼなくなるのだろう

990 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 21:43:01.91 ID:qErRQYHl.net]
>>975
まれだとしても,超重要なものにわざわざRustだからな
話題のRustでどれぐらいのものが出来るか確認するための
重要なものを作ってみた可能性もあるが

991 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 21:49:43.21 ID:8/HxBYkL.net]
>>496はCloudflareとAWSそれぞれの最も重要な中核部分だ
試しに作ってみるような部分ではない
今後は人員さえ揃えばRustを使うというIT各社の確固たる方針

992 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 22:00:23.43 ID:dSL5QWen.net]
何かを選ぶ理由とそれを選んだという事実の因果関係は無いほうが動きやすい
強者の命令に対し
命令に従うことが必然的ではない人間はもっと強い



993 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 22:11:27.44 ID:YW1fodiP.net]
>>974
99%はC++なんだけど…

994 名前:デフォルトの名無しさん [2023/08/30(水) 22:23:28.66 ID:U5prozod.net]
そもそも本家本丸のfirefoxのコードは実はC++の方が多いんだぜ?

995 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 22:34:47.35 ID:CtEi3o2X.net]
複オジの世迷言 vs 老害爺


996 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 23:03:37.56 ID:EFFGi3bv.net]
>>976
leak()へ所有権を渡すので所有者はいなくなりdropは起きない
代わりに&'static mutを得ることができてライフタイムに束縛されなくなる
例えば"abcde"の&'static strが所有者を持たずdropも起きないのと同じ

997 名前:デフォルトの名無しさん [2023/08/30(水) 23:17:03.32 ID:E3RaRkgj.net]
>>977
「記述のしやすさと可読性の良さ」って冗談か? Rustは冗長な癖に変な略語が多くて読みにくいし醜い。
あんなもんで開発するのは錆びついた歯車の自転車でギコギコ走らされるような罰ゲームだろ。

998 名前:デフォルトの名無しさん [2023/08/30(水) 23:21:58.36 ID:jEaVNaFL.net]
>>981
そりゃ既存のプロジェクトを数えりゃ歴史あるほうが使われてる割合多いだろうよ。

999 名前:デフォルトの名無しさん [2023/08/30(水) 23:23:05.29 ID:c1vOy1St.net]
C++とRust両方使いこなせる人たちが100%
Rustに軍配を上げるように
C++の言語機能が弱すぎることがC++の敗因かと

1000 名前:デフォルトの名無しさん [2023/08/31(木) 05:57:13.65 ID:Fp7risRc.net]
>>983
と世迷言老害が申しております

1001 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 09:04:59.10 ID:qE8kvwKZ.net]
rustでdll造ってCから使うとき
rust側で勝手に捨てられるのは困るな

1002 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 10:28:37.32 ID:CmoRmahF.net]
メモリリークを簡単に立証できる参照カウントなら
勝手に捨てられないことを簡単に立証できる
これが勝因だ



1003 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 12:21:22.57 ID:dCL063sE.net]
1000なら今年中にC++にも unsafe{ } が来る ← 一応参加

結局C++とRustってどっちが良いの? 7traits
mevius.5ch.net/test/read.cgi/tech/1693451813/

1004 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 12:50:11.95 ID:9MCfOvkc.net]
>>989
は?
C++もRustも同じだぞ
Cから所有権がムーブしてくることはないので
C++もRustもCで確保したメモリを勝手に解放することはない

1005 名前:デフォルトの名無しさん [2023/09/10(日) 12:08:07.01 ID:aFcKBhMvr]
第二のエルピーダ確定の価格下落しまくり半導体の次はАIに税金2000億とか天下り税金泥棒無能公務員には反吐が出るな
世界最惡の脱炭素拒否テロ国家に送られる化石賞連続受賞して世界中から非難されなか゛ら憲法13条25条29条と公然と無視して力による一方的な
現状変更によってクソ航空機倍増、閑静な住宅地から都心まで数珠つなぎで鉄道のз0倍以上もの莫大な温室効果ガスまき散らして騒音まみれ
静音が生命線の知的産業壊滅させて天下り賄賂癒着してるナマポ集団Ntтだの不治痛だのとの税金泥棒のネ夕にしてるだけなのがハ゛レバレ
ポンコツ技術後進國を脱却する氣などサラサラないのはクソ航空機の陸域飛行禁止しないことからも明らかた゛ろ
都心から離れすぎない地に飛行禁止区域を作るだけでも2000億以上の技術発展を確保できるだろうがクソ無能公務員の手作業による税金泥棒
ネタ維持のために気候変動までさせて土砂崩れ,洪水.暴風、熱中症にとマッチポンプ丸出しで住民殺害してこれて゛もかと私腹を肥やす気滿々
某AIは高速データ処理が飛躍的なだけで知能としてのフ゛レイクスル ─には至っていないがそれて゛もポンコツ腐敗後進国曰本には無縁の技術た゛わ
(羽田〕Τtps://www.call4.jp/info.phΡ?tyРe=iТems&id=I0000062 , tтPs://haneda-projeCt.jimdofree.com/
(成田)tтps://n-souonhigaisosyoudan.amebaownd.сom/
(テロ組織)tΤps://i.imgur.com/hnli1ga.jpеg

1006 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<280KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef