Go language part 4

■ このスレッドは過去ログ倉庫に格納されています
2020/11/16(月) 04:14:40.64ID:fB5+0hxC
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/
2021/09/21(火) 15:24:48.06ID:YFZVt4Mm
たまには D とか V のことも思い出してあげてください
2021/09/21(火) 15:45:09.78ID:VBMIAkoo
>>573
Szl (Sawzall) っていう命名もできるのになあ
576デフォルトの名無しさん
垢版 |
2021/09/21(火) 16:21:52.65ID:ZVAhNDzz
>>567
> Why Golang Is Bad for Smart Programmers
> https://raevskymichail.medium.com/why-golang-bad-for-smart-programmers-4535fce4210c

読んだ
Cしかやったことない奴は騙せても
いろんな言語やってきた奴からしたらショボすぎるわな
あとどうでもいいけどDを引き合いに出してGo批判するって斬新だなw
2021/09/21(火) 16:40:46.07ID:VBMIAkoo
D言語ちょっと試したことあるけどなかなか心地良かったよ。
しかしなぜGoやRustが使われて、Dが使われないのか、というな視点でも評価してほしいな。

「俺が考えた最強の言語」を作る人はいっぱいいても、ちゃんとコミュニティを作って使われるようになる言語はなかなかないね。
578デフォルトの名無しさん
垢版 |
2021/09/21(火) 16:52:12.16ID:ZVAhNDzz
>>577
> 「俺が考えた最強の言語」を作る人はいっぱいいても、ちゃんとコミュニティを作って使われるようになる言語はなかなかないね。

Perl6もフィボナッチ数列から最初の十個を出力を
say (1, 1, *+* ...*)[^10];
と簡潔に書けたりして最強言語だけど使われてないね
2021/09/21(火) 17:19:40.36ID:kwTaz7X0
write only language として最強でもなぁ・・・
2021/09/21(火) 17:32:46.95ID:YFZVt4Mm
>>578
そういやこの前「Perl6 は〜」って話してたら「rakulang だ!」って怒られたわ
2021/09/21(火) 18:08:02.89ID:chSqlukK
Goは、@普通にビルドできて、A普通にデプロイできて、B後々ゴミにならない
という当たり前の事が当たり前にできることに存在意義がある
簡単なことだけどそれができない言語が多いんだよね
582デフォルトの名無しさん
垢版 |
2021/09/22(水) 01:42:07.18ID:l6mKxMvi
ジェネリクスが入ればそこがまた飛躍の時
583デフォルトの名無しさん
垢版 |
2021/09/22(水) 08:18:04.28ID:FHlooIbh
2021年にもなってジェネリクスを待ち望んでる言語があるとか
痛々しすぎん?
2021/09/22(水) 09:14:59.43ID:B3HpsGLJ
いらん
と開発元も思ってたけど、おまえらがどうしても欲しいと言い続けたからだろ
585デフォルトの名無しさん
垢版 |
2021/09/22(水) 09:30:44.14ID:FHlooIbh
言語をデザインした奴が最初の段階で要らんと言ってるなら
それを貫き通してほしいよね
馬鹿にいまさら迎合することなく

