C vs C++ vs Rust Part.2

レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん
垢版 |
2021/12/15(水) 12:35:50.91ID:biBE4xC0
競え
※前スレ
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/
2022/01/20(木) 01:29:39.27ID:z2ZQEaJV
>>837
なぜブラウザだけ?
839デフォルトの名無しさん
垢版 |
2022/01/20(木) 01:30:31.76ID:Rx+HndAo
>>837
ウェブ周りは間違った設計が堂々としてて凄い貫禄と思う。
無印ペンティアム辺りの時代を未だに引きずっているのかも。
840デフォルトの名無しさん
垢版 |
2022/01/20(木) 01:31:27.85ID:Rx+HndAo
>>838
貫禄が在りすぎて我々にはどうしようもない。
2022/01/20(木) 01:52:40.04ID:hnvUf8sg
>>837
色々とおかしいぜ
まずシングルスレッドでも可能な並行処理とマルチスレッドとなる並列処理の違いがわかっていない?
さらに非同期処理と並行並列処理の違いも分かっていない?

まずシングルスレッド内でもマルチタスクで並行処理はするしasync/awaitは用いる
ブラウザ上での各ページのJavaScriptもシングルスレッドで動いていてasync/awaitが使われる
非同期であればasync/awaitは使われるのだからマルチスレッドである必要はない

さらにasync/awaitを使おうと使わまいと非同期処理は必須
ネット通信にしてもI/O読み書きにしても同期かつ並行並列もなく待ちぼうけプログラミングでもしているのかね?
842デフォルトの名無しさん
垢版 |
2022/01/20(木) 02:21:18.74ID:Rx+HndAo
そういうことじゃないんだよな。
2022/01/20(木) 04:37:02.48ID:Hal1pivO
>>837
マルチスレッドは処理速度だけじゃなく、プログラムをシンプルにする目的でも使うんよ
2022/01/20(木) 08:33:11.42ID:lGM+CbA+
>>841
"ロングランテスト"でしかテストできないという意味では全部一緒ですねw
2022/01/20(木) 09:27:27.00ID:Vi2E1kzg
デスクトップアプリでsureddo使わないと、処理中はアプリが固まるんだけどなw
846デフォルトの名無しさん
垢版 |
2022/01/20(木) 09:44:08.26ID:YvBiSXkf
>>835
お前が無くてもチームの誰かがあったらダメじゃねーの?
2022/01/20(木) 09:47:19.38ID:L6GD7VFA
>>845
シュアード・ドゥ使わなくてもオルニチン使えば大丈夫..
2022/01/20(木) 10:35:37.00ID:XHUr7069
>>846
データ競合に関しては、ありがたみがわからないんだよね
そもそもそれが発生する設計しないというか...
2022/01/20(木) 11:56:51.04ID:BSrnUcOL
同感だわ
ポインタほどプログラム全体に散らばるようなものじゃないからな
2022/01/20(木) 12:08:15.10ID:/QGeeRaj
自分で書くぶんにはデータ競合はほぼ踏まないと思ってるし
実際Rustで書いてもSend/Syncエラーになったりはしないんだが
だからといって社内の謎ライブラリやらマイナーなOSSが
同程度に信頼できるわけではないからな
チェックがあるに越したことはない
2022/01/20(木) 13:07:09.28ID:r0r0TMJm
Send/Syncはまた別の話
2022/01/20(木) 13:25:20.64ID:XHUr7069
>>850
あ、そっか
スレッドセーフじゃないAPIを不用意に使って、共有するなにかが壊れる系のバグはあるわな
2022/01/20(木) 15:08:40.58ID:kNFbPrzb
社内の一番馬鹿に合わせるのって苦痛じゃないの?
854デフォルトの名無しさん
垢版 |
2022/01/20(木) 15:23:18.62ID:YvBiSXkf
>>850
同意
2022/01/20(木) 16:03:42.89ID:XHUr7069
>>853
嫌ならやめればいいね
2022/01/20(木) 16:21:18.96ID:hnvUf8sg
データ競合やメモリ安全のコンパイラによる保証よりも
Rustは様々な点でC/C++よりプログラミングしやすいことが一番の大きな点だと思う
挙げだすとキリがないけど値格納付enumや強力なマッチング&デストラクチャリングなど含め基本的なことを始めにね

