4 ms·
Of course a lot goes on but pre-LSP and post-LSP are day and night. There is now a huge amount of serious language tooling that _isn't_ locked up into one or se
by rtpg 4y ago
Of course a lot goes on but pre-LSP and post-LSP are day and night. There is now a huge amount of serious language tooling that _isn't_ locked up into one or several editors.
Now some might point out that LSP-based stuff is, like, bloat. Sure, OK. But there's a lot of motivation to do work that can pay off across the board. So much language stuff was based off of random regexes! It's hard to overstate how much better of an editor situation we are in than 10 years ago.
This isn't even getting into VS Code offering a way for you to put... one? two? files into a git repo and have that mean that opening the editor will spawn a container, _install itself in the container_, and run there while still having a native GUI for the actual usage of the tool. So much incidental complexity, gone!
One might point out that containers are a "big ball of mud" solution, but I vastly prefer that to big setup scripts that only half work. Here's to hoping we can shrink the ball of mud.
- Beltalowda 4y agoLSP is nice, but it's not an engineering marvel. It's just a text protocol. It's not even a great text protocol; it's okay, but not great. There's been lots of "LSP-like" protocols over the years, even decades, it's just that none of them really became a standard (partly because no one actually invested the time in writing one, and it just used an "ad-hoc protocol"). And of course the general concept of "process A communicates with process B over a text protocol" is all around us. Like I said, I like LSP, but a great exceptional feat of engineering it is not. This applies to most of VSCode as near as I can tell.
- rtpg 4y agoThe thing is it successfully had work put in so that it’s a standard. “They did a thing that basically no one succeeded in doing” is, imo, proof of something.
- krageon 4y agoIt's proof of nothing but popularity, which isn't indicative of quality in the least.
- Beltalowda 4y agoI don't think anyone tried to really make a standard, as far as I know. But even if they did, there's lots of reasons why some things take off and others don't: putting in the work as you mentioned, whether it's any good, marketing, state of other tooling and tech, zeitgeist at the time ("timing"), etc. Would something like Go have taken off 20 years ago? I'm not so sure, the zeitgeist at the time was very much in the direction of dynamic languages. And would Python take off if it was released today? Not so sure about that either. But you know, putting in the work to write down a specification isn't really a marvel of engineering. It's ... just putting in the work.
- deleted 4y ago[deleted]
- ElectricalUnion 4y ago> But you know, putting in the work to write down a specification isn't really a marvel of engineering. It's ... just putting in the work. It's no marvel of engineering, but someone did put in the work, and others used it, more that can be said about many other things that might be "better engineered".
- Beltalowda 4y agoI never said they were "better engineered". I only wanted to refute that "VSCode is one of the greatest pieces of engineering of our time", which went to use LSP as an example in this (sub)thread.
- mgaunard 4y agoI don't know what LSP is or why you'd think it's anything special or game-changing. It just seems to be a generic interface to describe language bindings, which most text editors have. In practice it's mostly a bad thing because any advanced language has special needs which will end up difficult to address by funneling everything through a common interface.
- rtpg 4y agoIt is a generic interface which also helps with many capabilities, including proper refactoring, formatting, and the like. Since VSCode does so much through it, basically all nontrivial interaction with the code base can also be used in other editors. A far cry from the days of sublime text’s regex-based autocomplete
- mgaunard 4y agoExcept it only works for trivial languages.
- ParetoOptimal 4y agoWhat languages do you consider "non-trivial"?
- Sharlin 4y agoRust-analyzer works via the LSP, and I'd hardly call Rust "trivial".
- bdhcuidbebe 4y agoIs rust and C++ trivial languages?
- mgaunard 4y agoIt doesn't really work with C++.