Go language part 1

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2013/10/10(木) 12:04:51.78
Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。
2015/06/19(金) 17:41:22.39ID:fpEnerGj
>>443
自己レスですがginで解決しました。
ttps://github.com/codegangsta/gin
445デフォルトの名無しさん
垢版 |
2015/10/31(土) 18:57:33.63ID:ELtLmf7b
DLL作れるようになったのかと思ったらWindowsじゃサポートされてないのね
2015/11/25(水) 07:15:24.66ID:rJmLSs5J
http://kwatch.houkagoteatime.net/blog/2015/11/24/misleading-articles/
2015/12/01(火) 23:30:02.07ID:YHNsRt8H
http://go-talks.appspot.com/github.com/lestrrat/go-slides/2014-yapcasia-go-for-perl-mongers/main.slide#58
このスライドの struct{} と struct{}{} ってなんですか?
2015/12/02(水) 08:00:24.78ID:98kWsFh0
struct{}
空の構造体定義

struct{}{}
空の構造体定義&生成
449447
垢版 |
2015/12/02(水) 10:15:23.48ID:I9gRsCT5
>>448
ありがとうございました。
2015/12/04(金) 07:20:04.14ID:codNuEGF
GOって全然流行らないね
2015/12/04(金) 12:12:16.23ID:RqbsZlfd
1.5.2リリースきたー

>>450
そうかな?
2015/12/04(金) 13:21:31.35ID:hYxOV08j
Rails登場前のRubyくらいの知名度かな
非エンジニアなクライアントにgolangもやってます、と伝えても初耳って人が多いね
技術者ならだいたい聞いたことはあるって帰ってくるけど

もっと流行っても良いんじゃないかとは思うけど、ぐぐれば情報が十分ある程度には使われてるし不自由な状況ではないんだよな
2015/12/05(土) 02:50:44.50ID:XzVzQBrr
ググラビリティが悪い
もうちょい名前を考えて欲しかったな
2015/12/19(土) 15:53:57.84ID:TV8OiN+s
goのEditorで今のおすすめは何かな?
俺の中ではVisualStudioCodeなんですが。
2015/12/19(土) 23:54:09.03ID:GM3q6wlH
sublime textで特に不満ないよ
2015/12/25(金) 02:25:51.96ID:y60VPA7n
goは外部ツール充実してっからどのエディタでも同じレベルで快適だよ。だいたいgo用のパッケージかプラグインあるでしょ。だから好きなエディタ使え
457デフォルトの名無しさん
垢版 |
2015/12/31(木) 20:19:55.18ID:BO+mMVFR
>> 455

IntelliJがいいよ。
はてなの中の人もオススメしてた。
458デフォルトの名無しさん
垢版 |
2015/12/31(木) 20:20:32.48ID:BO+mMVFR
上のレス >> 454 だった
2015/12/31(木) 23:57:36.14ID:0xf2UWz7
来年はgo言語もちょっと盛り上がるといいね
460デフォルトの名無しさん
垢版 |
2016/01/01(金) 13:12:47.05ID:E/hak+Py
マ イ ン ド コ ン ト ロ ー ル の手法

・沢山の人が、偏った意見を一貫して支持する
 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法

・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法

偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い

靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト

10人に一人は カ ル ト か 外 国 人

「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !ll
461デフォルトの名無しさん
垢版 |
2016/01/02(土) 15:11:34.83ID:dDeNCcj5
・沢山の人が、偏った意見を一貫して支持する
 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法

消費税ですね判ります
462デフォルトの名無しさん
垢版 |
2016/01/06(水) 23:14:14.44ID:4CIgSJD1
オライリーから本出るね
2016/01/07(木) 00:14:59.45ID:0znhgkz2
どうせなら The Go Programming Language を翻訳してくれればいいのに
2016/01/07(木) 00:45:00.91ID:wyILSx5n
今年3月に翻訳本が出るんじゃなかったっけ
465デフォルトの名無しさん
垢版 |
2016/01/07(木) 12:35:59.31ID:N5HH13xV
英語版だと5ドルで買えるから英語版読んだら。
2016/01/13(水) 09:40:10.12ID:LriSB9Er
Goの性能を測ってみたいと思いましてね

