Telemetrie in Microsofts LSP and DAP (Neovim)

Hey Leute,

per LSP und DAP können klassische IDE-Mechaniken in Neovim (vielleicht auch Vim, aber damit bin ich noch weniger vertraut) wie Syntaxvervollständigung und Debugging nachgerüstet werden. Nun ist es so, dass beide Technologien von Microsoft stammen und die damit assoziierten Server, bspw. pyright oder debugpy, die hauptsächlich verwendet werden, auch.

Mich interessiert deswegen, ob Microsoft uns die Programme aus altruistischen Motiven zu Verfügung stellt (und z.B. nur Standards durch eine schnelle und weite Verbreitung setzen möchte) oder Telemetrie eingebaut hat, um doch irgendwie damit Geld zu verdienen.

Da ich die technischen Spezifikationen von LSP und DAP nicht durchgelesen habe, weiß ich ehrlich gesagt gar nicht, ob Telemetrieerhebung in diesem Kontext überhaupt Sinn ergibt und umsetzbar ist.

Beste Grüße
Philipp

Mich interessiert deswegen, ob Microsoft uns die Programme aus altruistischen Motiven zu Verfügung stellt (und z.B. nur Standards durch eine schnelle und weite Verbreitung setzen möchte) oder Telemetrie eingebaut hat, um doch irgendwie damit Geld zu verdienen.

Wie ich es sehe, ist es kurzzeitig Altruistisch, aber auf lange Zeit verstehe ich es so, dass Microsoft LSP/DAP als mittel benutzen will um ihre eigenen Produkte wie eben VSCode zu stärken (weil VSCode die LSP Referenzimplementierung ist), auf welcher Basis sie dann für Entwickerwerkzeuge werben werden, welche nur noch mit Microsoft Produkten benutzt werden können. Bspw. steht in der Pylance Lizenz:

You may install and use any number of copies of the software only with Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure DevOps, Team Foundation Server, and successor Microsoft products and services (collectively, the “Visual Studio Products and Services”) to develop and test your applications.

ähnliches steht auch in den Vereinbarungen für populäre Erweiterungen wie Remote SSH, Remote Containers und „Intellisense“. Es ist eben wieder das klassische „Embrace, extend, and extinguish“, und ich glaube nicht dass es die Absicht ist „gewöhliche“ Entwickler auszuspähen, sondern sie mit proprietären Werkzeugen an das Arbeiten in einer Microsoft-welt anzugewöhnen. Geld manchen die dann wahrscheinlich wenn Entwickler Azure über andere alternativen wählen.

Ich finde es aus dem Grund auch schade wenn ich im CIP immer mehr Studenten mit diesen Werkzeugen arbeiten sehe, womit im schlimmsten Fall die seit den 1980’ern hard-erkämpfe Software-Freiheit in Gefahr gerät vernachlässigt zu werden.

oder Telemetrie eingebaut hat, um doch irgendwie damit Geld zu verdienen.

Wie viele Entwickler nutzen heutzutage noch Emacs oder Vim produktiv? Der Aufwand lohnt sich für Microsoft finanziell nicht. Selbst bei Visual Studio dient die Telemetrie vordergründig erstmal nur der Produktverbesserung. Oder glaubst du Microsoft schickt den eingetippten Code Zeile für Zeile rüber?

Mich interessiert deswegen, ob Microsoft uns die Programme aus altruistischen Motiven zu Verfügung stellt

Keine Megacorp handelt altruistisch. Microsoft will das Arbeiten im eigenen Ökosystem so angenehm wie möglich machen, um die Entwickler am besten schon in jungen Jahren anzufixen und dann langfristig an Azure, ChatGPT, Windows, … zu verdienen.

Ich finde es aus dem Grund auch schade wenn ich im CIP immer mehr Studenten mit diesen Werkzeugen arbeiten sehe,

Ist das im CIP kein VSCodium?

Ist das im CIP kein VSCodium?

