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/06/13(日) 23:12:30.98ID:Nkflk8c7
Vagrantとかまだ使ってる奴いるの?
Dockerでオワコンとか以前に、GoだとVMもコンテナもなしに生でも普通に動くようにポータブルに作るだろうし
2021/06/13(日) 23:25:59.99ID:exUpBE38
普通に、WindowsでVirtualBox使うならその環境構築にほぼセットだわ。
Goのアプリしか使わないわけでもないしな。
2021/06/13(日) 23:41:09.94ID:eXqVG9aT
WSLかDockerでよくね
2021/06/13(日) 23:43:18.70ID:WJQpzq26
>>530
まじ?!
2021/06/14(月) 03:57:38.10ID:WMzG+VdI
https://www.hashicorp.com/blog/toward-vagrant-3-0
これだね
rubyは徐々にコアから切り離してオプション化していく感じかな
2021/06/14(月) 04:16:45.90ID:SZpJFTNw
あらー
まあユーザーからしたらRuby入れるの面倒だったしな
2021/06/14(月) 07:44:36.39ID:6p9bp5Dj
>>533
WSLで用が足りるならVirtualBox自体使う必要がないんだろうがな。
ただ、単にLinuxのソフトウェアが動けばいいんじゃなくてやっぱり仮想環境が必要な場面はあるし。
以前Ubuntuの複数バージョンを使い分けたりしたことがあるが、こういう用途にはまだ必要。
2021/06/14(月) 07:45:52.08ID:6p9bp5Dj
リンク間違えた。>>538>>534ね。
2021/06/14(月) 11:59:12.37ID:DpCafs9R
goのcoroutineはgoroutineていうのに
goのcontextはgontextていわないのはなぜ?
2021/06/14(月) 12:04:15.12ID:ei9nXL3B
goroutineはGo言語のルーチンじゃなくて予約語goで作られるroutineだからじゃね?
2021/06/14(月) 12:23:24.79ID:6p9bp5Dj
そもそも goroutine は coroutine じゃなくて thread だから。
2021/07/02(金) 14:46:02.08ID:LpLK6KDw
https://twitter.com/alexanderdanilo/status/1410521878855176194

Rob Pikeが引退ってマジか
https://twitter.com/5chan_nel (5ch newer account)
2021/08/01(日) 03:30:57.24ID:8X1C7Oi5
Goもようわからん方向に進んでますな
インフラ用言語と割り切ればええんかな
545デフォルトの名無しさん
垢版 |
2021/08/12(木) 01:08:37.12ID:b4UG5w9l
goで問題解くサイトみたいなのありますか?
2021/08/12(木) 11:50:15.21ID:s+UN3BdM
今は、WSL2, Docker, VSCode(Remote Container, WSL2 ならRemote WSL)で十分。
Mac, vagarant, virtual box さえ不要

Ruby on Rails では、Heroku, Cloud 9, CircleCI などのクラウド開発

ローカル開発なら、Dockerを使うのが簡単だが、
日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv も使える。
asdf でも、多言語の好みのバージョンを入れられる

echo -e "$RBENV_ROOT\n$NODENV_ROOT"
/home/ユーザー名/.anyenv/envs/rbenv
/home/ユーザー名/.anyenv/envs/nodenv

任意のLinuxディストリビューションをWSL2で動かす Clear Linux OSを動かすまで、2021/4
https://impsbl.hatena@blog.jp/entry/ClearLinuxOnWSL2

注意。アク禁にならないように、URL 内に、@を入れました

Docker Hub からpull したイメージを、tar へexport して、
それをWSLで、D ドライブへimport する

docker export
wsl --import

WSLでカスタマイズしたものを、さらにexport しておく。
wsl --export
547デフォルトの名無しさん
垢版 |
2021/08/14(土) 18:30:15.43ID:1pPVCqqe
ジェネリクスは入った?
2021/08/17(火) 12:12:44.83ID:uiypcFr0
Go 1.17 is released!
https://twitter.com/golang/status/1427378613289164810
https://twitter.com/5chan_nel (5ch newer account)
549デフォルトの名無しさん
垢版 |
2021/08/17(火) 17:56:17.55ID:OnI2KERu
>>541
goroutineって
オプションで複数のCPUコアに分散も出来るけど
実際はほぼ軽量スレッドじゃん?
コルーチンみたいなものじゃないの?

プログラムの書き方がスレッド使ったプログラムっぽかったら、
Goみたいに実装が極力OSスレッドに頼らないものになっててもスレッド(グリーンスレッド)?
2021/08/17(火) 21:51:06.20ID:082KifEP
goroutineはstackful coroutine
551デフォルトの名無しさん
垢版 |
2021/08/21(土) 18:09:12.95ID:7GAoG1Iq
Rustのメモリ安全性はボローチェッカーによって担保されている

Nimバージョン:1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しでView types参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます

Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ

なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?

Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html


Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、Cのソースコードを吐き出せるので割り振られた仕事が早く終わっ
ても終わってないふりをして怠けることができる