言語にそんな色んな機能は要らないしコンパイラによる保証も自分でやるから要らないという人にはC言語がある
C++は何もかもが中途半端な存在となってしまっていることに気付いた
2022/01/20(木) 18:41:53.83ID:kNFbPrzb
>>855
それは苦痛って意味?
2022/01/20(木) 19:12:10.38ID:XHUr7069
>>857
嫌ならやめればいいねって意味だけど?
2022/01/20(木) 19:30:40.05ID:kNFbPrzb
>>858
そもそも苦痛かどうか聞いてるんだけど?
2022/01/20(木) 21:43:31.04ID:f9tdz5B4
プログラミング言語として優劣差が明白にあります
C++とRustの両方を書ける人たちが新たなプロジェクトをする場合
100%Rustが採用されます
2022/01/20(木) 22:05:27.01ID:WtRmajcd
>>860
ソースは?
2022/01/20(木) 23:37:03.72ID:7c1Oq9Kl
kerneldeveloperだけど、c使うな言われたらrust使うかな
2022/01/21(金) 00:37:31.45ID:gQq8dla+
>>859
ケースバイケースでしょ
何アホな質問してんだか
2022/01/21(金) 01:58:41.80ID:7FRrrgJK
>>863
アホはレスしないで
2022/01/21(金) 06:29:26.72ID:rZUqxNH8
>>853
苦痛だが、合わせざるを得ないのが現実だろ
2022/01/21(金) 17:44:48.18ID:GenQVxT3
こういうのが嫌なんだよな

> Rustのデータベース系クレートでは、長らくORMのdieselがデファクトスタンダードとして各入門系テキスト/書籍でも扱われていましたが、ここ最近はdieselの名前を見かけることはあまり多くないように思います。
867デフォルトの名無しさん
垢版 |
2022/01/21(金) 18:42:50.23ID:manmLzTJ
C++の線形代数系ライブラリでは、長らくEigenがデファクトスタンダードとして扱われていましたが、ここ最近はEigenの名前を見かけることはあまり多くないように思います。
868デフォルトの名無しさん
垢版 |
2022/01/21(金) 22:57:18.79ID:7ASANqXl
>>866
標準でないライブラリはどの言語でも一緒やん。
2022/01/21(金) 23:25:41.90ID:gQq8dla+
仕事には使えんな
2022/01/22(土) 13:46:13.26ID:o4PPoyn9
毎年決定版のライブラリやフレームワークが
変わるJS/TSで仕事回ってるし
2022/01/22(土) 14:52:11.36ID:v1aiSn8P
ブラウザは特殊。
デスクトップアプリでasync,awaitは不要。
2022/01/22(土) 16:21:57.94ID:o4PPoyn9
サーバサイドで使われてるのしらないの?
2022/01/22(土) 16:26:26.49ID:v1aiSn8P
もともと並列処理は、スーパーコンピューターで、クロック数の増加速度に陰りが
見え始めた時、複数のCPUで処理することで高速処理をするために発明されたもの。
プログラミングがとても難しいことが知られており、速度が十分な場合は不要。
1コア(スレッド)なのに非同期にする理由は無い。
2022/01/22(土) 16:29:08.60ID:v1aiSn8P
並列処理は、プログラムの難しさと引き換えに、速くなるためだけに発明された
だけの苦肉の策。
技術的な頭打ちをなんとか凌ぐために登場した。
シングルスレッドだと全く速くならないのに、プログラムを難しくするだけで
意味が無い。
2022/01/22(土) 17:02:58.58ID:UcDtUdFv
>>870
ほー、じゃ直近3年でプロジェクトに採用したFWを時系列に並べてみ?
2022/01/22(土) 17:06:13.90ID:cP8tdrQi
非同期並列ネタは複製おじさんの釣り仲介イテレータ
2022/01/22(土) 17:28:20.63ID:vZsc1PCZ
お前はまずマルチスレッドとマルチコア(or プロセッサ)の違いを理解してから書き込め
スパコンの前からマルチタスクは普通に使われてた
2022/01/22(土) 18:12:53.04ID:CQ3v+kYe
>>877
それはアプリケーションレベルでの話で、マルチプロセス。
複数のCPUや複数のコアが搭載されるようになってからのみ、
マルチスレッドプログラミングの意味が出た。
879デフォルトの名無しさん
垢版 |
2022/01/22(土) 18:14:18.83ID:CQ3v+kYe
>>877
マルチタスク(マルチプロセス)は、OSの利便性のために生まれた。
速度とは関係無いし、アプリのプログラミングにもほぼ関係無い。
2022/01/22(土) 18:28:41.27ID:+h3Uwt/E
何言ってるんだ?
古くからマルチプロセスで高速化なんていくらでもあるだろ
make -j オプションとか知らんのかよ
2022/01/22(土) 18:37:28.25ID:CQ3v+kYe
>>880
シングルコア、シングルCPUのPC-9801だと基本的に速くならん。
2022/01/22(土) 18:48:08.80ID:+h3Uwt/E
>>881
お前CPU Bound / IO Boundって知らんだろ
そんな知識で語るなよw
2022/01/22(土) 19:05:35.39ID:vfyV6CZn
>>871
最近はブラウザベースのデスクトップアプリ多いよね
2022/01/22(土) 22:34:52.70ID:hteSw3T0
>>882
プログラマにあなたのような頭が悪い人が増えているから、
async,awaitが有名になっているのかも。
2022/01/22(土) 22:36:34.19ID:rHbcHXIR
>>884
もうそういうレスしか返せないならやめたら?
痛々しいぞ
2022/01/22(土) 23:42:41.14ID:hteSw3T0
頭が悪い人は出入り禁止にして欲しい。
馬鹿とカシコがごちゃまぜになって紛糾してしまうのが匿名性掲示板の限界。
2022/01/22(土) 23:52:32.52ID:VFDCJ7kC
>>882
でもお前もインフライトキュー知らねーじゃん
2022/01/22(土) 23:56:12.45ID:yljb5PqZ
>>871
デスクトップアプリでasync,awaitは不要、というのは古い環境だな
非同期を使わずに済むように制限があり
自分でI/O通信アクセスなどするのを許さないか
あるいは同期ブロックされて自分のスレッドは止まってしまう
つまりその場合でも意識はせずともその環境はマルチスレッドを使っている

