タグ

golangに関するel-condorのブックマーク (18)

  • 多様なプロトコルと 駆動モデルをサポートするIoTゲートウェイの開発と運用の知見

    Go Conference 2023, "Go"ld Sponsor Session https://gocon.jp/2023/sessions/A5-SP/

    多様なプロトコルと 駆動モデルをサポートするIoTゲートウェイの開発と運用の知見
    el-condor
    el-condor 2023/06/02
    golangの良さがよくわかる資料で興味深かった。これでもう少し型付けと非同期処理の競合問題とにコンパイラがうるさすぎるくらい仕事してくれるんだったら好みの言語になるんだよなあ(音楽性の違い)
  • Go言語を嫌う6個の理由 - さめたコーヒー

    ある仕事でそれまでRubyで書かれていたサーバーサイドをGo言語ですべて書き直すことになって、それまでRubyのコードを書いていた僕はそのままGo言語を書くことになった。その仕事そのものはお客様(僕は外部委託のエンジニアとして参画していた)との関係も良好で素晴らしい仕事をさせてもらうことができたと思っているが、Go言語だけは好きになれなかった。 はじめは流行っている言語だから何か素晴らしい魅力があるのではないかと期待していた。しかし書き始めるうちにどうも自分には合わないなと思うようになり、2年ほど書いて案件の契約が終わる頃にはGo言語でサーバーサイドを書くことは危険だとさえ思うようになった。 あれから数年がたちますますGo言語の案件は増えている。サーバーサイドを書く選択肢としてGo言語を選択する会社も増えている。しかし当にそれでいいのか?ただ流行っているからという理由だけで選択するにはあ

    Go言語を嫌う6個の理由 - さめたコーヒー
    el-condor
    el-condor 2021/09/17
    大体似たような感想で、私も一定の良さは認めるが音楽性が合わない派。付け加えるなら、型が煩い割に静的検査が弱い。個人的には、動くものを早く作るならRuby、性能や静的検査が必要ならRustでその中間択は欲してない
  • Docker、Apple M1対応について説明

    Dockerは11月16日(米国時間)、「Apple Silicon M1 Chips and Docker - Docker Blog」において、MacDockerコンテナ環境を構築できるツール「Docker Desktop for Mac」におけるApple M1への対応についてどのような課題があるのかについて伝えた。正式なプロダクトの登場まではまだ時間がかかると見られるが、現在どの段階にあり、課題として何が残っているのかが簡潔に説明されている。 Dockerが説明している内容の主なポイントは次のとおり。 Docker DesktopはバックエンドにGo、ダッシュボードにElectronを使用している。これらプロジェクトは現在Apple M1への対応を進めており、Docker側はこれらプロジェクトの進捗に注力している プロダクトの品質を確保するために自動テスト環境を構築する必要があり

    Docker、Apple M1対応について説明
    el-condor
    el-condor 2020/11/19
    なるほど頑張ってほしい
  • RustのgRPCがGoよりも遅い?

    夏のある日、GogRPCが、Rustよりも2倍早いという記事を見つけました。「おいおい、測定ミスだろ」と強がっていましたが、日々、不安は高まっていきます。真実の愛であれば、疑うことは許されませんが、エンジニアの言語への愛など、所詮、状況に応じて使い分けるような打算的な愛。確認してみました。 性能測定結果上記の記事と同じく、gRPCのサーバソフトウェアは、Gogrpc-goRustはtonicのgreeterの性能を、gRPCのクライアントソフトウェアghzを使って、測定しました。ハードウェアは、AWSを利用し、サーバはc5a.8xlarge(32 vCPU/64 GiB)インスタンス、クライアントはc5a.16xlarge(64 vCPU/128 GiB)インスタンスを使いました。 1台のクライアントインスタンスは、同時に3,000個のgRPCクライアントを立ち上げ、合計で6,000

    RustのgRPCがGoよりも遅い?
    el-condor
    el-condor 2020/09/10
    これはコントリビューションチャンスなのでは。tokioはRustの非同期IOのデファクトスタンダードだし。
  • Let's EncryptがはまったGolangの落とし穴 - ぼちぼち日記

    0. 短いまとめ 300万以上の証明書の失効を迫られたLet's Encryptのインシデントは「Golangでよくある間違い」と書かれているようなバグが原因でした。 1. はじめに、 Let's Encryptは、無料でサーバ証明書を自動化して発行するサービスを行う非営利団体として2014年に設立されました。 2015年にサービス開始されると証明書の発行数はぐんぐん伸び、先月末のプレスリリースでは累計10億枚のサーバ証明書を発行したことがアナウンスされました「Let's Encrypt Has Issued a Billion Certificates」。CTLogの調査から、2020年2月末の時点では有効な全証明書の38.4%がLet's Encryptの証明書であるとみられています「Certificate Validity Dates」。 無料の証明書を提供してもらえるのは非常に嬉し

    Let's EncryptがはまったGolangの落とし穴 - ぼちぼち日記
    el-condor
    el-condor 2020/03/09
    これRustだったらコンパイラに怒られる気がする。
  • Go言語で扱えるデータフレーム厳選4つ - Qiita

    はじめに データサイエンティストでなかったとしても、数値データを使って様々な解析をする際には CSV ファイル等ファイルを読み込み、数値の配列としてメモリに保持して、それらをループ等で利用して解析を行っておられると思います。 その際、配列は1次元目に行、2次元目に列、を格納するのが一般的です。多くのケースではこの方法で事足りるのですが、解析を行ううちに「列としてデータの固まりを扱いたい」「ラベル付けされた列を扱いたい」と感じる事が出てくると思います。 これを簡単にしてくれるのが「データフレーム」です。 データフレーム4種 記事では Go 言語から扱えるデータフレームを4つご紹介します。 QFrame https://github.com/tobgu/qframe QFrame は、フィルタリング、集計、およびデータ操作をサポートするイミュータブルなデータフレームです。 QFrame での

    Go言語で扱えるデータフレーム厳選4つ - Qiita
    el-condor
    el-condor 2019/12/18
    “ちょっとした事で絡むな~”
  • Goの開発環境にAWS Cloud9をつこうてみる | DevelopersIO

    どうも、moriです。 AWS SDK for Goを使う開発で開発環境 (IDE)としてAWS Cloud9を使ってみたので、作成方法と実際にコードを書いてデバッグ実行するところまでを紹介したいと思います。 AWS Cloud9概要 ブラウザのみでコードを記述、実行、デバッグできるクラウドベースの統合開発環境 (IDE) です。 コードエディタ デバッガー ターミナル が内包されており、多くの言語ツールがサポートされています。サポートされているブラウザは、Google Chrome、Safari、Firefox、Microsoft Edge の最新バージョンです。 大きな特徴として、以下が挙げられます。 ペアプログラミングサポートをサポートしている 開発環境をチームと共有し、ペアプログラミングを一緒に行うことができます。 リアルタイムで確認できるので、拠点の離れたメンバーともやりやすいか

    Goの開発環境にAWS Cloud9をつこうてみる | DevelopersIO
    el-condor
    el-condor 2019/09/25
    AWSなのにクラウド無いんですとはこれ如何に
  • Go が for ループをやめるために足りないもの - methaneのブログ

    ジェネリクスの話題になると常に出てくるのが、 for ループの代わりに関数型スタイルで書きたいという要望です。 for ループで書くのは、可読性が悪く、筋力がいるとまで言う人もいます。 しかし、ジェネリクスが追加されても、このスタイルのプログラミングは実用的にはなりません。ジェネリクス以外にも足りない部分がたくさんあるのです。 例えば、次のようなコードを考えてみましょう。 type PointLog struct { ID int64 UserID int64 Point int32 } // 今の書き方 func UserTotalScore(log []PointLog, userID int64) int64 { var t int64 = 0 for _, p := range log { if p.UserID == userID { t += int64(p.Point) }

    Go が for ループをやめるために足りないもの - methaneのブログ
    el-condor
    el-condor 2019/02/20
    真っ当な議論では/そう言えばrubyのブロックも相当な苦労をして実装されているのであって、golangの仕様と実装の簡潔性の哲学と相容れるかというとねえ。言語によって「簡潔性」の哲学の意味するところは随分違う。
  • Go言語がダメな理由 | POSTD

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

    Go言語がダメな理由 | POSTD
    el-condor
    el-condor 2019/02/04
    Rustのunsafeは本当に良い機能だと思う。みんな所有権のことばかり言うけれど(もちろんこれも良いものだ)、unsafeのことも忘れないであげてください
  • Big Sky :: 書評「Go言語による並行処理」

    O'Reilly Japan, Inc. 様に献頂きました。ありがとうございます。 そして献頂く際にお声を掛けて頂いた、書の翻訳を担当された ymotongpoo さんにもお礼を申し上げます。ありがとうございます。 書の訳は非常に素晴らしく、とても原文が英文であったとは思えないほど綺麗で、読んでいく中で「原文でどの様に表現されているんだろう」といった引っかかりも無く、とてもスムーズに読み進められました。 Go 言語に関わって随分と長くなってきました。初めて Go を知ってからユーザがどんどん増える様を見る事が出来るのは正直に言って非常に嬉しいです。 ふと Go の魅力は何かと聞かれたら幾つか挙げる事が出来ますが、間違いなく選ぶのが「非同期処理の簡単さ」です。これまで多くの開発者が OS スレッドで実現してきた非同期処理を、Go 言語は少ないイディオムとインテリジェントなランタイムを

    Big Sky :: 書評「Go言語による並行処理」
    el-condor
    el-condor 2018/10/22
    面白そう。
  • GoLand by JetBrains: More than just a Go IDE

    The complete Go IDE

    GoLand by JetBrains: More than just a Go IDE
    el-condor
    el-condor 2018/06/28
    へえGoLangのIDE。知らなかった
  • GitHub - goby-lang/goby: Goby - Yet another programming language written in Go

    Goby is an object-oriented interpreter language deeply inspired by Ruby as well as its core implementation by 100% pure Go. Moreover, it has standard libraries to provide several features such as the Plugin system. Note that we do not intend to reproduce whole of the honorable works of Ruby syntax/implementation/libraries. The expected use case for Goby would be backend development. With this goal

    GitHub - goby-lang/goby: Goby - Yet another programming language written in Go
    el-condor
    el-condor 2017/08/25
    興味深い。メタプログラミングはRubyの重要なフィーチャだと思うので、早めに実現されると良いなあ。
  • 「Go言語って何ででこんなに偏屈なんだろう」の炎上に答えてみる | 非IT企業に勤める中年サラリーマンのIT日記

    ざっくりGo言語を触ってきました。今までJavaとかC#をメインに使ってきた僕としては、一見先祖返りしたような仕様にちょっと戸惑いました。「コンパイル速度を上げる」目的で作った言語とのことで、その目的のためにコーディングしやすさをある意味犠牲にした、といいう点は理解できます。が、明らかにコンパイル速度(あるいは実行速度)とは関係ないところで使い勝手を「わざと」悪くしたとしか思えない仕様に、Googleエンジニアの偏屈さを感じずにはいられません。僕の単なる認識不足だけかもしれませんが、僕自身が感じた”偏屈”と... 自分のブログが批判とはいえ取り上げられるのは純粋にうれしいです。面と向かって言われたら凹むかもしれませんが、「自分のブログが取り上げられた」といううれしさだけが残るのはネット上ならではなのかもしれません。 んで、こんな時はおとなしくしているのが正しい態度なのかもしれませが、あえて

    「Go言語って何ででこんなに偏屈なんだろう」の炎上に答えてみる | 非IT企業に勤める中年サラリーマンのIT日記
    el-condor
    el-condor 2017/05/10
    訳の解らない言葉、というので例えるなら、英語圏だとギリシャ語ですよね(cf. http://bit.ly/2pifbKn)/プログラミング言語にせよフレームワークにせよ使う時にはその根底の思想はきちんと押さえた方がいいんだけどね…
  • Go言語って何ででこんなに偏屈なんだろう | 非IT企業に勤める中年サラリーマンのIT日記

    ざっくりGo言語を触ってきました。 今までJavaとかC#をメインに使ってきた僕としては、一見先祖返りしたような仕様にちょっと戸惑いました。 「コンパイル速度を上げる」目的で作った言語とのことで、その目的のためにコーディングしやすさをある意味犠牲にした、といいう点は理解できます。 が、明らかにコンパイル速度(あるいは実行速度)とは関係ないところで使い勝手を「わざと」悪くしたとしか思えない仕様に、Googleエンジニアの偏屈さを感じずにはいられません。 僕の単なる認識不足だけかもしれませんが、僕自身が感じた”偏屈”と思ったところを書いておきます。 ※アイキャッチ画像に自作Gopher君を載せていますが、Gopherの原著作者はRenée French氏です。 [ad#top-1] nullじゃなくてnil 「何もない」を表すnilですが、どちらかというとnullと表現する言語の方が多いです。

    Go言語って何ででこんなに偏屈なんだろう | 非IT企業に勤める中年サラリーマンのIT日記
    el-condor
    el-condor 2017/05/10
    正直偏屈さではRustの方がずっと上。ちょっと所有権の扱いミスったり型のサイズが実行時まで不明だったりするとコンパイラに激怒されるし。でもgolangもRustも良い言語だと思いますよ。
  • Big Sky :: golang では変数の宣言位置が大事

    今日こんなツイートをした。 @mattn_jp よろしければベターな理由をm(_ _)m 名前空間を短くする作法なのはわかるのですがメモリやGCやコンパイラなど、どの辺に優しい感じですか? — Ryuji IWATA (@qt_luigi) April 5, 2017 qt_luigi さんからどうしてかを聞かれたので説明したいと思います。 golang では宣言した位置で初めて自動変数としてメモリが確保され、ゼロクリアされます。 for i := 0; i < b.N; i++ { var foo Foo bar, err := doSomething() if err != nil { continue } foo.v = bar fmt.Fprintln(ioutil.Discard, foo) } なので例えばこの様なコードで doSomething() が err を返した場合、

    Big Sky :: golang では変数の宣言位置が大事
    el-condor
    el-condor 2017/04/07
    例えばこれがRustだと基本スタックだからメモリ確保関係ない、という話かしらん、と読んだ<"golang では"
  • Big Sky :: golang オフィシャル謹製のパッケージ依存解決ツール「dep」

    « Re: Go でシングルバイナリな Web アプリを開発しているときに webpack --watch をうまいところやる | Main | Ruby の a = a + 1 はなぜ undefined method '+' for nil:NilClass なのか » golang にはパッケージマネージャが無数にあります。 PackageManagementTools · golang/go Wiki · GitHub Home Articles Blogs Books BoundingResourceUse cgo ChromeOS CodeReview CodeReviewComments CodeTools C... https://github.com/golang/go/wiki/PackageManagementTools 僕もその一つの gom というのを開発している

    Big Sky :: golang オフィシャル謹製のパッケージ依存解決ツール「dep」
    el-condor
    el-condor 2017/01/25
    ところで「謹製」って謙譲なので他の人が作ったプロダクトには言わないんですよね、と昔某/.でタレ込んだ時に指摘受けたので知見共有します
  • Ginza.rb 第41回 Rubyist のための他言語探訪 Rust&Go

    The Go Programming Language 日語ページ 自己紹介 勉強会の最初に自己紹介をしていただいてます。 そのときにプロジェクタで映しながらやりたいので、↓のことくらいをまとめた簡単な自己紹介をプルリクエストしてください。 今回の自己紹介置き場 例: 前回の自己紹介置き場 プルリクエストやった事無い! という方は、こちらをご参考下さいー。 create pull request · yochiyochirb/meetups Wiki by よちよち(の心をずっとわすれない).rbさん 受付 とくにありません。 カンパ ginza.rbは無料ですが、少額のカンパは歓迎です。 頂いたカンパはDoorkeeperの掲載費用や、勉強会中のお菓子代、懇親会の費用にしたりしようと思っています。 チャットをSlackに移行 今までidobataでチャットを運営していましたが、Slac

    Ginza.rb 第41回 Rubyist のための他言語探訪 Rust&Go
    el-condor
    el-condor 2016/11/15
    今日話します
  • RubyからGoの関数をつかう → はやい - Qiita

    この記事ではRuby2.2.3とGo1.5.1を使用しています。 すごい要約 Go and Ruby-FFI - Code7 Interactiveを読むといい。 Go、はやい 最初にRubyGoの計算速度を比べるため、フィボナッチ数を単純に計算するやつをそれぞれ書きました。

    RubyからGoの関数をつかう → はやい - Qiita
  • 1