Hacker News new | ask | show | jobs
by v-yadli 1513 days ago
One particular problem of M+N is that it requires LSP to cover all the wanted features provided by server and supported by client.

This is not always the case for existing servers. Semantic highlighting wasn't in the protocol until 3.0 (iirc), and many servers have extra non-standard endpoints. So the real world situation is that there's a core feature set allowing M+N, and additionally, custom endpoints and features requiring MN.

Nevertheless the non-standard MN endpoints at least follow the "shape" of LSP -- same communication channel and message format, and that makes MN much easier than before already! As the core protocol evolves, more MN features will be decoupled to M+N.

2 comments

This is definitely true but like you mention because there’s a common communication channel and message format, these language-specific RPC endpoints exist whereas before LSP, language servers didn’t have “custom” features because there weren’t IDE-first language servers at all.

There are already a more than a couple LSP features I wish existed, but in the mean time it’s good enough to have the (typed! and using rich data structures!) RPC endpoints exist for enterprising users to wire up to their IDE’s presentation layer.

I also would like to note that this could provide a chilling effect for programming language design in the future. If LSP's become ultra-mainstream it might carve out a path of least resistance that prevent future innovation and adoption of language features incompatible with the protocol. Although I must admit I have no idea what such features could look like.
Hmm maybe these:

- Programming based on fragments, not documents (e.g. LEO https://leoeditor.com/)

- Live programming (e.g. smalltalk environments)

- ... where certain actions are not available, e.g. a PL geared towards speech recognition may not support "hover"

But on the other hand, these are not well-aligned with current text editors (text based, has a cursor, organize info as documents etc.)

So languages are one side, editors are the other.

Standardization ossifies some things but also allows building many things on top of a stable base.

Innovation could just happen at a higher level.

> Innovation could just happen at a higher level.

That, or retro-backing into the protocol novel features required by those experimental languages.

In my experience, industry-wide ossification and chilling effects appear not because the environment makes it difficult to build new designs, but because it makes it difficult to think outside the current paradigm and imagine novel features.

Once those innovative ideas are out of the box and many people understand their need, the frameworks needed to support them are created. I know because right now we're experiencing such a paradigm shift in terms of note-taking and knowledge building (abandoning WYSIWYG word processors in favor of networked-thinking bidirectional-linked graphs of notes), which IMHO sooner or later will extend to programming tools as well.

> I know because right now we're experiencing such a paradigm shift in terms of note-taking and knowledge building (abandoning WYSIWYG word processors in favor of networked-thinking bidirectional-linked graphs of notes), which IMHO sooner or later will extend to programming tools as well.

What paradigm shift? Can't say I've experienced it.

If you've been using something like Evernote or Emacs outliner, you may have experienced an early version from its beginnings. There's a a rise of new outliners and notetaking tools based on bi-directional linking, which facilitate a style of workflows dedicated to compiling related ideas that appear in very different contexts. This makes it easier to group them together to generate a bottom-up structure of concepts that allows you to organise your ideas and personal projects into larger and larger structures.
I wonder if any of these tools have crossed the chasm, though. In 99% of office environments I've seen, it's a split of probably 90% MS Office and maybe 9% G Suite.

Sure, people use OneNote and such as a secondary thing, but outside of some startups, they're not the central thing. And startups are early adopters, very fickle.