タグ

GoとGo言語に関するkarahiyoのブックマーク (8)

  • イベントループなしでのハイパフォーマンス – C10K問題へのGoの回答 | POSTD

    この投稿は、私が去年OSCONで行ったプレゼンテーションを基に作成しています。プレゼンよりは簡潔に編集し直し、プレゼン後にいただいたいくつかのフィードバックに応える形で記事を書いています。 Go言語に関してよく言われるのは、Go言語はサーバでうまく機能し、静的なバイナリや強力な並行処理、高いパフォーマンスを見せくれるということです。 この投稿では、その後半の2つの項目に関して焦点を当てます。プログラマとってGo言語とそのランタイムは、スケーラブルなネットワークサーバをスレッド管理やブロッキングI/Oを気にせずに書くのにどんなに有効かを説明していきます。 効率的なプログラミング言語に関しての議論 技術的な話に入る前に、Go言語をターゲットにしたマーケットを説明する2つの議論に関してお話したいと思います。 ムーアの法則 画像は以下より引用; 2005年5月にHerb Sutter氏が書いたDr

    イベントループなしでのハイパフォーマンス – C10K問題へのGoの回答 | POSTD
  • Go言語でプラグイン機構をつくる

    dullgiulio/pingo Go言語でのプラグイン機構の提供方法は実装者の好みによると思う(cf. fluentd の go 実装におけるプラグイン構想).Go言語はクロスコンパイルも含めビルドは楽なのでプラグインを含めて再ビルドでも良いと思う.が,使う人がみなGo言語の環境を準備しているとも限らないし,使い始めてもらう障壁はなるべく下げたい.プラグインのバイナリだけを持ってこればすぐに使えるという機構は魅力的だと思う. Go言語によるプラグイン機構はHashicorpの一連のプロダクトやCloudFoundryのCLIなどが既に提供していてかっこいい.net/rpcを使っているのは見ていてこれを自分で1から実装するのは面倒だなと思っていた. dullgiulio/pingoを使うと実装の面倒な部分を受け持ってくれて気軽にプラグイン機構を作れる. 使い方 サンプルに従ってプラグインを

  • あなたがGOROOTを本当に設定しなくていい理由

    この記事は、Dave Cheneyさんの記事You don’t need to set GOROOT, reallyの非公式翻訳です。詳細は上記記事をご参照下さい。 Previous GoCon報告会で報告させて頂きました。Next #golang htmlパッケージについて

  • Go言語がダメな理由 | POSTD

    私はGo言語が気に入っていますし、多くの場面で使用します。現にこのブログもGoで書いています。Goは便利な言語ですが、優れた言語とは言えません。つまり、悪くはないけれど、十分ではないということです。 満足できない言語を使用する際は注意が必要です。注意を怠ると、その言語を次の20年間使い続ける羽目になるかもしれないからです。 私のGoに対する主な不満を文にまとめました。既に何度も指摘されていることも含まれていますが、中にはこれまでほとんど話題になっていない指摘もあります。 これから列挙する全ての課題には既に解決策があることを示すため、私が優良な言語と考えるRustやHaskellと比較して説明します。 汎用プログラミング 課題 誰でもさまざまな事柄に幅広く対応できるコードを記述したいと考えます。例えば数のリストの合計を求めるために定義した関数が、小数、整数、またその他の合計を求められるもの

    Go言語がダメな理由 | POSTD
  • Go Playground - The Go Programming Language

    Tips for writing clear, performant, and idiomatic Go code

    Go Playground - The Go Programming Language
  • Goで使ってみたライブラリとツールの感想をそこはかとなく書くよ - 絶品ゆどうふのタレ

    会社の方でRDS TestRunnerというツールをGoで実装したわけですが、今回の実装にあたってGoの色々なライブラリ/ツールを見て回った印象として、まだまだ群雄割拠状態だなーという感じでした。 これからスタンダードが決まっていくのでしょうが、今後も考えて各ライブラリ等を利用した感想を共有しておくのは有益そうなので、書き残しておくことにします。 ちなみに、今回はかなりの率でHashiCorpのmitchellhさん作のライブラリやツールを利用していますw なので、ほぼこの方の紹介になってますね。。。 コードもterraformなどの実装をかなり参考にさせていただきました。 やはりGoでのプロダクト経験が豊富な人の実装は、色々参考になりますね(^^ゞ ライブラリ HCL (HachiCorp Configuration Language) 今回のConfig書式とそのパーサライブラリには、

    Goで使ってみたライブラリとツールの感想をそこはかとなく書くよ - 絶品ゆどうふのタレ
  • 実践Go言語 - golang.jp

    Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 はじめに Goは新しい言語です。既存の言語からアイデアを取り入れてはいますが、他の言語にはない機能をもっているため、実際に記述されたGoのプログラムは、他の類似した言語とはだいぶ異なるものになります。C++またはJavaプログラムをGo言語へ直接変換しても、あまりうまくは行きません。JavaのプログラムはあくまでJavaで書かれており、Go言語で書かれてはいないからです。一方で、Go側の視点からこの問題を考えると、変換に成功したとしても、全く違うプログラムができてしまうことになります。言い換えると、Go言語を使いこなすには、Go言語の機能や文法を理解することが重要です。おなじく、Go言語

  • シェルスクリプトでGo言語のツールをクロスコンパイルしてGithubにリリースする

    シェルスクリプトでGo言語のツールをクロスコンパイルしてGithubにリリースする [@motemen]()さんの“Wercker で Goプロジェクトをクロスコンパイルし,GitHub にリリースする - 詩と創作・思索のひろば (Poetry, Writing and Contemplation)”を手元からやる. Werckerからリリース良いと思うけど,自分はリリースは手元で管理したい.その辺は毎回同じスクリプトでやってるのでまとめておく.なお,コードは全てtcnksm/go-distribution-scriptsにある. クロスコンパイル 基はHashicorpのやり方を真似してる. まず,クロスコンパイルはmitchellh/goxを使う.goxは複数プラットフォームの並列コンパイルと出力先の設定の自由度が気に入ってずっと使ってる.何よりシンプルで良い.以下のようなスク

  • 1