「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
2021/08/21(土) 18:16:54.48ID:O7+p4qIy
Rubyガイジに続いてNimガイジの登場?
553デフォルトの名無しさん
垢版 |
2021/08/22(日) 12:20:27.60ID:0Cz6ueFz
Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています

Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます

Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ

なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?

Nimの実験的特徴 バージョン1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html

第二プログラミング言語として Rust はオススメしません Nim をやるのです
https://wolfbash.hateblo.jp/entry/2017/07/30/193412


Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる

「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
2021/09/09(木) 23:03:13.52ID:uQCXRnBV
>>545
ttp://rosettacode.org/wiki/Category:Go
555デフォルトの名無しさん
垢版 |
2021/09/15(水) 01:01:00.82ID:e45L6iVT
9月TIOBEプログラミング言語ランキング
https://news.mynavi.jp/article/20210913-1971335/
556デフォルトの名無しさん
垢版 |
2021/09/18(土) 17:33:40.58ID:kYto5Bfg
Go言語を嫌う6個の理由
https://www.kbaba1001.com/entry/2021/09/17/073149
2021/09/18(土) 18:19:07.86ID:ED687M4K
まー、概ね間違ってもいないかな?
でもmapなどがループより優れてるっーのは感想にしか過ぎなくないか?
2021/09/18(土) 19:44:16.34ID:1qFQH5Bo
優れているかどうかはともかくmapとかは便利だよ
Genericsが導入されたらめっちゃ使われるようになるっしょ
2021/09/18(土) 19:55:59.68ID:ED687M4K
短く分かりにくいコードが書けて便利
560デフォルトの名無しさん
垢版 |
2021/09/18(土) 20:04:43.61ID:VYLTl1id
総称によるイテレーションを伴うmap/reduceは他の言語みたいに単一スレッドの自己満足じゃなく
デフォルトで並列にして欲しいです。。。
2021/09/18(土) 20:15:55.61ID:9LlZohSd
map/reduceが使われる殆どのケースでは、入力の振り分けや結果のマージ、コンテキストスイッチ等のコストのため、並列化するとかえって遅くなるんだよ
562デフォルトの名無しさん
垢版 |
2021/09/18(土) 20:27:06.45ID:VYLTl1id
うっせーうっせーうっせーわ、あなた思うよりmap/reduceに並列度引数付ければいいだけです!
デフォルトで言うてる文章も読めないアホはgolangのM:Nモデルの高速スイッチが分かってない
2021/09/18(土) 20:33:23.01ID:9LlZohSd
だから「殆どのケースでは」って言ってるじゃん
デフォルトで並列なら確実に遅くなるよ
2021/09/18(土) 20:39:09.73ID:G1H8j0E2
駄々っ子には何を言ってもムダ
565デフォルトの名無しさん
垢版 |
2021/09/18(土) 21:09:31.39ID:IxZBx6u4
気持ち悪い単発ID援護
2021/09/18(土) 22:54:51.12ID:em3js4pK
その記事は肝心のポイントが一つ抜けておるな
goは何がクソといってまず名前がクソすぎる
40年50年前にできた言語じゃないんだからちゃんと後先考えて名前つけろや!
2021/09/19(日) 12:53:46.33ID:HwX1dH8g
goの最大の問題は検索のしづらさだろねえ

Goのヘイト記事は外国でもある(そりゃそうだ)

Why Golang Is Bad for Smart Programmers
https://raevskymichail.medium.com/why-golang-bad-for-smart-programmers-4535fce4210c


I want off Mr. Golang's Wild Ride
https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-ride


もっと強烈なのあったはずなんだけど見つかりませんでした
2021/09/19(日) 13:03:36.46ID:W3Ibxi5N
でも悪評も評判のうちなんで
WebAPIとして最適な並列処理性能を持つとはいえ、なんでそんなに注目されるのか
極論言えばWebAPI作るくらいしか能はないよね
569デフォルトの名無しさん
垢版 |
2021/09/19(日) 14:20:10.51ID:2JoXdmjo
GoにGenericsが導入されるのは来年か、待ち遠しいなあ
2021/09/19(日) 14:33:08.77ID:kGPMuBj8
ググラビリティなら同じ名前のゲームがあるRustより遥かにマシ
2021/09/19(日) 14:42:11.42ID:eLx8+R0U
最近だと SIMD命令への対応がうれしい(実装コードはこれからだけど)

cmd/go: add GOAMD64 environment variable
https://github.com/golang/go/commit/b1bedc0774d8a3a7ff8778e933ee92e8638e9493

Microarchitecture levels
https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels
572デフォルトの名無しさん
垢版 |
2021/09/21(火) 14:14:06.62ID:QKlGGi7s
Fuzz testing
573デフォルトの名無しさん
垢版 |
2021/09/21(火) 14:57:53.57ID:ZVAhNDzz
>>566
c って名前をつけた奴に無理な注文すんなw
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回分くらいだろ。

そら安いほうがいいけど。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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