InfoQ ホームページ golang に関するすべてのコンテンツ
-
Using Go in Native macOS Apps with MacDriver
MacDriverは、GoとObjective-Cの相互互換性の実現を目指す最新プロジェクトだ。これによってmacOS、さらに可能性としてはiOSのアプリをGoで記述できるようになると同時に、Objective-CやSwiftで書かれたmacOSアプリでGoコードを再利用することも可能になる。作者であるJeff Lindsay氏に話を聞くことができた。
-
Generics Enter Go Change Proposal Process
Go開発者が最も多く望んできた機能のひとつであるジェネリクスが、数年間にわたって進化を続けたドラフト設計に基づいて言語に導入されることになり、言語変更提案プロセスが開始された。
-
Mediumが「Rex」を説明 - Goベースのレコメンデーションサービス
最近のブログ投稿で、Mediumは「Rex」という名前のレコメンデーションサービスをどのように構築したかについて説明している。オリジナルのレコメンデーションサービスはNode.jsで開発したプログラムの一部であり、150ストーリーしかランク付けできなかった。しかし、Mediumは、このサービスが1秒未満でユーザあたり数十万のストーリーをランク付けしたかった。そこで、Goを使ってまったく新しい別個のサービスを構築することにした。
-
Google Registry APIを使用したAPI情報の整理
Google Registry APIは、開発者が開発で使用するAPIの機械可読な説明をアップロードして共有することにより、APIに関する情報を整理できるようにすることを目的としている。
-
Go 1.16、レジスタベースの呼出規約をサポート
GoチームはGo 1.16で、レジスタベースの呼出規約(calling convention)の実用最小限(minimum viable)実装に取り組んでいる。この変更により、GoogleのGoチームによれば、現行のスタックベース呼出規約を使用するGoコードとの後方互換性を維持しながら、5~10パーセントのスループット改善が可能になる。
-
リンカや小サイズオブジェクトのアロケーションなどを改善したGo 1.15
Go言語の最新リリースであるGo 1.15は、ツールチェーン、ランタイム、コアライブラリの改善が中心のリリースだ。リンカや小オブジェクトのアロケーション改善に加えて、X.509 CommonNameが廃止され、新たにtzdata組み込みパッケージなどがサポートされた。
-
TinyGoはモノのインターネットに持ち込むことが目的
Googleが提供するTinyGoは、LLVMベースの新しいGoコンパイラーで、Arduino UnoやBBC micro.bitなどのマイクロコントローラ、およびWeb Assemblyを使用する最新のブラウザでGoプログラムを実行できるようにする。
-
Johnny Boursiquot氏のGoサーバーレスと"外交官"としてのSRE
最近のInfoQポッドキャストで、Herokuのサイト信頼性エンジニアであるJohnny Boursiquot氏は、次のようなさまざまなトピックについて説明した。なぜ、Goがファンクション・アズ・ア・サービス(FaaS)スタイルのアプリケーションを構築するのに役立つ言語であるのか。 Herokuがどのようにしてサイト信頼性エンジニア(SRE)の役割を実装するのか。 なぜ、教える能力がそんなに貴重なスキルなのか。
-
スクリプト言語としてのGo
ハイパフォーマンスなネットワークシステムや並列システムを開発するプログラム言語として、Goの採用が拡大していることから、開発者たちはこれをスクリプト言語として使用することに熱意を持ち始めている。ただし現在のGoは、そのままではbashやpythonの代用としては使えないため、これには多少の努力が必要だ。
-
Goが新たなリフレクションベースのProtocol Buffer APIを獲得
Go言語に新たに導入されたProtocol Buffersのバインディングは、Protocol Bufferの型システムをGoの型システムに統合して、実行時に操作可能にするためのものだ。Protocol Buffersは、ハイパフォーマンスアプリケーションにおけるJSONの代替を目的にGoogleが開発した、言語ニュートラルなデータ交換フォーマットである。
-
集中型モジュールミラープロキシとチェックサムデータベースを提供するGo 1.13
Go 1.13は、言語はほとんど変更されていないが、ツールチェーンやランタイム、ライブラリに多くの改善が行われている。その中には、比較的議論の余地のあるデフォルトのGoモジュールプロキシや、Googleプライバシーポリシの受け入れを開発者に求めるチェックサムデータベースも含まれている。
-
Go言語のコントラクトにより、ジェネリックプログラミングが可能に
Goにジェネリック(総称的)プログラミングのサポートを追加する新たなドラフトの中心となっているのは、型パラメータを型および関数に制約するために使用される、コントラクト(contract)の概念である。さらにドラフトでは、型推論を導入して、多くの場合において型を省略可能にすることで、ジェネリック型と関数の使用を簡略化する。
-
GoogleがCloud Codeを発表:IntelliJとVisual Studio CodeをKubernetesアプリに拡張
最近のGoogle Cloud Next 2019で、GoogleはCloud Codeという新しい開発者ツールを発表した。Cloud Codeを使用すると、開発者はJetBrains IntelliJ Idea IDEやMicrosofts Visual Studio Codeエディタなどの開発環境用の一連のプラグインを入手できる。
-
Go 1.12、ランタイム性能とモジュールサポートを改善
Goの最新リリース、バージョン1.12では、言語に対する構文上の変更はなく、ランタイム性能、ツールチェーン、モジュールシステムの改善に焦点が当てられている。加えて、TLS 1.3のオプトインサポートと、macOSおよびiOSのサポート改善を提供する。
-
IoTデバイスにブロックチェーンにサーブレス識別子を提供するOckam
Ockamは、IoTデバイスにブロックチェーンベースの識別性、信頼性、相互運用性を容易に追加できるようにすることを目的とした、サーバレスプラットフォームである。Ockamは先頃、Go言語用のSDKをオープンソースとして公開した。CEOで創業者のMatthew Gregory氏に詳しい話を聞いた。