>>873
1コア(スレッド)なのに非同期にする理由は無い、は間違ってるな
むしろ1スレッドで効率よく色んなことをするために非同期がある
JavaScriptがシングルスレッドなのに非同期を活用しまくりなことを知らないのだろうか?
2022/01/23(日) 00:05:07.66ID:eLwIvGEb
書き込み内容ではなく、 >>884 のように人格攻撃しかしないのはクソオブオソだから、普通に無視しとけ
2022/01/23(日) 00:18:25.28ID:muCNgjMY
>>884 みたいなの釣りなのかマジモンなのかどっちなんだろ
2022/01/23(日) 00:42:54.28ID:9yHGnoxe
JSがHTMLを補助するために独特の仕組みを生み出しただけなのに、
それを一般化する人が増えて困る。
2022/01/23(日) 02:19:46.48ID:c3dt58ZC
このスレによく書き込む奴の中に、アスペが一人か二人いるようだ
2022/01/23(日) 03:24:03.55ID:9yHGnoxe
JSはプログラミング言語として特殊すぎるから、それを基準にしてはいけない。
特にasync,await,PromiseはHTMLの特殊性からきているものなので、
「新しい概念だから他のプログラミング言語にも広めていくべき」
などという見方は間違っている。
2022/01/23(日) 03:33:10.01ID:GGOFm3A0
async await最初に導入したのってC#では
2022/01/23(日) 07:33:46.51ID:L+Dx9AR8
>>887
それ何?
ちょっと説明してみ
2022/01/23(日) 07:35:24.30ID:L+Dx9AR8
>>890
論破されて引っ込みつかなくなってからの人格攻撃でしょ
無能によくあるパターン
897デフォルトの名無しさん
垢版 |
2022/01/23(日) 09:13:42.66ID:5TQWnu47
そもそもマルチスレッド(タスク)や非同期処理はIO多重化への対処であってコアの数は関係無い。
(マルチコアのほうがより効率に処理できるが)
本質わかってないやつ多すぎ。
2022/01/23(日) 10:46:09.32ID:ToW82ksW
>>897
> 本質わかってないやつ多すぎ。
お前が一番わかってないだろ…
2022/01/23(日) 13:55:33.39ID:wM2Xc+Kp
このネタ毎回爆釣だね
2022/01/23(日) 14:03:32.33ID:imq9jRJ1
あと釣り宣言来ましたので今回はこれでお開きのようです
2022/01/23(日) 21:34:18.28ID:JoYL6ICj
>>897
それはOSレベルで工夫すればなんとでもなるので、マルチスレッドは必須ではない。
ところが、高速化に関しては、クロック数が頭打ちになってきているので、
マルチコア/マルチCPU化して、マルチスレッド・プログラミングで対処する
しかないことが出てきた。
したがって、あなたの主張は完全なる間違い。
実際は正反対。
2022/01/23(日) 23:36:55.40ID:2V1gRdrY
>>897の「マルチスレッド(タスク)や非同期処理はIO多重化への対処」のI/O多重化は当然通信も含むんじゃないか
>>901
OSレベルで工夫すればなんとでもなる、なんて無理
通信相手が返事を返すのに数msec、数秒、数分ということは現実に有り得る
シングルスレッドで同期のみならその間は何も出来ない
マルチスレッドであっても通信相手が多数ならば多数のスレッドが必要となりそれらが同期のみなら全て待ちのために停止
マルチプロセスにしても同様でいずれも無駄にOSリソースを使うだけとなる

