タグ

Goに関するmnruのブックマーク (19)

  • Golang and Julia: Frenemies?

    Two modern languages, two ends of spectrum As Go approaches its second version, and Julia approaches version 1.0 the differences between Julia and Go spring to the front of my mind. I talked to a lot of people at JuliaCon and was surprised to find that almost no one had used the Go programming language for any serious work. Julia was invented in 2012 so it no surprise that everyone had programming

    mnru
    mnru 2018/08/21
  • GoのChannelを使いこなせるようになるための手引 - Qiita

    Go使いたくなる理由の一つに、マルチスレッドプログラミング的なものを高速な言語で安全に実装したいというのがある。Goにおいてそれを支えるのが、自前で実装した軽量スレッドといえるgoルーチンと、mutexなどのロックの代わりに使えるChannelという概念だ。 実際に実装するときに、Goルーチンは難しくないが、Channelを使うのは割と知識と経験が必要なのでここでは、Channelについてすこし詳しく書いてみる。 Message Passing まずは理論から。 Goのチャネルなどのロックを使わない方法の並行処理はMessage Passingと呼ばれている。 以下の英語Wikipediaにあるように数学的な理論にもなっているしっかりした枠組み。 ErlangのActor Modelなどもこの仲間。GoのチャネルとActor Modelは、実は、同等の概念で表現方法が違うだけらしい。 (

    GoのChannelを使いこなせるようになるための手引 - Qiita
    mnru
    mnru 2017/09/12
  • GoでGUIアプリを作ろう

    GoGUI作る決定版! ほとんどのプラットフォームで動くGUIネイティブアプリを作れる qtパッケージの紹介。 GitHub: https://github.com/therecipe/qt クロスプラットフォームなGUIライブラリ GUIをクロスプラットフォーム対応するのはとても膨大なAPIをカバーするため 多くは限定的な機能提供にとどまるパターンがとても多いです。 その中でQtは20年以上の歴史を持ちかなり広範なプラットフォームをサポートした C++製のGUIフレームワークです。GUI機能そのものがフルスタックな上、 画像処理、ネットワークやオーディオ・ビデオなどのサポートも内包しています。 therecipe/qtはこのQtをGoから使えるようにラップしたパッケージです。 therecipe/qtがサポートするプラットフォームは以下 (家Qtはもう少し多い) Mac OS X(m

    mnru
    mnru 2017/08/31
  • Go言語のメモリ管理

    ソフトウェアにとってメモリは不可欠です。 実行する命令も、メモリにロードしなければ実行できません。 ソースコードに書かれた定数値も、いったんメモリにロードしないと使えません。 関数を呼び出すにも、スタックと呼ばれるメモリ領域が必要です。 スタック以外に、ヒープと呼ばれるメモリ領域が必要なこともあります。 今回は、Go言語のプログラマーが作成するプログラムの下で、どのようにメモリが管理され利用されるかを探ります。 Go言語のメモリ管理というとガベージコレクターの話を思い起こすかもしれませんが、ガベージコレクターについては連載では取り上げません。 メモリ確保の旅 コンピューターに接続されている物理的なメモリチップが、どのような過程を経てプログラムで使われるのか、順番に見ていきましょう。 (1): カーネル 最近のオペレーティングシステムでは複数のプロセスを同時に実行できます。 それらのプロセ

    Go言語のメモリ管理
    mnru
    mnru 2017/06/10
  • Go言語でお手軽スクレイピング | LINKBAL Blog

    準備 今回は下記のパッケージを利用させていただいております。 https://github.com/PuerkitoBio/goquery パッケージインストール [code lang=text] go get github.com/PuerkitoBio/goquery [/code] ソースコード 実行結果 さいごに 非常に簡単にスクレイピングを行うことができました。 Go言語は並列処理が強みの一つなので、並列でスクレイピングすることにより、 時間を短縮することができますね。(用法用量は守って正しく…) 弊社ではエンジニアを大募集しております。 ご興味ある方はこちらからお問い合わせください。 http://linkbal.co.jp/recruit/ ※ 著作権注記 The Go gopher was designed by Renee French. (http://reneefre

    Go言語でお手軽スクレイピング | LINKBAL Blog
    mnru
    mnru 2017/06/03
  • 「Go っていいの?」への応え

    Go Conference 2017 Spring で Lightening Talk で話し足りなかったことを書いておく。 Go で書いたと話すと「Go っていいの?」と聞かれることがある。まともに伝えたい相手であれば、この質問には直接答えずに「どんな課題があって、Go はどのようにその解決に役立ったのか」を答えている。 要素技術の選択には、かならず文脈が影響する。Matz がウェブアプリを作るのと、私がウェブアプリを作るのでは、そもそもの前提が大きく違う。あと、スキルが低い奴の話なんて、みたいな言われ方をされることもある。それはまあ正しいんだけど、そのスキルアップに1年かけてたら預金がなくなってしまうのだ。いや、半年ももたないか。いずれにしても、現時点でのスキルをスタート地点として、納期までに成果物を仕上げて、現金を獲得する必要がある。そういうのも文脈のひとつだ。 私は Python

    mnru
    mnru 2017/03/31
  • 「みんなのGo言語」を読んだ - massa142's blog

    みんなのGo言語【現場で使える実践テクニック】 作者: 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太,稲葉貴洋出版社/メーカー: 技術評論社発売日: 2016/09/09メディア: 大型この商品を含むブログ (3件) を見る 業務でGoを書くことになったのがきっかけで、「みんなのGo言語」を読んだ。 Goの経験は、1年ちょっと前に A Tour of Go やって、CLIツールとか書いたことある程度だった。 github.com 結果として、このから Goらしいプラクティス 仕事で使えるテクニック を知ることができたおかげで仕事が捗った。 タイトルにもある通り、「現場で使える実践的なテクニック」という趣旨が各章で意識されていた。薄いだけどカバー範囲が広く内容が詰まっていて、とても読み応えがある。 特に「第1章 Goによるチーム開発のはじめ方とコードを書く上での心得」と

    「みんなのGo言語」を読んだ - massa142's blog
    mnru
    mnru 2017/02/28
  • Singleton Pattern in Go

    Singleton Pattern in Go Jul 12, 2015 The Go Language growth has been phenomenal in the last few years, and is attracting language converts from all walks of life. There has been a lot articles recently about companies switching from Ruby, and experiencing the new world of Go and it’s parallel and concurrent approach to problems. In the last 10 years, Ruby on Rails has allowed many developers and s

    Singleton Pattern in Go
    mnru
    mnru 2017/02/06
  • GoのためのGo

    Go言語はシンプルさを念頭にデザインされた言語です。仕様は単純明瞭さのために小さく収められていますが、そのため表現力に欠けているとか、コードが冗長になるという印象を持つ人も多いでしょう。有名なところでは、ジェネリクスや例外といった機能が(今のところ)存在しないことが問題にされることが多いようです。 一般に、ソフトウェアエンジニアリングというものは書かれる言語だけに依るものではありません。視点を拡げてGoを取りまくツール群を含めて見てみると、go fmt や goimports といったツールが広く使われていること、また go generate コマンドの存在などを見ても、Goという言語には、人間のプログラミングを機械によってさまざまな面から補助しようという態度があります。

    mnru
    mnru 2017/01/28
  • Making the move from Scala to Go, and why we're not going back

    24 Jan 2017 · 15 min read · Mariano Gappa Making The Move From Scala To Go, And Why We’re Not Going Back UPDATE: This blogpost has received a lot of attention since it's been published, including on Hacker News, Golang Weekly and Scala Times; thank you! Unfortunately, some readers have considered it strictly an attack on the Scala community and/or a biased episode of language war. This was not the

    Making the move from Scala to Go, and why we're not going back
    mnru
    mnru 2017/01/26
  • なぜGo言語 (golang) はよい言語なのか・Goでプログラムを書くべき理由 | yunabe.jp

    結論としてはGo言語には以下のようないくつかの長所があり、現実路線で非常にバランスがとれた言語だと思います。 これらの長所のために失われたメリットも当然いくつもありますが、一定程度以上の規模のプロジェクトで利用する言語の選択肢としては現存するプログラミング言語の中では一番か二番目によいのではないかと思います。 コンパイルが速い (vs. C++) GCとメモリ安全性 (vs. C++) 妥当で現実的なレベルの型安全性 (vs. Python/Ruby) 実行時パフォーマンスが良さ (vs. Python/Ruby) 現実問題、ある程度の規模と期間のプロジェクトになると型検証があるとリファクタリングなどがだいぶ楽になるのでありがたい。 型があるので自然と実行時パフォーマンスも良い 標準ライブラリが整備されている (vs. C++) むしろ標準ライブラリにjsonのparserすら存在しないC

    mnru
    mnru 2017/01/17
  • A Tour of Go

    A Tour of Go

    mnru
    mnru 2017/01/17
  • Golangでインタプリタ作ってみた - Qiita

    突然ですが、先日行われた学生向けのコンテストにおいてGolang製インタプリタ(Copal)で参戦しました。 当日の発表では、Gopher君でなんとか笑いを取ることが出来たので、Gopher君に感謝です。 質疑応答で色々と言われるかなと覚悟してましたが、無難な質問で助かりましたw。 後ほどTwitterを少し拝見すると「Golangのラッピング」じゃない?と思われた方もいました。 はい、そのとおりです。 開発期間がアレなんで、現状が精一杯でGolangと差別化する機能を搭載できませんでした。 あと、テストコード・ベンチマークも1行も書いてないという出来なので、正直恥ずかしいです。 (想定はしていましたが、質疑応答でここらへん聞かれなくてよかった…。) さて、前置きはここまでにして、Golang歴半年+αの私が大学のテスト期間の空き時間を使って2,3週間ほどで作ってみたインタプリタをちょっと

    Golangでインタプリタ作ってみた - Qiita
    mnru
    mnru 2017/01/13
  • C++プログラマ向けGo講座 - golang.jp

    Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 Go言語は、システムプログラミング言語であり、目標は、C++のような多目的システム言語です。このドキュメントは、熟練したC++プログラマ向けに書かれたもので、GoC++との違いについて説明します。両言語の類似点については、このドキュメントの範囲外です。 より一般的なGo言語の手引きは、チュートリアルまたは実践Go言語をご覧ください。 Go言語の詳細な解説は、Go言語仕様をご覧ください。 コンセプトの違い Go言語には、コンストラクタやデストラクタを持つようなクラスはありません。Go言語では、クラスメソッド、継承によるクラスの階層、仮想関数が無い代わりとして、あとで解説するインタフェース

    mnru
    mnru 2015/07/31
  • Go の interface 設計 - Block Rockin’ Codes

    history 13/3/31 Tag について追加 intro Go を触ってて interface を用いた設計がまだまだよくわかってなかったので、一旦まとめることにしました。 Go には明示的な継承の機能は無く、 interface も例えば Java のそれとはかなり毛色が違うので、(Class ではなく) Struct の設計に結構癖があると感じます。 Go の interface は言語設計的にもかなり尖っていて、 Go という言語を強く特徴付けていると同時に、 Go 言語自体の開発者たちもこの機能をかなり重要視しています。 例えば、 Go の開発者の一人である Russ Cox 氏によれば Go's interfaces―static, checked at compile time, dynamic when asked for―are, for me, the most

    Go の interface 設計 - Block Rockin’ Codes
    mnru
    mnru 2015/04/20
  • Contiguous stacks in Go

    Lately I’ve been messing with Go and I really like it. The 1.3 release is due in June 2014 and among other performance improvements, the runtime will implement contiguous stacks. Let’s see what this is about. Segmented stacks The 1.2 runtime uses segmented stacks, also known as split stacks. In this approach, stacks are discontiguous and grow incrementally. Each stack starts with a single segment.

    mnru
    mnru 2014/03/29
  • Goプログラミング言語のチュートリアル - golang.jp

    Go言語とは、Googleが開発した新しいプログラミング言語です。 当サイトではこの新しい言語についての情報を集約していきます。 このサイトの更新が滞っており、情報が古くなっておりますのでご注意ください。 はじめに このドキュメントはCまたはC++プログラマ向けに書かれたGo言語のチュートリアルです。Go言語の全般的なガイドではありません。現在のところ全般的なガイドに一番近い資料はGo言語仕様です。このチュートリアルを読み終えたら、次に実践Go言語を読んでください。こちらにはもっと詳しい言語の活用方法や、Go言語のプログラミングスタイルやイデオムについての記載があります。またGo言語の3日間学習コースのスライドも合わせてご覧ください。そこではGo言語のバックグラウンドや数多くのサンプルを紹介しています。(Day 1, Day 2, Day 3) この資料では、一連のサンプルプログラムを通し

    Goプログラミング言語のチュートリアル - golang.jp
    mnru
    mnru 2013/12/03
  • Go 1.2 is released - The Go Programming Language

    Andrew Gerrand 1 December 2013 We are pleased to announce the release of Go 1.2, the latest stable version of the Go Programming Language. Binary distributions may be downloaded from the usual place or if you prefer to compile from source you should use the release or go1.2 tags. This new release comes nearly seven months after the release of Go 1.1 in May, a much shorter period than the 14 months

    Go 1.2 is released - The Go Programming Language
    mnru
    mnru 2013/12/03
  • A Tour of Go

    A Tour of Go

    mnru
    mnru 2013/09/14
  • 1