Jain. Der CIP hat standardmäßig kein VScode/VScodium (zumindestens auf dem CIP auf dem ich gerade nachgeschaut habe…), aber man kann mit lmod (aka module load) beides nachladen.
Blöderweise gibt es die Versionen:

vscode/1.33.1
vscode/1.61.2
vscode/1.62.1
vscode/1.74.1 (default für vscode)
vscodium/1.40.0

also hat man entweder OSS, oder aktuelle Software.

Wie viele Entwickler nutzen heutzutage noch Emacs oder Vim produktiv? Der Aufwand lohnt sich für Microsoft finanziell nicht.

Also laut dem SO 2022 Survey sollen die „Klassischen“ Editoren um die 42 Prozent ausmachen. Wie repräsentativ die Umfrage ist, ist eine andere Frage.

also hat man entweder OSS, oder aktuelle Software.

Ist das wichtig für Leute die VSCode benutzen?

Ich finde es aus dem Grund auch schade wenn ich im CIP immer mehr Studenten mit diesen Werkzeugen arbeiten sehe, womit im schlimmsten Fall die seit den 1980’ern hard-erkämpfe Software-Freiheit in Gefahr gerät vernachlässigt zu werden.

Auf mein Szenario bezogen und aus Interesse: Du siehst es kritisch Vim & Emacs in Kombination mit LSP und DAP zu verwenden?

Oder glaubst du Microsoft schickt den eingetippten Code Zeile für Zeile rüber?

Nein, aber ich bin auch nicht so scharf darauf, dass Metadaten über meine Nutzung gesendet werden, Produktverbesserung hin oder her. Wenn ich Microsoft meinen Code schicken möchte, dann hole ich mir Copilot oder lade meine Programme auf GitHub hoch.

Keine Megacorp handelt altruistisch.

Ja, deswegen war/ist meine Vermutung, dass Microsoft dadurch Standards setzen möchte und es ggfl. auf lange Sicht Probleme geben könnte, weil sich Abhängig aufgebaut haben.

Aber in erster Linie geht es mir nur darum, ob die LSP- und DAP-Server (von Microsoft) Telemetrie-frei sind, da bspw. luals/lua-language-server a priori dies erst einmal nicht bietet.

Du siehst es kritisch Vim & Emacs in Kombination mit LSP und DAP zu verwenden?

Nein, ich benutze es auch regelmäßig und es ist technisch derzeit die beste Lösung. Ich freue mich auch darauf die DAP in GDB Integration zu benutzen, wenn das fertig ist.

Was ich nicht mag ist die Art und Weise wie es aufgekommen ist, dass es als Protokoll relativ einfach ist was Probleme mit sich bringt wenn die Sprache nicht so einfach auf das TypeScript Modell abgebildet werden kann. Auf der anderen Seite haben Client Implementierungen sich auch beschwert, dass das Protokoll nicht mit dem Gedanken entworfen wurde, dass es von allen einfach implementiert werden kann.

Ich glaube das alles hängt eben mit dieser bevorzugten Stellung von VSCode zusammen – was das ist, dass ich kritisiere – sowohl wegen den direkten Effekten welche ich bereits erwähnt habe aber auch Sachen wie das automatische Herunterladen von vorgebauten Servern, aber auch indirekt bin ich kein Fan davon wie manche Arbeitsumgebungen ein VSCode-„Charakter“ annehmen, auf Kosten von traditionelleren und idiomatischen Arbeitsweisen (aber es kann auch sein, dass dieses nur ein Emacs Ding ist, so genau kenne ich die Situation in den anderen Welten nicht).

Ah, okay, dann kann ich dich verstehen! Ich fasse deine Kritik als sehr technische Version davon auf, dass unsere Gesellschaft zu stark von proprietärer Software abhängig ist, da bspw. Windows (privat, gewerblich und behördlich) dominiert.

