Go は、C 構文に触発された静的型付けを備えたコンパイル済みの並列プログラミング言語ですが、メモリの安全性とガベージ コレクションを備えています。
オープンソースのプログラミング言語Goの開発を率いるGoogleのソフトウェアエンジニア、ラス・コックス氏は、 Goツールチェーンにテレメトリを実装する計画案を提示した。しかし、この計画案はデフォルトでテレメトリを呼び出すため、Goコミュニティの多くのメンバーが反対している。
これらの警戒された開発者は、オプトアウト方式よりもオプトイン方式を好みます。これは、Go チームが拒否する立場です。これは、採用が確実に少なくなり、受信するテレメトリ データの量がほとんど価値のないレベルまで減少するためです。
Go を知らない人は、これが Google で開発されたプログラミング言語であることを知っておく必要があります。 これは C 言語に似ていますが、多くの重要で最新の機能が追加されています。 Russ Cox は、現在 Go の開発をリードしている Google のエンジニアであり、Go でデフォルトでテレメトリを有効にすることを含む物議を醸す提案を思いつきました。
テレメトリは、Go言語開発チームが開発したコマンドラインユーティリティ(`go`ユーティリティ、コンパイラ、`gopls`および`govulncheck`アプリケーションなど)を対象とします。データ収集は、ユーティリティの特性に関する情報の収集に限定され、アプリケーション自体にテレメトリが追加されることはありません。
コックス氏によれば、テレメトリとは、Goソフトウェアからサーバーにデータを送信し、どの関数が使用されているか、ソフトウェアがどのように動作しているかに関する情報を提供する仕組みである。同氏は、オープンソースプロジェクトにとって、このような情報は開発の指針となるため有益であると主張している。
私は、オープンソース ソフトウェア プロジェクトは、開発者が詳細なユーザー アクティビティの侵襲的なトレースを収集することなく、効果的かつ効率的に作業するために必要な情報を取得できるようにする新しいテレメトリ設計を検討する必要があると考えています。
私はこのような設計について短い一連のブログ投稿を書きました。これは透過的なテレメトリと呼ばれるものです。これは、収集するデータをできるだけ少なく (各インストールから年間キロバイト) し、収集した各項目を一般の検査と分析のために公開するためです。
Go プロジェクトの開発者とユーザーに役立つことを願って、Go ツールチェーンでの透過的なテレメトリまたは同様のシステムの使用を検討したいと思います。 明確にするために、go コマンド、Go コンパイラ、gopls、govulncheck など、Go チームによって作成および配布されている Go コマンド ライン ツールにインストルメンテーションを追加することを提案しているだけです。 Go コンパイラが世界中のすべての Go プログラムにインストルメンテーションを追加することを提案しているわけではありません。これは明らかに不適切です。
透過的なテレメトリには、次の主要なプロパティがあります*:
提案の背後にあるアイデアは悪いものではないかもしれませんが、現在計画されているアイデアは、Go プログラミング言語の現在または潜在的な開発者を将来のプロジェクトに怖がらせる可能性があります。 ほとんどのオープン ソースの開発者とユーザーは、ほとんどの形式のテレメトリに反対していることで知られていることを覚えておく必要があります。
テレメトリを収集する理由は、エラーメッセージやアンケートといったフィードバック方法では検出できない、開発者の作業におけるニーズや特性に関する不足情報を取得するためである。
Russは、オープンソースプロジェクトがプライバシーを尊重しながらソフトウェアをより深く理解できるよう、「透過的なテレメトリ」という概念を導入することを目指している。彼のブログ記事(全3回)の中で、アンケートやバグ報告だけでは不十分だと述べている。そのため、アプリケーションの使用状況に関するデータ(テレメトリ)を、透明性を保ちつつ誰でもアクセス可能な形で収集する最も簡単な方法を提唱している。
これは、データ収集プロセス全体、処理方法、およびその結果が誰にでも公開されていることを意味します。
最後に、さらに詳しく知りたい場合は、以下のリンクから詳細をご確認いただけます。