Javaにジェネリクスが入った時も同様の失望を覚えた
2021/09/22(水) 09:47:34.93ID:Z6AQmIPR
俺はジェネリクスが欲しいと思ったことはないなあ
sliceとmapに型があるから実際ほとんど十分なんだよね
587デフォルトの名無しさん
垢版 |
2021/09/22(水) 09:50:30.16ID:SSzxu7sL
システムプログラミングではいらんかもしれんけど業務アプリではないとつらい
2021/09/22(水) 10:12:49.72ID:B3HpsGLJ
言語デザイン的には業務アプリは考えてなかったけど、業務アプリでも使いたいという要望が広まってきて、その弊害というかなんというか
業務アプリにgoroutineはオーバースペックだし、JavaとかC#でいいと思うんだよな
2021/09/22(水) 10:16:35.88ID:B3HpsGLJ
Goって、より良いCとして使うだけの利用者層は今はどれくらいのシェアなんだろ?
2021/09/22(水) 10:54:15.71ID:csq4xmc8
Generics が入る時点で Go1 と Go2 に枝分かれするかと思ったけど
そうでもないみたいだな
2021/09/22(水) 12:08:04.57ID:rujUi/9T
Genericsがないから、いまは代わりにコード生成でなんとかしてるんでしょ
コード生成ってメンテしづらいし面倒だよ
2021/09/22(水) 12:08:24.30ID:xw08ZBoX
型クラスがないジェネリクスとか片手落ちなんだよな
それに標準の型クラスもないのにどうやって共通性を持たせるんだろうとか
いろいろ無理な気がする
使いにくいから誰も使わないということになりそう
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

もしかしてこういう話じゃない?
2021/09/22(水) 12:45:37.46ID:rujUi/9T
>>592
例えばこういうふうにすれば、共通の演算子である+を使えたりするけど、これじゃダメ?
https://go2goplay.golang.org/p/hYqlmKON7VE
2021/09/23(木) 00:48:02.08ID:wxnnur2v
はよGenerics使わせろ
2021/09/23(木) 01:09:42.88ID:5iThOVVW
>>595
WIP ブランチなら既にデフォルトで -gcflags=-G=3 になってる
gopls も対応したので Emacs + Eglot でサクサク書いてる
2021/09/23(木) 19:28:09.42ID:wxnnur2v
おお、いいね
598デフォルトの名無しさん
垢版 |
2021/09/24(金) 07:59:47.34ID:ljIO2QUf
https://i.imgur.com/z2Aqpr0.png
2021/09/27(月) 07:44:16.84ID:lxaeA1bT
TVCM見てて Go Pay が出てきて吹いたわ
なんなの提供元
ポケモンGoに勝てるの?
GO TO トラベルに勝てるの?
Google Pay に勝てるの?
それも調べたら MOV Pay から名称変更とか、そこまで逆境が欲しいの?
山中幸盛なの?
2021/09/27(月) 09:06:27.80ID:lxaeA1bT
書かなくても分かると思ったけど一応、サービス内容に対しての話じゃないからね
ググラビリティの話

Go が後続のサービスにどれだけ苦しめられてるのか
任天堂やら日本国政府やらGoogleやらのパワープレイヤーなら知ったこっちゃないだろうけど、泡沫勢力じゃ約束されし絶望じゃん
2021/09/27(月) 13:53:26.84ID:LxdgSnnl
ググラビリティって普通GolangかGo言語で検索すんじゃねーの?
Cとかでどうやってんの?
2021/09/27(月) 13:56:04.08ID:stBORJeg
親会社名自体が猛烈に低ググラビリティという…
2021/09/27(月) 14:52:06.48ID:Z8J42Gkb
>>599
どうした急に
お薬飲め
2021/09/27(月) 15:05:56.76ID:lxaeA1bT
>>603
>>600
書かなくても……書いといて良かったわ
2021/09/27(月) 15:19:55.68ID:tsIS/8pJ
検索ワードで回避できる問題なんかどうでもいい
一般人が検索するような物でも無いし
コマンドが短く入力しやすい方が重要
squirrelみたいな名前にしたら腱鞘炎になるぞ
2021/09/27(月) 17:54:21.16ID:Ac+aBfL/
>>601
C言語
2021/09/28(火) 08:06:03.36ID:zmriYPIE
極主夫道の二巻の福引きGo等の商品がどうみてもGopher君のパチモノ
608デフォルトの名無しさん
垢版 |
2021/09/29(水) 15:30:15.59ID:W9rNFdvq
見上げてGolang、夜の星を
2021/10/18(月) 13:29:08.84ID:tOAzdfyW
Go簡単って言うからやってみたらローカルファイルimportするのに相対パス使えないとか
go mod するんだとかGOPATHはもう使わないとかゴチャゴチャゴチャゴチャ・・なんじゃこれ?全然シンプルじゃない
ツール周りがゴチャりすぎやろ、やっぱPythonが神だわ
2021/10/18(月) 13:40:38.36ID:+iNX7XVA
そうですね。Python使った方が良いと思いますよ。さようなら
2021/10/18(月) 19:24:50.47ID:vvHfCZ9q
まあ相対パス使えないのはやり過ぎな気もする
htmlですらbaseを指定できるのに、何を恐れているのか
パーサーを作る際に楽だからなのかな?
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月
2021/10/27(水) 22:05:51.76ID:HL6HkAZF
Genericsは1.18に載らないの?
2021/10/27(水) 22:49:21.67ID:Dm8DTcKu
既に WIP ブランチでは使える様になっているから 1.18 で
正式採用になると思う(gopls も対応済み)
2021/10/31(日) 15:45:47.64ID:Qz/5KmYR
ついにGenerics載るんだね、楽しみやなー。

