[過去ログ] Go language part 3 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
880(1): デフォルトの名無しさん [] 2020/11/04(水) 00:08:44 ID:BNFfXKWA(1/4) AAS
>>862862(1): デフォルトの名無しさん [sage] 2020/11/03(火) 21:11:05 ID:OQJ1TfTq(2/11) AAS
>>850
> csp(communicating sequential processes)
何ぞそれ?と思ってwiki読んだが、「応用」以前はハア?って感じだな。
応用部分は納得出来るが、それはどちらかというとモデリング&シミュレーションであって、(従来の)プログラミング言語って感じではない。
勿論それ以前の部分はプログラミング言語としてのCSPについて説明してあるはずなのだが、
大半の連中はこれ読んでも俺と同様「何のこっちゃ?」だと思うぜ。
それはさておき、記述しやすいのは事実だから、cspに金脈があるのならいきなりブレークするのだろう。
cspは概念・モデリングっつう理解でだいたいいいと思うよ。
昔から並行処理システム関わった奴ならたいていは似たようなモデルは考えてる。
cspはそれを厳密に数学的に記述するって感じ。
極端なこと言えばメッセージでやり取りしましょう、だ。
っで、goはプログラミング言語としてgoroutineとchannelがあるから他の言語より並行処理向き。
go以外なら古くはadaやなんかもそう。タスクにランデブポートっつうのがある。
erlangも似たようなメッセージ機構はあるんじゃなかろうか。
本質的に並行処理ってのは非同期的な処理システムなわけだけど、
非同期ioとコールバック(やシンタックスシュガー)でやるより、独自に動く実行体が複数あってそれらがメッセージ通して協調動作するってシステムの方が好きだ。
881(2): デフォルトの名無しさん [] 2020/11/04(水) 00:15:06 ID:BNFfXKWA(2/4) AAS
>>876876(1): デフォルトの名無しさん [sage] 2020/11/03(火) 22:46:43 ID:OQJ1TfTq(11/11) AAS
>>866
ついでだから本家の方読んできた。
まずそもそもReadStatesをそんなにバカスカ更新するようなアーキが必要なのか?という疑問はあるが、
それはさておき。
これは、多数のオブジェクトを「生存したまま」でメモリを埋める、
つまりオンメモリDBのような使い方をするアプリとGCが絶望的に相性が悪くて、それに該当した、ということなのだろう。
これはGoがショボイというよりはGCの限界で、C++/Rustしかねえわな、ということだと思うよ。
JavaでもC#でも同じ結果になる気はする。
だからそういうアプリでGC言語使っちゃ駄目、というのが教訓だと思うよ。
まぁーやっぱ、gcってよくねーわ。
捨てる前提のプロトタイプにはgcあり言語もよいと思う、ほんで大部分の案件はそれで十分ってのもあっる。
げももっと性能を、、、てやると今なら c/c++/rust の3つしかナイショ。
888: デフォルトの名無しさん [] 2020/11/04(水) 10:32:02 ID:BNFfXKWA(3/4) AAS
>>882882(2): デフォルトの名無しさん [sage] 2020/11/04(水) 00:48:58 ID:thexrnOY(1/4) AAS
>>880
それアクターモデルだろよ、と思ってwiki確認したら、CSPがモロに書いてあったわ。
ただ、アクターは浮かんでは消え、という印象があるが。
smalltalk信者等、通信したい奴は確かにいるようだが、それがイマイチ何になるのか明確でない。
あと、コード上で通信したいのならGoだが、アクターモデル自体は普通にオブジェクト指向で組めるし、
C++なら(あまりよろしくはないが) >> と << をオーバーロードしてそれっぽく見せることは可能だ。
実際その方がgoroutineより何倍も速く動く。
Erlangは俺も以下を半分くらい読んだ程度しか知らないが、
外部リンク[html]:www.ymotongpoo.com
あれは実用本位で、理論側から出てきたものでは全然無い。
電話交換機筐体を複数並べてスケールアウトした時にも性能が低下しないように作られてる。
だから最初から共有RAMなんて禁止されてる。そして当然メッセージ交換だが、
最初から上記のような疎結合でのメッセージ交換を想定されてるから、
Goみたいな密結合を想定されているものとはちょっと違うが。
c++はc++11以降ほんとよくなった。
でももう新規案件ならrustに譲ってもいいかなと思う。
889(1): デフォルトの名無しさん [] 2020/11/04(水) 10:57:28 ID:BNFfXKWA(4/4) AAS
>>887887(4): デフォルトの名無しさん [sage] 2020/11/04(水) 08:59:07 ID:thexrnOY(3/4) AAS
>>886
参照カウンタのGCとマーク&スイープのGCは意味合いが全然違う。
それを一緒くたにしてるようでは駄目だよ。
そこら辺がGoスゲーって言ってる奴のレベルが低いところだよ。
それ以外も君は間違いすぎていちいち指摘するのは諦めたけど、
多分もうちょっと勉強した方がいい。
Goは酷い言語でもないけど、凄い言語でもない。
860の本家にRustと冷静に比較しているコメントがあるから読んでくるといい。
広義では参照カウンタもgcじゃん。
gcも色々改良されてるし未だに古典的なマークスイープgcのみってのはあまり無いんじゃろか。
だから案件の多いweb系とかアプリとかの上のレイヤーでgcが問題になるケースはあまり無い。
gcはそれより下のエンジンとかのシステムレイヤーで問題視されることが多い。
で、一応goはc/c++/rust同様のシステム言語のくくりで語られることもあるからその辺から叩かれたりするけど、そうじゃなくて上のレイヤーの言語として使えばいい感じの言語だと思う。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.040s