つまり非同期プログラミングは必須
非同期ならばシングルスレッドでも並行(concurrent)に処理することができる
さらにマルチコアを有効活用するためにマルチスレッドで非同期にすれば並列(pararell)にも処理することが出来る
2022/01/24(月) 06:27:31.76ID:gNLiogmJ
>>902
> シングルスレッドで同期のみならその間は何も出来ない
Polling って知ってるか?
2022/01/24(月) 07:44:27.65ID:p86CtUav
>>903
select/kqueue/epollなどでポーリングして切り替えながらノンブロッキングで複数I/Oアクセスをする大昔から行われている方法のことだよな
これを同期プログラミングとは呼ばないな
むしろこのポーリング方式で切り替えながら呼び出すコールバック先を単なる関数だけからコルーチン対応にしたものが非同期プログラミングと呼ばれるくらいだ
そしてポーリング状態およびタイマー状態に応じて呼び出すコルーチンを切り替えていくのがスケジューラ
もちろん通常の非同期プログラミングではその部分はライブラリなどに任せてしまい呼び出されるコルーチン部分をプログラミングすることになる
2022/01/24(月) 08:06:22.73ID:hXaZrIwh
お前の頓珍漢な非同期の定義を語られてもw
2022/01/24(月) 08:43:07.50ID:YyWH0a11
ポーリング使うのは非同期処理だろ普通。
2022/01/24(月) 09:17:56.02ID:KiY6K78/
while(kbhit() == 0){ ... }
みたいなのを非同期処理って言うのか?
2022/01/24(月) 09:21:18.02ID:zGpECv1N
>>904
もうやめとけ
2022/01/24(月) 10:28:27.13ID:LHtgCFZv
kbhitの中でキー入力を待ち合わせるわけじゃないから非同期処理でいいんじゃね?
2022/01/24(月) 13:14:45.02ID:epnuPzmN
>>902
お前は、ゲームのキャラそれぞれが別スレッドで動かされていると
思ってるだろ。
昔からキャラは複数のハードで処理されていると思う人が後を経たなかった。
2022/01/24(月) 13:19:05.37ID:RtyiqZqM
非同期I/OとノンブロッキングI/Oの違いを述べよ
2022/01/24(月) 13:58:28.17ID:jdPj866/
Rustのビルドを高速化する方法
https://postd.cc/fast-rust-builds/
2022/01/24(月) 14:51:22.20ID:nrcwP8hb
相変わらず隔離対象のお二人さんは自分の狭い知識と観点が全てなのな
アプローチは違うが考え方も知識レベルも似たもの同士
だから反発し合う
2022/01/24(月) 14:59:04.35ID:jdPj866/
もう何を話しているかなんてどうでもよくて、相手が屈服するまで続けるという不毛地帯
2022/01/24(月) 15:14:06.56ID:7gZW+FH0
>>904
9割方その通りですが
epollやselectなどのポーリング結果で呼び出される対象は単なるコールバック関数でも非同期プログラミングですよ
例えばJavaScriptでは非同期関数のコールバックは単なる関数でよいです
もちろんコルーチンとなるasync関数から使えばawaitできる点でもっと利便性の高い非同期プログラミングになりますね

