Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。
公式
https://golang.org
公式ドキュメント
https://golang.org/doc/
公式外パッケージドキュメント
https://godoc.org
ブラウザ上で試し書き
https://play.golang.org
※前スレ
Go language part 3
https://mevius.5ch.net/test/read.cgi/tech/1571315884/
Go language part 4
■ このスレッドは過去ログ倉庫に格納されています
2020/11/16(月) 04:14:40.64ID:fB5+0hxC
593デフォルトの名無しさん
2021/09/22(水) 12:23:07.31ID:rujUi/9T >>589
Linux関連プロジェクトみたいに、既存関連リソースがC言語ばかりだとC使うんだろうけど、
しがらみのない新しいツールではCなんて滅多にないような? ほとんどGoかRustなのでは・・・?
シェアは全くわからんけど、おれの趣味寄りにもなるけど有名なのだと
Docker、Kubernetes関連、moby、HashiCorpのプロダクト、etcd、CockroachDB、InfluxDB、BoltDB、fzf、Hugo、frp、traefik
もしかしてこういう話じゃない?
Linux関連プロジェクトみたいに、既存関連リソースがC言語ばかりだとC使うんだろうけど、
しがらみのない新しいツールではCなんて滅多にないような? ほとんどGoかRustなのでは・・・?
シェアは全くわからんけど、おれの趣味寄りにもなるけど有名なのだと
Docker、Kubernetes関連、moby、HashiCorpのプロダクト、etcd、CockroachDB、InfluxDB、BoltDB、fzf、Hugo、frp、traefik
もしかしてこういう話じゃない?
594デフォルトの名無しさん
2021/09/22(水) 12:45:37.46ID:rujUi/9T595デフォルトの名無しさん
2021/09/23(木) 00:48:02.08ID:wxnnur2v はよGenerics使わせろ
596デフォルトの名無しさん
2021/09/23(木) 01:09:42.88ID:5iThOVVW597デフォルトの名無しさん
2021/09/23(木) 19:28:09.42ID:wxnnur2v おお、いいね
598デフォルトの名無しさん
2021/09/24(金) 07:59:47.34ID:ljIO2QUf599デフォルトの名無しさん
2021/09/27(月) 07:44:16.84ID:lxaeA1bT TVCM見てて Go Pay が出てきて吹いたわ
なんなの提供元
ポケモンGoに勝てるの?
GO TO トラベルに勝てるの?
Google Pay に勝てるの?
それも調べたら MOV Pay から名称変更とか、そこまで逆境が欲しいの?
山中幸盛なの?
なんなの提供元
ポケモンGoに勝てるの?
GO TO トラベルに勝てるの?
Google Pay に勝てるの?
それも調べたら MOV Pay から名称変更とか、そこまで逆境が欲しいの?
山中幸盛なの?
600デフォルトの名無しさん
2021/09/27(月) 09:06:27.80ID:lxaeA1bT 書かなくても分かると思ったけど一応、サービス内容に対しての話じゃないからね
ググラビリティの話
Go が後続のサービスにどれだけ苦しめられてるのか
任天堂やら日本国政府やらGoogleやらのパワープレイヤーなら知ったこっちゃないだろうけど、泡沫勢力じゃ約束されし絶望じゃん
ググラビリティの話
Go が後続のサービスにどれだけ苦しめられてるのか
任天堂やら日本国政府やらGoogleやらのパワープレイヤーなら知ったこっちゃないだろうけど、泡沫勢力じゃ約束されし絶望じゃん
601デフォルトの名無しさん
2021/09/27(月) 13:53:26.84ID:LxdgSnnl ググラビリティって普通GolangかGo言語で検索すんじゃねーの?
Cとかでどうやってんの?
Cとかでどうやってんの?
602デフォルトの名無しさん
2021/09/27(月) 13:56:04.08ID:stBORJeg 親会社名自体が猛烈に低ググラビリティという…
603デフォルトの名無しさん
2021/09/27(月) 14:52:06.48ID:Z8J42Gkb604デフォルトの名無しさん
2021/09/27(月) 15:05:56.76ID:lxaeA1bT605デフォルトの名無しさん
2021/09/27(月) 15:19:55.68ID:tsIS/8pJ 検索ワードで回避できる問題なんかどうでもいい
一般人が検索するような物でも無いし
コマンドが短く入力しやすい方が重要
squirrelみたいな名前にしたら腱鞘炎になるぞ
一般人が検索するような物でも無いし
コマンドが短く入力しやすい方が重要
squirrelみたいな名前にしたら腱鞘炎になるぞ
606デフォルトの名無しさん
2021/09/27(月) 17:54:21.16ID:Ac+aBfL/ >>601
C言語
C言語
607デフォルトの名無しさん
2021/09/28(火) 08:06:03.36ID:zmriYPIE 極主夫道の二巻の福引きGo等の商品がどうみてもGopher君のパチモノ
608デフォルトの名無しさん
2021/09/29(水) 15:30:15.59ID:W9rNFdvq 見上げてGolang、夜の星を
609デフォルトの名無しさん
2021/10/18(月) 13:29:08.84ID:tOAzdfyW Go簡単って言うからやってみたらローカルファイルimportするのに相対パス使えないとか
go mod するんだとかGOPATHはもう使わないとかゴチャゴチャゴチャゴチャ・・なんじゃこれ?全然シンプルじゃない
ツール周りがゴチャりすぎやろ、やっぱPythonが神だわ
go mod するんだとかGOPATHはもう使わないとかゴチャゴチャゴチャゴチャ・・なんじゃこれ?全然シンプルじゃない
ツール周りがゴチャりすぎやろ、やっぱPythonが神だわ
610デフォルトの名無しさん
2021/10/18(月) 13:40:38.36ID:+iNX7XVA そうですね。Python使った方が良いと思いますよ。さようなら
611デフォルトの名無しさん
2021/10/18(月) 19:24:50.47ID:vvHfCZ9q まあ相対パス使えないのはやり過ぎな気もする
htmlですらbaseを指定できるのに、何を恐れているのか
パーサーを作る際に楽だからなのかな?
htmlですらbaseを指定できるのに、何を恐れているのか
パーサーを作る際に楽だからなのかな?
612デフォルトの名無しさん
2021/10/18(月) 21:26:33.48ID:w/yRHxqY え? go.mod で replace しておけばいいんじゃない?
613デフォルトの名無しさん
2021/10/27(水) 21:55:02.42ID:HQ60ALa2 Sum Type、Union elementあと4か月か…2月/8月
614デフォルトの名無しさん
2021/10/27(水) 22:05:51.76ID:HL6HkAZF Genericsは1.18に載らないの?
615デフォルトの名無しさん
2021/10/27(水) 22:49:21.67ID:Dm8DTcKu 既に WIP ブランチでは使える様になっているから 1.18 で
正式採用になると思う(gopls も対応済み)
正式採用になると思う(gopls も対応済み)
616デフォルトの名無しさん
2021/10/31(日) 15:45:47.64ID:Qz/5KmYR ついにGenerics載るんだね、楽しみやなー。
ところで、ユーザ定義演算子は計画されてない?
AddとかMulみたいなメソッドじゃなくて+とか*みたいな演算子使いたいこともあるんよね
ところで、ユーザ定義演算子は計画されてない?
AddとかMulみたいなメソッドじゃなくて+とか*みたいな演算子使いたいこともあるんよね
617デフォルトの名無しさん
2021/10/31(日) 18:46:09.19ID:OY4TDGUi618デフォルトの名無しさん
2021/11/01(月) 23:46:42.69ID:jfjYB5Nx GOおもろない
なんとかしてや
なんとかしてや
619デフォルトの名無しさん
2021/11/02(火) 14:39:41.99ID:vRCKOPQ3 >>618
どこがどうおもろないんや?
どこがどうおもろないんや?
620デフォルトの名無しさん
2021/11/02(火) 21:14:20.28ID:c4MpaWiz 仕事だから仕方なく使ってるのはあるな
621デフォルトの名無しさん
2021/11/03(水) 08:59:07.96ID:owwwLqi1 なんも知らん新人でも、できるベテラン・新人でも、仕事に使うにはソースコードに均一性のある良い言語だわいな
622デフォルトの名無しさん
2021/11/03(水) 09:11:16.68ID:hIbM46+W 最近Goの現場入ったけど
dep?とかいうモジュール使っててGOPATHにも気を使わないと駄目で
結構混乱する
初期で大分失敗してると思うわGo
dep?とかいうモジュール使っててGOPATHにも気を使わないと駄目で
結構混乱する
初期で大分失敗してると思うわGo
623デフォルトの名無しさん
2021/11/03(水) 10:49:56.25ID:I/oot80l depは3年ぐらい前から正式な公式ツールじゃもう無いし、ツールの煩雑性や使い勝手は言語に関係ないよ
PATH変数に気を使うのはC,C++でも一緒、そもそも環境構築すら出来ない失敗をしてんのはあんたか
現場の手順書が無いか
PATH変数に気を使うのはC,C++でも一緒、そもそも環境構築すら出来ない失敗をしてんのはあんたか
現場の手順書が無いか
624デフォルトの名無しさん
2021/11/03(水) 11:46:43.90ID:XfZZ+0lv 「改訂2版 みんなのGo言語」という本を読めば?
学生時代に、Ruby 製のVagrant を作って、
Terraform で有名なHashiCorp を作った、今世紀最大の起業家、
Ruby/Go の神、Mitchell Hashimoto のソースコードも解説している
学生時代に、Ruby 製のVagrant を作って、
Terraform で有名なHashiCorp を作った、今世紀最大の起業家、
Ruby/Go の神、Mitchell Hashimoto のソースコードも解説している
625デフォルトの名無しさん
2021/11/03(水) 12:11:59.17ID:508Y0Igq go.mod に書いとくだけで github やらから直接にライブラリを導入できる点で、環境面では目一杯助かってるわ
Mavenやらpipが組み込まれてる感じだけど、基本機能であることは大きい
Mavenとかpipは別途入れないとならんし、それぞれ本体と別の環境整備しないとならないから
Mavenやらpipが組み込まれてる感じだけど、基本機能であることは大きい
Mavenとかpipは別途入れないとならんし、それぞれ本体と別の環境整備しないとならないから
626デフォルトの名無しさん
2021/11/03(水) 19:24:54.92ID:ywwxM/TS >>622
今更?
今更?
627デフォルトの名無しさん
2021/11/04(木) 16:01:17.99ID:eo9m+3ij 趣味で使って面白い?
628デフォルトの名無しさん
2021/11/04(木) 16:13:12.12ID:5gkz3BSt 面白い
GCP無料枠でそこそこ実用性のあるサイト建てたりできるし
GCP無料枠でそこそこ実用性のあるサイト建てたりできるし
629デフォルトの名無しさん
2021/11/04(木) 16:27:08.12ID:eo9m+3ij なるほど
googleの犬になるか
googleの犬になるか
630デフォルトの名無しさん
2021/11/04(木) 19:21:19.80ID:5gkz3BSt だってアマとか無料枠ないんだもん
一年目だけってのは、単に初回サービスって言うんだよ
一年目だけってのは、単に初回サービスって言うんだよ
631デフォルトの名無しさん
2021/11/05(金) 14:20:53.38ID:0z+NMKpK Herokuとか
632デフォルトの名無しさん
2021/11/07(日) 15:35:29.83ID:mQ9A5wfK 社会人なら別にEC2使ってもマイナーサービスのサーバ台ぐらい余裕やで。
一ヶ月分の料金なんて、スタバ2回分くらいだろ。
そら安いほうがいいけど。
一ヶ月分の料金なんて、スタバ2回分くらいだろ。
そら安いほうがいいけど。
633デフォルトの名無しさん
2021/11/07(日) 22:23:20.41ID:aZyVG3bY micro使えば安いけど明らかにメモリが足りないんだよな
おまけに調子に乗ってぶん回すと詰まるし
最低でもmedium程度は欲しいがそうなると結構高くなる
おまけに調子に乗ってぶん回すと詰まるし
最低でもmedium程度は欲しいがそうなると結構高くなる
634デフォルトの名無しさん
2021/11/07(日) 22:38:38.82ID:VzSbYdr/ Oracle Cloudは?
コンソールが重くて独自性強いけど起動してしまえばいっしょ
コンソールが重くて独自性強いけど起動してしまえばいっしょ
635デフォルトの名無しさん
2021/11/07(日) 23:41:21.11ID:KgxySftM サイト立ててもアクセスが日に数件なんでほとんどマシン回ってないやww
636デフォルトの名無しさん
2021/11/08(月) 16:12:42.92ID:KvpLYeV7 microといえば思い出す、大手のNでスワップしまくりなんも考えてないSEが手配したmicro
しかもWindowsの時の絶望感・・・
しかもWindowsの時の絶望感・・・
637デフォルトの名無しさん
2021/11/08(月) 16:32:31.04ID:Qfm8QX8G638デフォルトの名無しさん
2021/11/08(月) 16:42:16.76ID:NUVpgUuA microでも小さいサービスならメモリ足りるやろ? goだったら100MBメモリ食うこともありえないくらいやろ
メモリリークでもしてるんじゃないの?
Windowsとか動かしたらそらきついだろうけど。
メモリリークでもしてるんじゃないの?
Windowsとか動かしたらそらきついだろうけど。
639デフォルトの名無しさん
2021/11/08(月) 17:40:06.67ID:Qfm8QX8G 動くか、と言ったのはWindowsの話
400MB確保できるみたいだから意外と使えるかも?
400MB確保できるみたいだから意外と使えるかも?
640デフォルトの名無しさん
2021/11/08(月) 18:00:09.69ID:NUVpgUuA なんでそんなにWindowsを動かしたいんだ・・・。
641デフォルトの名無しさん
2021/11/09(火) 13:54:21.34ID:dGlVH92+ >>640
pインスタンスでwindowsを動かすのは普通に多いよ
pインスタンスでwindowsを動かすのは普通に多いよ
642デフォルトの名無しさん
2021/11/09(火) 17:10:56.19ID:8qmTEk8+ いや、なんで?という疑問への答えじゃないよな
ぶっちゃけLinuxでSSH接続専用にすれば済むから
ぶっちゃけLinuxでSSH接続専用にすれば済むから
643デフォルトの名無しさん
2021/11/09(火) 19:48:05.88ID:+FOj3uk2 GUI系のアプリを動かすんだよ
CAD系のシミュレータとか
windowsにしか存在してないアプリが多い
CAD系のシミュレータとか
windowsにしか存在してないアプリが多い
644デフォルトの名無しさん
2021/11/09(火) 23:41:06.97ID:5nP8kmAz github.com/fogleman/gg が遅くてちょっと困った。
Webassemblyで普通にcanvasの関数をcallした方が速いなんて。
ebitenはdraw系の関数少ないからなぁ。
Webassemblyで普通にcanvasの関数をcallした方が速いなんて。
ebitenはdraw系の関数少ないからなぁ。
645デフォルトの名無しさん
2021/11/11(木) 09:52:59.41ID:zPNWYi1t Twelve Years of Go
Russ Cox, for the Go team
10 November 2021
Russ Cox, for the Go team
10 November 2021
646デフォルトの名無しさん
2021/11/17(水) 23:16:51.89ID:a+84vLf4 gotoの使用は許可されてる?
647デフォルトの名無しさん
2021/11/18(木) 06:41:13.91ID:eOo002y1 >>646
普通は使わないが何故か仕様にあるんだから許可されてるんだろ
普通は使わないが何故か仕様にあるんだから許可されてるんだろ
648デフォルトの名無しさん
2021/11/18(木) 17:38:26.56ID:kJKbHvZv 深いループを抜けるときはgotoを使う
649デフォルトの名無しさん
2021/11/18(木) 21:15:03.90ID:iWaFftPG ラベルgotoは、gotoではあっても古い言語で禁忌されているgotoではありません。
ダイクストラのgoto文論争はBASICはもちろんですが、1968年に“Go To Statement Considered Harmful”
(Go To 文は有害とみなされる)において行番号へ飛ぶような言語が多かったために起こった論争です。
C言語も古くからありましたが、こちらもあまり使われなくなりました。なによりもgoto以前に
setjmp, longjmpという、関数の間でのジャンプ出来るようなC標準ライブラリが存在したために
より強く禁忌されたといえるでしょう。のちにStructured ProgrammingからO-OProgrammingへ移り変わる
につれて行番号は何もなく、文の構造の厳格性や動的ディスパッチなどが整備されたため、必要性が薄れました。
現在あるラベルgotoとは、ループの中に飛び込むgotoなどではなく、二重のループ中のbreakなどで
脱出経路を明確化するなど、例えばコンピュータサイエンスの分野ではHaskellにおいてはモナドを利用して
例外や非決定性計算行うなど、引数付きgotoとも呼ばれる。
ダイクストラのgoto文論争はBASICはもちろんですが、1968年に“Go To Statement Considered Harmful”
(Go To 文は有害とみなされる)において行番号へ飛ぶような言語が多かったために起こった論争です。
C言語も古くからありましたが、こちらもあまり使われなくなりました。なによりもgoto以前に
setjmp, longjmpという、関数の間でのジャンプ出来るようなC標準ライブラリが存在したために
より強く禁忌されたといえるでしょう。のちにStructured ProgrammingからO-OProgrammingへ移り変わる
につれて行番号は何もなく、文の構造の厳格性や動的ディスパッチなどが整備されたため、必要性が薄れました。
現在あるラベルgotoとは、ループの中に飛び込むgotoなどではなく、二重のループ中のbreakなどで
脱出経路を明確化するなど、例えばコンピュータサイエンスの分野ではHaskellにおいてはモナドを利用して
例外や非決定性計算行うなど、引数付きgotoとも呼ばれる。
650デフォルトの名無しさん
2021/11/19(金) 09:01:28.58ID:Fh4InTPD Inline指定出来ないので関数呼び出しのコスト低減くらいしか用途が思いつかない
そこまでシビアな実装滅多に無いから基本的に使わない
そこまでシビアな実装滅多に無いから基本的に使わない
651デフォルトの名無しさん
2021/11/19(金) 12:21:28.19ID:WNpWqDaH 確かに関数化すりゃブロック脱出もシンプルにreturnさせりゃいい
となるとgotoは関数呼び出しによるオーバーヘッドの削減だけなのかな?
ナノ秒単位でも削減したいという余程のシビアな要件で使うって話になるけど、関数呼び出しごとにスタックのチェックが入るGoでそんな要件に意味ってあるの?とも思う
となるとgotoは関数呼び出しによるオーバーヘッドの削減だけなのかな?
ナノ秒単位でも削減したいという余程のシビアな要件で使うって話になるけど、関数呼び出しごとにスタックのチェックが入るGoでそんな要件に意味ってあるの?とも思う
652デフォルトの名無しさん
2021/11/19(金) 12:34:26.60ID:kQNnUQCo というよりもアホ意識高いgoto異端審問官が、文句つけてくるので使わない。
653デフォルトの名無しさん
2021/11/19(金) 15:43:47.01ID:oZVaazpx おれにとっては、Golangでgoto使うのは、構文解析器みたいなのを書くときにたまにあるんだけど、共通の処理までジャンプしたいときとか、
for文とかをネストしたときに、いくつか上のブロックまでジャンプしたいときかなあ。これも構文解析したあとの評価器で使うこともある気がする
ようするに最適化とかじゃなくて、ちょっとした大域脱出みたいなノリで使ってる
Go本体のソースコードでもこんな感じgoto使ってるんじゃなかったっけ
for文とかをネストしたときに、いくつか上のブロックまでジャンプしたいときかなあ。これも構文解析したあとの評価器で使うこともある気がする
ようするに最適化とかじゃなくて、ちょっとした大域脱出みたいなノリで使ってる
Go本体のソースコードでもこんな感じgoto使ってるんじゃなかったっけ
654デフォルトの名無しさん
2021/11/20(土) 11:05:39.09ID:GriTsYN5 俺たちのGO!
655デフォルトの名無しさん
2021/11/21(日) 07:26:46.41ID:8Zd5Z9wI IDEはどれがおすすめ?
656デフォルトの名無しさん
2021/11/21(日) 07:39:21.64ID:AMP8EKz2 自分はVSCode
657デフォルトの名無しさん
2021/11/21(日) 23:14:16.37ID:1+FhODzH 私はEmacs
658デフォルトの名無しさん
2021/11/22(月) 06:12:39.00ID:I9kdAR+e VSCodeもemacsもIDEではないけどね
659デフォルトの名無しさん
2021/11/22(月) 07:05:20.26ID:rahxNjIR バージョン管理からテストまで環境内で完結してるのに仲間外れなのか
660デフォルトの名無しさん
2021/11/22(月) 19:08:36.54ID:uiCHuC7N emacsは"環境"だから、
emacs > IDE
だよな
ところでIDEの定義って何よ?
高機能エディタと垣根がなくなってきたからそれらを区別する意味があるのかどうか
emacs > IDE
だよな
ところでIDEの定義って何よ?
高機能エディタと垣根がなくなってきたからそれらを区別する意味があるのかどうか
661デフォルトの名無しさん
2021/11/22(月) 19:28:29.86ID:rahxNjIR 統合開発環境だから、コンパイルからデバッグ、バージョン管理にデプロイまで揃ってるemacsとかVScodeを入れないとなると、いよいようろんな定義になる
RADとかグラフィカルな開発環境とごっちゃになってるのでは?
RADとかグラフィカルな開発環境とごっちゃになってるのでは?
662デフォルトの名無しさん
2021/11/22(月) 19:36:29.51ID:rahxNjIR エディタ内でデバッガと密接に連携(ブレークポイント設置して値を参照とか)できれば統合してると言ってもいいと思うんだが
663デフォルトの名無しさん
2021/11/23(火) 10:50:24.50ID:YlZvZbei mapをrangeステートメントで処理すると毎回順番変わるのな
将来mapの実装を変えた時に要素の順番が変わっても大丈夫なようにあえてランダムにしてるらしい
最初知らなくて嵌った
しかもランダムに返す仕様の方がパフォーマンスをよくしやすいらしい
ensure better balancingって
なるべく偏らないように要素を配置するみたいな意味か
https://stackoverflow.com/questions/55925822/why-are-iterations-over-maps-random/55925880#55925880
将来mapの実装を変えた時に要素の順番が変わっても大丈夫なようにあえてランダムにしてるらしい
最初知らなくて嵌った
しかもランダムに返す仕様の方がパフォーマンスをよくしやすいらしい
ensure better balancingって
なるべく偏らないように要素を配置するみたいな意味か
https://stackoverflow.com/questions/55925822/why-are-iterations-over-maps-random/55925880#55925880
664デフォルトの名無しさん
2021/11/23(火) 11:47:46.83ID:RPYITf6H > ランダムに返す仕様の方がパフォーマンスをよくしやすい
いや流石にそんなことはないぞ
処理系の実装変更だけでなくマシン毎に結果が違うことも許容することで、パフォーマンス最適化の余地が広がるという意味だ
いや流石にそんなことはないぞ
処理系の実装変更だけでなくマシン毎に結果が違うことも許容することで、パフォーマンス最適化の余地が広がるという意味だ
665デフォルトの名無しさん
2021/11/25(木) 20:43:12.75ID:0woLMmPf 11月TIOBEプログラミング言語人気ランキング、PHPの下落続く
https://news.mynavi.jp/article/20211109-2181586/
https://news.mynavi.jp/article/20211109-2181586/
666デフォルトの名無しさん
2021/11/26(金) 17:11:22.22ID:xw//vI58 Golangが一番書きやすい
667デフォルトの名無しさん
2021/11/26(金) 19:19:32.54ID:TC631CUh go と defer とチャネルが便利すぎるね
チャネルのキャパシティは未だに悩む
チャネルのキャパシティは未だに悩む
668デフォルトの名無しさん
2021/11/26(金) 19:31:07.75ID:jCnjnABk チャネルはクソだろ
Cでいうポインタ関連のミスによる死と同程度くらいにはデッドロックを起こしやすい極めて危険な仕組み
Cでいうポインタ関連のミスによる死と同程度くらいにはデッドロックを起こしやすい極めて危険な仕組み
669デフォルトの名無しさん
2021/11/26(金) 19:33:40.57ID:klqHYhKv 勉強中でよくわかってないんだけど
メインルーチンが死んだらゴルーチンもチャンネルも死ぬんじゃないの?
メインルーチンが死んだらゴルーチンもチャンネルも死ぬんじゃないの?
670デフォルトの名無しさん
2021/11/26(金) 19:53:34.58ID:TC631CUh デッドロックは一番の可能性としてキャパシティを疑う
671デフォルトの名無しさん
2021/11/26(金) 21:43:15.55ID:vur9wleR どんな言語でもスレッドやルーチェンの1つが落ちて無事平穏な言語は少ない。Erlangぐらいかな落ちる前提なのは
672デフォルトの名無しさん
2021/11/26(金) 22:02:31.09ID:v7cZYF1p もう新しいデータ来ないのに
私待つわ…いつまでも待つわ…と待ち続けるコードを書けば
当然ながら詰まる
私待つわ…いつまでも待つわ…と待ち続けるコードを書けば
当然ながら詰まる
673デフォルトの名無しさん
2021/11/26(金) 22:32:30.29ID:gRCMakca アミン…大統領
674デフォルトの名無しさん
2021/11/26(金) 22:54:09.91ID:b/zo5EjW 未使用の変数がコンパイルエラーになるのは地味に良い
675デフォルトの名無しさん
2021/11/27(土) 15:33:06.29ID:DHp3ezKZ 俺もチャネルはどうかと思う
ある意味スレッドより危険
ある意味スレッドより危険
676デフォルトの名無しさん
2021/11/27(土) 15:56:47.57ID:wymfOW3B 設計間違えたらデッドロックするのはどんな通信でも一緒じゃね?
チャネルを殊更に危険視するの?
チャネルを殊更に危険視するの?
677デフォルトの名無しさん
2021/11/27(土) 16:07:17.64ID:z8jcIZfA >>676
デッドロックしやすい仕様なのは事実だし、危険だからといってその使用を回避できる標準的な代替手段が存在しない
他の言語ではだいたいpromise/future、fork-join、actorがあるからよほど変なことしなきゃデッドロックなんか滅多に起きないよ
デッドロックしやすい仕様なのは事実だし、危険だからといってその使用を回避できる標準的な代替手段が存在しない
他の言語ではだいたいpromise/future、fork-join、actorがあるからよほど変なことしなきゃデッドロックなんか滅多に起きないよ
678デフォルトの名無しさん
2021/11/27(土) 16:10:29.89ID:EtwFQg7M そうなんだ? イケてないの?
Googleさんはなんでそんな方式を採用してしまったのやら
Googleさんはなんでそんな方式を採用してしまったのやら
679デフォルトの名無しさん
2021/11/27(土) 16:43:12.87ID:z8jcIZfA >>678
デザインパターンみたいなものを極力廃して、小さな標準的なツールセットだけでモノ作れるようにするという思想は一貫している
しかしスレッド関連のデザインパターンというのは基本的に死なないためにあえて制約を設けているのであって、
Goの思想が逆に敷居を高くする方向に作用してしまったということだ
デザインパターンみたいなものを極力廃して、小さな標準的なツールセットだけでモノ作れるようにするという思想は一貫している
しかしスレッド関連のデザインパターンというのは基本的に死なないためにあえて制約を設けているのであって、
Goの思想が逆に敷居を高くする方向に作用してしまったということだ
680デフォルトの名無しさん
2021/11/27(土) 16:49:44.44ID:kX7QbhiL CSPモデルに沿った実装がしやすいとは聞く。
CSPモデルができていればそれがデッドロックを起こすかどうか静的に検証できるはず。
CSPモデルができていればそれがデッドロックを起こすかどうか静的に検証できるはず。
681デフォルトの名無しさん
2021/11/27(土) 16:50:07.92ID:Xzfp/9Y9 ほえー、そうなんだ
実際のところ、他の人がgoroutineとか使ったやつを -race 付きで実行すると警告出まくるやつばっかだったよ
Goの強みは並行処理だと思ってたのに、他の言語のことはよく知らんけどもそんな有様じゃ強みだなんて言えないなあ
実際のところ、他の人がgoroutineとか使ったやつを -race 付きで実行すると警告出まくるやつばっかだったよ
Goの強みは並行処理だと思ってたのに、他の言語のことはよく知らんけどもそんな有様じゃ強みだなんて言えないなあ
683デフォルトの名無しさん
2021/11/27(土) 17:22:55.75ID:1Qfj4fkw CSPモデル
ttp://www.usingcsp.com/cspbook.pdf
ttp://www.usingcsp.com/cspbook.pdf
684681
2021/11/27(土) 18:04:43.03ID:Xzfp/9Y9 すまん、せっかくCSPを紹介してくれるなら、もっと初心者向けのやつない?
興味はある
興味はある
685デフォルトの名無しさん
2021/11/27(土) 18:14:49.72ID:kX7QbhiL686デフォルトの名無しさん
2021/11/27(土) 18:28:08.91ID:NTle55ol >>678
ここに玉にディスりにくるRust坊、ほんと性格悪いな
ここに玉にディスりにくるRust坊、ほんと性格悪いな
687デフォルトの名無しさん
2021/11/27(土) 19:03:33.53ID:NTle55ol 設計が間違えてチャネルで無限ブロックするならタイムアウトをつけるべきだし、Rustもチャネルで
無限ブロックするしほかの多くの言語も(スレッド)チャネルの受信でブロックする
チャネルとは違うがErlangメッセージパッシングだって似たようなもの
無限ブロックするしほかの多くの言語も(スレッド)チャネルの受信でブロックする
チャネルとは違うがErlangメッセージパッシングだって似たようなもの
688デフォルトの名無しさん
2021/11/27(土) 19:14:15.48ID:z8jcIZfA689デフォルトの名無しさん
2021/11/27(土) 19:53:13.18ID:wymfOW3B Rustなんてスレッド実装が固まってから五年も経ってないお子ちゃま
690デフォルトの名無しさん
2021/11/27(土) 19:53:53.46ID:DHp3ezKZ スレッドとかだとバッドパーツが一通り手間揃ってて
こういうのはやめましょうってのがほぼデザインパターン化されてるから
コードレビューでつぶせたり
処理を追うとわかったりする
こういうのはやめましょうってのがほぼデザインパターン化されてるから
コードレビューでつぶせたり
処理を追うとわかったりする
691デフォルトの名無しさん
2021/11/27(土) 19:54:52.94ID:LVgG7qhW692デフォルトの名無しさん
2021/11/27(土) 20:00:12.03ID:kX7QbhiL もともと危険なthread/mutexには安全なwrapperがあるのにgoのchannelにはそれが無いから、ってことかな?
693デフォルトの名無しさん
2021/11/27(土) 20:12:14.69ID:K1RL10E4 >>688
平行性のある現代的なプログラミング言語ではデットロックは言語仕様の問題ではなく、食事する哲学者の問題と
同じく制限された個数のチャネルで送られたデータが受け取られていないのに、送信できるようにはなりません。
これがレース競合を起こさないための標準的で安全な手段であり、グローバル変数や変数共有をgoroutine介して
同期ミューテックスもない操作すれば当然警告が出るでしょう。
そもそもgoroutineでのチャネルブロックはデットロックではなく、待機ブロックです。その証拠にSIGINTなどの
シグナルでは待機ブロックでも抜けるはずです。本来のデットロックなら応答しないかゾンビになります
もちろんスレッド(あるいは軽量スレッド)間でチャネルを介してのみデータを共有できるプログラミング言語も
存在しますが、goは親スコープにある変数などを操作できるように利便性のトレードオフ設計であり、より現実的で
効率的だとも言えるでしょう
また制限された個数でないチャネルの場合は送信に受信側処理速度が追い付かない場合、キューイングされて
無限にメモリーが圧迫される危険性があります。
非同期系の言語で使用されるpromiseや、未来値のプレスホルダーを参照するfutureでデットロックが起きないのは
当たり前です。前者は非同期であり並列/並行ではありません、後者は終了時まで待って値を受け渡すだけです。
fork-joinは何が言いたいのかわかりません、actorプログラミングモデルや純関数言語ならその通りですが
共有したいデータが多くの言語でチャネルやパッシングを介してのみなので競合は起こらないでしょうが
いつまで待っても到着しない受信側は、永遠に待ち続けるのは変わりません。
「そういう事をいってるんじゃない」
ま、こういう問題を一切合切、無難に解決してくれる標準的な手段を手続き言語に求めるのは分からなくも
ないですが、最終的にデットロック(あるいは待機ブロックで無限待ち)したらどうするか記述するような
フォールトトレラント処理が欲しいわけでもないのでしょうが、個数が限られている場合のレース競合対策の
ルールなので言語的ではなく、哲学的にどうにもならないと思いますが
平行性のある現代的なプログラミング言語ではデットロックは言語仕様の問題ではなく、食事する哲学者の問題と
同じく制限された個数のチャネルで送られたデータが受け取られていないのに、送信できるようにはなりません。
これがレース競合を起こさないための標準的で安全な手段であり、グローバル変数や変数共有をgoroutine介して
同期ミューテックスもない操作すれば当然警告が出るでしょう。
そもそもgoroutineでのチャネルブロックはデットロックではなく、待機ブロックです。その証拠にSIGINTなどの
シグナルでは待機ブロックでも抜けるはずです。本来のデットロックなら応答しないかゾンビになります
もちろんスレッド(あるいは軽量スレッド)間でチャネルを介してのみデータを共有できるプログラミング言語も
存在しますが、goは親スコープにある変数などを操作できるように利便性のトレードオフ設計であり、より現実的で
効率的だとも言えるでしょう
また制限された個数でないチャネルの場合は送信に受信側処理速度が追い付かない場合、キューイングされて
無限にメモリーが圧迫される危険性があります。
非同期系の言語で使用されるpromiseや、未来値のプレスホルダーを参照するfutureでデットロックが起きないのは
当たり前です。前者は非同期であり並列/並行ではありません、後者は終了時まで待って値を受け渡すだけです。
fork-joinは何が言いたいのかわかりません、actorプログラミングモデルや純関数言語ならその通りですが
共有したいデータが多くの言語でチャネルやパッシングを介してのみなので競合は起こらないでしょうが
いつまで待っても到着しない受信側は、永遠に待ち続けるのは変わりません。
「そういう事をいってるんじゃない」
ま、こういう問題を一切合切、無難に解決してくれる標準的な手段を手続き言語に求めるのは分からなくも
ないですが、最終的にデットロック(あるいは待機ブロックで無限待ち)したらどうするか記述するような
フォールトトレラント処理が欲しいわけでもないのでしょうが、個数が限られている場合のレース競合対策の
ルールなので言語的ではなく、哲学的にどうにもならないと思いますが
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 台湾有事での集団的自衛権行使に「賛成」が48.8%、「反対」が44.2% ★5 [♪♪♪★]
- 台湾有事での集団的自衛権行使に「賛成」が48.8%、「反対」が44.2% ★4 [♪♪♪★]
- 高市早苗首相、独自貫いた1カ月 会食ゼロ、議員宿舎で勉強漬け「飲んでる暇があれば、政策を練り、資料を読みたい」 [Hitzeschleier★]
- 【MLB】大谷翔平、山本由伸、佐々木朗希WBC出場辞退が確実に! トランプ大統領「ロス五輪最優先」指令 どうなる侍ジャパン [牛丼★]
- 【英FT】国土の大部分を日本の残忍な占領下におかれたという苦しみの記憶を今なお抱え続けている中国 [1ゲットロボ★]
- 岐阜発激安スーパー「バロー」横浜にオープン! [おっさん友の会★]
- 高市早苗「G20サミット、なめられない服を選びました。外交交渉でマウント取れる服買わないとなぁ」大炎上★3 [165981677]
- 【悲報】日本人、突然全員高市早苗の反転アンチになる。外交勝負服発言がどうしても許せない模様 [517791167]
- 【んな専🏡】ルーナイトとたこ焼きパーティするのらぁ(・o・🍬)【ホロライブ▶】
- 有識者「中国からのレアアースは止められても問題ない。高市さんがアメリカから買えばいい」 [834922174]
- 【誰でも】雑談広場★0
- 中国、高市早苗を国連に提訴。「国際社会に問う」 [271912485]