構成はこう
(1) Win10 Postgres Apache PHP5.6
PDO, prepare, execute, print
(2) Win10 Postgres GO
sql.Open, Query, Next(Fprintf)

テーブルから1000行6カラム読んでプリント
SQL文は同じ、Select * From TestTable Limit 1000
というテストを、負荷テストツールのpylot1.26でやってみたんすよ

結果
(1) 750リクエスト/分 80msec/一回
(2) 706リクエスト/分 84msec/一回

PHPはフレームワークも何も無しで10行くらい
Goも通ってるのは10行くらいなんですが
9割方データベースだろ、って状態ではこんな感じでしょうかね
467デフォルトの名無しさん
垢版 |
2016/01/13(水) 11:46:07.30ID:EwraTGVM
Win10使ってる時点でお察し
2016/01/13(水) 12:08:33.96ID:uMvtIS1u
横からだけどこういう比較するときはVirtualBoxあたりでLinux環境立てたほうが良いんかね?
2016/01/13(水) 14:35:53.26ID:CipOufW1
Go「Linuxなら…本気出す」

別の場所でちょい古のDebianで試してみた所
(1)PHP 463リクエスト/分 129msec/回
(2)Go 410リクエスト/分 145msec/回
やっぱりGoの方がわずかに遅いっぽい…
2016/01/13(水) 14:58:45.80ID:CipOufW1
PasteBinに貼って置くので「ここやがな」てのが有れば教えてくれください

ttp://pastebin.com/kQBFhVQp
ttp://pastebin.com/6bACps6v
471デフォルトの名無しさん
垢版 |
2016/01/13(水) 15:54:22.06ID:EwraTGVM
糞はfmtじゃね
2016/01/13(水) 17:13:31.80ID:jmhOlm9C
part1 て....人気ないの?それとも2ch に書き込むような品性下劣な人間が少ないってこと?
2016/01/13(水) 17:23:19.96ID:7cbOl3Dp
Tiobe だと 50位以内に入ってないぞ
まあキッシュイーターが群がるような代物でもないけど
474デフォルトの名無しさん
垢版 |
2016/01/13(水) 18:05:20.91ID:EwraTGVM
>>472
前にも Go スレは何度か建ってたのでこれが part1 というのは間違い
2016/01/13(水) 19:30:58.60ID:cjoN9klk
言語仕様が安定してるから話すことないとかかな。
Swiftなんかガンガン変更しまくりで試行錯誤感が半端ない。
goにジェネリクスが付いたらまた変わるのかも。
正直メタプログラミングが弱いのが辛い。ちょっとしたツール系を作るのはいいけど、
Webアプリをこれで作りたいとあんまり思わないだよなぁ
2016/01/13(水) 22:56:09.25ID:jmhOlm9C
なるほど。まあ罵詈雑言の応酬より過疎ってた方が読みやすくてありがたい
2016/01/13(水) 23:22:36.01ID:Me1xU7va
PDOはネイティブ呼び出しだから速いよ
2016/01/14(木) 03:24:09.60ID:byr4bFjT
>>475
webアプリではないけど、GAE/goをモバイルバックエンドに使ったらスケール悩まず書けて素敵なんだけどな
最近ならSPAでも便利だろう
小規模サービスなんで恐縮だが個人的には安く上がってると思ってる

ただそういう向きで価値見出す人はすでにAWSに取られちゃってる印象だよね
Datastoreを高いとは言わないけど落とし穴が多いとは思うし