>>910
非同期プログラミングは必須と主張している相手に対してスレッドの話は噛み合っていないですよ
非同期プログラミングとマルチスレッドプログラミングは別です
同期/非同期とシングルスレッド/マルチスレッドは組み合わせ4通り全てが用途ごとに使われています
2022/01/24(月) 15:42:51.22ID:BWBJT0bl
9割方その通りですがw
お前が言うなやww
2022/01/24(月) 16:07:45.87ID:epnuPzmN
>>914
そりゃ、間違ってる相手は野ざらしにしておけないからな。
放置すれば日本が衰退するから。
2022/01/24(月) 16:17:39.92ID:jdPj866/
>>917
きみら二人以外誰も困らないよ
919デフォルトの名無しさん
垢版 |
2022/01/24(月) 17:40:26.73ID:g6coj3Jd
サーバーサイドはGo使えってのが常識になってきたっぽいぞ
Rustどこで使えばいいんだよ
2022/01/24(月) 17:51:20.76ID:RtyiqZqM
フットプリントが大きいと困るような低レベルなレイヤーには向いているだろうが、
ウェブアプリケーションは水平分散でなんとかなるからRailsとかも使えてたわけで
2022/01/24(月) 17:54:55.80ID:RtyiqZqM
ウェブアプリじゃなくて、もっと広くサーバサイドのことを本当に言ってるなら、
主語が大きすぎてよくわからん
2022/01/24(月) 18:37:54.23ID:5cKH7ieg
>>915
だからお前の頓珍漢な非同期処理を語られても困る
I/Oとプログラムが同時に動作してると言うなら単なる同期Write命令でも実際の書き込み動作はたいてい非同期
そんなこと言い出したら同期処理なんてほとんどないわな
2022/01/24(月) 18:46:19.25ID:jdPj866/
>>921
サーバで動かすツール・コマンドのことを言ってるんじゃなかろうか
2022/01/24(月) 19:35:27.58ID:p86CtUav
>>906
同意
ただしポーリングといっても意味合いが何種類かに分かれて
単純だがムダな状態チェックポーリングの定期もしくは常時ループもあれぱ
OSシステムコールselectなどの登録して待つタイプのポーリングもあれば
その上のレイヤで例えばRustがタスクfutureに対して状態を進めるためのポーリングなどがあり
皆の想定が異なるのかもしれない

>>910
その別スレッドを起動せずとも複数のタスクに対応できるのが非同期プログラミング
とはいえゲームのフレーム更新は常に期限が来てくれるので単純なやり方でも何とかなる
通信相手から返事が来る時間が読めないのとは違う意味で

>>915
async/awaitを含む間欠タイプを想定してコルーチンと書いてしまっていた
確かにコールバック渡し非同期関数もあるな
2022/01/24(月) 20:31:59.50ID:B4IfF+LP
人格複製おじさん定期
2022/01/24(月) 20:37:10.25ID:BgvoYA7m
言葉の定義の話ずーーっとやってるスレだな
2022/01/24(月) 20:49:02.48ID:/rel0eRU
それなのに一つも用語の定義ができないのはなぜなんでしょう?
2022/01/24(月) 22:39:10.70ID:IEcApiVS
>>927
一言で言えば自分自身で思考する能力がないから
2022/01/24(月) 23:44:28.94ID:Va4ZqunJ
みな生活に余裕がないのかマウンティングしかしない
もっと協力して生産的な話して
2022/01/24(月) 23:53:51.56ID:j0WdQYoJ
>>929
アホがえらそうにしてるのは看過できないよ。
日本が滅ぶから。
最近、プログラミングの世界で間違ってる主張が集団幻覚のように広まる
ことが多くなったから。それが、async,awaitが重要などと言う主張。
2022/01/25(火) 01:32:10.55ID:p2EQwX6c
async awaitで日本が滅ぶ説は初めて聞いたな
2022/01/25(火) 06:26:02.60ID:SxGSiHYf
すげーな。どうやったら滅ぶのか。
より良い代替案あれば教えてよ
2022/01/25(火) 08:15:47.90ID:vd4sNBPH
また暴れるから構うなよ
2022/01/25(火) 11:28:39.93ID:bY2fZbZk
>>930
「async,awaitが重要などと言う主張」をしてた人はどういう場面・状況において重要だと主張してたの?

async/awaitが重要な状況もあれば重要じゃない状況もあるだろうから文脈無しでは誰も同意しないよ
2022/01/25(火) 13:35:10.97ID:A3MKeF5O
>>934
async,awaitをサポートして無い言語はダメと言ったやつが居る。
2022/01/25(火) 13:58:14.45ID:dpcBILVU
ダメな状況もあればダメじゃない状況もあるでしょ
あらゆる状況でダメなものやあらゆる状況でダメじゃないものはそうないから
文脈を伴わない主張はあんまり意味がないよ
2022/01/25(火) 15:45:22.18ID:A3MKeF5O
>>936
現実には、駄目な文脈はほとんど無く、皆無に近い。
レス数が900を超えています。1000を超えると表示できなくなるよ。