Hacker News new | ask | show | jobs
by keyle 1077 days ago
There is a lot of brouhaha about this. Two school of thoughts...

- LSP are a good idea but a terrible execution, YAGNI, etc.

- LSP are god send, burn my cpus I don't care

I'm being a little sarcastic but I think that's the gist of it. I'm neither pro or against LSPs. I use them when available.

1 comments

The negative opinions I've seen weren't exactly calling it a good idea, it went more along the lines of "it's now a distributed system more complex".

Though honestly I think it's the best we have right now and it's worth the cost. Partially because I don't like IDEs and LSP doesn't need to be integrated and tailored to one specific environment.

What I've heard (and what basically makes sense to me) is that falling back to the network layer as an abstraction is borne of web programmers trying their hand at building native applications (they do not know what dynamic linking is), with all that comes of it (both positive and negative).
On the contrary, we came to realize the security and stability issues caused by loading foreign code in-process.

Modern hardware is powerful enough to go back to classical UNIX IPC for plugins, while achieving security and host stability in the process.

Plus, shared memory is still a possibility for performance, with the same caveats as loading in-process foreign code.

It is also how Plan 9 works, everyone loves Plan 9.

Pretty sure LSPs communicate by stdin/out don't they?

Agree generally.. But I gotta admit, MS's LSP protocol has been successfully implemented by many non-MS IDEs. I'm doubtful this would be the case had they defined a c api instead.

I looked it up and apparently this is left unspecified[0]. So I suppose I take that back!

Also yeah, I use LSPs and I myself don't have a strong grasp of the use of dynamically linked libraries. I don't mean it as a put-down of web programmers (I am one). There is value in this microservice type approach, though it does feel very "webby".

0: https://en.wikipedia.org/wiki/Language_Server_Protocol#Techn...

They communicate by all possible OS IPC protocols.