Od wielu lat w powszechnym obiegu funkcjonuje termin „telemetria”, który jest eufemistycznym określeniem zbierania danych o produkcie, usłudze czy o użytkowniku. Samo zbieranie danych nie kojarzy się szczególnie dobrze, ponieważ często jest wykorzystywane np. do profilowania.
Telemetria jest czymś, do czego użytkownicy zdążyli się już – niestety – przyzwyczaić. Jest ona obecna w systemach operacyjnych smartfonów (i w Androidzie i w iOS). Windows także zbiera wielkie ilości danych i w wielu przypadkach niemożliwe jest całkowite wyłączenie tej funkcji.
Ostatnio zrobiło się głośno wokół tematu włączenia telemetrii do toolchaina języka Go. Zgodnie z propozycją jednego z opiekunów projektu Go narzędzia stworzone w jego ramach miałyby mieć dodaną opcję opcję zbierania danych dotyczących ich użycia i wydajności. Miałaby ona działać w modelu opt-out, czyli byłaby domyślnie włączona, a użytkownik mógłby ją ręcznie wyłączyć. Nie jest to pierwszy przypadek, w którym narzędzia programistyczne zbierają dane. Można tu przytoczyć np. .NET SDK czy Javę. W pierwszym przypadku dane trafiają do Microsoftu, w drugim do Oracle.
Ogólnie rzecz biorąc telemetria sama w sobie może nie być zła z punktu widzenia użytkownika. Jeśli dane pomagają wykryć błędy i usprawnić działanie danego rozwiązania, to jest to konkretna wartość dodana. W przypadku Go w dyskusjach pojawiają się jednak dwa silne argumenty przeciwko zgłoszonej propozycji:
- projekt Go, choć otwartoźródłowy i dostępny publicznie na GitHub, to jest firmowany przez Google, która to firma nie cieszy się najlepszą reputacją jeśli chodzi o poszanowanie prywatności użytkowników,
- telemetria miałaby być domyślnie włączona.
W odniesieniu do pierwszego punktu ciężko dyskutować. W przypadku drugiego warto zauważyć, że z jednej strony telemetria ma sens tylko jeśli danych dostarcza duży odsetek użytkowników. Z drugiej strony otwarte jest pytanie dotyczące tego co konkretnie byłoby gromadzone, gdzie i kto miałby tymi danymi zarządzać. Wreszcie warto zastanowić się, jaką faktycznie wartość dałoby zaimplementowanie telemetrii. Jak faktycznie przełoży się to na jakość, szybkość czy wydajność objętego nią oprogramowania? Można też spróbować przewidzieć kolejne kroki – czy np. telemetria będzie włączana do wersji binarnych oprogramowania przez sam kompilator?
Tytułem zakończenia warto wspomnieć o projekcie VSCode, który jest firmowany przez Microsoft. Jest to edytor kodu źródłowego, którego kod jest publicznie dostępny na GitHubie. Domyślnie jednak jest w nim włączona telemetria i publikowany jest on na nie-wolnej licencji. Efektem tych dwóch mankamentów było powstanie VSCodium. Jak podkreślono na stronie projektu nie jest to fork, a odzwierciedlenie VSCode, które jest pozbawione telemetrii oraz jest udostępnione na wolnej licencji.
Być może taki sam los czeka projekt Go, jeśli telemetria faktycznie zostanie w nim wprowadzona?