ところで、ユーザ定義演算子は計画されてない?
AddとかMulみたいなメソッドじゃなくて+とか*みたいな演算子使いたいこともあるんよね
2021/10/31(日) 18:46:09.19ID:OY4TDGUi
>>616
>>594みたいな書き方しか無理みたい
トホホ
2021/11/01(月) 23:46:42.69ID:jfjYB5Nx
GOおもろない
なんとかしてや
619デフォルトの名無しさん
垢版 |
2021/11/02(火) 14:39:41.99ID:vRCKOPQ3
>>618
どこがどうおもろないんや?
2021/11/02(火) 21:14:20.28ID:c4MpaWiz
仕事だから仕方なく使ってるのはあるな
621デフォルトの名無しさん
垢版 |
2021/11/03(水) 08:59:07.96ID:owwwLqi1
なんも知らん新人でも、できるベテラン・新人でも、仕事に使うにはソースコードに均一性のある良い言語だわいな
2021/11/03(水) 09:11:16.68ID:hIbM46+W
最近Goの現場入ったけど
dep?とかいうモジュール使っててGOPATHにも気を使わないと駄目で
結構混乱する
初期で大分失敗してると思うわGo
623デフォルトの名無しさん
垢版 |
2021/11/03(水) 10:49:56.25ID:I/oot80l
depは3年ぐらい前から正式な公式ツールじゃもう無いし、ツールの煩雑性や使い勝手は言語に関係ないよ
PATH変数に気を使うのはC,C++でも一緒、そもそも環境構築すら出来ない失敗をしてんのはあんたか
現場の手順書が無いか
2021/11/03(水) 11:46:43.90ID:XfZZ+0lv
「改訂2版 みんなのGo言語」という本を読めば?

学生時代に、Ruby 製のVagrant を作って、
Terraform で有名なHashiCorp を作った、今世紀最大の起業家、
Ruby/Go の神、Mitchell Hashimoto のソースコードも解説している
2021/11/03(水) 12:11:59.17ID:508Y0Igq
go.mod に書いとくだけで github やらから直接にライブラリを導入できる点で、環境面では目一杯助かってるわ
Mavenやらpipが組み込まれてる感じだけど、基本機能であることは大きい
Mavenとかpipは別途入れないとならんし、それぞれ本体と別の環境整備しないとならないから
2021/11/03(水) 19:24:54.92ID:ywwxM/TS
>>622
今更?
2021/11/04(木) 16:01:17.99ID:eo9m+3ij
趣味で使って面白い?
2021/11/04(木) 16:13:12.12ID:5gkz3BSt
面白い
GCP無料枠でそこそこ実用性のあるサイト建てたりできるし
2021/11/04(木) 16:27:08.12ID:eo9m+3ij
なるほど
googleの犬になるか
2021/11/04(木) 19:21:19.80ID:5gkz3BSt
だってアマとか無料枠ないんだもん
一年目だけってのは、単に初回サービスって言うんだよ
631デフォルトの名無しさん
垢版 |
2021/11/05(金) 14:20:53.38ID:0z+NMKpK
Herokuとか
2021/11/07(日) 15:35:29.83ID:mQ9A5wfK
社会人なら別にEC2使ってもマイナーサービスのサーバ台ぐらい余裕やで。
一ヶ月分の料金なんて、スタバ2回分くらいだろ。

