* rock solid and performant compiler/interpreter
* rock solid and performant VM/run time system
* rock solid build tool
* large and helpful community
* wide array of free learning resources
* pragmatic approach to balancing new features with stability
it says a lot about the current status and culture of that language with regards to its capacity as a professional-grade general purpose programming language".
I'm a member of the Haskell community who takes an active interest in making Haskell more accessible for production use, so I'd be interested to know reasons, if any, we should prioritise the development of haskell-language-server above other parts of the ecosystem.
> I'm a member of the Haskell community who takes an active interest in making Haskell more accessible for production use, so I'd be interested to know reasons, if any, we should prioritise the development of haskell-language-server above other parts of the ecosystem.
Thank you for your response, I'll do my best!
It's not that a great LSP implies anything, rather that the inverse does; if a language (or its community) declares itself as professional grade, comparisons with other professional grade languages are inevitable.
The LSP is the second impression one gets are first installing the language and setting up a new project, and it's probably the most used tool in a day-to-day experience with the language; you spend more time navigating and reading code than compiling it (if not, my condolences).
If I pick Go or Zig (which is in beta), I get the following out of the box:
* Quick installation
* Easy integration into my existing code editor
* Full blown, blazingly fast LSP even if I'm on dinosaur equipment
* First code compiled and ran within minutes of downloading the first binary
Compared to your average functional programming language experience:
* Finicky installation on some systems, and/or not available on all systems
* LSP is available, but is either semi-complete, broken between versions, slow and/or expensive
* First compile often requires some compilation of the language/std itself, which can take minutes, or it fails with opaque errors in some dependency I don't know about
Some combination of above has been true for me with Erlang, Elixir, Clojure, OCaml, F#, Elm and Haskell. I'm a sucker for and love all these languages, but unfortunately most of them don't hold a candle (with regards to my previous points) to most other languages.
I want to emphasize that I prefer functional languages and use one or more daily (Clojure at work, Elixir and OCaml for fun), this is not a stab at them, merely a general observation.
If a language has a rock solid and performant LSP implementation, it says a lot about the current status and culture of that language with regards to its capacity as a professional-grade general purpose programming language.