3 ms·
> We offer plugins and extensions for IntelliJ, Visual Studio Code and Neovim, with Language Server Protocol support coming soon. Why? Why would they not have
by OJFord 3y ago
> We offer plugins and extensions for IntelliJ, Visual Studio Code and Neovim, with Language Server Protocol support coming soon.
Why? Why would they not have just done the language server first (or only)? All of those have built-in support for it, so separate implementations wouldn't have been necessary; that's the point.
I just don't understand why you'd make that decision on a greenfield project today, especially if LSP support is planned at all?
- snom380 3y agoWhy assume it's a greenfield project? I would think most open source software that comes out of companies have lived internally for a while before going public?
- OJFord 3y agoFair point.
- rcarmo 3y agoThis. I’m willing to bet I talked to one of the people who use this internally at Apple a few years back when I interviewed there (before they decided to do away with remote hires). They didn’t mention it, but it fits the context.
- p10jkle 3y agoYes, I was using it when I joined Apple in mid 2020
- 3np 3y agoDon't leave is hanging, how was your experience? (Pkl, not Apple :p)
- p10jkle 3y agoI absolutely loved it and I’ve been extremely impatient to see its release. I used it to generate k8s manifests, Terraform, all infra config files. Very flexible and fun to use
- flumpcakes 3y agoDo you know of any public resources about it's use cases?, other than the one linked in this submission of course. What bout Pkl made it easier to write Terraform/K8s manifests/etc.?
- cduzz 3y agoI looked around and couldn't make sense of how to write out random config files like I manage with puppet and ERB files. Are there any reasonable examples of such?
- giancarlostoro 3y agoAdditionally I cant think of other such projects from Apple. They tend to build things that get used extensively till the end of their life is consumed. I wish Apple would continue to open source much more. Especially old software much like Microsoft does. I would kind of enjoy a Linux Distro that can natively run old Apple software and tools.
- samatman 3y agoClang leaps to mind. Most of LLVM was developed under Apple's auspices, although the project predates Apple hiring Chris Latner. Swift is also open source, although in practice it's almost always used in a macOS context. Which I think is a shame, it's a great language for writing the sorts of servers for which people usually reach for Go. That's not a complete list of programs Apple has open-sourced, although clearly open-source software isn't what they're best known for. But clang alone is a worthy contribution which deserves to be recognized.
- stock_toaster 3y agoFoundationDB was open sourced a few years after they bought it too.
- isodev 3y agoI can imagine the answer if I were in their shoes. Say I already have something working as a plugin (or know how to make plugins vs. learning from scratch about implementing LSP), I'd rather have this out there as soon as possible and add more tooling/language support in subsequent releases.
- OJFord 3y agoIf it was just one I would have assumed the same, but Intellij, VSCode, and Neovim..?
- throwaway-42808 3y agoFrom https://pkl-lang.org/blog/introducing-pkl.html#editor-support https://pkl-lang.org/blog/introducing-pkl.html#editor-suppor...: "We are also releasing two other plugins: our VS Code plugin, and our neovim plugin. Today, these plugins only provide basic editing features like syntax highlighting and code folding."
- coldtea 3y ago>I just don't understand why you'd make that decision on a greenfield project today, especially if LSP support is planned at all? How about if the LSP doesn't cut it for the kind of they IDE support they want to offer?
- OJFord 3y agoWell I suppose that's what I'm asking, is that the case? I'm not aware of other projects that have a separate plug-in due to LSP shortcomings, so just interested if there is something they're doing that's not possible/won't be in the LSP one.
- criddell 3y agoI think the answer to your question is yes: LSPs can’t do everything that a plugin can do. https://blog.jetbrains.com/platform/2023/07/lsp-for-plugin-developers/ https://blog.jetbrains.com/platform/2023/07/lsp-for-plugin-d...
- mardifoufs 3y agoThat sounds like a limitation on Jetbrains part, no? Or is it due to LSPs themselves?
- riffraff 3y agoI suppose there are things which are just beyond the scope of LSP, like menus and other UI bits which are IDE specific, not to mention refactoring tools etc.
- OJFord 3y agoThat would be on the client (the LSP support in the specific IDE) to implement though, and would then work for any language server that implemented those capabilities? Like 'go to definition' or whatever is surely in every IDEs menu, but it can be done with LSP.
- _ZeD_ 3y agohave you worked with ide native extensions? while LSP is useful, his expressiveness and power and integration is limited.
- pard68 3y agoLSPs in vscode suck
- flexagoon 3y agoCan you elaborate please? VSCode is literally the reason why LSP even exists
- bsdpufferfish 3y agoThey turn your IDE into a distributed system with parsing and serializing overhead for every action.
- flexagoon 3y agoIsn't that true for any editor with LSP support though, not just VSCode? And I personally consider that to be much better than the alternative solution of re-writing parts of the compiler to a different language to integrate them into the editor directly, like JetBrains does.
- pard68 3y agoI was wrong. I meant Treesitter sucks in vscode
- flexagoon 3y agoVSCode doesn't support tree-sitter at all, it doesn't "suck", it just doesn't exist
- whazor 3y agoWhen distributing LSP servers you need to compile them to the target platform. Afterwards you normally also need an extension or plugin to actually activate the LSP server. So it is possible that there is an LSP server, but they haven’t figured out the distribution yet (sharing binaries? Homebrew?).
- avianlyric 3y agoProbably because JetBrains only recently added native LSP to IntelliJ[0] etc. Given that writing anything in Java/Kotlin basically requires the use of IntelliJ, it’s not really surprising that a language built on top of Truffle and GraalVM, all Java technologies, would ship with an IntelliJ plugin, _but not_ an LSP. Because such an LSP would have been useless in the primary IDE used by the language developers. So if you wanna blame anyone, blame JetBrains for deliberately making hard to use LSPs with their IDE. Presumably to build a moat around their plugin ecosystem. [0] https://blog.jetbrains.com/platform/2023/07/lsp-for-plugin-developers/ https://blog.jetbrains.com/platform/2023/07/lsp-for-plugin-d...
- 9dev 3y agoThe experience with LSPs is quite underwhelming compared to what a native language plugin in IntelliJ can do. That isn’t to say the approach is bad, but it’s definitely a trade off.
- mardifoufs 3y agoHow come? I don't know anything in say, pycharm, that can't be done with a LSP server and plugins. But that's probably because I don't know enough so I'm curious about what limitations an LSP would involve!
- mrudolph22 3y agoRefactorings are one example where LSP can’t match IntelliJ. A language server also takes far more skill and effort to implement than the equivalent IntelliJ plugin, where much of the heavy lifting is done by the IntelliJ framework. And you still need at least a lightweight plugin for each supported editor. That’s why a language server isn’t necessarily the best place to start but hard to avoid in the long run.
- bradly 3y agoPkl has been widely used at Apple for years. It is not a greenfield project.
- spullara 3y agoLanguage Server support isn't nearly as good as building a native plugin for the IDE.
- flexagoon 3y agoBecause the current extensions only provide syntax highlighting. The Neovim one uses tree-sitter which is built into NVim.