そら安いほうがいいけど。
2021/11/07(日) 22:23:20.41ID:aZyVG3bY
micro使えば安いけど明らかにメモリが足りないんだよな
おまけに調子に乗ってぶん回すと詰まるし
最低でもmedium程度は欲しいがそうなると結構高くなる
2021/11/07(日) 22:38:38.82ID:VzSbYdr/
Oracle Cloudは?
コンソールが重くて独自性強いけど起動してしまえばいっしょ
2021/11/07(日) 23:41:21.11ID:KgxySftM
サイト立ててもアクセスが日に数件なんでほとんどマシン回ってないやww
636デフォルトの名無しさん
垢版 |
2021/11/08(月) 16:12:42.92ID:KvpLYeV7
microといえば思い出す、大手のNでスワップしまくりなんも考えてないSEが手配したmicro
しかもWindowsの時の絶望感・・・
2021/11/08(月) 16:32:31.04ID:Qfm8QX8G
んなもん動くか!

とググったら
https://qiita.com/zakky/items/68c4749889717c3cd849
おぅい!!
2021/11/08(月) 16:42:16.76ID:NUVpgUuA
microでも小さいサービスならメモリ足りるやろ? goだったら100MBメモリ食うこともありえないくらいやろ
メモリリークでもしてるんじゃないの?
Windowsとか動かしたらそらきついだろうけど。
2021/11/08(月) 17:40:06.67ID:Qfm8QX8G
動くか、と言ったのはWindowsの話
400MB確保できるみたいだから意外と使えるかも?
2021/11/08(月) 18:00:09.69ID:NUVpgUuA
なんでそんなにWindowsを動かしたいんだ・・・。
2021/11/09(火) 13:54:21.34ID:dGlVH92+
>>640
pインスタンスでwindowsを動かすのは普通に多いよ
2021/11/09(火) 17:10:56.19ID:8qmTEk8+
いや、なんで?という疑問への答えじゃないよな
ぶっちゃけLinuxでSSH接続専用にすれば済むから
2021/11/09(火) 19:48:05.88ID:+FOj3uk2
GUI系のアプリを動かすんだよ
CAD系のシミュレータとか
windowsにしか存在してないアプリが多い
644デフォルトの名無しさん
垢版 |
2021/11/09(火) 23:41:06.97ID:5nP8kmAz
github.com/fogleman/gg が遅くてちょっと困った。
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
646デフォルトの名無しさん
垢版 |
2021/11/17(水) 23:16:51.89ID:a+84vLf4
gotoの使用は許可されてる?
2021/11/18(木) 06:41:13.91ID:eOo002y1
>>646
普通は使わないが何故か仕様にあるんだから許可されてるんだろ
648デフォルトの名無しさん
垢版 |
2021/11/18(木) 17:38:26.56ID:kJKbHvZv
深いループを抜けるときはgotoを使う
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とも呼ばれる。
2021/11/19(金) 09:01:28.58ID:Fh4InTPD
Inline指定出来ないので関数呼び出しのコスト低減くらいしか用途が思いつかない
そこまでシビアな実装滅多に無いから基本的に使わない
2021/11/19(金) 12:21:28.19ID:WNpWqDaH
確かに関数化すりゃブロック脱出もシンプルにreturnさせりゃいい
となるとgotoは関数呼び出しによるオーバーヘッドの削減だけなのかな?
ナノ秒単位でも削減したいという余程のシビアな要件で使うって話になるけど、関数呼び出しごとにスタックのチェックが入るGoでそんな要件に意味ってあるの?とも思う
2021/11/19(金) 12:34:26.60ID:kQNnUQCo
というよりもアホ意識高いgoto異端審問官が、文句つけてくるので使わない。
2021/11/19(金) 15:43:47.01ID:oZVaazpx
おれにとっては、Golangでgoto使うのは、構文解析器みたいなのを書くときにたまにあるんだけど、共通の処理までジャンプしたいときとか、
for文とかをネストしたときに、いくつか上のブロックまでジャンプしたいときかなあ。これも構文解析したあとの評価器で使うこともある気がする