Ich kann es gleichzeitig nachvollziehen, dass sich, um mal im Kontext dieses Themas zu bleiben, verstehen, dass sich VSCode (im CIP) durchgesetzt hat: Ich bin im Januar auf Neovim umgestiegen – nach meinem Studium, weil ich erst jetzt (durch meine Arbeitssuche) wirklich Zeit habe mich mit Themen zu beschäftigen, die mich interessieren und im Studium, auch in den passenden Vorlesungen, zu kurz kamen (kann anderen natürlich nicht so ergehen). Sehr schade, wenn ich bedenke, was man alleine durch die Vim-Bewegungen und die Keymap-Mechanik gegenüber IDEs rausholen kann.
Da der Mensch faul ist, sind fertige Gesamtpakte wie VSCode bspw. im Vergleich zu Vim/Neovim (wasl. auch Emacs, damit habe ich leider keine Erfahrung), verlockend und da er ein Gewohnheitstier ist, bleibt er dann gerne „bei dem, was er kennt“.

Ich fasse deine Kritik als sehr technische Version davon auf, dass unsere Gesellschaft zu stark von proprietärer Software abhängig ist

Das mag gut bei mir mitschwingen, aber war nicht meine Absicht.

Ich kann es gleichzeitig nachvollziehen, dass sich, um mal im Kontext dieses Themas zu bleiben, verstehen, dass sich VSCode (im CIP) durchgesetzt hat

Es ist für mich kein Wunder, dass es passiert ist. Da ist ein großes Team dahinter, die ständig daran arbeiten. Erweiterungen können mit Javascript geschrieben werden, was ja viele Leute können. Die Oberfläche ist so gestaltet, so das es die meisten Nutzer intuitiv finden. Man muss da nichts anpassen, und vieles wird behind the scenes automatisiert (e.g. herunterladen von Language Servern).

Ich sehe darin den gleichen Effekt wie mit vielen modernen Sprachen, die Sicherheit versprechen und komplexe oder gefährliche (aber mächtige) Feature meiden. Lokal meidet man dadurch Fallen und tückische Fehler, aber es macht eben den einzelnen Entwickler ersetzbarer, weil alle in ein einheitliches Schema passen.

Ob man dabei mehr oder weniger (lokal) Produktiv ist als mit anderen Werkzeugen kann ich nicht sagen. Intuitiv würde ich sagen, das hängt von der individuellen Erfahrung mit Werkzeugen ab. Hab mehr als genug Leute gesehen die Vim benutzen, aber es nicht wirklich gelernt haben, und dadurch wahrscheinlich um einiges langsamer sind als mit anderen Werkzeugen die ihnen ggf. mehr Taugen.

Sehr schade, wenn ich bedenke, was man alleine durch die Vim-Bewegungen und die Keymap-Mechanik gegenüber IDEs rausholen kann.

Bei Vim spezifisch wäre ich auch vorsichtig so was zu sagen, weil IMO Vim und co. eher ein UI als ein Programm ist. Es gibt ja genug Emulation und sogar Integration in anderen Werkzeugen.

Bei Vim spezifisch wäre ich auch vorsichtig so was zu sagen, weil IMO Vim und co. eher ein UI als ein Programm ist. Es gibt ja genug Emulation und sogar Integration in anderen Werkzeugen.

Ich kenne VIM-Erweiterungen für IDEs bzw. weiß ich, dass sie existieren. Ich gehe davon aus, dass die meisten eine solche Erweiterung meiden (zu Mindest habe ich gegenteiliges noch nie gesehen, gehört oder gelesen). Mein Aussage zielte deswegen auf den Standardfall ab.
Daran anschließend:

Intuitiv würde ich sagen, das hängt von der individuellen Erfahrung mit Werkzeugen ab.

Das unterschreibe ich so. Man kann sicher mit IDEs sehr viel rausholen, wenn man sich damit beschäftigt, dazu zähle ich bspw. das Nachrüsten von Vim-Bewegungen.