5 ms·
The Language Server Protocol is a newish thing that allowed some languages to gain more tooling for cheaper. I have a ton of respect for MS for doing this. They
by sbergot 3y ago
The Language Server Protocol is a newish thing that allowed some languages to gain more tooling for cheaper. I have a ton of respect for MS for doing this. They didn't need to do it that way. Tooling is still a ton of work and the protocol seems to have issue but looking the adoption it seems that a lot of project are finding value in it both on editors and language sides.
- tester756 3y agoThere's also Debugger Adapter Protocol iirc.
- hardwaregeek 3y agoYeah I've written about what I call "Tooling for Tooling", stuff like the LSP or tree-sitter that make it easier for language authors to build out their tooling ecosystem. I wish people invested more into these sorts of projects so we could raise the standard of tooling for everyone.
- danielvaughn 3y agoYeah, as someone who's actively building a language right now, I can attest that the process is rough. Rough in the sense that I need to invest heavily into putting together my own set of tooling. It's a non-trivial exercise, to say the least.
- otteromkram 3y agoWhy are you creating a language? There aren't enough good ones out there to cover your use case(s)?
- throwaway17_17 3y agoNot who you asked, but for me (I use a custom language for work) it was a matter of being able to do what I wanted, in the way I wanted. The other added benefits were I could ensure that code I wrote for clients and for my employer met the ethical and professional obligations that I incur as an attorney. The only downside (according to others) is that my language implementation belongs to my employer, the theoretical foundation and language definition are owned by me. Overall, I feel more productive and I feel like the value I deliver is greater than it would be in another language.
- danielvaughn 3y agoPlease tell me you called it legalese. Jokes aside, that’s a really interesting use case. I’ve often wondered how laws, and changes to them over time, are recorded. It seems like the kind of thing that could be made more efficient with a formal syntax along with version control.
- throwaway17_17 3y agoI now regret that I didn’t have that thought myself. As to the encoding of laws formally, I know there are some existing attempts to achieve that, but that type of thing doesn’t really apply in my line of work. I do however have a database version of the statutes that keeps the textual history and is searchable implemented.
- cinntaile 3y agoLooking at his Github he seems to be creating a programming language for UI designers.
- danielvaughn 3y agoThanks, yep that's exactly what I'm doing.
- hardwaregeek 3y agoWhy not? It’s fun and a cool exercise. It’s like writing songs. They may not be hits but they can still be fun to make.
- danielvaughn 3y agoYep, I'm trying to build a language that allows UI designers to express their design decisions: https://matry.design https://matry.design
- 1-more 3y agoI felt like a danged genius when I got a competent Rust writer at work to help me put the Elm LSP or tree sitter or whatever it was to work in Difftastic. Standing on the shoulders of a few giants at the same time.
- owlstuffing 3y agoLSP is a double-edge sword. Indeed, it offers a quicker path from a zero IDE support position, which is a boon not only to language authors but also to the hosting IDE. MS I’m sure recognized the leverage potential of the latter. For them faster onboarding meant all the difference, and it worked. The downside is the nature of LSP, which is to say it is necessarily a common denominator API. As a result a tool built on LSP-based API tends to be significantly inferior compared with similar tools built on comprehensive, proprietary APIs. For instance, the IntelliJ IDEA Open API illustrates this advantage quite well. Thus, the economically rich tool authors maintain a clear advantage _if dev experience is the key differentiator_.
- adonovan 3y agoTrue, but I guess the amount of work that goes into a proprietary bespoke IDE is on another order of magnitude. For example our team maintains an LSP server for Go with only about 3 FTE, but I guess JetBrains has a much larger team devoted to Goland (a bespoke IDE), and benefits from common infrastructure with their IDEs for Java and other languages.
- mike_hearn 3y agoAs the name implies, the IntelliJ Open API is open, as in open source. It only works with IntelliJ indeed because it's the IntelliJ API, but that doesn't make it not open.
- owlstuffing 3y agoTrue, it is not technically “proprietary”, but it is a perfect example of a polar opposite of LSP. Utilizing the vernacular put forth in the talk, the sophistication of the IJ API is both the means and the cost of establishing a presence on the IntelliJ-dominant Language Tooling Avenue.