ようするに最適化とかじゃなくて、ちょっとした大域脱出みたいなノリで使ってる

Go本体のソースコードでもこんな感じgoto使ってるんじゃなかったっけ
2021/11/20(土) 11:05:39.09ID:GriTsYN5
俺たちのGO!
655デフォルトの名無しさん
垢版 |
2021/11/21(日) 07:26:46.41ID:8Zd5Z9wI
IDEはどれがおすすめ?
2021/11/21(日) 07:39:21.64ID:AMP8EKz2
自分はVSCode
2021/11/21(日) 23:14:16.37ID:1+FhODzH
私はEmacs
658デフォルトの名無しさん
垢版 |
2021/11/22(月) 06:12:39.00ID:I9kdAR+e
VSCodeもemacsもIDEではないけどね
2021/11/22(月) 07:05:20.26ID:rahxNjIR
バージョン管理からテストまで環境内で完結してるのに仲間外れなのか
2021/11/22(月) 19:08:36.54ID:uiCHuC7N
emacsは"環境"だから、
emacs > IDE
だよな


ところでIDEの定義って何よ?
高機能エディタと垣根がなくなってきたからそれらを区別する意味があるのかどうか
2021/11/22(月) 19:28:29.86ID:rahxNjIR
統合開発環境だから、コンパイルからデバッグ、バージョン管理にデプロイまで揃ってるemacsとかVScodeを入れないとなると、いよいようろんな定義になる
RADとかグラフィカルな開発環境とごっちゃになってるのでは?
2021/11/22(月) 19:36:29.51ID:rahxNjIR
エディタ内でデバッガと密接に連携(ブレークポイント設置して値を参照とか)できれば統合してると言ってもいいと思うんだが
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
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/
666デフォルトの名無しさん
垢版 |
2021/11/26(金) 17:11:22.22ID:xw//vI58
Golangが一番書きやすい
2021/11/26(金) 19:19:32.54ID:TC631CUh
go と defer とチャネルが便利すぎるね
チャネルのキャパシティは未だに悩む
2021/11/26(金) 19:31:07.75ID:jCnjnABk
チャネルはクソだろ
Cでいうポインタ関連のミスによる死と同程度くらいにはデッドロックを起こしやすい極めて危険な仕組み
2021/11/26(金) 19:33:40.57ID:klqHYhKv
勉強中でよくわかってないんだけど
メインルーチンが死んだらゴルーチンもチャンネルも死ぬんじゃないの?
2021/11/26(金) 19:53:34.58ID:TC631CUh
デッドロックは一番の可能性としてキャパシティを疑う
2021/11/26(金) 21:43:15.55ID:vur9wleR
どんな言語でもスレッドやルーチェンの1つが落ちて無事平穏な言語は少ない。Erlangぐらいかな落ちる前提なのは
2021/11/26(金) 22:02:31.09ID:v7cZYF1p
もう新しいデータ来ないのに
私待つわ…いつまでも待つわ…と待ち続けるコードを書けば
当然ながら詰まる
2021/11/26(金) 22:32:30.29ID:gRCMakca
アミン…大統領
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況