goでwebやるならGAEも是非とは言いたい
2016/01/14(木) 03:40:41.70ID:UUuhE8Rb
>>470
自己メモレス
Fprintf(w, "書式", 変数)をやめる
Fprint(w, r.a + ":" + r.b ...
その場で一度に文字列連結、にすると2%くらい速くなる模様ですぞ
こうするとやってることはPHPとほとんど同一で、差も微粒子レベルで存在になるかな
2016/01/14(木) 10:38:57.14ID:YBLBbkKl
>>478
手軽にwebAPIサーバーが書けるフレームワークって何が便利なの?
echo?gin?そろそろデファクトスタンダードが出てほしい。
最近Elixir+phonix触ってるんだけど、エラー時にプロセス再起動する機能が組み込んであるのが便利そう。
goでデーモン書くのって決まりきった書き方もないみたいだし、
いろいろ下回りを自前で準備する感じがするんだけど、、、
481デフォルトの名無しさん
垢版 |
2016/01/14(木) 19:16:39.15ID:MVoyv7BA
>>479
Fprintf も止めればもっと速くなる
2016/01/14(木) 21:11:50.22ID:x8stlI1n
goの本
http://www.amazon.co.jp/dp/4873117526/
2016/01/14(木) 21:28:59.92ID:eYypgRpr
>>482
発売日は、まだ先なのね。
本屋行って探しちゃったじゃんかー
2016/01/15(金) 23:01:47.93ID:27wkGJB0
1.5.3ってセキュリティfixだけですか?
milestoneのは入っているんでしょうか。
2016/01/16(土) 05:56:46.68ID:2dhmjbRf
>>482
おっ、どんなだろ予約しておこう
2016/01/25(月) 00:44:23.45ID:MxjMVzG6
Goで素数判定をエラトステネスのふるいにして書いてみたけどrubyのprimeライブラリより遅かった
Goってあんまり速くないの?教えてエロい人
2016/01/25(月) 00:54:54.11ID:11Jcfjfr
Go のバージョンと実際に書かれたコードが分からんので何とも言えない
2016/01/25(月) 01:16:17.48ID:MxjMVzG6
>>487
バージョンは1.5
コードは俺のが遅いのかまともに書いてる人のでも遅いのかが気になってるだけだから載せるまでもないかなと思ってる
2016/01/25(月) 01:48:00.41ID:11Jcfjfr
$ ruby --version
ruby 2.2.3p173 (2015-08-18) [i386-linux-gnu]
$ time { ruby -e 'require "prime";print Prime.take(10000)' > /dev/null; }
real 0m0.405s
user 0m0.400s
sys 0m0.008s

↓このコードをローカルにコピーして、

http://play.golang.org/p/XXiTIpRBAu

const N = 104740 に変更してビルド・実行。

$ go version
go version devel +4f40182 Sat Jan 23 01:28:06 2016 +0000 linux/386
$ go build prime.go
$ time { ./prime > /dev/null; }
real 0m0.064s
user 0m0.048s
sys 0m0.016s
2016/01/25(月) 02:28:15.33ID:MxjMVzG6
>>489 thx
それぐらいの桁数だと自分の環境でもgoのコードのが速いんだけど、桁数増えると圧倒的に負けるようになる
というかgoが時間かかりすぎる
104700000が素数かどうかの判定の時点ですでに負けてる
$ go version
go version go1.5.1 darwin/amd64
$ time ./prime
(結果略)
0.38s user 0.01s system 98% cpu 0.395 total

$ ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
$ time tuby -e 'require "prime"; p 104700000.prime?'
(結果略)
0.13s user 0.09s system 86% cpu 0.254 total

goコード: http://play.golang.org/p/1y7lrBML1-
2016/01/25(月) 08:54:26.29ID:11Jcfjfr
そんなに遅いかな?

x86_64 環境で Prime.take(10000000) をやってみたんだけど(10^7)、

$ ruby --version
ruby 2.2.3p173 (2015-08-18) [x86_64-linux-gnu]
$ go version
go version devel +970ce1c Sun Jan 24 16:07:30 2016 +0000 linux/amd64

ruby: 0m25.204s
golang: 0m5.902s

となった。prime? メソッドについては後で ruby のソースコードを見てみる
2016/01/25(月) 09:30:52.61ID:11Jcfjfr
ここは、

for i := 3; float64(i) < math.Sqrt(float64(n)); i += 2 {
flg = true
for _, j := range primes {
if int64(i) % j == 0 { flg = false }
}
if flg == true { primes = append(primes, int64(i)) }
}

こうすべきなんじゃ?

for i := 3; float64(i) < math.Sqrt(float64(n)); i += 2 {
flg = true
for _, j := range primes {
if n%j == 0 { return false } // 追加
if int64(i)%j == 0 { flg = false }
:

そりゃ n までの素数を全部計算してからチェックしたら遅いわな
2016/01/27(水) 00:44:58.41ID:YbPGx/2n
>>492
よく考えたらprimeかどうかだけならそのifないと圧倒的に効率悪かったな
助かったサンクス
2016/01/27(水) 10:03:42.93ID:PS/Qpp4W
>>493 はフィボナッチでも劇遅糞プログラミングしそう
2016/01/27(水) 11:55:10.02ID:ChRzt0VQ
>>493
それで結果はどうなったの?rubyより早くなった?
2016/01/27(水) 21:15:12.05ID:hT8Bs+OE
>>495
素数: 1853028778786433 について試してみた
$ time ruby -e 'require "prime"; puts 1853028778786433.prime?'
4.61s user 0.08s system 99% cpu 4.700 total
golang の方は有意な時間で判定できなかった。
逆に小さな約数を持つ場合だと golang のが早かったりする。
一体どうやったらこんなに速くなるんだ・・・
2016/01/27(水) 21:33:03.27ID:hT8Bs+OE
と思って prime.rb を参考に改良した
$ time ./prime
1853028778786433 is prime!./prime4 0.18s user 0.01s system 98% cpu 0.189 total
いい感じ!アドバイスくれた人サンクスでした
コード: http://play.golang.org/p/-8oZ5IaC60
2016/01/27(水) 23:10:29.76ID:qL6rtn4g
どれだけ高度なコンパイラを使おうとアルゴリズムがダメならインタプリタに負けるって事がはっきりわかんだね
2016/01/30(土) 13:13:18.17ID:dxvhMaRr
http://play.golang.org/p/WgXW-WWQsX
2016/01/30(土) 14:11:30.69ID:VBtK9+ST
>>499
細かいところだがサンクス
ちなみにどれぐらい速度変わった?
今出先で調べられないんで気になる
2016/01/30(土) 18:06:51.65ID:dxvhMaRr
ごめん、はやくなってなかったorz
2016/02/03(水) 01:00:13.99ID:RekMB9Ax
goは言語仕様が絞られて素敵だけど、
いざ使うとなるとやっぱりメタプログラミングに弱いのが辛い。
リフレクションも使いづらいし、ジェネリクスがほしい。
せめてelxirのマクロみたいな機能でもほしい。
2016/02/03(水) 01:10:28.85ID:sGnqiCrl
groovy でも使っとけ
2016/02/03(水) 19:27:02.90ID:8oEH7nQt
     ,_---~~~~~----._    
 _,,_,*^____   _____``*g*\"*,
/ __/ /'   ^. /   \ ^@q  f
[ @f | @))  | | @))  l 0 _/ 
\`/  \~____ / __ \_____/  \ 
 |      _l__l_      I 
 }     [______]      I 
 ]      | | |      |  お年寄り向け言語に文句言うな
 ]       ~ ~       | 
 |              | 
  |              |
2016/02/04(木) 08:13:31.10ID:MUd/RGoB
go は c の代替って感じだからな。
2016/02/04(木) 17:21:48.10ID:ob+62gtm
>>504
plan9おじさん
2016/02/04(木) 19:16:26.71ID:qHo6spb8
go buildで最適化オプションないよね。

他言語の最適化おプチョンって何してるかわからんけど(デバッグ機能とか削ってんの?)、
実はgoってもう少し早くなるんじゃないかと思うんだが。
2016/02/04(木) 20:22:00.20ID:7gWb47bj
gccgo でも使えばいいんじゃない
2016/02/06(土) 15:12:23.11ID:+oaiB5r1
gccgo はversion古すぎてむしろ遅い
510デフォルトの名無しさん
垢版 |
2016/02/18(木) 07:25:41.93ID:R9/9Yxv0
go 1.6 age
ttps://blog.golang.org/go1.6
511デフォルトの名無しさん
垢版 |
2016/02/18(木) 17:06:46.52ID:45GMtAZP
1.6は少し難産だったかな。
2016/02/25(木) 14:07:18.05ID:1iIBqXg3
Goってサンプルコード見た感じ
プロトタイプベースの動的型付けでJavaScriptみたいに見えるけど
ぜんぜん違う?
2016/02/25(木) 18:19:46.58ID:7HmTbcPG
うん、全然違う。
2016/02/26(金) 02:02:53.28ID:xrOnn7Vq
>>511
一番すごい変更はvendoringかな。
コンパイル速度も速いままだし。

あと開発環境はvisualStudioCodeのgoサポートが一番いい気がするんだけどどう?
debugが一応スタックトレースくらいは見れるから
code readlingしやすくなったかも
2016/02/27(土) 10:39:29.98ID:HPxqSVef
>>514
なれるとvim。
2016/02/27(土) 13:19:34.48ID:yMp5JRD4
俺もVimだな
2016/02/27(土) 13:25:33.79ID:kW+aRgio
>>516
vimは環境構築がよくわからなくて使いこなせない。
一から構築するとしてどこみりゃいいの?
2016/02/27(土) 14:19:56.77ID:HPxqSVef
>>517
ttps://github.com/fatih/vim-go
2016/03/01(火) 01:00:37.90ID:29/rUB4E
for r := range "よろしく" {
fmt.Printf("<%c>¥n",r)
}

と、書くと実際にはrに入るのはindexなので期待通りに動きません
goにおいて多値を帰す場合は受け取り側もその数分用意しなくてはいけない
のが仕様のはずですが、
これは組み込みの機能なので対象外の動作です。
せめてrにはvalueが入るのが基本動作なら良かったんですが
このような挙動なのにはなにか理由があるんでしょうか?
教えて下さい
2016/03/01(火) 07:46:36.94ID:6qCWzYt3
文字列がインデックス付きデータだからでしょ。

_, r := range "よろしく"

では駄目なの?
2016/03/02(水) 02:02:01.07ID:O+5v5XDS
>>520

いえ、聞きたいのは
rangeの機能が通常のGoとしての関数の仕様と
異なる動作にしたのはどんな理由があってのことなのかと。

関数がエラーを含んだ多値を返すことを考慮して受け取り側は常に何個の返り値が返るか
意識することが必須ですが、
rangeは2つめの返り値を'_'で受取る必要が
なくても唯一動くことが許されていますよね
2016/03/02(水) 02:36:27.86ID:KGp7/CHI
そもそもfor文なんだからインデックスだけ使う場合はそういう表記でも違和感なくね?と思うんですが
2016/03/02(水) 07:53:32.49ID:4uoCKH4m
>>521
インデックスは一つ目だぞ
2016/03/02(水) 07:57:52.01ID:WtpIOuzZ
>>521
型アサーションも第二返り値を付けると失敗時に panic せずに失敗したことを真偽値で返すし、
開発者はそうすることで利便性が上回ると判断したんでしょ。
2016/03/02(水) 17:47:47.86ID:O+5v5XDS
>>524
あっ型アサーションもそういう挙動だったですね。
失念してました。
でもrangeで多値返却の省略可能な構文はメリットが思いつかなくないですか?
2016/03/02(水) 19:29:42.93ID:LM//BLJD
>>525
型アサーションだけでなく comma OK 構文全部だね。

>rangeで多値返却の省略可能な構文はメリットが思いつかなくないですか
型アサーションの挙動を見るに、省略してると言うより返り値の数によって別の処理を呼び出してる感じだけど、
まあ、パターンを覚えてしまえば余計なもの書かなくて済んで楽だよ。
2016/03/06(日) 23:04:28.69ID:b6Djrwpa
Goで使われたものでよく使ってるものとか面白いものとかないですか?
俺がよく使うのはghqです。

ghq : Manage remote repository clones

とりあえず試しにgit cloneするのに便利。後で迷わないし。
pecoと組み合わせで使っています
528デフォルトの名無しさん
垢版 |
2016/03/08(火) 07:20:41.16ID:UEJ8DCRQ
仕事で使う使い捨てツールはgoで書いてるよ
rubyとかで書くと処理遅いから。
2016/03/08(火) 11:28:08.83ID:MTUVFWu6
マッハの高速
2016/03/08(火) 11:30:57.60ID:MTUVFWu6
ruby 2.2おそいのか。ハァー
2016/03/08(火) 11:33:23.15ID:MTUVFWu6
【アニメ】 マッハGoGoGo_OP - YouTube
https://www.youtube.com/watch?v=cPR45cBkRq4
532デフォルトの名無しさん
垢版 |
2016/03/11(金) 22:39:08.10ID:nLZDtom/
http://www.amazon.co.jp/gp/aw/d/4621300253/
2016/03/12(土) 12:14:25.10ID:SnyNHJuk
日本語版でたのか。原著出てから4か月ちょっとなので結構はやかったね。
http://www.informit.com/store/go-programming-language-9780134190440
2016/03/12(土) 14:29:02.35ID:BDXKc72j
http://postd.cc/why-go-is-not-good/
こういう不利な点があっても使われる理由ってなんだと思う?
2016/03/12(土) 14:48:41.88ID:SnyNHJuk
よく言われるのは、サーバーサイドでシングルバイナリのデプロイが楽とか。
unix上では、etcdやdockerコマンドみたいなところで使われてるよね。
GCもどんどん進化してるから、データストア的な大量メモリを扱うデーモンにも使えるようになってきてる。
2016/03/12(土) 20:34:31.86ID:DTB2KgOx
それTheGoProgrammingLanguageの翻訳だよね?
2016/03/12(土) 21:00:42.17ID:+ss4n7rx
早とちりして発売されたのかとおもったら、6/15予定だった。
538デフォルトの名無しさん
垢版 |
2016/03/15(火) 22:07:51.01ID:vgWvBE4N
4月にも初心者向けの本出るのね
2016/03/16(水) 10:59:19.14ID:Tb17X3fe
だれかaltGo作ってくんないかな。
Goのエコシステムは最高だから、あとはもっとメタプログラミング強くしてほしい。
ジェネリクス付けて。

とTypeScript触りながら思いました。
2016/03/19(土) 02:08:18.93ID:lSlighbA
cからc++みたいに、go templateになりそう。
2016/04/05(火) 21:09:51.29ID:5i0FcrUo
原書 2015/11/5
http://www.amazon.co.jp/dp/0134190440/
翻訳 2016/6/15
http://www.amazon.co.jp/dp/4621300253/

原書カスタマレビューの「神話本の著者」はおおげさすぎるだろ

What a surprise to see the author of the mythic ≪ The C Programming Language ≫ come back for a new language
2016/04/05(火) 22:39:31.14ID:gPD3pwmd
まあカーニハンはかなりのビッグネームだし
2016/04/05(火) 22:44:14.08ID:mDmXAcnH
goってあんまり言語仕様が変化しないイメージだから
本は作りやすそう。
goの今後の予定ってドコに書いてるんです?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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